1.1 --- a/PLSQL/Lexer/nbproject/project.xml Wed May 15 16:07:35 2013 +0200
1.2 +++ b/PLSQL/Lexer/nbproject/project.xml Wed May 15 23:04:20 2013 +0200
1.3 @@ -36,11 +36,24 @@
1.4 <test-type>
1.5 <name>unit</name>
1.6 <test-dependency>
1.7 - <code-name-base>org.netbeans.modules.plsqlsupport.db</code-name-base>
1.8 + <code-name-base>org.apache.commons.io</code-name-base>
1.9 <compile-dependency/>
1.10 </test-dependency>
1.11 <test-dependency>
1.12 - <code-name-base>org.netbeans.modules.plsqlsupport.options</code-name-base>
1.13 + <code-name-base>org.netbeans.libs.junit4</code-name-base>
1.14 + <compile-dependency/>
1.15 + </test-dependency>
1.16 + <test-dependency>
1.17 + <code-name-base>org.netbeans.modules.db</code-name-base>
1.18 + <compile-dependency/>
1.19 + </test-dependency>
1.20 + <test-dependency>
1.21 + <code-name-base>org.netbeans.modules.editor.mimelookup</code-name-base>
1.22 + <compile-dependency/>
1.23 + </test-dependency>
1.24 + <test-dependency>
1.25 + <code-name-base>org.netbeans.modules.nbjunit</code-name-base>
1.26 + <recursive/>
1.27 <compile-dependency/>
1.28 </test-dependency>
1.29 <test-dependency>
1.30 @@ -56,15 +69,11 @@
1.31 <compile-dependency/>
1.32 </test-dependency>
1.33 <test-dependency>
1.34 - <code-name-base>org.netbeans.libs.junit4</code-name-base>
1.35 + <code-name-base>org.netbeans.modules.plsqlsupport.db</code-name-base>
1.36 <compile-dependency/>
1.37 </test-dependency>
1.38 <test-dependency>
1.39 - <code-name-base>org.netbeans.modules.db</code-name-base>
1.40 - <compile-dependency/>
1.41 - </test-dependency>
1.42 - <test-dependency>
1.43 - <code-name-base>org.netbeans.modules.editor.mimelookup</code-name-base>
1.44 + <code-name-base>org.netbeans.modules.plsqlsupport.options</code-name-base>
1.45 <compile-dependency/>
1.46 </test-dependency>
1.47 <test-dependency>
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2.2 +++ b/PLSQL/Lexer/test/unit/data/080617_75132_fndbas.cdb Wed May 15 23:04:20 2013 +0200
2.3 @@ -0,0 +1,70 @@
2.4 +-- --------------------------------------------------------------------------
2.5 +-- File : 080617_75132_Fndbas.cdb
2.6 +--
2.7 +-- Function: Adds performance indexes to tables related to BI services templates.
2.8 +-- Old temporary template data is also removed.
2.9 +--
2.10 +-- NOTE : Due to the fact the the customers might have sone or all these
2.11 +-- indexes but with other names, the creation is done is separate blocks
2.12 +-- and not in single one.
2.13 +--
2.14 +-- --------------------------------------------------------------------------
2.15 +-- DATE BY NOTES
2.16 +-- ------ ----- ---------------------------------------------------------
2.17 +-- 080617 LALISE Created.
2.18 +-- --------------------------------------------------------------------------
2.19 +
2.20 +SET SERVEROUTPUT ON SIZE 32000;
2.21 +
2.22 +BEGIN
2.23 + &AO..Installation_SYS.Log_Detail_Time_Stamp('FNDBAS','080617_75132_FNDBAS.cdb','Timestamp_1');
2.24 +END;
2.25 +/
2.26 +
2.27 +
2.28 +PROMPT Add index on column template_id in table Dsod_Tab
2.29 +DECLARE
2.30 + columns_ &AO..Installation_SYS.ColumnTabType ;
2.31 + table_name_ VARCHAR2(30) := 'DSOD_TAB';
2.32 + index_name_ VARCHAR2(30) := 'DSOD_IX1';
2.33 +BEGIN
2.34 + IF NOT &AO..Installation_SYS.Is_Db_Patch_Registered('FNDBAS', 75132) THEN
2.35 + &AO..Installation_SYS.Set_Table_Column (columns_ , 'TEMPLATE_ID');
2.36 + &AO..Installation_SYS.Create_Index ( table_name_,
2.37 + index_name_,
2.38 + columns_,
2.39 + 'N',
2.40 + '&FND_INDEX');
2.41 + &AO..Installation_SYS.Reset_Column_Table(columns_);
2.42 + END IF;
2.43 +END;
2.44 +/
2.45 +
2.46 +PROMPT Add index on column template_id in table Dsod_Set_Tab
2.47 +DECLARE
2.48 + columns_ &AO..Installation_SYS.ColumnTabType ;
2.49 + table_name_ VARCHAR2(30) := 'DSOD_SET_TAB';
2.50 + index_name_ VARCHAR2(30) := 'DSOD_SET_IX1';
2.51 +BEGIN
2.52 + IF NOT &AO..Installation_SYS.Is_Db_Patch_Registered('FNDBAS', 75132) THEN
2.53 + &AO..Installation_SYS.Set_Table_Column (columns_ , 'TEMPLATE_ID');
2.54 + &AO..Installation_SYS.Create_Index ( table_name_,
2.55 + index_name_,
2.56 + columns_,
2.57 + 'N',
2.58 + '&FND_INDEX');
2.59 + &AO..Installation_SYS.Reset_Column_Table(columns_);
2.60 + END IF;
2.61 +END;
2.62 +/
2.63 +
2.64 +
2.65 +BEGIN
2.66 + &AO..Installation_SYS.Log_Detail_Time_Stamp('FNDBAS','080617_75132_FNDBAS.cdb','Done');
2.67 +END;
2.68 +/
2.69 +
2.70 +PROMPT SCRIPT 080617_75132_FNDBAS.cdb COMPLETED
2.71 +
2.72 +
2.73 +SET SERVEROUTPUT OFF
3.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
3.2 +++ b/PLSQL/Lexer/test/unit/data/081114_78488_VMOSFA.cdb Wed May 15 23:04:20 2013 +0200
3.3 @@ -0,0 +1,22 @@
3.4 +------------------------------------------------------------------------------------
3.5 +--
3.6 +-- Module : VMOSFA
3.7 +--
3.8 +-- File : 081114_78488_VMOSFA.cdb
3.9 +--
3.10 +-- Date Sign History
3.11 +-- ------ ------ ---------------------------------------------------------------
3.12 +-- 081114 maabse Bug 78488: Comment is missing on the views VMO_BASE_SYNC_PACKAGE_VIEW and VMO_BASE_SYNC_TRIGGER_VIEW
3.13 +------------------------------------------------------------------------------------
3.14 +
3.15 +PROMPT Starting 081114_78488_VMOSFA.cdb
3.16 +
3.17 +----------------------------------------------------------------------------------------------------------------------
3.18 +
3.19 +COMMENT ON TABLE VMO_BASE_SYNC_PACKAGE_VIEW IS 'LU=vmobaseview^PROMPT=Internal base view in Sales and Marketing^MODULE=VMOSFA^'
3.20 +/
3.21 +COMMENT ON TABLE VMO_BASE_SYNC_TRIGGER_VIEW IS 'LU=vmobaseview^PROMPT=Internal base view in Sales and Marketing^MODULE=VMOSFA^'
3.22 +/
3.23 +
3.24 +PROMPT Finished with 081114_78488_VMOSFA.cdb
3.25 +
4.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
4.2 +++ b/PLSQL/Lexer/test/unit/data/Dictionary.apy Wed May 15 23:04:20 2013 +0200
4.3 @@ -0,0 +1,3130 @@
4.4 +-----------------------------------------------------------------------------
4.5 +--
4.6 +-- Package: Dictionary_SYS
4.7 +--
4.8 +-- Purpose: This package creates system services for logical unit dictionary.
4.9 +-- The services includes dictionary searches of various kinds and
4.10 +-- decoding routines for comment strings.
4.11 +--
4.12 +-- IFS/Design Template Version 2.3
4.13 +--
4.14 +-- Date Sign History
4.15 +-- ------ ---- -----------------------------------------------------------
4.16 +-- 950823 STLA Created.
4.17 +-- 950901 STLA Corrected fetch of enumerated lu list.
4.18 +-- 950901 STLA Searches methods from user_source instead of sys.argument$.
4.19 +-- 950904 ERFO Separator fetched from Client_SYS and standard changes.
4.20 +-- 950905 ERFO Rearrangements in method orders, change headings...
4.21 +-- 950905 ERFO Changed separator character in Enumerate_Logical_Units_
4.22 +-- and Enumerate_Data_Items_.
4.23 +-- 950911 STLA Removed last call to sys.argument$
4.24 +-- 950912 STLA Added funtion to get item prompt
4.25 +-- 950912 STLA Modified fetch of views and packages belonging to a LU
4.26 +-- 950915 STLA Added funtion to get lu view for list of values
4.27 +-- 950926 STLA Removed picture option from DATATYPE comments
4.28 +-- 950927 STLA Added method to fetch list of system services
4.29 +-- 950928 STLA Added method to fetch description for logical unit
4.30 +-- 950928 STLA Added method to fetch list of domains (eg IIDs)
4.31 +-- 951005 STLA Added backwards compatibility for Get_Lu_View_
4.32 +-- Added method Get_Logical_Unit_Ref_Methods_
4.33 +-- 951005 BOIS Corrected into variable length in Get_View_Logical_Unit_
4.34 +-- 951006 ERFO Removed method Get_View_Logical_Unit_
4.35 +-- 951006 STLA Made Generate_<_Comment_ generate dummy comment if
4.36 +-- database column is not found.
4.37 +-- 951006 STLA Added foreign key methods to Enumerate_Data_Items_
4.38 +-- Removed reference to Client_SYS.field_separator_
4.39 +-- 951030 STLA Corrected Get_Logical_Unit_Ref_Methods_ returning
4.40 +-- incorrect enumerate syntax.
4.41 +-- 951030 STLA Added pragma restict_references for att methods
4.42 +-- 951030 STLA Corrected Enumerate_Domains_ uninitialized variable
4.43 +-- 951030 STLA Added method Get_Logical_Unit_Method_
4.44 +-- 951030 DAJO Added method Get_System_Service_Properties_ for
4.45 +-- system service translation support.
4.46 +-- 951101 ERFO Added work-around BIGCHAR2 for Enumerate_Data_Items_
4.47 +-- and Enumerate_Logical_Units_.
4.48 +-- 951208 STLA Corrected method Get_Data_Item_Properties_ (Bug #283).
4.49 +-- 960110 STLA Added overloaded version of Get_Logical_Unit_Properties_
4.50 +-- so that grant/revoke tool can operate efficiently.
4.51 +-- 960111 STLA Use of 32730 as max length for long VARCHAR2 (Bug #325).
4.52 +-- 960111 ERFO Added method Activate_Language_Refresh_ to support
4.53 +-- language setting changes on the fly (Idea #326).
4.54 +-- 960225 ERFO Added new module property methods to support the module
4.55 +-- concept within the LU-dictionary (Idea #409).
4.56 +-- 960319 ERFO Added extra method for logical unit properties to support
4.57 +-- new features within system service Document_SYS (Idea #463).
4.58 +-- 960325 ERFO Added methods for internal dictionary storage to support
4.59 +-- performance needs from IFS/Security (Idea #452).
4.60 +-- 960326 ERFO Added new parent/child property methods to support relations
4.61 +-- between parent and children for logical units (Idea #410).
4.62 +-- 960326 ERFO Add cache techniques in LU-dictionary by sending an extra
4.63 +-- in parameter which tells if the cached value, stored in a
4.64 +-- package global may be used or not (Idea #466).
4.65 +-- 960401 ERFO Split this package into two for deployment reasons.
4.66 +-- 960402 ERFO Changed cursor in method Get_Logical_Unit_Parent_ as a
4.67 +-- work-around due to a PL/SQL bug in Oracle 7.1.
4.68 +-- 960404 ERFO Two new facilities in method Comment_Value_ to support NULL-
4.69 +-- values in a comment string and to support ambigous key names
4.70 +-- in a comment sting to support IFS/Info Services.
4.71 +-- 960404 ERFO Changes to be ORACLE 7.3 compliant (Bug #473).
4.72 +-- 960415 ERFO Changes in method Enumerate_Data_Items to retrieve package
4.73 +-- name information by using name conventions instead of using
4.74 +-- the LU-dictionary for optimal performance in the dialog for
4.75 +-- Foundation Properties (Idea #491).
4.76 +-- 960429 ERFO Changes in old method Enumerate_System_Services_ and added
4.77 +-- PRAGMA-option WNPS where possible.
4.78 +-- 960503 STLA Make Get_Data_Item_Properties_ do exception when column
4.79 +-- not found.
4.80 +-- 960506 ERFO Added dummy parameter to method Rebuild_Dictionary_Storage.
4.81 +-- Removed use of field separator in beginning of the package
4.82 +-- and view list columns in Rebuild_Dictionary_Storage and
4.83 +-- added a special filter for company styled global keys.
4.84 +-- Added parent child relationship by name convention for
4.85 +-- IID-domains and ordinary logical units.
4.86 +-- 960508 ERFO Added implementation method Method_Security_Enabled__ to
4.87 +-- ensure correct security handle of package methods.
4.88 +-- 960517 ERFO Fixed BIGCHAR2 problem by changing to VARCHAR2 (Bug #607).
4.89 +-- Changed representation and logic in dictionary help table
4.90 +-- to support very big logical units (Bug #611).
4.91 +-- Added method Init to the list of non-security methods.
4.92 +-- 960528 ERFO Changed order of close cursor in help method.
4.93 +-- 960610 ERFO Changes in method Enum_Modules_ not to be case-sensitive
4.94 +-- in the short name of the module identity (Bug #663).
4.95 +-- 960612 ERFO Rearrangements and performance improvements in method
4.96 +-- Rebuild_Dictionary_Storage_ to support all kinds of PL/SQL
4.97 +-- without depending on too much name conventions in the way of
4.98 +-- using the language (Bug #664).
4.99 +-- 960819 ERFO Changes in Activate_Language_Refresh_ to improve performance
4.100 +-- when searching for translation candidates (Idea #746).
4.101 +-- 960826 ERFO Increased size of method variable in the implementation
4.102 +-- of Rebuild_Dictionary_Storage_ (Bug #768).
4.103 +-- 960827 MANY Changes in Enumerate_System_Services_, now performs a distinct
4.104 +-- list of services (Bug #769).
4.105 +-- Changes in Get_System_Service_Properties_, now returns a list
4.106 +-- of packages (Bug #769).
4.107 +-- 960911 ERFO Added error handling for occasions when using illegal module
4.108 +-- name in logical unit source code package header (Idea #790).
4.109 +-- 960916 ERFO Decreased result set for all cursor against package globals
4.110 +-- in the view USER_SOURCE for optimal performance (Idea #798).
4.111 +-- 960919 ERFO Rearrangements in Rebuild_Dictionary_Storage concerning
4.112 +-- methods without any parameters.
4.113 +-- 961028 MANY Changes in several locations, including Rebuild_Dictionary_Storage
4.114 +-- and Get_Logical_Unit_Properties to ensure that reports are treated
4.115 +-- correctly within the dictionary.
4.116 +-- 961029 ERFO Added method Get_Logical_Unit_Keys_ to retrieve key names and/or
4.117 +-- values for a specific logical unit instance (Idea #845).
4.118 +-- 961029 ERFO Even more performance improvements in LU-dictionary (Idea #798)
4.119 +-- and adjustments in Rebuild_Dictionary_Storage_.
4.120 +-- 961116 ERFO Ensure that the conversion methods between db and client
4.121 +-- names does not result in any exception (Bug #859).
4.122 +-- 961117 ERFO Removed method Lock__ from being security aware.
4.123 +-- 961118 ERFO Solve problem with naming conflicts in IFS/Accounting Rules.
4.124 +-- 961125 ERFO Language change on the fly for client state values and added
4.125 +-- state methods in function Method_Security_Enabled___.
4.126 +-- 961128 ERFO Add filter to remove Foundation1 modules from IFS/Security
4.127 +-- and corrected view problem in Get_Logical_Unit_Ref_Methods.
4.128 +-- 970122 ERFO Solved problem with timestamp on the security cache after
4.129 +-- that the Foundation1-modules being removed (Bug #944).
4.130 +-- 970127 ERFO Illegal OR-statement in Get_Lov_View_ corrected to avoid
4.131 +-- returning view connected to IFS/Info Services (Bug #957).
4.132 +-- 970212 ERFO Correction in Get_Lu_Prompt_ to choose the first view
4.133 +-- found instead of choosing the last one (Bug #977).
4.134 +-- 970213 ERFO Add refresh of document dictionary info (Bug #985).
4.135 +-- 970403 ERFO Removed third parameter in method Comment_Value_.
4.136 +-- 970424 ERFO Changes in method Enumerate_Data_Items_ to include
4.137 +-- more functions in the pseudo column list (Bug #1035).
4.138 +-- 970507 ERFO Removed unused methods from the package (ToDo #1107).
4.139 +-- 970725 DOZE Added method Get_Logical_Unit_Tables_ for history (ToDo #1109).
4.140 +-- 970825 ERFO Re-installed Foundation1 modules in dictionary cache.
4.141 +-- 970826 ERFO Solved problem in Rebuild_Dictionary_Storage_ when having
4.142 +-- LU reference definitions longer than 100 bytes (Bug #1610).
4.143 +-- 971022 ERFO Refresh only be run as application owner (ToDo #1286).
4.144 +-- Removed additional refresh of Document_SYS cache.
4.145 +-- 971124 ERFO Changes in Generate_Function_Comment___ to get correct
4.146 +-- function data type to Foundation1 Properties (Bug #718).
4.147 +-- 971218 ERFO String length is changed from 20 to 200 in method
4.148 +-- Generate_Default_Comment to solve IID limits.
4.149 +-- 971218 ERFO Added method Get_Data_Source_Properties__ and method
4.150 +-- Get_Data_Item_Properties__ supporting the new SORT-flag
4.151 +-- for view order-by clauses (ToDo #1633).
4.152 +-- 980211 DOZE Added method Enum_Table_Columns_ for IFS/Design (ToDo #1867).
4.153 +-- 980418 ERFO Correction in Activate_Language_Refresh_ (Bug #2365).
4.154 +-- 980504 ERFO Oracle8-compliance in exception handle (Bug #2412).
4.155 +-- 980505 MANY Correction in Activate_Language_Refresh_ (Bug #2365), continue
4.156 +-- looping when error in specific package until all are finished.
4.157 +-- 980211 DOZE Changed Enum_Table_Columns_ (Bug #2569).
4.158 +-- 980909 MANY Changed Activate_Language_Refresh_ to only refresh packages
4.159 +-- that are actually initiated within the active session (Bug #2685)
4.160 +-- 980915 ERFO Reinstalled old version of Activate_Language_Refresh (Bug #2685).
4.161 +-- 981013 ERFO Added method Enumerate_Logical_Units__ and reorganization
4.162 +-- in Rose-model and model properties (ToDo #2774).
4.163 +-- 981207 DOZE Removed part of Enumerate_Data_Items_ (Bug #2918)
4.164 +-- 990216 ERFO Correction in Method_Security_Enabled___ to ensure that no
4.165 +-- methods will be removed from the security tool (Bug #3141).
4.166 +-- 990222 ERFO Yoshimura: Changes in Rebuild_Dictionary_Storage_ (ToDo #3160).
4.167 +-- 990428 ERFO Rebuild performance and logical bug fixes (Bug #3333).
4.168 +-- 990605 ERFO Change cursor in Activate_Language_Refresh_ (Bug #3411).
4.169 +-- 990805 ERFO Added column METHOD_LIST2 to include large LU:s (ToDo #3365).
4.170 +-- 990922 ERFO Added method Exist_Db in cursor in Rebuild (Bug #3590).
4.171 +-- 991005 DOZE Translation between "Ifs Currency" and "IFS Currency" (Bug #3575)
4.172 +-- 000301 ERFO Added cursor for pragma-methods in Rebuild-logic (Todo #3846).
4.173 +-- 000405 ERFO Added resolve-operation for Security 2001 (ToDo #3846).
4.174 +-- 000522 ROOD Performance improvements in Rebuild_Dictionary_Storage_. (ToDo #3894).
4.175 +-- 000823 ROOD Added condition for appowner in Get_Logical_Unit_Tables_ (ToDo #3919).
4.176 +-- 001211 ERFO Added view FND_TAB_COMMENTS and use it in this package (Bug #18619).
4.177 +-- 001214 ERFO Removed ACCRUL-specific code in Rebuild-procedure (ToDo #3973).
4.178 +-- 010926 ROOD Added check not null on inparameters in most get-methods (Bug#22111).
4.179 +-- 011014 ROOD Made Rebuild_Dictionary_Storage_ ignore case and comments (Bug#25453).
4.180 +-- 011122 ROOD Added view FND_COL_COMMENTS and used it in this package (Bug #26328).
4.181 +-- 020115 ROOD Moved views to api-file to avoid installation dependencies (Bug #26328).
4.182 +-- 020527 ROOD Added group by statements to work around Oracle bug in
4.183 +-- Rebuild_Dictionary_Storage_ (Bug#29242).
4.184 +-- 020628 ROOD Corrected usage of General_SYS.Init_Method (ToDo#4087).
4.185 +-- 030212 ROOD Changed module to FNDBAS (ToDo#4149).
4.186 +-- 030317 ROOD Replaced General_SYS.Get_Database_Properties with
4.187 +-- Database_SYS.Get_Database_Properties (ToDo#4143).
4.188 +-- 030502 ROOD Enabled dictionary information for system services (ToD0#4259).
4.189 +-- 030613 ROOD Rebuilt the Get_Logical_Unit_Properties_xx methods (ToDo#4162).
4.190 +-- 030623 ROOD Added public methods for runtime dictionary information support.
4.191 +-- These methods replace equivalents in Transaction_SYS (ToDo#4162)
4.192 +-- 030819 ROOD Trimmed whitespaces to the right for methods with pragma
4.193 +-- in method Rebuild_Dictionary_Storage_ (ToDo#4160).
4.194 +-- 030931 HAAR Obsoleted method Activate_Language_Refresh_ (ToDo#4305).
4.195 +-- 040407 HAAR Unicode bulk changes,
4.196 +-- extended define variable length in Get_Logical_Unit_Keys_ (F1PR408B).
4.197 +-- 040507 HAAR Added Get_Logical_Unit and Get_Logical_Unit_ (F1PR419).
4.198 +-- 040607 ROOD Added views for dictionary information (F1PR413).
4.199 +-- 040609 HAAR Changes in Rebuild_Dictionary_Storage_ due to changed behavior in Oracle10g (Bug#44668).
4.200 +-- 040617 ROOD Removed obsolete interfaces and restructured the implementation.
4.201 +-- Moved all methods needed in Design-time to new system service
4.202 +-- Design_SYS (F1PR413).
4.203 +-- 040907 ROOD Increased the amount of information stored in the dictionary cache, regarding
4.204 +-- view comments etc. Used new information in implementation.
4.205 +-- Changed interface Get_Item_Prompt_, renamed Get_Main_View to Get_Base_View,
4.206 +-- removed Get_Lov_View_ (F1PR413).
4.207 +-- 040908 ROOD Increased the length for column_reference and added exception handling
4.208 +-- for extraction of view column comments (F1PR413).
4.209 +-- 040910 ROOD Changed default values for when column prompts couldn't be evaluated (F1PR413).
4.210 +-- 040916 ROOD Avoided partial delete of column values if not necessary and other
4.211 +-- performance improvements (F1PR413).
4.212 +-- 040923 ROOD Added refresh mode. Made Get_Base_View_ public (F1PR413).
4.213 +-- 041025 ROOD Modified date comparison in Rebuild_Dictionary_Storage_ and
4.214 +-- Check_Dictionary_Storage_ to workaround date problems with Unicode (Call#119047).
4.215 +-- 041221 ROOD Rewrote major parts of Rebuild_Dictionary_Storage_ to add more information
4.216 +-- into LU dictionary and to improve performance (F1PR413).
4.217 +-- 041228 ROOD Moved all views to api-file to indicate that they are public (F1PR413).
4.218 +-- 050105 ROOD Changed values for view type in dictionary_sys_view_tab (F1PR413).
4.219 +-- 050111 JORA Added view (dictionary_sys_state_event) for states (F1PR413).
4.220 +-- 050117 JORA Added view (dictionary_sys_state_trans) for states transitions (F1PR413).
4.221 +-- 050128 JORA Moved lu_sub_type from dictionary_sys_tab
4.222 +-- to dictionary_sys_package_tab (F1PR413).
4.223 +-- 050310 HAAR Added printout for LU names longer than 25 characters (F1PR480).
4.224 +-- 050408 JORA Added assertion for dynamic SQL. (F1PR481)
4.225 +-- 050513 JORA Added Rebuild_State_Machine___. (F1PR413D)
4.226 +-- 050520 JORA Added Get_No_Overloads, Get_No_Arguments, Get_Min_No_Arguments,
4.227 +-- Get_Max_No_Arguments, Get_Argument_Type (ESCHND-F1).
4.228 +-- 050706 HAAR Removed depricated functions moved to Design_SYS (Bug#52284).
4.229 +-- Enum_Modules_, Get_Logical_Unit_Properties_, Get_Data_Source_Properties_
4.230 +-- Get_Data_Item_Properties_, Get_Logical_Unit_Method_ and Enum_Table_Columns_.
4.231 +-- 050818 JORA Improved error msg for Rebuild_State_Machine___.
4.232 +-- 050830 JORA Improved performace of Rebuild_Dictionary_Storage.
4.233 +-- 051003 HAAR Changed Enum_Module_Logical_Units_ to include system services (F1PR843).
4.234 +-- 051110 HAAR Added new argument to Enumerate_Logical_Units__.
4.235 +-- 051110 HAAR Enum_Module_All_Logical_Units_ and Get_Logical_Unit_Properties2__ added (F1PR843).
4.236 +-- 051111 HAAR Changed so that the follwoing methods are treated as PRAGMA methods:
4.237 +-- LOCK__, LANGUAGE_REFRESHED, INIT, FINITE_STATE_DECODE__, ENUMERATE_STATES__,
4.238 +-- FINITE_STATE_EVENTS__, ENUMERATE_EVENTS__, 'ENUMERATE', 'EXIST', 'EXIST_DB' (F1PR483).
4.239 +-- 051128 HAAR Removed duplicate state values.
4.240 +-- 060105 UTGULK Annotated Sql injection.
4.241 +-- 060130 HAAR Value error in Rebuild_Dictionary_Storage_ (Call 131508).
4.242 +-- 060426 HAAR Added support for query against ROWSTATE instead of STATE when possible (Bug#57581).
4.243 +-- 060428 HAAR Fixed problem in Rebuild_Dictionary_Storage_ when using Oracle 10.2.0.2 (Bug#57648).
4.244 +-- 070111 HAAR Reroute xxx_Is_Installed methods to Database_SYS methods during Installation.
4.245 +-- Added method Set_Installation_Mode (Bug#61829).
4.246 +-- 080208 HAAR Added update of Cache Management when refreshing the cache (Bug#71136).
4.247 +-- 080304 HAAR Some changes in refresh of cache (Bug#72156):
4.248 +-- - Packages with errors or used for test can cause our tools to refresh all the time.
4.249 +-- - Only consider packages with extension _API, _RPI and _SYS.
4.250 +-- - Make error texts available in out parameter.
4.251 +-- - Search Domain packages are not considered during the refresh of the Dictionary cache.
4.252 +-- - Return errors in CLOB out variable.
4.253 +-- 080901 HASPLK Correcetd method Clientnametodbname to work with 30 characters long View names.
4.254 +-- 090309 HASPLK Added method Get_Installation_Mode (Bug#81092).
4.255 +-- 090312 HAAR Changed so that Check_Method_From_View___ loops over all packages. (Bug#81246).
4.256 +-- Changed so that ordering of packages in dictionary_sys_package_tab always is sorted in _API , _RPI, _SYS.
4.257 +-- 100324 UsRa Changed Rebuild_Dictionary_Storage___ to include a new way to locate the base view of an LU (Bug#89730).
4.258 +-- 100531 ChMu Changed Refresh_Domain_State_Info___ and Tokenize_Lists___.(Bug#90304-Correction not to Patched into Next Core)
4.259 +-- 100531 GeGu Modified Rebuild_Dictionary_Storage___ clear the middle tire cache as well
4.260 +-- 100603 ChMu Modified Tokenize_Lists___ to remove '||' from domain/state information
4.261 +-----------------------------------------------------------------------------
4.262 +--
4.263 +-- Contents: Property fetching routines for run-time use (private)
4.264 +-- Naming conversions for client versus database object names
4.265 +-- Comment decoding routines for LU-dictionary
4.266 +-- Prompt fetching routines, mainly used for localization
4.267 +-- Property fetching routines for run-time use (protected)
4.268 +-- Runtime performance refreshment routines
4.269 +-- Property fetching routines for design-time use (Depreciated)
4.270 +-- Public runtime methods for dictionary information support
4.271 +--
4.272 +-----------------------------------------------------------------------------
4.273 +
4.274 +DEFINE MODULE = FNDBAS
4.275 +DEFINE SERVICE = Dictionary
4.276 +DEFINE PKG = DICTIONARY_SYS
4.277 +
4.278 +-----------------------------------------------------------------------------
4.279 +-------------------- PACKAGES FOR METHODS -----------------------------------
4.280 +-----------------------------------------------------------------------------
4.281 +
4.282 +PROMPT Creating &PKG implementation
4.283 +
4.284 +CREATE OR REPLACE PACKAGE BODY &PKG IS
4.285 +
4.286 +TYPE lu_struct_type IS TABLE OF VARCHAR2(32000) INDEX BY BINARY_INTEGER;
4.287 +TYPE object_array IS TABLE OF VARCHAR2(30) INDEX BY BINARY_INTEGER;
4.288 +
4.289 +field_separator_ CONSTANT VARCHAR2(1) := Client_SYS.field_separator_;
4.290 +record_separator_ CONSTANT VARCHAR2(1) := Client_SYS.record_separator_;
4.291 +text_separator_ CONSTANT VARCHAR2(1) := Client_SYS.text_separator_;
4.292 +
4.293 +installation_ BOOLEAN := FALSE;
4.294 +
4.295 +-----------------------------------------------------------------------------
4.296 +-------------------- SERVICE SPECIFIC IMPLEMENTATION METHOD DECLARATIONS ----
4.297 +-----------------------------------------------------------------------------
4.298 +
4.299 +FUNCTION Check_Method_From_View___ (
4.300 + view_name_ IN VARCHAR2,
4.301 + method_name_ IN VARCHAR2 ) RETURN VARCHAR2;
4.302 +
4.303 +-----------------------------------------------------------------------------
4.304 +-------------------- SERVICE SPECIFIC IMPLEMENTATION METHODS ----------------
4.305 +-----------------------------------------------------------------------------
4.306 +
4.307 +FUNCTION Check_Method_From_View___ (
4.308 + view_name_ IN VARCHAR2,
4.309 + method_name_ IN VARCHAR2 ) RETURN VARCHAR2
4.310 +IS
4.311 + lu_name_ VARCHAR2(30);
4.312 + package_list_ VARCHAR2(2000);
4.313 + package_name_ VARCHAR2(30);
4.314 + index_ NUMBER;
4.315 +BEGIN
4.316 + lu_name_ := Get_Logical_Unit(view_name_, 'VIEW');
4.317 + package_list_ := Get_Logical_Unit_Packages__(lu_name_);
4.318 + index_ := instr(package_list_, field_separator_);
4.319 + WHILE (index_ > 0) LOOP
4.320 + package_name_ := Substr(package_list_, 1, index_ - 1);
4.321 + package_list_ := Substr(package_list_, index_ + 1);
4.322 + IF (Method_Is_Installed(package_name_, method_name_)) THEN
4.323 + RETURN(package_name_||'.'||method_name_);
4.324 + END IF;
4.325 + index_ := instr(package_list_, field_separator_);
4.326 + END LOOP;
4.327 + RETURN(NULL);
4.328 +END Check_Method_From_View___;
4.329 +
4.330 +FUNCTION Rebuild_Dictionary_Storage___ (
4.331 + dummy_ IN NUMBER,
4.332 + refresh_mode_ IN VARCHAR2 DEFAULT 'PARTIAL',
4.333 + write_clob_ IN BOOLEAN DEFAULT FALSE ) RETURN CLOB
4.334 +IS
4.335 + refresh_all_ BOOLEAN := refresh_mode_ = 'FULL';
4.336 + refresh_views_ BOOLEAN := refresh_mode_ IN ('VIEWS', 'PARTIAL', 'LIGHT');
4.337 + refresh_pkgs_ BOOLEAN := refresh_mode_ IN ('PACKAGES', 'PARTIAL', 'LIGHT');
4.338 + rebuild_needed_ NUMBER;
4.339 + last_update_ DATE;
4.340 + start_time_ DATE;
4.341 + packages_ object_array;
4.342 + methods_ object_array;
4.343 + views_ object_array;
4.344 +
4.345 + pkg_lu_name_ VARCHAR2(30);
4.346 + pkg_module_ VARCHAR2(6);
4.347 + pkg_lu_type_ VARCHAR2(1);
4.348 + pkg_lu_sub_type_ VARCHAR2(1);
4.349 + pkg_index_ NUMBER;
4.350 +
4.351 + method_ VARCHAR2(100);
4.352 +
4.353 + view_lu_name_ VARCHAR2(30);
4.354 + view_module_ VARCHAR2(6);
4.355 + view_prompt_ VARCHAR2(200);
4.356 + view_comment_ VARCHAR2(2000);
4.357 + view_index_ NUMBER;
4.358 + base_view_ BOOLEAN;
4.359 +
4.360 + error_text_ CLOB;
4.361 +
4.362 + TYPE domain_states_array IS TABLE OF VARCHAR2(120) INDEX BY BINARY_INTEGER;
4.363 + db_values_ domain_states_array;
4.364 + client_values_ domain_states_array;
4.365 +
4.366 + TYPE complete_value_array IS TABLE OF dictionary_sys_domain_tab%ROWTYPE INDEX BY BINARY_INTEGER; -- same as dictionary_sys_state_tab...
4.367 + complete_values_ complete_value_array;
4.368 +
4.369 + TYPE state_event_array IS TABLE OF dictionary_sys_state_event_tab%ROWTYPE INDEX BY BINARY_INTEGER;
4.370 + state_event_values_ state_event_array;
4.371 +
4.372 + CURSOR get_last_update IS
4.373 + SELECT MAX(rowversion)
4.374 + FROM dictionary_sys_tab;
4.375 +
4.376 + --
4.377 + -- LAST_DDL_TIME:
4.378 + -- The timestamp for the last DDL change (including GRANT and REVOKE) to the object.
4.379 + -- Format is VARCHAR2(19)...
4.380 + --
4.381 + -- TIMESTAMP
4.382 + -- The timestamp for the specification of the object.
4.383 + -- Format is DATE.
4.384 + --
4.385 + -- VIEWS:
4.386 + -- TIMESTAMP for a view is not updated unless the code of the view is modified.
4.387 + --
4.388 + -- PACKAGES:
4.389 + -- TIMESTAMP for a packages is updated as soon as the package code is recompiled.
4.390 + --
4.391 + -- This is the reason why different criteria is used for views and for packages.
4.392 + -- It is necessary that views are refreshed after they have been recompiled,
4.393 + -- even if the code has not been modified, since the information is in the comments.
4.394 + --
4.395 +
4.396 + -- Packages to update (timestamp has changed since last update)
4.397 + CURSOR get_pkgs_to_update(last_cache_update_ IN DATE) IS
4.398 + SELECT object_name
4.399 + FROM user_objects
4.400 + WHERE object_type = 'PACKAGE BODY'
4.401 + AND substr(object_name, -4) IN ('_API', '_RPI', '_SYS')
4.402 + AND timestamp > to_char(last_cache_update_, 'YYYY-MM-DD:HH24:MI:SS')
4.403 + ORDER BY substr(object_name, -3); -- The ordering should be API, RPI, SYS
4.404 +
4.405 + -- Views to update (last_ddl_time has changed since last update)
4.406 + CURSOR get_views_to_update(last_cache_update_ IN DATE) IS
4.407 + SELECT object_name
4.408 + FROM user_objects
4.409 + WHERE object_type = 'VIEW'
4.410 + AND last_ddl_time > last_cache_update_
4.411 + ORDER BY created;
4.412 +
4.413 + -- All packages (used when doing a full refresh for performance reasons)
4.414 + CURSOR get_all_pkgs IS
4.415 + SELECT object_name
4.416 + FROM user_objects
4.417 + WHERE object_type = 'PACKAGE'
4.418 + AND substr(object_name, -4) IN ('_API', '_RPI', '_SYS')
4.419 + ORDER BY substr(object_name, -3); -- The ordering should be API, RPI, SYS
4.420 +
4.421 + -- All view (used when doing a full refresh for performance reasons)
4.422 + CURSOR get_all_views IS
4.423 + SELECT object_name
4.424 + FROM user_objects
4.425 + WHERE object_type = 'VIEW'
4.426 + ORDER BY created;
4.427 +
4.428 + -- Package information
4.429 + CURSOR get_package_info(package_name_ IN VARCHAR2) IS
4.430 + SELECT substr(text,
4.431 + instr(text,'''')+1,
4.432 + instr(text,'''',instr(text,'''')+1)-instr(text,'''')-1) global,
4.433 + upper(substr(ltrim(text), 1, 1)) gtype
4.434 + FROM user_source
4.435 + WHERE type = 'PACKAGE'
4.436 + AND name = package_name_
4.437 + AND (text LIKE '%lu_name_%:=%''%''%' OR text LIKE '%module_%:=%''%''%' OR text LIKE '%service_%:=%''%''%' OR text LIKE '%domain_%:=%''%''%')
4.438 + AND text NOT LIKE '--%'
4.439 + AND text NOT LIKE '%/%*%'
4.440 + AND text NOT LIKE '%*%/'
4.441 + AND line BETWEEN 2 AND 6
4.442 + ORDER BY line;
4.443 +
4.444 + -- View information
4.445 + CURSOR get_view_comments(view_name_ IN VARCHAR2) IS
4.446 + SELECT comments
4.447 + FROM fnd_tab_comments
4.448 + WHERE table_type = 'VIEW'
4.449 + AND table_name = view_name_;
4.450 +
4.451 + PROCEDURE Write_Error_Text___ (
4.452 + clob_ IN OUT NOCOPY CLOB,
4.453 + text_ IN VARCHAR2,
4.454 + new_line_ IN BOOLEAN DEFAULT TRUE )
4.455 + IS
4.456 + BEGIN
4.457 + IF write_clob_ THEN
4.458 + IF new_line_ THEN
4.459 + clob_ := clob_ || chr(10) || text_;
4.460 + ELSE
4.461 + clob_ := clob_ || text_;
4.462 + END IF;
4.463 + ELSE
4.464 + IF new_line_ THEN
4.465 + dbms_output.put_line(text_);
4.466 + ELSE
4.467 + dbms_output.put(text_);
4.468 + END IF;
4.469 + END IF;
4.470 + END Write_Error_Text___;
4.471 +
4.472 +
4.473 + PROCEDURE Get_Next_Pkg_Index___ (
4.474 + lu_name_ IN VARCHAR2,
4.475 + next_pkg_index_ OUT NUMBER )
4.476 + IS
4.477 + CURSOR next_index IS
4.478 + SELECT nvl(MAX(package_index), 0) + 1
4.479 + FROM dictionary_sys_package_tab
4.480 + WHERE lu_name = lu_name_;
4.481 + BEGIN
4.482 + OPEN next_index;
4.483 + FETCH next_index INTO next_pkg_index_;
4.484 + CLOSE next_index;
4.485 + END Get_Next_Pkg_Index___;
4.486 +
4.487 + PROCEDURE Get_Next_View_Index___ (
4.488 + lu_name_ IN VARCHAR2,
4.489 + next_view_index_ OUT NUMBER )
4.490 + IS
4.491 + CURSOR next_index IS
4.492 + SELECT nvl(MAX(view_index), 0) + 1
4.493 + FROM dictionary_sys_view_tab
4.494 + WHERE lu_name = lu_name_;
4.495 + BEGIN
4.496 + OPEN next_index;
4.497 + FETCH next_index INTO next_view_index_;
4.498 + CLOSE next_index;
4.499 + END Get_Next_View_Index___;
4.500 +
4.501 + PROCEDURE Handle_Possible_State_Pkg___(
4.502 + lu_name_ IN VARCHAR2,
4.503 + method_name_ IN VARCHAR2 )
4.504 + IS
4.505 + BEGIN
4.506 + IF method_name_ = 'Finite_State_Events__' THEN
4.507 + -- Set global variable
4.508 + pkg_lu_sub_type_ := 'S';
4.509 + -- Update main dictionary information
4.510 + UPDATE dictionary_sys_package_tab
4.511 + SET package_type = pkg_lu_sub_type_
4.512 + WHERE lu_name = lu_name_;
4.513 + END IF;
4.514 + END Handle_Possible_State_Pkg___;
4.515 +
4.516 + PROCEDURE Fill_List_Array___ (
4.517 + info_type_ IN VARCHAR2,
4.518 + lu_name_ IN VARCHAR2,
4.519 + package_name_ IN VARCHAR2,
4.520 + db_values_ IN OUT domain_states_array,
4.521 + client_values_ IN OUT domain_states_array,
4.522 + complete_values_ OUT complete_value_array )
4.523 + IS
4.524 + stmt_ VARCHAR2(200);
4.525 + error_ BOOLEAN := FALSE;
4.526 + domain_ BOOLEAN := info_type_ = 'domain';
4.527 + client_count_ NUMBER;
4.528 + db_count_ NUMBER;
4.529 + BEGIN
4.530 + -- Check for incorrectness in number of values and remove redundant information if it occurs
4.531 + IF db_values_.COUNT != client_values_.COUNT THEN
4.532 + client_count_ := client_values_.COUNT;
4.533 + db_count_ := db_values_.COUNT;
4.534 + IF db_count_ > client_count_ THEN
4.535 + -- Missing client values
4.536 + Assert_SYS.Assert_Is_Package(package_name_);
4.537 + stmt_ := 'BEGIN :client_value_ := '||package_name_||'.Decode(:db_value_); END;';
4.538 + FOR i IN Nvl(db_values_.FIRST, 0)..Nvl(db_values_.LAST, -1) LOOP
4.539 + -- Try to find more values by calling standard interfaces for domains,
4.540 + -- else fill out the array if it is still incomplete...
4.541 + IF domain_ THEN
4.542 + BEGIN
4.543 + -- ifs_assert_safe utgulk 20060105
4.544 + EXECUTE IMMEDIATE stmt_ USING OUT client_values_(i), IN db_values_(i);
4.545 + EXCEPTION
4.546 + WHEN OTHERS THEN
4.547 + client_values_(i) := 'Value not defined!';
4.548 + error_ := TRUE;
4.549 + END;
4.550 + ELSE
4.551 + -- Can't find the values for other types than domains...
4.552 + client_values_(i) := 'Value not defined!';
4.553 + error_ := TRUE;
4.554 + END IF;
4.555 +
4.556 + END LOOP;
4.557 + ELSE
4.558 + -- Missing db values
4.559 + Assert_SYS.Assert_Is_Package(package_name_);
4.560 + stmt_ := 'BEGIN :db_value_ := '||package_name_||'.Encode(:client_value_); END;';
4.561 + FOR i IN Nvl(client_values_.FIRST,0)..Nvl(client_values_.LAST,-1) LOOP
4.562 + -- Try to find more values by calling standard interfaces for domains,
4.563 + -- else fill out the array if it is still incomplete...
4.564 + IF domain_ THEN
4.565 + BEGIN
4.566 + -- ifs_assert_safe utgulk 20060105
4.567 + EXECUTE IMMEDIATE stmt_ USING OUT db_values_(i), IN client_values_(i);
4.568 + EXCEPTION
4.569 + WHEN OTHERS THEN
4.570 + db_values_(i) := 'VALUE NOT DEFINED!';
4.571 + error_ := TRUE;
4.572 + END;
4.573 + ELSE
4.574 + -- Can't find the values for other types than domains...
4.575 + db_values_(i) := 'VALUE NOT DEFINED!';
4.576 + error_ := TRUE;
4.577 + END IF;
4.578 + END LOOP;
4.579 + END IF;
4.580 + -- Log information if values could not be determined...
4.581 + IF error_ THEN
4.582 + Write_Error_Text___ (error_text_, ' '||Rpad(Get_Logical_Unit_Module(lu_name_),6)||':Inconsistency between client values and db values for '||info_type_||' package '||package_name_||'!', FALSE);
4.583 + Write_Error_Text___ (error_text_, ' '||to_char(db_count_)||' db values and '||to_char(client_count_)||' client values was found!');
4.584 + END IF;
4.585 + END IF;
4.586 + FOR i IN Nvl(db_values_.FIRST,0)..Nvl(db_values_.LAST,-1) LOOP
4.587 + complete_values_(i).lu_name := lu_name_;
4.588 + complete_values_(i).package_name := package_name_;
4.589 + complete_values_(i).db_value := db_values_(i);
4.590 + complete_values_(i).client_value := client_values_(i);
4.591 + complete_values_(i).rowversion := SYSDATE;
4.592 + END LOOP;
4.593 + END Fill_List_Array___;
4.594 +
4.595 + PROCEDURE Rebuild_State_Machine___(full_mode_ BOOLEAN DEFAULT TRUE) IS
4.596 +
4.597 + last_update_ DATE DEFAULT NULL;
4.598 +
4.599 + CURSOR state_mach IS
4.600 + SELECT decode(upper(regexp_substr(a.text,'[[:alpha:]]+_')) ,
4.601 + 'STATE_','START',
4.602 + 'EVENT_','EVENT',
4.603 + 'FINITE_','END',
4.604 + NULL) TYPE,
4.605 + regexp_substr(a.text,'''[[:alpha:]|[:space:]]+''') WHAT,
4.606 + a.NAME PACKAGE
4.607 + FROM USER_SOURCE A, USER_OBJECTS O
4.608 + WHERE EXISTS (SELECT 1 FROM DICTIONARY_SYS_STATE_TAB D WHERE D.PACKAGE_NAME = O.OBJECT_NAME)
4.609 + AND A.NAME = O.OBJECT_NAME
4.610 + AND A.TYPE = 'PACKAGE BODY'
4.611 + AND O.OBJECT_TYPE = 'PACKAGE'
4.612 + AND TO_DATE(timestamp,'RRRR-MM-DD:HH24:MI:SS') > last_update_
4.613 + AND regexp_like(a.text,'(state_[[:space:]]*(=|(IS)))|(event_[[:space:]]*(=|(IS)))|(Finite_State_Set___\(rec_,)','i')
4.614 + ORDER BY a.name, a.line ASC;
4.615 +
4.616 + TYPE state_machine_type IS TABLE OF state_mach%ROWTYPE INDEX BY PLS_INTEGER;
4.617 + TYPE dic_state_mach_type IS TABLE OF dictionary_sys_state_mach_tab%ROWTYPE INDEX BY BINARY_INTEGER;
4.618 +
4.619 + bulk_errors EXCEPTION;
4.620 + PRAGMA EXCEPTION_INIT(bulk_errors, -24381);
4.621 +
4.622 + state_machine state_machine_type;
4.623 + model dic_state_mach_type;
4.624 + start_mode VARCHAR2(30);
4.625 + in_state_transistion BOOLEAN := FALSE;
4.626 + error_count_ NUMBER;
4.627 + j PLS_INTEGER;
4.628 + i PLS_INTEGER;
4.629 + position_ NUMBER;
4.630 +
4.631 + FUNCTION Get_Lu_Name_(
4.632 + package_name_ VARCHAR2) RETURN VARCHAR2
4.633 + IS
4.634 + tmp_ VARCHAR2(60) DEFAULT NULL;
4.635 + BEGIN
4.636 + SELECT lu_name INTO tmp_
4.637 + FROM dictionary_sys_package_tab
4.638 + WHERE package_name= package_name_;
4.639 + RETURN tmp_;
4.640 + EXCEPTION
4.641 + WHEN OTHERS THEN
4.642 + Write_Error_Text___ (error_text_, ' Failed to find LU name for package '||package_name_);
4.643 + RETURN NULL;
4.644 + END get_lu_name_;
4.645 +
4.646 + FUNCTION trim_str(str_ VARCHAR2) RETURN VARCHAR2
4.647 + IS
4.648 + BEGIN
4.649 + RETURN SUBSTR(str_,2, length(str_)-2);
4.650 + END;
4.651 +
4.652 +
4.653 + BEGIN
4.654 + IF full_mode_ THEN
4.655 + last_update_:= SYSDATE-1000;
4.656 + ELSE
4.657 + SELECT NVL(MAX(updated),SYSDATE-1000) INTO last_update_ FROM dictionary_sys_state_mach_tab;
4.658 + END IF;
4.659 + OPEN state_mach;
4.660 + FETCH state_mach BULK COLLECT INTO state_machine;
4.661 + CLOSE state_mach;
4.662 + j := 1;
4.663 + i:=2;
4.664 + WHILE i < state_machine.LAST LOOP
4.665 + IF state_machine(i-1).type ='START' AND state_machine(i).type = 'EVENT' THEN
4.666 + in_state_transistion:= TRUE;
4.667 + start_mode:=trim_str(state_machine(i-1).what);
4.668 + WHILE in_state_transistion AND i+1 <= state_machine.LAST LOOP
4.669 + IF state_machine(i).type='EVENT' AND
4.670 + state_machine(i+1).type='END' AND
4.671 + trim_str(state_machine(i).what) IS NOT NULL THEN
4.672 + model(j).start_state:=start_mode;
4.673 + model(j).event:=trim_str(state_machine(i).what);
4.674 + model(j).end_state:=trim_str(state_machine(i+1).what);
4.675 + model(j).package_name:=state_machine(i).PACKAGE;
4.676 + model(j).lu_name:= get_lu_name_(state_machine(i).PACKAGE);
4.677 + model(j).updated:=SYSDATE;
4.678 + model(j).rowversion:=SYSDATE;
4.679 + i:=i+2;
4.680 + j:=j+1;
4.681 + ELSIF state_machine(i).type!='START' AND i < state_machine.LAST THEN
4.682 + i:=i+1;
4.683 + ELSE
4.684 + in_state_transistion:=FALSE;
4.685 + i:=i+1;
4.686 + END IF;
4.687 + END LOOP;
4.688 + ELSE
4.689 + i:=i+1;
4.690 + END IF;
4.691 + END LOOP;
4.692 +-- This line only used when debugging
4.693 +-- FOR k IN model.FIRST..model.LAST LOOP
4.694 +-- Write_Error_Text___ (error_text_, model(k).package_name||':'||model(k).start_state||'->'||model(k).event||'->'||model(k).end_state);
4.695 +-- END LOOP;
4.696 + BEGIN
4.697 + -- ifs_assert_safe pemase 20060215
4.698 + EXECUTE IMMEDIATE 'truncate table dictionary_sys_state_mach_tab';
4.699 + Write_Error_Text___ (error_text_, ' -------------------------------------------------------------');
4.700 + Write_Error_Text___ (error_text_, ' Dictionary Cache is being updated with '||model.count ||' state machine entrie(s).');
4.701 + Write_Error_Text___ (error_text_, ' -------------------------------------------------------------');
4.702 + FORALL k IN NVL(model.FIRST,0)..NVL(model.LAST,-1) SAVE EXCEPTIONS
4.703 + INSERT INTO dictionary_sys_state_mach_tab VALUES model(k);
4.704 + EXCEPTION
4.705 + WHEN bulk_errors THEN
4.706 + error_count_ := SQL%BULK_EXCEPTIONS.COUNT;
4.707 + Write_Error_Text___ (error_text_, ' '||to_char(error_count_)||' problem(s) when inserting dictionary state machine information.');
4.708 + FOR i IN 1..error_count_ LOOP
4.709 + position_ := SQL%BULK_EXCEPTIONS(i).ERROR_INDEX;
4.710 +-- Write_Error_Text___ (error_text_, ' Position number '||to_char(position_));
4.711 + Write_Error_Text___ (error_text_, ' '||Rpad(Get_Logical_Unit_Module(model(position_).lu_name),6)||':Error ' || SQLERRM(-SQL%BULK_EXCEPTIONS(i).ERROR_CODE)||', ', FALSE);
4.712 + Write_Error_Text___ (error_text_, 'lu_name='||model(position_).lu_name||', ', FALSE);
4.713 + Write_Error_Text___ (error_text_, 'package_name='||model(position_).package_name||', ', FALSE);
4.714 + Write_Error_Text___ (error_text_, 'start_state='||model(position_).start_state||', ', FALSE);
4.715 + Write_Error_Text___ (error_text_, 'event='||model(position_).event||', ', FALSE);
4.716 + Write_Error_Text___ (error_text_, 'end_state='||model(position_).end_state);
4.717 + END LOOP;
4.718 + END;
4.719 + EXCEPTION
4.720 + WHEN OTHERS THEN
4.721 + Write_Error_Text___ (error_text_, ' '||dbms_utility.format_error_backtrace);
4.722 + END Rebuild_State_Machine___;
4.723 +
4.724 +
4.725 + PROCEDURE Rebuild_All_State_Event___(full_mode_ BOOLEAN DEFAULT TRUE) IS
4.726 +
4.727 + last_update_ DATE DEFAULT NULL;
4.728 +
4.729 + CURSOR get_events IS
4.730 + SELECT regexp_substr(text,'([[:alpha:]]+\^){1,}') event, name
4.731 + FROM USER_SOURCE A, USER_OBJECTS O
4.732 + WHERE EXISTS (SELECT 1 FROM DICTIONARY_SYS_STATE_TAB D WHERE D.PACKAGE_NAME = O.OBJECT_NAME)
4.733 + AND A.NAME = O.OBJECT_NAME
4.734 + AND A.TYPE = 'PACKAGE BODY'
4.735 + AND O.OBJECT_TYPE = 'PACKAGE'
4.736 + AND TO_DATE(timestamp,'RRRR-MM-DD:HH24:MI:SS') > last_update_
4.737 + AND regexp_like(text, '^[[:space:]]{0,}db_events_[[:space:]]{0,}:=');
4.738 +
4.739 + TYPE state_array IS TABLE OF get_events%ROWTYPE INDEX BY BINARY_INTEGER;
4.740 + TYPE event_array IS TABLE OF VARCHAR(40) INDEX BY PLS_INTEGER;
4.741 + state_events_ state_array ;
4.742 + state_event_values_ state_event_array;
4.743 + event_array_ event_array;
4.744 +
4.745 + stmt_ VARCHAR2(100);
4.746 + match_ INTEGER;
4.747 + counter_ INTEGER;
4.748 + event_idx_ INTEGER;
4.749 + event_ VARCHAR2(32);
4.750 + error_count_ NUMBER;
4.751 + position_ NUMBER;
4.752 + dup_event_val_ BOOLEAN;
4.753 +
4.754 +
4.755 + bulk_errors EXCEPTION;
4.756 + PRAGMA EXCEPTION_INIT(bulk_errors, -24381);
4.757 +
4.758 + FUNCTION Get_Lu_Name_(
4.759 + package_name_ VARCHAR2) RETURN VARCHAR2
4.760 + IS
4.761 + tmp_ VARCHAR2(60) DEFAULT NULL;
4.762 + BEGIN
4.763 + SELECT lu_name INTO tmp_
4.764 + FROM dictionary_sys_package_tab
4.765 + WHERE package_name= package_name_;
4.766 + RETURN tmp_;
4.767 + EXCEPTION
4.768 + WHEN OTHERS THEN
4.769 + Write_Error_Text___ (error_text_, ' Failed to find LU name for package '||package_name_);
4.770 + RETURN NULL;
4.771 + END get_lu_name_;
4.772 +
4.773 + BEGIN
4.774 +
4.775 + IF full_mode_ THEN
4.776 + last_update_:= SYSDATE-1000;
4.777 + ELSE
4.778 + SELECT NVL(MAX(updated),SYSDATE-1000) INTO last_update_ FROM dictionary_sys_state_mach_tab;
4.779 + END IF;
4.780 +
4.781 + OPEN get_events;
4.782 + FETCH get_events BULK COLLECT INTO state_events_;
4.783 + IF SQL%NOTFOUND THEN
4.784 + Write_Error_Text___ (error_text_, ' No state events found.');
4.785 + CLOSE get_events;
4.786 + RETURN;
4.787 + ELSE
4.788 + BEGIN
4.789 + -- ifs_assert_safe pemase 20060215
4.790 + EXECUTE IMMEDIATE 'TRUNCATE TABLE dictionary_sys_state_event_tab';
4.791 + EXCEPTION
4.792 + WHEN OTHERS THEN
4.793 + Write_Error_Text___ (error_text_, ' Failed to truncate dictionary_sys_state_event_tab.');
4.794 + Write_Error_Text___ (error_text_, ' '||dbms_utility.format_error_backtrace);
4.795 + RETURN;
4.796 + END;
4.797 + END IF;
4.798 + CLOSE get_events;
4.799 + Write_Error_Text___ (error_text_, ' -------------------------------------------------------------');
4.800 + Write_Error_Text___ (error_text_, ' Dictionary Cache is fetching State Events');
4.801 + Write_Error_Text___ (error_text_, ' -------------------------------------------------------------');
4.802 + counter_:=1;
4.803 + FOR i IN Nvl(state_events_.FIRST,0)..Nvl(state_events_.LAST,-1) LOOP
4.804 + match_:=1;
4.805 + event_idx_:=1;
4.806 + event_array_.DELETE;
4.807 + LOOP
4.808 + dup_event_val_:= FALSE;
4.809 + event_:=REGEXP_SUBSTR(state_events_(i).event,'([[:alpha:]|[:digit:]|[:blank:]]+\^)', 1, match_);
4.810 + EXIT WHEN event_ IS NULL;
4.811 + IF event_idx_!=1 THEN
4.812 + dup_event_val_:= FALSE;
4.813 + FOR j IN Nvl(event_array_.FIRST,0)..Nvl(event_array_.LAST,-1) LOOP
4.814 + IF event_array_(j)=event_ THEN
4.815 + dup_event_val_:= TRUE;
4.816 + EXIT;
4.817 + END IF;
4.818 + END LOOP;
4.819 + END IF;
4.820 + IF NOT dup_event_val_ THEN
4.821 + event_array_(event_idx_):=event_;
4.822 + state_event_values_(counter_).lu_name:=get_lu_name_(state_events_(i).name);
4.823 + state_event_values_(counter_).package_name:=state_events_(i).name;
4.824 + state_event_values_(counter_).event:=substr(event_,1,length(event_)-1);
4.825 + state_event_values_(counter_).rowversion:=SYSDATE;
4.826 + counter_:=counter_+1;
4.827 + event_idx_:=event_idx_+1;
4.828 +-- ELSE
4.829 +-- Write_Error_Text___ (error_text_, ' '||Rpad(Get_Logical_Unit_Module(get_lu_name_(state_events_(i).name)),6)||':Skipping duplicate event ('||substr(event_,1,length(event_)-1)||') for LU:'||get_lu_name_(state_events_(i).name));
4.830 + END IF;
4.831 + match_:=match_+1;
4.832 + END LOOP;
4.833 + END LOOP;
4.834 +
4.835 + BEGIN
4.836 + Write_Error_Text___ (error_text_, ' -------------------------------------------------------------');
4.837 + Write_Error_Text___ (error_text_, ' Dictionary Cache is being updated with '||state_event_values_.count ||' State Events');
4.838 + Write_Error_Text___ (error_text_, ' -------------------------------------------------------------');
4.839 + FORALL j IN Nvl(state_event_values_.FIRST, 0)..Nvl(state_event_values_.LAST, -1) SAVE EXCEPTIONS
4.840 + INSERT INTO dictionary_sys_state_event_tab VALUES state_event_values_(j);
4.841 + EXCEPTION
4.842 + WHEN bulk_errors THEN
4.843 + error_count_ := SQL%BULK_EXCEPTIONS.COUNT;
4.844 + Write_Error_Text___ (error_text_, ' '||to_char(error_count_)||' problem(s) when inserting dictionary state event information.');
4.845 + FOR i IN 1..error_count_ LOOP
4.846 + position_ := SQL%BULK_EXCEPTIONS(i).ERROR_INDEX;
4.847 +-- Write_Error_Text___ (error_text_, ' Position number '||to_char(position_));
4.848 + Write_Error_Text___ (error_text_, ' '||Rpad(Get_Logical_Unit_Module(state_event_values_(position_).lu_name),6)||':Error ' || SQLERRM(-SQL%BULK_EXCEPTIONS(i).ERROR_CODE)||', ', FALSE);
4.849 + Write_Error_Text___ (error_text_, 'lu_name='||nvl(state_event_values_(position_).lu_name, 'NULL')||', ', FALSE);
4.850 + Write_Error_Text___ (error_text_, 'package_name='||nvl(state_event_values_(position_).package_name, 'NULL')||', ', FALSE);
4.851 + Write_Error_Text___ (error_text_, 'event='||nvl(state_event_values_(position_).event, 'NULL'));
4.852 + END LOOP;
4.853 + WHEN OTHERS THEN
4.854 + Write_Error_Text___ (error_text_, ' Failed to truncate dictionary_sys_state_event_tab.');
4.855 + Write_Error_Text___ (error_text_, ' '||dbms_utility.format_error_backtrace);
4.856 + END;
4.857 +
4.858 + EXCEPTION
4.859 + WHEN OTHERS THEN
4.860 + Write_Error_Text___ (error_text_, ' Failed to rebuild dictionary_sys_state_event_tab.');
4.861 + Write_Error_Text___ (error_text_, ' '||dbms_utility.format_error_backtrace);
4.862 + END Rebuild_All_State_Event___;
4.863 +
4.864 +
4.865 +
4.866 + PROCEDURE Rebuild_State_Transitions___(full_mode_ BOOLEAN DEFAULT TRUE) IS
4.867 +
4.868 + last_update_ DATE DEFAULT NULL;
4.869 +
4.870 + match_ INTEGER;
4.871 + counter_ INTEGER;
4.872 + allowed_event_ VARCHAR2(32);
4.873 + state_trans_ VARCHAR2(130);
4.874 + error_count_ NUMBER;
4.875 + position_ NUMBER;
4.876 +
4.877 + bulk_errors EXCEPTION;
4.878 + PRAGMA EXCEPTION_INIT(bulk_errors, -24381);
4.879 +
4.880 + CURSOR get_state_events_
4.881 + IS
4.882 + SELECT lu_name, package_name, db_state
4.883 + FROM dictionary_sys_state_tab d, user_objects o
4.884 + WHERE d.package_name = o.object_name
4.885 + AND o.object_type = 'PACKAGE BODY'
4.886 + AND TO_DATE(o.timestamp,'RRRR-MM-DD:HH24:MI:SS') > last_update_;
4.887 +
4.888 + TYPE state_array IS TABLE OF get_state_events_%ROWTYPE INDEX BY BINARY_INTEGER;
4.889 + state_list_ state_array;
4.890 +
4.891 + TYPE state_trans_array IS TABLE OF dictionary_sys_state_trans_tab%ROWTYPE INDEX BY BINARY_INTEGER;
4.892 + state_trans_values_ state_trans_array;
4.893 +
4.894 + FUNCTION Get_Allowed_State_Trans (
4.895 + pkg_name_ VARCHAR2,
4.896 + state_ VARCHAR2)
4.897 + RETURN VARCHAR2
4.898 + IS
4.899 + stmt_ VARCHAR2(200);
4.900 + events_ VARCHAR2(200);
4.901 + BEGIN
4.902 + Assert_SYS.Assert_Is_Package(pkg_name_);
4.903 + stmt_:='BEGIN :events:='||pkg_name_||'.Finite_State_Events__(:state); END;';
4.904 + -- ifs_assert_safe utgulk 20060105
4.905 + EXECUTE IMMEDIATE stmt_ USING IN OUT events_, state_ ;
4.906 + RETURN events_;
4.907 + EXCEPTION
4.908 + WHEN OTHERS THEN
4.909 + Write_Error_Text___ (error_text_, ' '||Rpad(Get_Logical_Unit_Module(Get_Logical_Unit(pkg_name_, 'PACKAGE')),6)||':Failed to fetch events for package '||pkg_name_||' and state '||state_);
4.910 + RETURN NULL;
4.911 + END Get_Allowed_State_Trans;
4.912 +
4.913 + BEGIN
4.914 +
4.915 + IF full_mode_ THEN
4.916 + last_update_:= SYSDATE-1000;
4.917 + ELSE
4.918 + SELECT NVL(MAX(to_date(timestamp, 'RRRR-MM-DD:HH24:MI:SS')),SYSDATE-1000) INTO last_update_
4.919 + FROM dictionary_sys_state_tab d, user_objects o
4.920 + WHERE d.package_name = o.object_name
4.921 + AND o.object_type = 'PACKAGE BODY';
4.922 + END IF;
4.923 +
4.924 + OPEN get_state_events_;
4.925 + FETCH get_state_events_ BULK COLLECT INTO state_list_;
4.926 + IF SQL%NOTFOUND THEN
4.927 + Write_Error_Text___ (error_text_, ' No state transitions found.');
4.928 + CLOSE get_state_events_;
4.929 + RETURN;
4.930 + ELSE
4.931 + BEGIN
4.932 + -- ifs_assert_safe pemase 20060215
4.933 + EXECUTE IMMEDIATE 'TRUNCATE TABLE dictionary_sys_state_trans_tab';
4.934 + EXCEPTION
4.935 + WHEN OTHERS THEN
4.936 + Write_Error_Text___ (error_text_, ' Failed to truncate dictionary_sys_state_trans_tab.');
4.937 + Write_Error_Text___ (error_text_, ' '||dbms_utility.format_error_backtrace);
4.938 + RETURN;
4.939 + END;
4.940 + END IF;
4.941 + CLOSE get_state_events_;
4.942 + counter_:=1;
4.943 + FOR i IN Nvl(state_list_.FIRST,0)..Nvl(state_list_.LAST,-1) LOOP
4.944 + state_trans_:=Get_Allowed_State_Trans(state_list_(i).package_name, state_list_(i).db_state);
4.945 + match_:=1;
4.946 + LOOP
4.947 + allowed_event_:=REGEXP_SUBSTR(state_trans_,'([[:alpha:]|[:digit:]|[:blank:]]+\^)', 1, match_);
4.948 + EXIT WHEN allowed_event_ IS NULL;
4.949 + state_trans_values_(counter_).lu_name:=state_list_(i).lu_name;
4.950 + state_trans_values_(counter_).package_name:=state_list_(i).package_name;
4.951 + state_trans_values_(counter_).state:=state_list_(i).db_state;
4.952 + state_trans_values_(counter_).allowed_event:=substr(allowed_event_,1,length(allowed_event_)-1);
4.953 + state_trans_values_(counter_).rowversion:=SYSDATE;
4.954 + match_:=match_+1;
4.955 + counter_:=counter_+1;
4.956 + END LOOP;
4.957 + END LOOP;
4.958 +
4.959 + BEGIN
4.960 + Write_Error_Text___ (error_text_, ' -------------------------------------------------------------');
4.961 + Write_Error_Text___ (error_text_, ' Dictionary Cache is being updated with '||state_trans_values_.count ||' State Transitions');
4.962 + Write_Error_Text___ (error_text_, ' -------------------------------------------------------------');
4.963 + FORALL j IN Nvl(state_trans_values_.FIRST,0)..Nvl(state_trans_values_.LAST,-1) SAVE EXCEPTIONS
4.964 + INSERT INTO dictionary_sys_state_trans_tab VALUES state_trans_values_(j);
4.965 + EXCEPTION
4.966 + WHEN bulk_errors THEN
4.967 + error_count_ := SQL%BULK_EXCEPTIONS.COUNT;
4.968 + Write_Error_Text___ (error_text_, ' '||to_char(error_count_)||' problem(s) when inserting dictionary state transition information.');
4.969 + FOR i IN 1..error_count_ LOOP
4.970 + position_ := SQL%BULK_EXCEPTIONS(i).ERROR_INDEX;
4.971 +-- Write_Error_Text___ (error_text_, ' Position number '||to_char(position_));
4.972 + Write_Error_Text___ (error_text_, ' '||Rpad(Get_Logical_Unit_Module(state_trans_values_(position_).lu_name),6)||':Error ' || SQLERRM(-SQL%BULK_EXCEPTIONS(i).ERROR_CODE)||', ', FALSE);
4.973 + Write_Error_Text___ (error_text_, 'lu_name='||nvl(state_trans_values_(position_).lu_name, 'NULL')||', ', FALSE);
4.974 + Write_Error_Text___ (error_text_, 'package_name='||nvl(state_trans_values_(position_).package_name, 'NULL')||', ', FALSE);
4.975 + Write_Error_Text___ (error_text_, 'state='||nvl(state_trans_values_(position_).state, 'NULL')||', ', FALSE);
4.976 + Write_Error_Text___ (error_text_, 'allowed_event='||nvl(state_trans_values_(position_).allowed_event, 'NULL'));
4.977 + END LOOP;
4.978 + END;
4.979 +
4.980 + EXCEPTION
4.981 + WHEN OTHERS THEN
4.982 + Write_Error_Text___ (error_text_, ' Failed to rebuild dictionary_sys_state_trans_tab.');
4.983 + Write_Error_Text___ (error_text_, ' '||dbms_utility.format_error_backtrace);
4.984 + END Rebuild_State_Transitions___;
4.985 +
4.986 + PROCEDURE Tokenize_Lists___ (
4.987 + value_list_ IN VARCHAR2,
4.988 + values_ IN OUT domain_states_array )
4.989 + IS
4.990 + i_ NUMBER := 0;
4.991 + pos_ NUMBER := 1;
4.992 + end_pos_ NUMBER := 1;
4.993 + sep_ VARCHAR2(1) := Client_SYS.text_separator_;
4.994 + len_ NUMBER := length(value_list_);
4.995 + ind_ NUMBER := Nvl(values_.LAST+1,0);
4.996 + temp_ VARCHAR2(120);
4.997 + BEGIN
4.998 + end_pos_ := instr(value_list_, sep_, 1, i_ + 1);
4.999 + WHILE end_pos_ < len_ AND end_pos_ != 0 LOOP
4.1000 + BEGIN
4.1001 + temp_ := REPLACE(substr(value_list_, pos_, end_pos_ - pos_),'''||''','');
4.1002 + values_(ind_) := REPLACE(temp_,''' || ''','');
4.1003 + EXCEPTION
4.1004 + WHEN value_error THEN
4.1005 + values_(ind_) := 'ERROR!!!';
4.1006 + END;
4.1007 + pos_ := end_pos_ + 1;
4.1008 + i_ := i_ + 1;
4.1009 + ind_:=ind_+1;
4.1010 + end_pos_ := instr(value_list_, sep_, 1, i_ + 1);
4.1011 + END LOOP;
4.1012 + END Tokenize_Lists___;
4.1013 +
4.1014 + PROCEDURE Insert_Package_Information___ (
4.1015 + lu_name_ IN VARCHAR2,
4.1016 + module_ IN VARCHAR2,
4.1017 + package_name_ IN VARCHAR2,
4.1018 + lu_type_ IN VARCHAR2,
4.1019 + lu_sub_type_ IN VARCHAR2 )
4.1020 + IS
4.1021 + package_index_ NUMBER;
4.1022 + BEGIN
4.1023 + BEGIN
4.1024 + INSERT INTO dictionary_sys_tab
4.1025 + (lu_name, module, lu_type, rowversion)
4.1026 + VALUES
4.1027 + (lu_name_, module_, lu_type_, SYSDATE);
4.1028 + IF length(lu_name_) > 25 THEN
4.1029 + Write_Error_Text___ (error_text_, ' '||rpad(module_,6)||':LU Name '||nvl(lu_name_, 'NULL')||' is longer than 25 characters, this is not allowed.');
4.1030 + END IF;
4.1031 + EXCEPTION
4.1032 + WHEN dup_val_on_index THEN
4.1033 + UPDATE dictionary_sys_tab
4.1034 + SET rowversion = SYSDATE,
4.1035 + module = module_,
4.1036 + lu_type = lu_type_
4.1037 + WHERE lu_name = lu_name_;
4.1038 + WHEN OTHERS THEN
4.1039 + Write_Error_Text___ (error_text_, ' '||rpad(module_,6)||':Undefined problem when inserting LU dictionary information for package '||package_name_||', ', FALSE);
4.1040 + Write_Error_Text___ (error_text_, 'LU Name='||nvl(lu_name_, 'NULL')||', ', FALSE);
4.1041 + Write_Error_Text___ (error_text_, 'LU Type='||nvl(lu_type_, 'NULL'));
4.1042 + END;
4.1043 + -- Insert and if already existing then update.
4.1044 + -- This is more efficient when performing a full refresh!
4.1045 + BEGIN
4.1046 + Get_Next_Pkg_Index___(lu_name_, package_index_);
4.1047 + INSERT INTO dictionary_sys_package_tab
4.1048 + (lu_name, package_name, package_index, package_type, rowversion)
4.1049 + VALUES
4.1050 + (lu_name_, package_name_, package_index_, lu_sub_type_, SYSDATE);
4.1051 + --
4.1052 + -- Fix problems with LU that has more than one _API package (e.g. for state handling).
4.1053 + --
4.1054 + UPDATE Dictionary_Sys_Package_Tab
4.1055 + SET package_index = 0
4.1056 + WHERE lu_name IN (SELECT lu_name
4.1057 + FROM Dictionary_Sys_Package_Tab
4.1058 + WHERE package_name LIKE '%_API'
4.1059 + GROUP BY lu_name
4.1060 + HAVING count(*) > 1)
4.1061 + AND package_name = Upper(Regexp_Replace(lu_name,
4.1062 + '([a-z])([A-Z])',
4.1063 + '\1_\2',
4.1064 + 1,
4.1065 + 0,
4.1066 + 'c') || '_API')
4.1067 + AND package_index != 1;
4.1068 + --
4.1069 + EXCEPTION
4.1070 + WHEN dup_val_on_index THEN
4.1071 + UPDATE dictionary_sys_package_tab
4.1072 + SET rowversion = SYSDATE
4.1073 + WHERE lu_name = lu_name_
4.1074 + AND package_name = package_name_;
4.1075 + WHEN OTHERS THEN
4.1076 + Write_Error_Text___ (error_text_, ' '||Rpad(Get_Logical_Unit_Module(lu_name_),6)||':Undefined problem when inserting dictionary information for package '||package_name_||', ', FALSE);
4.1077 + Write_Error_Text___ (error_text_, 'LU Name='||nvl(lu_name_, 'NULL')||', ', FALSE);
4.1078 + Write_Error_Text___ (error_text_, 'Package Name='||nvl(package_name_, 'NULL')||', ', FALSE);
4.1079 + Write_Error_Text___ (error_text_, 'Package Index='||nvl(to_char(pkg_index_), 'NULL')||', ', FALSE);
4.1080 + Write_Error_Text___ (error_text_, 'Package Type='||nvl(lu_sub_type_, 'NULL'));
4.1081 + END;
4.1082 + END Insert_Package_Information___;
4.1083 +
4.1084 + PROCEDURE Insert_View_Information___(
4.1085 + lu_name_ IN VARCHAR2,
4.1086 + module_ IN VARCHAR2,
4.1087 + view_name_ IN VARCHAR2,
4.1088 + view_prompt_ IN VARCHAR2 )
4.1089 + IS
4.1090 + base_view_ BOOLEAN;
4.1091 + view_index_ NUMBER;
4.1092 + view_type_ VARCHAR2(1);
4.1093 + lu_prompt_ VARCHAR2(200);
4.1094 + BEGIN
4.1095 + -- Find the base view according to naming conventions...
4.1096 + -- (Other possible base views are handled at the end of the process)
4.1097 + IF view_name_ = Clientnametodbname_(lu_name_) THEN
4.1098 + lu_prompt_ := view_prompt_;
4.1099 + base_view_ := TRUE;
4.1100 + ELSE
4.1101 + lu_prompt_ := NULL;
4.1102 + base_view_ := FALSE;
4.1103 + END IF;
4.1104 + -- Insert into dictionary_sys_tab. It is likely this entry already exist (from package information),
4.1105 + -- then only updating the prompt and rowversion is more efficent.
4.1106 + IF base_view_ THEN
4.1107 + UPDATE dictionary_sys_tab
4.1108 + SET rowversion = SYSDATE,
4.1109 + lu_prompt = lu_prompt_
4.1110 + WHERE lu_name = lu_name_;
4.1111 + IF SQL%NOTFOUND THEN
4.1112 + INSERT INTO dictionary_sys_tab
4.1113 + (lu_name, module, lu_prompt, rowversion)
4.1114 + VALUES
4.1115 + (lu_name_, module_, lu_prompt_, SYSDATE);
4.1116 + END IF;
4.1117 + ELSE
4.1118 + UPDATE dictionary_sys_tab
4.1119 + SET rowversion = SYSDATE
4.1120 + WHERE lu_name = lu_name_;
4.1121 + IF SQL%NOTFOUND THEN
4.1122 + INSERT INTO dictionary_sys_tab
4.1123 + (lu_name, module, rowversion)
4.1124 + VALUES
4.1125 + (lu_name_, module_, SYSDATE);
4.1126 + END IF;
4.1127 + END IF;
4.1128 + -- Insert into dictionary_sys_view_tab
4.1129 + -- Insert and if already existing then update.
4.1130 + -- This is more efficient when performing a full refresh!
4.1131 + BEGIN
4.1132 + Get_Next_View_Index___(lu_name_, view_index_);
4.1133 + IF base_view_ THEN
4.1134 + view_type_ := 'B';
4.1135 + ELSIF substr(view_name_, -4) = '_REP' THEN
4.1136 + view_type_ := 'R';
4.1137 + ELSE
4.1138 + view_type_ := 'A';
4.1139 + END IF;
4.1140 + INSERT INTO dictionary_sys_view_tab
4.1141 + (lu_name, view_name, view_type, view_prompt, view_index, rowversion)
4.1142 + VALUES
4.1143 + (lu_name_, view_name_, view_type_, view_prompt_, view_index_, SYSDATE);
4.1144 + EXCEPTION
4.1145 + WHEN dup_val_on_index THEN
4.1146 + UPDATE dictionary_sys_view_tab
4.1147 + SET view_type = view_type_,
4.1148 + view_prompt = view_prompt_,
4.1149 + rowversion = SYSDATE
4.1150 + WHERE lu_name = lu_name_
4.1151 + AND view_name = view_name_;
4.1152 + WHEN OTHERS THEN
4.1153 + Write_Error_Text___ (error_text_, ' '||Rpad(module_,6)||':Undefined problem when inserting dictionary information for view '||view_name_||', ', FALSE);
4.1154 + Write_Error_Text___ (error_text_, 'LU Name='||nvl(lu_name_, 'NULL')||', ', FALSE);
4.1155 + Write_Error_Text___ (error_text_, 'View Name='||nvl(view_name_, 'NULL')||', ', FALSE);
4.1156 + Write_Error_Text___ (error_text_, 'View Prompt='||nvl(view_prompt_, 'NULL')||', ', FALSE);
4.1157 + Write_Error_Text___ (error_text_, 'View Index='||nvl(to_char(view_index_), 'NULL')||', ');
4.1158 + END;
4.1159 + END Insert_View_Information___;
4.1160 +
4.1161 + PROCEDURE Refresh_View_Columns___ (
4.1162 + all_views_ IN BOOLEAN,
4.1163 + start_time_ IN DATE )
4.1164 + IS
4.1165 + CURSOR get_view_columns IS
4.1166 + SELECT u.table_name view_name, u.column_name column_name, c.comments comments, u.column_id column_id
4.1167 + FROM user_tab_columns u, fnd_col_comments c
4.1168 + WHERE u.table_name = c.table_name
4.1169 + AND u.column_name = c.column_name
4.1170 + ORDER BY u.table_name, u.column_name;
4.1171 +
4.1172 + CURSOR get_new_view_columns IS
4.1173 + SELECT u.table_name view_name, u.column_name column_name, c.comments comments, u.column_id column_id
4.1174 + FROM user_tab_columns u, fnd_col_comments c, dictionary_sys_view_tab v
4.1175 + WHERE u.table_name = c.table_name
4.1176 + AND u.table_name = v.view_name
4.1177 + AND u.column_name = c.column_name
4.1178 + AND v.rowversion >= start_time_
4.1179 + ORDER BY u.table_name, u.column_name;
4.1180 +
4.1181 + column_flags_ VARCHAR2(5);
4.1182 + lu_name_ VARCHAR2(30);
4.1183 + prev_view_ VARCHAR2(30) := 'NIL';
4.1184 + n_ NUMBER := 0;
4.1185 + position_ NUMBER;
4.1186 + error_count_ NUMBER;
4.1187 + bulk_errors EXCEPTION;
4.1188 + PRAGMA EXCEPTION_INIT(bulk_errors, -24381);
4.1189 +
4.1190 + TYPE view_column_array IS TABLE OF get_view_columns%ROWTYPE INDEX BY BINARY_INTEGER;
4.1191 + view_columns_ view_column_array;
4.1192 +
4.1193 + TYPE complete_array IS TABLE OF dictionary_sys_view_column_tab%ROWTYPE INDEX BY BINARY_INTEGER;
4.1194 + complete_columns_ complete_array;
4.1195 + BEGIN
4.1196 + --
4.1197 + -- Fetch view column information and delete old information
4.1198 + --
4.1199 + IF all_views_ THEN
4.1200 + OPEN get_view_columns;
4.1201 + FETCH get_view_columns BULK COLLECT INTO view_columns_;
4.1202 + CLOSE get_view_columns;
4.1203 + -- Remove all old information
4.1204 + -- ifs_assert_safe pemase 20060215
4.1205 + EXECUTE IMMEDIATE 'TRUNCATE TABLE dictionary_sys_view_column_tab';
4.1206 + ELSE
4.1207 + OPEN get_new_view_columns;
4.1208 + FETCH get_new_view_columns BULK COLLECT INTO view_columns_;
4.1209 + CLOSE get_new_view_columns;
4.1210 + -- Remove old information for all of the methods that is being updated
4.1211 + DELETE FROM dictionary_sys_view_column_tab c
4.1212 + WHERE EXISTS (SELECT 1
4.1213 + FROM dictionary_sys_view_tab v
4.1214 + WHERE v.view_name = c.view_name
4.1215 + AND v.rowversion >= start_time_);
4.1216 + END IF;
4.1217 +
4.1218 + -- Process all of the view column information
4.1219 + IF view_columns_.COUNT > 0 THEN
4.1220 + FOR i IN Nvl(view_columns_.FIRST,0)..Nvl(view_columns_.LAST,-1) LOOP
4.1221 + -- Find the lu name for the view if view has changed
4.1222 + IF (prev_view_ <> view_columns_(i).view_name) THEN
4.1223 + lu_name_ := Get_Logical_Unit(view_columns_(i).view_name, 'VIEW');
4.1224 + prev_view_ := view_columns_(i).view_name;
4.1225 + END IF;
4.1226 + IF lu_name_ IS NOT NULL THEN
4.1227 + BEGIN
4.1228 + complete_columns_(n_).lu_name := lu_name_;
4.1229 + complete_columns_(n_).view_name := view_columns_(i).view_name;
4.1230 + complete_columns_(n_).column_name := view_columns_(i).column_name;
4.1231 + complete_columns_(n_).column_index := view_columns_(i).column_id;
4.1232 + complete_columns_(n_).rowversion := SYSDATE;
4.1233 + complete_columns_(n_).column_datatype := Comment_Value_('DATATYPE',view_columns_(i).comments);
4.1234 + complete_columns_(n_).column_prompt := Comment_Value_('PROMPT',view_columns_(i).comments);
4.1235 + complete_columns_(n_).column_reference := Comment_Value_('REF',view_columns_(i).comments);
4.1236 + column_flags_ := Comment_Value_('FLAGS',view_columns_(i).comments);
4.1237 + complete_columns_(n_).type_flag := substr(column_flags_,1,1);
4.1238 + complete_columns_(n_).required_flag := substr(column_flags_,2,1);
4.1239 + complete_columns_(n_).insert_flag := substr(column_flags_,3,1);
4.1240 + complete_columns_(n_).update_flag := substr(column_flags_,4,1);
4.1241 + complete_columns_(n_).lov_flag := substr(column_flags_,5,1);
4.1242 + EXCEPTION
4.1243 + WHEN OTHERS THEN
4.1244 + Write_Error_Text___ (error_text_, ' ??????:Incorrect comments for view column '||view_columns_(i).view_name||'.'||view_columns_(i).column_name);
4.1245 + complete_columns_(n_).column_datatype := NULL;
4.1246 + complete_columns_(n_).column_prompt := NULL;
4.1247 + complete_columns_(n_).column_reference := NULL;
4.1248 + complete_columns_(n_).type_flag := NULL;
4.1249 + complete_columns_(n_).required_flag := NULL;
4.1250 + complete_columns_(n_).insert_flag := NULL;
4.1251 + complete_columns_(n_).update_flag := NULL;
4.1252 + complete_columns_(n_).lov_flag := NULL;
4.1253 + END;
4.1254 + n_ := n_ + 1;
4.1255 + END IF;
4.1256 + END LOOP;
4.1257 +
4.1258 + -- Insert all the values into dictionary_sys_view_column_tab
4.1259 + BEGIN
4.1260 + FORALL j IN Nvl(complete_columns_.FIRST,0)..Nvl(complete_columns_.LAST,-1) SAVE EXCEPTIONS
4.1261 + INSERT INTO dictionary_sys_view_column_tab VALUES complete_columns_(j);
4.1262 + EXCEPTION
4.1263 + WHEN bulk_errors THEN
4.1264 + error_count_ := SQL%BULK_EXCEPTIONS.COUNT;
4.1265 + Write_Error_Text___ (error_text_, ' '||to_char(error_count_)||' problem(s) when inserting dictionary view column information!');
4.1266 + FOR i IN 1..error_count_ LOOP
4.1267 + position_ := SQL%BULK_EXCEPTIONS(i).ERROR_INDEX;
4.1268 + Write_Error_Text___ (error_text_, ' '||Rpad(Get_Logical_Unit_Module(complete_columns_(position_).lu_name),6)||':Error ' || SQLERRM(-SQL%BULK_EXCEPTIONS(i).ERROR_CODE)||', ', FALSE);
4.1269 + Write_Error_Text___ (error_text_, 'Lu Name='||nvl(complete_columns_(position_).lu_name, 'NULL')||', ', FALSE);
4.1270 + Write_Error_Text___ (error_text_, 'View Name='||nvl(complete_columns_(position_).view_name, 'NULL')||', ', FALSE);
4.1271 + Write_Error_Text___ (error_text_, 'Column Name='||nvl(complete_columns_(position_).column_name, 'NULL'));
4.1272 + END LOOP;
4.1273 + END;
4.1274 + END IF;
4.1275 + END Refresh_View_Columns___;
4.1276 +
4.1277 + -- Handles both domain and state information, behaves different depending on info_type
4.1278 + PROCEDURE Refresh_Domain_State_Info___ (
4.1279 + info_type_ IN VARCHAR2,
4.1280 + lu_name_ IN VARCHAR2,
4.1281 + package_name_ IN VARCHAR2 )
4.1282 + IS
4.1283 + -- Domain information
4.1284 + CURSOR get_domain_info(package_name_ IN VARCHAR2,list_type_ VARCHAR2) IS
4.1285 + SELECT ltrim(rtrim(substr(text, instr(text, '''')+ 1) )) list_values,line
4.1286 + FROM user_source t
4.1287 + WHERE type = 'PACKAGE BODY'
4.1288 + AND name = package_name_
4.1289 + AND text NOT LIKE '--%'
4.1290 + AND text NOT LIKE '%/%*%'
4.1291 + AND text NOT LIKE '%*%/'
4.1292 + AND line BETWEEN (SELECT MIN(line)
4.1293 + FROM user_source x
4.1294 + WHERE type = 'PACKAGE BODY'
4.1295 + AND name = package_name_
4.1296 + AND x.text LIKE '%'||list_type_||'%:=%''%''%')
4.1297 + AND
4.1298 + (SELECT MIN(line)
4.1299 + FROM user_source y
4.1300 + WHERE type = 'PACKAGE BODY'
4.1301 + AND y.name = package_name_
4.1302 + AND y.text LIKE '%;%'
4.1303 + AND y.line >= (SELECT min(line)
4.1304 + FROM user_source
4.1305 + WHERE type = 'PACKAGE BODY'
4.1306 + AND name = package_name_
4.1307 + AND text LIKE '%'||list_type_||'%:=%''%''%'));
4.1308 +
4.1309 +
4.1310 + -- State information
4.1311 + CURSOR get_state_info(package_name_ IN VARCHAR2) IS
4.1312 + SELECT ltrim(rtrim(substr(text, 1, instr(text, 'CONSTANT') - 1))) list_type, ltrim(rtrim(substr(text, instr(text, '''')+ 1) )) list_values
4.1313 + FROM user_source
4.1314 + WHERE type = 'PACKAGE BODY'
4.1315 + AND name = package_name_
4.1316 + AND (text LIKE '%db_state_list_%:=%''%''%' OR text LIKE '%client_state_list_%:=%''%''%')
4.1317 + AND text NOT LIKE '--%'
4.1318 + AND text NOT LIKE '%/%*%'
4.1319 + AND text NOT LIKE '%*%/';
4.1320 +-- AND line BETWEEN 2 AND 11;
4.1321 +
4.1322 + refresh_domain_ BOOLEAN := info_type_ = 'domain';
4.1323 + position_ NUMBER;
4.1324 + error_count_ NUMBER;
4.1325 + bulk_errors EXCEPTION;
4.1326 + PRAGMA EXCEPTION_INIT(bulk_errors, -24381);
4.1327 + list_type_ VARCHAR2(100);
4.1328 +
4.1329 + TYPE domain_array IS TABLE OF get_domain_info%ROWTYPE INDEX BY BINARY_INTEGER;
4.1330 + list_ domain_array;
4.1331 + BEGIN
4.1332 + -- Delete old values (they can only exist if this is not a full refresh)
4.1333 + IF NOT refresh_all_ THEN
4.1334 + IF refresh_domain_ THEN
4.1335 + DELETE FROM dictionary_sys_domain_tab
4.1336 + WHERE lu_name = lu_name_
4.1337 + AND package_name = package_name_;
4.1338 + ELSE
4.1339 + DELETE FROM dictionary_sys_state_tab
4.1340 + WHERE lu_name = lu_name_
4.1341 + AND package_name = package_name_;
4.1342 + END IF;
4.1343 + END IF;
4.1344 +
4.1345 + -- Clear variables
4.1346 + db_values_.DELETE;
4.1347 + client_values_.DELETE;
4.1348 + complete_values_.DELETE;
4.1349 +
4.1350 + IF refresh_domain_ THEN
4.1351 +
4.1352 + OPEN get_domain_info(package_name_,'db_value_list_');
4.1353 + FETCH get_domain_info BULK COLLECT INTO list_;
4.1354 + CLOSE get_domain_info;
4.1355 +
4.1356 + FOR j_ IN Nvl(list_.FIRST,0)..Nvl(list_.LAST,-1) LOOP
4.1357 + Tokenize_Lists___(list_(j_).list_values, db_values_);
4.1358 + END LOOP;
4.1359 +
4.1360 + list_.DELETE;
4.1361 + OPEN get_domain_info(package_name_,'client_value_list_');
4.1362 + FETCH get_domain_info BULK COLLECT INTO list_;
4.1363 + CLOSE get_domain_info;
4.1364 +
4.1365 + FOR j_ IN Nvl(list_.FIRST,0)..Nvl(list_.LAST,-1) LOOP
4.1366 + Tokenize_Lists___(list_(j_).list_values, client_values_);
4.1367 + END LOOP;
4.1368 + ELSE
4.1369 + FOR list IN get_state_info(package_name_) LOOP
4.1370 + -- Break down the list into single values in an array
4.1371 + IF list.list_type = 'db_state_list_' THEN
4.1372 + Tokenize_Lists___(list.list_values, db_values_);
4.1373 + ELSIF list.list_type = 'client_state_list_' THEN
4.1374 + Tokenize_Lists___(list.list_values, client_values_);
4.1375 + END IF;
4.1376 + END LOOP;
4.1377 + -- Get state events
4.1378 + -- translate db values to an PL/SQL collection
4.1379 +
4.1380 + END IF;
4.1381 +
4.1382 + IF db_values_.count > 0 THEN
4.1383 + -- Fill the result array with the rest of the necessary information
4.1384 + Fill_List_Array___(info_type_, lu_name_, package_name_, db_values_, client_values_, complete_values_);
4.1385 +
4.1386 + -- Insert all of the values into dictionary_sys_domain_tab
4.1387 + BEGIN
4.1388 + IF refresh_domain_ THEN
4.1389 + FORALL j IN Nvl(complete_values_.FIRST,0)..Nvl(complete_values_.LAST,-1) SAVE EXCEPTIONS
4.1390 + INSERT INTO dictionary_sys_domain_tab VALUES complete_values_(j);
4.1391 + ELSE
4.1392 + FORALL j IN Nvl(complete_values_.FIRST,0)..Nvl(complete_values_.LAST,-1) SAVE EXCEPTIONS
4.1393 + INSERT INTO dictionary_sys_state_tab VALUES complete_values_(j);
4.1394 + END IF;
4.1395 + EXCEPTION
4.1396 + WHEN bulk_errors THEN
4.1397 + error_count_ := SQL%BULK_EXCEPTIONS.COUNT;
4.1398 + Write_Error_Text___ (error_text_, ' '||to_char(error_count_)||' problem(s) when inserting dictionary information for '||info_type_||' package '||package_name_||'!');
4.1399 + FOR i IN 1..error_count_ LOOP
4.1400 + position_ := SQL%BULK_EXCEPTIONS(i).ERROR_INDEX - 1;
4.1401 +-- Write_Error_Text___ (error_text_, ' Position number '||to_char(position_));
4.1402 + Write_Error_Text___ (error_text_, ' '||Rpad(Get_Logical_Unit_Module(lu_name_),6)||':Error ' || SQLERRM(-SQL%BULK_EXCEPTIONS(i).ERROR_CODE)||', ', FALSE);
4.1403 + Write_Error_Text___ (error_text_, 'Db Value='||nvl(complete_values_(position_).db_value, 'NULL')||', ', FALSE);
4.1404 + Write_Error_Text___ (error_text_, 'Client Value='||nvl(complete_values_(position_).client_value, 'NULL'));
4.1405 + END LOOP;
4.1406 + END;
4.1407 + END IF;
4.1408 + END Refresh_Domain_State_Info___;
4.1409 +
4.1410 + PROCEDURE Refresh_Method_Arguments___ (
4.1411 + all_methods_ IN BOOLEAN,
4.1412 + start_time_ IN DATE )
4.1413 + IS
4.1414 + CURSOR get_met_arguments IS
4.1415 + SELECT package_name, object_name method_name, argument_name, position, data_type, in_out, nvl(to_number(overload), 0) overload
4.1416 + FROM user_arguments
4.1417 + WHERE package_name IS NOT NULL
4.1418 + AND argument_name IS NOT NULL
4.1419 + AND data_type IS NOT NULL
4.1420 + AND data_level = 0
4.1421 + ORDER BY package_name, object_name;
4.1422 +
4.1423 + CURSOR get_new_met_arguments IS
4.1424 + SELECT ua.package_name, ua.object_name method_name, ua.argument_name, ua.position, ua.data_type, ua.in_out, nvl(to_number(ua.overload), 0) overload
4.1425 + FROM user_arguments ua, dictionary_sys_package_tab p
4.1426 + WHERE ua.package_name IS NOT NULL
4.1427 + AND ua.argument_name IS NOT NULL
4.1428 + AND ua.data_type IS NOT NULL
4.1429 + AND ua.data_level = 0
4.1430 + AND ua.package_name = p.package_name
4.1431 + AND p.rowversion >= start_time_
4.1432 + ORDER BY ua.package_name, ua.object_name;
4.1433 +
4.1434 + lu_name_ VARCHAR2(30);
4.1435 + prev_pkg_ VARCHAR2(30) := 'NIL';
4.1436 + n_ NUMBER := 0;
4.1437 + position_ NUMBER;
4.1438 + error_count_ NUMBER;
4.1439 + bulk_errors EXCEPTION;
4.1440 + PRAGMA EXCEPTION_INIT(bulk_errors, -24381);
4.1441 +
4.1442 + TYPE met_argument_array IS TABLE OF get_met_arguments%ROWTYPE INDEX BY BINARY_INTEGER;
4.1443 + met_arguments met_argument_array;
4.1444 +
4.1445 + TYPE complete_array IS TABLE OF dictionary_sys_argument_tab%ROWTYPE INDEX BY BINARY_INTEGER;
4.1446 + all_arguments_ complete_array;
4.1447 + BEGIN
4.1448 + --
4.1449 + -- Fetch method argument information and delete old information
4.1450 + --
4.1451 + IF all_methods_ THEN
4.1452 + OPEN get_met_arguments;
4.1453 + FETCH get_met_arguments BULK COLLECT INTO met_arguments;
4.1454 + CLOSE get_met_arguments;
4.1455 + -- Remove all old information
4.1456 + -- ifs_assert_safe pemase 20060215
4.1457 + EXECUTE IMMEDIATE 'TRUNCATE TABLE dictionary_sys_argument_tab';
4.1458 + ELSE
4.1459 + OPEN get_new_met_arguments;
4.1460 + FETCH get_new_met_arguments BULK COLLECT INTO met_arguments;
4.1461 + CLOSE get_new_met_arguments;
4.1462 + -- Remove old information for all of the methods that is being updated
4.1463 + DELETE FROM dictionary_sys_argument_tab a
4.1464 + WHERE EXISTS (SELECT 1
4.1465 + FROM dictionary_sys_package_tab p
4.1466 + WHERE a.package_name = p.package_name
4.1467 + AND p.rowversion >= start_time_);
4.1468 + END IF;
4.1469 + --
4.1470 + -- Process method argument information
4.1471 + --
4.1472 + IF met_arguments.COUNT > 0 THEN
4.1473 + FOR i IN Nvl(met_arguments.FIRST,0)..Nvl(met_arguments.LAST,-1) LOOP
4.1474 + -- Find the lu name for the package if package has changed
4.1475 + IF (prev_pkg_ <> met_arguments(i).package_name) THEN
4.1476 + lu_name_ := Get_Logical_Unit(met_arguments(i).package_name, 'PACKAGE');
4.1477 + prev_pkg_ := met_arguments(i).package_name;
4.1478 + END IF;
4.1479 + IF lu_name_ IS NOT NULL THEN
4.1480 + -- Insert the values into the complete array
4.1481 + all_arguments_(n_).lu_name := lu_name_;
4.1482 + all_arguments_(n_).package_name := met_arguments(i).package_name;
4.1483 + all_arguments_(n_).method_name := met_arguments(i).method_name;
4.1484 + all_arguments_(n_).argument_name := met_arguments(i).argument_name;
4.1485 + all_arguments_(n_).argument_index := met_arguments(i).position;
4.1486 + all_arguments_(n_).argument_datatype := met_arguments(i).data_type;
4.1487 + all_arguments_(n_).argument_type := met_arguments(i).in_out;
4.1488 + all_arguments_(n_).overload := met_arguments(i).overload;
4.1489 + all_arguments_(n_).rowversion := SYSDATE;
4.1490 + n_ := n_ + 1;
4.1491 + END IF;
4.1492 + END LOOP;
4.1493 +
4.1494 + -- Insert all the values into dictionary_sys_argument_tab
4.1495 + BEGIN
4.1496 + FORALL j IN Nvl(all_arguments_.FIRST,0)..Nvl(all_arguments_.LAST,-1) SAVE EXCEPTIONS
4.1497 + INSERT INTO dictionary_sys_argument_tab VALUES all_arguments_(j);
4.1498 + EXCEPTION
4.1499 + WHEN bulk_errors THEN
4.1500 + error_count_ := SQL%BULK_EXCEPTIONS.COUNT;
4.1501 + Write_Error_Text___ (error_text_, ' '||to_char(error_count_)||' problem(s) when inserting dictionary method argument information!');
4.1502 + FOR i IN 1..error_count_ LOOP
4.1503 + position_ := SQL%BULK_EXCEPTIONS(i).ERROR_INDEX;
4.1504 + Write_Error_Text___ (error_text_, ' '||Rpad(Get_Logical_Unit_Module(all_arguments_(position_).lu_name),6)||':Error ' || SQLERRM(-SQL%BULK_EXCEPTIONS(i).ERROR_CODE)||', ', FALSE);
4.1505 + Write_Error_Text___ (error_text_, 'Lu Name='||nvl(all_arguments_(position_).lu_name, 'NULL')||', ', FALSE);
4.1506 + Write_Error_Text___ (error_text_, 'Package Name='||nvl(all_arguments_(position_).package_name, 'NULL')||', ', FALSE);
4.1507 + Write_Error_Text___ (error_text_, 'Method Name='||nvl(all_arguments_(position_).method_name, 'NULL')||', ', FALSE);
4.1508 + Write_Error_Text___ (error_text_, 'Argument Name='||nvl(all_arguments_(position_).argument_name, 'NULL'));
4.1509 + END LOOP;
4.1510 + END;
4.1511 +
4.1512 + END IF;
4.1513 + END Refresh_Method_Arguments___;
4.1514 +
4.1515 + PROCEDURE Refresh_Methods___ (
4.1516 + all_methods_ IN BOOLEAN,
4.1517 + start_time_ IN DATE )
4.1518 + IS
4.1519 + CURSOR get_methods IS
4.1520 + SELECT p.object_name pkg, procedure_name met
4.1521 + FROM user_procedures p
4.1522 + WHERE substr(object_name, -4) IN ('_API', '_RPI', '_SYS')
4.1523 + AND procedure_name IS NOT NULL
4.1524 + GROUP BY procedure_name, object_name
4.1525 + ORDER BY object_name;
4.1526 +
4.1527 + CURSOR get_pragma_methods IS
4.1528 + SELECT name pkg,
4.1529 + rtrim(ltrim(replace(replace(replace(
4.1530 + upper(substr(text,1,instr(text,',') - 1 ))
4.1531 + ,'(',''),'PRAGMA',''),'RESTRICT_REFERENCES',''))) met
4.1532 + FROM user_source
4.1533 + WHERE type = 'PACKAGE'
4.1534 + AND upper(text) LIKE '%PRAGMA%(%,%WNDS%'
4.1535 + AND text NOT LIKE '--%'
4.1536 + ORDER BY name;
4.1537 +
4.1538 + CURSOR get_new_methods IS
4.1539 + SELECT ua.object_name pkg, ua.procedure_name met
4.1540 + FROM user_procedures ua, dictionary_sys_package_tab p
4.1541 + WHERE substr(object_name, -4) IN ('_API', '_RPI', '_SYS')
4.1542 + AND p.package_name = ua.object_name
4.1543 + AND procedure_name IS NOT NULL
4.1544 + AND p.rowversion >= start_time_
4.1545 + GROUP BY ua.object_name, ua.procedure_name
4.1546 + ORDER BY ua.object_name;
4.1547 +
4.1548 + CURSOR get_new_pragma_methods IS
4.1549 + SELECT u.name pkg,
4.1550 + rtrim(ltrim(replace(replace(replace(
4.1551 + upper(substr(u.text,1,instr(u.text,',') - 1 ))
4.1552 + ,'(',''),'PRAGMA',''),'RESTRICT_REFERENCES',''))) met
4.1553 + FROM user_source u, dictionary_sys_package_tab p
4.1554 + WHERE u.type = 'PACKAGE'
4.1555 + AND upper(u.text) LIKE '%PRAGMA%(%,%WNDS%'
4.1556 + AND u.text NOT LIKE '--%'
4.1557 + AND u.name = p.package_name
4.1558 + AND p.rowversion >= start_time_
4.1559 + ORDER BY name;
4.1560 +
4.1561 + lu_name_ VARCHAR2(30);
4.1562 + prev_pkg_ VARCHAR2(30) := 'NIL';
4.1563 + n_ NUMBER := 0;
4.1564 + position_ NUMBER;
4.1565 + error_count_ NUMBER;
4.1566 + bulk_errors EXCEPTION;
4.1567 + PRAGMA EXCEPTION_INIT(bulk_errors, -24381);
4.1568 +
4.1569 + TYPE method_array IS TABLE OF get_methods%ROWTYPE INDEX BY BINARY_INTEGER;
4.1570 + methods_ method_array;
4.1571 +
4.1572 + TYPE complete_array IS TABLE OF dictionary_sys_method_tab%ROWTYPE INDEX BY BINARY_INTEGER;
4.1573 + complete_methods_ complete_array;
4.1574 + BEGIN
4.1575 + --
4.1576 + -- Fetch method information and delete old information
4.1577 + --
4.1578 + IF all_methods_ THEN
4.1579 + OPEN get_methods;
4.1580 + FETCH get_methods BULK COLLECT INTO methods_;
4.1581 + CLOSE get_methods;
4.1582 + -- Remove all old information for methods
4.1583 + -- ifs_assert_safe pemase 20060215
4.1584 + EXECUTE IMMEDIATE 'TRUNCATE TABLE dictionary_sys_method_tab';
4.1585 + ELSE
4.1586 + OPEN get_new_methods;
4.1587 + FETCH get_new_methods BULK COLLECT INTO methods_;
4.1588 + CLOSE get_new_methods;
4.1589 + -- Remove old information for all of the methods that is being updated
4.1590 + DELETE FROM dictionary_sys_method_tab m
4.1591 + WHERE EXISTS (SELECT 1
4.1592 + FROM dictionary_sys_package_tab p
4.1593 + WHERE p.package_name = m.package_name
4.1594 + AND p.rowversion >= start_time_);
4.1595 + END IF;
4.1596 + --
4.1597 + -- Process method information
4.1598 + --
4.1599 + IF methods_.COUNT > 0 THEN
4.1600 + FOR i IN Nvl(methods_.FIRST,0)..Nvl(methods_.LAST,-1) LOOP
4.1601 + IF (prev_pkg_ <> methods_(i).pkg) THEN
4.1602 + lu_name_ := Get_Logical_Unit(methods_(i).pkg, 'PACKAGE');
4.1603 + prev_pkg_ := methods_(i).pkg;
4.1604 + END IF;
4.1605 + IF lu_name_ IS NOT NULL THEN
4.1606 + method_ := replace(initcap(replace(methods_(i).met,'_',' ')),' ','_');
4.1607 + -- Insert the values into the complete array
4.1608 + complete_methods_(n_).lu_name := lu_name_;
4.1609 + complete_methods_(n_).package_name := methods_(i).pkg;
4.1610 + complete_methods_(n_).method_name := method_;
4.1611 + complete_methods_(n_).method_type := 'N';
4.1612 + complete_methods_(n_).rowversion := SYSDATE;
4.1613 + n_ := n_ + 1;
4.1614 + END IF;
4.1615 + END LOOP;
4.1616 +
4.1617 + -- Insert all the values into dictionary_sys_method_tab
4.1618 + BEGIN
4.1619 + FORALL j IN Nvl(complete_methods_.FIRST,0)..Nvl(complete_methods_.LAST,-1) SAVE EXCEPTIONS
4.1620 + INSERT INTO dictionary_sys_method_tab VALUES complete_methods_(j);
4.1621 + EXCEPTION
4.1622 + WHEN bulk_errors THEN
4.1623 + error_count_ := SQL%BULK_EXCEPTIONS.COUNT;
4.1624 + Write_Error_Text___ (error_text_, ' '||to_char(error_count_)||' problem(s) when inserting dictionary method information!');
4.1625 + FOR i IN 1..error_count_ LOOP
4.1626 + position_ := SQL%BULK_EXCEPTIONS(i).ERROR_INDEX;
4.1627 + Write_Error_Text___ (error_text_, ' '||Rpad(Get_Logical_Unit_Module(complete_methods_(position_).lu_name),6)||':Error ' || SQLERRM(-SQL%BULK_EXCEPTIONS(i).ERROR_CODE)||', ', FALSE);
4.1628 + Write_Error_Text___ (error_text_, 'Lu Name='||nvl(complete_methods_(position_).lu_name, 'NULL')||', ', FALSE);
4.1629 + Write_Error_Text___ (error_text_, 'Package Name='||nvl(complete_methods_(position_).package_name, 'NULL')||', ', FALSE);
4.1630 + Write_Error_Text___ (error_text_, 'Method Name='||nvl(complete_methods_(position_).method_name, 'NULL'));
4.1631 + END LOOP;
4.1632 + END;
4.1633 + END IF;
4.1634 +
4.1635 + -- Clear arrays
4.1636 + methods_.DELETE;
4.1637 + complete_methods_.DELETE;
4.1638 +
4.1639 + --
4.1640 + -- Fetch pragma method information
4.1641 + --
4.1642 + IF all_methods_ THEN
4.1643 + OPEN get_pragma_methods;
4.1644 + FETCH get_pragma_methods BULK COLLECT INTO methods_;
4.1645 + CLOSE get_pragma_methods;
4.1646 + ELSE
4.1647 + OPEN get_new_pragma_methods;
4.1648 + FETCH get_new_pragma_methods BULK COLLECT INTO methods_;
4.1649 + CLOSE get_new_pragma_methods;
4.1650 + END IF;
4.1651 + --
4.1652 + -- Process pragma method information
4.1653 + --
4.1654 + IF methods_.COUNT > 0 THEN
4.1655 + -- Initiate sub type
4.1656 + pkg_lu_sub_type_ := 'N';
4.1657 + FOR i IN Nvl(methods_.FIRST,0)..Nvl(methods_.LAST,-1) LOOP
4.1658 + -- Find the name of the LU for every new package
4.1659 + IF (prev_pkg_ <> methods_(i).pkg) THEN
4.1660 + lu_name_ := Get_Logical_Unit(methods_(i).pkg, 'PACKAGE');
4.1661 + prev_pkg_ := methods_(i).pkg;
4.1662 + END IF;
4.1663 + IF lu_name_ IS NOT NULL THEN
4.1664 + method_ := replace(initcap(replace(methods_(i).met,'_',' ')),' ','_');
4.1665 + -- Update the record in dictionary_sys_method_tab
4.1666 + BEGIN
4.1667 + UPDATE dictionary_sys_method_tab
4.1668 + SET method_type = 'P',
4.1669 + rowversion = SYSDATE
4.1670 + WHERE lu_name = lu_name_
4.1671 + AND package_name = methods_(i).pkg
4.1672 + AND method_name = method_;
4.1673 + IF SQL%NOTFOUND THEN
4.1674 + INSERT INTO dictionary_sys_method_tab
4.1675 + (lu_name, package_name, method_name, method_type, rowversion)
4.1676 + VALUES
4.1677 + (lu_name_, methods_(i).pkg, method_, 'P', SYSDATE);
4.1678 + END IF;
4.1679 + EXCEPTION
4.1680 + WHEN OTHERS THEN
4.1681 + Write_Error_Text___ (error_text_, ' '||Rpad(Get_Logical_Unit_Module(lu_name_),6)||':Undefined problem when inserting dictionary information for PRAGMA-method '||method_||' in package '||methods_(i).pkg||', ', FALSE);
4.1682 + Write_Error_Text___ (error_text_, 'Lu Name='||nvl(lu_name_, 'NULL')||', ', FALSE);
4.1683 + Write_Error_Text___ (error_text_, 'Package Name='||nvl(methods_(i).pkg, 'NULL')||', ', FALSE);
4.1684 + Write_Error_Text___ (error_text_, 'Method Name='||nvl(method_, 'NULL'));
4.1685 + END;
4.1686 + -- Handle if current package contains a state machine (identified by a specific PRAGMA method)
4.1687 + -- This call set the global variable pkg_lu_sub_type
4.1688 + Handle_Possible_State_Pkg___(lu_name_, method_);
4.1689 + -- Fetch and insert state information if current package contains a state machine
4.1690 + IF pkg_lu_sub_type_ = 'S' THEN
4.1691 + IF (refresh_mode_ != 'LIGHT') THEN
4.1692 + Refresh_Domain_State_Info___('state', lu_name_, methods_(i).pkg);
4.1693 + END IF;
4.1694 + -- Reset the sub_type to avoid multiple unnecessary searches
4.1695 + pkg_lu_sub_type_ := 'N';
4.1696 + END IF;
4.1697 + END IF;
4.1698 + END LOOP;
4.1699 + END IF;
4.1700 + --
4.1701 + -- Update special handled methods to PRAGMA (Read-only) methods
4.1702 + --
4.1703 + UPDATE dictionary_sys_method_tab t
4.1704 + SET method_type = 'P'
4.1705 + WHERE upper(t.method_name)
4.1706 + IN ('ENUMERATE',
4.1707 + 'EXIST',
4.1708 + 'EXIST_DB',
4.1709 + 'LOCK__',
4.1710 + 'LANGUAGE_REFRESHED',
4.1711 + 'INIT',
4.1712 + 'FINITE_STATE_DECODE__',
4.1713 + 'FINITE_STATE_ENCODE__',
4.1714 + 'ENUMERATE_STATES__',
4.1715 + 'FINITE_STATE_EVENTS__',
4.1716 + 'ENUMERATE_EVENTS__');
4.1717 + END Refresh_Methods___;
4.1718 +
4.1719 +BEGIN
4.1720 + General_SYS.Init_Method(service_, '&PKG', 'Rebuild_Dictionary_Storage_');
4.1721 + Write_Error_Text___ (error_text_, '-------------------------------------------------------------');
4.1722 + Write_Error_Text___ (error_text_, 'Dictionary Cache started');
4.1723 + Write_Error_Text___ (error_text_, '-------------------------------------------------------------');
4.1724 + --
4.1725 + -- Validate refresh mode before proceeding
4.1726 + --
4.1727 + IF refresh_mode_ IS NULL OR refresh_mode_ NOT IN ('FULL', 'PARTIAL', 'VIEWS', 'PACKAGES', 'LIGHT') THEN
4.1728 + Error_SYS.Appl_General(service_, 'INVALIDMODE: Invalid Refresh Mode! Mode should be one of the values [:P1]', 'FULL, PARTIAL, VIEWS, PACKAGES');
4.1729 + END IF;
4.1730 + --
4.1731 + -- If a refresh is not necessary and a full refresh is not ordered, abort immediately...
4.1732 + -- This is more effecient than doing a complete search for packages and views.
4.1733 + --
4.1734 + -- In this procedure Dbms_Output should be used instead of Trace_SYS to enable
4.1735 + -- traces during installation time.
4.1736 + --
4.1737 + IF NOT refresh_all_ THEN
4.1738 + Check_Dictionary_Storage_(rebuild_needed_);
4.1739 + IF rebuild_needed_ = 0 THEN
4.1740 + Write_Error_Text___ (error_text_, 'Dictionary Cache is already up-to-date.');
4.1741 + RETURN(error_text_);
4.1742 + END IF;
4.1743 +
4.1744 + -- Find last update time
4.1745 + OPEN get_last_update;
4.1746 + FETCH get_last_update INTO last_update_;
4.1747 + CLOSE get_last_update;
4.1748 +
4.1749 + -- Set full refresh mode if no dictionary data exist
4.1750 + IF last_update_ IS NULL THEN
4.1751 + refresh_all_ := TRUE;
4.1752 + END IF;
4.1753 + END IF;
4.1754 +
4.1755 + IF refresh_all_ THEN
4.1756 + Write_Error_Text___ (error_text_, 'Full Refresh of Dictionary Cache!');
4.1757 +
4.1758 + -- Fetch the objects to update
4.1759 + OPEN get_all_pkgs;
4.1760 + FETCH get_all_pkgs BULK COLLECT INTO packages_;
4.1761 + CLOSE get_all_pkgs;
4.1762 +
4.1763 + OPEN get_all_views;
4.1764 + FETCH get_all_views BULK COLLECT INTO views_;
4.1765 + CLOSE get_all_views;
4.1766 + ELSE
4.1767 + -- Spool information about what "mode" is used
4.1768 + IF refresh_views_ AND refresh_pkgs_ THEN
4.1769 + Write_Error_Text___ (error_text_, 'Partial Refresh of Dictionary Cache!');
4.1770 + ELSIF refresh_pkgs_ THEN
4.1771 + Write_Error_Text___ (error_text_, 'Partial Refresh of Dictionary Cache only for packages!');
4.1772 + ELSIF refresh_views_ THEN
4.1773 + Write_Error_Text___ (error_text_, 'Partial Refresh of Dictionary Cache only for views!');
4.1774 + END IF;
4.1775 + Write_Error_Text___ (error_text_, 'Last Update of Dictionary Cache occured at '||to_char(last_update_, 'YYYY-MM-DD HH24:MI:SS'));
4.1776 +
4.1777 + -- Fetch the objects to update
4.1778 + IF refresh_pkgs_ THEN
4.1779 + OPEN get_pkgs_to_update(last_update_);
4.1780 + FETCH get_pkgs_to_update BULK COLLECT INTO packages_;
4.1781 + CLOSE get_pkgs_to_update;
4.1782 + END IF;
4.1783 +
4.1784 + IF refresh_views_ THEN
4.1785 + OPEN get_views_to_update(last_update_);
4.1786 + FETCH get_views_to_update BULK COLLECT INTO views_;
4.1787 + CLOSE get_views_to_update;
4.1788 + END IF;
4.1789 + END IF;
4.1790 + --
4.1791 + -- Refresh package and method information
4.1792 + --
4.1793 + Write_Error_Text___ (error_text_, ' -------------------------------------------------------------');
4.1794 + Write_Error_Text___ (error_text_, ' Dictionary Cache is being updated for '||to_char(packages_.count)||' Packages');
4.1795 + Write_Error_Text___ (error_text_, ' -------------------------------------------------------------');
4.1796 + IF packages_.COUNT > 0 THEN
4.1797 + -- Save start date for package refresh
4.1798 + start_time_ := SYSDATE;
4.1799 + -- Remove old information if full refresh
4.1800 + IF refresh_all_ THEN
4.1801 + -- ifs_assert_safe pemase 20060215
4.1802 + EXECUTE IMMEDIATE 'TRUNCATE TABLE dictionary_sys_tab';
4.1803 + -- ifs_assert_safe pemase 20060215
4.1804 + EXECUTE IMMEDIATE 'TRUNCATE TABLE dictionary_sys_package_tab';
4.1805 + -- ifs_assert_safe pemase 20060215
4.1806 + EXECUTE IMMEDIATE 'TRUNCATE TABLE dictionary_sys_domain_tab';
4.1807 + -- ifs_assert_safe pemase 20060215
4.1808 + EXECUTE IMMEDIATE 'TRUNCATE TABLE dictionary_sys_state_tab';
4.1809 + -- ifs_assert_safe pemase 20060215
4.1810 + EXECUTE IMMEDIATE 'TRUNCATE TABLE dictionary_sys_state_event_tab';
4.1811 + END IF;
4.1812 +
4.1813 + FOR i IN Nvl(packages_.FIRST,0)..Nvl(packages_.LAST,-1) LOOP
4.1814 + pkg_module_ := NULL;
4.1815 + pkg_lu_name_ := NULL;
4.1816 + pkg_lu_type_ := NULL;
4.1817 + pkg_lu_sub_type_ := 'N';
4.1818 + FOR pkg_info IN get_package_info(packages_(i)) LOOP
4.1819 + -- Investigate module, lu name and sub type of the lu
4.1820 + IF (pkg_info.gtype = 'M') THEN
4.1821 + pkg_module_ := substr(pkg_info.global, 1, 6);
4.1822 + ELSIF pkg_info.gtype IN ('L', 'S') THEN
4.1823 + pkg_lu_name_ := pkg_info.global;
4.1824 + pkg_lu_type_ := pkg_info.gtype;
4.1825 + ELSIF pkg_info.gtype = 'D' THEN
4.1826 + pkg_lu_sub_type_ := pkg_info.gtype;
4.1827 + END IF;
4.1828 + END LOOP;
4.1829 + IF pkg_lu_name_ IS NOT NULL AND pkg_module_ IS NOT NULL THEN
4.1830 + -- Insert the information into the dictionary
4.1831 + Insert_Package_Information___(pkg_lu_name_,
4.1832 + pkg_module_,
4.1833 + packages_(i),
4.1834 + pkg_lu_type_,
4.1835 + pkg_lu_sub_type_);
4.1836 +
4.1837 + -- Refresh domain or state information depending on sub type of the LU (stored in global variable)
4.1838 + IF pkg_lu_sub_type_ = 'D' THEN
4.1839 + -- Refresh domain information if this is identified as an IID package
4.1840 + IF (refresh_mode_ != 'LIGHT') THEN
4.1841 + Refresh_Domain_State_Info___('domain', pkg_lu_name_, packages_(i));
4.1842 + END IF;
4.1843 + END IF;
4.1844 + ELSE
4.1845 + Write_Error_Text___ (error_text_, ' ??????:Missing Module- or LU-information for package '||packages_(i)||'! Make sure that correct package globals exist for '||packages_(i));
4.1846 + END IF;
4.1847 + END LOOP;
4.1848 + --
4.1849 + -- Refresh methods once all packages are updated
4.1850 + --
4.1851 + Refresh_Methods___(refresh_all_, start_time_);
4.1852 + --
4.1853 + -- Refresh arguments for methods once all methods are updated
4.1854 + --
4.1855 + Refresh_Method_Arguments___(refresh_all_, start_time_);
4.1856 +
4.1857 +/* Commented for now, since the code has several bugs. Maybe corrected in future Service Pack
4.1858 + IF (refresh_mode_ != 'LIGHT') THEN
4.1859 + IF refresh_all_ THEN
4.1860 + Rebuild_All_State_Event___(TRUE);
4.1861 + Rebuild_State_Transitions___(TRUE);
4.1862 + Rebuild_State_Machine___(TRUE);
4.1863 + ELSE
4.1864 + Rebuild_All_State_Event___(FALSE);
4.1865 + Rebuild_State_Transitions___(FALSE);
4.1866 + Rebuild_State_Machine___(FALSE);
4.1867 + END IF;
4.1868 + END IF;
4.1869 +*/
4.1870 + END IF;
4.1871 + --
4.1872 + -- Refresh view information
4.1873 + --
4.1874 + Write_Error_Text___ (error_text_, ' -------------------------------------------------------------');
4.1875 + Write_Error_Text___ (error_text_, ' Dictionary Cache is being updated for '||to_char(views_.count)||' Views');
4.1876 + Write_Error_Text___ (error_text_, ' -------------------------------------------------------------');
4.1877 + IF views_.COUNT > 0 THEN
4.1878 + -- Save start date for view refresh
4.1879 + start_time_ := SYSDATE;
4.1880 + -- Remove old information if full refresh
4.1881 + IF refresh_all_ THEN
4.1882 + -- ifs_assert_safe pemase 20060215
4.1883 + EXECUTE IMMEDIATE 'TRUNCATE TABLE dictionary_sys_view_tab';
4.1884 + ELSE
4.1885 + FORALL j IN Nvl(views_.FIRST,0)..Nvl(views_.LAST,-1)
4.1886 + DELETE FROM dictionary_sys_view_tab
4.1887 + WHERE view_name = views_(j);
4.1888 + END IF;
4.1889 +
4.1890 + FOR i IN Nvl(views_.FIRST,0)..Nvl(views_.LAST,-1) LOOP
4.1891 + OPEN get_view_comments(views_(i));
4.1892 + FETCH get_view_comments INTO view_comment_;
4.1893 + CLOSE get_view_comments;
4.1894 + view_module_ := NULL;
4.1895 + view_lu_name_ := NULL;
4.1896 + view_module_ := upper(substr(Dictionary_SYS.Comment_Value_('MODULE', view_comment_), 1, 6));
4.1897 + IF view_module_ = 'IGNORE' THEN
4.1898 + view_lu_name_ := 'IGNORE';
4.1899 + END IF;
4.1900 + IF view_lu_name_ IS NULL THEN
4.1901 + view_lu_name_ := Dictionary_SYS.Comment_Value_('LU', view_comment_);
4.1902 + IF view_lu_name_ IS NULL THEN
4.1903 + view_lu_name_ := Dictionary_SYS.Comment_Value_('SERVICE', view_comment_);
4.1904 + END IF;
4.1905 + END IF;
4.1906 + view_prompt_ := Dictionary_SYS.Comment_Value_('PROMPT', view_comment_);
4.1907 + IF view_module_ IS NOT NULL AND view_lu_name_ IS NOT NULL THEN
4.1908 + IF view_module_ != 'IGNORE' THEN
4.1909 + Insert_View_Information___(view_lu_name_,
4.1910 + view_module_,
4.1911 + views_(i),
4.1912 + view_prompt_);
4.1913 + END IF;
4.1914 + ELSE
4.1915 + Write_Error_Text___ (error_text_, ' ??????:Missing Module- or LU-information for view '||views_(i)||'! Make sure that correct view comments exist for '||views_(i));
4.1916 + END IF;
4.1917 + END LOOP;
4.1918 + --
4.1919 + -- Refresh view columns once all view are updated
4.1920 + --
4.1921 + Refresh_View_Columns___(refresh_all_, start_time_);
4.1922 +
4.1923 + END IF;
4.1924 +
4.1925 + IF NOT refresh_all_ THEN
4.1926 + --
4.1927 + -- Delete information for objects no longer in the database
4.1928 + --
4.1929 + DELETE FROM dictionary_sys_package_tab p
4.1930 + WHERE NOT EXISTS (SELECT 1
4.1931 + FROM user_objects o
4.1932 + WHERE o.object_type = 'PACKAGE'
4.1933 + AND p.package_name = o.object_name);
4.1934 +
4.1935 + DELETE FROM dictionary_sys_method_tab m
4.1936 + WHERE NOT EXISTS (SELECT 1
4.1937 + FROM dictionary_sys_package_tab p
4.1938 + WHERE m.package_name = p.package_name);
4.1939 +
4.1940 + DELETE FROM dictionary_sys_view_tab v
4.1941 + WHERE NOT EXISTS (SELECT 1
4.1942 + FROM user_objects o
4.1943 + WHERE o.object_type = 'VIEW'
4.1944 + AND v.view_name = o.object_name);
4.1945 +
4.1946 + DELETE FROM dictionary_sys_view_column_tab c
4.1947 + WHERE NOT EXISTS (SELECT 1
4.1948 + FROM dictionary_sys_view_tab v
4.1949 + WHERE v.lu_name = c.lu_name
4.1950 + AND v.view_name = c.view_name);
4.1951 +
4.1952 + DELETE FROM dictionary_sys_tab l
4.1953 + WHERE NOT EXISTS (SELECT 1
4.1954 + FROM dictionary_sys_package_tab p
4.1955 + WHERE p.lu_name = l.lu_name
4.1956 + UNION
4.1957 + SELECT 1
4.1958 + FROM dictionary_sys_view_tab v
4.1959 + WHERE v.lu_name = l.lu_name);
4.1960 + END IF;
4.1961 +
4.1962 + --
4.1963 + -- Attempt 1:
4.1964 + -- At this point we have the basic information about the dictionary
4.1965 + -- but some base views are missing. This is the first method to fix it.
4.1966 + --
4.1967 + UPDATE dictionary_sys_view_tab
4.1968 + SET view_type = 'B'
4.1969 + WHERE lu_name NOT IN ( SELECT lu_name
4.1970 + FROM dictionary_sys_view_tab
4.1971 + WHERE view_type = 'B' )
4.1972 + AND view_name IN ( SELECT view_name
4.1973 + FROM dictionary_sys_view_tab dv,
4.1974 + dictionary_sys_package_tab dp
4.1975 + WHERE dv.lu_name = dp.lu_name
4.1976 + AND ( dv.view_name || '_API') = dp.package_name );
4.1977 +
4.1978 + --
4.1979 + -- Attempt 2:
4.1980 + -- Set the first view as base view for Logical Units that does not yet have been
4.1981 + -- assigned any base view according to naming standard rules.
4.1982 + --
4.1983 + UPDATE dictionary_sys_view_tab
4.1984 + SET view_type = 'B'
4.1985 + WHERE lu_name NOT IN (SELECT lu_name
4.1986 + FROM dictionary_sys_view_tab
4.1987 + WHERE view_type = 'B')
4.1988 + AND view_index = 1;
4.1989 + --
4.1990 + -- Set prompts for all Logical Units that didn't have a clearly defined view with a prompt.
4.1991 + -- Create the prompt from the Logical Unit name.
4.1992 + --
4.1993 + UPDATE dictionary_sys_tab
4.1994 + SET lu_prompt = replace(initcap(Dictionary_SYS.Clientnametodbname_(lu_name)),'_',' ')
4.1995 + WHERE lu_prompt IS NULL;
4.1996 +
4.1997 + Cache_Management_API.Refresh_Cache('Dictionary');
4.1998 +
4.1999 + --
4.2000 + -- Call activity ManageApplicationServerCache.ClearDataDictionaryCache
4.2001 + --
4.2002 + DECLARE
4.2003 + record_ PLSQLAP_Record_API.type_record_;
4.2004 + BEGIN
4.2005 + record_ := PLSQLAP_Record_API.New_Record('');
4.2006 + PLSQLAP_Server_API.Invoke_Record_('ManageApplicationServerCache', 'ClearDataDictionaryCache', record_);
4.2007 + PLSQLAP_Record_API.Clear_Record(record_);
4.2008 + EXCEPTION
4.2009 + WHEN OTHERS THEN
4.2010 + NULL; -- Don't stop if error occurs
4.2011 + PLSQLAP_Record_API.Clear_Record(record_);
4.2012 + END;
4.2013 +
4.2014 + Write_Error_Text___ (error_text_, '-------------------------------------------------------------');
4.2015 + Write_Error_Text___ (error_text_, 'Dictionary Cache finished');
4.2016 + Write_Error_Text___ (error_text_, '-------------------------------------------------------------');
4.2017 + RETURN(error_text_);
4.2018 +
4.2019 +END Rebuild_Dictionary_Storage___;
4.2020 +
4.2021 +
4.2022 +-----------------------------------------------------------------------------
4.2023 +-------------------- SERVICE SPECIFIC PRIVATE METHODS -----------------------
4.2024 +-----------------------------------------------------------------------------
4.2025 +
4.2026 +-----------------------------------------------------------------------------
4.2027 +-- Property fetching routines for run-time use (private)
4.2028 +-----------------------------------------------------------------------------
4.2029 +
4.2030 +-- Modified implementation to use dictionary cache. Designtime version moved to Design_SYS
4.2031 +PROCEDURE Enumerate_Logical_Units__ (
4.2032 + lu_list1_ OUT VARCHAR2,
4.2033 + lu_list2_ OUT VARCHAR2,
4.2034 + lu_list3_ OUT VARCHAR2,
4.2035 + lu_list4_ OUT VARCHAR2 )
4.2036 +IS
4.2037 + temp_ lu_struct_type;
4.2038 + limit_ NUMBER := 31000;
4.2039 + n_ NUMBER := 1;
4.2040 +
4.2041 + CURSOR units IS
4.2042 + SELECT lu_name
4.2043 + FROM dictionary_sys_tab
4.2044 + WHERE lu_type = 'L'
4.2045 + ORDER BY lu_name;
4.2046 +BEGIN
4.2047 + --
4.2048 + -- Init used elements
4.2049 + --
4.2050 + temp_(1) := NULL;
4.2051 + temp_(2) := NULL;
4.2052 + temp_(3) := NULL;
4.2053 + temp_(4) := NULL;
4.2054 + --
4.2055 + -- Fetch all packages and views associated with a logical unit
4.2056 + -- Convert to client naming and append to list
4.2057 + --
4.2058 + FOR unit IN units LOOP
4.2059 + temp_(n_) := temp_(n_)||unit.lu_name||field_separator_;
4.2060 + IF (length(temp_(n_)) > limit_) THEN
4.2061 + n_ := n_ + 1;
4.2062 + END IF;
4.2063 + END LOOP;
4.2064 + --
4.2065 + -- Return complete lists
4.2066 + --
4.2067 + lu_list1_ := temp_(1);
4.2068 + lu_list2_ := temp_(2);
4.2069 + lu_list3_ := temp_(3);
4.2070 + lu_list4_ := temp_(4);
4.2071 +END Enumerate_Logical_Units__;
4.2072 +
4.2073 +PROCEDURE Get_Logical_Unit_Properties__ (
4.2074 + lu_name_ IN VARCHAR2,
4.2075 + view_list_ OUT VARCHAR2,
4.2076 + package_list_ OUT VARCHAR2,
4.2077 + method_list_ OUT VARCHAR2,
4.2078 + all_methods_ IN VARCHAR2 DEFAULT 'TRUE' )
4.2079 +IS
4.2080 +BEGIN
4.2081 + Get_Logical_Unit_Views__(lu_name_, view_list_);
4.2082 + Get_Logical_Unit_Packages__(lu_name_, package_list_);
4.2083 + Get_Logical_Unit_Methods__(lu_name_, method_list_, all_methods_);
4.2084 +END Get_Logical_Unit_Properties__;
4.2085 +
4.2086 +PROCEDURE Get_Logical_Unit_Properties2__ (
4.2087 + lu_name_ IN VARCHAR2,
4.2088 + view_list_ OUT VARCHAR2,
4.2089 + package_list_ OUT VARCHAR2,
4.2090 + method_list_ OUT VARCHAR2,
4.2091 + all_methods_ IN VARCHAR2 DEFAULT 'TRUE' )
4.2092 +IS
4.2093 +BEGIN
4.2094 + Get_Logical_Unit_Views__(lu_name_, view_list_);
4.2095 + Get_Logical_Unit_Packages__(lu_name_, package_list_);
4.2096 + Get_LU_Method_Types__(lu_name_, method_list_);
4.2097 +END Get_Logical_Unit_Properties2__;
4.2098 +
4.2099 +PROCEDURE Get_Logical_Unit_Views__ (
4.2100 + lu_name_ IN VARCHAR2,
4.2101 + view_list_ OUT VARCHAR2 )
4.2102 +IS
4.2103 +BEGIN
4.2104 + view_list_ := Get_Logical_Unit_Views__(lu_name_);
4.2105 +END Get_Logical_Unit_Views__;
4.2106 +
4.2107 +FUNCTION Get_Logical_Unit_Views__ (
4.2108 + lu_name_ IN VARCHAR2) RETURN VARCHAR2
4.2109 +IS
4.2110 + view_array_ object_array;
4.2111 + view_list_ VARCHAR2(4000);
4.2112 +
4.2113 + CURSOR get_lu_views IS
4.2114 + SELECT view_name
4.2115 + FROM dictionary_sys_view_tab
4.2116 + WHERE lu_name = lu_name_
4.2117 + ORDER BY view_index;
4.2118 +BEGIN
4.2119 + OPEN get_lu_views;
4.2120 + FETCH get_lu_views BULK COLLECT INTO view_array_;
4.2121 + CLOSE get_lu_views;
4.2122 + IF view_array_.count > 0 THEN
4.2123 + FOR i IN Nvl(view_array_.first, 0)..Nvl(view_array_.last, -1) LOOP
4.2124 + view_list_ := view_list_||view_array_(i)||field_separator_;
4.2125 + END LOOP;
4.2126 + END IF;
4.2127 + RETURN view_list_;
4.2128 +END Get_Logical_Unit_Views__;
4.2129 +
4.2130 +PROCEDURE Get_Logical_Unit_Packages__ (
4.2131 + lu_name_ IN VARCHAR2,
4.2132 + package_list_ OUT VARCHAR2 )
4.2133 +IS
4.2134 +BEGIN
4.2135 + package_list_ := Get_Logical_Unit_Packages__(lu_name_);
4.2136 +END Get_Logical_Unit_Packages__;
4.2137 +
4.2138 +
4.2139 +FUNCTION Get_Logical_Unit_Packages__ (
4.2140 + lu_name_ IN VARCHAR2 ) RETURN VARCHAR2
4.2141 +IS
4.2142 + package_array_ object_array;
4.2143 + package_list_ VARCHAR2(4000);
4.2144 +
4.2145 + CURSOR get_lu_packages IS
4.2146 + SELECT package_name
4.2147 + FROM dictionary_sys_package_tab
4.2148 + WHERE lu_name = lu_name_
4.2149 + ORDER BY package_index;
4.2150 +BEGIN
4.2151 + OPEN get_lu_packages;
4.2152 + FETCH get_lu_packages BULK COLLECT INTO package_array_;
4.2153 + CLOSE get_lu_packages;
4.2154 + IF package_array_.count > 0 THEN
4.2155 + FOR i IN Nvl(package_array_.first, 0)..Nvl(package_array_.last, -1) LOOP
4.2156 + package_list_ := package_list_||package_array_(i)||field_separator_;
4.2157 + END LOOP;
4.2158 + END IF;
4.2159 + RETURN package_list_;
4.2160 +END Get_Logical_Unit_Packages__;
4.2161 +
4.2162 +PROCEDURE Get_Logical_Unit_Methods__ (
4.2163 + lu_name_ IN VARCHAR2,
4.2164 + method_list_ OUT VARCHAR2,
4.2165 + all_methods_ IN VARCHAR2 DEFAULT 'TRUE' )
4.2166 +IS
4.2167 + method_array_ object_array;
4.2168 + package_array_ object_array;
4.2169 +
4.2170 + CURSOR get_all_lu_methods IS
4.2171 + SELECT package_name, method_name
4.2172 + FROM dictionary_sys_method_tab
4.2173 + WHERE lu_name = lu_name_
4.2174 + ORDER BY package_name;
4.2175 +
4.2176 + CURSOR get_lu_methods IS
4.2177 + SELECT package_name, method_name
4.2178 + FROM dictionary_sys_method_tab
4.2179 + WHERE lu_name = lu_name_
4.2180 + AND method_type = 'N'
4.2181 + ORDER BY package_name;
4.2182 +
4.2183 +BEGIN
4.2184 + IF all_methods_ = 'TRUE' THEN
4.2185 + OPEN get_all_lu_methods;
4.2186 + FETCH get_all_lu_methods BULK COLLECT INTO package_array_, method_array_;
4.2187 + CLOSE get_all_lu_methods;
4.2188 + ELSE
4.2189 + OPEN get_lu_methods;
4.2190 + FETCH get_lu_methods BULK COLLECT INTO package_array_, method_array_;
4.2191 + CLOSE get_lu_methods;
4.2192 + END IF;
4.2193 +
4.2194 + IF method_array_.count > 0 THEN
4.2195 + FOR lu_methods IN Nvl(method_array_.first, 0)..Nvl(method_array_.last, -1) LOOP
4.2196 + method_list_ := method_list_||package_array_(lu_methods)||'.'||method_array_(lu_methods)||field_separator_;
4.2197 + END LOOP;
4.2198 + END IF;
4.2199 +END Get_Logical_Unit_Methods__;
4.2200 +
4.2201 +PROCEDURE Get_LU_Method_Types__ (
4.2202 + lu_name_ IN VARCHAR2,
4.2203 + method_list_ OUT VARCHAR2 )
4.2204 +IS
4.2205 + method_array_ object_array;
4.2206 + package_array_ object_array;
4.2207 + type_array_ object_array;
4.2208 +
4.2209 + CURSOR get_all_lu_methods IS
4.2210 + SELECT package_name, method_name, method_type
4.2211 + FROM dictionary_sys_method_tab
4.2212 + WHERE lu_name = lu_name_
4.2213 + ORDER BY package_name;
4.2214 +
4.2215 +BEGIN
4.2216 + OPEN get_all_lu_methods;
4.2217 + FETCH get_all_lu_methods BULK COLLECT INTO package_array_, method_array_, type_array_;
4.2218 + CLOSE get_all_lu_methods;
4.2219 +
4.2220 + IF method_array_.count > 0 THEN
4.2221 + FOR lu_methods IN Nvl(method_array_.first, 0)..Nvl(method_array_.last, -1) LOOP
4.2222 + method_list_ := method_list_||package_array_(lu_methods)||'.'||method_array_(lu_methods)||field_separator_||type_array_(lu_methods)||record_separator_;
4.2223 + END LOOP;
4.2224 + END IF;
4.2225 +END Get_LU_Method_Types__;
4.2226 +
4.2227 +FUNCTION Get_State_Encode_Method__ (
4.2228 + view_name_ IN VARCHAR2 ) RETURN VARCHAR2
4.2229 +IS
4.2230 +BEGIN
4.2231 + RETURN(Check_Method_From_View___(view_name_, 'FINITE_STATE_ENCODE__'));
4.2232 +END Get_State_Encode_Method__;
4.2233 +
4.2234 +FUNCTION Get_State_Enumerate_Method__ (
4.2235 + view_name_ IN VARCHAR2 ) RETURN VARCHAR2
4.2236 +IS
4.2237 +BEGIN
4.2238 + RETURN(Check_Method_From_View___(view_name_, 'ENUMERATE_STATES__'));
4.2239 +END Get_State_Enumerate_Method__;
4.2240 +
4.2241 +-----------------------------------------------------------------------------
4.2242 +-------------------- SERVICE SPECIFIC PROTECTED METHODS ---------------------
4.2243 +-----------------------------------------------------------------------------
4.2244 +
4.2245 +-----------------------------------------------------------------------------
4.2246 +-- Naming conversions for client versus database object names
4.2247 +-----------------------------------------------------------------------------
4.2248 +
4.2249 +FUNCTION Dbnametoclientname_ (
4.2250 + db_name_ IN VARCHAR2 ) RETURN VARCHAR2
4.2251 +IS
4.2252 + cnt_ NUMBER;
4.2253 +BEGIN
4.2254 + -- Find number of trailing underscores
4.2255 + cnt_ := length(db_name_) - length(rtrim(db_name_,'_'));
4.2256 + -- Return client name with leading underscores
4.2257 + IF (cnt_ = 1) THEN
4.2258 + RETURN('_'||replace(initcap(db_name_),'_',''));
4.2259 + ELSIF (cnt_ = 2) THEN
4.2260 + RETURN('__'||replace(initcap(db_name_),'_',''));
4.2261 + END IF;
4.2262 + RETURN(replace(initcap(db_name_),'_',''));
4.2263 +EXCEPTION
4.2264 + WHEN OTHERS THEN
4.2265 + RETURN(NULL);
4.2266 +END DbNameToClientName_;
4.2267 +
4.2268 +
4.2269 +FUNCTION Clientnametodbname_ (
4.2270 + client_name_ IN VARCHAR2 ) RETURN VARCHAR2
4.2271 +IS
4.2272 + cnt_ NUMBER;
4.2273 + index_ NUMBER;
4.2274 + temp_ VARCHAR2(30);
4.2275 + char_ VARCHAR2(1);
4.2276 +BEGIN
4.2277 + -- Find number of leading underscores
4.2278 + cnt_ := length(client_name_) - length(ltrim(client_name_,'_'));
4.2279 + -- Add intermediate underscores where needed
4.2280 + FOR index_ IN cnt_+1..length(client_name_) LOOP
4.2281 + char_ := substr(client_name_,index_,1);
4.2282 + IF (char_ between 'A' and 'Z') AND (temp_ IS NOT NULL) THEN
4.2283 + temp_ := temp_||'_'||char_;
4.2284 + ELSE
4.2285 + temp_ := temp_||char_;
4.2286 + END IF;
4.2287 + END LOOP;
4.2288 + -- Return database name with trailing underscores
4.2289 + IF (cnt_ = 1) THEN
4.2290 + RETURN(ltrim(upper(temp_),'_')||'__');
4.2291 + ELSIF (cnt_ = 2) THEN
4.2292 + RETURN(ltrim(upper(temp_),'_')||'__');
4.2293 + END IF;
4.2294 + RETURN(ltrim(upper(temp_),'_'));
4.2295 +EXCEPTION
4.2296 + WHEN OTHERS THEN
4.2297 + RETURN(NULL);
4.2298 +END ClientNameToDbName_;
4.2299 +
4.2300 +-----------------------------------------------------------------------------
4.2301 +-- Comment decoding routines for LU-dictionary
4.2302 +-----------------------------------------------------------------------------
4.2303 +
4.2304 +FUNCTION Comment_Value_ (
4.2305 + name_ IN VARCHAR2,
4.2306 + comment_ IN VARCHAR2 ) RETURN VARCHAR2
4.2307 +IS
4.2308 + nlen_ NUMBER;
4.2309 + from_ NUMBER;
4.2310 + to_ NUMBER;
4.2311 +BEGIN
4.2312 + -- Find keyword name position within comment
4.2313 + nlen_ := length(name_);
4.2314 + -- New fix to support ambigous names in report definitions in IFS/Info Services
4.2315 + from_ := instr(upper('^'||comment_), '^'||name_||'=');
4.2316 + -- If found, return value from comment
4.2317 + IF (from_ > 0) THEN
4.2318 + to_ := instr(comment_, '^', from_);
4.2319 + IF ( to_ = 0 ) THEN
4.2320 + to_ := length(comment_) + 1;
4.2321 + END IF;
4.2322 + RETURN(substr(comment_, from_+nlen_+1, to_-from_-nlen_-1));
4.2323 + -- If not found, return null value
4.2324 + ELSE
4.2325 + RETURN(NULL);
4.2326 + END IF;
4.2327 +END Comment_Value_;
4.2328 +
4.2329 +-----------------------------------------------------------------------------
4.2330 +-- Prompt fetching routines, mainly used for localization
4.2331 +-----------------------------------------------------------------------------
4.2332 +
4.2333 +FUNCTION Get_View_Prompt_ (
4.2334 + view_name_ IN VARCHAR2 ) RETURN VARCHAR2
4.2335 +IS
4.2336 + prompt_ VARCHAR2(200);
4.2337 + CURSOR get_prompt IS
4.2338 + SELECT view_prompt
4.2339 + FROM dictionary_sys_view_tab
4.2340 + WHERE view_name = view_name_;
4.2341 +BEGIN
4.2342 + OPEN get_prompt;
4.2343 + FETCH get_prompt INTO prompt_;
4.2344 + CLOSE get_prompt;
4.2345 + RETURN prompt_;
4.2346 +END Get_View_Prompt_;
4.2347 +
4.2348 +FUNCTION Get_Lu_Prompt_ (
4.2349 + lu_name_ IN VARCHAR2 ) RETURN VARCHAR2
4.2350 +IS
4.2351 + prompt_ VARCHAR2(200);
4.2352 + CURSOR get_prompt IS
4.2353 + SELECT lu_prompt
4.2354 + FROM dictionary_sys_tab
4.2355 + WHERE lu_name = lu_name_;
4.2356 +BEGIN
4.2357 + -- Check that inparameters make sense before proceeding.
4.2358 + IF lu_name_ IS NULL THEN
4.2359 + RETURN NULL;
4.2360 + END IF;
4.2361 +
4.2362 + OPEN get_prompt;
4.2363 + FETCH get_prompt INTO prompt_;
4.2364 + CLOSE get_prompt;
4.2365 + RETURN prompt_;
4.2366 +END Get_Lu_Prompt_;
4.2367 +
4.2368 +FUNCTION Get_Item_Prompt_ (
4.2369 + lu_name_ IN VARCHAR2,
4.2370 + view_name_ IN VARCHAR2,
4.2371 + item_name_ IN VARCHAR2 ) RETURN VARCHAR2
4.2372 +IS
4.2373 + view_ VARCHAR2(30) := view_name_;
4.2374 + prompt_ dictionary_sys_view_column_tab.column_prompt%TYPE;
4.2375 +
4.2376 + CURSOR get_prompt IS
4.2377 + SELECT column_prompt
4.2378 + FROM dictionary_sys_view_column_tab
4.2379 + WHERE lu_name = lu_name_
4.2380 + AND view_name = view_
4.2381 + AND column_name = item_name_;
4.2382 +BEGIN
4.2383 + IF (view_ IS NULL) THEN
4.2384 + view_ := ClientNameToDbName_(lu_name_);
4.2385 + END IF;
4.2386 + OPEN get_prompt;
4.2387 + FETCH get_prompt INTO prompt_;
4.2388 + CLOSE get_prompt;
4.2389 + RETURN prompt_;
4.2390 +END Get_Item_Prompt_;
4.2391 +
4.2392 +-----------------------------------------------------------------------------
4.2393 +-- Property fetching routines for run-time use (protected)
4.2394 +-----------------------------------------------------------------------------
4.2395 +
4.2396 +PROCEDURE Get_Logical_Unit_Keys_ (
4.2397 + name_list_ OUT VARCHAR2,
4.2398 + value_list_ OUT VARCHAR2,
4.2399 + lu_name_ IN VARCHAR2,
4.2400 + objid_ IN VARCHAR2 DEFAULT NULL )
4.2401 +IS
4.2402 + dummy_ NUMBER;
4.2403 + stmt_ VARCHAR2(2000);
4.2404 + view_ VARCHAR2(30);
4.2405 + temp_list_ VARCHAR2(32000);
4.2406 +
4.2407 + -- To check that the suggested base view actually contain an objid...
4.2408 + CURSOR find_objid (lu_name_ IN VARCHAR2, view_name_ IN VARCHAR2) IS
4.2409 + SELECT 1
4.2410 + FROM dictionary_sys_view_column_tab
4.2411 + WHERE lu_name = lu_name_
4.2412 + AND view_name = view_name_
4.2413 + AND column_name = 'OBJID';
4.2414 +
4.2415 + CURSOR get_keys (view_name_ IN VARCHAR2) IS
4.2416 + SELECT column_name
4.2417 + FROM dictionary_sys_view_column_tab
4.2418 + WHERE lu_name = lu_name_
4.2419 + AND view_name = view_name_
4.2420 + AND type_flag IN ('P','K')
4.2421 + ORDER BY column_index;
4.2422 +BEGIN
4.2423 + General_SYS.Init_Method(service_, '&PKG', 'Get_Logical_Unit_Keys_');
4.2424 +
4.2425 + name_list_ := NULL;
4.2426 + value_list_ := NULL;
4.2427 + -- Fetch the view name from LU-dictionary
4.2428 + view_ := Get_Base_View(lu_name_);
4.2429 + -- Verify that this view contains an objid
4.2430 + OPEN find_objid(lu_name_, view_);
4.2431 + FETCH find_objid INTO dummy_;
4.2432 + IF find_objid%FOUND THEN
4.2433 + CLOSE find_objid;
4.2434 + -- View found, fetch the keys!
4.2435 + FOR keyrec IN get_keys(view_) LOOP
4.2436 + temp_list_ := temp_list_||keyrec.column_name||text_separator_;
4.2437 + END LOOP;
4.2438 + name_list_ := temp_list_;
4.2439 + IF (objid_ IS NOT NULL) THEN
4.2440 + -- Fetch instance key information by using dynamic SQL
4.2441 + BEGIN
4.2442 + temp_list_ := substr(temp_list_, 1, length(temp_list_) - 1);
4.2443 + temp_list_ := REPLACE(temp_list_, text_separator_, '||''^''||')||'||''^''';
4.2444 + stmt_ := 'SELECT '|| temp_list_ ||' FROM '||view_||' WHERE OBJID = :objid_';
4.2445 + Assert_SYS.Assert_Is_View(view_);
4.2446 + -- ifs_assert_safe utgulk 20060105
4.2447 + EXECUTE IMMEDIATE stmt_ INTO value_list_ USING objid_;
4.2448 + EXCEPTION
4.2449 + WHEN OTHERS THEN
4.2450 + value_list_ := NULL;
4.2451 + END;
4.2452 + END IF;
4.2453 + ELSE
4.2454 + CLOSE find_objid;
4.2455 + END IF;
4.2456 +END Get_Logical_Unit_Keys_;
4.2457 +
4.2458 +-- Could not completely rely on cached information, since table information is not extracted to the cache
4.2459 +PROCEDURE Get_Logical_Unit_Tables_ (
4.2460 + table_list_ OUT VARCHAR2,
4.2461 + lu_name_ IN VARCHAR2 )
4.2462 +IS
4.2463 + view_name_ VARCHAR2(30);
4.2464 + app_owner_ VARCHAR2(30);
4.2465 + CURSOR view_tables IS
4.2466 + SELECT nvl(referenced_name,'') name
4.2467 + FROM user_dependencies
4.2468 + WHERE referenced_owner = app_owner_
4.2469 + AND referenced_type = 'TABLE'
4.2470 + AND name = view_name_
4.2471 + AND type = 'VIEW'
4.2472 + UNION
4.2473 + SELECT nvl(referenced_name,'') name
4.2474 + FROM user_dependencies
4.2475 + WHERE referenced_owner = app_owner_
4.2476 + AND referenced_type = 'TABLE'
4.2477 + AND name = view_name_||'_API'
4.2478 + AND type = 'PACKAGE BODY'
4.2479 + UNION
4.2480 + SELECT nvl(table_name,'') name
4.2481 + FROM user_tables
4.2482 + WHERE table_name = view_name_||'_TAB';
4.2483 +BEGIN
4.2484 + -- Check that inparameters make sense before proceeding.
4.2485 + IF lu_name_ IS NULL THEN
4.2486 + RETURN;
4.2487 + END IF;
4.2488 +
4.2489 + app_owner_ := Fnd_Session_API.Get_App_Owner;
4.2490 + view_name_ := Get_Base_View(lu_name_);
4.2491 + FOR t IN view_tables LOOP
4.2492 + table_list_ := table_list_||t.name||field_separator_;
4.2493 + END LOOP;
4.2494 +END Get_Logical_Unit_Tables_;
4.2495 +
4.2496 +-- Introduced new method and implemented to use dictionary cache.
4.2497 +PROCEDURE Enum_Modules_ (
4.2498 + module_list_ OUT VARCHAR2 )
4.2499 +IS
4.2500 + CURSOR modules IS
4.2501 + SELECT DISTINCT module
4.2502 + FROM dictionary_sys_tab
4.2503 + ORDER BY module;
4.2504 +BEGIN
4.2505 + FOR module IN modules LOOP
4.2506 + module_list_ := module_list_||module.module||field_separator_;
4.2507 + END LOOP;
4.2508 +END Enum_Modules_;
4.2509 +
4.2510 +PROCEDURE Enum_Module_Names_ (
4.2511 + module_list_ OUT VARCHAR2,
4.2512 + name_list_ OUT VARCHAR2 )
4.2513 +IS
4.2514 + module_array_ object_array;
4.2515 + name_array_ lu_struct_type;
4.2516 +
4.2517 + CURSOR modules IS
4.2518 + SELECT module, name
4.2519 + FROM module_tab
4.2520 + ORDER BY name;
4.2521 +BEGIN
4.2522 + OPEN modules;
4.2523 + FETCH modules BULK COLLECT INTO module_array_, name_array_;
4.2524 + CLOSE modules;
4.2525 + IF module_array_.count > 0 THEN
4.2526 + FOR i IN Nvl(module_array_.first, 0)..Nvl(module_array_.last, -1) LOOP
4.2527 + module_list_ := module_list_||module_array_(i)||field_separator_;
4.2528 + name_list_ := name_list_||name_array_(i)||field_separator_;
4.2529 + END LOOP;
4.2530 + END IF;
4.2531 +END Enum_Module_Names_;
4.2532 +
4.2533 +-- Modified implementation to use dictionary cache. Designtime version moved to Design_SYS
4.2534 +PROCEDURE Enum_Module_All_Logical_Units_ (
4.2535 + lu_list_ OUT VARCHAR2,
4.2536 + module_ IN VARCHAR2 )
4.2537 +IS
4.2538 + lu_array_ object_array;
4.2539 +
4.2540 + CURSOR units IS
4.2541 + SELECT lu_name
4.2542 + FROM dictionary_sys_tab
4.2543 + WHERE module = module_
4.2544 + AND lu_type IN ('L', 'S')
4.2545 + ORDER BY lu_name;
4.2546 +BEGIN
4.2547 + OPEN units;
4.2548 + FETCH units BULK COLLECT INTO lu_array_;
4.2549 + CLOSE units;
4.2550 + IF lu_array_.count > 0 THEN
4.2551 + FOR i IN Nvl(lu_array_.first, 0)..Nvl(lu_array_.last, -1) LOOP
4.2552 + lu_list_ := lu_list_||lu_array_(i)||field_separator_;
4.2553 + END LOOP;
4.2554 + END IF;
4.2555 +END Enum_Module_All_Logical_Units_;
4.2556 +
4.2557 +-- Modified implementation to use dictionary cache. Designtime version moved to Design_SYS
4.2558 +PROCEDURE Enum_Module_Logical_Units_ (
4.2559 + lu_list_ OUT VARCHAR2,
4.2560 + module_ IN VARCHAR2 )
4.2561 +IS
4.2562 + lu_array_ object_array;
4.2563 +
4.2564 + CURSOR units IS
4.2565 + SELECT lu_name
4.2566 + FROM dictionary_sys_tab
4.2567 + WHERE module = module_
4.2568 + AND lu_type = 'L'
4.2569 + ORDER BY lu_name;
4.2570 +BEGIN
4.2571 + OPEN units;
4.2572 + FETCH units BULK COLLECT INTO lu_array_;
4.2573 + CLOSE units;
4.2574 + IF lu_array_.count > 0 THEN
4.2575 + FOR i IN Nvl(lu_array_.first, 0)..Nvl(lu_array_.last, -1) LOOP
4.2576 + lu_list_ := lu_list_||lu_array_(i)||field_separator_;
4.2577 + END LOOP;
4.2578 + END IF;
4.2579 +END Enum_Module_Logical_Units_;
4.2580 +
4.2581 +-- Modified implementation using dictionary cache.
4.2582 +PROCEDURE Enum_Module_System_Services_ (
4.2583 + sys_list_ OUT VARCHAR2,
4.2584 + module_ IN VARCHAR2 )
4.2585 +IS
4.2586 + CURSOR units IS
4.2587 + SELECT lu_name
4.2588 + FROM dictionary_sys_tab
4.2589 + WHERE module = module_
4.2590 + AND lu_type = 'S'
4.2591 + ORDER BY lu_name;
4.2592 +BEGIN
4.2593 + FOR unit IN units LOOP
4.2594 + sys_list_ := sys_list_||unit.lu_name||field_separator_;
4.2595 + END LOOP;
4.2596 +END Enum_Module_System_Services_;
4.2597 +
4.2598 +-----------------------------------------------------------------------------
4.2599 +-- Runtime performance refreshment routines
4.2600 +-----------------------------------------------------------------------------
4.2601 +
4.2602 +-- Obsolete!
4.2603 +PROCEDURE Activate_Language_Refresh_
4.2604 +IS
4.2605 +BEGIN
4.2606 + General_SYS.Init_Method(service_, '&PKG', 'Activate_Language_Refresh_');
4.2607 + Error_SYS.Appl_General(service_, 'LANGERR: The method Activate_Language_Refresh_ (Change Server Language) is obsolete. Please log on again to change language.');
4.2608 +END Activate_Language_Refresh_;
4.2609 +
4.2610 +PROCEDURE Rebuild_Dictionary_Storage_ (
4.2611 + dummy_ IN NUMBER,
4.2612 + refresh_mode_ IN VARCHAR2 DEFAULT 'PARTIAL' )
4.2613 +IS
4.2614 + error_text_ CLOB;
4.2615 +BEGIN
4.2616 + error_text_ := Rebuild_Dictionary_Storage___(dummy_, refresh_mode_, FALSE);
4.2617 +END Rebuild_Dictionary_Storage_;
4.2618 +
4.2619 +PROCEDURE Rebuild_Dictionary_Storage_ (
4.2620 + error_text_ IN OUT NOCOPY CLOB,
4.2621 + dummy_ IN NUMBER,
4.2622 + refresh_mode_ IN VARCHAR2 DEFAULT 'PARTIAL' )
4.2623 +IS
4.2624 +BEGIN
4.2625 + error_text_ := Rebuild_Dictionary_Storage___(dummy_, refresh_mode_, TRUE);
4.2626 +END Rebuild_Dictionary_Storage_;
4.2627 +
4.2628 +PROCEDURE Check_Dictionary_Storage_ (
4.2629 + rebuild_needed_ OUT NUMBER )
4.2630 +IS
4.2631 + dummy_ NUMBER;
4.2632 + last_update_ DATE;
4.2633 +
4.2634 + CURSOR get_last_update IS
4.2635 + SELECT max(rowversion)
4.2636 + FROM dictionary_sys_tab;
4.2637 +
4.2638 + CURSOR get_objects(last_cache_update_ IN DATE) IS
4.2639 + SELECT 1
4.2640 + FROM user_objects
4.2641 + WHERE (object_type LIKE 'PACKAGE%'
4.2642 + AND timestamp > to_char(last_cache_update_, 'RRRR-MM-DD:HH24:MI:SS')
4.2643 + AND substr(object_name, -4) IN ('_API', '_RPI', '_SYS'))
4.2644 + OR (object_type IN ('VIEW')
4.2645 + AND last_ddl_time > last_cache_update_);
4.2646 +BEGIN
4.2647 + OPEN get_last_update;
4.2648 + FETCH get_last_update INTO last_update_;
4.2649 + IF (last_update_ IS NULL) THEN
4.2650 + rebuild_needed_ := 1; -- Return TRUE
4.2651 + ELSE
4.2652 + OPEN get_objects(last_update_);
4.2653 + FETCH get_objects INTO dummy_;
4.2654 + IF (get_objects%NOTFOUND) THEN
4.2655 + rebuild_needed_ := 0; -- Return FALSE
4.2656 + ELSE
4.2657 + rebuild_needed_ := 1; -- Return TRUE
4.2658 + END IF;
4.2659 + CLOSE get_objects;
4.2660 + END IF;
4.2661 + CLOSE get_last_update;
4.2662 +END Check_Dictionary_Storage_;
4.2663 +
4.2664 +-----------------------------------------------------------------------------
4.2665 +-------------------- SERVICE SPECIFIC PUBLIC METHODS ------------------------
4.2666 +-----------------------------------------------------------------------------
4.2667 +
4.2668 +-----------------------------------------------------------------------------
4.2669 +-- Public runtime methods for dictionary information support
4.2670 +-----------------------------------------------------------------------------
4.2671 +
4.2672 +FUNCTION Get_Base_View (
4.2673 + lu_name_ IN VARCHAR2 ) RETURN VARCHAR2
4.2674 +IS
4.2675 + temp_ VARCHAR2(30);
4.2676 + CURSOR get_view IS
4.2677 + SELECT view_name
4.2678 + FROM dictionary_sys_view_tab
4.2679 + WHERE lu_name = lu_name_
4.2680 + AND view_type = 'B';
4.2681 +BEGIN
4.2682 + OPEN get_view;
4.2683 + FETCH get_view INTO temp_;
4.2684 + CLOSE get_view;
4.2685 + RETURN temp_;
4.2686 +END Get_Base_View;
4.2687 +
4.2688 +FUNCTION Get_Component (
4.2689 + object_name_ IN VARCHAR2,
4.2690 + object_type_ IN VARCHAR2 ) RETURN VARCHAR2
4.2691 +IS
4.2692 + component_ VARCHAR2(6);
4.2693 + CURSOR get_pkg_component IS
4.2694 + SELECT d.module
4.2695 + FROM dictionary_sys_tab d, dictionary_sys_package_tab p
4.2696 + WHERE p.package_name = upper(object_name_)
4.2697 + AND p.lu_name = d.lu_name;
4.2698 +
4.2699 + CURSOR get_view_component IS
4.2700 + SELECT d.module
4.2701 + FROM dictionary_sys_tab d, dictionary_sys_view_tab v
4.2702 + WHERE v.view_name = upper(object_name_)
4.2703 + AND v.lu_name = d.lu_name;
4.2704 +BEGIN
4.2705 + IF upper(object_type_) = 'PACKAGE' THEN
4.2706 + OPEN get_pkg_component;
4.2707 + FETCH get_pkg_component INTO component_;
4.2708 + CLOSE get_pkg_component;
4.2709 + ELSIF upper(object_type_) = 'VIEW' THEN
4.2710 + OPEN get_view_component;
4.2711 + FETCH get_view_component INTO component_;
4.2712 + CLOSE get_view_component;
4.2713 + ELSE
4.2714 + component_ := NULL;
4.2715 + END IF;
4.2716 + RETURN component_;
4.2717 +END Get_Component;
4.2718 +
4.2719 +FUNCTION Get_Logical_Unit (
4.2720 + object_name_ IN VARCHAR2,
4.2721 + object_type_ IN VARCHAR2 ) RETURN VARCHAR2
4.2722 +IS
4.2723 + lu_name_ VARCHAR2(30);
4.2724 + CURSOR get_pkg_lu IS
4.2725 + SELECT lu_name
4.2726 + FROM dictionary_sys_package_tab
4.2727 + WHERE package_name = upper(object_name_);
4.2728 +
4.2729 + CURSOR get_view_lu IS
4.2730 + SELECT lu_name
4.2731 + FROM dictionary_sys_view_tab
4.2732 + WHERE view_name = upper(object_name_);
4.2733 +BEGIN
4.2734 + IF upper(object_type_) = 'PACKAGE' THEN
4.2735 + OPEN get_pkg_lu;
4.2736 + FETCH get_pkg_lu INTO lu_name_;
4.2737 + CLOSE get_pkg_lu;
4.2738 + ELSIF upper(object_type_) = 'VIEW' THEN
4.2739 + OPEN get_view_lu;
4.2740 + FETCH get_view_lu INTO lu_name_;
4.2741 + CLOSE get_view_lu;
4.2742 + ELSE
4.2743 + lu_name_ := NULL;
4.2744 + END IF;
4.2745 + RETURN lu_name_;
4.2746 +END Get_Logical_Unit;
4.2747 +
4.2748 +FUNCTION Get_Logical_Unit_Module (
4.2749 + lu_name_ IN VARCHAR2 ) RETURN VARCHAR2
4.2750 +IS
4.2751 + module_ VARCHAR2(6);
4.2752 + CURSOR get_module IS
4.2753 + SELECT module
4.2754 + FROM dictionary_sys_lu
4.2755 + WHERE lu_name = lu_name_;
4.2756 +BEGIN
4.2757 + OPEN get_module;
4.2758 + FETCH get_module INTO module_;
4.2759 + CLOSE get_module;
4.2760 + RETURN module_;
4.2761 +END Get_Logical_Unit_Module;
4.2762 +
4.2763 +FUNCTION Package_Is_Installed (
4.2764 + package_name_ IN VARCHAR2 ) RETURN BOOLEAN
4.2765 +IS
4.2766 + dummy_ NUMBER;
4.2767 + CURSOR get_pkg IS
4.2768 + SELECT 1
4.2769 + FROM dictionary_sys_package_tab
4.2770 + WHERE package_name = upper(package_name_);
4.2771 +BEGIN
4.2772 + -- Reroute to Database_SYS during installation
4.2773 + IF installation_ THEN
4.2774 + RETURN(Database_SYS.Package_Exist(package_name_));
4.2775 + ELSE
4.2776 + OPEN get_pkg;
4.2777 + FETCH get_pkg INTO dummy_;
4.2778 + IF (get_pkg%FOUND) THEN
4.2779 + CLOSE get_pkg;
4.2780 + RETURN TRUE;
4.2781 + ELSE
4.2782 + CLOSE get_pkg;
4.2783 + RETURN FALSE;
4.2784 + END IF;
4.2785 + END IF;
4.2786 +END Package_Is_Installed;
4.2787 +
4.2788 +FUNCTION Method_Is_Installed (
4.2789 + package_name_ IN VARCHAR2,
4.2790 + method_name_ IN VARCHAR2 ) RETURN BOOLEAN
4.2791 +IS
4.2792 + dummy_ NUMBER;
4.2793 + CURSOR get_method IS
4.2794 + SELECT 1
4.2795 + FROM dictionary_sys_method_tab
4.2796 + WHERE package_name = upper(package_name_)
4.2797 + AND method_name = initcap(method_name_);
4.2798 +BEGIN
4.2799 + -- Reroute to Database_SYS during installation
4.2800 + IF installation_ THEN
4.2801 + RETURN(Database_SYS.Method_Exist(package_name_, method_name_));
4.2802 + ELSE
4.2803 + OPEN get_method;
4.2804 + FETCH get_method INTO dummy_;
4.2805 + IF (get_method%FOUND) THEN
4.2806 + CLOSE get_method;
4.2807 + RETURN TRUE;
4.2808 + ELSE
4.2809 + CLOSE get_method;
4.2810 + RETURN FALSE;
4.2811 + END IF;
4.2812 + END IF;
4.2813 +END Method_Is_Installed;
4.2814 +
4.2815 +FUNCTION View_Is_Installed (
4.2816 + view_name_ IN VARCHAR2 ) RETURN BOOLEAN
4.2817 +IS
4.2818 + dummy_ NUMBER;
4.2819 + CURSOR get_view IS
4.2820 + SELECT 1
4.2821 + FROM dictionary_sys_view_tab
4.2822 + WHERE view_name = upper(view_name_);
4.2823 +BEGIN
4.2824 + -- Reroute to Database_SYS during installation
4.2825 + IF installation_ THEN
4.2826 + RETURN(Database_SYS.View_Exist(view_name_));
4.2827 + ELSE
4.2828 + OPEN get_view;
4.2829 + FETCH get_view INTO dummy_;
4.2830 + IF (get_view%FOUND) THEN
4.2831 + CLOSE get_view;
4.2832 + RETURN TRUE;
4.2833 + ELSE
4.2834 + CLOSE get_view;
4.2835 + RETURN FALSE;
4.2836 + END IF;
4.2837 + END IF;
4.2838 +END View_Is_Installed;
4.2839 +
4.2840 +FUNCTION Logical_Unit_Is_Installed (
4.2841 + lu_name_ IN VARCHAR2 ) RETURN BOOLEAN
4.2842 +IS
4.2843 + dummy_ NUMBER;
4.2844 + CURSOR get_lu IS
4.2845 + SELECT 1
4.2846 + FROM dictionary_sys_tab
4.2847 + WHERE lu_name = lu_name_;
4.2848 +BEGIN
4.2849 + -- Reroute to Database_SYS during installation
4.2850 + IF installation_ THEN
4.2851 + RETURN(Database_SYS.Package_Exist(Clientnametodbname_(lu_name_)||'_API'));
4.2852 + ELSE
4.2853 + OPEN get_lu;
4.2854 + FETCH get_lu INTO dummy_;
4.2855 + IF (get_lu%FOUND) THEN
4.2856 + CLOSE get_lu;
4.2857 + RETURN TRUE;
4.2858 + ELSE
4.2859 + CLOSE get_lu;
4.2860 + RETURN FALSE;
4.2861 + END IF;
4.2862 + END IF;
4.2863 +END Logical_Unit_Is_Installed;
4.2864 +
4.2865 +FUNCTION Component_Is_Installed (
4.2866 + component_ IN VARCHAR2,
4.2867 + version_ IN VARCHAR2 DEFAULT NULL ) RETURN BOOLEAN
4.2868 +IS
4.2869 + dummy_ NUMBER;
4.2870 + CURSOR get_component IS
4.2871 + SELECT 1
4.2872 + FROM module
4.2873 + WHERE module = upper(component_)
4.2874 + AND upper(version) LIKE nvl(upper(version_), '%');
4.2875 +BEGIN
4.2876 + OPEN get_component;
4.2877 + FETCH get_component INTO dummy_;
4.2878 + IF (get_component%FOUND) THEN
4.2879 + CLOSE get_component;
4.2880 + RETURN TRUE;
4.2881 + ELSE
4.2882 + CLOSE get_component;
4.2883 + RETURN FALSE;
4.2884 + END IF;
4.2885 +END Component_Is_Installed;
4.2886 +
4.2887 +FUNCTION Package_Is_Installed_Num (
4.2888 + package_name_ IN VARCHAR2 ) RETURN NUMBER
4.2889 +IS
4.2890 +BEGIN
4.2891 + IF Package_Is_Installed(package_name_) THEN
4.2892 + RETURN (1);
4.2893 + ELSE
4.2894 + RETURN (0);
4.2895 + END IF;
4.2896 +END Package_Is_Installed_Num;
4.2897 +
4.2898 +FUNCTION Method_Is_Installed_Num (
4.2899 + package_name_ IN VARCHAR2,
4.2900 + method_name_ IN VARCHAR2 ) RETURN NUMBER
4.2901 +IS
4.2902 +BEGIN
4.2903 + IF Method_Is_Installed(package_name_, method_name_) THEN
4.2904 + RETURN (1);
4.2905 + ELSE
4.2906 + RETURN (0);
4.2907 + END IF;
4.2908 +END Method_Is_Installed_Num;
4.2909 +
4.2910 +FUNCTION View_Is_Installed_Num (
4.2911 + view_name_ IN VARCHAR2 ) RETURN NUMBER
4.2912 +IS
4.2913 +BEGIN
4.2914 + IF View_Is_Installed(view_name_) THEN
4.2915 + RETURN (1);
4.2916 + ELSE
4.2917 + RETURN (0);
4.2918 + END IF;
4.2919 +END View_Is_Installed_Num;
4.2920 +
4.2921 +FUNCTION Logical_Unit_Is_Installed_Num (
4.2922 + lu_name_ IN VARCHAR2 ) RETURN NUMBER
4.2923 +IS
4.2924 +BEGIN
4.2925 + IF Logical_Unit_Is_Installed(lu_name_) THEN
4.2926 + RETURN (1);
4.2927 + ELSE
4.2928 + RETURN (0);
4.2929 + END IF;
4.2930 +END Logical_Unit_Is_Installed_Num;
4.2931 +
4.2932 +FUNCTION Component_Is_Installed_Num (
4.2933 + component_ IN VARCHAR2,
4.2934 + version_ IN VARCHAR2 DEFAULT NULL ) RETURN NUMBER
4.2935 +IS
4.2936 +BEGIN
4.2937 + IF Component_Is_Installed(component_, version_) THEN
4.2938 + RETURN (1);
4.2939 + ELSE
4.2940 + RETURN (0);
4.2941 + END IF;
4.2942 +END Component_Is_Installed_Num;
4.2943 +
4.2944 +FUNCTION Get_No_Overloads(package_name_ VARCHAR2,
4.2945 + method_name_ VARCHAR2) RETURN NUMBER
4.2946 +IS
4.2947 + CURSOR get_no_overloads_ IS
4.2948 + SELECT MAX(overload)
4.2949 + FROM dictionary_sys_argument_tab
4.2950 + WHERE package_name = package_name_
4.2951 + AND method_name = method_name_;
4.2952 +
4.2953 + count_ NUMBER;
4.2954 +BEGIN
4.2955 + count_:=NULL;
4.2956 + IF package_name_ IS NULL OR method_name_ IS NULL THEN
4.2957 +-- Error_SYS.Appl_General(service_, 'NON_EXISTING_METHOD: [:P1,:P2] method is non existing method', package_name_, method_name_);
4.2958 + RETURN NULL;
4.2959 + END IF;
4.2960 + OPEN get_no_overloads_;
4.2961 + FETCH get_no_overloads_ INTO count_;
4.2962 + IF get_no_overloads_%NOTFOUND THEN
4.2963 +-- Error_SYS.Appl_General(service_, 'NON_EXISTING_METHOD: [:P1,:P2] method is non existing method', package_name_, method_name_);
4.2964 + RETURN NULL;
4.2965 + END IF;
4.2966 + CLOSE get_no_overloads_;
4.2967 + RETURN count_;
4.2968 +END Get_No_Overloads;
4.2969 +
4.2970 +FUNCTION Get_No_Arguments(package_name_ VARCHAR2,
4.2971 + method_name_ VARCHAR2) RETURN NUMBER
4.2972 +IS
4.2973 + CURSOR get_no_args_ IS
4.2974 + SELECT count(*) no_args
4.2975 + FROM dictionary_sys_argument_tab
4.2976 + WHERE package_name = package_name_
4.2977 + AND method_name = method_name_
4.2978 + GROUP BY package_name, method_name,overload;
4.2979 +
4.2980 + count_ NUMBER;
4.2981 +BEGIN
4.2982 + count_:=NULL;
4.2983 + IF package_name_ IS NULL OR method_name_ IS NULL THEN
4.2984 +-- Error_SYS.Appl_General(service_, 'NON_EXISTING_METHOD: [:P1,:P2] method is non existing method', package_name_, method_name_);
4.2985 + RETURN NULL;
4.2986 + END IF;
4.2987 + OPEN get_no_args_;
4.2988 + FETCH get_no_args_ INTO count_;
4.2989 + IF get_no_args_%NOTFOUND THEN
4.2990 +-- Error_SYS.Appl_General(service_, 'NON_EXISTING_METHOD: [:P1,:P2] method is non existing method', package_name_, method_name_);
4.2991 + RETURN NULL;
4.2992 + END IF;
4.2993 + CLOSE get_no_args_;
4.2994 + RETURN count_;
4.2995 +END Get_No_Arguments;
4.2996 +
4.2997 +FUNCTION Get_Min_No_Arguments(package_name_ VARCHAR2,
4.2998 + method_name_ VARCHAR2) RETURN NUMBER
4.2999 +IS
4.3000 + CURSOR get_min_no_args_ IS
4.3001 + SELECT MIN(no_args)
4.3002 + FROM (SELECT package_name, method_name, count(*) no_args
4.3003 + FROM dictionary_sys_argument_tab
4.3004 + GROUP BY package_name, method_name)
4.3005 + WHERE package_name = package_name_
4.3006 + AND method_name = method_name_;
4.3007 +
4.3008 + count_ NUMBER;
4.3009 +BEGIN
4.3010 + count_:=NULL;
4.3011 + IF package_name_ IS NULL OR method_name_ IS NULL THEN
4.3012 +-- Error_SYS.Appl_General(service_, 'NON_EXISTING_METHOD: [:P1,:P2] method is non existing method', package_name_, method_name_);
4.3013 + RETURN NULL;
4.3014 + END IF;
4.3015 + OPEN get_min_no_args_;
4.3016 + FETCH get_min_no_args_ INTO count_;
4.3017 + IF get_min_no_args_%NOTFOUND THEN
4.3018 +-- Error_SYS.Appl_General(service_, 'NON_EXISTING_METHOD: [:P1,:P2] method is non existing method', package_name_, method_name_);
4.3019 + RETURN NULL;
4.3020 + END IF;
4.3021 + CLOSE get_min_no_args_;
4.3022 + RETURN count_;
4.3023 +END Get_Min_No_Arguments;
4.3024 +
4.3025 +FUNCTION Get_Max_No_Arguments(package_name_ VARCHAR2,
4.3026 + method_name_ VARCHAR2) RETURN NUMBER
4.3027 +IS
4.3028 + CURSOR get_max_no_args_ IS
4.3029 + SELECT MAX(no_args)
4.3030 + FROM (SELECT package_name, method_name, count(*) no_args
4.3031 + FROM dictionary_sys_argument_tab
4.3032 + GROUP BY package_name, method_name)
4.3033 + WHERE package_name = package_name_
4.3034 + AND method_name = method_name_;
4.3035 +
4.3036 + count_ NUMBER;
4.3037 +BEGIN
4.3038 + count_:=NULL;
4.3039 + IF package_name_ IS NULL OR method_name_ IS NULL THEN
4.3040 + --Error_SYS.Appl_General(service_, 'NON_EXISTING_METHOD: [:P1,:P2] method is non existing method', package_name_, method_name_);
4.3041 + RETURN NULL;
4.3042 + END IF;
4.3043 + OPEN get_max_no_args_;
4.3044 + FETCH get_max_no_args_ INTO count_;
4.3045 + IF get_max_no_args_%NOTFOUND THEN
4.3046 + --Error_SYS.Appl_General(service_, 'NON_EXISTING_METHOD: [:P1,:P2] method is non existing method', package_name_, method_name_);
4.3047 + RETURN NULL;
4.3048 + END IF;
4.3049 + CLOSE get_max_no_args_;
4.3050 + RETURN count_;
4.3051 +END Get_Max_No_Arguments;
4.3052 +
4.3053 +FUNCTION Get_Argument_Type(package_name_ VARCHAR2,
4.3054 + method_name_ VARCHAR2,
4.3055 + arg_pos_ NUMBER) RETURN VARCHAR2
4.3056 +IS
4.3057 + CURSOR get_arg_type_ IS
4.3058 + SELECT argument_datatype
4.3059 + FROM dictionary_sys_argument_tab
4.3060 + WHERE package_name = package_name_
4.3061 + AND method_name = method_name_
4.3062 + AND argument_index = arg_pos_;
4.3063 +
4.3064 + type_ dictionary_sys_argument_tab.argument_datatype%TYPE;
4.3065 +BEGIN
4.3066 + type_:=NULL;
4.3067 + IF package_name_ IS NULL OR method_name_ IS NULL THEN
4.3068 + --Error_SYS.Appl_General(service_, 'NON_EXISTING_METHOD: [:P1,:P2] method is non existing method', package_name_, method_name_);
4.3069 + RETURN NULL;
4.3070 + END IF;
4.3071 + IF Get_No_Overloads(package_name_, method_name_) > 1 THEN
4.3072 + RETURN NULL;
4.3073 + END IF;
4.3074 + OPEN get_arg_type_;
4.3075 + FETCH get_arg_type_ INTO type_;
4.3076 + IF get_arg_type_%NOTFOUND THEN
4.3077 + --Error_SYS.Appl_General(service_, 'NON_EXISTING_METHOD: [:P1,:P2] method is non existing method', package_name_, method_name_);
4.3078 + RETURN NULL;
4.3079 + END IF;
4.3080 + CLOSE get_arg_type_;
4.3081 + RETURN type_;
4.3082 +END Get_Argument_Type;
4.3083 +
4.3084 +PROCEDURE Set_Installation_Mode (
4.3085 + installation_mode_ IN BOOLEAN DEFAULT FALSE )
4.3086 +IS
4.3087 +BEGIN
4.3088 + General_SYS.Init_Method(service_, '&PKG', 'Set_Installation_Mode');
4.3089 + installation_ := installation_mode_;
4.3090 +END Set_Installation_Mode;
4.3091 +
4.3092 +FUNCTION Get_Installation_Mode RETURN BOOLEAN
4.3093 +IS
4.3094 +BEGIN
4.3095 + General_SYS.Init_Method(service_, '&PKG', 'Get_Installation_Mode');
4.3096 + RETURN(installation_);
4.3097 +END Get_Installation_Mode;
4.3098 +
4.3099 +-----------------------------------------------------------------------------
4.3100 +-------------------- FOUNDATION1 METHODS ------------------------------------
4.3101 +-----------------------------------------------------------------------------
4.3102 +-- Init
4.3103 +-- Dummy procedure that can be called at database startup to ensure that
4.3104 +-- this package is loaded into memory for performance reasons only.
4.3105 +-----------------------------------------------------------------------------
4.3106 +
4.3107 +PROCEDURE Init
4.3108 +IS
4.3109 +BEGIN
4.3110 + NULL;
4.3111 +END Init;
4.3112 +
4.3113 +
4.3114 +END &PKG;
4.3115 +/
4.3116 +SHOW ERROR
4.3117 +
4.3118 +UNDEFINE MODULE
4.3119 +UNDEFINE SERVICE
4.3120 +UNDEFINE PKG
4.3121 +UNDEFINE VIEW
4.3122 +UNDEFINE VIEW2
4.3123 +UNDEFINE VIEW3
4.3124 +UNDEFINE VIEW4
4.3125 +UNDEFINE VIEW5
4.3126 +UNDEFINE VIEW6
4.3127 +UNDEFINE VIEW7
4.3128 +UNDEFINE VIEW8
4.3129 +UNDEFINE VIEW9
4.3130 +UNDEFINE OBJID
4.3131 +-----------------------------------------------------------------------------
4.3132 +
4.3133 +
5.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
5.2 +++ b/PLSQL/Lexer/test/unit/data/FavoriteSchedules.apy Wed May 15 23:04:20 2013 +0200
5.3 @@ -0,0 +1,712 @@
5.4 +-----------------------------------------------------------------------------
5.5 +--
5.6 +-- Logical unit: FavoriteSchedules
5.7 +--
5.8 +-- Purpose:
5.9 +--
5.10 +-- IFS/Design Template Version 2.3
5.11 +--
5.12 +-- Date Sign History
5.13 +-- ------ ------ ---------------------------------------------------------
5.14 +-- 050224 VYPELK Created
5.15 +-----------------------------------------------------------------------------
5.16 +
5.17 +DEFINE MODULE = WRKSCH
5.18 +DEFINE LU = FavoriteSchedules
5.19 +DEFINE TABLE = FAVORITE_SCHEDULES_TAB
5.20 +DEFINE VIEW = FAVORITE_SCHEDULES
5.21 +DEFINE PKG = FAVORITE_SCHEDULES_API
5.22 +
5.23 +DEFINE OBJID = rowid
5.24 +DEFINE OBJVERSION = to_char(rowversion)
5.25 +
5.26 +-----------------------------------------------------------------------------
5.27 +-------------------- VIEWS FOR SELECTS --------------------------------------
5.28 +-----------------------------------------------------------------------------
5.29 +
5.30 +PROMPT Creating &VIEW view
5.31 +
5.32 +CREATE OR REPLACE FORCE VIEW &VIEW AS
5.33 +SELECT identity identity,
5.34 + schedule_type schedule_type,
5.35 + schedule_code schedule_code,
5.36 + company_id company_id,
5.37 + wage_class wage_class,
5.38 + &OBJID objid,
5.39 + &OBJVERSION objversion
5.40 +FROM favorite_schedules_tab
5.41 +WITH read only;
5.42 +
5.43 +COMMENT ON TABLE &VIEW
5.44 + IS 'LU=&LU^PROMPT=Favorite Schedules^MODULE=&MODULE^';
5.45 +
5.46 +COMMENT ON COLUMN &VIEW..identity
5.47 + IS 'FLAGS=PMI--^DATATYPE=STRING(30)/UPPERCASE^PROMPT=Identity^REF=ApplicationUser^';
5.48 +COMMENT ON COLUMN &VIEW..schedule_type
5.49 + IS 'FLAGS=KMI-L^DATATYPE=STRING(10)^PROMPT=Schedule Type^';
5.50 +COMMENT ON COLUMN &VIEW..schedule_code
5.51 + IS 'FLAGS=KMI--^DATATYPE=STRING(10)^PROMPT=Schedule Code^';
5.52 +COMMENT ON COLUMN &VIEW..company_id
5.53 + IS 'FLAGS=KMI-L^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Company ID^';
5.54 +COMMENT ON COLUMN &VIEW..wage_class
5.55 + IS 'FLAGS=KMI-L^DATATYPE=STRING(10)/UPPERCASE^PROMPT=Wage Class^REF=WageClass(company_id)^';
5.56 +
5.57 +-----------------------------------------------------------------------------
5.58 +-------------------- PACKAGES FOR METHODS -----------------------------------
5.59 +-----------------------------------------------------------------------------
5.60 +
5.61 +PROMPT Creating &PKG implementation
5.62 +
5.63 +CREATE OR REPLACE PACKAGE BODY &PKG IS
5.64 +
5.65 +-----------------------------------------------------------------------------
5.66 +-------------------- LU SPECIFIC IMPLEMENTATION METHOD DECLARATIONS ---------
5.67 +-----------------------------------------------------------------------------
5.68 +
5.69 +
5.70 +-----------------------------------------------------------------------------
5.71 +-------------------- IMPLEMENTATION BASE METHODS ----------------------------
5.72 +-----------------------------------------------------------------------------
5.73 +-- Lock_By_Id___
5.74 +-- Client-support to lock a specific instance of the logical unit.
5.75 +--
5.76 +-- Lock_By_Keys___
5.77 +-- Server support to lock a specific instance of the logical unit.
5.78 +--
5.79 +-- Get_Object_By_Id___
5.80 +-- Get LU-record from the database with a specified object identity.
5.81 +--
5.82 +-- Get_Object_By_Keys___
5.83 +-- Get LU-record from the database with specified key columns.
5.84 +--
5.85 +-- Check_Exist___
5.86 +-- Check if a specific LU-instance already exist in the database.
5.87 +--
5.88 +-- Get_Id_Version_By_Keys___
5.89 +-- Get the current OBJID and OBJVERSION for a specific LU-instance.
5.90 +-----------------------------------------------------------------------------
5.91 +
5.92 +FUNCTION Lock_By_Id___ (
5.93 + objid_ IN VARCHAR2,
5.94 + objversion_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
5.95 +IS
5.96 + row_changed EXCEPTION;
5.97 + row_deleted EXCEPTION;
5.98 + row_locked EXCEPTION;
5.99 + PRAGMA exception_init(row_locked, -0054);
5.100 + rec_ &TABLE%ROWTYPE;
5.101 + dummy_ NUMBER;
5.102 + CURSOR lock_control IS
5.103 + SELECT *
5.104 + FROM &TABLE
5.105 + WHERE &OBJID = objid_
5.106 + AND &OBJVERSION = objversion_
5.107 + FOR UPDATE NOWAIT;
5.108 + CURSOR exist_control IS
5.109 + SELECT 1
5.110 + FROM &TABLE
5.111 + WHERE &OBJID = objid_;
5.112 +BEGIN
5.113 + OPEN lock_control;
5.114 + FETCH lock_control INTO rec_;
5.115 + IF (lock_control%FOUND) THEN
5.116 + CLOSE lock_control;
5.117 + RETURN rec_;
5.118 + END IF;
5.119 + CLOSE lock_control;
5.120 + OPEN exist_control;
5.121 + FETCH exist_control INTO dummy_;
5.122 + IF (exist_control%FOUND) THEN
5.123 + CLOSE exist_control;
5.124 + RAISE row_changed;
5.125 + ELSE
5.126 + CLOSE exist_control;
5.127 + RAISE row_deleted;
5.128 + END IF;
5.129 +EXCEPTION
5.130 + WHEN row_locked THEN
5.131 + Error_SYS.Record_Locked(lu_name_);
5.132 + WHEN row_changed THEN
5.133 + Error_SYS.Record_Modified(lu_name_);
5.134 + WHEN row_deleted THEN
5.135 + Error_SYS.Record_Removed(lu_name_);
5.136 +END Lock_By_Id___;
5.137 +
5.138 +FUNCTION Lock_By_Keys___ (
5.139 + identity_ IN VARCHAR2,
5.140 + schedule_type_ IN VARCHAR2,
5.141 + schedule_code_ IN VARCHAR2,
5.142 + company_id_ IN VARCHAR2,
5.143 + wage_class_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
5.144 +IS
5.145 + row_deleted EXCEPTION;
5.146 + rec_ &TABLE%ROWTYPE;
5.147 + CURSOR lock_control IS
5.148 + SELECT *
5.149 + FROM &TABLE
5.150 + WHERE identity = identity_
5.151 + AND schedule_type = schedule_type_
5.152 + AND schedule_code = schedule_code_
5.153 + AND company_id = company_id_
5.154 + AND wage_class = wage_class_
5.155 + FOR UPDATE;
5.156 +BEGIN
5.157 + OPEN lock_control;
5.158 + FETCH lock_control INTO rec_;
5.159 + IF (lock_control%FOUND) THEN
5.160 + CLOSE lock_control;
5.161 + RETURN rec_;
5.162 + ELSE
5.163 + CLOSE lock_control;
5.164 + RAISE row_deleted;
5.165 + END IF;
5.166 +EXCEPTION
5.167 + WHEN row_deleted THEN
5.168 + Error_SYS.Record_Removed(lu_name_);
5.169 +END Lock_By_Keys___;
5.170 +
5.171 +FUNCTION Get_Object_By_Id___ (
5.172 + objid_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
5.173 +IS
5.174 + lu_rec_ &TABLE%ROWTYPE;
5.175 + CURSOR getrec IS
5.176 + SELECT *
5.177 + FROM &TABLE
5.178 + WHERE &OBJID = objid_;
5.179 +BEGIN
5.180 + OPEN getrec;
5.181 + FETCH getrec INTO lu_rec_;
5.182 + IF (getrec%NOTFOUND) THEN
5.183 + CLOSE getrec;
5.184 + Error_SYS.Record_Removed(lu_name_);
5.185 + END IF;
5.186 + CLOSE getrec;
5.187 + RETURN(lu_rec_);
5.188 +END Get_Object_By_Id___;
5.189 +
5.190 +
5.191 +FUNCTION Get_Object_By_Keys___ (
5.192 + identity_ IN VARCHAR2,
5.193 + schedule_type_ IN VARCHAR2,
5.194 + schedule_code_ IN VARCHAR2,
5.195 + company_id_ IN VARCHAR2,
5.196 + wage_class_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
5.197 +IS
5.198 + lu_rec_ &TABLE%ROWTYPE;
5.199 + CURSOR getrec IS
5.200 + SELECT *
5.201 + FROM &TABLE
5.202 + WHERE identity = identity_
5.203 + AND schedule_type = schedule_type_
5.204 + AND schedule_code = schedule_code_
5.205 + AND company_id = company_id_
5.206 + AND wage_class = wage_class_;
5.207 +BEGIN
5.208 + OPEN getrec;
5.209 + FETCH getrec INTO lu_rec_;
5.210 + CLOSE getrec;
5.211 + RETURN(lu_rec_);
5.212 +END Get_Object_By_Keys___;
5.213 +
5.214 +FUNCTION Check_Exist___ (
5.215 + identity_ IN VARCHAR2,
5.216 + schedule_type_ IN VARCHAR2,
5.217 + schedule_code_ IN VARCHAR2,
5.218 + company_id_ IN VARCHAR2,
5.219 + wage_class_ IN VARCHAR2 ) RETURN BOOLEAN
5.220 +IS
5.221 + dummy_ NUMBER;
5.222 + CURSOR exist_control IS
5.223 + SELECT 1
5.224 + FROM &TABLE
5.225 + WHERE identity = identity_
5.226 + AND schedule_type = schedule_type_
5.227 + AND schedule_code = schedule_code_
5.228 + AND company_id = company_id_
5.229 + AND wage_class = wage_class_;
5.230 +BEGIN
5.231 + OPEN exist_control;
5.232 + FETCH exist_control INTO dummy_;
5.233 + IF (exist_control%FOUND) THEN
5.234 + CLOSE exist_control;
5.235 + RETURN(TRUE);
5.236 + END IF;
5.237 + CLOSE exist_control;
5.238 + RETURN(FALSE);
5.239 +END Check_Exist___;
5.240 +
5.241 +PROCEDURE Get_Id_Version_By_Keys___ (
5.242 + objid_ IN OUT VARCHAR2,
5.243 + objversion_ IN OUT VARCHAR2,
5.244 + identity_ IN VARCHAR2,
5.245 + schedule_type_ IN VARCHAR2,
5.246 + schedule_code_ IN VARCHAR2,
5.247 + company_id_ IN VARCHAR2,
5.248 + wage_class_ IN VARCHAR2)
5.249 +IS
5.250 + CURSOR get_version IS
5.251 + SELECT &OBJID, &OBJVERSION
5.252 + FROM &TABLE
5.253 + WHERE identity = identity_
5.254 + AND schedule_type = schedule_type_
5.255 + AND schedule_code = schedule_code_
5.256 + AND company_id = company_id_
5.257 + AND wage_class = wage_class_;
5.258 +BEGIN
5.259 + OPEN get_version;
5.260 + FETCH get_version INTO objid_, objversion_;
5.261 + CLOSE get_version;
5.262 +END Get_Id_Version_By_Keys___;
5.263 +
5.264 +-----------------------------------------------------------------------------
5.265 +-------------------- IMPLEMENTATION BASE METHODS FOR INSERT -----------------
5.266 +-----------------------------------------------------------------------------
5.267 +-- Prepare_Insert___
5.268 +-- Set all default values for a new instance (ON-NEW-RECORD) of this
5.269 +-- logical unit by calling procedure Add_Attr.
5.270 +--
5.271 +-- Unpack_Check_Insert___
5.272 +-- Unpack the attribute list, check all attributes from the client
5.273 +-- and generate all default values before creation of the new object.
5.274 +--
5.275 +-- Insert___
5.276 +-- Insert a new LU-instance into the database and return the values
5.277 +-- for OBJID and OBJVERSION.
5.278 +-----------------------------------------------------------------------------
5.279 +
5.280 +PROCEDURE Prepare_Insert___ (
5.281 + attr_ IN OUT VARCHAR2 )
5.282 +IS
5.283 +BEGIN
5.284 + Client_SYS.Clear_Attr(attr_);
5.285 +END Prepare_Insert___;
5.286 +
5.287 +
5.288 +PROCEDURE Unpack_Check_Insert___ (
5.289 + attr_ IN OUT VARCHAR2,
5.290 + newrec_ IN OUT &TABLE%ROWTYPE )
5.291 +IS
5.292 + ptr_ NUMBER;
5.293 + name_ VARCHAR2(30);
5.294 + value_ VARCHAR2(2000);
5.295 +BEGIN
5.296 + ptr_ := NULL;
5.297 + WHILE (Client_SYS.Get_Next_From_Attr(attr_, ptr_, name_, value_)) LOOP
5.298 + IF (name_ = 'IDENTITY') THEN
5.299 + newrec_.identity := value_;
5.300 + Application_User_API.Exist(newrec_.identity);
5.301 + ELSIF (name_ = 'SCHEDULE_TYPE') THEN
5.302 + newrec_.schedule_type := value_;
5.303 + ELSIF (name_ = 'SCHEDULE_CODE') THEN
5.304 + newrec_.schedule_code := value_;
5.305 + ELSIF (name_ = 'COMPANY_ID') THEN
5.306 + newrec_.company_id := value_;
5.307 + ELSIF (name_ = 'WAGE_CLASS') THEN
5.308 + newrec_.wage_class := value_;
5.309 + Wage_Class_API.Exist(newrec_.company_id, newrec_.wage_class);
5.310 + ELSE
5.311 + Error_SYS.Item_Not_Exist(lu_name_, name_, value_);
5.312 + END IF;
5.313 + END LOOP;
5.314 + Client_SYS.Clear_Attr(attr_);
5.315 + Error_SYS.Check_Not_Null(lu_name_, 'IDENTITY', newrec_.identity);
5.316 + Error_SYS.Check_Not_Null(lu_name_, 'SCHEDULE_TYPE', newrec_.schedule_type);
5.317 + Error_SYS.Check_Not_Null(lu_name_, 'SCHEDULE_CODE', newrec_.schedule_code);
5.318 + Error_SYS.Check_Not_Null(lu_name_, 'COMPANY_ID', newrec_.company_id);
5.319 + Error_SYS.Check_Not_Null(lu_name_, 'WAGE_CLASS', newrec_.wage_class);
5.320 +EXCEPTION
5.321 + WHEN value_error THEN
5.322 + Error_SYS.Item_Format(lu_name_, name_, value_);
5.323 +END Unpack_Check_Insert___;
5.324 +
5.325 +
5.326 +PROCEDURE Insert___ (
5.327 + objid_ OUT VARCHAR2,
5.328 + objversion_ OUT VARCHAR2,
5.329 + newrec_ IN OUT &TABLE%ROWTYPE,
5.330 + attr_ IN OUT VARCHAR2 )
5.331 +IS
5.332 +BEGIN
5.333 + newrec_.rowversion := 1;
5.334 + objversion_ := to_char(newrec_.rowversion);
5.335 + INSERT
5.336 + INTO favorite_schedules_tab (
5.337 + identity,
5.338 + schedule_type,
5.339 + schedule_code,
5.340 + company_id,
5.341 + wage_class,
5.342 + rowversion)
5.343 + VALUES (
5.344 + newrec_.identity,
5.345 + newrec_.schedule_type,
5.346 + newrec_.schedule_code,
5.347 + newrec_.company_id,
5.348 + newrec_.wage_class,
5.349 + newrec_.rowversion)
5.350 + RETURNING &OBJID INTO objid_;
5.351 +EXCEPTION
5.352 + WHEN dup_val_on_index THEN
5.353 + Error_SYS.Record_Exist(lu_name_);
5.354 +END Insert___;
5.355 +
5.356 +-----------------------------------------------------------------------------
5.357 +-------------------- IMPLEMENTATION BASE METHODS FOR UPDATE -----------------
5.358 +-----------------------------------------------------------------------------
5.359 +-- Unpack_Check_Update___
5.360 +-- Unpack the attribute list, check all attributes from the client
5.361 +-- and generate all default values before modifying the object.
5.362 +--
5.363 +-- Update___
5.364 +-- Update an existing LU-instance in the database and return the
5.365 +-- the new OBJVERSION.
5.366 +-----------------------------------------------------------------------------
5.367 +
5.368 +PROCEDURE Unpack_Check_Update___ (
5.369 + attr_ IN OUT VARCHAR2,
5.370 + newrec_ IN OUT &TABLE%ROWTYPE,
5.371 + objid_ IN VARCHAR2 )
5.372 +IS
5.373 + ptr_ NUMBER;
5.374 + name_ VARCHAR2(30);
5.375 + value_ VARCHAR2(2000);
5.376 +BEGIN
5.377 + ptr_ := NULL;
5.378 + WHILE (Client_SYS.Get_Next_From_Attr(attr_, ptr_, name_, value_)) LOOP
5.379 + IF (name_ = 'IDENTITY') THEN
5.380 + Error_SYS.Item_Update(lu_name_, 'IDENTITY');
5.381 + ELSIF (name_ = 'SCHEDULE_TYPE') THEN
5.382 + Error_SYS.Item_Update(lu_name_, 'SCHEDULE_TYPE');
5.383 + ELSIF (name_ = 'SCHEDULE_CODE') THEN
5.384 + Error_SYS.Item_Update(lu_name_, 'SCHEDULE_CODE');
5.385 + ELSIF (name_ = 'COMPANY_ID') THEN
5.386 + Error_SYS.Item_Update(lu_name_, 'COMPANY_ID');
5.387 + ELSIF (name_ = 'WAGE_CLASS') THEN
5.388 + Error_SYS.Item_Update(lu_name_, 'WAGE_CLASS');
5.389 + ELSE
5.390 + Error_SYS.Item_Not_Exist(lu_name_, name_, value_);
5.391 + END IF;
5.392 + END LOOP;
5.393 + Client_SYS.Clear_Attr(attr_);
5.394 +EXCEPTION
5.395 + WHEN value_error THEN
5.396 + Error_SYS.Item_Format(lu_name_, name_, value_);
5.397 +END Unpack_Check_Update___;
5.398 +
5.399 +
5.400 +PROCEDURE Update___ (
5.401 + objid_ IN VARCHAR2,
5.402 + oldrec_ IN &TABLE%ROWTYPE,
5.403 + newrec_ IN OUT &TABLE%ROWTYPE,
5.404 + attr_ IN OUT VARCHAR2,
5.405 + objversion_ IN OUT VARCHAR2,
5.406 + by_keys_ IN BOOLEAN DEFAULT FALSE )
5.407 +IS
5.408 +BEGIN
5.409 + newrec_.rowversion := newrec_.rowversion + 1;
5.410 + objversion_ := to_char(newrec_.rowversion);
5.411 + IF by_keys_ THEN
5.412 + UPDATE favorite_schedules_tab
5.413 + SET identity = newrec_.identity,
5.414 + schedule_type = newrec_.schedule_type,
5.415 + schedule_code = newrec_.schedule_code,
5.416 + company_id = newrec_.company_id,
5.417 + wage_class = newrec_.wage_class,
5.418 + rowversion = newrec_.rowversion
5.419 + WHERE identity = newrec_.identity
5.420 + AND schedule_type = newrec_.schedule_type
5.421 + AND schedule_code = newrec_.schedule_code
5.422 + AND company_id = newrec_.company_id
5.423 + AND wage_class = newrec_.wage_class;
5.424 + ELSE
5.425 + UPDATE favorite_schedules_tab
5.426 + SET identity = newrec_.identity,
5.427 + schedule_type = newrec_.schedule_type,
5.428 + schedule_code = newrec_.schedule_code,
5.429 + company_id = newrec_.company_id,
5.430 + wage_class = newrec_.wage_class,
5.431 + rowversion = newrec_.rowversion
5.432 + WHERE &OBJID = objid_;
5.433 + END IF;
5.434 +EXCEPTION
5.435 + WHEN dup_val_on_index THEN
5.436 + Error_SYS.Record_Exist(lu_name_);
5.437 +END Update___;
5.438 +
5.439 +-----------------------------------------------------------------------------
5.440 +-------------------- IMPLEMENTATION BASE METHODS FOR DELETE -----------------
5.441 +-----------------------------------------------------------------------------
5.442 +-- Check_Delete___
5.443 +-- Checks whether a specific LU-record may be removed or not.
5.444 +-- The procedure should check business rules like attribute values
5.445 +-- as well as database constraints (defined or not).
5.446 +--
5.447 +-- Delete___
5.448 +-- Deletion of the specific LU-object from the database.
5.449 +-----------------------------------------------------------------------------
5.450 +
5.451 +PROCEDURE Check_Delete___ (
5.452 + remrec_ IN &TABLE%ROWTYPE )
5.453 +IS
5.454 + key_ VARCHAR2(2000);
5.455 +BEGIN
5.456 + key_ := remrec_.identity || '^' || remrec_.schedule_type || '^' || remrec_.schedule_code || '^' || remrec_.company_id || '^' || remrec_.wage_class || '^';
5.457 + Reference_SYS.Check_Restricted_Delete(lu_name_, key_);
5.458 +END Check_Delete___;
5.459 +
5.460 +
5.461 +PROCEDURE Delete___ (
5.462 + objid_ IN VARCHAR2,
5.463 + remrec_ IN &TABLE%ROWTYPE )
5.464 +IS
5.465 + key_ VARCHAR2(2000);
5.466 +BEGIN
5.467 + key_ := remrec_.identity || '^' || remrec_.schedule_type || '^' || remrec_.schedule_code || '^' || remrec_.company_id || '^' || remrec_.wage_class || '^';
5.468 + Reference_SYS.Do_Cascade_Delete(lu_name_, key_);
5.469 + DELETE
5.470 + FROM favorite_schedules_tab
5.471 + WHERE &OBJID = objid_;
5.472 +END Delete___;
5.473 +
5.474 +-----------------------------------------------------------------------------
5.475 +-------------------- PRIVATE BASE METHODS -----------------------------------
5.476 +-----------------------------------------------------------------------------
5.477 +-- Lock__
5.478 +-- Client-support to lock a specific instance of the logical unit.
5.479 +--
5.480 +-- New__
5.481 +-- Client-support interface to create LU instances.
5.482 +-- action_ = 'PREPARE'
5.483 +-- Default values and handle of information to client.
5.484 +-- The default values are set in procedure Prepare_Insert___.
5.485 +-- action_ = 'CHECK'
5.486 +-- Check all attributes before creating new object and handle of
5.487 +-- information to client. The attribute list is unpacked, checked
5.488 +-- and prepared (defaults) in procedure Unpack_Check_Insert___.
5.489 +-- action_ = 'DO'
5.490 +-- Creation of new instances of the logical unit and handle of
5.491 +-- information to client. The attribute list is unpacked, checked
5.492 +-- and prepared (defaults) in procedure Unpack_Check_Insert___
5.493 +-- before calling procedure Insert___.
5.494 +--
5.495 +-- Modify__
5.496 +-- Client-support interface to modify attributes for LU instances.
5.497 +-- action_ = 'CHECK'
5.498 +-- Check all attributes before modifying an existing object and
5.499 +-- handle of information to client. The attribute list is unpacked,
5.500 +-- checked and prepared(defaults) in procedure Unpack_Check_Update___.
5.501 +-- action_ = 'DO'
5.502 +-- Modification of an existing instance of the logical unit. The
5.503 +-- procedure unpacks the attributes, checks all values before
5.504 +-- procedure Update___ is called.
5.505 +--
5.506 +-- Remove__
5.507 +-- Client-support interface to remove LU instances.
5.508 +-- action_ = 'CHECK'
5.509 +-- Check whether a specific LU-instance may be removed or not.
5.510 +-- The procedure fetches the complete record by calling procedure
5.511 +-- Get_Object_By_Id___. Then the check is made by calling procedure
5.512 +-- Check_Delete___.
5.513 +-- action_ = 'DO'
5.514 +-- Remove an existing instance of the logical unit. The procedure
5.515 +-- fetches the complete LU-record, checks for a delete and then
5.516 +-- deletes the record by calling procedure Delete___.
5.517 +-----------------------------------------------------------------------------
5.518 +
5.519 +PROCEDURE Lock__ (
5.520 + info_ OUT VARCHAR2,
5.521 + objid_ IN VARCHAR2,
5.522 + objversion_ IN VARCHAR2 )
5.523 +IS
5.524 + dummy_ &TABLE%ROWTYPE;
5.525 +BEGIN
5.526 + General_SYS.Init_Method(lu_name_, '&PKG', 'Lock__');
5.527 + dummy_ := Lock_By_Id___(objid_, objversion_);
5.528 + info_ := Client_SYS.Get_All_Info;
5.529 +END Lock__;
5.530 +
5.531 +
5.532 +PROCEDURE New__ (
5.533 + info_ OUT VARCHAR2,
5.534 + objid_ OUT VARCHAR2,
5.535 + objversion_ OUT VARCHAR2,
5.536 + attr_ IN OUT VARCHAR2,
5.537 + action_ IN VARCHAR2 )
5.538 +IS
5.539 + newrec_ &TABLE%ROWTYPE;
5.540 +BEGIN
5.541 + General_SYS.Init_Method(lu_name_, '&PKG', 'New__');
5.542 + IF (action_ = 'PREPARE') THEN
5.543 + Prepare_Insert___(attr_);
5.544 + ELSIF (action_ = 'CHECK') THEN
5.545 + Unpack_Check_Insert___(attr_, newrec_);
5.546 + ELSIF (action_ = 'DO') THEN
5.547 + Unpack_Check_Insert___(attr_, newrec_);
5.548 + Insert___(objid_, objversion_, newrec_, attr_);
5.549 + END IF;
5.550 + info_ := Client_SYS.Get_All_Info;
5.551 +END New__;
5.552 +
5.553 +
5.554 +PROCEDURE Modify__ (
5.555 + info_ OUT VARCHAR2,
5.556 + objid_ IN VARCHAR2,
5.557 + objversion_ IN OUT VARCHAR2,
5.558 + attr_ IN OUT VARCHAR2,
5.559 + action_ IN VARCHAR2 )
5.560 +IS
5.561 + oldrec_ &TABLE%ROWTYPE;
5.562 + newrec_ &TABLE%ROWTYPE;
5.563 +BEGIN
5.564 + General_SYS.Init_Method(lu_name_, '&PKG', 'Modify__');
5.565 + IF (action_ = 'CHECK') THEN
5.566 + newrec_ := Get_Object_By_Id___(objid_);
5.567 + Unpack_Check_Update___(attr_, newrec_, objid_);
5.568 + ELSIF (action_ = 'DO') THEN
5.569 + oldrec_ := Lock_By_Id___(objid_, objversion_);
5.570 + newrec_ := oldrec_;
5.571 + Unpack_Check_Update___(attr_, newrec_, objid_);
5.572 + Update___(objid_, oldrec_, newrec_, attr_, objversion_);
5.573 + END IF;
5.574 + info_ := Client_SYS.Get_All_Info;
5.575 +END Modify__;
5.576 +
5.577 +
5.578 +PROCEDURE Remove__ (
5.579 + info_ OUT VARCHAR2,
5.580 + objid_ IN VARCHAR2,
5.581 + objversion_ IN VARCHAR2,
5.582 + action_ IN VARCHAR2 )
5.583 +IS
5.584 + remrec_ &TABLE%ROWTYPE;
5.585 +BEGIN
5.586 + General_SYS.Init_Method(lu_name_, '&PKG', 'Remove__');
5.587 + IF (action_ = 'CHECK') THEN
5.588 + remrec_ := Get_Object_By_Id___(objid_);
5.589 + Check_Delete___(remrec_);
5.590 + ELSIF (action_ = 'DO') THEN
5.591 + remrec_ := Lock_By_Id___(objid_, objversion_);
5.592 + Check_Delete___(remrec_);
5.593 + Delete___(objid_, remrec_);
5.594 + END IF;
5.595 + info_ := Client_SYS.Get_All_Info;
5.596 +END Remove__;
5.597 +
5.598 +-----------------------------------------------------------------------------
5.599 +-------------------- PUBLIC BASE METHODS ------------------------------------
5.600 +-----------------------------------------------------------------------------
5.601 +-- Exist
5.602 +-- Checks if given pointer (e.g. primary key) to an instance of this
5.603 +-- logical unit exists. If not an exception will be raised.
5.604 +-----------------------------------------------------------------------------
5.605 +
5.606 +PROCEDURE Exist (
5.607 + identity_ IN VARCHAR2,
5.608 + schedule_type_ IN VARCHAR2,
5.609 + schedule_code_ IN VARCHAR2,
5.610 + company_id_ IN VARCHAR2,
5.611 + wage_class_ IN VARCHAR2 )
5.612 +IS
5.613 +BEGIN
5.614 + General_SYS.Init_Method(lu_name_, '&PKG', 'Exist', TRUE);
5.615 + IF (NOT Check_Exist___(identity_, schedule_type_, schedule_code_, company_id_, wage_class_)) THEN
5.616 + Error_SYS.Record_Not_Exist(lu_name_);
5.617 + END IF;
5.618 +END Exist;
5.619 +
5.620 +-----------------------------------------------------------------------------
5.621 +-------------------- LU SPECIFIC IMPLEMENTATION METHODS ---------------------
5.622 +-----------------------------------------------------------------------------
5.623 +
5.624 +
5.625 +-----------------------------------------------------------------------------
5.626 +-------------------- LU SPECIFIC PRIVATE METHODS ----------------------------
5.627 +-----------------------------------------------------------------------------
5.628 +
5.629 +
5.630 +-----------------------------------------------------------------------------
5.631 +-------------------- LU SPECIFIC PROTECTED METHODS --------------------------
5.632 +-----------------------------------------------------------------------------
5.633 +
5.634 +
5.635 +-----------------------------------------------------------------------------
5.636 +-------------------- LU SPECIFIC PUBLIC METHODS -----------------------------
5.637 +-----------------------------------------------------------------------------
5.638 +
5.639 +PROCEDURE Add_Remove (
5.640 + identity_ IN VARCHAR2,
5.641 + schedule_type_ IN VARCHAR2,
5.642 + schedule_code_ IN VARCHAR2,
5.643 + company_id_ IN VARCHAR2,
5.644 + wage_class_ IN VARCHAR2,
5.645 + favorite_ IN NUMBER )
5.646 +IS
5.647 + info_ VARCHAR2(1000);
5.648 + objid_ FAVORITE_SCHEDULES.objid%TYPE;
5.649 + objversion_ FAVORITE_SCHEDULES.objversion%TYPE;
5.650 + attr_ VARCHAR2(1000);
5.651 +BEGIN
5.652 + General_SYS.Init_Method(lu_name_, '&PKG', 'Add_Remove');
5.653 + IF favorite_ = 1 THEN
5.654 + IF (NOT Check_Exist___(identity_, schedule_type_, schedule_code_, company_id_, wage_class_)) THEN
5.655 + Client_SYS.Clear_Attr(attr_);
5.656 + Client_SYS.Add_To_Attr('COMPANY_ID', company_id_, attr_);
5.657 + Client_SYS.Add_To_Attr('WAGE_CLASS', wage_class_, attr_);
5.658 + Client_SYS.Add_To_Attr('IDENTITY', identity_, attr_);
5.659 + Client_SYS.Add_To_Attr('SCHEDULE_TYPE', schedule_type_, attr_);
5.660 + Client_SYS.Add_To_Attr('SCHEDULE_CODE', schedule_code_, attr_);
5.661 + New__( info_, objid_, objversion_, attr_, 'DO');
5.662 + END IF;
5.663 + ELSE
5.664 + IF (Check_Exist___(identity_, schedule_type_, schedule_code_, company_id_, wage_class_)) THEN
5.665 + Get_Id_Version_By_Keys___(objid_, objversion_, identity_, schedule_type_, schedule_code_, company_id_, wage_class_);
5.666 + Remove__(info_, objid_, objversion_, 'DO');
5.667 + END IF;
5.668 + END IF;
5.669 +
5.670 +END Add_Remove;
5.671 +
5.672 +
5.673 +FUNCTION Get_Favorite (
5.674 + identity_ IN VARCHAR2,
5.675 + schedule_type_ IN VARCHAR2,
5.676 + schedule_code_ IN VARCHAR2,
5.677 + company_id_ IN VARCHAR2,
5.678 + wage_class_ IN VARCHAR2 ) RETURN NUMBER
5.679 +IS
5.680 +BEGIN
5.681 + IF (Check_Exist___(identity_, schedule_type_, schedule_code_, company_id_, wage_class_)) THEN
5.682 + RETURN 1;
5.683 + END IF;
5.684 + RETURN 0;
5.685 +END Get_Favorite;
5.686 +
5.687 +-----------------------------------------------------------------------------
5.688 +-------------------- FOUNDATION1 METHODS ------------------------------------
5.689 +-----------------------------------------------------------------------------
5.690 +-- Init
5.691 +-- Dummy procedure that can be called at database startup to ensure that
5.692 +-- this package is loaded into memory for performance reasons only.
5.693 +-----------------------------------------------------------------------------
5.694 +
5.695 +PROCEDURE Init
5.696 +IS
5.697 +BEGIN
5.698 + NULL;
5.699 +END Init;
5.700 +
5.701 +
5.702 +END &PKG;
5.703 +/
5.704 +SHOW ERROR
5.705 +
5.706 +UNDEFINE MODULE
5.707 +UNDEFINE LU
5.708 +UNDEFINE TABLE
5.709 +UNDEFINE VIEW
5.710 +UNDEFINE PKG
5.711 +
5.712 +UNDEFINE OBJID
5.713 +UNDEFINE OBJVERSION
5.714 +
5.715 +-----------------------------------------------------------------------------
6.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
6.2 +++ b/PLSQL/Lexer/test/unit/data/FndEvent.api Wed May 15 23:04:20 2013 +0200
6.3 @@ -0,0 +1,147 @@
6.4 +-----------------------------------------------------------------------------
6.5 +--
6.6 +-- Logical unit: FndEvent
6.7 +--
6.8 +-- IFS/Design Template Version 2.3
6.9 +--
6.10 +-- Date Sign History
6.11 +-- ------ ---- -----------------------------------------------------------
6.12 +-- 971009 ERFO Reviewed for Foundation1 Release 2.0.0 (ToDo #1676).
6.13 +-- 030212 ROOD Changed module to FNDBAS (ToDo#4149).
6.14 +-- 070212 HAAR Added support for Custom Defined Events (Bugg#61780).
6.15 +-- 090114 HAAR Added methods for Export/Import Export__ and Register_Custom_Event (Bug#79673).
6.16 +-----------------------------------------------------------------------------
6.17 +
6.18 +DEFINE MODULE = FNDBAS
6.19 +DEFINE LU = FndEvent
6.20 +DEFINE PKG = FND_EVENT_API
6.21 +
6.22 +
6.23 +PROMPT Creating &AO..&PKG specification
6.24 +
6.25 +CREATE OR REPLACE PACKAGE &AO..&PKG IS
6.26 +
6.27 +module_ CONSTANT VARCHAR2(25) := '&MODULE';
6.28 +lu_name_ CONSTANT VARCHAR2(25) := '&LU';
6.29 +
6.30 +TYPE Public_Rec IS RECORD
6.31 + (event_description FND_EVENT_TAB.event_description%TYPE,
6.32 + event_enable FND_EVENT_TAB.event_enable%TYPE);
6.33 +
6.34 +-----------------------------------------------------------------------------
6.35 +-------------------- PRIVATE BASE METHODS -----------------------------------
6.36 +-----------------------------------------------------------------------------
6.37 +
6.38 +PROCEDURE Lock__ (
6.39 + info_ OUT VARCHAR2,
6.40 + objid_ IN VARCHAR2,
6.41 + objversion_ IN VARCHAR2 );
6.42 +
6.43 +PROCEDURE New__ (
6.44 + info_ OUT VARCHAR2,
6.45 + objid_ OUT VARCHAR2,
6.46 + objversion_ OUT VARCHAR2,
6.47 + attr_ IN OUT VARCHAR2,
6.48 + action_ IN VARCHAR2 );
6.49 +
6.50 +PROCEDURE Modify__ (
6.51 + info_ OUT VARCHAR2,
6.52 + objid_ IN VARCHAR2,
6.53 + objversion_ IN OUT VARCHAR2,
6.54 + attr_ IN OUT VARCHAR2,
6.55 + action_ IN VARCHAR2 );
6.56 +
6.57 +PROCEDURE Remove__ (
6.58 + info_ OUT VARCHAR2,
6.59 + objid_ IN VARCHAR2,
6.60 + objversion_ IN VARCHAR2,
6.61 + action_ IN VARCHAR2 );
6.62 +
6.63 +-----------------------------------------------------------------------------
6.64 +-------------------- PUBLIC BASE METHODS ------------------------------------
6.65 +-----------------------------------------------------------------------------
6.66 +
6.67 +PROCEDURE Exist (
6.68 + event_lu_name_ IN VARCHAR2,
6.69 + event_id_ IN VARCHAR2 );
6.70 +
6.71 +-----------------------------------------------------------------------------
6.72 +-------------------- LU SPECIFIC PRIVATE METHODS ----------------------------
6.73 +-----------------------------------------------------------------------------
6.74 +
6.75 +PROCEDURE Export__ (
6.76 + string_ OUT VARCHAR2,
6.77 + event_lu_name_ IN VARCHAR2,
6.78 + event_id_ IN VARCHAR2 );
6.79 +
6.80 +-----------------------------------------------------------------------------
6.81 +-------------------- LU SPECIFIC PROTECTED METHODS --------------------------
6.82 +-----------------------------------------------------------------------------
6.83 +
6.84 +
6.85 +-----------------------------------------------------------------------------
6.86 +-------------------- LU SPECIFIC PUBLIC METHODS -----------------------------
6.87 +-----------------------------------------------------------------------------
6.88 +
6.89 +FUNCTION Get_Event_Description (
6.90 + event_lu_name_ IN VARCHAR2,
6.91 + event_id_ IN VARCHAR2 ) RETURN VARCHAR2;
6.92 +PRAGMA restrict_references(Get_Event_Description, WNDS);
6.93 +
6.94 +
6.95 +FUNCTION Get_Event_Enable (
6.96 + event_lu_name_ IN VARCHAR2,
6.97 + event_id_ IN VARCHAR2 ) RETURN VARCHAR2;
6.98 +PRAGMA restrict_references(Get_Event_Enable, WNDS);
6.99 +
6.100 +
6.101 +PROCEDURE Set_Event_Enable (
6.102 + event_lu_name_ IN VARCHAR2,
6.103 + event_id_ IN VARCHAR2 );
6.104 +
6.105 +
6.106 +PROCEDURE Refresh (
6.107 + event_lu_name_ IN VARCHAR2,
6.108 + event_id_ IN VARCHAR2,
6.109 + event_desc_ IN VARCHAR2,
6.110 + event_type_db_ IN VARCHAR2 DEFAULT 'APPLICATION',
6.111 + event_table_name_ IN VARCHAR2 DEFAULT NULL,
6.112 + modified_attributes_ IN VARCHAR2 DEFAULT NULL,
6.113 + new_row_ IN VARCHAR2 DEFAULT 'FALSE',
6.114 + modify_row_ IN VARCHAR2 DEFAULT 'FALSE',
6.115 + remove_row_ IN VARCHAR2 DEFAULT 'FALSE');
6.116 +
6.117 +PROCEDURE Register_Custom_Event (
6.118 + event_lu_name_ IN VARCHAR2,
6.119 + event_id_ IN VARCHAR2,
6.120 + info_msg_ IN VARCHAR2 );
6.121 +
6.122 +
6.123 +PROCEDURE Unfresh (
6.124 + event_lu_name_ IN VARCHAR2,
6.125 + event_id_ IN VARCHAR2 );
6.126 +
6.127 +
6.128 +FUNCTION Get (
6.129 + event_lu_name_ IN VARCHAR2,
6.130 + event_id_ IN VARCHAR2 ) RETURN Public_Rec;
6.131 +PRAGMA restrict_references(Get, WNDS);
6.132 +
6.133 +
6.134 +
6.135 +-----------------------------------------------------------------------------
6.136 +-------------------- FOUNDATION1 METHODS ------------------------------------
6.137 +-----------------------------------------------------------------------------
6.138 +
6.139 +PROCEDURE Init;
6.140 +
6.141 +
6.142 +END &PKG;
6.143 +/
6.144 +SHOW ERROR
6.145 +
6.146 +UNDEFINE MODULE
6.147 +UNDEFINE LU
6.148 +UNDEFINE PKG
6.149 +
6.150 +-----------------------------------------------------------------------------
7.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
7.2 +++ b/PLSQL/Lexer/test/unit/data/FndEvent.apy Wed May 15 23:04:20 2013 +0200
7.3 @@ -0,0 +1,1422 @@
7.4 +-----------------------------------------------------------------------------
7.5 +--
7.6 +-- Logical unit: FndEvent
7.7 +--
7.8 +-- Purpose:
7.9 +--
7.10 +-- IFS/Design Template Version 2.3
7.11 +--
7.12 +-- Date Sign History
7.13 +-- ------ ---- -----------------------------------------------------------
7.14 +-- 971009 ERFO Reviewed for Foundation1 Release 2.0.0 (ToDo #1676).
7.15 +-- 971013 ERFO Made attribute EVENT_ID uppercase.
7.16 +-- 980223 ERFO Removed Set_Event_Enabled in method Refresh and added
7.17 +-- validation when setting event enabled (ToDo #2144).
7.18 +-- 980310 ERFO Set event_enable to FALSE in method Refresh and
7.19 +-- ensure a correct error message in method Update___.
7.20 +-- 030212 ROOD Changed module to FNDBAS (ToDo#4149).
7.21 +-- 030214 ROOD Replaced usage of fnd_event_action_tab with the view (ToDo#4149).
7.22 +-- 060623 RARU Moved the select statement into a cursor in Update__.
7.23 +-- 070212 HAAR Added support for Custom Defined Events (Bugg#61780).
7.24 +-- 080101 SUMA Changed the :new to old when inserting new recs.(Bug#70269).
7.25 +-- 080228 SUMA Added Create_Trigger_Name function to aviod special chars(Bug#71099)
7.26 +-- 080925 HAAR Renamed parameters for Custom Defined Events (Bug#77334).
7.27 +-- New value: NEW:COLUMN_NAME => NEW:IDENTITY
7.28 +-- Old value: OLD:COLUMN_NAME => OLD:IDENTITY
7.29 +-- 090114 HAAR Added methods for Export/Import Export__ and Register_Custom_Event (Bug#79673).
7.30 +-- 091109 NABA Added the check for event_id as a valid identifier (Bug#86681)
7.31 +-----------------------------------------------------------------------------
7.32 +
7.33 +DEFINE MODULE = FNDBAS
7.34 +DEFINE LU = FndEvent
7.35 +DEFINE TABLE = FND_EVENT_TAB
7.36 +DEFINE VIEW = FND_EVENT
7.37 +DEFINE PKG = FND_EVENT_API
7.38 +
7.39 +DEFINE OBJID = rowid
7.40 +DEFINE OBJVERSION = "ltrim(lpad(to_char(rowversion,'YYYYMMDDHH24MISS'),2000))"
7.41 +
7.42 +-----------------------------------------------------------------------------
7.43 +-------------------- VIEWS FOR SELECTS --------------------------------------
7.44 +-----------------------------------------------------------------------------
7.45 +
7.46 +PROMPT Creating &AO..&VIEW view
7.47 +
7.48 +CREATE OR REPLACE VIEW &AO..&VIEW AS
7.49 +SELECT event_lu_name event_lu_name,
7.50 + event_id event_id,
7.51 + event_description event_description,
7.52 + event_enable event_enable,
7.53 + event_table_name event_table_name,
7.54 + Fnd_Event_Type_API.Decode(event_type) event_type,
7.55 + event_type event_type_db,
7.56 + modified_attributes modified_attributes,
7.57 + Fnd_Boolean_API.Decode(new_row) new_row,
7.58 + new_row new_row_db,
7.59 + Fnd_Boolean_API.Decode(modify_row) modify_row,
7.60 + modify_row modify_row_db,
7.61 + Fnd_Boolean_API.Decode(remove_row) remove_row,
7.62 + remove_row remove_row_db,
7.63 + &OBJID objid,
7.64 + &OBJVERSION objversion
7.65 +FROM fnd_event_tab
7.66 +WITH read only;
7.67 +
7.68 +COMMENT ON TABLE &AO..&VIEW
7.69 + IS 'LU=&LU^PROMPT=Fnd Event^MODULE=&MODULE^';
7.70 +
7.71 +COMMENT ON COLUMN &AO..&VIEW..event_lu_name
7.72 + IS 'FLAGS=KMI-L^DATATYPE=STRING(25)^PROMPT=Event Lu Name^';
7.73 +COMMENT ON COLUMN &AO..&VIEW..event_id
7.74 + IS 'FLAGS=KMI-L^DATATYPE=STRING(32)/UPPERCASE^PROMPT=Event Id^';
7.75 +COMMENT ON COLUMN &AO..&VIEW..event_description
7.76 + IS 'FLAGS=A-IU-^DATATYPE=STRING(256)^PROMPT=Event Description^';
7.77 +COMMENT ON COLUMN &AO..&VIEW..event_enable
7.78 + IS 'FLAGS=A-IU-^DATATYPE=BOOLEAN^PROMPT=Event Enable^';
7.79 +COMMENT ON COLUMN &AO..&VIEW..event_table_name
7.80 + IS 'FLAGS=A-IU-^DATATYPE=STRING(30)^PROMPT=Event Table Name^';
7.81 +COMMENT ON COLUMN &AO..&VIEW..event_type
7.82 + IS 'FLAGS=AMIU-^DATATYPE=STRING(200)^PROMPT=Event Type^REF=FndEventType^';
7.83 +COMMENT ON COLUMN &AO..&VIEW..event_type_db
7.84 + IS 'FLAGS=A----^DATATYPE=STRING(20)^PROMPT=Event Type^';
7.85 +COMMENT ON COLUMN &AO..&VIEW..modified_attributes
7.86 + IS 'FLAGS=A-IU-^DATATYPE=STRING(4000)^PROMPT=Modified Attributes^';
7.87 +COMMENT ON COLUMN &AO..&VIEW..new_row
7.88 + IS 'FLAGS=AMIU-^DATATYPE=STRING(200)^PROMPT=New Row^REF=FndBoolean^';
7.89 +COMMENT ON COLUMN &AO..&VIEW..new_row_db
7.90 + IS 'FLAGS=A----^DATATYPE=STRING(20)^PROMPT=New Row^';
7.91 +COMMENT ON COLUMN &AO..&VIEW..modify_row
7.92 + IS 'FLAGS=AMIU-^DATATYPE=STRING(200)^PROMPT=Modify Row^REF=FndBoolean^';
7.93 +COMMENT ON COLUMN &AO..&VIEW..modify_row_db
7.94 + IS 'FLAGS=A----^DATATYPE=STRING(20)^PROMPT=Modify Row^';
7.95 +COMMENT ON COLUMN &AO..&VIEW..remove_row
7.96 + IS 'FLAGS=AMIUL^DATATYPE=STRING(200)^PROMPT=Remove Row^REF=FndBoolean^';
7.97 +COMMENT ON COLUMN &AO..&VIEW..remove_row_db
7.98 + IS 'FLAGS=A----^DATATYPE=STRING(20)^PROMPT=Remove Row^';
7.99 +
7.100 +-----------------------------------------------------------------------------
7.101 +-------------------- PACKAGES FOR METHODS -----------------------------------
7.102 +-----------------------------------------------------------------------------
7.103 +
7.104 +PROMPT Creating &AO..&PKG implementation
7.105 +
7.106 +CREATE OR REPLACE PACKAGE BODY &AO..&PKG IS
7.107 +
7.108 +datetime_format_ VARCHAR2(40) := Fnd_Setting_API.Get_Value('EVENT_REG_DATETIME');
7.109 +date_format_ VARCHAR2(40) := Fnd_Setting_API.Get_Value('EVENT_REG_DATE');
7.110 +time_format_ VARCHAR2(40) := Fnd_Setting_API.Get_Value('EVENT_REG_TIME');
7.111 +
7.112 +-----------------------------------------------------------------------------
7.113 +-------------------- LU SPECIFIC IMPLEMENTATION METHOD DECLARATIONS ---------
7.114 +-----------------------------------------------------------------------------
7.115 +
7.116 +PROCEDURE Create_Custom_Trigger___(
7.117 + rec_ IN Fnd_Event_Tab%ROWTYPE,
7.118 + trigger_type_ IN VARCHAR2 );
7.119 +
7.120 +PROCEDURE Create_Custom_Triggers___(
7.121 + rec_ IN Fnd_Event_Tab%ROWTYPE );
7.122 +
7.123 +FUNCTION Get_Trigger_Name___(
7.124 + event_id_ IN VARCHAR2,
7.125 + trigger_type_ IN VARCHAR2 ) RETURN VARCHAR2;
7.126 +
7.127 +PROCEDURE Remove_Custom_Trigger___(
7.128 + rec_ IN Fnd_Event_Tab%ROWTYPE,
7.129 + trigger_type_ IN VARCHAR2 );
7.130 +
7.131 +PROCEDURE Remove_Custom_Triggers___(
7.132 + rec_ IN Fnd_Event_Tab%ROWTYPE );
7.133 +
7.134 +FUNCTION Create_Trigger_Name___ (
7.135 + event_id_ IN VARCHAR2 ) RETURN VARCHAR2;
7.136 +-----------------------------------------------------------------------------
7.137 +-------------------- IMPLEMENTATION BASE METHODS ----------------------------
7.138 +-----------------------------------------------------------------------------
7.139 +-- Lock_By_Id___
7.140 +-- Client-support to lock a specific instance of the logical unit.
7.141 +--
7.142 +-- Lock_By_Keys___
7.143 +-- Server support to lock a specific instance of the logical unit.
7.144 +--
7.145 +-- Get_Object_By_Id___
7.146 +-- Get LU-record from the database with a specified object identity.
7.147 +--
7.148 +-- Get_Object_By_Keys___
7.149 +-- Get LU-record from the database with specified key columns.
7.150 +--
7.151 +-- Check_Exist___
7.152 +-- Check if a specific LU-instance already exist in the database.
7.153 +--
7.154 +-- Get_Id_Version_By_Keys___
7.155 +-- Get the current OBJID and OBJVERSION for a specific LU-instance.
7.156 +-----------------------------------------------------------------------------
7.157 +
7.158 +FUNCTION Lock_By_Id___ (
7.159 + objid_ IN VARCHAR2,
7.160 + objversion_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
7.161 +IS
7.162 + row_changed EXCEPTION;
7.163 + row_deleted EXCEPTION;
7.164 + row_locked EXCEPTION;
7.165 + PRAGMA exception_init(row_locked, -0054);
7.166 + rec_ &TABLE%ROWTYPE;
7.167 + dummy_ NUMBER;
7.168 + CURSOR lock_control IS
7.169 + SELECT *
7.170 + FROM &TABLE
7.171 + WHERE &OBJID = objid_
7.172 + AND &OBJVERSION = objversion_
7.173 + FOR UPDATE NOWAIT;
7.174 + CURSOR exist_control IS
7.175 + SELECT 1
7.176 + FROM &TABLE
7.177 + WHERE &OBJID = objid_;
7.178 +BEGIN
7.179 + OPEN lock_control;
7.180 + FETCH lock_control INTO rec_;
7.181 + IF (lock_control%FOUND) THEN
7.182 + CLOSE lock_control;
7.183 + RETURN rec_;
7.184 + END IF;
7.185 + CLOSE lock_control;
7.186 + OPEN exist_control;
7.187 + FETCH exist_control INTO dummy_;
7.188 + IF (exist_control%FOUND) THEN
7.189 + CLOSE exist_control;
7.190 + RAISE row_changed;
7.191 + ELSE
7.192 + CLOSE exist_control;
7.193 + RAISE row_deleted;
7.194 + END IF;
7.195 +EXCEPTION
7.196 + WHEN row_locked THEN
7.197 + Error_SYS.Record_Locked(lu_name_);
7.198 + WHEN row_changed THEN
7.199 + Error_SYS.Record_Modified(lu_name_);
7.200 + WHEN row_deleted THEN
7.201 + Error_SYS.Record_Removed(lu_name_);
7.202 +END Lock_By_Id___;
7.203 +
7.204 +FUNCTION Lock_By_Keys___ (
7.205 + event_lu_name_ IN VARCHAR2,
7.206 + event_id_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
7.207 +IS
7.208 + row_deleted EXCEPTION;
7.209 + rec_ &TABLE%ROWTYPE;
7.210 + CURSOR lock_control IS
7.211 + SELECT *
7.212 + FROM &TABLE
7.213 + WHERE event_lu_name = event_lu_name_
7.214 + AND event_id = event_id_
7.215 + FOR UPDATE;
7.216 +BEGIN
7.217 + OPEN lock_control;
7.218 + FETCH lock_control INTO rec_;
7.219 + IF (lock_control%FOUND) THEN
7.220 + CLOSE lock_control;
7.221 + RETURN rec_;
7.222 + ELSE
7.223 + CLOSE lock_control;
7.224 + RAISE row_deleted;
7.225 + END IF;
7.226 +EXCEPTION
7.227 + WHEN row_deleted THEN
7.228 + Error_SYS.Record_Removed(lu_name_);
7.229 +END Lock_By_Keys___;
7.230 +
7.231 +FUNCTION Get_Object_By_Id___ (
7.232 + objid_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
7.233 +IS
7.234 + lu_rec_ &TABLE%ROWTYPE;
7.235 + CURSOR getrec IS
7.236 + SELECT *
7.237 + FROM &TABLE
7.238 + WHERE &OBJID = objid_;
7.239 +BEGIN
7.240 + OPEN getrec;
7.241 + FETCH getrec INTO lu_rec_;
7.242 + IF (getrec%NOTFOUND) THEN
7.243 + CLOSE getrec;
7.244 + Error_SYS.Record_Removed(lu_name_);
7.245 + END IF;
7.246 + CLOSE getrec;
7.247 + RETURN(lu_rec_);
7.248 +END Get_Object_By_Id___;
7.249 +
7.250 +
7.251 +FUNCTION Get_Object_By_Keys___ (
7.252 + event_lu_name_ IN VARCHAR2,
7.253 + event_id_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
7.254 +IS
7.255 + lu_rec_ &TABLE%ROWTYPE;
7.256 + CURSOR getrec IS
7.257 + SELECT *
7.258 + FROM &TABLE
7.259 + WHERE event_lu_name = event_lu_name_
7.260 + AND event_id = event_id_;
7.261 +BEGIN
7.262 + OPEN getrec;
7.263 + FETCH getrec INTO lu_rec_;
7.264 + CLOSE getrec;
7.265 + RETURN(lu_rec_);
7.266 +END Get_Object_By_Keys___;
7.267 +
7.268 +FUNCTION Check_Exist___ (
7.269 + event_lu_name_ IN VARCHAR2,
7.270 + event_id_ IN VARCHAR2 ) RETURN BOOLEAN
7.271 +IS
7.272 + dummy_ NUMBER;
7.273 + CURSOR exist_control IS
7.274 + SELECT 1
7.275 + FROM &TABLE
7.276 + WHERE event_lu_name = event_lu_name_
7.277 + AND event_id = event_id_;
7.278 +BEGIN
7.279 + OPEN exist_control;
7.280 + FETCH exist_control INTO dummy_;
7.281 + IF (exist_control%FOUND) THEN
7.282 + CLOSE exist_control;
7.283 + RETURN(TRUE);
7.284 + END IF;
7.285 + CLOSE exist_control;
7.286 + RETURN(FALSE);
7.287 +END Check_Exist___;
7.288 +
7.289 +PROCEDURE Get_Id_Version_By_Keys___ (
7.290 + objid_ IN OUT VARCHAR2,
7.291 + objversion_ IN OUT VARCHAR2,
7.292 + event_lu_name_ IN VARCHAR2,
7.293 + event_id_ IN VARCHAR2)
7.294 +IS
7.295 + CURSOR get_version IS
7.296 + SELECT &OBJID, &OBJVERSION
7.297 + FROM &TABLE
7.298 + WHERE event_lu_name = event_lu_name_
7.299 + AND event_id = event_id_;
7.300 +BEGIN
7.301 + OPEN get_version;
7.302 + FETCH get_version INTO objid_, objversion_;
7.303 + CLOSE get_version;
7.304 +END Get_Id_Version_By_Keys___;
7.305 +
7.306 +-----------------------------------------------------------------------------
7.307 +-------------------- IMPLEMENTATION BASE METHODS FOR INSERT -----------------
7.308 +-----------------------------------------------------------------------------
7.309 +-- Prepare_Insert___
7.310 +-- Set all default values for a new instance (ON-NEW-RECORD) of this
7.311 +-- logical unit by calling procedure Add_Attr.
7.312 +--
7.313 +-- Unpack_Check_Insert___
7.314 +-- Unpack the attribute list, check all attributes from the client
7.315 +-- and generate all default values before creation of the new object.
7.316 +--
7.317 +-- Insert___
7.318 +-- Insert a new LU-instance into the database and return the values
7.319 +-- for OBJID and OBJVERSION.
7.320 +-----------------------------------------------------------------------------
7.321 +
7.322 +PROCEDURE Prepare_Insert___ (
7.323 + attr_ IN OUT VARCHAR2 )
7.324 +IS
7.325 +BEGIN
7.326 + Client_SYS.Clear_Attr(attr_);
7.327 + Client_SYS.Add_To_Attr('EVENT_TYPE_DB', 'CUSTOM', attr_);
7.328 + Client_SYS.Add_To_Attr('EVENT_TYPE', Fnd_Event_Type_API.Decode('CUSTOM'), attr_);
7.329 + Client_SYS.Add_To_Attr('NEW_ROW_DB', 'FALSE', attr_);
7.330 + Client_SYS.Add_To_Attr('NEW_ROW', Fnd_Boolean_API.Decode('FALSE'), attr_);
7.331 + Client_SYS.Add_To_Attr('MODIFY_ROW_DB', 'FALSE', attr_);
7.332 + Client_SYS.Add_To_Attr('MODIFY_ROW', Fnd_Boolean_API.Decode('FALSE'), attr_);
7.333 + Client_SYS.Add_To_Attr('REMOVE_ROW_DB', 'FALSE', attr_);
7.334 + Client_SYS.Add_To_Attr('REMOVE_ROW', Fnd_Boolean_API.Decode('FALSE'), attr_);
7.335 +END Prepare_Insert___;
7.336 +
7.337 +
7.338 +PROCEDURE Unpack_Check_Insert___ (
7.339 + attr_ IN OUT VARCHAR2,
7.340 + newrec_ IN OUT &TABLE%ROWTYPE )
7.341 +IS
7.342 + ptr_ NUMBER;
7.343 + name_ VARCHAR2(30);
7.344 + value_ VARCHAR2(2000);
7.345 +BEGIN
7.346 + ptr_ := NULL;
7.347 + WHILE (Client_SYS.Get_Next_From_Attr(attr_, ptr_, name_, value_)) LOOP
7.348 + IF (name_ = 'EVENT_LU_NAME') THEN
7.349 + newrec_.event_lu_name := value_;
7.350 + ELSIF (name_ = 'EVENT_ID') THEN
7.351 + newrec_.event_id := Upper(value_);
7.352 + ELSIF (name_ = 'EVENT_DESCRIPTION') THEN
7.353 + newrec_.event_description := value_;
7.354 + ELSIF (name_ = 'EVENT_ENABLE') THEN
7.355 + newrec_.event_enable := value_;
7.356 + ELSIF (name_ = 'EVENT_TABLE_NAME') THEN
7.357 + newrec_.event_table_name := value_;
7.358 + ELSIF (name_ = 'EVENT_TYPE') THEN
7.359 + newrec_.event_type := Fnd_Event_Type_API.Encode(value_);
7.360 + IF (value_ IS NOT NULL) THEN
7.361 + Fnd_Event_Type_API.Exist(value_);
7.362 + END IF;
7.363 + ELSIF (name_ = 'EVENT_TYPE_DB') THEN
7.364 + newrec_.event_type := value_;
7.365 + IF (value_ IS NOT NULL) THEN
7.366 + Fnd_Event_Type_API.Exist_Db(value_);
7.367 + END IF;
7.368 + ELSIF (name_ = 'MODIFIED_ATTRIBUTES') THEN
7.369 + newrec_.modified_attributes := value_;
7.370 + ELSIF (name_ = 'NEW_ROW') THEN
7.371 + newrec_.new_row := Fnd_Boolean_API.Encode(value_);
7.372 + IF (value_ IS NOT NULL) THEN
7.373 + Fnd_Boolean_API.Exist(value_);
7.374 + END IF;
7.375 + ELSIF (name_ = 'NEW_ROW_DB') THEN
7.376 + newrec_.new_row := value_;
7.377 + IF (value_ IS NOT NULL) THEN
7.378 + Fnd_Boolean_API.Exist_Db(value_);
7.379 + END IF;
7.380 + ELSIF (name_ = 'MODIFY_ROW') THEN
7.381 + newrec_.modify_row := Fnd_Boolean_API.Encode(value_);
7.382 + IF (value_ IS NOT NULL) THEN
7.383 + Fnd_Boolean_API.Exist(value_);
7.384 + END IF;
7.385 + ELSIF (name_ = 'MODIFY_ROW_DB') THEN
7.386 + newrec_.modify_row := value_;
7.387 + IF (value_ IS NOT NULL) THEN
7.388 + Fnd_Boolean_API.Exist_Db(value_);
7.389 + END IF;
7.390 + ELSIF (name_ = 'REMOVE_ROW') THEN
7.391 + newrec_.remove_row := Fnd_Boolean_API.Encode(value_);
7.392 + IF (value_ IS NOT NULL) THEN
7.393 + Fnd_Boolean_API.Exist(value_);
7.394 + END IF;
7.395 + ELSIF (name_ = 'REMOVE_ROW_DB') THEN
7.396 + newrec_.remove_row := value_;
7.397 + IF (value_ IS NOT NULL) THEN
7.398 + Fnd_Boolean_API.Exist_Db(value_);
7.399 + END IF;
7.400 + ELSE
7.401 + Error_SYS.Item_Not_Exist(lu_name_, name_, value_);
7.402 + END IF;
7.403 + END LOOP;
7.404 + Client_SYS.Clear_Attr(attr_);
7.405 + Error_SYS.Check_Not_Null(lu_name_, 'EVENT_LU_NAME', newrec_.event_lu_name);
7.406 + Error_SYS.Check_Not_Null(lu_name_, 'EVENT_ID', newrec_.event_id);
7.407 + Error_SYS.Check_Valid_Identifier('EVENT_ID', newrec_.event_id);
7.408 + Error_SYS.Check_Not_Null(lu_name_, 'EVENT_TYPE', newrec_.event_type);
7.409 + Error_SYS.Check_Not_Null(lu_name_, 'NEW_ROW', newrec_.new_row);
7.410 + Error_SYS.Check_Not_Null(lu_name_, 'MODIFY_ROW', newrec_.modify_row);
7.411 + Error_SYS.Check_Not_Null(lu_name_, 'REMOVE_ROW', newrec_.remove_row);
7.412 +EXCEPTION
7.413 + WHEN value_error THEN
7.414 + Error_SYS.Item_Format(lu_name_, name_, value_);
7.415 +END Unpack_Check_Insert___;
7.416 +
7.417 +
7.418 +PROCEDURE Insert___ (
7.419 + objid_ OUT VARCHAR2,
7.420 + objversion_ OUT VARCHAR2,
7.421 + newrec_ IN OUT &TABLE%ROWTYPE,
7.422 + attr_ IN OUT VARCHAR2 )
7.423 +IS
7.424 +BEGIN
7.425 + newrec_.rowversion := sysdate;
7.426 + objversion_ := to_char(newrec_.rowversion,'YYYYMMDDHH24MISS');
7.427 + --
7.428 + IF (nvl(newrec_.event_enable, 'FALSE') = 'TRUE') THEN
7.429 + Error_SYS.Appl_General(lu_name_, 'ENERR_I: Can not enable event with no actions enabled.');
7.430 + END IF;
7.431 + --
7.432 + INSERT
7.433 + INTO fnd_event_tab (
7.434 + event_lu_name,
7.435 + event_id,
7.436 + event_description,
7.437 + event_enable,
7.438 + event_table_name,
7.439 + event_type,
7.440 + modified_attributes,
7.441 + new_row,
7.442 + modify_row,
7.443 + remove_row,
7.444 + rowversion)
7.445 + VALUES (
7.446 + newrec_.event_lu_name,
7.447 + newrec_.event_id,
7.448 + newrec_.event_description,
7.449 + newrec_.event_enable,
7.450 + newrec_.event_table_name,
7.451 + newrec_.event_type,
7.452 + newrec_.modified_attributes,
7.453 + newrec_.new_row,
7.454 + newrec_.modify_row,
7.455 + newrec_.remove_row,
7.456 + newrec_.rowversion)
7.457 + RETURNING &OBJID INTO objid_;
7.458 + -- Create Custom Defined triggers
7.459 + IF (newrec_.event_type = 'CUSTOM') THEN
7.460 + IF (newrec_.event_enable = 'TRUE') THEN
7.461 + Create_Custom_Triggers___(newrec_);
7.462 + END IF;
7.463 + END IF;
7.464 +EXCEPTION
7.465 + WHEN dup_val_on_index THEN
7.466 + Error_SYS.Record_Exist(lu_name_);
7.467 +END Insert___;
7.468 +
7.469 +-----------------------------------------------------------------------------
7.470 +-------------------- IMPLEMENTATION BASE METHODS FOR UPDATE -----------------
7.471 +-----------------------------------------------------------------------------
7.472 +-- Unpack_Check_Update___
7.473 +-- Unpack the attribute list, check all attributes from the client
7.474 +-- and generate all default values before modifying the object.
7.475 +--
7.476 +-- Update___
7.477 +-- Update an existing LU-instance in the database and return the
7.478 +-- the new OBJVERSION.
7.479 +-----------------------------------------------------------------------------
7.480 +
7.481 +PROCEDURE Unpack_Check_Update___ (
7.482 + attr_ IN OUT VARCHAR2,
7.483 + newrec_ IN OUT &TABLE%ROWTYPE,
7.484 + objid_ IN VARCHAR2 )
7.485 +IS
7.486 + ptr_ NUMBER;
7.487 + name_ VARCHAR2(30);
7.488 + value_ VARCHAR2(2000);
7.489 +BEGIN
7.490 + ptr_ := NULL;
7.491 + WHILE (Client_SYS.Get_Next_From_Attr(attr_, ptr_, name_, value_)) LOOP
7.492 + IF (name_ = 'EVENT_LU_NAME') THEN
7.493 + Error_SYS.Item_Update(lu_name_, 'EVENT_LU_NAME');
7.494 + ELSIF (name_ = 'EVENT_ID') THEN
7.495 + Error_SYS.Item_Update(lu_name_, 'EVENT_ID');
7.496 + ELSIF (name_ = 'EVENT_DESCRIPTION') THEN
7.497 + newrec_.event_description := value_;
7.498 + ELSIF (name_ = 'EVENT_ENABLE') THEN
7.499 + newrec_.event_enable := value_;
7.500 + ELSIF (name_ = 'EVENT_TABLE_NAME') THEN
7.501 + newrec_.event_table_name := value_;
7.502 + ELSIF (name_ = 'EVENT_TYPE') THEN
7.503 + newrec_.event_type := Fnd_Event_Type_API.Encode(value_);
7.504 + IF (value_ IS NOT NULL) THEN
7.505 + Fnd_Event_Type_API.Exist(value_);
7.506 + END IF;
7.507 + ELSIF (name_ = 'EVENT_TYPE_DB') THEN
7.508 + newrec_.event_type := value_;
7.509 + IF (value_ IS NOT NULL) THEN
7.510 + Fnd_Event_Type_API.Exist_Db(value_);
7.511 + END IF;
7.512 + ELSIF (name_ = 'MODIFIED_ATTRIBUTES') THEN
7.513 + newrec_.modified_attributes := value_;
7.514 + ELSIF (name_ = 'NEW_ROW') THEN
7.515 + newrec_.new_row := Fnd_Boolean_API.Encode(value_);
7.516 + IF (value_ IS NOT NULL) THEN
7.517 + Fnd_Boolean_API.Exist(value_);
7.518 + END IF;
7.519 + ELSIF (name_ = 'NEW_ROW_DB') THEN
7.520 + newrec_.new_row := value_;
7.521 + IF (value_ IS NOT NULL) THEN
7.522 + Fnd_Boolean_API.Exist_Db(value_);
7.523 + END IF;
7.524 + ELSIF (name_ = 'MODIFY_ROW') THEN
7.525 + newrec_.modify_row := Fnd_Boolean_API.Encode(value_);
7.526 + IF (value_ IS NOT NULL) THEN
7.527 + Fnd_Boolean_API.Exist(value_);
7.528 + END IF;
7.529 + ELSIF (name_ = 'MODIFY_ROW_DB') THEN
7.530 + newrec_.modify_row := value_;
7.531 + IF (value_ IS NOT NULL) THEN
7.532 + Fnd_Boolean_API.Exist_Db(value_);
7.533 + END IF;
7.534 + ELSIF (name_ = 'REMOVE_ROW') THEN
7.535 + newrec_.remove_row := Fnd_Boolean_API.Encode(value_);
7.536 + IF (value_ IS NOT NULL) THEN
7.537 + Fnd_Boolean_API.Exist(value_);
7.538 + END IF;
7.539 + ELSIF (name_ = 'REMOVE_ROW_DB') THEN
7.540 + newrec_.remove_row := value_;
7.541 + IF (value_ IS NOT NULL) THEN
7.542 + Fnd_Boolean_API.Exist_Db(value_);
7.543 + END IF;
7.544 + ELSE
7.545 + Error_SYS.Item_Not_Exist(lu_name_, name_, value_);
7.546 + END IF;
7.547 + END LOOP;
7.548 + Client_SYS.Clear_Attr(attr_);
7.549 + Error_SYS.Check_Not_Null(lu_name_, 'EVENT_TYPE', newrec_.event_type);
7.550 + Error_SYS.Check_Not_Null(lu_name_, 'NEW_ROW', newrec_.new_row);
7.551 + Error_SYS.Check_Not_Null(lu_name_, 'MODIFY_ROW', newrec_.modify_row);
7.552 + Error_SYS.Check_Not_Null(lu_name_, 'REMOVE_ROW', newrec_.remove_row);
7.553 +EXCEPTION
7.554 + WHEN value_error THEN
7.555 + Error_SYS.Item_Format(lu_name_, name_, value_);
7.556 +END Unpack_Check_Update___;
7.557 +
7.558 +
7.559 +PROCEDURE Update___ (
7.560 + objid_ IN VARCHAR2,
7.561 + oldrec_ IN &TABLE%ROWTYPE,
7.562 + newrec_ IN OUT &TABLE%ROWTYPE,
7.563 + attr_ IN OUT VARCHAR2,
7.564 + objversion_ IN OUT VARCHAR2,
7.565 + by_keys_ IN BOOLEAN DEFAULT FALSE )
7.566 +IS
7.567 + dummy_ NUMBER;
7.568 +
7.569 + CURSOR get_event_count IS
7.570 + SELECT COUNT(*)
7.571 + FROM fnd_event_action_tab
7.572 + WHERE event_lu_name = newrec_.event_lu_name
7.573 + AND event_id = newrec_.event_id
7.574 + AND action_enable = 'TRUE';
7.575 +BEGIN
7.576 + IF (nvl(oldrec_.event_enable, 'FALSE') = 'FALSE' AND newrec_.event_enable = 'TRUE') THEN
7.577 + OPEN get_event_count;
7.578 + FETCH get_event_count INTO dummy_;
7.579 + CLOSE get_event_count;
7.580 + IF (dummy_ = 0) THEN
7.581 + Error_SYS.Appl_General(lu_name_, 'ENERR_U: Can not enable event with no actions enabled.');
7.582 + END IF;
7.583 + END IF;
7.584 + --
7.585 + newrec_.rowversion := sysdate;
7.586 + objversion_ := to_char(newrec_.rowversion,'YYYYMMDDHH24MISS');
7.587 + IF by_keys_ THEN
7.588 + UPDATE fnd_event_tab
7.589 + SET event_lu_name = newrec_.event_lu_name,
7.590 + event_id = newrec_.event_id,
7.591 + event_description = newrec_.event_description,
7.592 + event_enable = newrec_.event_enable,
7.593 + event_table_name = newrec_.event_table_name,
7.594 + event_type = newrec_.event_type,
7.595 + modified_attributes = newrec_.modified_attributes,
7.596 + new_row = newrec_.new_row,
7.597 + modify_row = newrec_.modify_row,
7.598 + remove_row = newrec_.remove_row,
7.599 + rowversion = newrec_.rowversion
7.600 + WHERE event_lu_name = newrec_.event_lu_name
7.601 + AND event_id = newrec_.event_id;
7.602 + ELSE
7.603 + UPDATE fnd_event_tab
7.604 + SET event_lu_name = newrec_.event_lu_name,
7.605 + event_id = newrec_.event_id,
7.606 + event_description = newrec_.event_description,
7.607 + event_enable = newrec_.event_enable,
7.608 + event_table_name = newrec_.event_table_name,
7.609 + event_type = newrec_.event_type,
7.610 + modified_attributes = newrec_.modified_attributes,
7.611 + new_row = newrec_.new_row,
7.612 + modify_row = newrec_.modify_row,
7.613 + remove_row = newrec_.remove_row,
7.614 + rowversion = newrec_.rowversion
7.615 + WHERE &OBJID = objid_;
7.616 + END IF;
7.617 + -- Create/remove Custom Defined triggers
7.618 + IF (newrec_.event_type = 'CUSTOM') THEN
7.619 + IF (newrec_.event_enable = 'TRUE') THEN
7.620 + Remove_Custom_Triggers___(oldrec_);
7.621 + Create_Custom_Triggers___(newrec_);
7.622 + ELSE
7.623 + Remove_Custom_Triggers___(oldrec_);
7.624 + END IF;
7.625 + END IF;
7.626 +EXCEPTION
7.627 + WHEN dup_val_on_index THEN
7.628 + Error_SYS.Record_Exist(lu_name_);
7.629 +END Update___;
7.630 +
7.631 +-----------------------------------------------------------------------------
7.632 +-------------------- IMPLEMENTATION BASE METHODS FOR DELETE -----------------
7.633 +-----------------------------------------------------------------------------
7.634 +-- Check_Delete___
7.635 +-- Checks whether a specific LU-record may be removed or not.
7.636 +-- The procedure should check business rules like attribute values
7.637 +-- as well as database constraints (defined or not).
7.638 +--
7.639 +-- Delete___
7.640 +-- Deletion of the specific LU-object from the database.
7.641 +-----------------------------------------------------------------------------
7.642 +
7.643 +PROCEDURE Check_Delete___ (
7.644 + remrec_ IN &TABLE%ROWTYPE )
7.645 +IS
7.646 + key_ VARCHAR2(2000);
7.647 +BEGIN
7.648 + key_ := remrec_.event_lu_name || '^' || remrec_.event_id || '^';
7.649 + Reference_SYS.Check_Restricted_Delete(lu_name_, key_);
7.650 +END Check_Delete___;
7.651 +
7.652 +
7.653 +PROCEDURE Delete___ (
7.654 + objid_ IN VARCHAR2,
7.655 + remrec_ IN &TABLE%ROWTYPE )
7.656 +IS
7.657 + key_ VARCHAR2(2000);
7.658 +BEGIN
7.659 + key_ := remrec_.event_lu_name || '^' || remrec_.event_id || '^';
7.660 + Reference_SYS.Do_Cascade_Delete(lu_name_, key_);
7.661 + DELETE
7.662 + FROM fnd_event_tab
7.663 + WHERE &OBJID = objid_;
7.664 + -- Remove Custom Defined triggers
7.665 + IF (remrec_.event_type = 'CUSTOM') THEN
7.666 + Remove_Custom_Triggers___(remrec_);
7.667 + END IF;
7.668 +END Delete___;
7.669 +
7.670 +-----------------------------------------------------------------------------
7.671 +-------------------- PRIVATE BASE METHODS -----------------------------------
7.672 +-----------------------------------------------------------------------------
7.673 +-- Lock__
7.674 +-- Client-support to lock a specific instance of the logical unit.
7.675 +--
7.676 +-- New__
7.677 +-- Client-support interface to create LU instances.
7.678 +-- action_ = 'PREPARE'
7.679 +-- Default values and handle of information to client.
7.680 +-- The default values are set in procedure Prepare_Insert___.
7.681 +-- action_ = 'CHECK'
7.682 +-- Check all attributes before creating new object and handle of
7.683 +-- information to client. The attribute list is unpacked, checked
7.684 +-- and prepared (defaults) in procedure Unpack_Check_Insert___.
7.685 +-- action_ = 'DO'
7.686 +-- Creation of new instances of the logical unit and handle of
7.687 +-- information to client. The attribute list is unpacked, checked
7.688 +-- and prepared (defaults) in procedure Unpack_Check_Insert___
7.689 +-- before calling procedure Insert___.
7.690 +--
7.691 +-- Modify__
7.692 +-- Client-support interface to modify attributes for LU instances.
7.693 +-- action_ = 'CHECK'
7.694 +-- Check all attributes before modifying an existing object and
7.695 +-- handle of information to client. The attribute list is unpacked,
7.696 +-- checked and prepared(defaults) in procedure Unpack_Check_Update___.
7.697 +-- action_ = 'DO'
7.698 +-- Modification of an existing instance of the logical unit. The
7.699 +-- procedure unpacks the attributes, checks all values before
7.700 +-- procedure Update___ is called.
7.701 +--
7.702 +-- Remove__
7.703 +-- Client-support interface to remove LU instances.
7.704 +-- action_ = 'CHECK'
7.705 +-- Check whether a specific LU-instance may be removed or not.
7.706 +-- The procedure fetches the complete record by calling procedure
7.707 +-- Get_Object_By_Id___. Then the check is made by calling procedure
7.708 +-- Check_Delete___.
7.709 +-- action_ = 'DO'
7.710 +-- Remove an existing instance of the logical unit. The procedure
7.711 +-- fetches the complete LU-record, checks for a delete and then
7.712 +-- deletes the record by calling procedure Delete___.
7.713 +-----------------------------------------------------------------------------
7.714 +
7.715 +PROCEDURE Lock__ (
7.716 + info_ OUT VARCHAR2,
7.717 + objid_ IN VARCHAR2,
7.718 + objversion_ IN VARCHAR2 )
7.719 +IS
7.720 + dummy_ &TABLE%ROWTYPE;
7.721 +BEGIN
7.722 + General_SYS.Init_Method(lu_name_, '&PKG', 'Lock__');
7.723 + dummy_ := Lock_By_Id___(objid_, objversion_);
7.724 + info_ := Client_SYS.Get_All_Info;
7.725 +END Lock__;
7.726 +
7.727 +
7.728 +PROCEDURE New__ (
7.729 + info_ OUT VARCHAR2,
7.730 + objid_ OUT VARCHAR2,
7.731 + objversion_ OUT VARCHAR2,
7.732 + attr_ IN OUT VARCHAR2,
7.733 + action_ IN VARCHAR2 )
7.734 +IS
7.735 + newrec_ &TABLE%ROWTYPE;
7.736 +BEGIN
7.737 + General_SYS.Init_Method(lu_name_, '&PKG', 'New__');
7.738 + IF (action_ = 'PREPARE') THEN
7.739 + Prepare_Insert___(attr_);
7.740 + ELSIF (action_ = 'CHECK') THEN
7.741 + Unpack_Check_Insert___(attr_, newrec_);
7.742 + ELSIF (action_ = 'DO') THEN
7.743 + Unpack_Check_Insert___(attr_, newrec_);
7.744 + Insert___(objid_, objversion_, newrec_, attr_);
7.745 + END IF;
7.746 + info_ := Client_SYS.Get_All_Info;
7.747 +END New__;
7.748 +
7.749 +
7.750 +PROCEDURE Modify__ (
7.751 + info_ OUT VARCHAR2,
7.752 + objid_ IN VARCHAR2,
7.753 + objversion_ IN OUT VARCHAR2,
7.754 + attr_ IN OUT VARCHAR2,
7.755 + action_ IN VARCHAR2 )
7.756 +IS
7.757 + oldrec_ &TABLE%ROWTYPE;
7.758 + newrec_ &TABLE%ROWTYPE;
7.759 +BEGIN
7.760 + General_SYS.Init_Method(lu_name_, '&PKG', 'Modify__');
7.761 + IF (action_ = 'CHECK') THEN
7.762 + newrec_ := Get_Object_By_Id___(objid_);
7.763 + Unpack_Check_Update___(attr_, newrec_, objid_);
7.764 + ELSIF (action_ = 'DO') THEN
7.765 + oldrec_ := Lock_By_Id___(objid_, objversion_);
7.766 + newrec_ := oldrec_;
7.767 + Unpack_Check_Update___(attr_, newrec_, objid_);
7.768 + Update___(objid_, oldrec_, newrec_, attr_, objversion_);
7.769 + END IF;
7.770 + info_ := Client_SYS.Get_All_Info;
7.771 +END Modify__;
7.772 +
7.773 +
7.774 +PROCEDURE Remove__ (
7.775 + info_ OUT VARCHAR2,
7.776 + objid_ IN VARCHAR2,
7.777 + objversion_ IN VARCHAR2,
7.778 + action_ IN VARCHAR2 )
7.779 +IS
7.780 + remrec_ &TABLE%ROWTYPE;
7.781 +BEGIN
7.782 + General_SYS.Init_Method(lu_name_, '&PKG', 'Remove__');
7.783 + IF (action_ = 'CHECK') THEN
7.784 + remrec_ := Get_Object_By_Id___(objid_);
7.785 + Check_Delete___(remrec_);
7.786 + ELSIF (action_ = 'DO') THEN
7.787 + remrec_ := Lock_By_Id___(objid_, objversion_);
7.788 + Check_Delete___(remrec_);
7.789 + Delete___(objid_, remrec_);
7.790 + END IF;
7.791 + info_ := Client_SYS.Get_All_Info;
7.792 +END Remove__;
7.793 +
7.794 +-----------------------------------------------------------------------------
7.795 +-------------------- PUBLIC BASE METHODS ------------------------------------
7.796 +-----------------------------------------------------------------------------
7.797 +-- Exist
7.798 +-- Checks if given pointer (e.g. primary key) to an instance of this
7.799 +-- logical unit exists. If not an exception will be raised.
7.800 +-----------------------------------------------------------------------------
7.801 +
7.802 +PROCEDURE Exist (
7.803 + event_lu_name_ IN VARCHAR2,
7.804 + event_id_ IN VARCHAR2 )
7.805 +IS
7.806 +BEGIN
7.807 + General_SYS.Init_Method(lu_name_, '&PKG', 'Exist', TRUE);
7.808 + IF (NOT Check_Exist___(event_lu_name_, event_id_)) THEN
7.809 + Error_SYS.Record_Not_Exist(lu_name_);
7.810 + END IF;
7.811 +END Exist;
7.812 +
7.813 +-----------------------------------------------------------------------------
7.814 +-------------------- LU SPECIFIC IMPLEMENTATION METHODS ---------------------
7.815 +-----------------------------------------------------------------------------
7.816 +
7.817 +PROCEDURE Create_Custom_Triggers___(
7.818 + rec_ IN Fnd_Event_Tab%ROWTYPE )
7.819 +IS
7.820 +BEGIN
7.821 + General_SYS.Init_Method(lu_name_, '&PKG', 'Create_Custom_Triggers___', TRUE);
7.822 + -- Create triggers per type (New, Modify, Remove)
7.823 + IF (rec_.new_row = 'TRUE') THEN
7.824 + Create_Custom_Trigger___(rec_, 'NEW');
7.825 + END IF;
7.826 + IF (rec_.modify_row = 'TRUE') THEN
7.827 + Create_Custom_Trigger___(rec_, 'MODIFY');
7.828 + END IF;
7.829 + IF (rec_.remove_row = 'TRUE') THEN
7.830 + Create_Custom_Trigger___(rec_, 'REMOVE');
7.831 + END IF;
7.832 +END Create_Custom_Triggers___;
7.833 +
7.834 +PROCEDURE Create_Custom_Trigger___(
7.835 + rec_ IN Fnd_Event_Tab%ROWTYPE,
7.836 + trigger_type_ IN VARCHAR2 )
7.837 +IS
7.838 + columns_ Installation_SYS.ColumnTabType;
7.839 + stmt_ VARCHAR2(32000);
7.840 + old_param_prefix_ VARCHAR2(10);
7.841 + new_param_prefix_ VARCHAR2(10);
7.842 + format_prefix_ VARCHAR2(30);
7.843 + format_postfix_ VARCHAR2(30);
7.844 + if_stmt_start_ VARCHAR2(32000);
7.845 + if_stmt_end_ VARCHAR2(32000);
7.846 + indent_ NUMBER;
7.847 + --
7.848 + CURSOR get_param IS
7.849 + SELECT *
7.850 + FROM fnd_event_parameter_tab
7.851 + WHERE event_lu_name = rec_.event_lu_name
7.852 + AND event_id = rec_.event_id;
7.853 + --
7.854 + FUNCTION space___ (
7.855 + indent_ IN NUMBER ) RETURN VARCHAR2
7.856 + IS
7.857 + string_ VARCHAR2(100);
7.858 + BEGIN
7.859 + RETURN(lpad(string_, indent_ * 3));
7.860 + END space___;
7.861 + --
7.862 + FUNCTION Get_Dml_Event___(
7.863 + trigger_type_ IN VARCHAR2 ) RETURN VARCHAR2
7.864 + IS
7.865 + BEGIN
7.866 + CASE trigger_type_
7.867 + WHEN 'NEW' THEN
7.868 + RETURN('INSERT');
7.869 + WHEN 'MODIFY' THEN
7.870 + RETURN('UPDATE');
7.871 + WHEN 'REMOVE' THEN
7.872 + RETURN('DELETE');
7.873 + END CASE;
7.874 + END Get_Dml_Event___;
7.875 + --
7.876 + FUNCTION Get_Columns___ (
7.877 + column_list_ IN VARCHAR2 ) RETURN Installation_SYS.ColumnTabType
7.878 + IS
7.879 + pos_ BINARY_INTEGER := 1;
7.880 + start_ BINARY_INTEGER := 1;
7.881 + tmp_column_list_ VARCHAR2(32000) := column_list_;
7.882 + separator_ CONSTANT VARCHAR2(2) := ';';
7.883 + column_name_ VARCHAR2(30);
7.884 + columns_ Installation_SYS.ColumnTabType;
7.885 + BEGIN
7.886 + IF column_list_ IS NULL THEN
7.887 + RETURN(columns_);
7.888 + END IF;
7.889 + -- Find all attributes in Search Domain Title
7.890 + pos_ := Instr(tmp_column_list_, separator_, pos_);
7.891 + LOOP
7.892 + -- Find column name
7.893 + column_name_ := Substr(tmp_column_list_, start_, pos_ - start_);
7.894 + IF column_name_ IS NOT NULL THEN
7.895 + Installation_SYS.Set_Table_Column(columns_, column_name_);
7.896 + END IF;
7.897 + -- Find new attribute
7.898 + start_ := pos_ + 1;
7.899 + pos_ := Instr(tmp_column_list_, separator_, start_);
7.900 + IF pos_ = 0 THEN
7.901 + pos_ := length(tmp_column_list_);
7.902 + -- Find column name
7.903 + column_name_ := Substr(tmp_column_list_, start_);
7.904 + Installation_SYS.Set_Table_Column(columns_, column_name_);
7.905 + EXIT;
7.906 + END IF;
7.907 + END LOOP;
7.908 + RETURN(columns_);
7.909 + END Get_Columns___;
7.910 + --
7.911 + FUNCTION Create_If_Stmt___ (
7.912 + column_list_ IN VARCHAR2 ) RETURN VARCHAR2
7.913 + IS
7.914 + found_ BOOLEAN := FALSE;
7.915 + i_ BINARY_INTEGER := 0;
7.916 + pos_ BINARY_INTEGER := 1;
7.917 + start_ BINARY_INTEGER := 1;
7.918 + tmp_column_list_ VARCHAR2(32000) := column_list_;
7.919 + stmt_ VARCHAR2(32000);
7.920 + separator_ CONSTANT VARCHAR2(2) := ';';
7.921 + column_name_ VARCHAR2(30);
7.922 + BEGIN
7.923 + IF column_list_ IS NULL THEN
7.924 + RETURN(NULL);
7.925 + END IF;
7.926 + -- Find all attributes in Search Domain Title
7.927 + pos_ := Instr(tmp_column_list_, separator_, pos_);
7.928 + i_ := i_ + 1;
7.929 + IF (tmp_column_list_ IS NOT NULL) THEN
7.930 + stmt_ := stmt_ || 'IF ';
7.931 + END IF;
7.932 + LOOP
7.933 + IF (i_ > 1) THEN
7.934 + stmt_ := stmt_||space___(indent_)||' OR ';
7.935 + END IF;
7.936 + -- Find column name
7.937 + column_name_ := Substr(tmp_column_list_, start_, pos_ - start_);
7.938 + IF column_name_ IS NOT NULL THEN
7.939 + found_ := TRUE;
7.940 + indent_ := indent_ + 1;
7.941 + stmt_ := stmt_ ||space___(indent_)||'(:NEW.'||column_name_||' != '||':OLD.'||column_name_||') OR ((:NEW.'||column_name_||' IS NULL) AND ('||':old.'||column_name_||' IS NOT NULL)) OR ((:new.'||column_name_||' IS NOT NULL) AND ('||':OLD.'||column_name_||' IS NULL))';
7.942 + END IF;
7.943 + -- Find new attribute
7.944 + start_ := pos_ + 1;
7.945 + pos_ := Instr(tmp_column_list_, separator_, start_);
7.946 + i_ := i_ + 1;
7.947 + IF pos_ = 0 THEN
7.948 + IF (i_ > 1 AND found_) THEN
7.949 + stmt_ := stmt_||space___(indent_)||' OR ';
7.950 + END IF;
7.951 + pos_ := length(tmp_column_list_);
7.952 + -- Find column name
7.953 + column_name_ := Substr(tmp_column_list_, start_);
7.954 + stmt_ := stmt_ ||space___(indent_)||'(:NEW.'||column_name_||' != '||':OLD.'||column_name_||') OR ((:NEW.'||column_name_||' IS NULL) AND ('||':OLD.'||column_name_||' IS NOT NULL)) OR ((:NEW.'||column_name_||' IS NOT NULL) AND ('||':OLD.'||column_name_||' IS NULL))';
7.955 + stmt_ := stmt_||space___(indent_)||' THEN ';
7.956 + EXIT;
7.957 + END IF;
7.958 + END LOOP;
7.959 + RETURN(stmt_);
7.960 + END Create_If_Stmt___;
7.961 + --
7.962 + FUNCTION Replace_Parameter___ (
7.963 + plsql_method_ IN VARCHAR2 ) RETURN VARCHAR2
7.964 + IS
7.965 + pos_ BINARY_INTEGER := 1;
7.966 + method_ VARCHAR2(32000) := plsql_method_;
7.967 + param_marker_ CONSTANT VARCHAR2(2) := chr(38);
7.968 + --
7.969 + CURSOR get_param IS
7.970 + SELECT *
7.971 + FROM fnd_event_parameter_tab
7.972 + WHERE event_lu_name = rec_.event_lu_name
7.973 + AND event_id = rec_.event_id;
7.974 + BEGIN
7.975 + pos_ := Instr(method_, param_marker_);
7.976 + IF (pos_ = 0) THEN
7.977 + RETURN(method_);
7.978 + END IF;
7.979 + -- Replace all parameters used as parameters to PL/SQL method
7.980 + FOR par IN get_param LOOP
7.981 + IF par.current_value = 'TRUE' THEN
7.982 + method_ := replace(method_, param_marker_||'OLD:'||par.id, old_param_prefix_||par.id);
7.983 + END IF;
7.984 + IF par.new_value = 'TRUE' THEN
7.985 + method_ := replace(method_, param_marker_||'NEW:'||par.id, new_param_prefix_||par.id);
7.986 + END IF;
7.987 + pos_ := Instr(method_, param_marker_);
7.988 + IF pos_ = 0 THEN
7.989 + RETURN(method_);
7.990 + END IF;
7.991 + END LOOP;
7.992 + RETURN(method_);
7.993 + END Replace_Parameter___;
7.994 +BEGIN
7.995 + General_SYS.Init_Method(lu_name_, '&PKG', 'Create_Custom_Trigger___', TRUE);
7.996 + indent_ := 1;
7.997 + CASE trigger_type_
7.998 + WHEN 'NEW' THEN
7.999 + new_param_prefix_ := ':NEW.';
7.1000 + old_param_prefix_ := ':OLD.';
7.1001 + WHEN 'MODIFY' THEN
7.1002 + new_param_prefix_ := ':NEW.';
7.1003 + old_param_prefix_ := ':OLD.';
7.1004 + -- Build If statement for modify
7.1005 + if_stmt_start_ := Create_If_Stmt___(rec_.modified_attributes);
7.1006 + IF (if_stmt_start_ IS NOT NULL) THEN
7.1007 + indent_ := 1;
7.1008 + if_stmt_end_ := 'END IF; ';
7.1009 + ELSE
7.1010 + indent_ := 0;
7.1011 + if_stmt_end_ := NULL;
7.1012 + END IF;
7.1013 + stmt_ := if_stmt_start_;
7.1014 + WHEN 'REMOVE' THEN
7.1015 + new_param_prefix_ := ':OLD.';
7.1016 + old_param_prefix_ := ':OLD.';
7.1017 + END CASE;
7.1018 + -- Build PL/SQL statement
7.1019 + stmt_ := stmt_ ||space___(indent_)||'DECLARE ';
7.1020 + indent_ := indent_ + 1;
7.1021 + stmt_ := stmt_ ||space___(indent_)||'msg_ VARCHAR2(32000);';
7.1022 + indent_ := indent_ - 1;
7.1023 + stmt_ := stmt_ ||space___(indent_)||'BEGIN ';
7.1024 + indent_ := indent_ + 1;
7.1025 + stmt_ := stmt_ ||space___(indent_)||'IF (Event_SYS.Event_Enabled('''||rec_.event_lu_name||''', '''||rec_.event_id||''')) THEN ';
7.1026 + indent_ := indent_ + 1;
7.1027 + stmt_ := stmt_ ||space___(indent_)||'msg_ := Message_SYS.Construct('''||rec_.event_id||''');';
7.1028 + FOR par_ IN get_param LOOP
7.1029 + IF (par_.id_type = 'DATETIME') THEN
7.1030 + format_prefix_ := 'to_char(';
7.1031 + format_postfix_ := ', '''||datetime_format_||''')';
7.1032 + ELSIF (par_.id_type = 'DATE') THEN
7.1033 + format_prefix_ := 'to_char(';
7.1034 + format_postfix_ := ', '''||date_format_||''')';
7.1035 + ELSIF (par_.id_type = 'TIME') THEN
7.1036 + format_prefix_ := 'to_char(';
7.1037 + format_postfix_ := ', '''||time_format_||''')';
7.1038 + ELSE
7.1039 + format_prefix_ := NULL;
7.1040 + format_postfix_ := NULL;
7.1041 + END IF;
7.1042 + --
7.1043 + IF par_.plsql_method IS NOT NULL THEN
7.1044 + stmt_ := stmt_ ||space___(indent_)||'Message_SYS.Add_Attribute(msg_, '''||par_.id||''', '||
7.1045 + format_prefix_||Replace_Parameter___(par_.plsql_method)||format_postfix_||');';
7.1046 + ELSE
7.1047 + IF par_.current_value = 'TRUE' THEN
7.1048 + stmt_ := stmt_ ||space___(indent_)||'Message_SYS.Add_Attribute(msg_, ''OLD:'||par_.id||''', '||format_prefix_||old_param_prefix_||par_.id||format_postfix_||');';
7.1049 + END IF;
7.1050 + IF par_.new_value = 'TRUE' THEN
7.1051 + stmt_ := stmt_ ||space___(indent_)||'Message_SYS.Add_Attribute(msg_, ''NEW:'||par_.id||''', '||format_prefix_||new_param_prefix_||par_.id||format_postfix_||');';
7.1052 + END IF;
7.1053 + END IF;
7.1054 + END LOOP;
7.1055 + stmt_ := stmt_ ||space___(indent_)||'Event_SYS.Event_Execute('''||rec_.event_lu_name||''', '''||rec_.event_id||''', msg_);';
7.1056 + indent_ := indent_ - 1;
7.1057 + stmt_ := stmt_ ||space___(indent_)||'END IF; ';
7.1058 + indent_ := indent_ - 1;
7.1059 + stmt_ := stmt_ ||space___(indent_)||'END; ';
7.1060 + indent_ := indent_ - 1;
7.1061 + stmt_ := stmt_ ||space___(indent_)||if_stmt_end_;
7.1062 +dbms_output.put_line(stmt_);
7.1063 + --
7.1064 + Installation_SYS.Create_Trigger (
7.1065 + Get_Trigger_Name___(rec_.event_id, trigger_type_),
7.1066 + 'AFTER',
7.1067 + Get_Dml_Event___(trigger_type_),
7.1068 + Get_Columns___(rec_.modified_attributes),
7.1069 + rec_.event_table_name,
7.1070 + NULL,
7.1071 + stmt_,
7.1072 + TRUE);
7.1073 +END Create_Custom_Trigger___;
7.1074 +
7.1075 +FUNCTION Get_Trigger_Name___(
7.1076 + event_id_ IN VARCHAR2,
7.1077 + trigger_type_ IN VARCHAR2 ) RETURN VARCHAR2
7.1078 +IS
7.1079 +BEGIN
7.1080 + CASE trigger_type_
7.1081 + WHEN 'NEW' THEN
7.1082 + RETURN(Upper(Create_Trigger_Name___(event_id_)||'_EVI'));
7.1083 + WHEN 'MODIFY' THEN
7.1084 + RETURN(Upper(Create_Trigger_Name___(event_id_)||'_EVU'));
7.1085 + WHEN 'REMOVE' THEN
7.1086 + RETURN(Upper(Create_Trigger_Name___(event_id_)||'_EVD'));
7.1087 + END CASE;
7.1088 +END Get_Trigger_Name___;
7.1089 +
7.1090 +PROCEDURE Remove_Custom_Triggers___(
7.1091 + rec_ IN Fnd_Event_Tab%ROWTYPE )
7.1092 +IS
7.1093 +BEGIN
7.1094 + General_SYS.Init_Method(lu_name_, '&PKG', 'Create_Custom_Triggers___', TRUE);
7.1095 + -- Create triggers per type (New, Modify, Remove)
7.1096 + IF (rec_.new_row = 'TRUE') THEN
7.1097 + Remove_Custom_Trigger___(rec_, 'NEW');
7.1098 + END IF;
7.1099 + IF (rec_.modify_row = 'TRUE') THEN
7.1100 + Remove_Custom_Trigger___(rec_, 'MODIFY');
7.1101 + END IF;
7.1102 + IF (rec_.remove_row = 'TRUE') THEN
7.1103 + Remove_Custom_Trigger___(rec_, 'REMOVE');
7.1104 + END IF;
7.1105 +END Remove_Custom_Triggers___;
7.1106 +
7.1107 +PROCEDURE Remove_Custom_Trigger___(
7.1108 + rec_ IN Fnd_Event_Tab%ROWTYPE,
7.1109 + trigger_type_ IN VARCHAR2 )
7.1110 +IS
7.1111 + stmt_ VARCHAR2(32000);
7.1112 + --
7.1113 +BEGIN
7.1114 + General_SYS.Init_Method(lu_name_, '&PKG', 'Remove_Custom_Trigger___', TRUE);
7.1115 + Installation_SYS.Remove_Trigger(Get_Trigger_Name___(rec_.event_id, trigger_type_), TRUE);
7.1116 +END Remove_Custom_Trigger___;
7.1117 +
7.1118 +FUNCTION Create_Trigger_Name___ (
7.1119 + event_id_ IN VARCHAR2 ) RETURN VARCHAR2
7.1120 +IS
7.1121 + new_event_id_ VARCHAR2(100);
7.1122 +BEGIN
7.1123 + new_event_id_ := Replace(event_id_, ' ', '_');
7.1124 + new_event_id_ := Replace(new_event_id_, '/', '_');
7.1125 + new_event_id_ := Replace(new_event_id_, '\', '_');
7.1126 + new_event_id_ := Replace(new_event_id_, '-', '_');
7.1127 + RETURN new_event_id_;
7.1128 +END Create_Trigger_Name___;
7.1129 +-----------------------------------------------------------------------------
7.1130 +-------------------- LU SPECIFIC PRIVATE METHODS ----------------------------
7.1131 +-----------------------------------------------------------------------------
7.1132 +
7.1133 +PROCEDURE Export__ (
7.1134 + string_ OUT VARCHAR2,
7.1135 + event_lu_name_ IN VARCHAR2,
7.1136 + event_id_ IN VARCHAR2 )
7.1137 +IS
7.1138 + newline_ CONSTANT VARCHAR2(2) := chr(13)||chr(10);
7.1139 + rec &TABLE%ROWTYPE;
7.1140 + id_ VARCHAR2(100);
7.1141 + CURSOR get_param IS
7.1142 + SELECT id, id_type, plsql_method, current_value, new_value
7.1143 + FROM fnd_event_parameter_tab
7.1144 + WHERE event_lu_name = event_lu_name_
7.1145 + AND event_id = event_id_;
7.1146 +BEGIN
7.1147 + General_SYS.Init_Method(lu_name_, '&PKG', 'Export__');
7.1148 + -- Fetch the event details
7.1149 + rec := Get_Object_By_Keys___(event_lu_name_, event_id_);
7.1150 + -- Only allowed to export Custom Events
7.1151 + IF (nvl(rec.event_type, 'APPLICATION') != 'CUSTOM') THEN
7.1152 + Error_SYS.Appl_General(lu_name_, 'EXP_TYPE: Only Custom Events are allowed to be exported.');
7.1153 + END IF;
7.1154 + --
7.1155 + -- Create Export file
7.1156 + --
7.1157 + string_ := '-------------------------------------------------------------------------------------------- ' || newline_;
7.1158 + string_ := string_ || '-- Export file for Custom Events ' || rec.event_id || '.' || newline_;
7.1159 + string_ := string_ || '-- ' || newline_;
7.1160 + string_ := string_ || '-- Date Sign History' || newline_;
7.1161 + string_ := string_ || '-- ------ ------ -----------------------------------------------------------' || newline_;
7.1162 + string_ := string_ || '-- ' || to_char(sysdate, 'YYMMDD') || ' ' || rpad(Fnd_Session_API.Get_Fnd_User, 6, ' ') || ' ' ||
7.1163 + 'Export file for task ' || rec.event_id || '.' || newline_;
7.1164 + string_ := string_ || '-------------------------------------------------------------------------------------------- ' || newline_;
7.1165 + string_ := string_ || newline_;
7.1166 + string_ := string_ || 'SET DEFINE ~' || newline_;
7.1167 + string_ := string_ || 'PROMPT Register Custom Event "' || rec.event_id || '"' || newline_;
7.1168 + string_ := string_ || 'DECLARE' || newline_;
7.1169 + string_ := string_ || ' event_lu_name_ VARCHAR2(30) := ''' || event_lu_name_ || ''';' || newline_;
7.1170 + string_ := string_ || ' event_id_ VARCHAR2(30) := ''' || event_id_ || ''';' || newline_;
7.1171 + string_ := string_ || ' id_ VARCHAR2(100);' || newline_;
7.1172 + string_ := string_ || ' info_msg_ VARCHAR2(32000) := NULL;' || newline_;
7.1173 + string_ := string_ || 'BEGIN' || newline_;
7.1174 + --
7.1175 + -- Create Main Message
7.1176 + --
7.1177 + string_ := string_ || '-- Construct Main Message' || newline_;
7.1178 + string_ := string_ || ' info_msg_ := Message_SYS.Construct('''');' || newline_;
7.1179 + string_ := string_ || ' Message_SYS.Add_Attribute(info_msg_, ''EVENT_DESCRIPTION'', ''' || rec.event_description || ''');' || newline_;
7.1180 + string_ := string_ || ' Message_SYS.Add_Attribute(info_msg_, ''EVENT_ENABLE'', ''FALSE'');' || newline_;
7.1181 + string_ := string_ || ' Message_SYS.Add_Attribute(info_msg_, ''EVENT_TYPE_DB'', ''' || rec.event_type || ''');' || newline_;
7.1182 + string_ := string_ || ' Message_SYS.Add_Attribute(info_msg_, ''EVENT_TABLE_NAME'', ''' || rec.event_table_name || ''');' || newline_;
7.1183 + string_ := string_ || ' Message_SYS.Add_Attribute(info_msg_, ''MODIFIED_ATTRIBUTES'', ''' || rec.modified_attributes || ''');' || newline_;
7.1184 + string_ := string_ || ' Message_SYS.Add_Attribute(info_msg_, ''NEW_ROW_DB'', ''' || rec.new_row || ''');' || newline_;
7.1185 + string_ := string_ || ' Message_SYS.Add_Attribute(info_msg_, ''MODIFY_ROW_DB'', ''' || rec.modify_row || ''');' || newline_;
7.1186 + string_ := string_ || ' Message_SYS.Add_Attribute(info_msg_, ''REMOVE_ROW_DB'', ''' || rec.remove_row || ''');' || newline_;
7.1187 + string_ := string_ || '-- Register Custom Event' || newline_;
7.1188 + string_ := string_ || ' Fnd_Event_API.Register_Custom_Event(event_lu_name_, event_id_, info_msg_);' || newline_;
7.1189 + FOR rec2 IN get_param LOOP
7.1190 + string_ := string_ || ' -- Register Event Parameter' || newline_;
7.1191 + string_ := string_ || ' info_msg_ := Message_SYS.Construct('''');' || newline_;
7.1192 + string_ := string_ || ' id_ := ''' || rec2.id || ''';' || newline_;
7.1193 + string_ := string_ || ' Message_SYS.Add_Attribute(info_msg_, ''ID_TYPE'', ''' || rec2.id_type || ''');' || newline_;
7.1194 + string_ := string_ || ' Message_SYS.Add_Attribute(info_msg_, ''PLSQL_METHOD'', ''' || rec2.plsql_method || ''');' || newline_;
7.1195 + string_ := string_ || ' Message_SYS.Add_Attribute(info_msg_, ''CURRENT_VALUE_DB'', ''' || rec2.current_value || ''');' || newline_;
7.1196 + string_ := string_ || ' Message_SYS.Add_Attribute(info_msg_, ''NEW_VALUE_DB'', ''' || rec2.new_value || ''');' || newline_;
7.1197 + string_ := string_ || ' Fnd_Event_Parameter_API.Register(event_lu_name_, event_id_, id_, info_msg_);' || newline_;
7.1198 + END LOOP;
7.1199 + string_ := string_ || 'END;' || newline_;
7.1200 + string_ := string_ || '/' || newline_;
7.1201 + string_ := string_ || 'SET DEFINE &' || newline_;
7.1202 +END Export__;
7.1203 +
7.1204 +-----------------------------------------------------------------------------
7.1205 +-------------------- LU SPECIFIC PROTECTED METHODS --------------------------
7.1206 +-----------------------------------------------------------------------------
7.1207 +
7.1208 +
7.1209 +-----------------------------------------------------------------------------
7.1210 +-------------------- LU SPECIFIC PUBLIC METHODS -----------------------------
7.1211 +-----------------------------------------------------------------------------
7.1212 +
7.1213 +FUNCTION Get_Event_Description (
7.1214 + event_lu_name_ IN VARCHAR2,
7.1215 + event_id_ IN VARCHAR2 ) RETURN VARCHAR2
7.1216 +IS
7.1217 + temp_ &TABLE..event_description%TYPE;
7.1218 + CURSOR get_attr IS
7.1219 + SELECT event_description
7.1220 + FROM &TABLE
7.1221 + WHERE event_lu_name = event_lu_name_
7.1222 + AND event_id = event_id_;
7.1223 +BEGIN
7.1224 + OPEN get_attr;
7.1225 + FETCH get_attr INTO temp_;
7.1226 + CLOSE get_attr;
7.1227 + RETURN temp_;
7.1228 +END Get_Event_Description;
7.1229 +
7.1230 +
7.1231 +FUNCTION Get_Event_Enable (
7.1232 + event_lu_name_ IN VARCHAR2,
7.1233 + event_id_ IN VARCHAR2 ) RETURN VARCHAR2
7.1234 +IS
7.1235 + temp_ &TABLE..event_enable%TYPE;
7.1236 + CURSOR get_attr IS
7.1237 + SELECT event_enable
7.1238 + FROM &TABLE
7.1239 + WHERE event_lu_name = event_lu_name_
7.1240 + AND event_id = event_id_;
7.1241 +BEGIN
7.1242 + OPEN get_attr;
7.1243 + FETCH get_attr INTO temp_;
7.1244 + CLOSE get_attr;
7.1245 + IF temp_ IS NULL THEN
7.1246 + RETURN 'FALSE';
7.1247 + ELSE
7.1248 + RETURN temp_;
7.1249 + END IF;
7.1250 +END Get_Event_Enable;
7.1251 +
7.1252 +
7.1253 +PROCEDURE Set_Event_Enable (
7.1254 + event_lu_name_ IN VARCHAR2,
7.1255 + event_id_ IN VARCHAR2 )
7.1256 +IS
7.1257 + temp_ NUMBER;
7.1258 + attr_ VARCHAR2(32000);
7.1259 + oldrec_ &TABLE%ROWTYPE;
7.1260 + newrec_ &TABLE%ROWTYPE;
7.1261 + objid_ &VIEW..objid%TYPE;
7.1262 + objversion_ &VIEW..objversion%TYPE;
7.1263 +BEGIN
7.1264 + General_SYS.Init_Method(lu_name_, '&PKG', 'Set_Event_Enable');
7.1265 + IF (event_id_ <> upper(event_id_)) THEN
7.1266 + Error_SYS.Appl_General(lu_name_, 'UPPCASE: The event identity ":P1" must be in upper case.', event_id_);
7.1267 + END IF;
7.1268 + SELECT COUNT(*)
7.1269 + INTO temp_
7.1270 + FROM fnd_event_action
7.1271 + WHERE event_id = event_id_
7.1272 + AND event_lu_name = event_lu_name_
7.1273 + AND action_enable = 'TRUE';
7.1274 + Get_Id_Version_By_Keys___ (objid_, objversion_, event_lu_name_, event_id_);
7.1275 + IF (temp_ > 0) THEN
7.1276 + Client_SYS.Add_To_Attr('EVENT_ENABLE', 'TRUE', attr_);
7.1277 + oldrec_ := Get_Object_By_Keys___(event_lu_name_, event_id_);
7.1278 + newrec_ := oldrec_;
7.1279 + Unpack_Check_Update___(attr_, newrec_, objid_);
7.1280 + Update___(objid_, oldrec_, newrec_, attr_, objversion_);
7.1281 + ELSE
7.1282 + Client_SYS.Add_To_Attr('EVENT_ENABLE', 'FALSE', attr_);
7.1283 + oldrec_ := Get_Object_By_Keys___(event_lu_name_, event_id_);
7.1284 + newrec_ := oldrec_;
7.1285 + Unpack_Check_Update___(attr_, newrec_, objid_);
7.1286 + Update___(objid_, oldrec_, newrec_, attr_, objversion_);
7.1287 + END IF;
7.1288 +END Set_Event_Enable;
7.1289 +
7.1290 +
7.1291 +PROCEDURE Refresh (
7.1292 + event_lu_name_ IN VARCHAR2,
7.1293 + event_id_ IN VARCHAR2,
7.1294 + event_desc_ IN VARCHAR2,
7.1295 + event_type_db_ IN VARCHAR2 DEFAULT 'APPLICATION',
7.1296 + event_table_name_ IN VARCHAR2 DEFAULT NULL,
7.1297 + modified_attributes_ IN VARCHAR2 DEFAULT NULL,
7.1298 + new_row_ IN VARCHAR2 DEFAULT 'FALSE',
7.1299 + modify_row_ IN VARCHAR2 DEFAULT 'FALSE',
7.1300 + remove_row_ IN VARCHAR2 DEFAULT 'FALSE')
7.1301 +IS
7.1302 + temp_ NUMBER;
7.1303 +BEGIN
7.1304 + General_SYS.Init_Method(lu_name_, '&PKG', 'Refresh');
7.1305 + IF (event_id_ <> upper(event_id_)) THEN
7.1306 + Error_SYS.Appl_General(lu_name_, 'UPPCASE: The event identity ":P1" must be in upper case.', event_id_);
7.1307 + END IF;
7.1308 + SELECT COUNT(*)
7.1309 + INTO temp_
7.1310 + FROM &VIEW
7.1311 + WHERE event_id = event_id_
7.1312 + AND event_lu_name = event_lu_name_;
7.1313 + IF (temp_ = 0) THEN
7.1314 + INSERT INTO fnd_event_tab
7.1315 + (event_lu_name, event_id, event_description, event_enable, rowversion,
7.1316 + event_type, event_table_name, modified_attributes,
7.1317 + new_row, modify_row, remove_row)
7.1318 + VALUES
7.1319 + (event_lu_name_, event_id_, event_desc_, 'FALSE', SYSDATE,
7.1320 + event_type_db_, event_table_name_, modified_attributes_,
7.1321 + new_row_, modify_row_, remove_row_);
7.1322 + ELSE
7.1323 + UPDATE fnd_event_tab
7.1324 + SET event_description = event_desc_
7.1325 + WHERE event_lu_name = event_lu_name_
7.1326 + AND event_id = event_id_;
7.1327 + END IF;
7.1328 +END Refresh;
7.1329 +
7.1330 +PROCEDURE Register_Custom_Event (
7.1331 + event_lu_name_ IN VARCHAR2,
7.1332 + event_id_ IN VARCHAR2,
7.1333 + info_msg_ IN VARCHAR2 )
7.1334 +IS
7.1335 + info_ VARCHAR2(32000);
7.1336 + objid_ VARCHAR2(100);
7.1337 + objversion_ VARCHAR2(100);
7.1338 + attr_ VARCHAR2(2000);
7.1339 +BEGIN
7.1340 + General_SYS.Init_Method(lu_name_, '&PKG', 'Register_Custom_Event');
7.1341 + Client_SYS.Add_To_Attr('EVENT_LU_NAME', event_lu_name_, attr_);
7.1342 + Client_SYS.Add_To_Attr('EVENT_ID', event_id_, attr_);
7.1343 + Client_SYS.Add_To_Attr('EVENT_DESCRIPTION', Message_SYS.Find_Attribute(info_msg_, 'EVENT_DESCRIPTION', ''), attr_);
7.1344 + Client_SYS.Add_To_Attr('EVENT_ENABLE', Message_SYS.Find_Attribute(info_msg_, 'EVENT_ENABLE', 'FALSE'), attr_);
7.1345 + Client_SYS.Add_To_Attr('EVENT_TABLE_NAME', Message_SYS.Find_Attribute(info_msg_, 'EVENT_TABLE_NAME', ''), attr_);
7.1346 + Client_SYS.Add_To_Attr('EVENT_TYPE_DB', Message_SYS.Find_Attribute(info_msg_, 'EVENT_TYPE_DB', ''), attr_);
7.1347 + Client_SYS.Add_To_Attr('NEW_ROW_DB', Message_SYS.Find_Attribute(info_msg_, 'NEW_ROW_DB', 'FALSE'), attr_);
7.1348 + Client_SYS.Add_To_Attr('MODIFY_ROW_DB', Message_SYS.Find_Attribute(info_msg_, 'MODIFY_ROW_DB', 'FALSE'), attr_);
7.1349 + Client_SYS.Add_To_Attr('REMOVE_ROW_DB', Message_SYS.Find_Attribute(info_msg_, 'REMOVE_ROW_DB', 'FALSE'), attr_);
7.1350 + Client_SYS.Add_To_Attr('MODIFIED_ATTRIBUTES', Message_SYS.Find_Attribute(info_msg_, 'MODIFIED_ATTRIBUTES', ''), attr_);
7.1351 + IF (Check_Exist___(event_lu_name_, event_id_)) THEN
7.1352 + DELETE FROM fnd_event_tab WHERE event_lu_name = event_lu_name_ AND event_id = event_id_;
7.1353 + DELETE FROM fnd_event_parameter_tab WHERE event_lu_name = event_lu_name_ AND event_id = event_id_;
7.1354 + END IF;
7.1355 + New__(info_, objid_, objversion_, attr_, 'DO');
7.1356 +END Register_Custom_Event;
7.1357 +
7.1358 +PROCEDURE Unfresh (
7.1359 + event_lu_name_ IN VARCHAR2,
7.1360 + event_id_ IN VARCHAR2 )
7.1361 +IS
7.1362 + temp_ NUMBER;
7.1363 +BEGIN
7.1364 + General_SYS.Init_Method(lu_name_, '&PKG', 'Unfresh');
7.1365 + SELECT COUNT(*)
7.1366 + INTO temp_
7.1367 + FROM &VIEW
7.1368 + WHERE event_id = event_id_
7.1369 + AND event_lu_name = event_lu_name_;
7.1370 + IF (temp_ > 0) THEN
7.1371 + DELETE FROM fnd_event_tab
7.1372 + WHERE event_lu_name = event_lu_name_
7.1373 + AND event_id = event_id_;
7.1374 + END IF;
7.1375 +END Unfresh;
7.1376 +
7.1377 +
7.1378 +FUNCTION Get (
7.1379 + event_lu_name_ IN VARCHAR2,
7.1380 + event_id_ IN VARCHAR2 ) RETURN Public_Rec
7.1381 +IS
7.1382 + temp_ Public_Rec;
7.1383 + CURSOR get_attr IS
7.1384 + SELECT event_description, event_enable
7.1385 + FROM &TABLE
7.1386 + WHERE event_lu_name = event_lu_name_
7.1387 + AND event_id = event_id_;
7.1388 +BEGIN
7.1389 + OPEN get_attr;
7.1390 + FETCH get_attr INTO temp_;
7.1391 + CLOSE get_attr;
7.1392 + RETURN temp_;
7.1393 +END Get;
7.1394 +
7.1395 +
7.1396 +
7.1397 +-----------------------------------------------------------------------------
7.1398 +-------------------- FOUNDATION1 METHODS ------------------------------------
7.1399 +-----------------------------------------------------------------------------
7.1400 +-- Init
7.1401 +-- Dummy procedure that can be called at database startup to ensure that
7.1402 +-- this package is loaded into memory for performance reasons only.
7.1403 +-----------------------------------------------------------------------------
7.1404 +
7.1405 +PROCEDURE Init
7.1406 +IS
7.1407 +BEGIN
7.1408 + NULL;
7.1409 +END Init;
7.1410 +
7.1411 +
7.1412 +END &PKG;
7.1413 +/
7.1414 +SHOW ERROR
7.1415 +
7.1416 +UNDEFINE MODULE
7.1417 +UNDEFINE LU
7.1418 +UNDEFINE TABLE
7.1419 +UNDEFINE VIEW
7.1420 +UNDEFINE PKG
7.1421 +
7.1422 +UNDEFINE OBJID
7.1423 +UNDEFINE OBJVERSION
7.1424 +
7.1425 +-----------------------------------------------------------------------------
8.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
8.2 +++ b/PLSQL/Lexer/test/unit/data/IdentityPayInfo.apy Wed May 15 23:04:20 2013 +0200
8.3 @@ -0,0 +1,3557 @@
8.4 +-----------------------------------------------------------------------------
8.5 +--
8.6 +-- Logical unit: IdentityPayInfo
8.7 +--
8.8 +-- Purpose: Handles Party Type Id Payment Information
8.9 +--
8.10 +-- IFS/Design Template Version 2.2
8.11 +--
8.12 +-- Date Sign History
8.13 +-- ------ ---- -----------------------------------------------------------
8.14 +-- 960730 DAKA Created
8.15 +-- 960731 DAKA View definition corrected.
8.16 +-- 960802 MABE Added procedure Remove_Set. Modified Check_Delete.
8.17 +-- 960821 MABE Removed procedure Remove_Set. Added procedure Instance_Exists.
8.18 +-- 960927 MABE Removed call to reference by Bank Account in Check_Delete.
8.19 +-- 961011 MABE Changes to fit Enterprise module.
8.20 +-- 961129 DAKA Columns Priority,Blocked_For_Parked_Payment,Other_Payee.
8.21 +-- 961205 MABE Changed error message for Exist changed.
8.22 +-- Added procedure Create_Party_Type_Id.
8.23 +-- 961205 Yohe Added view PARTY_TYPE_ID_PAY_INFO_SU_QRY and
8.24 +-- PARTY_TYPE_ID_PAY_INFO_CU_QRY.
8.25 +-- 961209 MABE Corrected type return by function Get_Blocked_For_Payment
8.26 +-- to VARCHAR2.
8.27 +-- 961213 MABE VIEW2 and VIEW3 changed to VIEW4 and VIEW5.
8.28 +-- 970102 MABE Changes to fit Domain concept.
8.29 +-- 970106 MABE Added function Get_Netting_Allowed.
8.30 +-- Column DUMMY deleted.
8.31 +-- 970114 MABE Developing of query forms.
8.32 +-- 970121 MABE Added columns is_note and note to Query views. (not finished)
8.33 +-- 970219 DAKA Columns INTEREST_TEMPLATE , REMINDER_TEMPLATE added.
8.34 +-- 970220 MABE Added default templates when creating customer
8.35 +-- by Create_Party_Type_Id.
8.36 +-- 970303 MABE Added functions Get_Reminder_Template and Get_Interest_Template.
8.37 +-- 970306 MABE Handling of notes added to views for query.
8.38 +-- 970306 DAKA Call to party_type_id_invoice_info_api.exist added
8.39 +-- 970318 MABE Checking if PartyTypeIdInvoiceInfo exists excluded
8.40 +-- for party type 'COMPANY'.
8.41 +-- 970512 SLKO Some performance improvement.
8.42 +-- 970908 MABE Added function Get_Payment_Delay.
8.43 +-- 970916 MABE Corrected Get_Payment_Delay.
8.44 +-- 971029 MABE Joins with company_tab and party_type_identity_tab instead
8.45 +-- of function calls.
8.46 +-- 980415 DAKA Function Get_Name created
8.47 +-- 980512 MABE Updated to fit IFS/Design 2.1.1A
8.48 +-- 980515 MABE Added missing columns PARTY_TYPE_DB.
8.49 +-- 980519 MARK Modified to use party_type_db values
8.50 +-- 980522 MABE Corrected usage of party_type_db.
8.51 +-- 980602 DAKA Identity added to LU
8.52 +-- 980602 PICZ 'SELECT *' replaced with 'SELECT '1'' in Instance_Exists
8.53 +-- 980629 WOBL Added comments to _db columns
8.54 +-- 981103 KATH Bug # 4399 Fixed - add new function called Validate_Identity() to validate
8.55 +-- supplies & customers
8.56 +-- 981118 MABE Added missing comments to _db columns.
8.57 +-- 981130 MABE Changed to fit Enterp 1.3.0.
8.58 +-- 981208 MABE Removed VIEW PARTY_TYPE_ID_PAY_INFO_REF
8.59 +-- 981214 PICZ Changes to Prepare_Insert___
8.60 +-- 981222 DAKA US Localization code added
8.61 +-- 990201 DAKA Connection with ENTERP improved
8.62 +-- 990208 MarK Changes with regards to the Get_Currency_Rate.
8.63 +-- 990209 DAKA Synchronized witch model
8.64 +-- 990406 MABE Corrected problem with customer in not default company.
8.65 +-- 990419 MABE Template modification to increase performance.
8.66 +-- 990625 MABE Copied from PartyPayInfo and PartyTypeIdPayInfo due
8.67 +-- to replace of party with identity.
8.68 +-- 990811 MABE substr -> substr_b.
8.69 +-- 990920 FRPO Added IID PaymentAdvice
8.70 +-- 990928 FRPO Added default value for Payment Advice (No Advice) in Prepare_Insert___
8.71 +-- for use in Create_Identity_Pay_Info for party_type = company
8.72 +-- 991012 FRPO Other Payer made available for customers FIN123
8.73 +-- 990914 REANPL Fetch_Tolerance modified to support payment tolerance for Supplier
8.74 +-- 991214 PICZ Copy_Customer and Copy_Supplier added
8.75 +-- 000224 WITOPL Removing DBMS_Output
8.76 +-- 000304 PICZ Call #32631 corrected
8.77 +-- 000410 PICZ Function Get_Group_For_Identity added
8.78 +-- 000412 PICZ Function Get_Payment_Advice_Db added
8.79 +-- 000825 REANPL Added new columns to VIEW:
8.80 +-- deduction_group,corporation_id,member_id,send_reminder_to_payer,send_interest_inv_to_payer
8.81 +-- 000829 REANPL Added new columns to Prepare_Insert___, Copy_Customer
8.82 +-- 000929 PICZ Call #49661 (procedure Save_Identity_Notes___ added)
8.83 +-- 001006 PICZ Call #49721 (function Get_Other_Payee_Ded_Group_Desc added)
8.84 +-- 010220 LiSv For new Create Company concept added new view identity_pay__etc and _pct.
8.85 +-- Added procedures Make_Company, Copy___, Import___ and Export___.
8.86 +-- 010305 MAMIPL Bug #20283. Amount and Percent tolerance only positive value allowed.
8.87 +-- 010503 visuus Bug Fix 20212: D&B number not copied when copying a customer.
8.88 +-- 010611 MACHSE Bug# 15677 Fixed. Call to General_SYS.Init_Method.
8.89 +-- 010816 OVJOSE Added Create Company translation method Create_Company_Translations___
8.90 +-- 011009 RAFA Bug #23834 Added function Cust_Open_Items_Exist
8.91 +-- 020304 RAFA IID 10998/10999 Call 77665 corrected Copy_Payment_Address___
8.92 +-- 020308 LISV Call 78225 Corrected.
8.93 +-- 020319 PPer Bug # 28324. Changed "PAYMENTSONACCOUNTEXIST" To "PAYMENTONACCNTEXIST".
8.94 +-- 021008 Nimalk Removed usage of the view Company_Finance_Auth in viewes
8.95 +-- and replaced by view Company_Finance_Auth1 using EXISTS caluse instead of joins
8.96 +-- 021224 MACHLK SP3 Merge Bug ID 34081, 34083.
8.97 +-- 030418 JAKALK DEFI165N Added column disc_days_tolerance.
8.98 +-- 030506 NiKaLK Added new views Multi_Customer_Info and Multi_Supplier_Info
8.99 +-- 030609 Kupelk FRFI154. Added column next_payment_matching_id.
8.100 +-- Added Get_Next_Pay_Matching_Id, Get_Payment_Matching_Id .
8.101 +-- 030729 Gepelk SP4 Merge. Bug # 35316. Modified 'Check_Cascade___'.
8.102 +-- 030827 KuPelk Added next_payment_matching_id column to the method Copy___.
8.103 +-- 040325 Thsrlk SP1 Merge
8.104 +-- 040629 anpelk FIPR338A2: Unicode Changes
8.105 +-- 040924 nalslk FITH354 - Modified calls to Payment_Library_API.Get_Currency_Rate
8.106 +-- and removed retrieving default_currency_type from Currency_Type_API directly.
8.107 +-- 041001 TsYolk FIPR360, Added column Group_ID to IDENTITY_PAY_INFO_SU_QRY and IDENTITY_PAY_INFO_CU_QRY.
8.108 +-- 041104 GRRO FIJP345 Payment Method Plan added rule_id to IDENTITY_PAY_INFO
8.109 +-- 041104 TsYolk Call B119368, Modified the WHERE clause of IDENTITY_PAY_INFO_CU_QRY.
8.110 +-- 041124 AnGiSe FITH352, Added column tax_withholding to view IDENTITY_PAY_INFO_CU_QRY.
8.111 +-- 041203 AnGiSe FITH352, Added column balance_excl_withheld to view IDENTITY_PAY_INFO_SU_QRY.
8.112 +-- 050105 reanpl FITH351 Added payment_receipt_type
8.113 +-- 050309 Samclk FIPR360 - New Notes dialog functionality - Changed IDENTITY_PAY_INFO_CU_QRY.
8.114 +-- 050310 Samclk FIPR360 - New Notes dialog functionality - Changed IDENTITY_PAY_INFO_SU_QRY.
8.115 +-- 050323 Jeguse Moved MULTI_CUS_DETAILS_QRY, MULTI_SUP_DETAILS_QRY and MULTI_SUP_ADDRESS_QRY from Ledgitem.apy
8.116 +-- 051011 NiFelk FIPR360, Notes code clean up.
8.117 +-- 060215 NiFelk LCS Merge 48619. Added new method Create_Cus_Other_Payee_Attr__.
8.118 +-- 060728 Vohelk FIPL617A - Added Template_id to the IDENTITY_PAY_INFO view
8.119 +-- 060829 Chhulk FIBR620A - Modified Prepare_Insert___
8.120 +-- 060831 Shsalk LCS Merge 56765. Increased the variable lenghth.
8.121 +-- 060919 RUFELK B139515 - Added the parameter 'company' to the Get_Template_Id() Function.
8.122 +-- 061106 Lisvse FIBR621A - Added check_recipient.
8.123 +-- 061121 RUFELK FIPL612A - Renamed the status_id column into ledger_status_type.
8.124 +-- 061222 Kagalk LCS Merge 61779, Modified Check_Cascade___
8.125 +-- 070109 Shsalk LCS Merge 62571, Modified cursor to fetch member id in the method Get_Member_Id.
8.126 +-- 070327 RAFA LCS Merge Bug 51783
8.127 +-- 070508 Surmlk Removed the use of SUBSTRB from the view PAYER_INFO_QRY
8.128 +-- 070627 Shsalk LCS Merge 65361, Insert cursor selected value to payment_delay column in Copy_Customer method.
8.129 +-- 070816 Shsalk B146601 Corrected accoding to a request from SDMAN module.
8.130 +-- 070827 Naadlk LCS Merge 61494, Added advanced invoice column to views IDENTITY_PAY_INFO_SU_QRY,IDENTITY_PAY_INFO_CU_QRY,PAYER_INFO_QRY.
8.131 +-- 070906 Paralk B148391 Modified Copy_Customer()
8.132 +-- 071114 Paralk Bug 69035, Added reminder_template_id,interest_template_id and their descriptions to VIEW_CU_QRY
8.133 +-- 071127 Shsalk Bug 68653, Added new columns to IDENTITY LOV views.
8.134 +-- 080108 Paralk Bug 69035, Added reminder_template_id,interest_template_id and their descriptions to VIEW_PAYER_QRY
8.135 +-- 080322 Shsalk Bug 72177 Corrected. Added bic_code to the copy identity functionality.
8.136 +-- 080417 Paralk Bug 73125, Added template_id to Copy_Customer() and Copy_Supplier().
8.137 +-- 080429 Nudilk Bug 72612, Modified procedure Exist()
8.138 +-- 080528 DiUdlk Bug 74138, Modified cursor exist_company in Import__ function.
8.139 +-- 081003 Hawalk Bug 77136, Table join with customer_info_tab and supplier_info_tab for VIEW_CU_QRY and VIEW_SU_QRY respectively,
8.140 +-- 081003 to get name and association no directly.
8.141 +---------------------------------------------------------------------------------
8.142 +
8.143 +DEFINE MODULE = PAYLED
8.144 +DEFINE LU = IdentityPayInfo
8.145 +DEFINE TABLE = IDENTITY_PAY_INFO_TAB
8.146 +DEFINE VIEW = IDENTITY_PAY_INFO
8.147 +DEFINE VIEWPCT = IDENTITY_PAY_INFO_PCT
8.148 +DEFINE VIEW_SU_QRY = IDENTITY_PAY_INFO_SU_QRY
8.149 +DEFINE VIEW_CU_QRY = IDENTITY_PAY_INFO_CU_QRY
8.150 +DEFINE VIEW_SUPP = IDENTITY_PAY_INFO_SUPP
8.151 +DEFINE VIEW_CUST = IDENTITY_PAY_INFO_CUST
8.152 +DEFINE VIEW_LOV = IDENTITY_PAY_INFO_LOV
8.153 +DEFINE VIEW_ALL = IDENTITY_PAY_INFO_ALL
8.154 +DEFINE VIEW_PAYER_QRY = PAYER_INFO_QRY
8.155 +
8.156 +DEFINE VIEW_MULTI_CUS = MULTI_CUS_DETAILS_QRY
8.157 +DEFINE VIEW_MULTI_SUP = MULTI_SUP_DETAILS_QRY
8.158 +DEFINE VIEW_MULTI_ADD = MULTI_SUP_ADDRESS_QRY
8.159 +
8.160 +DEFINE PKG = IDENTITY_PAY_INFO_API
8.161 +
8.162 +DEFINE OBJID = rowid
8.163 +DEFINE OBJVERSION = ltrim(lpad(to_char(rowversion),2000))
8.164 +
8.165 +DEFINE OBJID_ptipi = ptipi.rowid
8.166 +DEFINE OBJVERSION_ptipi = ltrim(lpad(to_char(ptipi.rowversion),2000))
8.167 +
8.168 +DEFINE OBJID_p = p.rowid
8.169 +DEFINE OBJVERSION_p = ltrim(lpad(to_char(p.rowversion),2000))
8.170 +
8.171 +
8.172 +-----------------------------------------------------------------------------
8.173 +-------------------- VIEWS FOR SELECTS --------------------------------------
8.174 +-----------------------------------------------------------------------------
8.175 +
8.176 +PROMPT Creating &VIEW view
8.177 +
8.178 +CREATE OR REPLACE FORCE VIEW &VIEW AS
8.179 +SELECT p.company company,
8.180 + identity identity,
8.181 + Party_Type_API.Decode(party_type) party_type,
8.182 + party_type party_type_db,
8.183 + priority priority,
8.184 + blocked_for_payment blocked_for_payment,
8.185 + other_payee_identity other_payee_identity,
8.186 + interest_template interest_template,
8.187 + reminder_template reminder_template,
8.188 + payment_delay payment_delay,
8.189 + amount_tolerance amount_tolerance,
8.190 + percent_tolerance percent_tolerance,
8.191 + disc_days_tolerance disc_days_tolerance,
8.192 + netting_allowed netting_allowed,
8.193 + format_no format_no,
8.194 + Payment_Advice_API.Decode(payment_advice) payment_advice,
8.195 + payment_advice payment_advice_db,
8.196 + deduction_group deduction_group,
8.197 + corporation_id corporation_id,
8.198 + member_id member_id,
8.199 + send_reminder_to_payer send_reminder_to_payer,
8.200 + send_interest_inv_to_payer send_interest_inv_to_payer,
8.201 + rule_id rule_id,
8.202 + Payment_Receipt_Type_API.Decode(payment_receipt_type) payment_receipt_type,
8.203 + payment_receipt_type payment_receipt_type_db,
8.204 + template_id template_id,
8.205 + Check_Recipient_API.Decode(check_recipient) check_recipient,
8.206 + check_recipient check_recipient_db,
8.207 + send_statement_of_acc_to_payer send_statement_of_acc_to_payer,
8.208 + p.&OBJID objid,
8.209 + &OBJVERSION objversion
8.210 +FROM identity_pay_info_tab p
8.211 +WHERE EXISTS (SELECT * FROM company_finance_auth1 c WHERE p.company = c.company)
8.212 +WITH read only;
8.213 +
8.214 +COMMENT ON TABLE &VIEW
8.215 + IS 'LU=&LU^PROMPT=Identity Pay Info^MODULE=&MODULE^';
8.216 +
8.217 +COMMENT ON COLUMN &VIEW..company
8.218 + IS 'FLAGS=PMI--^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Company^REF=CompanyPayInfo^';
8.219 +COMMENT ON COLUMN &VIEW..identity
8.220 + IS 'FLAGS=KMI--^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Identity^';
8.221 +COMMENT ON COLUMN &VIEW..party_type
8.222 + IS 'FLAGS=KMI-L^DATATYPE=STRING(200)^PROMPT=Party Type^REF=PartyType^';
8.223 +COMMENT ON COLUMN &VIEW..party_type_db
8.224 + IS 'FLAGS=A----^DATATYPE=STRING(20)^PROMPT=Party Type^';
8.225 +COMMENT ON COLUMN &VIEW..priority
8.226 + IS 'FLAGS=A-IUL^DATATYPE=NUMBER^PROMPT=Priority^';
8.227 +COMMENT ON COLUMN &VIEW..blocked_for_payment
8.228 + IS 'FLAGS=A-IUL^DATATYPE=BOOLEAN^PROMPT=Blocked For Payment^';
8.229 +COMMENT ON COLUMN &VIEW..other_payee_identity
8.230 + IS 'FLAGS=A-IUL^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Other Payee Identity^REF=IdentityPayInfo(company)^';
8.231 +COMMENT ON COLUMN &VIEW..interest_template
8.232 + IS 'FLAGS=A-IU-^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Interest Template^REF=InterestTemplate(company)^';
8.233 +COMMENT ON COLUMN &VIEW..reminder_template
8.234 + IS 'FLAGS=A-IU-^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Reminder Template^REF=ReminderTemplate(company)^';
8.235 +COMMENT ON COLUMN &VIEW..payment_delay
8.236 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=Number of Days Usual Payment Delay^';
8.237 +COMMENT ON COLUMN &VIEW..amount_tolerance
8.238 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=Amount Tolerance^';
8.239 +COMMENT ON COLUMN &VIEW..percent_tolerance
8.240 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=Percent Tolerance^';
8.241 +COMMENT ON COLUMN &VIEW..disc_days_tolerance
8.242 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=Tolerance Days for Discount^';
8.243 +COMMENT ON COLUMN &VIEW..netting_allowed
8.244 + IS 'FLAGS=AMIUL^DATATYPE=BOOLEAN^PROMPT=Netting Allowed^';
8.245 +COMMENT ON COLUMN &VIEW..format_no
8.246 + IS 'FLAGS=AMI--^DATATYPE=NUMBER^PROMPT=Format No^';
8.247 +COMMENT ON COLUMN &VIEW..payment_advice
8.248 + IS 'FLAGS=AMIUL^DATATYPE=STRING(200)^PROMPT=Payment Advice^REF=PaymentAdvice^';
8.249 +COMMENT ON COLUMN &VIEW..payment_advice_db
8.250 + IS 'FLAGS=A----^DATATYPE=STRING(20)^PROMPT=Payment Advice^';
8.251 +COMMENT ON COLUMN &VIEW..deduction_group
8.252 + IS 'FLAGS=A-IUL^DATATYPE=STRING(20)^PROMPT=Deduction Group^REF=DeductionGroup^';
8.253 +COMMENT ON COLUMN &VIEW..corporation_id
8.254 + IS 'FLAGS=A-IU-^DATATYPE=STRING(20)^PROMPT=Corporation Id^';
8.255 +COMMENT ON COLUMN &VIEW..member_id
8.256 + IS 'FLAGS=A-IU-^DATATYPE=STRING(20)^PROMPT=Member Id^';
8.257 +COMMENT ON COLUMN &VIEW..send_reminder_to_payer
8.258 + IS 'FLAGS=A-IU-^DATATYPE=STRING(5)^PROMPT=Send Reminder To Payer^';
8.259 +COMMENT ON COLUMN &VIEW..send_interest_inv_to_payer
8.260 + IS 'FLAGS=A-IU-^DATATYPE=STRING(5)^PROMPT=Send Interest Inv To Payer^';
8.261 +COMMENT ON COLUMN &VIEW..rule_id
8.262 + IS 'FLAGS=A-IUL^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Rule Id^REF=PayMethodRule(company)^';
8.263 +COMMENT ON COLUMN &VIEW..payment_receipt_type
8.264 + IS 'FLAGS=AMIUL^DATATYPE=STRING(200)^PROMPT=Payment Receipt^REF=PaymentReceiptType^';
8.265 +COMMENT ON COLUMN &VIEW..payment_receipt_type_db
8.266 + IS 'FLAGS=A----^DATATYPE=STRING(20)^PROMPT=Payment Receipt^';
8.267 +COMMENT ON COLUMN &VIEW..template_id
8.268 + IS 'FLAGS=A-IU-^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Template Id^REF=ConfirmationStmntTempl(company)^';
8.269 +COMMENT ON COLUMN &VIEW..check_recipient
8.270 + IS 'FLAGS=AMIUL^DATATYPE=STRING(200)^PROMPT=Check Recipient^REF=CheckRecipient^';
8.271 +COMMENT ON COLUMN &VIEW..check_recipient_db
8.272 + IS 'FLAGS=A----^DATATYPE=STRING(20)^PROMPT=Check Recipient^';
8.273 +COMMENT ON COLUMN &VIEW..send_statement_of_acc_to_payer
8.274 + IS 'FLAGS=A-IU-^DATATYPE=STRING(5)^PROMPT=Send Statement Of Account To Payer^';
8.275 +
8.276 +-- Bug 77136, begin, Table join with supplier_info_tab, in order to get name and association no directly.
8.277 +PROMPT Creating &VIEW_SU_QRY VIEW
8.278 +CREATE OR REPLACE FORCE VIEW &VIEW_SU_QRY AS
8.279 +SELECT p.company company,
8.280 + p.identity identity,
8.281 + Party_Type_API.Decode(p.party_type) party_type,
8.282 + p.party_type party_type_db,
8.283 + si.name name,
8.284 + si.association_no association_no,
8.285 + NVL(Ledger_Item_Util_API.Get_Dom_Balance(
8.286 + p.company,
8.287 + p.identity,
8.288 + Party_Type_API.Decode(p.party_type),
8.289 + Company_Pay_Info_API.Get_Query_Voucher_Date), 0)
8.290 + balance,
8.291 + NVL(Ledger_Item_Util_API.Get_Dom_Balance(
8.292 + p.company,
8.293 + p.identity,
8.294 + Party_Type_API.Decode(p.party_type)), 0) pay_doc_balance,
8.295 + NVL(Ledger_Item_Util_API.Get_Adv_Inv_Dom_Balance(
8.296 + p.company,
8.297 + p.identity,
8.298 + Party_Type_API.Decode(p.party_type)), 0) adv_inv_balance,
8.299 + NVL(Ledger_Item_Util_API.Get_Dom_Amount_Due(
8.300 + p.company,
8.301 + p.identity,
8.302 + Party_Type_API.Decode(p.party_type),
8.303 + Company_Pay_Info_API.Get_Query_Voucher_Date), 0)
8.304 + amount_due,
8.305 + NVL(Ledger_Item_Util_API.Get_Dom_Amount_Due(
8.306 + p.company,
8.307 + p.identity,
8.308 + Party_Type_API.Decode(p.party_type),
8.309 + Company_Pay_Info_API.Get_Query_Voucher_Date,
8.310 + 'TRUE'), 0)
8.311 + pay_doc_amount_due,
8.312 + NVL(Ledger_Item_Util_API.Get_Dom_Pre_Payment_Balance(
8.313 + p.company,
8.314 + p.identity,
8.315 + Party_Type_API.Decode(p.party_type),
8.316 + Company_Pay_Info_API.Get_Query_Voucher_Date), 0)
8.317 + pre_payment_balance,
8.318 + NVL(Ledger_Item_Util_API.Get_Dom_Bal_Excl_Withh(
8.319 + p.company,
8.320 + p.identity,
8.321 + Party_Type_API.Decode(p.party_type),
8.322 + Company_Pay_Info_API.Get_Query_Voucher_Date), 0)
8.323 + balance_excl_withheld,
8.324 + decode(p.other_payee_identity,NULL,'FALSE','TRUE') other_party_type_exists,
8.325 + Identity_Note_API.Check_Note_Exist(p.company,
8.326 + p.identity,
8.327 + p.party_type) is_note,
8.328 + i.group_id group_id,
8.329 + &OBJID_p objid,
8.330 + &OBJVERSION_p objversion
8.331 +FROM identity_pay_info_tab p,
8.332 + identity_invoice_info_tab i,
8.333 + supplier_info_tab si
8.334 +WHERE EXISTS (SELECT * FROM company_finance_auth1 c WHERE p.company = c.company)
8.335 +AND p.party_type = 'SUPPLIER'
8.336 +AND p.company = i.company
8.337 +AND p.identity = i.identity
8.338 +AND p.party_type = i.party_type
8.339 +AND p.identity = si.supplier_id
8.340 +WITH read only;
8.341 +
8.342 +COMMENT ON TABLE &VIEW_SU_QRY
8.343 + IS 'LU=&LU^PROMPT=Identity Pay Info^MODULE=&MODULE^';
8.344 +
8.345 +COMMENT ON COLUMN &VIEW_SU_QRY..company
8.346 + IS 'FLAGS=PM---^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Company^REF=Company/NOCHECK^';
8.347 +COMMENT ON COLUMN &VIEW_SU_QRY..identity
8.348 + IS 'FLAGS=PM---^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Identity^';
8.349 +COMMENT ON COLUMN &VIEW_SU_QRY..party_type
8.350 + IS 'FLAGS=KM--L^DATATYPE=STRING(200)^PROMPT=Party Type^REF=PartyType^';
8.351 +COMMENT ON COLUMN &VIEW_SU_QRY..party_type_db
8.352 + IS 'FLAGS=A----^DATATYPE=STRING(20)^PROMPT=Party Type^';
8.353 +COMMENT ON COLUMN &VIEW_SU_QRY..name
8.354 + IS 'FLAGS=AM--L^DATATYPE=STRING(100)^PROMPT=Supplier Name^';
8.355 +COMMENT ON COLUMN &VIEW_SU_QRY..balance
8.356 + IS 'FLAGS=AM--L^DATATYPE=NUMBER^PROMPT=Balance^';
8.357 +COMMENT ON COLUMN &VIEW_SU_QRY..adv_inv_balance
8.358 + IS 'FLAGS=AM--L^DATATYPE=NUMBER^PROMPT=Adv Inv Balance^';
8.359 +COMMENT ON COLUMN &VIEW_SU_QRY..amount_due
8.360 + IS 'FLAGS=AM--L^DATATYPE=NUMBER^PROMPT=Amount Due^';
8.361 +COMMENT ON COLUMN &VIEW_SU_QRY..pre_payment_balance
8.362 + IS 'FLAGS=AM--L^DATATYPE=NUMBER^PROMPT=Open Pre-Payments^';
8.363 +COMMENT ON COLUMN &VIEW_SU_QRY..balance_excl_withheld
8.364 + IS 'FLAGS=AM--L^DATATYPE=NUMBER^PROMPT=Balance Excl Withheld^';
8.365 +COMMENT ON COLUMN &VIEW_SU_QRY..other_party_type_exists
8.366 + IS 'FLAGS=AM--L^DATATYPE=BOOLEAN^PROMPT=Other Party Type Exist^';
8.367 +COMMENT ON COLUMN &VIEW_SU_QRY..is_note
8.368 + IS 'FLAGS=AM--L^DATATYPE=BOOLEAN^PROMPT=Notes^';
8.369 +COMMENT ON COLUMN &VIEW_SU_QRY..group_id
8.370 + IS 'FLAGS=A----^DATATYPE=STRING(20)^PROMPT=Group ID^';
8.371 +-- Bug 77136, end
8.372 +
8.373 +-- Bug 77136, begin, Table join with customer_info_tab, in order to get name and association no directly.
8.374 +-- Bug 69035, Begin, Added reminder_template_id,interest_template_id and their descriptions to VIEW_CU_QRY
8.375 +PROMPT Creating &VIEW_CU_QRY view
8.376 +CREATE OR REPLACE FORCE VIEW &VIEW_CU_QRY AS
8.377 +SELECT p.company company,
8.378 + p.identity identity,
8.379 + Party_Type_API.Decode(p.party_type) party_type,
8.380 + p.party_type party_type_db,
8.381 + ci.name name,
8.382 + ci.association_no association_no,
8.383 + NVL(Ledger_Item_Util_API.Get_Dom_Balance(
8.384 + p.company,
8.385 + p.identity,
8.386 + Party_Type_API.Decode(p.party_type),
8.387 + Company_Pay_Info_API.Get_Query_Voucher_Date), 0)
8.388 + balance,
8.389 + NVL(Ledger_Item_Util_API.Get_Dom_Balance(
8.390 + p.company,
8.391 + p.identity,
8.392 + Party_Type_API.Decode(p.party_type),
8.393 + Company_Pay_Info_API.Get_Query_Voucher_Date,
8.394 + 'TRUE'), 0) pay_doc_balance,
8.395 + NVL(Ledger_Item_Util_API.Get_Adv_Inv_Dom_Balance(
8.396 + p.company,
8.397 + p.identity,
8.398 + Party_Type_API.Decode(p.party_type)), 0) adv_inv_balance,
8.399 + NVL(Ledger_Item_Util_API.Get_Dom_Amount_Due(
8.400 + p.company,
8.401 + p.identity,
8.402 + Party_Type_API.Decode(p.party_type),
8.403 + Company_Pay_Info_API.Get_Query_Voucher_Date), 0)
8.404 + amount_due,
8.405 + NVL(Ledger_Item_Util_API.Get_Dom_Amount_Due(
8.406 + p.company,
8.407 + p.identity,
8.408 + Party_Type_API.Decode(p.party_type),
8.409 + Company_Pay_Info_API.Get_Query_Voucher_Date,
8.410 + 'TRUE'), 0) pay_doc_amount_due,
8.411 + NVL(Ledger_Item_Util_API.Get_Dom_Pre_Payment_Balance(
8.412 + p.company,
8.413 + p.identity,
8.414 + Party_Type_API.Decode(p.party_type),
8.415 + Company_Pay_Info_API.Get_Query_Voucher_Date), 0)
8.416 + pre_payment_balance,
8.417 + 'FALSE' other_party_type_exists,
8.418 + Identity_Note_API.Check_Note_Exist(p.company,
8.419 + p.identity,
8.420 + p.party_type) is_note,
8.421 + i.group_id group_id,
8.422 + cci.credit_analyst_code ca_code,
8.423 + Credit_Analyst_API.Get_Description(p.company,
8.424 + cci.credit_analyst_code ) ca_desc,
8.425 + Credit_Analyst_API.Get_Manager(p.company,
8.426 + cci.credit_analyst_code) ca_manager,
8.427 + Credit_Analyst_API.Get_Manager_Description(p.company,
8.428 + cci.credit_analyst_code) manager_desc,
8.429 + cci.corp_credit_relation_exist credit_relation_exist,
8.430 + cci.credit_relationship_type credit_relation_type,
8.431 + cci.parent_company parent_company,
8.432 + cci.parent_identity parent_party,
8.433 + Customer_Info_API.Get_Name(cci.parent_identity) parent_name,
8.434 + Customer_Info_Vat_API.Get_Tax_Withholding(p.identity,
8.435 + Customer_Info_Address_API.Get_Default_Address(p.identity,
8.436 + Address_Type_Code_API.Decode('DELIVERY')), p.company) tax_withholding,
8.437 + p.reminder_template reminder_template_id,
8.438 + Reminder_Template_Api.Get_Template_Description(p.company ,
8.439 + p.reminder_template) reminder_template_des,
8.440 + p.interest_template interest_template_id,
8.441 + Interest_Template_API.Get_Template_Description(p.company,
8.442 + p.interest_template) interest_template_des,
8.443 + &OBJID_p objid,
8.444 + &OBJVERSION_p objversion
8.445 +FROM identity_pay_info_tab p,
8.446 + identity_invoice_info_tab i,
8.447 + customer_credit_info_tab cci,
8.448 + customer_info_tab ci
8.449 +WHERE EXISTS (SELECT * FROM company_finance_auth1 c WHERE p.company = c.company)
8.450 +AND p.party_type = 'CUSTOMER'
8.451 +AND p.company = cci.company(+)
8.452 +AND p.identity = cci.identity(+)
8.453 +AND p.company = i.company
8.454 +AND p.identity = i.identity
8.455 +AND p.party_type = i.party_type
8.456 +AND p.identity = ci.customer_id
8.457 +WITH read only;
8.458 +
8.459 +COMMENT ON TABLE &VIEW_CU_QRY
8.460 + IS 'LU=&LU^PROMPT=Identity Pay Info^MODULE=&MODULE^';
8.461 +
8.462 +COMMENT ON COLUMN &VIEW_CU_QRY..company
8.463 + IS 'FLAGS=PM---^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Company^REF=Company/NOCHECK^';
8.464 +COMMENT ON COLUMN &VIEW_CU_QRY..identity
8.465 + IS 'FLAGS=PM---^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Identity^';
8.466 +COMMENT ON COLUMN &VIEW_CU_QRY..party_type
8.467 + IS 'FLAGS=KM--L^DATATYPE=STRING(200)^PROMPT=Party Type^REF=PartyType^';
8.468 +COMMENT ON COLUMN &VIEW_CU_QRY..party_type_db
8.469 + IS 'FLAGS=A----^DATATYPE=STRING(20)^PROMPT=Party Type^';
8.470 +COMMENT ON COLUMN &VIEW_CU_QRY..name
8.471 + IS 'FLAGS=AM--L^DATATYPE=STRING(100)^PROMPT=Customer Name^';
8.472 +COMMENT ON COLUMN &VIEW_CU_QRY..balance
8.473 + IS 'FLAGS=AM--L^DATATYPE=NUMBER^PROMPT=Balance^';
8.474 +COMMENT ON COLUMN &VIEW_CU_QRY..adv_inv_balance
8.475 + IS 'FLAGS=AM--L^DATATYPE=NUMBER^PROMPT=Adv Inv Balance^';
8.476 +COMMENT ON COLUMN &VIEW_CU_QRY..amount_due
8.477 + IS 'FLAGS=AM--L^DATATYPE=NUMBER^PROMPT=Amount Due^';
8.478 +COMMENT ON COLUMN &VIEW_CU_QRY..pre_payment_balance
8.479 + IS 'FLAGS=AM--L^DATATYPE=NUMBER^PROMPT=Open Pre-Payments^';
8.480 +COMMENT ON COLUMN &VIEW_CU_QRY..other_party_type_exists
8.481 + IS 'FLAGS=AM--L^DATATYPE=BOOLEAN^PROMPT=Other Party Type Exist^';
8.482 +COMMENT ON COLUMN &VIEW_CU_QRY..is_note
8.483 + IS 'FLAGS=AM--L^DATATYPE=BOOLEAN^PROMPT=Notes^';
8.484 +COMMENT ON COLUMN &VIEW_CU_QRY..group_id
8.485 + IS 'FLAGS=A----^DATATYPE=STRING(20)^PROMPT=Group ID^';
8.486 +COMMENT ON COLUMN &VIEW_CU_QRY..ca_code
8.487 + IS 'FLAGS=A---L^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Credit Analyst Code^';
8.488 +COMMENT ON COLUMN &VIEW_CU_QRY..ca_desc
8.489 + IS 'FLAGS=A---L^DATATYPE=STRING(100)^PROMPT=Credit Analyst Description^';
8.490 +COMMENT ON COLUMN &VIEW_CU_QRY..ca_manager
8.491 + IS 'FLAGS=A---L^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Credit Analyst Manager^';
8.492 +COMMENT ON COLUMN &VIEW_CU_QRY..manager_desc
8.493 + IS 'FLAGS=A---L^DATATYPE=STRING(100)^PROMPT=Manager Description^';
8.494 +COMMENT ON COLUMN &VIEW_CU_QRY..credit_relation_exist
8.495 + IS 'FLAGS=A---L^DATATYPE=BOOLEAN^PROMPT=Credit Relation Exist^';
8.496 +COMMENT ON COLUMN &VIEW_CU_QRY..credit_relation_type
8.497 + IS 'FLAGS=A---L^DATATYPE=STRING(100)^PROMPT=Credit Relation Type^';
8.498 +COMMENT ON COLUMN &VIEW_CU_QRY..parent_company
8.499 + IS 'FLAGS=A---L^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Parent Company^';
8.500 +COMMENT ON COLUMN &VIEW_CU_QRY..parent_party
8.501 + IS 'FLAGS=A---L^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Parent Party^';
8.502 +COMMENT ON COLUMN &VIEW_CU_QRY..parent_name
8.503 + IS 'FLAGS=A---L^DATATYPE=STRING(100)^PROMPT=Parent Name^';
8.504 +COMMENT ON COLUMN &VIEW_CU_QRY..tax_withholding
8.505 + IS 'FLAGS=A---L^DATATYPE=STRING(20)^PROMPT=Tax Withholding^';
8.506 +COMMENT ON COLUMN &VIEW_CU_QRY..reminder_template_id
8.507 + IS 'FLAGS=A---L^DATATYPE=STRING(20)^PROMPT=Reminder Template Id^';
8.508 +COMMENT ON COLUMN &VIEW_CU_QRY..reminder_template_des
8.509 + IS 'FLAGS=A---L^DATATYPE=STRING(200)^PROMPT=Reminder Template Description^';
8.510 +COMMENT ON COLUMN &VIEW_CU_QRY..interest_template_id
8.511 + IS 'FLAGS=A---L^DATATYPE=STRING(20)^PROMPT=Interest Template Id^';
8.512 +COMMENT ON COLUMN &VIEW_CU_QRY..interest_template_des
8.513 + IS 'FLAGS=A---L^DATATYPE=STRING(200)^PROMPT=Interest Template Description^';
8.514 +-- Bug 69035, End;
8.515 +-- Bug 77136, end
8.516 +
8.517 +PROMPT Creating &VIEW_SUPP view
8.518 +
8.519 +-- Bug 68653, Begin, Added new columns address and city
8.520 +CREATE OR REPLACE FORCE VIEW &VIEW_SUPP AS
8.521 +SELECT ipi.company company,
8.522 + identity identity,
8.523 + Supplier_Info_API.Get_Name(identity) party_name,
8.524 + Supplier_Info_Address_API.Get_City(identity,
8.525 + Supplier_Info_Address_API.Get_Default_Address(identity,
8.526 + Address_Type_Code_API.Decode('PAY'))) city,
8.527 + RTRIM(Supplier_Info_Address_API.Get_Address1(identity,
8.528 + Supplier_Info_Address_API.Get_Default_Address(identity,
8.529 + Address_Type_Code_API.Decode('PAY')))||','||
8.530 + Supplier_Info_Address_API.Get_Address2(identity,
8.531 + Supplier_Info_Address_API.Get_Default_Address(identity,
8.532 + Address_Type_Code_API.Decode('PAY'))),',') address,
8.533 + priority priority,
8.534 + blocked_for_payment blocked_for_payment,
8.535 + other_payee_identity other_payee_identity,
8.536 + Payment_Advice_API.Decode(payment_advice) payment_advice,
8.537 + ipi.&OBJID objid,
8.538 + &OBJVERSION objversion
8.539 +FROM identity_pay_info_tab ipi
8.540 +WHERE EXISTS (SELECT * FROM company_finance_auth1 c WHERE ipi.company = c.company)
8.541 +AND party_type = 'SUPPLIER'
8.542 +WITH read only;
8.543 +
8.544 +COMMENT ON TABLE &VIEW_SUPP
8.545 + IS 'LU=&LU^PROMPT=Supplier Pay Info^MODULE=&MODULE^';
8.546 +
8.547 +COMMENT ON COLUMN &VIEW_SUPP..company
8.548 + IS 'FLAGS=PMI--^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Company^REF=Company/NOCHECK^';
8.549 +COMMENT ON COLUMN &VIEW_SUPP..identity
8.550 + IS 'FLAGS=KMI-L^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Supplier Id^REF=SupplierInfo/CUSTOM=(Check_Cascade_Supplier__,Cascade_Delete_Supplier__)^';
8.551 +COMMENT ON COLUMN &VIEW_SUPP..party_name
8.552 + IS 'FLAGS=AMI-L^DATATYPE=STRING(100)^PROMPT=Supplier Name^';
8.553 +COMMENT ON COLUMN &VIEW_SUPP..city
8.554 + IS 'FLAGS=A---L^DATATYPE=STRING(35)^PROMPT=City^';
8.555 +COMMENT ON COLUMN &VIEW_SUPP..address
8.556 + IS 'FLAGS=A---L^DATATYPE=STRING(2000)^PROMPT=Address^';
8.557 +COMMENT ON COLUMN &VIEW_SUPP..priority
8.558 + IS 'FLAGS=A-IUL^DATATYPE=NUMBER^PROMPT=Priority^';
8.559 +COMMENT ON COLUMN &VIEW_SUPP..blocked_for_payment
8.560 + IS 'FLAGS=A-IUL^DATATYPE=BOOLEAN^PROMPT=Blocked For Payment^';
8.561 +COMMENT ON COLUMN &VIEW_SUPP..other_payee_identity
8.562 + IS 'FLAGS=A-IUL^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Other Payee^';
8.563 +COMMENT ON COLUMN &VIEW_SUPP..payment_advice
8.564 + IS 'FLAGS=A-IU-^DATATYPE=STRING(200)^PROMPT=Payment Advice^REF=PaymentAdvice^';
8.565 +-- Bug 68653, End
8.566 +
8.567 +
8.568 +PROMPT Creating &VIEW_CUST view
8.569 +
8.570 +-- Bug 68653, Begin, Added new columns address and city
8.571 +CREATE OR REPLACE FORCE VIEW &VIEW_CUST AS
8.572 +SELECT ipi.company company,
8.573 + identity identity,
8.574 + Customer_Info_API.Get_Name(identity) party_name,
8.575 + Customer_Info_Address_API.Get_City(identity,
8.576 + Customer_Info_Address_API.Get_Default_Address(identity,
8.577 + Address_Type_Code_API.Decode('PAY'))) city,
8.578 + RTRIM(Customer_Info_Address_API.Get_Address1(identity,
8.579 + Customer_Info_Address_API.Get_Default_Address(identity,
8.580 + Address_Type_Code_API.Decode('PAY')))||','||
8.581 + Customer_Info_Address_API.Get_Address2(identity,
8.582 + Customer_Info_Address_API.Get_Default_Address(identity,
8.583 + Address_Type_Code_API.Decode('PAY'))),',') address,
8.584 + interest_template interest_template,
8.585 + reminder_template reminder_template,
8.586 + Payment_Advice_API.Decode(payment_advice) payment_advice,
8.587 + ipi.&OBJID objid,
8.588 + &OBJVERSION objversion
8.589 +FROM identity_pay_info_tab ipi
8.590 +WHERE EXISTS (SELECT * FROM company_finance_auth1 c WHERE ipi.company = c.company)
8.591 +AND party_type = 'CUSTOMER'
8.592 +WITH read only;
8.593 +
8.594 +COMMENT ON TABLE &VIEW_CUST
8.595 + IS 'LU=&LU^PROMPT=Customer Pay Info^MODULE=&MODULE^';
8.596 +
8.597 +COMMENT ON COLUMN &VIEW_CUST..company
8.598 + IS 'FLAGS=PMI--^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Company^REF=Company/NOCHECK^';
8.599 +COMMENT ON COLUMN &VIEW_CUST..identity
8.600 + IS 'FLAGS=KMI-L^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Customer Id^REF=CustomerInfo/CUSTOM=(Check_Cascade_Customer__,Cascade_Delete_Customer__)^';
8.601 +COMMENT ON COLUMN &VIEW_CUST..party_name
8.602 + IS 'FLAGS=AMI-L^DATATYPE=STRING(100)^PROMPT=Customer Name^';
8.603 +COMMENT ON COLUMN &VIEW_CUST..city
8.604 + IS 'FLAGS=A---L^DATATYPE=STRING(35)^PROMPT=City^';
8.605 +COMMENT ON COLUMN &VIEW_CUST..address
8.606 + IS 'FLAGS=A---L^DATATYPE=STRING(2000)^PROMPT=Address^';
8.607 +COMMENT ON COLUMN &VIEW_CUST..interest_template
8.608 + IS 'FLAGS=A-IUL^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Interest Template^REF=InterestTemplate(company)/NOCHECK^';
8.609 +COMMENT ON COLUMN &VIEW_CUST..reminder_template
8.610 + IS 'FLAGS=A-IUL^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Reminder Template^REF=ReminderTemplate(company)/NOCHECK^';
8.611 +COMMENT ON COLUMN &VIEW_CUST..payment_advice
8.612 + IS 'FLAGS=A-IU-^DATATYPE=STRING(200)^PROMPT=Payment Advice^REF=PaymentAdvice^';
8.613 +-- Bug 68653, End
8.614 +
8.615 +PROMPT Creating &VIEW_LOV view
8.616 +
8.617 +-- Bug 68653, Begin, Added new columns address and city
8.618 +CREATE OR REPLACE FORCE VIEW &VIEW_LOV AS
8.619 +SELECT ipi.company company,
8.620 + party_type party_type_db,
8.621 + identity identity,
8.622 + Payment_Library_API.Get_Identity_Name(ipi.company,
8.623 + identity,
8.624 + Party_Type_API.Decode(party_type)) party_name,
8.625 + Payment_Library_API.Get_City(ipi.company,
8.626 + identity,
8.627 + party_type) city,
8.628 + Payment_Library_API.Get_Address(ipi.company,
8.629 + identity,
8.630 + party_type) address,
8.631 + ipi.&OBJID objid,
8.632 + &OBJVERSION objversion
8.633 +FROM identity_pay_info_tab ipi
8.634 +WHERE EXISTS (SELECT * FROM company_finance_auth1 c WHERE ipi.company = c.company)
8.635 +WITH read only;
8.636 +
8.637 +COMMENT ON TABLE &VIEW_LOV
8.638 + IS 'LU=&LU^PROMPT=Customer/Supplier Pay Info^MODULE=&MODULE^';
8.639 +
8.640 +COMMENT ON COLUMN &VIEW_LOV..company
8.641 + IS 'FLAGS=PMI--^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Company^REF=Company/NOCHECK^';
8.642 +COMMENT ON COLUMN &VIEW_LOV..party_type_db
8.643 + IS 'FLAGS=PMI--^DATATYPE=STRING(20)^PROMPT=Party Type^';
8.644 +COMMENT ON COLUMN &VIEW_LOV..identity
8.645 + IS 'FLAGS=KMI-L^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Identity^';
8.646 +COMMENT ON COLUMN &VIEW_LOV..party_name
8.647 + IS 'FLAGS=AMI-L^DATATYPE=STRING(100)^PROMPT=Name^';
8.648 +COMMENT ON COLUMN &VIEW_LOV..city
8.649 + IS 'FLAGS=A---L^DATATYPE=STRING(35)^PROMPT=City^';
8.650 +COMMENT ON COLUMN &VIEW_LOV..address
8.651 + IS 'FLAGS=A---L^DATATYPE=STRING(2000)^PROMPT=Address^';
8.652 +-- Bug 68653, End
8.653 +
8.654 +
8.655 +PROMPT Creating &VIEW_ALL view
8.656 +
8.657 +CREATE OR REPLACE FORCE VIEW &VIEW_ALL AS
8.658 +SELECT ipi.company company,
8.659 + identity identity,
8.660 + Party_Type_API.Decode(party_type) party_type,
8.661 + Payment_Library_API.Get_Identity_Name(ipi.company,
8.662 + identity,
8.663 + Party_Type_API.Decode(party_type)) party_name,
8.664 + ipi.&OBJID objid,
8.665 + &OBJVERSION objversion
8.666 +FROM identity_pay_info_tab ipi
8.667 +WHERE EXISTS (SELECT * FROM company_finance_auth1 c WHERE ipi.company = c.company)
8.668 +WITH read only;
8.669 +
8.670 +COMMENT ON TABLE &VIEW_ALL
8.671 + IS 'LU=&LU^PROMPT=Identity Pay Info^MODULE=&MODULE^';
8.672 +
8.673 +COMMENT ON COLUMN &VIEW_ALL..company
8.674 + IS 'FLAGS=PMI--^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Company^REF=Company/NOCHECK^';
8.675 +COMMENT ON COLUMN &VIEW_ALL..identity
8.676 + IS 'FLAGS=KMI-L^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Identity^';
8.677 +COMMENT ON COLUMN &VIEW_ALL..party_type
8.678 + IS 'FLAGS=AMI-L^DATATYPE=STRING(200)^PROMPT=Party Type^REF=PartyType';
8.679 +COMMENT ON COLUMN &VIEW_ALL..party_name
8.680 + IS 'FLAGS=AMI-L^DATATYPE=STRING(100)^PROMPT=Name^';
8.681 +
8.682 +PROMPT Creating &VIEWPCT view
8.683 +
8.684 +CREATE OR REPLACE FORCE VIEW &VIEWPCT AS
8.685 +SELECT company company,
8.686 + identity identity,
8.687 + party_type party_type_db,
8.688 + priority priority,
8.689 + blocked_for_payment blocked_for_payment,
8.690 + other_payee_identity other_payee_identity,
8.691 + interest_template interest_template,
8.692 + reminder_template reminder_template,
8.693 + payment_delay payment_delay,
8.694 + amount_tolerance amount_tolerance,
8.695 + percent_tolerance percent_tolerance,
8.696 + disc_days_tolerance disc_days_tolerance,
8.697 + netting_allowed netting_allowed,
8.698 + format_no format_no,
8.699 + payment_advice payment_advice_db,
8.700 + deduction_group deduction_group,
8.701 + corporation_id corporation_id,
8.702 + member_id member_id,
8.703 + send_reminder_to_payer send_reminder_to_payer,
8.704 + send_interest_inv_to_payer send_interest_inv_to_payer,
8.705 + payment_receipt_type payment_receipt_type_db,
8.706 + send_statement_of_acc_to_payer send_statement_of_acc_to_payer
8.707 +FROM identity_pay_info_tab
8.708 +WITH read only;
8.709 +
8.710 +COMMENT ON TABLE &VIEWPCT
8.711 + IS 'LU=&LU^PROMPT=Identity Pay Info^MODULE=&MODULE^';
8.712 +
8.713 +COMMENT ON COLUMN &VIEWPCT..company
8.714 + IS 'FLAGS=PMI--^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Company^REF=CompanyPayInfo/NOCHECK^';
8.715 +COMMENT ON COLUMN &VIEWPCT..identity
8.716 + IS 'FLAGS=KMI--^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Identity^';
8.717 +COMMENT ON COLUMN &VIEWPCT..party_type_db
8.718 + IS 'FLAGS=A----^DATATYPE=STRING(20)^PROMPT=Party Type^';
8.719 +COMMENT ON COLUMN &VIEWPCT..priority
8.720 + IS 'FLAGS=A-IUL^DATATYPE=NUMBER^PROMPT=Priority^';
8.721 +COMMENT ON COLUMN &VIEWPCT..blocked_for_payment
8.722 + IS 'FLAGS=A-IUL^DATATYPE=BOOLEAN^PROMPT=Blocked For Payment^';
8.723 +COMMENT ON COLUMN &VIEWPCT..other_payee_identity
8.724 + IS 'FLAGS=A-IUL^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Other Payee Identity^REF=IdentityPayInfo(company)/NOCHECK^';
8.725 +COMMENT ON COLUMN &VIEWPCT..interest_template
8.726 + IS 'FLAGS=A-IU-^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Interest Template^REF=InterestTemplate(company)/NOCHECK^';
8.727 +COMMENT ON COLUMN &VIEWPCT..reminder_template
8.728 + IS 'FLAGS=A-IU-^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Reminder Template^REF=ReminderTemplate(company)/NOCHECK^';
8.729 +COMMENT ON COLUMN &VIEWPCT..payment_delay
8.730 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=Number of Days Usual Payment Delay^';
8.731 +COMMENT ON COLUMN &VIEWPCT..amount_tolerance
8.732 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=Amount Tolerance^';
8.733 +COMMENT ON COLUMN &VIEWPCT..percent_tolerance
8.734 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=Percent Tolerance^';
8.735 +COMMENT ON COLUMN &VIEWPCT..disc_days_tolerance
8.736 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=Tolerance Days for Discount^';
8.737 +COMMENT ON COLUMN &VIEWPCT..netting_allowed
8.738 + IS 'FLAGS=AMIUL^DATATYPE=BOOLEAN^PROMPT=Netting Allowed^';
8.739 +COMMENT ON COLUMN &VIEWPCT..format_no
8.740 + IS 'FLAGS=AMI--^DATATYPE=NUMBER^PROMPT=Format No^';
8.741 +COMMENT ON COLUMN &VIEWPCT..payment_advice_db
8.742 + IS 'FLAGS=A----^DATATYPE=STRING(20)^PROMPT=Payment Advice^';
8.743 +COMMENT ON COLUMN &VIEWPCT..deduction_group
8.744 + IS 'FLAGS=A-IUL^DATATYPE=STRING(20)^PROMPT=Deduction Group^REF=DeductionGroup/NOCHECK^';
8.745 +COMMENT ON COLUMN &VIEWPCT..corporation_id
8.746 + IS 'FLAGS=A-IU-^DATATYPE=STRING(20)^PROMPT=Corporation Id^';
8.747 +COMMENT ON COLUMN &VIEWPCT..member_id
8.748 + IS 'FLAGS=A-IU-^DATATYPE=STRING(20)^PROMPT=Member Id^';
8.749 +COMMENT ON COLUMN &VIEWPCT..send_reminder_to_payer
8.750 + IS 'FLAGS=A-IU-^DATATYPE=STRING(5)^PROMPT=Send Reminder To Payer^';
8.751 +COMMENT ON COLUMN &VIEWPCT..send_interest_inv_to_payer
8.752 + IS 'FLAGS=A-IU-^DATATYPE=STRING(5)^PROMPT=Send Interest Inv To Payer^';
8.753 +COMMENT ON COLUMN &VIEWPCT..payment_receipt_type_db
8.754 + IS 'FLAGS=A----^DATATYPE=STRING(20)^PROMPT=Payment Receipt^';
8.755 +COMMENT ON COLUMN &VIEWPCT..send_statement_of_acc_to_payer
8.756 + IS 'FLAGS=A-IU-^DATATYPE=STRING(5)^PROMPT=Send Statement Of Account To Payer^';
8.757 +
8.758 +
8.759 +PROMPT Creating &VIEW_PAYER_QRY view
8.760 +-- Bug 69035, Begin, Added reminder_template_id,interest_template_id and their descriptions
8.761 +CREATE OR REPLACE FORCE VIEW &VIEW_PAYER_QRY AS
8.762 +SELECT p.company company,
8.763 + identity identity,
8.764 + Party_Type_API.Decode(party_type) party_type,
8.765 + party_type party_type_db,
8.766 + Customer_Info_API.Get_Name(identity) name,
8.767 + NVL(Ledger_Item_Util_API.Get_Payer_Dom_Balance(
8.768 + p.company,
8.769 + identity,
8.770 + Party_Type_API.Decode(party_type)), 0)
8.771 + balance,
8.772 + NVL(Ledger_Item_Util_API.Get_Payer_Adv_Inv_Dom_Balance(
8.773 + p.company,
8.774 + identity,
8.775 + Party_Type_API.Decode(party_type)), 0)
8.776 + payer_adv_inv_balance,
8.777 + NVL(Ledger_Item_Util_API.Get_Payer_Dom_Bal_of_other_cus(
8.778 + p.company,
8.779 + identity,
8.780 + Party_Type_API.Decode(party_type)), 0)
8.781 + other_cust_bal,
8.782 + NVL(Ledger_Item_Util_API.Get_Payer_Dom_Amount_Due(
8.783 + p.company,
8.784 + identity,
8.785 + Party_Type_API.Decode(party_type)), 0)
8.786 + amount_due,
8.787 + NVL(Ledger_Item_Util_API.Get_Payer_Dom_Pre_Pay_Bal(
8.788 + p.company,
8.789 + identity,
8.790 + Party_Type_API.Decode(party_type)), 0)
8.791 + pre_payment_balance,
8.792 + Identity_Note_API.Check_Note_Exist(p.company,
8.793 + p.identity,
8.794 + p.party_type)
8.795 + is_note,
8.796 + p.reminder_template reminder_template_id,
8.797 + Reminder_Template_Api.Get_Template_Description(p.company ,
8.798 + p.reminder_template)
8.799 + reminder_template_des,
8.800 + p.interest_template interest_template_id,
8.801 + Interest_Template_API.Get_Template_Description(p.company,
8.802 + p.interest_template)
8.803 + interest_template_des,
8.804 + p.&OBJID objid,
8.805 + &OBJVERSION objversion
8.806 +FROM identity_pay_info_tab p
8.807 +WHERE EXISTS (SELECT * FROM company_finance_auth1 c WHERE p.company = c.company)
8.808 +AND party_type = 'CUSTOMER'
8.809 +WITH read only;
8.810 +
8.811 +COMMENT ON TABLE &VIEW_PAYER_QRY
8.812 + IS 'LU=&LU^PROMPT=Identity Pay Info^MODULE=&MODULE^';
8.813 +
8.814 +COMMENT ON COLUMN &VIEW_PAYER_QRY..company
8.815 + IS 'FLAGS=PM---^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Company^REF=Company/NOCHECK^';
8.816 +COMMENT ON COLUMN &VIEW_PAYER_QRY..identity
8.817 + IS 'FLAGS=PM---^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Payer^';
8.818 +COMMENT ON COLUMN &VIEW_PAYER_QRY..party_type
8.819 + IS 'FLAGS=KM--L^DATATYPE=STRING(200)^PROMPT=Party Type^REF=PartyType^';
8.820 +COMMENT ON COLUMN &VIEW_PAYER_QRY..party_type_db
8.821 + IS 'FLAGS=A----^DATATYPE=STRING(20)^PROMPT=Party Type^';
8.822 +COMMENT ON COLUMN &VIEW_PAYER_QRY..name
8.823 + IS 'FLAGS=AM--L^DATATYPE=STRING(100)^PROMPT=Name^';
8.824 +COMMENT ON COLUMN &VIEW_PAYER_QRY..balance
8.825 + IS 'FLAGS=AM--L^DATATYPE=NUMBER^PROMPT=Payer Balance^';
8.826 +COMMENT ON COLUMN &VIEW_PAYER_QRY..payer_adv_inv_balance
8.827 + IS 'FLAGS=AM--L^DATATYPE=NUMBER^PROMPT=Payer Adv Inv Balance^';
8.828 +COMMENT ON COLUMN &VIEW_PAYER_QRY..other_cust_bal
8.829 + IS 'FLAGS=AM--L^DATATYPE=NUMBER^PROMPT=Other Customres Balance^';
8.830 +COMMENT ON COLUMN &VIEW_PAYER_QRY..amount_due
8.831 + IS 'FLAGS=AM--L^DATATYPE=NUMBER^PROMPT=Amount Due^';
8.832 +COMMENT ON COLUMN &VIEW_PAYER_QRY..pre_payment_balance
8.833 + IS 'FLAGS=AM--L^DATATYPE=NUMBER^PROMPT=Open Pre-Payments^';
8.834 +COMMENT ON COLUMN &VIEW_PAYER_QRY..is_note
8.835 + IS 'FLAGS=AM--L^DATATYPE=BOOLEAN^PROMPT=Notes^';
8.836 +COMMENT ON COLUMN &VIEW_PAYER_QRY..reminder_template_id
8.837 + IS 'FLAGS=AM--L^DATATYPE=STRING(20)^PROMPT=Reminder Template Id^';
8.838 +COMMENT ON COLUMN &VIEW_PAYER_QRY..reminder_template_des
8.839 + IS 'FLAGS=AM--L^DATATYPE=STRING(200)^PROMPT=Reminder Template Description^';
8.840 +COMMENT ON COLUMN &VIEW_PAYER_QRY..interest_template_id
8.841 + IS 'FLAGS=AM--L^DATATYPE=STRING(20)^PROMPT=Interest Template Id^';
8.842 +COMMENT ON COLUMN &VIEW_PAYER_QRY..interest_template_des
8.843 + IS 'FLAGS=AM--L^DATATYPE=STRING(200)^PROMPT=Interest Template Description^';
8.844 +-- Bug 69035, End
8.845 +
8.846 +PROMPT Creating &VIEW_MULTI_CUS view
8.847 +
8.848 +CREATE OR REPLACE FORCE VIEW &VIEW_MULTI_CUS AS
8.849 +SELECT c.customer_id customer_id,
8.850 + c.name name,
8.851 + c.association_no association_no,
8.852 + c.customer_id identity,
8.853 + c.party_type party_type_db,
8.854 + c.rowid objid,
8.855 + LTRIM(LPAD(TO_CHAR(c.rowversion),2000)) objversion
8.856 +FROM customer_info_tab c
8.857 +WHERE EXISTS
8.858 + (SELECT 1
8.859 + FROM identity_pay_info_tab p,
8.860 + identity_invoice_info_tab i
8.861 + WHERE p.identity = c.customer_id
8.862 + AND p.party_type = 'CUSTOMER'
8.863 + AND EXISTS
8.864 + (SELECT * FROM company_finance_auth1 a WHERE p.company = a.company)
8.865 + AND i.company = p.company
8.866 + AND i.identity = p.identity
8.867 + AND i.party_type = p.party_type)
8.868 +WITH read only;
8.869 +
8.870 +COMMENT ON TABLE &VIEW_MULTI_CUS
8.871 + IS 'LU=&LU^PROMPT=Invoice Ledger Item^MODULE=&MODULE^';
8.872 +
8.873 +COMMENT ON COLUMN &VIEW_MULTI_CUS..customer_id
8.874 + IS 'FLAGS=KMI-L^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Customer Id^';
8.875 +COMMENT ON COLUMN &VIEW_MULTI_CUS..name
8.876 + IS 'FLAGS=AMIUL^DATATYPE=STRING(100)^PROMPT=Name^';
8.877 +COMMENT ON COLUMN &VIEW_MULTI_CUS..association_no
8.878 + IS 'FLAGS=A-IUL^DATATYPE=STRING(50)^PROMPT=Association No^';
8.879 +COMMENT ON COLUMN &VIEW_MULTI_CUS..identity
8.880 + IS 'FLAGS=A-IUL^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Identity^';
8.881 +COMMENT ON COLUMN &VIEW_MULTI_CUS..party_type_db
8.882 + IS 'FLAGS=A-IUL^DATATYPE=STRING(20)^PROMPT=Party Type^';
8.883 +
8.884 +
8.885 +PROMPT Creating &VIEW_MULTI_SUP VIEW
8.886 +
8.887 +CREATE OR REPLACE FORCE VIEW &VIEW_MULTI_SUP AS
8.888 +SELECT s.supplier_id supplier_id,
8.889 + s.name name,
8.890 + s.association_no association_no,
8.891 + s.suppliers_own_id suppliers_own_id,
8.892 + s.rowid objid,
8.893 + LTRIM(LPAD(TO_CHAR(s.rowversion),2000)) objversion
8.894 +FROM supplier_info_tab s
8.895 +WHERE EXISTS
8.896 + (SELECT 1
8.897 + FROM identity_pay_info_tab p,
8.898 + identity_invoice_info_tab i
8.899 + WHERE p.identity = s.supplier_id
8.900 + AND p.party_type = 'SUPPLIER'
8.901 + AND EXISTS
8.902 + (SELECT * FROM company_finance_auth1 a WHERE p.company = a.company)
8.903 + AND i.company = p.company
8.904 + AND i.identity = p.identity
8.905 + AND i.party_type = p.party_type)
8.906 +WITH read only;
8.907 +
8.908 +COMMENT ON TABLE &VIEW_MULTI_SUP
8.909 + IS 'LU=&LU^PROMPT=Invoice Ledger Item^MODULE=&MODULE^';
8.910 +
8.911 +COMMENT ON COLUMN &VIEW_MULTI_SUP..supplier_id
8.912 + IS 'FLAGS=KMI-L^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Supplier Id^';
8.913 +COMMENT ON COLUMN &VIEW_MULTI_SUP..name
8.914 + IS 'FLAGS=AMIUL^DATATYPE=STRING(100)^PROMPT=Name^';
8.915 +COMMENT ON COLUMN &VIEW_MULTI_SUP..association_no
8.916 + IS 'FLAGS=A-IUL^DATATYPE=STRING(50)^PROMPT=Association No^';
8.917 +COMMENT ON COLUMN &VIEW_MULTI_SUP..suppliers_own_id
8.918 + IS 'FLAGS=A-IUL^DATATYPE=STRING(20)^PROMPT=Suppliers Own Id^';
8.919 +
8.920 +
8.921 +PROMPT Creating &VIEW_MULTI_ADD VIEW
8.922 +CREATE OR REPLACE FORCE VIEW &VIEW_MULTI_ADD AS
8.923 +SELECT s.supplier_id supplier_id,
8.924 + s.address_id address_id,
8.925 + s.valid_from valid_from,
8.926 + s.valid_to valid_to
8.927 +FROM supplier_info_address_tab s
8.928 +WHERE EXISTS
8.929 + (SELECT 1
8.930 + FROM identity_pay_info_tab p,
8.931 + identity_invoice_info_tab i
8.932 + WHERE p.identity = s.supplier_id
8.933 + AND p.party_type = 'SUPPLIER'
8.934 + AND EXISTS
8.935 + (SELECT * FROM company_finance_auth1 a WHERE p.company = a.company)
8.936 + AND i.company = p.company
8.937 + AND i.identity = p.identity
8.938 + AND i.party_type = p.party_type)
8.939 +WITH read only;
8.940 +
8.941 +COMMENT ON TABLE &VIEW_MULTI_ADD
8.942 + IS 'LU=&LU^PROMPT=Invoice Ledger Item^MODULE=&MODULE^';
8.943 +
8.944 +COMMENT ON COLUMN &VIEW_MULTI_ADD..supplier_id
8.945 + IS 'FLAGS=PMI-L^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Supplier Id^';
8.946 +COMMENT ON COLUMN &VIEW_MULTI_ADD..address_id
8.947 + IS 'FLAGS=KMI-L^DATATYPE=STRING(50)/UPPERCASE^PROMPT=Address Id^';
8.948 +COMMENT ON COLUMN &VIEW_MULTI_ADD..valid_from
8.949 + IS 'FLAGS=A-IUL^DATATYPE=DATE/DATE^PROMPT=Valid From^';
8.950 +COMMENT ON COLUMN &VIEW_MULTI_ADD..valid_to
8.951 + IS 'FLAGS=A-IUL^DATATYPE=DATE/DATE^PROMPT=Valid To^';
8.952 +
8.953 +-----------------------------------------------------------------------------
8.954 +-------------------- PACKAGES FOR METHODS -----------------------------------
8.955 +-----------------------------------------------------------------------------
8.956 +
8.957 +PROMPT Creating &PKG implementation
8.958 +
8.959 +CREATE OR REPLACE PACKAGE BODY &PKG IS
8.960 +
8.961 +-----------------------------------------------------------------------------
8.962 +-------------------- LU SPECIFIC IMPLEMENTATION METHOD DECLARATIONS ---------
8.963 +-----------------------------------------------------------------------------
8.964 +PROCEDURE Save_Identity_Notes___ (
8.965 + attr_ IN VARCHAR2,
8.966 + newrec_ IN &TABLE%ROWTYPE );
8.967 +
8.968 +FUNCTION Get_Next_Format_No___ (
8.969 + company_ IN VARCHAR2 ) RETURN NUMBER;
8.970 +
8.971 +PROCEDURE Check_Cascade___ (
8.972 + company_ IN VARCHAR2,
8.973 + identity_ IN VARCHAR2,
8.974 + party_type_db_ IN VARCHAR2 );
8.975 +
8.976 +PROCEDURE Import___ (
8.977 + crecomp_rec_ IN ENTERP_COMP_CONNECT_V160_API.Crecomp_Lu_Public_Rec );
8.978 +
8.979 +PROCEDURE Copy___ (
8.980 + crecomp_rec_ IN ENTERP_COMP_CONNECT_V160_API.Crecomp_Lu_Public_Rec );
8.981 +
8.982 +PROCEDURE Export___ (
8.983 + crecomp_rec_ IN ENTERP_COMP_CONNECT_V160_API.Crecomp_Lu_Public_Rec );
8.984 +
8.985 +PROCEDURE User_Allowed___(
8.986 + company_ IN VARCHAR2);
8.987 +
8.988 +
8.989 +
8.990 +
8.991 +
8.992 +-----------------------------------------------------------------------------
8.993 +-------------------- IMPLEMENTATION BASE METHODS ----------------------------
8.994 +-----------------------------------------------------------------------------
8.995 +-- Lock_By_Id___
8.996 +-- Client-support to lock a specific instance of the logical unit.
8.997 +--
8.998 +-- Lock_By_Keys___
8.999 +-- Server support to lock a specific instance of the logical unit.
8.1000 +--
8.1001 +-- Get_Object_By_Id___
8.1002 +-- Get LU-record from the database with a specified object identity.
8.1003 +--
8.1004 +-- Get_Object_By_Keys___
8.1005 +-- Get LU-record from the database with specified key columns.
8.1006 +--
8.1007 +-- Check_Exist___
8.1008 +-- Check if a specific LU-instance already exist in the database.
8.1009 +--
8.1010 +-- Get_Id_Version_By_Keys___
8.1011 +-- Get the current OBJID and OBJVERSION for a specific LU-instance.
8.1012 +-----------------------------------------------------------------------------
8.1013 +
8.1014 +FUNCTION Lock_By_Id___ (
8.1015 + objid_ IN VARCHAR2,
8.1016 + objversion_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
8.1017 +IS
8.1018 + row_changed EXCEPTION;
8.1019 + row_deleted EXCEPTION;
8.1020 + row_locked EXCEPTION;
8.1021 + PRAGMA exception_init(row_locked, -0054);
8.1022 + rec_ &TABLE%ROWTYPE;
8.1023 + dummy_ NUMBER;
8.1024 + CURSOR lock_control IS
8.1025 + SELECT *
8.1026 + FROM &TABLE
8.1027 + WHERE &OBJID = objid_
8.1028 + AND &OBJVERSION = objversion_
8.1029 + FOR UPDATE NOWAIT;
8.1030 + CURSOR exist_control IS
8.1031 + SELECT 1
8.1032 + FROM &TABLE
8.1033 + WHERE &OBJID = objid_;
8.1034 +BEGIN
8.1035 + OPEN lock_control;
8.1036 + FETCH lock_control INTO rec_;
8.1037 + IF (lock_control%FOUND) THEN
8.1038 + CLOSE lock_control;
8.1039 + RETURN rec_;
8.1040 + END IF;
8.1041 + CLOSE lock_control;
8.1042 + OPEN exist_control;
8.1043 + FETCH exist_control INTO dummy_;
8.1044 + IF (exist_control%FOUND) THEN
8.1045 + CLOSE exist_control;
8.1046 + RAISE row_changed;
8.1047 + ELSE
8.1048 + CLOSE exist_control;
8.1049 + RAISE row_deleted;
8.1050 + END IF;
8.1051 +EXCEPTION
8.1052 + WHEN row_locked THEN
8.1053 + Error_SYS.Record_Locked(lu_name_);
8.1054 + WHEN row_changed THEN
8.1055 + Error_SYS.Record_Modified(lu_name_);
8.1056 + WHEN row_deleted THEN
8.1057 + Error_SYS.Record_Removed(lu_name_);
8.1058 +END Lock_By_Id___;
8.1059 +
8.1060 +FUNCTION Lock_By_Keys___ (
8.1061 + company_ IN VARCHAR2,
8.1062 + identity_ IN VARCHAR2,
8.1063 + party_type_db_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
8.1064 +IS
8.1065 + row_deleted EXCEPTION;
8.1066 + rec_ &TABLE%ROWTYPE;
8.1067 + CURSOR lock_control IS
8.1068 + SELECT *
8.1069 + FROM &TABLE
8.1070 + WHERE company = company_
8.1071 + AND identity = identity_
8.1072 + AND party_type = party_type_db_
8.1073 + FOR UPDATE;
8.1074 +BEGIN
8.1075 + OPEN lock_control;
8.1076 + FETCH lock_control INTO rec_;
8.1077 + IF (lock_control%FOUND) THEN
8.1078 + CLOSE lock_control;
8.1079 + RETURN rec_;
8.1080 + ELSE
8.1081 + CLOSE lock_control;
8.1082 + RAISE row_deleted;
8.1083 + END IF;
8.1084 +EXCEPTION
8.1085 + WHEN row_deleted THEN
8.1086 + Error_SYS.Record_Removed(lu_name_);
8.1087 +END Lock_By_Keys___;
8.1088 +
8.1089 +FUNCTION Get_Object_By_Id___ (
8.1090 + objid_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
8.1091 +IS
8.1092 + lu_rec_ &TABLE%ROWTYPE;
8.1093 + CURSOR getrec IS
8.1094 + SELECT *
8.1095 + FROM &TABLE
8.1096 + WHERE &OBJID = objid_;
8.1097 +BEGIN
8.1098 + OPEN getrec;
8.1099 + FETCH getrec INTO lu_rec_;
8.1100 + IF (getrec%NOTFOUND) THEN
8.1101 + CLOSE getrec;
8.1102 + Error_SYS.Record_Removed(lu_name_);
8.1103 + END IF;
8.1104 + CLOSE getrec;
8.1105 + RETURN(lu_rec_);
8.1106 +END Get_Object_By_Id___;
8.1107 +
8.1108 +FUNCTION Get_Object_By_Keys___ (
8.1109 + company_ IN VARCHAR2,
8.1110 + identity_ IN VARCHAR2,
8.1111 + party_type_db_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
8.1112 +IS
8.1113 + lu_rec_ &TABLE%ROWTYPE;
8.1114 + CURSOR getrec IS
8.1115 + SELECT *
8.1116 + FROM &TABLE
8.1117 + WHERE company = company_
8.1118 + AND identity = identity_
8.1119 + AND party_type = party_type_db_;
8.1120 +BEGIN
8.1121 + OPEN getrec;
8.1122 + FETCH getrec INTO lu_rec_;
8.1123 + CLOSE getrec;
8.1124 + RETURN(lu_rec_);
8.1125 +END Get_Object_By_Keys___;
8.1126 +
8.1127 +FUNCTION Check_Exist___ (
8.1128 + company_ IN VARCHAR2,
8.1129 + identity_ IN VARCHAR2,
8.1130 + party_type_db_ IN VARCHAR2 ) RETURN BOOLEAN
8.1131 +IS
8.1132 + dummy_ NUMBER;
8.1133 + CURSOR exist_control IS
8.1134 + SELECT 1
8.1135 + FROM &TABLE
8.1136 + WHERE company = company_
8.1137 + AND identity = identity_
8.1138 + AND party_type = party_type_db_;
8.1139 +BEGIN
8.1140 + OPEN exist_control;
8.1141 + FETCH exist_control INTO dummy_;
8.1142 + IF (exist_control%FOUND) THEN
8.1143 + CLOSE exist_control;
8.1144 + RETURN(TRUE);
8.1145 + END IF;
8.1146 + CLOSE exist_control;
8.1147 + RETURN(FALSE);
8.1148 +END Check_Exist___;
8.1149 +
8.1150 +PROCEDURE Get_Id_Version_By_Keys___ (
8.1151 + objid_ IN OUT VARCHAR2,
8.1152 + objversion_ IN OUT VARCHAR2,
8.1153 + company_ IN VARCHAR2,
8.1154 + identity_ IN VARCHAR2,
8.1155 + party_type_db_ IN VARCHAR2)
8.1156 +IS
8.1157 + CURSOR get_version IS
8.1158 + SELECT &OBJID, &OBJVERSION
8.1159 + FROM &TABLE
8.1160 + WHERE company = company_
8.1161 + AND identity = identity_
8.1162 + AND party_type = party_type_db_;
8.1163 +BEGIN
8.1164 + OPEN get_version;
8.1165 + FETCH get_version INTO objid_, objversion_;
8.1166 + CLOSE get_version;
8.1167 +END Get_Id_Version_By_Keys___;
8.1168 +
8.1169 +-----------------------------------------------------------------------------
8.1170 +-------------------- IMPLEMENTATION BASE METHODS FOR INSERT -----------------
8.1171 +-----------------------------------------------------------------------------
8.1172 +-- Prepare_Insert___
8.1173 +-- Set all default values for a new instance (ON-NEW-RECORD) of this
8.1174 +-- logical unit by calling procedure Add_Attr.
8.1175 +--
8.1176 +-- Unpack_Check_Insert___
8.1177 +-- Unpack the attribute list, check all attributes from the client
8.1178 +-- and generate all default values before creation of the new object.
8.1179 +--
8.1180 +-- Insert___
8.1181 +-- Insert a new LU-instance into the database and return the values
8.1182 +-- for OBJID and OBJVERSION.
8.1183 +-----------------------------------------------------------------------------
8.1184 +
8.1185 +PROCEDURE Prepare_Insert___ (
8.1186 + attr_ IN OUT VARCHAR2 )
8.1187 +IS
8.1188 + company_ &TABLE..company%TYPE;
8.1189 + identity_ &TABLE..identity%TYPE;
8.1190 + party_type_ &VIEW..party_type%TYPE;
8.1191 + template_id_ &VIEW..template_id%TYPE;
8.1192 +BEGIN
8.1193 +
8.1194 + company_ := Client_SYS.Get_Item_Value('COMPANY',attr_);
8.1195 + identity_ := Client_SYS.Get_Item_Value('IDENTITY',attr_);
8.1196 + party_type_ := Client_SYS.Get_Item_Value('PARTY_TYPE',attr_);
8.1197 + template_id_ := Confirmation_Stmnt_Templ_API.Get_Default_Template(company_);
8.1198 +
8.1199 + Client_SYS.Clear_Attr(attr_);
8.1200 +
8.1201 +-- Default value 'No Advice'
8.1202 + Client_SYS.Add_To_Attr('PAYMENT_ADVICE', PAYMENT_ADVICE_API.DECODE('1'),attr_);
8.1203 +
8.1204 + IF (party_type_ = Party_Type_API.Decode('CUSTOMER')) THEN
8.1205 + Client_SYS.Add_To_Attr('REMINDER_TEMPLATE', Reminder_Template_API.Get_Default_Template(company_), attr_);
8.1206 + Client_SYS.Add_To_Attr('SEND_REMINDER_TO_PAYER', 'FALSE', attr_);
8.1207 + Client_SYS.Add_To_Attr('SEND_INTEREST_INV_TO_PAYER', 'FALSE', attr_);
8.1208 + Client_SYS.Add_To_Attr('PAYMENT_RECEIPT_TYPE', Payment_Receipt_Type_API.Decode('NO_RECEIPT'), attr_);
8.1209 + ELSIF (party_type_ = Party_Type_API.Decode('SUPPLIER') ) THEN
8.1210 + Client_SYS.Add_To_Attr('BLOCKED_FOR_PAYMENT', 'FALSE', attr_);
8.1211 + Client_SYS.Add_To_Attr('CHECK_RECIPIENT', Check_Recipient_API.Decode('PAYEE'), attr_);
8.1212 + END IF;
8.1213 + Client_SYS.Add_To_Attr('INTEREST_TEMPLATE', Interest_Template_API.Get_Default_Template(company_), attr_);
8.1214 + Client_SYS.Add_To_Attr('NETTING_ALLOWED', 'FALSE', attr_);
8.1215 + Client_SYS.Add_To_Attr('TEMPLATE_ID', template_id_, attr_);
8.1216 + Client_SYS.Add_To_Attr('SEND_STATEMENT_OF_ACC_TO_PAYER', 'FALSE', attr_);
8.1217 +END Prepare_Insert___;
8.1218 +
8.1219 +
8.1220 +PROCEDURE Unpack_Check_Insert___ (
8.1221 + attr_ IN OUT VARCHAR2,
8.1222 + newrec_ IN OUT &TABLE%ROWTYPE )
8.1223 +IS
8.1224 + ptr_ NUMBER;
8.1225 + name_ VARCHAR2(30);
8.1226 + value_ VARCHAR2(2000);
8.1227 +BEGIN
8.1228 + ptr_ := NULL;
8.1229 + WHILE (Client_SYS.Get_Next_From_Attr(attr_, ptr_, name_, value_)) LOOP
8.1230 + IF (name_ = 'COMPANY') THEN
8.1231 + newrec_.company := value_;
8.1232 + Company_API.Exist(newrec_.company);
8.1233 + User_Allowed___(newrec_.company);
8.1234 + ELSIF (name_ = 'IDENTITY') THEN
8.1235 + newrec_.identity := value_;
8.1236 + ELSIF (name_ = 'PARTY_TYPE') THEN
8.1237 + newrec_.party_type := Party_Type_API.Encode(value_);
8.1238 + Payment_Library_API.Exist_In_Enterp(newrec_.company, newrec_.identity, value_);
8.1239 + IF (newrec_.party_type <> 'COMPANY') THEN
8.1240 + Identity_Invoice_Info_API.Exist(newrec_.company, newrec_.identity, value_);
8.1241 + END IF;
8.1242 + ELSIF (name_ = 'PARTY_TYPE_DB') THEN
8.1243 + newrec_.party_type := value_;
8.1244 + Payment_Library_API.Exist_In_Enterp(newrec_.company, newrec_.identity, Party_Type_API.Decode(newrec_.party_type));
8.1245 + IF (newrec_.party_type <> Party_Type_API.Decode('COMPANY')) THEN
8.1246 + Identity_Invoice_Info_API.Exist_Db(newrec_.company, newrec_.identity, value_);
8.1247 + END IF;
8.1248 + ELSIF (name_ = 'PRIORITY') THEN
8.1249 + newrec_.priority := Client_SYS.Attr_Value_To_Number(value_);
8.1250 + ELSIF (name_ = 'BLOCKED_FOR_PAYMENT') THEN
8.1251 + newrec_.blocked_for_payment := value_;
8.1252 + IF (value_ IS NOT NULL AND newrec_.blocked_for_payment NOT IN ('TRUE', 'FALSE')) THEN
8.1253 + RAISE value_error;
8.1254 + END IF;
8.1255 + ELSIF (name_ = 'OTHER_PAYEE_IDENTITY') THEN
8.1256 + newrec_.other_payee_identity := value_;
8.1257 + IF (value_ IS NOT NULL) THEN
8.1258 + Identity_Pay_Info_API.Exist(newrec_.company, newrec_.other_payee_identity, Party_Type_API.Decode(newrec_.party_type));
8.1259 + END IF;
8.1260 + ELSIF (name_ = 'INTEREST_TEMPLATE') THEN
8.1261 + newrec_.interest_template := value_;
8.1262 + IF (value_ IS NOT NULL) THEN
8.1263 + Interest_Template_API.Exist(newrec_.company, newrec_.interest_template);
8.1264 + END IF;
8.1265 + ELSIF (name_ = 'REMINDER_TEMPLATE') THEN
8.1266 + newrec_.reminder_template := value_;
8.1267 + IF (value_ IS NOT NULL) THEN
8.1268 + Reminder_Template_API.Exist(newrec_.company, newrec_.reminder_template);
8.1269 + END IF;
8.1270 + ELSIF (name_ = 'PAYMENT_DELAY') THEN
8.1271 + newrec_.payment_delay := Client_SYS.Attr_Value_To_Number(value_);
8.1272 + IF (TRUNC(newrec_.payment_delay) <> newrec_.payment_delay) THEN
8.1273 + Error_SYS.Record_General(lu_name_, 'NOTWHOLENUM: A whole number must be specified for the payment delay.');
8.1274 + END IF;
8.1275 + ELSIF (name_ = 'AMOUNT_TOLERANCE') THEN
8.1276 + newrec_.amount_tolerance := Client_SYS.Attr_Value_To_Number(value_);
8.1277 + ELSIF (name_ = 'PERCENT_TOLERANCE') THEN
8.1278 + newrec_.percent_tolerance := Client_SYS.Attr_Value_To_Number(value_);
8.1279 + ELSIF (name_ = 'DISC_DAYS_TOLERANCE') THEN
8.1280 + newrec_.disc_days_tolerance := Client_SYS.Attr_Value_To_Number(value_);
8.1281 + ELSIF (name_ = 'NETTING_ALLOWED') THEN
8.1282 + newrec_.netting_allowed := value_;
8.1283 + IF (newrec_.netting_allowed NOT IN ('TRUE', 'FALSE')) THEN
8.1284 + RAISE value_error;
8.1285 + END IF;
8.1286 + ELSIF (name_ = 'FORMAT_NO') THEN
8.1287 + newrec_.format_no := Client_SYS.Attr_Value_To_Number(value_);
8.1288 + ELSIF (name_ = 'PAYMENT_ADVICE') THEN
8.1289 + newrec_.payment_advice := Payment_Advice_API.Encode(value_);
8.1290 + IF (value_ IS NOT NULL) THEN
8.1291 + Payment_Advice_API.Exist(value_);
8.1292 + END IF;
8.1293 + ELSIF (name_ = 'PAYMENT_ADVICE_DB') THEN
8.1294 + newrec_.payment_advice := value_;
8.1295 + IF (value_ IS NOT NULL) THEN
8.1296 + Payment_Advice_API.Exist_Db(value_);
8.1297 + END IF;
8.1298 + ELSIF (name_ = 'DEDUCTION_GROUP') THEN
8.1299 + newrec_.deduction_group := value_;
8.1300 + IF (value_ IS NOT NULL) THEN
8.1301 + Deduction_Group_API.Exist(newrec_.company, newrec_.deduction_group);
8.1302 + END IF;
8.1303 + ELSIF (name_ = 'CORPORATION_ID') THEN
8.1304 + newrec_.corporation_id := value_;
8.1305 + ELSIF (name_ = 'MEMBER_ID') THEN
8.1306 + newrec_.member_id := value_;
8.1307 + ELSIF (name_ = 'SEND_REMINDER_TO_PAYER') THEN
8.1308 + newrec_.send_reminder_to_payer := value_;
8.1309 + ELSIF (name_ = 'SEND_INTEREST_INV_TO_PAYER') THEN
8.1310 + newrec_.send_interest_inv_to_payer := value_;
8.1311 + ELSIF (name_ = 'RULE_ID') THEN
8.1312 + newrec_.rule_id := value_;
8.1313 + IF (value_ IS NOT NULL) THEN
8.1314 + Pay_Method_Rule_API.Exist(newrec_.company, newrec_.rule_id);
8.1315 + END IF;
8.1316 + ELSIF (name_ = 'PAYMENT_RECEIPT_TYPE') THEN
8.1317 + newrec_.payment_receipt_type := Payment_Receipt_Type_API.Encode(value_);
8.1318 + IF (value_ IS NOT NULL) THEN
8.1319 + Payment_Receipt_Type_API.Exist(value_);
8.1320 + END IF;
8.1321 + ELSIF (name_ = 'PAYMENT_RECEIPT_TYPE_DB') THEN
8.1322 + newrec_.payment_receipt_type := value_;
8.1323 + IF (value_ IS NOT NULL) THEN
8.1324 + Payment_Receipt_Type_API.Exist_Db(value_);
8.1325 + END IF;
8.1326 + ELSIF (name_ = 'TEMPLATE_ID') THEN
8.1327 + newrec_.template_id := value_;
8.1328 + IF (value_ IS NOT NULL) THEN
8.1329 + Confirmation_Stmnt_Templ_API.Exist(newrec_.company, newrec_.template_id);
8.1330 + END IF;
8.1331 + ELSIF (name_ = 'CHECK_RECIPIENT') THEN
8.1332 + newrec_.check_recipient := Check_Recipient_API.Encode(value_);
8.1333 + IF (value_ IS NOT NULL) THEN
8.1334 + Check_Recipient_API.Exist(value_);
8.1335 + END IF;
8.1336 + ELSIF (name_ = 'CHECK_RECIPIENT_DB') THEN
8.1337 + newrec_.check_recipient := value_;
8.1338 + IF (value_ IS NOT NULL) THEN
8.1339 + Check_Recipient_API.Exist_Db(value_);
8.1340 + END IF;
8.1341 + ELSIF (name_ = 'SEND_STATEMENT_OF_ACC_TO_PAYER') THEN
8.1342 + newrec_.send_statement_of_acc_to_payer := value_;
8.1343 + ELSE
8.1344 + Error_SYS.Item_Not_Exist(lu_name_, name_, value_);
8.1345 + END IF;
8.1346 + END LOOP;
8.1347 +
8.1348 +
8.1349 + IF (newrec_.amount_tolerance < 0) OR (newrec_.percent_tolerance < 0) OR (newrec_.disc_days_tolerance < 0) THEN
8.1350 + Error_SYS.Appl_General(lu_name_, 'NEGTOLERANCE: Tolerance should be positive value.');
8.1351 + END IF;
8.1352 +
8.1353 +
8.1354 + Client_SYS.Clear_Attr(attr_);
8.1355 +
8.1356 + Error_SYS.Check_Not_Null(lu_name_, 'COMPANY', newrec_.company);
8.1357 + Error_SYS.Check_Not_Null(lu_name_, 'IDENTITY', newrec_.identity);
8.1358 + Error_SYS.Check_Not_Null(lu_name_, 'PARTY_TYPE', newrec_.party_type);
8.1359 + Error_SYS.Check_Not_Null(lu_name_, 'NETTING_ALLOWED', newrec_.netting_allowed);
8.1360 +
8.1361 + IF (newrec_.interest_template IS NULL) THEN
8.1362 + newrec_.interest_template := Interest_Template_API.Get_Default_Template(newrec_.company);
8.1363 + END IF;
8.1364 +
8.1365 + IF (newrec_.party_type = 'SUPPLIER') THEN
8.1366 + Error_SYS.Check_Not_Null(lu_name_, 'PRIORITY', newrec_.priority);
8.1367 + Error_SYS.Check_Not_Null(lu_name_, 'BLOCKED_FOR_PAYMENT', newrec_.blocked_for_payment);
8.1368 + Error_SYS.Check_Not_Null(lu_name_, 'CHECK_RECIPIENT', newrec_.check_recipient);
8.1369 + END IF;
8.1370 + IF (newrec_.party_type = 'CUSTOMER') THEN
8.1371 + Error_SYS.Check_Not_Null(lu_name_, 'INTEREST_TEMPLATE', newrec_.interest_template);
8.1372 + Error_SYS.Check_Not_Null(lu_name_, 'REMINDER_TEMPLATE', newrec_.reminder_template);
8.1373 + Error_SYS.Check_Not_Null(lu_name_, 'PAYMENT_RECEIPT_TYPE', newrec_.payment_receipt_type);
8.1374 + IF Company_Invoice_Info_API.Get_Use_Tax_Invoice(newrec_.company)='TRUE' AND newrec_.payment_receipt_type != 'AT_MATCHING' THEN
8.1375 + Error_SYS.Record_General(lu_name_, 'WRONGPAYRECTYPE: Only Receipt At Matching is allowed when Tax Invoice for company is used.');
8.1376 + END IF;
8.1377 + END IF;
8.1378 +
8.1379 + Error_SYS.Check_Not_Null(lu_name_, 'IDENTITY', newrec_.identity);
8.1380 +
8.1381 + IF (newrec_.identity = newrec_.other_payee_identity) THEN
8.1382 + Error_SYS.Record_General(lu_name_, 'SAMEPARTY: Other Payee cannot refer to itself.');
8.1383 + END IF;
8.1384 +
8.1385 +EXCEPTION
8.1386 + WHEN value_error THEN
8.1387 + Error_SYS.Item_Format(lu_name_, name_, value_);
8.1388 +END Unpack_Check_Insert___;
8.1389 +
8.1390 +
8.1391 +PROCEDURE Insert___ (
8.1392 + objid_ OUT VARCHAR2,
8.1393 + objversion_ OUT VARCHAR2,
8.1394 + newrec_ IN OUT &TABLE%ROWTYPE,
8.1395 + attr_ IN OUT VARCHAR2 )
8.1396 +IS
8.1397 + CURSOR get_objid IS
8.1398 + SELECT &OBJID
8.1399 + FROM &TABLE
8.1400 + WHERE company = newrec_.company
8.1401 + AND identity = newrec_.identity
8.1402 + AND party_type = newrec_.party_type;
8.1403 +BEGIN
8.1404 + newrec_.format_no := Get_Next_Format_No___ (newrec_.company);
8.1405 + newrec_.rowversion := 1;
8.1406 + objversion_ := to_char(newrec_.rowversion);
8.1407 + INSERT
8.1408 + INTO identity_pay_info_tab (
8.1409 + company,
8.1410 + identity,
8.1411 + party_type,
8.1412 + priority,
8.1413 + blocked_for_payment,
8.1414 + other_payee_identity,
8.1415 + interest_template,
8.1416 + reminder_template,
8.1417 + payment_delay,
8.1418 + amount_tolerance,
8.1419 + percent_tolerance,
8.1420 + disc_days_tolerance,
8.1421 + netting_allowed,
8.1422 + format_no,
8.1423 + payment_advice,
8.1424 + deduction_group,
8.1425 + corporation_id,
8.1426 + member_id,
8.1427 + send_reminder_to_payer,
8.1428 + send_interest_inv_to_payer,
8.1429 + rule_id,
8.1430 + next_payment_matching_id,
8.1431 + payment_receipt_type,
8.1432 + template_id,
8.1433 + check_recipient,
8.1434 + send_statement_of_acc_to_payer,
8.1435 + rowversion)
8.1436 + VALUES (
8.1437 + newrec_.company,
8.1438 + newrec_.identity,
8.1439 + newrec_.party_type,
8.1440 + newrec_.priority,
8.1441 + newrec_.blocked_for_payment,
8.1442 + newrec_.other_payee_identity,
8.1443 + newrec_.interest_template,
8.1444 + newrec_.reminder_template,
8.1445 + newrec_.payment_delay,
8.1446 + newrec_.amount_tolerance,
8.1447 + newrec_.percent_tolerance,
8.1448 + newrec_.disc_days_tolerance,
8.1449 + newrec_.netting_allowed,
8.1450 + newrec_.format_no,
8.1451 + newrec_.payment_advice,
8.1452 + newrec_.deduction_group,
8.1453 + newrec_.corporation_id,
8.1454 + newrec_.member_id,
8.1455 + newrec_.send_reminder_to_payer,
8.1456 + newrec_.send_interest_inv_to_payer,
8.1457 + newrec_.rule_id,
8.1458 + 0,
8.1459 + newrec_.payment_receipt_type,
8.1460 + newrec_.template_id,
8.1461 + newrec_.check_recipient,
8.1462 + newrec_.send_statement_of_acc_to_payer,
8.1463 + newrec_.rowversion)
8.1464 + RETURNING &OBJID INTO objid_;
8.1465 +EXCEPTION
8.1466 + WHEN dup_val_on_index THEN
8.1467 + Error_SYS.Record_General(lu_name_, 'PARTYTYPEIDNOTEXIST: :P1 already exists in the Payment module.',
8.1468 + Party_Type_API.Decode(newrec_.party_type));
8.1469 +END Insert___;
8.1470 +
8.1471 +-----------------------------------------------------------------------------
8.1472 +-------------------- IMPLEMENTATION BASE METHODS FOR UPDATE -----------------
8.1473 +-----------------------------------------------------------------------------
8.1474 +-- Unpack_Check_Update___
8.1475 +-- Unpack the attribute list, check all attributes from the client
8.1476 +-- and generate all default values before modifying the object.
8.1477 +--
8.1478 +-- Update___
8.1479 +-- Update an existing LU-instance in the database and return the
8.1480 +-- the new OBJVERSION.
8.1481 +-----------------------------------------------------------------------------
8.1482 +
8.1483 +PROCEDURE Unpack_Check_Update___ (
8.1484 + attr_ IN OUT VARCHAR2,
8.1485 + newrec_ IN OUT &TABLE%ROWTYPE,
8.1486 + objid_ IN VARCHAR2 )
8.1487 +IS
8.1488 + ptr_ NUMBER;
8.1489 + name_ VARCHAR2(30);
8.1490 + value_ VARCHAR2(2000);
8.1491 +BEGIN
8.1492 + ptr_ := NULL;
8.1493 + WHILE (Client_SYS.Get_Next_From_Attr(attr_, ptr_, name_, value_)) LOOP
8.1494 + IF (name_ = 'COMPANY') THEN
8.1495 + Error_SYS.Item_Update(lu_name_, 'COMPANY');
8.1496 + ELSIF (name_ = 'IDENTITY') THEN
8.1497 + Error_SYS.Item_Update(lu_name_, 'IDENTITY');
8.1498 + ELSIF (name_ = 'PARTY_TYPE') THEN
8.1499 + Error_SYS.Item_Update(lu_name_, 'PARTY_TYPE');
8.1500 + ELSIF (name_ = 'PARTY_TYPE_DB') THEN
8.1501 + Error_SYS.Item_Update(lu_name_, 'PARTY_TYPE');
8.1502 + ELSIF (name_ = 'PRIORITY') THEN
8.1503 + newrec_.priority := Client_SYS.Attr_Value_To_Number(value_);
8.1504 + ELSIF (name_ = 'BLOCKED_FOR_PAYMENT') THEN
8.1505 + newrec_.blocked_for_payment := value_;
8.1506 + IF (value_ IS NOT NULL AND newrec_.blocked_for_payment NOT IN ('TRUE', 'FALSE')) THEN
8.1507 + RAISE value_error;
8.1508 + END IF;
8.1509 + ELSIF (name_ = 'OTHER_PAYEE_IDENTITY') THEN
8.1510 + newrec_.other_payee_identity := value_;
8.1511 + IF (value_ IS NOT NULL) THEN
8.1512 + Identity_Pay_Info_API.Exist(newrec_.company, newrec_.other_payee_identity ,Party_Type_API.Decode(newrec_.party_type));
8.1513 + END IF;
8.1514 + ELSIF (name_ = 'INTEREST_TEMPLATE') THEN
8.1515 + newrec_.interest_template := value_;
8.1516 + IF (value_ IS NOT NULL) THEN
8.1517 + Interest_Template_API.Exist(newrec_.company, newrec_.interest_template);
8.1518 + END IF;
8.1519 + ELSIF (name_ = 'REMINDER_TEMPLATE') THEN
8.1520 + newrec_.reminder_template := value_;
8.1521 + IF (value_ IS NOT NULL) THEN
8.1522 + Reminder_Template_API.Exist(newrec_.company, newrec_.reminder_template);
8.1523 + END IF;
8.1524 + ELSIF (name_ = 'PAYMENT_DELAY') THEN
8.1525 + newrec_.payment_delay := Client_SYS.Attr_Value_To_Number(value_);
8.1526 + IF (TRUNC(newrec_.payment_delay) <> newrec_.payment_delay) THEN
8.1527 + Error_SYS.Record_General(lu_name_, 'NOTWHOLENUM: A whole number must be specified for the payment delay.');
8.1528 + END IF;
8.1529 + ELSIF (name_ = 'AMOUNT_TOLERANCE') THEN
8.1530 + newrec_.amount_tolerance := Client_SYS.Attr_Value_To_Number(value_);
8.1531 + ELSIF (name_ = 'PERCENT_TOLERANCE') THEN
8.1532 + newrec_.percent_tolerance := Client_SYS.Attr_Value_To_Number(value_);
8.1533 + ELSIF (name_ = 'DISC_DAYS_TOLERANCE') THEN
8.1534 + newrec_.disc_days_tolerance := Client_SYS.Attr_Value_To_Number(value_);
8.1535 + ELSIF (name_ = 'NETTING_ALLOWED') THEN
8.1536 + newrec_.netting_allowed := value_;
8.1537 + IF (newrec_.netting_allowed NOT IN ('TRUE', 'FALSE')) THEN
8.1538 + RAISE value_error;
8.1539 + END IF;
8.1540 + ELSIF (name_ = 'FORMAT_NO') THEN
8.1541 + Error_SYS.Item_Update(lu_name_, 'FORMAT_NO');
8.1542 + ELSIF (name_ = 'PAYMENT_ADVICE') THEN
8.1543 + newrec_.payment_advice := Payment_Advice_API.Encode(value_);
8.1544 + IF (value_ IS NOT NULL) THEN
8.1545 + Payment_Advice_API.Exist(value_);
8.1546 + END IF;
8.1547 + ELSIF (name_ = 'PAYMENT_ADVICE_DB') THEN
8.1548 + newrec_.payment_advice := value_;
8.1549 + IF (value_ IS NOT NULL) THEN
8.1550 + Payment_Advice_API.Exist_Db(value_);
8.1551 + END IF;
8.1552 + ELSIF (name_ = 'DEDUCTION_GROUP') THEN
8.1553 + newrec_.deduction_group := value_;
8.1554 + IF (value_ IS NOT NULL) THEN
8.1555 + Deduction_Group_API.Exist(newrec_.company, newrec_.deduction_group);
8.1556 + END IF;
8.1557 + ELSIF (name_ = 'CORPORATION_ID') THEN
8.1558 + newrec_.corporation_id := value_;
8.1559 + ELSIF (name_ = 'MEMBER_ID') THEN
8.1560 + newrec_.member_id := value_;
8.1561 + ELSIF (name_ = 'SEND_REMINDER_TO_PAYER') THEN
8.1562 + newrec_.send_reminder_to_payer := value_;
8.1563 + ELSIF (name_ = 'SEND_INTEREST_INV_TO_PAYER') THEN
8.1564 + newrec_.send_interest_inv_to_payer := value_;
8.1565 + ELSIF (name_ = 'NOTE') THEN
8.1566 + NULL;
8.1567 + ELSIF (name_ = 'NOTE_UPDATE') THEN
8.1568 + NULL;
8.1569 + ELSIF (name_ = 'RULE_ID') THEN
8.1570 + newrec_.rule_id := value_;
8.1571 + IF (value_ IS NOT NULL) THEN
8.1572 + Pay_Method_Rule_API.Exist(newrec_.company, newrec_.rule_id);
8.1573 + END IF;
8.1574 + ELSIF (name_ = 'PAYMENT_RECEIPT_TYPE') THEN
8.1575 + newrec_.payment_receipt_type := Payment_Receipt_Type_API.Encode(value_);
8.1576 + IF (value_ IS NOT NULL) THEN
8.1577 + Payment_Receipt_Type_API.Exist(value_);
8.1578 + END IF;
8.1579 + ELSIF (name_ = 'PAYMENT_RECEIPT_TYPE_DB') THEN
8.1580 + newrec_.payment_receipt_type := value_;
8.1581 + IF (value_ IS NOT NULL) THEN
8.1582 + Payment_Receipt_Type_API.Exist_Db(value_);
8.1583 + END IF;
8.1584 + ELSIF (name_ = 'TEMPLATE_ID') THEN
8.1585 + newrec_.template_id := value_;
8.1586 + IF (value_ IS NOT NULL) THEN
8.1587 + Confirmation_Stmnt_Templ_API.Exist(newrec_.company, newrec_.template_id);
8.1588 + END IF;
8.1589 + ELSIF (name_ = 'CHECK_RECIPIENT') THEN
8.1590 + newrec_.check_recipient := Check_Recipient_API.Encode(value_);
8.1591 + IF (value_ IS NOT NULL) THEN
8.1592 + Check_Recipient_API.Exist(value_);
8.1593 + END IF;
8.1594 + ELSIF (name_ = 'CHECK_RECIPIENT_DB') THEN
8.1595 + newrec_.check_recipient := value_;
8.1596 + IF (value_ IS NOT NULL) THEN
8.1597 + Check_Recipient_API.Exist_Db(value_);
8.1598 + END IF;
8.1599 + ELSIF (name_ = 'SEND_STATEMENT_OF_ACC_TO_PAYER') THEN
8.1600 + newrec_.send_statement_of_acc_to_payer := value_;
8.1601 + ELSE
8.1602 + Error_SYS.Item_Not_Exist(lu_name_, name_, value_);
8.1603 + END IF;
8.1604 + END LOOP;
8.1605 +
8.1606 +
8.1607 + IF (newrec_.amount_tolerance < 0) OR (newrec_.percent_tolerance < 0) OR (newrec_.disc_days_tolerance < 0) THEN
8.1608 + Error_SYS.Appl_General(lu_name_, 'NEGTOLERANCE: Tolerance should be positive value.');
8.1609 + END IF;
8.1610 +
8.1611 + Client_SYS.Clear_Attr(attr_);
8.1612 +
8.1613 + Error_SYS.Check_Not_Null(lu_name_, 'NETTING_ALLOWED', newrec_.netting_allowed);
8.1614 + IF (newrec_.interest_template IS NULL) THEN
8.1615 + newrec_.interest_template := Interest_Template_API.Get_Default_Template(newrec_.company);
8.1616 + END IF;
8.1617 +
8.1618 + IF (newrec_.party_type = 'SUPPLIER') THEN
8.1619 + Error_SYS.Check_Not_Null(lu_name_, 'PRIORITY', newrec_.priority);
8.1620 + Error_SYS.Check_Not_Null(lu_name_, 'BLOCKED_FOR_PAYMENT', newrec_.blocked_for_payment);
8.1621 + Error_SYS.Check_Not_Null(lu_name_, 'CHECK_RECIPIENT', newrec_.check_recipient);
8.1622 + END IF;
8.1623 + IF (newrec_.party_type = 'CUSTOMER') THEN
8.1624 + Error_SYS.Check_Not_Null(lu_name_, 'INTEREST_TEMPLATE', newrec_.interest_template);
8.1625 + Error_SYS.Check_Not_Null(lu_name_, 'REMINDER_TEMPLATE', newrec_.reminder_template);
8.1626 + Error_SYS.Check_Not_Null(lu_name_, 'PAYMENT_RECEIPT_TYPE', newrec_.payment_receipt_type);
8.1627 + IF Company_Invoice_Info_API.Get_Use_Tax_Invoice(newrec_.company)='TRUE' AND newrec_.payment_receipt_type != 'AT_MATCHING' THEN
8.1628 + Error_SYS.Record_General(lu_name_, 'WRONGPAYRECTYPE: Only Receipt At Matching is allowed when Tax Invoice for company is used.');
8.1629 + END IF;
8.1630 + END IF;
8.1631 + IF (newrec_.identity = newrec_.other_payee_identity) THEN
8.1632 + Error_SYS.Record_General(lu_name_, 'SAMEPARTY: Other Payee cannot refer to itself.');
8.1633 + END IF;
8.1634 +EXCEPTION
8.1635 + WHEN value_error THEN
8.1636 + Error_SYS.Item_Format(lu_name_, name_, value_);
8.1637 +END Unpack_Check_Update___;
8.1638 +
8.1639 +
8.1640 +PROCEDURE Update___ (
8.1641 + objid_ IN VARCHAR2,
8.1642 + oldrec_ IN &TABLE%ROWTYPE,
8.1643 + newrec_ IN OUT &TABLE%ROWTYPE,
8.1644 + attr_ IN OUT VARCHAR2,
8.1645 + objversion_ IN OUT VARCHAR2,
8.1646 + by_keys_ IN BOOLEAN DEFAULT FALSE )
8.1647 +IS
8.1648 +BEGIN
8.1649 + newrec_.rowversion := newrec_.rowversion + 1;
8.1650 + objversion_ := to_char(newrec_.rowversion);
8.1651 + IF by_keys_ THEN
8.1652 + UPDATE identity_pay_info_tab
8.1653 + SET company = newrec_.company,
8.1654 + identity = newrec_.identity,
8.1655 + party_type = newrec_.party_type,
8.1656 + priority = newrec_.priority,
8.1657 + blocked_for_payment = newrec_.blocked_for_payment,
8.1658 + other_payee_identity = newrec_.other_payee_identity,
8.1659 + interest_template = newrec_.interest_template,
8.1660 + reminder_template = newrec_.reminder_template,
8.1661 + payment_delay = newrec_.payment_delay,
8.1662 + amount_tolerance = newrec_.amount_tolerance,
8.1663 + percent_tolerance = newrec_.percent_tolerance,
8.1664 + disc_days_tolerance = newrec_.disc_days_tolerance,
8.1665 + netting_allowed = newrec_.netting_allowed,
8.1666 + format_no = newrec_.format_no,
8.1667 + payment_advice = newrec_.payment_advice,
8.1668 + deduction_group = newrec_.deduction_group,
8.1669 + corporation_id = newrec_.corporation_id,
8.1670 + member_id = newrec_.member_id,
8.1671 + send_reminder_to_payer = newrec_.send_reminder_to_payer,
8.1672 + send_interest_inv_to_payer = newrec_.send_interest_inv_to_payer,
8.1673 + rule_id = newrec_.rule_id,
8.1674 + payment_receipt_type = newrec_.payment_receipt_type,
8.1675 + template_id = newrec_.template_id,
8.1676 + check_recipient = newrec_.check_recipient,
8.1677 + send_statement_of_acc_to_payer = newrec_.send_statement_of_acc_to_payer,
8.1678 + rowversion = newrec_.rowversion
8.1679 + WHERE company = newrec_.company
8.1680 + AND identity = newrec_.identity
8.1681 + AND party_type = newrec_.party_type;
8.1682 + ELSE
8.1683 + UPDATE identity_pay_info_tab
8.1684 + SET company = newrec_.company,
8.1685 + identity = newrec_.identity,
8.1686 + party_type = newrec_.party_type,
8.1687 + priority = newrec_.priority,
8.1688 + blocked_for_payment = newrec_.blocked_for_payment,
8.1689 + other_payee_identity = newrec_.other_payee_identity,
8.1690 + interest_template = newrec_.interest_template,
8.1691 + reminder_template = newrec_.reminder_template,
8.1692 + payment_delay = newrec_.payment_delay,
8.1693 + amount_tolerance = newrec_.amount_tolerance,
8.1694 + percent_tolerance = newrec_.percent_tolerance,
8.1695 + disc_days_tolerance = newrec_.disc_days_tolerance,
8.1696 + netting_allowed = newrec_.netting_allowed,
8.1697 + format_no = newrec_.format_no,
8.1698 + payment_advice = newrec_.payment_advice,
8.1699 + deduction_group = newrec_.deduction_group,
8.1700 + corporation_id = newrec_.corporation_id,
8.1701 + member_id = newrec_.member_id,
8.1702 + send_reminder_to_payer = newrec_.send_reminder_to_payer,
8.1703 + send_interest_inv_to_payer = newrec_.send_interest_inv_to_payer,
8.1704 + rule_id = newrec_.rule_id,
8.1705 + payment_receipt_type = newrec_.payment_receipt_type,
8.1706 + template_id = newrec_.template_id,
8.1707 + check_recipient = newrec_.check_recipient,
8.1708 + send_statement_of_acc_to_payer = newrec_.send_statement_of_acc_to_payer,
8.1709 + rowversion = newrec_.rowversion
8.1710 + WHERE &OBJID = objid_;
8.1711 + END IF;
8.1712 +EXCEPTION
8.1713 + WHEN dup_val_on_index THEN
8.1714 + Error_SYS.Record_Exist(lu_name_);
8.1715 +END Update___;
8.1716 +
8.1717 +-----------------------------------------------------------------------------
8.1718 +-------------------- IMPLEMENTATION BASE METHODS FOR DELETE -----------------
8.1719 +-----------------------------------------------------------------------------
8.1720 +-- Check_Delete___
8.1721 +-- Checks whether a specific LU-record may be removed or not.
8.1722 +-- The procedure should check business rules like attribute values
8.1723 +-- as well as database constraints (defined or not).
8.1724 +--
8.1725 +-- Delete___
8.1726 +-- Deletion of the specific LU-object from the database.
8.1727 +-----------------------------------------------------------------------------
8.1728 +
8.1729 +PROCEDURE Check_Delete___ (
8.1730 + remrec_ IN &TABLE%ROWTYPE )
8.1731 +IS
8.1732 + key_ VARCHAR2(2000);
8.1733 +BEGIN
8.1734 + key_ := remrec_.company || '^' || remrec_.identity || '^' || Party_Type_API.Decode(remrec_.party_type) || '^';
8.1735 + Reference_SYS.Check_Restricted_Delete(lu_name_, key_);
8.1736 +END Check_Delete___;
8.1737 +
8.1738 +
8.1739 +PROCEDURE Delete___ (
8.1740 + objid_ IN VARCHAR2,
8.1741 + remrec_ IN &TABLE%ROWTYPE )
8.1742 +IS
8.1743 + key_ VARCHAR2(2000);
8.1744 +BEGIN
8.1745 + key_ := remrec_.company || '^' || remrec_.identity || '^' || Party_Type_API.Decode(remrec_.party_type) || '^';
8.1746 + Reference_SYS.Do_Cascade_Delete(lu_name_, key_);
8.1747 + DELETE
8.1748 + FROM identity_pay_info_tab
8.1749 + WHERE &OBJID = objid_;
8.1750 +END Delete___;
8.1751 +
8.1752 +-----------------------------------------------------------------------------
8.1753 +-------------------- PRIVATE BASE METHODS -----------------------------------
8.1754 +-----------------------------------------------------------------------------
8.1755 +-- Lock__
8.1756 +-- Client-support to lock a specific instance of the logical unit.
8.1757 +--
8.1758 +-- New__
8.1759 +-- Client-support interface to create LU instances.
8.1760 +-- action_ = 'PREPARE'
8.1761 +-- Default values and handle of information to client.
8.1762 +-- The default values are set in procedure Prepare_Insert___.
8.1763 +-- action_ = 'CHECK'
8.1764 +-- Check all attributes before creating new object and handle of
8.1765 +-- information to client. The attribute list is unpacked, checked
8.1766 +-- and prepared (defaults) in procedure Unpack_Check_Insert___.
8.1767 +-- action_ = 'DO'
8.1768 +-- Creation of new instances of the logical unit and handle of
8.1769 +-- information to client. The attribute list is unpacked, checked
8.1770 +-- and prepared (defaults) in procedure Unpack_Check_Insert___
8.1771 +-- before calling procedure Insert___.
8.1772 +--
8.1773 +-- Modify__
8.1774 +-- Client-support interface to modify attributes for LU instances.
8.1775 +-- action_ = 'CHECK'
8.1776 +-- Check all attributes before modifying an existing object and
8.1777 +-- handle of information to client. The attribute list is unpacked,
8.1778 +-- checked and prepared(defaults) in procedure Unpack_Check_Update___.
8.1779 +-- action_ = 'DO'
8.1780 +-- Modification of an existing instance of the logical unit. The
8.1781 +-- procedure unpacks the attributes, checks all values before
8.1782 +-- procedure Update___ is called.
8.1783 +--
8.1784 +-- Remove__
8.1785 +-- Client-support interface to remove LU instances.
8.1786 +-- action_ = 'CHECK'
8.1787 +-- Check whether a specific LU-instance may be removed or not.
8.1788 +-- The procedure fetches the complete record by calling procedure
8.1789 +-- Get_Object_By_Id___. Then the check is made by calling procedure
8.1790 +-- Check_Delete___.
8.1791 +-- action_ = 'DO'
8.1792 +-- Remove an existing instance of the logical unit. The procedure
8.1793 +-- fetches the complete LU-record, checks for a delete and then
8.1794 +-- deletes the record by calling procedure Delete___.
8.1795 +-----------------------------------------------------------------------------
8.1796 +
8.1797 +PROCEDURE Lock__ (
8.1798 + info_ OUT VARCHAR2,
8.1799 + objid_ IN VARCHAR2,
8.1800 + objversion_ IN VARCHAR2 )
8.1801 +IS
8.1802 + dummy_ &TABLE%ROWTYPE;
8.1803 +BEGIN
8.1804 + General_SYS.Init_Method(lu_name_, '&PKG', 'Lock__');
8.1805 + dummy_ := Lock_By_Id___(objid_, objversion_);
8.1806 + info_ := Client_SYS.Get_All_Info;
8.1807 +END Lock__;
8.1808 +
8.1809 +
8.1810 +PROCEDURE New__ (
8.1811 + info_ OUT VARCHAR2,
8.1812 + objid_ OUT VARCHAR2,
8.1813 + objversion_ OUT VARCHAR2,
8.1814 + attr_ IN OUT VARCHAR2,
8.1815 + action_ IN VARCHAR2 )
8.1816 +IS
8.1817 + newrec_ &TABLE%ROWTYPE;
8.1818 +BEGIN
8.1819 + General_SYS.Init_Method(lu_name_, '&PKG', 'New__');
8.1820 + IF (action_ = 'PREPARE') THEN
8.1821 + Prepare_Insert___(attr_);
8.1822 + ELSIF (action_ = 'CHECK') THEN
8.1823 + Unpack_Check_Insert___(attr_, newrec_);
8.1824 + ELSIF (action_ = 'DO') THEN
8.1825 + Unpack_Check_Insert___(attr_, newrec_);
8.1826 + Insert___(objid_, objversion_, newrec_, attr_);
8.1827 + END IF;
8.1828 + info_ := Client_SYS.Get_All_Info;
8.1829 +END New__;
8.1830 +
8.1831 +PROCEDURE Modify__ (
8.1832 + info_ OUT VARCHAR2,
8.1833 + objid_ IN VARCHAR2,
8.1834 + objversion_ IN OUT VARCHAR2,
8.1835 + attr_ IN OUT VARCHAR2,
8.1836 + action_ IN VARCHAR2 )
8.1837 +IS
8.1838 + oldrec_ &TABLE%ROWTYPE;
8.1839 + newrec_ &TABLE%ROWTYPE;
8.1840 +BEGIN
8.1841 + General_SYS.Init_Method(lu_name_, '&PKG', 'Modify__');
8.1842 + IF (action_ = 'CHECK') THEN
8.1843 + newrec_ := Get_Object_By_Id___(objid_);
8.1844 + Unpack_Check_Update___(attr_, newrec_, objid_);
8.1845 + ELSIF (action_ = 'DO') THEN
8.1846 + oldrec_ := Lock_By_Id___(objid_, objversion_);
8.1847 + newrec_ := oldrec_;
8.1848 +
8.1849 + Save_Identity_Notes___(attr_, newrec_ );
8.1850 +
8.1851 + Unpack_Check_Update___(attr_, newrec_, objid_);
8.1852 + Update___(objid_, oldrec_, newrec_, attr_, objversion_);
8.1853 + END IF;
8.1854 + info_ := Client_SYS.Get_All_Info;
8.1855 +END Modify__;
8.1856 +
8.1857 +
8.1858 +PROCEDURE Remove__ (
8.1859 + info_ OUT VARCHAR2,
8.1860 + objid_ IN VARCHAR2,
8.1861 + objversion_ IN VARCHAR2,
8.1862 + action_ IN VARCHAR2 )
8.1863 +IS
8.1864 + remrec_ &TABLE%ROWTYPE;
8.1865 +BEGIN
8.1866 + General_SYS.Init_Method(lu_name_, '&PKG', 'Remove__');
8.1867 + IF (action_ = 'CHECK') THEN
8.1868 + remrec_ := Get_Object_By_Id___(objid_);
8.1869 + Check_Delete___(remrec_);
8.1870 + ELSIF (action_ = 'DO') THEN
8.1871 + remrec_ := Lock_By_Id___(objid_, objversion_);
8.1872 + Check_Delete___(remrec_);
8.1873 + Delete___(objid_, remrec_);
8.1874 + END IF;
8.1875 + info_ := Client_SYS.Get_All_Info;
8.1876 +END Remove__;
8.1877 +
8.1878 +-----------------------------------------------------------------------------
8.1879 +-------------------- PUBLIC BASE METHODS ------------------------------------
8.1880 +-----------------------------------------------------------------------------
8.1881 +-- Exist
8.1882 +-- Checks if given pointer (e.g. primary key) to an instance of this
8.1883 +-- logical unit exists. If not an exception will be raised.
8.1884 +-----------------------------------------------------------------------------
8.1885 +
8.1886 +PROCEDURE Exist (
8.1887 + company_ IN VARCHAR2,
8.1888 + identity_ IN VARCHAR2,
8.1889 + party_type_ IN VARCHAR2 )
8.1890 +IS
8.1891 +BEGIN
8.1892 + General_SYS.Init_Method(lu_name_, '&PKG', 'Exist', TRUE);
8.1893 + IF (NOT Check_Exist___(company_, identity_, Party_Type_API.Encode(party_type_))) THEN
8.1894 + -- Bug 72612, Begin, Modified IF condition
8.1895 + IF Party_Type_API.Encode(party_type_) IN ('CUSTOMER', 'SUPPLIER') THEN
8.1896 + Error_SYS.Record_General(lu_name_, 'IDENTITYPAYEXIST: :P1 :P2 does not exist in company :P3 in Payment module.', party_type_, identity_, company_);
8.1897 + -- Bug 72612, End.
8.1898 + -- Bug 71612, Begin, Added IF condition, IF Party type 'COMPANY' display an error message
8.1899 + ELSIF (Party_Type_API.Encode(party_type_) = 'COMPANY') THEN
8.1900 + Error_SYS.Record_General(lu_name_, 'NOTPAYCOMPANY: Parked payments are allowed only against the payment company.');
8.1901 + -- Bug 72612, End.
8.1902 + ELSE
8.1903 + Error_SYS.Record_Not_Exist(lu_name_);
8.1904 + END IF;
8.1905 + END IF;
8.1906 +END Exist;
8.1907 +
8.1908 +
8.1909 +PROCEDURE Exist_Db (
8.1910 + company_ IN VARCHAR2,
8.1911 + identity_ IN VARCHAR2,
8.1912 + party_type_db_ IN VARCHAR2 )
8.1913 +IS
8.1914 +BEGIN
8.1915 + General_SYS.Init_Method(lu_name_, '&PKG', 'Exist', TRUE);
8.1916 + IF (NOT Check_Exist___(company_, identity_, party_type_db_)) THEN
8.1917 + IF party_type_db_ IN ('CUSTOMER', 'SUPPLIER', 'COMPANY') THEN
8.1918 + Error_SYS.Record_General(lu_name_, 'IDENTITYPAYEXIST2: :P1 :P2 does not exist in company :P3 in Payment module.', Party_Type_API.Decode(party_type_db_), identity_, company_);
8.1919 + ELSE
8.1920 + Error_SYS.Record_Not_Exist(lu_name_);
8.1921 + END IF;
8.1922 + END IF;
8.1923 +END Exist_Db;
8.1924 +
8.1925 +-----------------------------------------------------------------------------
8.1926 +-------------------- LU SPECIFIC IMPLEMENTATION METHODS ---------------------
8.1927 +-----------------------------------------------------------------------------
8.1928 +PROCEDURE Save_Identity_Notes___ (
8.1929 + attr_ IN VARCHAR2,
8.1930 + newrec_ IN &TABLE%ROWTYPE )
8.1931 +IS
8.1932 + note_ VARCHAR2(2000);
8.1933 + note_update_ VARCHAR2(20);
8.1934 +
8.1935 +BEGIN
8.1936 + note_ := Client_SYS.Get_Item_Value('NOTE',attr_);
8.1937 + note_update_ := Client_SYS.Get_Item_Value('NOTE_UPDATE',attr_);
8.1938 +
8.1939 + IF ((note_ IS NULL) AND (note_update_ IS NULL)) THEN
8.1940 + RETURN;
8.1941 + END IF;
8.1942 +
8.1943 + Identity_Invoice_Info_API.Set_Notes(newrec_.company,
8.1944 + newrec_.identity,
8.1945 + Party_Type_Api.Decode(newrec_.party_type),
8.1946 + note_ );
8.1947 +END Save_Identity_Notes___;
8.1948 +
8.1949 +FUNCTION Get_Next_Format_No___ (
8.1950 + company_ IN VARCHAR2 ) RETURN NUMBER
8.1951 +IS
8.1952 + CURSOR rec IS
8.1953 + SELECT MAX( format_no )
8.1954 + FROM &TABLE
8.1955 + WHERE company = company_;
8.1956 +
8.1957 + max_format_ NUMBER;
8.1958 +BEGIN
8.1959 + OPEN rec;
8.1960 + FETCH rec INTO max_format_;
8.1961 + IF ( rec%NOTFOUND ) THEN
8.1962 + CLOSE rec;
8.1963 + RETURN 1;
8.1964 + END IF;
8.1965 + CLOSE rec;
8.1966 +
8.1967 + RETURN ( NVL(max_format_,0) + 1 );
8.1968 +END Get_Next_Format_No___;
8.1969 +
8.1970 +PROCEDURE Check_Cascade___ (
8.1971 + company_ IN VARCHAR2,
8.1972 + identity_ IN VARCHAR2,
8.1973 + party_type_db_ IN VARCHAR2 )
8.1974 +IS
8.1975 + CURSOR get_ledger_item1 IS
8.1976 + SELECT rowtype
8.1977 + FROM ledger_item_tab
8.1978 + WHERE company = company_
8.1979 + AND party_type = party_type_db_
8.1980 + AND identity = identity_;
8.1981 +
8.1982 + CURSOR get_ledger_item2 IS
8.1983 + SELECT rowtype
8.1984 + FROM ledger_item_tab
8.1985 + WHERE company = company_
8.1986 + AND party_type = party_type_db_
8.1987 + AND payer_identity = identity_;
8.1988 +
8.1989 + CURSOR get_ledger_item3 IS
8.1990 + SELECT rowtype
8.1991 + FROM ledger_item_tab
8.1992 + WHERE company = company_
8.1993 + AND party_type = party_type_db_
8.1994 + AND payee_identity = identity_;
8.1995 +BEGIN
8.1996 + FOR ledger_item_ IN get_ledger_item1 LOOP
8.1997 + IF (ledger_item_.rowtype = 'InvoiceLedgerItem') THEN
8.1998 + Error_SYS.Appl_General(lu_name_, 'INVOICESEXIST: Invoices exist for :P1 :P2', Party_Type_API.Decode(party_type_db_), identity_);
8.1999 + ELSIF (ledger_item_.rowtype = 'OnAccountLedgerItem') THEN
8.2000 + Error_SYS.Appl_General(lu_name_, 'PAYMENTONACCNTEXIST: Payments on account exist for :P1 :P2', Party_Type_API.Decode(party_type_db_), identity_);
8.2001 + ELSE
8.2002 + Error_SYS.Appl_General(lu_name_, 'LEDGERITEMSEXIST: Ledger items exist for :P1 :P2', Party_Type_API.Decode(party_type_db_), identity_);
8.2003 + END IF;
8.2004 + END LOOP;
8.2005 +
8.2006 + FOR ledger_item_ IN get_ledger_item2 LOOP
8.2007 + IF (ledger_item_.rowtype = 'InvoiceLedgerItem') THEN
8.2008 + Error_SYS.Appl_General(lu_name_, 'INVOICESEXIST: Invoices exist for :P1 :P2', Party_Type_API.Decode(party_type_db_), identity_);
8.2009 + ELSIF (ledger_item_.rowtype = 'OnAccountLedgerItem') THEN
8.2010 + Error_SYS.Appl_General(lu_name_, 'PAYMENTONACCNTEXIST: Payments on account exist for :P1 :P2', Party_Type_API.Decode(party_type_db_), identity_);
8.2011 + ELSE
8.2012 + Error_SYS.Appl_General(lu_name_, 'LEDGERITEMSEXIST: Ledger items exist for :P1 :P2', Party_Type_API.Decode(party_type_db_), identity_);
8.2013 + END IF;
8.2014 + END LOOP;
8.2015 +
8.2016 + FOR ledger_item_ IN get_ledger_item3 LOOP
8.2017 + IF (ledger_item_.rowtype = 'InvoiceLedgerItem') THEN
8.2018 + Error_SYS.Appl_General(lu_name_, 'INVOICESEXIST: Invoices exist for :P1 :P2', Party_Type_API.Decode(party_type_db_), identity_);
8.2019 + ELSIF (ledger_item_.rowtype = 'OnAccountLedgerItem') THEN
8.2020 + Error_SYS.Appl_General(lu_name_, 'PAYMENTONACCNTEXIST: Payments on account exist for :P1 :P2', Party_Type_API.Decode(party_type_db_), identity_);
8.2021 + ELSE
8.2022 + Error_SYS.Appl_General(lu_name_, 'LEDGERITEMSEXIST: Ledger items exist for :P1 :P2', Party_Type_API.Decode(party_type_db_), identity_);
8.2023 + END IF;
8.2024 + END LOOP;
8.2025 +END Check_Cascade___;
8.2026 +
8.2027 +PROCEDURE Import___ (
8.2028 + crecomp_rec_ IN ENTERP_COMP_CONNECT_V160_API.Crecomp_Lu_Public_Rec )
8.2029 +IS
8.2030 + CURSOR get_data IS
8.2031 + SELECT C1,C2,N1,C3,C4,C5,C6,N2,N3,N4,C7,N5,C8,C9,C10,C11,C12,C13,C14,C15
8.2032 + FROM Create_Company_Tem_Detail src
8.2033 + WHERE component = '&MODULE'
8.2034 + AND lu = lu_name_
8.2035 + AND template_id = crecomp_rec_.template_id
8.2036 + AND version = crecomp_rec_.version
8.2037 + AND NOT EXISTS (SELECT 1
8.2038 + FROM &TABLE dest
8.2039 + WHERE dest.company = crecomp_rec_.company
8.2040 + AND dest.identity = crecomp_rec_.company
8.2041 + AND dest.party_type = src.c2);
8.2042 +
8.2043 + -- Bug 74138, Begin, Added condition to fetch data when party_type = 'COMPANY'
8.2044 + CURSOR exist_company IS
8.2045 + SELECT 'X'
8.2046 + FROM &TABLE
8.2047 + WHERE company = crecomp_rec_.company
8.2048 + AND party_type = 'COMPANY';
8.2049 + -- Bug 74138, End
8.2050 +
8.2051 + dummy_ VARCHAR2(1);
8.2052 + attr_ VARCHAR2(2000);
8.2053 + objid_ VARCHAR2(2000);
8.2054 + objversion_ VARCHAR2(2000);
8.2055 + newrec_ &TABLE%ROWTYPE;
8.2056 + msg_ VARCHAR2(2000);
8.2057 + i_ NUMBER := 0;
8.2058 + update_by_key_ BOOLEAN DEFAULT FALSE;
8.2059 + empty_lu_ BOOLEAN := FALSE;
8.2060 +BEGIN
8.2061 + General_SYS.Init_Method(lu_name_, '&PKG', 'Import___', TRUE);
8.2062 +
8.2063 + update_by_key_ := Enterp_Comp_Connect_V160_API.Use_Keys(module_, lu_name_, crecomp_rec_);
8.2064 +
8.2065 + IF (NOT update_by_key_) THEN
8.2066 + empty_lu_ := FALSE;
8.2067 + OPEN exist_company;
8.2068 + FETCH exist_company INTO dummy_;
8.2069 + IF ( exist_company%NOTFOUND ) THEN
8.2070 + CLOSE exist_company;
8.2071 + empty_lu_ := TRUE;
8.2072 + END IF;
8.2073 + END IF;
8.2074 +
8.2075 + IF ( update_by_key_ OR empty_lu_ ) THEN
8.2076 + FOR rec_ IN get_data LOOP
8.2077 + i_ := i_ + 1;
8.2078 + BEGIN
8.2079 + newrec_.company := crecomp_rec_.company;
8.2080 + newrec_.identity := crecomp_rec_.company;
8.2081 + newrec_.party_type := rec_.c2;
8.2082 + newrec_.priority := rec_.n1;
8.2083 + newrec_.blocked_for_payment := rec_.c3;
8.2084 + newrec_.other_payee_identity := rec_.c4;
8.2085 + newrec_.interest_template := rec_.c5;
8.2086 + newrec_.reminder_template := rec_.c6;
8.2087 + newrec_.payment_delay := rec_.n2;
8.2088 + newrec_.amount_tolerance := rec_.n3;
8.2089 + newrec_.percent_tolerance := rec_.n4;
8.2090 + newrec_.disc_days_tolerance := rec_.n5;
8.2091 + newrec_.netting_allowed := rec_.c7;
8.2092 + newrec_.format_no := rec_.n5;
8.2093 + newrec_.payment_advice := rec_.c8;
8.2094 + newrec_.deduction_group := rec_.c9;
8.2095 + newrec_.corporation_id := rec_.c10;
8.2096 + newrec_.member_id := rec_.c11;
8.2097 + newrec_.send_reminder_to_payer := rec_.c12;
8.2098 + newrec_.send_interest_inv_to_payer := rec_.c13;
8.2099 + newrec_.payment_receipt_type := rec_.c14;
8.2100 + newrec_.send_statement_of_acc_to_payer := rec_.c15;
8.2101 +
8.2102 + Company_API.Exist(newrec_.company);
8.2103 + Payment_Library_API.Exist_In_Enterp(newrec_.company, newrec_.company, Party_Type_API.Decode(newrec_.party_type));
8.2104 + IF (newrec_.blocked_for_payment IS NOT NULL AND newrec_.blocked_for_payment NOT IN ('TRUE', 'FALSE')) THEN
8.2105 + Error_SYS.Record_General(lu_name_,'TRUEORFALSE: The value must be TRUE or FALSE');
8.2106 + END IF;
8.2107 + IF (newrec_.other_payee_identity IS NOT NULL) THEN
8.2108 + Identity_Pay_Info_API.Exist(newrec_.company, newrec_.other_payee_identity, Party_Type_API.Decode(newrec_.party_type));
8.2109 + END IF;
8.2110 + IF (newrec_.interest_template IS NOT NULL) THEN
8.2111 + Interest_Template_API.Exist(newrec_.company, newrec_.interest_template);
8.2112 + END IF;
8.2113 + IF (newrec_.reminder_template IS NOT NULL) THEN
8.2114 + Reminder_Template_API.Exist(newrec_.company, newrec_.reminder_template);
8.2115 + END IF;
8.2116 + IF (TRUNC(newrec_.payment_delay) <> newrec_.payment_delay) THEN
8.2117 + Error_SYS.Record_General(lu_name_, 'NOTWHOLENUM: A whole number must be specified for the payment delay.');
8.2118 + END IF;
8.2119 + IF (newrec_.netting_allowed NOT IN ('TRUE', 'FALSE')) THEN
8.2120 + Error_SYS.Record_General(lu_name_,'TRUEORFALSE: The value must be TRUE or FALSE');
8.2121 + END IF;
8.2122 + IF (newrec_.payment_advice IS NOT NULL) THEN
8.2123 + Payment_Advice_API.Exist_Db(newrec_.payment_advice);
8.2124 + END IF;
8.2125 + IF (newrec_.deduction_group IS NOT NULL) THEN
8.2126 + Deduction_Group_API.Exist(newrec_.company, newrec_.deduction_group);
8.2127 + END IF;
8.2128 + IF (newrec_.payment_receipt_type IS NOT NULL) THEN
8.2129 + Payment_Receipt_Type_API.Exist_Db(newrec_.payment_receipt_type);
8.2130 + END IF;
8.2131 +
8.2132 + Error_SYS.Check_Not_Null(lu_name_, 'COMPANY', newrec_.company);
8.2133 + Error_SYS.Check_Not_Null(lu_name_, 'IDENTITY', newrec_.identity);
8.2134 + Error_SYS.Check_Not_Null(lu_name_, 'PARTY_TYPE', newrec_.party_type);
8.2135 + Error_SYS.Check_Not_Null(lu_name_, 'NETTING_ALLOWED', newrec_.netting_allowed);
8.2136 +
8.2137 + IF (newrec_.party_type = 'SUPPLIER') THEN
8.2138 + Error_SYS.Check_Not_Null(lu_name_, 'PRIORITY', newrec_.priority);
8.2139 + Error_SYS.Check_Not_Null(lu_name_, 'BLOCKED_FOR_PAYMENT', newrec_.blocked_for_payment);
8.2140 + END IF;
8.2141 + IF (newrec_.party_type = 'CUSTOMER') THEN
8.2142 + Error_SYS.Check_Not_Null(lu_name_, 'INTEREST_TEMPLATE', newrec_.interest_template);
8.2143 + Error_SYS.Check_Not_Null(lu_name_, 'REMINDER_TEMPLATE', newrec_.reminder_template);
8.2144 + Error_SYS.Check_Not_Null(lu_name_, 'PAYMENT_RECEIPT_TYPE', newrec_.payment_receipt_type);
8.2145 + END IF;
8.2146 +
8.2147 + Error_SYS.Check_Not_Null(lu_name_, 'IDENTITY', newrec_.identity);
8.2148 +
8.2149 + IF (newrec_.identity = newrec_.other_payee_identity) THEN
8.2150 + Error_SYS.Record_General(lu_name_, 'SAMEPARTY: Other Payee cannot refer to itself.');
8.2151 + END IF;
8.2152 +
8.2153 + Insert___(objid_, objversion_, newrec_, attr_);
8.2154 + EXCEPTION
8.2155 + WHEN OTHERS THEN
8.2156 + msg_ := SQLERRM;
8.2157 + Enterp_Comp_Connect_V160_API.Log_Logging(crecomp_rec_.company, module_, '&PKG', 'Error', msg_);
8.2158 + END;
8.2159 + END LOOP;
8.2160 + IF ( i_ = 0 ) THEN
8.2161 + msg_ := language_sys.translate_constant(lu_name_, 'NODATAFOUND:No Data Found');
8.2162 + Enterp_Comp_Connect_V160_API.Log_Logging(crecomp_rec_.company, module_, '&PKG', 'CreatedSuccessfully', msg_);
8.2163 + ELSE
8.2164 + IF msg_ IS NULL THEN
8.2165 + Enterp_Comp_Connect_V160_API.Log_Logging(crecomp_rec_.company, module_, '&PKG', 'CreatedSuccessfully');
8.2166 + ELSE
8.2167 + Enterp_Comp_Connect_V160_API.Log_Logging(crecomp_rec_.company, module_, '&PKG', 'CreatedWithErrors');
8.2168 + END IF;
8.2169 + END IF;
8.2170 + END IF;
8.2171 + -- This statement is to add to the log that the Create company process for LUs is finished if
8.2172 + -- update_by_key_ and empty_lu are FALSE
8.2173 + IF ( NOT update_by_key_ AND NOT empty_lu_ ) THEN
8.2174 + Enterp_Comp_Connect_V160_API.Log_Logging(crecomp_rec_.company, module_, '&PKG', 'CreatedSuccessfully');
8.2175 + END IF;
8.2176 +EXCEPTION
8.2177 + WHEN OTHERS THEN
8.2178 + msg_ := SQLERRM;
8.2179 + Enterp_Comp_Connect_V160_API.Log_Logging(crecomp_rec_.company, module_, '&PKG', 'Error', msg_);
8.2180 + Enterp_Comp_Connect_V160_API.Log_Logging(crecomp_rec_.company, module_, '&PKG', 'CreatedWithErrors');
8.2181 +END Import___;
8.2182 +
8.2183 +
8.2184 +PROCEDURE Copy___ (
8.2185 + crecomp_rec_ IN ENTERP_COMP_CONNECT_V160_API.Crecomp_Lu_Public_Rec )
8.2186 +IS
8.2187 + dummy_ VARCHAR2(1);
8.2188 + msg_ VARCHAR2(2000);
8.2189 + update_by_key_ BOOLEAN DEFAULT FALSE;
8.2190 + empty_lu_ BOOLEAN := FALSE;
8.2191 +
8.2192 + CURSOR exist_company IS
8.2193 + SELECT 'X'
8.2194 + FROM &TABLE
8.2195 + WHERE company = crecomp_rec_.company;
8.2196 +
8.2197 + CURSOR get_data IS
8.2198 + SELECT *
8.2199 + FROM &TABLE src
8.2200 + WHERE company = crecomp_rec_.old_company
8.2201 + AND identity = crecomp_rec_.old_company
8.2202 + AND party_type = 'COMPANY'
8.2203 + AND NOT EXISTS (SELECT 1
8.2204 + FROM &TABLE dest
8.2205 + WHERE dest.company = crecomp_rec_.company
8.2206 + AND dest.identity = src.identity
8.2207 + AND dest.party_type = src.party_type);
8.2208 +BEGIN
8.2209 + General_SYS.Init_Method(lu_name_, '&PKG', 'Copy___', TRUE);
8.2210 +
8.2211 + update_by_key_ := Enterp_Comp_Connect_V160_API.Use_Keys(module_, lu_name_, crecomp_rec_);
8.2212 +
8.2213 + IF (NOT update_by_key_) THEN
8.2214 + empty_lu_ := FALSE;
8.2215 + OPEN exist_company;
8.2216 + FETCH exist_company INTO dummy_;
8.2217 + IF ( exist_company%NOTFOUND ) THEN
8.2218 + CLOSE exist_company;
8.2219 + empty_lu_ := TRUE;
8.2220 + END IF;
8.2221 + END IF;
8.2222 +
8.2223 + IF ( update_by_key_ OR empty_lu_ ) THEN
8.2224 + FOR rec_ IN get_data LOOP
8.2225 + BEGIN
8.2226 + INSERT
8.2227 + INTO identity_pay_info_tab (
8.2228 + company,
8.2229 + identity,
8.2230 + party_type,
8.2231 + priority,
8.2232 + blocked_for_payment,
8.2233 + other_payee_identity,
8.2234 + interest_template,
8.2235 + reminder_template,
8.2236 + payment_delay,
8.2237 + amount_tolerance,
8.2238 + percent_tolerance,
8.2239 + disc_days_tolerance,
8.2240 + netting_allowed,
8.2241 + format_no,
8.2242 + payment_advice,
8.2243 + deduction_group,
8.2244 + corporation_id,
8.2245 + member_id,
8.2246 + send_reminder_to_payer,
8.2247 + send_interest_inv_to_payer,
8.2248 + next_payment_matching_id,
8.2249 + payment_receipt_type,
8.2250 + send_statement_of_acc_to_payer,
8.2251 + rowversion)
8.2252 + VALUES (
8.2253 + crecomp_rec_.company,
8.2254 + crecomp_rec_.company,
8.2255 + rec_.party_type,
8.2256 + rec_.priority,
8.2257 + rec_.blocked_for_payment,
8.2258 + rec_.other_payee_identity,
8.2259 + rec_.interest_template,
8.2260 + rec_.reminder_template,
8.2261 + rec_.payment_delay,
8.2262 + rec_.amount_tolerance,
8.2263 + rec_.percent_tolerance,
8.2264 + rec_.disc_days_tolerance,
8.2265 + rec_.netting_allowed,
8.2266 + rec_.format_no,
8.2267 + rec_.payment_advice,
8.2268 + rec_.deduction_group,
8.2269 + rec_.corporation_id,
8.2270 + rec_.member_id,
8.2271 + rec_.send_reminder_to_payer,
8.2272 + rec_.send_interest_inv_to_payer,
8.2273 + 0,
8.2274 + rec_.payment_receipt_type,
8.2275 + rec_.send_statement_of_acc_to_payer,
8.2276 + 1);
8.2277 + END;
8.2278 + END LOOP;
8.2279 + Enterp_Comp_Connect_V160_API.Log_Logging(crecomp_rec_.company, module_, '&PKG', 'CreatedSuccessfully');
8.2280 + END IF;
8.2281 + -- This statement is to add to the log that the Create company process for LUs is finished if
8.2282 + -- update_by_key_ and empty_lu are FALSE
8.2283 + IF ( NOT update_by_key_ AND NOT empty_lu_ ) THEN
8.2284 + Enterp_Comp_Connect_V160_API.Log_Logging(crecomp_rec_.company, module_, '&PKG', 'CreatedSuccessfully');
8.2285 + END IF;
8.2286 +EXCEPTION
8.2287 + WHEN OTHERS THEN
8.2288 + msg_ := SQLERRM;
8.2289 + Enterp_Comp_Connect_V160_API.Log_Logging(crecomp_rec_.company, module_, '&PKG', 'Error', msg_);
8.2290 + Enterp_Comp_Connect_V160_API.Log_Logging(crecomp_rec_.company, module_, '&PKG', 'CreatedWithErrors');
8.2291 +END Copy___;
8.2292 +
8.2293 +
8.2294 +
8.2295 +PROCEDURE Export___ (
8.2296 + crecomp_rec_ IN ENTERP_COMP_CONNECT_V160_API.Crecomp_Lu_Public_Rec )
8.2297 +IS
8.2298 + pub_rec_ Enterp_Comp_Connect_V160_API.Tem_Public_Rec;
8.2299 + i_ NUMBER := 1;
8.2300 +
8.2301 + CURSOR get_data IS
8.2302 + SELECT *
8.2303 + FROM &VIEWPCT
8.2304 + WHERE company = crecomp_rec_.company
8.2305 + AND party_type_db = 'COMPANY';
8.2306 +BEGIN
8.2307 + General_SYS.Init_Method(lu_name_, '&PKG', 'Export___', TRUE);
8.2308 + FOR pctrec_ IN get_data LOOP
8.2309 + pub_rec_.template_id := crecomp_rec_.template_id;
8.2310 + pub_rec_.component := '&MODULE';
8.2311 + pub_rec_.version := crecomp_rec_.version;
8.2312 + pub_rec_.lu := lu_name_;
8.2313 + pub_rec_.item_id := i_;
8.2314 + pub_rec_.c1 := '<NEW COMPANY>';
8.2315 + pub_rec_.c2 := pctrec_.party_type_db;
8.2316 + pub_rec_.n1 := pctrec_.priority;
8.2317 + pub_rec_.c3 := pctrec_.blocked_for_payment;
8.2318 + pub_rec_.c4 := pctrec_.other_payee_identity;
8.2319 + pub_rec_.c5 := pctrec_.interest_template;
8.2320 + pub_rec_.c6 := pctrec_.reminder_template;
8.2321 + pub_rec_.n2 := pctrec_.payment_delay;
8.2322 + pub_rec_.n3 := pctrec_.amount_tolerance;
8.2323 + pub_rec_.n4 := pctrec_.percent_tolerance;
8.2324 + pub_rec_.n5 := pctrec_.disc_days_tolerance;
8.2325 + pub_rec_.c7 := pctrec_.netting_allowed;
8.2326 + pub_rec_.n5 := pctrec_.format_no;
8.2327 + pub_rec_.c8 := pctrec_.payment_advice_db;
8.2328 + pub_rec_.c9 := pctrec_.deduction_group;
8.2329 + pub_rec_.c10 := pctrec_.corporation_id;
8.2330 + pub_rec_.c11 := pctrec_.member_id;
8.2331 + pub_rec_.c12 := pctrec_.send_reminder_to_payer;
8.2332 + pub_rec_.c13 := pctrec_.send_interest_inv_to_payer;
8.2333 + pub_rec_.c14 := pctrec_.payment_receipt_type_db;
8.2334 + pub_rec_.c15 := pctrec_.send_statement_of_acc_to_payer;
8.2335 + Enterp_Comp_Connect_V160_API.Tem_Insert_Detail_Data(pub_rec_);
8.2336 + i_ := i_ + 1;
8.2337 + END LOOP;
8.2338 +END Export___;
8.2339 +
8.2340 +-----------------------------------------------------------------------------
8.2341 +-------------------- LU SPECIFIC PRIVATE METHODS ----------------------------
8.2342 +-----------------------------------------------------------------------------
8.2343 +
8.2344 +PROCEDURE Check_Cascade_Customer__ (
8.2345 + attr_ IN VARCHAR2 )
8.2346 +IS
8.2347 + CURSOR customer_in_company (identity_ IN VARCHAR2,
8.2348 + party_type_db_ IN VARCHAR2 ) IS
8.2349 + SELECT company
8.2350 + FROM &TABLE
8.2351 + WHERE identity = identity_
8.2352 + AND party_type = party_type_db_;
8.2353 +
8.2354 + identity_ VARCHAR2(20);
8.2355 + party_type_db_ VARCHAR2(20);
8.2356 +BEGIN
8.2357 + General_SYS.Init_Method(lu_name_, '&PKG', 'Check_Cascade_Customer__');
8.2358 +
8.2359 + identity_ := substr(attr_,1,instr(attr_,'^',1,1)-1);
8.2360 + party_type_db_ := 'CUSTOMER';
8.2361 + FOR comp_ IN customer_in_company (identity_, party_type_db_) LOOP
8.2362 + Check_Cascade___(comp_.company, identity_, party_type_db_);
8.2363 + END LOOP;
8.2364 +END Check_Cascade_Customer__;
8.2365 +
8.2366 +PROCEDURE Check_Cascade_Supplier__ (
8.2367 + attr_ IN VARCHAR2 )
8.2368 +IS
8.2369 + CURSOR supplier_in_company (identity_ IN VARCHAR2,
8.2370 + party_type_db_ IN VARCHAR2 ) IS
8.2371 + SELECT company
8.2372 + FROM &TABLE
8.2373 + WHERE identity = identity_
8.2374 + AND party_type = party_type_db_;
8.2375 +
8.2376 + identity_ VARCHAR2(20);
8.2377 + party_type_db_ VARCHAR2(20);
8.2378 +BEGIN
8.2379 + General_SYS.Init_Method(lu_name_, '&PKG', 'Check_Cascade_Supplier__');
8.2380 +
8.2381 + identity_ := substr(attr_,1,instr(attr_,'^',1,1)-1);
8.2382 + party_type_db_ := 'SUPPLIER';
8.2383 + FOR comp_ IN supplier_in_company (identity_, party_type_db_) LOOP
8.2384 + Check_Cascade___(comp_.company, identity_, party_type_db_);
8.2385 + END LOOP;
8.2386 +END Check_Cascade_Supplier__;
8.2387 +
8.2388 +PROCEDURE Cascade_Delete_Customer__ (
8.2389 + attr_ IN VARCHAR2 )
8.2390 +IS
8.2391 + identity_ VARCHAR2(20);
8.2392 + party_type_db_ VARCHAR2(20);
8.2393 + info_ VARCHAR2(2000);
8.2394 +
8.2395 + CURSOR customer_in_company (identity_ IN VARCHAR2,
8.2396 + party_type_db_ IN VARCHAR2 ) IS
8.2397 + SELECT &OBJID objid,
8.2398 + &OBJVERSION objversion
8.2399 + FROM &TABLE
8.2400 + WHERE identity = identity_
8.2401 + AND party_type = party_type_db_;
8.2402 +BEGIN
8.2403 + General_SYS.Init_Method(lu_name_, '&PKG', 'Cascade_Delete_Customer__');
8.2404 +
8.2405 + Check_Cascade_Customer__(attr_);
8.2406 + identity_ := substr(attr_,1,instr(attr_,'^',1,1)-1);
8.2407 + party_type_db_ := 'CUSTOMER';
8.2408 +
8.2409 + FOR comp_ IN customer_in_company (identity_, party_type_db_) LOOP
8.2410 + Remove__(info_, comp_.objid, comp_.objversion, 'DO');
8.2411 + END LOOP;
8.2412 +
8.2413 +END Cascade_Delete_Customer__;
8.2414 +
8.2415 +PROCEDURE Cascade_Delete_Supplier__ (
8.2416 + attr_ IN VARCHAR2 )
8.2417 +IS
8.2418 + identity_ VARCHAR2(20);
8.2419 + party_type_db_ VARCHAR2(20);
8.2420 + info_ VARCHAR2(2000);
8.2421 +
8.2422 + CURSOR supplier_in_company (identity_ IN VARCHAR2,
8.2423 + party_type_db_ IN VARCHAR2 ) IS
8.2424 + SELECT &OBJID objid,
8.2425 + &OBJVERSION objversion
8.2426 + FROM &TABLE
8.2427 + WHERE identity = identity_
8.2428 + AND party_type = party_type_db_;
8.2429 +BEGIN
8.2430 + General_SYS.Init_Method(lu_name_, '&PKG', 'Cascade_Delete_Supplier__');
8.2431 +
8.2432 + Check_Cascade_Supplier__(attr_);
8.2433 + identity_ := substr(attr_,1,instr(attr_,'^',1,1)-1);
8.2434 + party_type_db_ := 'SUPPLIER';
8.2435 +
8.2436 + FOR comp_ IN supplier_in_company (identity_, party_type_db_) LOOP
8.2437 + Remove__(info_, comp_.objid, comp_.objversion, 'DO');
8.2438 + END LOOP;
8.2439 +
8.2440 +END Cascade_Delete_Supplier__;
8.2441 +
8.2442 +FUNCTION Create_Other_Payee_Attr__ (
8.2443 + company_ IN VARCHAR2,
8.2444 + payer_id_ IN VARCHAR2 ) RETURN VARCHAR2
8.2445 +IS
8.2446 + value_attr_ VARCHAR2(32000);
8.2447 +
8.2448 + CURSOR get_supplier IS
8.2449 + SELECT identity
8.2450 + FROM &TABLE
8.2451 + WHERE company = company_
8.2452 + AND other_payee_identity = payer_id_
8.2453 + AND party_type = 'SUPPLIER';
8.2454 +BEGIN
8.2455 + General_SYS.Init_Method(lu_name_, '&PKG', 'Create_Other_Payee_Attr__');
8.2456 +
8.2457 + value_attr_ := payer_id_;
8.2458 + FOR supplier_info_ IN get_supplier LOOP
8.2459 + value_attr_ := value_attr_ || CHR(39) || ',' || CHR(39) || supplier_info_.identity;
8.2460 + END LOOP;
8.2461 +
8.2462 + RETURN value_attr_;
8.2463 +END Create_Other_Payee_Attr__;
8.2464 +
8.2465 +FUNCTION Create_Cus_Other_Payee_Attr__ (
8.2466 + company_ IN VARCHAR2,
8.2467 + payer_id_ IN VARCHAR2 ) RETURN VARCHAR2
8.2468 +IS
8.2469 + value_attr_ VARCHAR2(32000);
8.2470 +
8.2471 + CURSOR get_customer IS
8.2472 + SELECT identity
8.2473 + FROM &TABLE
8.2474 + WHERE company = company_
8.2475 + AND other_payee_identity = payer_id_
8.2476 + AND party_type = 'CUSTOMER';
8.2477 +BEGIN
8.2478 + General_SYS.Init_Method(lu_name_, '&PKG', 'Create_Cus_Other_Payee_Attr__');
8.2479 +
8.2480 + value_attr_ := payer_id_;
8.2481 + FOR customer_info_ IN get_customer LOOP
8.2482 + value_attr_ := value_attr_ || CHR(39) || ',' || CHR(39) || customer_info_.identity;
8.2483 + END LOOP;
8.2484 +
8.2485 + RETURN value_attr_;
8.2486 +END Create_Cus_Other_Payee_Attr__;
8.2487 +-----------------------------------------------------------------------------
8.2488 +-------------------- LU SPECIFIC PROTECTED METHODS --------------------------
8.2489 +-----------------------------------------------------------------------------
8.2490 +
8.2491 +
8.2492 +-----------------------------------------------------------------------------
8.2493 +-------------------- LU SPECIFIC PUBLIC METHODS -----------------------------
8.2494 +-----------------------------------------------------------------------------
8.2495 +
8.2496 +FUNCTION Get_Priority (
8.2497 + company_ IN VARCHAR2,
8.2498 + identity_ IN VARCHAR2,
8.2499 + party_type_ IN VARCHAR2 ) RETURN NUMBER
8.2500 +IS
8.2501 + temp_ Public_Rec;
8.2502 +BEGIN
8.2503 + temp_ := Get(company_, identity_, Party_Type_API.Encode(party_type_));
8.2504 + RETURN temp_.priority;
8.2505 +END Get_Priority;
8.2506 +
8.2507 +FUNCTION Get_Blocked_For_Payment (
8.2508 + company_ IN VARCHAR2,
8.2509 + identity_ IN VARCHAR2,
8.2510 + party_type_ IN VARCHAR2 ) RETURN VARCHAR2
8.2511 +IS
8.2512 + temp_ Public_Rec;
8.2513 +BEGIN
8.2514 + temp_ := Get(company_, identity_, Party_Type_API.Encode(party_type_));
8.2515 + RETURN temp_.blocked_for_payment;
8.2516 +END Get_Blocked_For_Payment;
8.2517 +
8.2518 +FUNCTION Get_Payment_Delay (
8.2519 + company_ IN VARCHAR2,
8.2520 + identity_ IN VARCHAR2,
8.2521 + party_type_ IN VARCHAR2 ) RETURN NUMBER
8.2522 +IS
8.2523 + temp_ Public_Rec;
8.2524 +BEGIN
8.2525 + temp_ := Get(company_, identity_, Party_Type_API.Encode(party_type_));
8.2526 + RETURN NVL(temp_.payment_delay, 0);
8.2527 +END Get_Payment_Delay;
8.2528 +
8.2529 +FUNCTION Get_Amount_Tolerance (
8.2530 + company_ IN VARCHAR2,
8.2531 + identity_ IN VARCHAR2,
8.2532 + party_type_ IN VARCHAR2 ) RETURN NUMBER
8.2533 +IS
8.2534 + temp_ Public_Rec;
8.2535 +BEGIN
8.2536 + temp_ := Get(company_, identity_, Party_Type_API.Encode(party_type_));
8.2537 + RETURN temp_.amount_tolerance;
8.2538 +END Get_Amount_Tolerance;
8.2539 +
8.2540 +FUNCTION Get_Percent_Tolerance (
8.2541 + company_ IN VARCHAR2,
8.2542 + identity_ IN VARCHAR2,
8.2543 + party_type_ IN VARCHAR2 ) RETURN NUMBER
8.2544 +IS
8.2545 + temp_ Public_Rec;
8.2546 +BEGIN
8.2547 + temp_ := Get(company_, identity_, Party_Type_API.Encode(party_type_));
8.2548 + RETURN temp_.percent_tolerance;
8.2549 +END Get_Percent_Tolerance;
8.2550 +
8.2551 +FUNCTION Get_Disc_Days_Tolerance (
8.2552 + company_ IN VARCHAR2,
8.2553 + identity_ IN VARCHAR2,
8.2554 + party_type_ IN VARCHAR2 ) RETURN NUMBER
8.2555 +IS
8.2556 + temp_ &TABLE..disc_days_tolerance%TYPE;
8.2557 + CURSOR get_attr IS
8.2558 + SELECT disc_days_tolerance
8.2559 + FROM &TABLE
8.2560 + WHERE company = company_
8.2561 + AND identity = identity_
8.2562 + AND party_type = party_type_;
8.2563 +BEGIN
8.2564 + OPEN get_attr;
8.2565 + FETCH get_attr INTO temp_;
8.2566 + CLOSE get_attr;
8.2567 + RETURN temp_;
8.2568 +END Get_Disc_Days_Tolerance;
8.2569 +
8.2570 +FUNCTION Get_Netting_Allowed (
8.2571 + company_ IN VARCHAR2,
8.2572 + identity_ IN VARCHAR2,
8.2573 + party_type_ IN VARCHAR2 ) RETURN VARCHAR2
8.2574 +IS
8.2575 + temp_ &TABLE..netting_allowed%TYPE;
8.2576 + CURSOR get_attr (party_type_db_ IN VARCHAR2) IS
8.2577 + SELECT netting_allowed
8.2578 + FROM &TABLE
8.2579 + WHERE company = company_
8.2580 + AND identity = identity_
8.2581 + AND party_type = party_type_db_;
8.2582 +BEGIN
8.2583 + IF (NOT Company_Finance_API.Is_User_Authorized(company_)) THEN
8.2584 + RETURN temp_;
8.2585 + END IF;
8.2586 + OPEN get_attr(Party_Type_API.Encode(party_type_));
8.2587 + FETCH get_attr INTO temp_;
8.2588 + CLOSE get_attr;
8.2589 + RETURN temp_;
8.2590 +END Get_Netting_Allowed;
8.2591 +
8.2592 +FUNCTION Get_Check_Recipient (
8.2593 + company_ IN VARCHAR2,
8.2594 + identity_ IN VARCHAR2,
8.2595 + party_type_ IN VARCHAR2 ) RETURN VARCHAR2
8.2596 +IS
8.2597 + temp_ &TABLE..check_recipient%TYPE;
8.2598 + CURSOR get_attr (party_type_db_ IN VARCHAR2) IS
8.2599 + SELECT check_recipient
8.2600 + FROM &TABLE
8.2601 + WHERE company = company_
8.2602 + AND identity = identity_
8.2603 + AND party_type = party_type_db_;
8.2604 +BEGIN
8.2605 + OPEN get_attr(Party_Type_API.Encode(party_type_));
8.2606 + FETCH get_attr INTO temp_;
8.2607 + CLOSE get_attr;
8.2608 + RETURN Check_Recipient_API.Decode(temp_);
8.2609 +END Get_Check_Recipient;
8.2610 +
8.2611 +FUNCTION Get_Check_Recipient_Db (
8.2612 + company_ IN VARCHAR2,
8.2613 + identity_ IN VARCHAR2,
8.2614 + party_type_ IN VARCHAR2 ) RETURN VARCHAR2
8.2615 +IS
8.2616 + temp_ &TABLE..check_recipient%TYPE;
8.2617 + CURSOR get_attr (party_type_db_ IN VARCHAR2) IS
8.2618 + SELECT check_recipient
8.2619 + FROM &TABLE
8.2620 + WHERE company = company_
8.2621 + AND identity = identity_
8.2622 + AND party_type = party_type_db_;
8.2623 +BEGIN
8.2624 + OPEN get_attr(Party_Type_API.Encode(party_type_));
8.2625 + FETCH get_attr INTO temp_;
8.2626 + CLOSE get_attr;
8.2627 + RETURN temp_;
8.2628 +END Get_Check_Recipient_Db;
8.2629 +
8.2630 +FUNCTION Get_Next_Pay_Matching_Id (
8.2631 + company_ IN VARCHAR2,
8.2632 + identity_ IN VARCHAR2,
8.2633 + party_type_ IN VARCHAR2 ) RETURN VARCHAR2
8.2634 +IS
8.2635 + dummy_ NUMBER;
8.2636 +BEGIN
8.2637 + General_SYS.Init_Method(lu_name_, '&PKG', 'Get_Next_Pay_Matching_Id');
8.2638 + dummy_ := Get_Payment_Matching_Id ( company_,
8.2639 + identity_,
8.2640 + party_type_ ) + 1;
8.2641 + UPDATE identity_pay_info_tab
8.2642 + SET next_payment_matching_id = dummy_
8.2643 + WHERE company = company_
8.2644 + AND identity = identity_
8.2645 + AND party_type = party_type_ ;
8.2646 + RETURN dummy_ ;
8.2647 +END Get_Next_Pay_Matching_Id;
8.2648 +
8.2649 +FUNCTION Get_Payment_Matching_Id (
8.2650 + company_ IN VARCHAR2,
8.2651 + identity_ IN VARCHAR2,
8.2652 + party_type_ IN VARCHAR2 ) RETURN VARCHAR2
8.2653 +IS
8.2654 + CURSOR get_matching_id IS
8.2655 + SELECT next_payment_matching_id
8.2656 + FROM &TABLE
8.2657 + WHERE company = company_
8.2658 + AND identity = identity_
8.2659 + AND party_type = party_type_ ;
8.2660 +
8.2661 + dummy_ NUMBER;
8.2662 +BEGIN
8.2663 + General_SYS.Init_Method(lu_name_, '&PKG', 'Get_Payment_Matching_Id');
8.2664 + OPEN get_matching_id;
8.2665 + FETCH get_matching_id INTO dummy_;
8.2666 + CLOSE get_matching_id;
8.2667 +
8.2668 + RETURN dummy_ ;
8.2669 +END Get_Payment_Matching_Id;
8.2670 +
8.2671 +FUNCTION Get_Format_No (
8.2672 + company_ IN VARCHAR2,
8.2673 + identity_ IN VARCHAR2,
8.2674 + party_type_ IN VARCHAR2 ) RETURN NUMBER
8.2675 +IS
8.2676 + temp_ &TABLE..format_no%TYPE;
8.2677 + CURSOR get_attr (party_type_db_ IN VARCHAR2) IS
8.2678 + SELECT format_no
8.2679 + FROM &TABLE
8.2680 + WHERE company = company_
8.2681 + AND identity = identity_
8.2682 + AND party_type = party_type_db_;
8.2683 +BEGIN
8.2684 + IF (NOT Company_Finance_API.Is_User_Authorized(company_)) THEN
8.2685 + RETURN temp_;
8.2686 + END IF;
8.2687 + OPEN get_attr(Party_Type_API.Encode(party_type_));
8.2688 + FETCH get_attr INTO temp_;
8.2689 + CLOSE get_attr;
8.2690 + RETURN temp_;
8.2691 +END Get_Format_No;
8.2692 +
8.2693 +FUNCTION Get_Other_Payee_Ded_Group_Desc (
8.2694 + company_ IN VARCHAR2,
8.2695 + payee_identity_ IN VARCHAR2,
8.2696 + party_type_ IN VARCHAR2 ) RETURN VARCHAR2
8.2697 +IS
8.2698 + deduction_group_ VARCHAR2(20);
8.2699 +BEGIN
8.2700 + deduction_group_ := Get_Deduction_Group(company_,
8.2701 + payee_identity_,
8.2702 + party_type_ );
8.2703 + IF (deduction_group_ IS NULL) THEN
8.2704 + RETURN NULL;
8.2705 + END IF;
8.2706 +
8.2707 + RETURN Deduction_Group_API.Get_Description(company_,deduction_group_);
8.2708 +END Get_Other_Payee_Ded_Group_Desc;
8.2709 +
8.2710 +FUNCTION Get_Deduction_Group (
8.2711 + company_ IN VARCHAR2,
8.2712 + identity_ IN VARCHAR2,
8.2713 + party_type_ IN VARCHAR2 ) RETURN VARCHAR2
8.2714 +IS
8.2715 + temp_ &TABLE..deduction_group%TYPE;
8.2716 + CURSOR get_attr (party_type_db_ IN VARCHAR2) IS
8.2717 + SELECT deduction_group
8.2718 + FROM &TABLE
8.2719 + WHERE company = company_
8.2720 + AND identity = identity_
8.2721 + AND party_type = party_type_db_;
8.2722 +BEGIN
8.2723 + IF (NOT Company_Finance_API.Is_User_Authorized(company_)) THEN
8.2724 + RETURN temp_;
8.2725 + END IF;
8.2726 + OPEN get_attr(Party_Type_API.Encode(party_type_));
8.2727 + FETCH get_attr INTO temp_;
8.2728 + CLOSE get_attr;
8.2729 + RETURN temp_;
8.2730 +END Get_Deduction_Group;
8.2731 +
8.2732 +FUNCTION Get_Template_Id (
8.2733 + company_ IN VARCHAR2,
8.2734 + identity_ IN VARCHAR2,
8.2735 + party_type_ IN VARCHAR2 ) RETURN VARCHAR2
8.2736 +IS
8.2737 + temp_ &TABLE..template_id%TYPE;
8.2738 + CURSOR get_attr IS
8.2739 + SELECT template_id
8.2740 + FROM &TABLE
8.2741 + WHERE company = company_
8.2742 + AND identity = identity_
8.2743 + AND party_type = party_type_;
8.2744 +BEGIN
8.2745 + OPEN get_attr;
8.2746 + FETCH get_attr INTO temp_;
8.2747 + CLOSE get_attr;
8.2748 + RETURN temp_;
8.2749 +END Get_Template_Id;
8.2750 +
8.2751 +FUNCTION Get_Corporation_Id (
8.2752 + company_ IN VARCHAR2,
8.2753 + identity_ IN VARCHAR2,
8.2754 + party_type_ IN VARCHAR2 ) RETURN VARCHAR2
8.2755 +IS
8.2756 + temp_ &TABLE..corporation_id%TYPE;
8.2757 + CURSOR get_attr (party_type_db_ IN VARCHAR2) IS
8.2758 + SELECT corporation_id
8.2759 + FROM &TABLE
8.2760 + WHERE company = company_
8.2761 + AND identity = identity_
8.2762 + AND party_type = party_type_db_;
8.2763 +BEGIN
8.2764 + IF (NOT Company_Finance_API.Is_User_Authorized(company_)) THEN
8.2765 + RETURN temp_;
8.2766 + END IF;
8.2767 + OPEN get_attr(Party_Type_API.Encode(party_type_));
8.2768 + FETCH get_attr INTO temp_;
8.2769 + CLOSE get_attr;
8.2770 + RETURN temp_;
8.2771 +END Get_Corporation_Id;
8.2772 +
8.2773 +FUNCTION Get_Member_Id (
8.2774 + company_ IN VARCHAR2,
8.2775 + identity_ IN VARCHAR2,
8.2776 + party_type_ IN VARCHAR2 ) RETURN VARCHAR2
8.2777 +IS
8.2778 + temp_ &TABLE..member_id%TYPE;
8.2779 + CURSOR get_attr (party_type_db_ IN VARCHAR2) IS
8.2780 + SELECT member_id
8.2781 + FROM &TABLE
8.2782 + WHERE company = company_
8.2783 + AND identity = identity_
8.2784 + AND party_type = party_type_db_;
8.2785 +BEGIN
8.2786 + IF (NOT Company_Finance_API.Is_User_Authorized(company_)) THEN
8.2787 + RETURN temp_;
8.2788 + END IF;
8.2789 + OPEN get_attr(Party_Type_API.Encode(party_type_));
8.2790 + FETCH get_attr INTO temp_;
8.2791 + CLOSE get_attr;
8.2792 + RETURN temp_;
8.2793 +END Get_Member_Id;
8.2794 +
8.2795 +FUNCTION Get_Send_Reminder_To_Payer (
8.2796 + company_ IN VARCHAR2,
8.2797 + identity_ IN VARCHAR2,
8.2798 + party_type_ IN VARCHAR2 ) RETURN VARCHAR2
8.2799 +IS
8.2800 + temp_ &TABLE..send_reminder_to_payer%TYPE;
8.2801 + CURSOR get_attr (party_type_db_ IN VARCHAR2) IS
8.2802 + SELECT send_reminder_to_payer
8.2803 + FROM &TABLE
8.2804 + WHERE company = company_
8.2805 + AND identity = identity_
8.2806 + AND party_type = party_type_db_;
8.2807 +BEGIN
8.2808 + IF (NOT Company_Finance_API.Is_User_Authorized(company_)) THEN
8.2809 + RETURN temp_;
8.2810 + END IF;
8.2811 + OPEN get_attr(Party_Type_API.Encode(party_type_));
8.2812 + FETCH get_attr INTO temp_;
8.2813 + CLOSE get_attr;
8.2814 + RETURN temp_;
8.2815 +END Get_Send_Reminder_To_Payer;
8.2816 +
8.2817 +FUNCTION Get_Send_Interest_Inv_To_Payer (
8.2818 + company_ IN VARCHAR2,
8.2819 + identity_ IN VARCHAR2,
8.2820 + party_type_ IN VARCHAR2 ) RETURN VARCHAR2
8.2821 +IS
8.2822 + temp_ &TABLE..send_interest_inv_to_payer%TYPE;
8.2823 + CURSOR get_attr (party_type_db_ IN VARCHAR2) IS
8.2824 + SELECT send_interest_inv_to_payer
8.2825 + FROM &TABLE
8.2826 + WHERE company = company_
8.2827 + AND identity = identity_
8.2828 + AND party_type = party_type_db_;
8.2829 +BEGIN
8.2830 + IF (NOT Company_Finance_API.Is_User_Authorized(company_)) THEN
8.2831 + RETURN temp_;
8.2832 + END IF;
8.2833 + OPEN get_attr(Party_Type_API.Encode(party_type_));
8.2834 + FETCH get_attr INTO temp_;
8.2835 + CLOSE get_attr;
8.2836 + RETURN temp_;
8.2837 +END Get_Send_Interest_Inv_To_Payer;
8.2838 +
8.2839 +FUNCTION Get_Payment_Advice (
8.2840 + company_ IN VARCHAR2,
8.2841 + identity_ IN VARCHAR2,
8.2842 + party_type_ IN VARCHAR2 ) RETURN VARCHAR2
8.2843 +IS
8.2844 + temp_ &TABLE..payment_advice%TYPE;
8.2845 + CURSOR get_attr (party_type_db_ IN VARCHAR2) IS
8.2846 + SELECT payment_advice
8.2847 + FROM &TABLE
8.2848 + WHERE company = company_
8.2849 + AND identity = identity_
8.2850 + AND party_type = party_type_db_;
8.2851 +BEGIN
8.2852 + IF (NOT Company_Finance_API.Is_User_Authorized(company_)) THEN
8.2853 + RETURN temp_;
8.2854 + END IF;
8.2855 + OPEN get_attr(Party_Type_API.Encode(party_type_));
8.2856 + FETCH get_attr INTO temp_;
8.2857 + CLOSE get_attr;
8.2858 + RETURN Payment_Advice_API.Decode(temp_);
8.2859 +END Get_Payment_Advice;
8.2860 +
8.2861 +FUNCTION Get_Payment_Advice_Db (
8.2862 + company_ IN VARCHAR2,
8.2863 + identity_ IN VARCHAR2,
8.2864 + party_type_ IN VARCHAR2 ) RETURN VARCHAR2
8.2865 +IS
8.2866 + temp_ &TABLE..payment_advice%TYPE;
8.2867 + CURSOR get_attr (party_type_db_ IN VARCHAR2) IS
8.2868 + SELECT payment_advice
8.2869 + FROM &TABLE
8.2870 + WHERE company = company_
8.2871 + AND identity = identity_
8.2872 + AND party_type = party_type_db_;
8.2873 +BEGIN
8.2874 + IF (NOT Company_Finance_API.Is_User_Authorized(company_)) THEN
8.2875 + RETURN temp_;
8.2876 + END IF;
8.2877 + OPEN get_attr(Party_Type_API.Encode(party_type_));
8.2878 + FETCH get_attr INTO temp_;
8.2879 + CLOSE get_attr;
8.2880 + RETURN temp_;
8.2881 +END Get_Payment_Advice_Db;
8.2882 +
8.2883 +
8.2884 +FUNCTION Get_Other_Payee_Identity (
8.2885 + company_ IN VARCHAR2,
8.2886 + identity_ IN VARCHAR2,
8.2887 + party_type_ IN VARCHAR2 ) RETURN VARCHAR2
8.2888 +IS
8.2889 + temp_ Public_Rec;
8.2890 +BEGIN
8.2891 + temp_ := Get(company_, identity_, Party_Type_API.Encode(party_type_));
8.2892 + RETURN temp_.other_payee_identity;
8.2893 +END Get_Other_Payee_Identity;
8.2894 +
8.2895 +FUNCTION Get_Interest_Template (
8.2896 + company_ IN VARCHAR2,
8.2897 + identity_ IN VARCHAR2,
8.2898 + party_type_ IN VARCHAR2 ) RETURN VARCHAR2
8.2899 +IS
8.2900 + temp_ Public_Rec;
8.2901 +BEGIN
8.2902 + temp_ := Get(company_, identity_, Party_Type_API.Encode(party_type_));
8.2903 + RETURN temp_.interest_template;
8.2904 +END Get_Interest_Template;
8.2905 +
8.2906 +FUNCTION Get_Reminder_Template (
8.2907 + company_ IN VARCHAR2,
8.2908 + identity_ IN VARCHAR2,
8.2909 + party_type_ IN VARCHAR2 ) RETURN VARCHAR2
8.2910 +IS
8.2911 + temp_ Public_Rec;
8.2912 +BEGIN
8.2913 + temp_ := Get(company_, identity_, Party_Type_API.Encode(party_type_));
8.2914 + RETURN temp_.reminder_template;
8.2915 +END Get_Reminder_Template;
8.2916 +
8.2917 +FUNCTION Get_Rule_Id (
8.2918 + company_ IN VARCHAR2,
8.2919 + identity_ IN VARCHAR2,
8.2920 + party_type_ IN VARCHAR2 ) RETURN VARCHAR2
8.2921 +IS
8.2922 + temp_ &TABLE..rule_id%TYPE;
8.2923 + CURSOR get_attr (party_type_db_ IN VARCHAR2) IS
8.2924 + SELECT rule_id
8.2925 + FROM &TABLE
8.2926 + WHERE company = company_
8.2927 + AND identity = identity_
8.2928 + AND party_type = party_type_db_;
8.2929 +BEGIN
8.2930 + IF (NOT Company_Finance_API.Is_User_Authorized(company_)) THEN
8.2931 + RETURN temp_;
8.2932 + END IF;
8.2933 + OPEN get_attr(Party_Type_API.Encode(party_type_));
8.2934 + FETCH get_attr INTO temp_;
8.2935 + CLOSE get_attr;
8.2936 + RETURN temp_;
8.2937 +END Get_Rule_Id;
8.2938 +
8.2939 +FUNCTION Get_Payment_Receipt_Type (
8.2940 + company_ IN VARCHAR2,
8.2941 + identity_ IN VARCHAR2,
8.2942 + party_type_ IN VARCHAR2 ) RETURN VARCHAR2
8.2943 +IS
8.2944 + temp_ &TABLE..payment_receipt_type%TYPE;
8.2945 + CURSOR get_attr (party_type_db_ IN VARCHAR2) IS
8.2946 + SELECT payment_receipt_type
8.2947 + FROM &TABLE
8.2948 + WHERE company = company_
8.2949 + AND identity = identity_
8.2950 + AND party_type = party_type_db_;
8.2951 +BEGIN
8.2952 + OPEN get_attr(Party_Type_API.Encode(party_type_));
8.2953 + FETCH get_attr INTO temp_;
8.2954 + CLOSE get_attr;
8.2955 + RETURN Payment_Receipt_Type_API.Decode(temp_);
8.2956 +END Get_Payment_Receipt_Type;
8.2957 +
8.2958 +FUNCTION Get_Payment_Receipt_Type_Db (
8.2959 + company_ IN VARCHAR2,
8.2960 + identity_ IN VARCHAR2,
8.2961 + party_type_ IN VARCHAR2 ) RETURN VARCHAR2
8.2962 +IS
8.2963 + temp_ &TABLE..payment_receipt_type%TYPE;
8.2964 + CURSOR get_attr (party_type_db_ IN VARCHAR2) IS
8.2965 + SELECT payment_receipt_type
8.2966 + FROM &TABLE
8.2967 + WHERE company = company_
8.2968 + AND identity = identity_
8.2969 + AND party_type = party_type_db_;
8.2970 +BEGIN
8.2971 + OPEN get_attr(Party_Type_API.Encode(party_type_));
8.2972 + FETCH get_attr INTO temp_;
8.2973 + CLOSE get_attr;
8.2974 + RETURN temp_;
8.2975 +END Get_Payment_Receipt_Type_Db;
8.2976 +
8.2977 +PROCEDURE Instance_Exists (
8.2978 + info_ OUT VARCHAR2,
8.2979 + company_ IN VARCHAR2,
8.2980 + identity_ IN VARCHAR2,
8.2981 + party_type_ IN VARCHAR2 )
8.2982 +IS
8.2983 + CURSOR getrec (party_type_db_ IN VARCHAR2) IS
8.2984 + SELECT '1'
8.2985 + FROM &TABLE
8.2986 + WHERE company = company_
8.2987 + AND identity = identity_
8.2988 + AND party_type = party_type_db_;
8.2989 + lu_rec_ getrec%ROWTYPE;
8.2990 +BEGIN
8.2991 + General_SYS.Init_Method(lu_name_, '&PKG', 'Instance_Exists');
8.2992 + OPEN getrec(Party_Type_API.Encode(party_type_));
8.2993 + FETCH getrec INTO lu_rec_;
8.2994 + IF (getrec%FOUND) THEN
8.2995 + info_ := 'TRUE';
8.2996 + ELSE
8.2997 + info_ := 'FALSE';
8.2998 + END IF;
8.2999 + CLOSE getrec;
8.3000 +END Instance_Exists;
8.3001 +
8.3002 +PROCEDURE Create_Party_Type_Id (
8.3003 + company_ IN VARCHAR2,
8.3004 + identity_ IN VARCHAR2,
8.3005 + party_type_ IN VARCHAR2 )
8.3006 +IS
8.3007 +BEGIN
8.3008 + General_SYS.Init_Method(lu_name_, '&PKG', 'Create_Party_Type_Id');
8.3009 + Create_Identity_Pay_Info(company_, identity_, party_type_);
8.3010 +END Create_Party_Type_Id;
8.3011 +
8.3012 +PROCEDURE Create_Identity_Pay_Info (
8.3013 + company_ IN VARCHAR2,
8.3014 + identity_ IN VARCHAR2,
8.3015 + party_type_ IN VARCHAR2 )
8.3016 +IS
8.3017 + info_ VARCHAR2(2000);
8.3018 + objid_ &VIEW..objid%TYPE;
8.3019 + objversion_ &VIEW..objversion%TYPE;
8.3020 + attr_ VARCHAR2(2000);
8.3021 + def_template_ VARCHAR2(20);
8.3022 + nodefinteresttemp EXCEPTION;
8.3023 + nodefremindertemp EXCEPTION;
8.3024 + party_type_db_ &TABLE..party_type%TYPE;
8.3025 +BEGIN
8.3026 + General_SYS.Init_Method(lu_name_, '&PKG', 'Create_Identity_Pay_Info');
8.3027 +
8.3028 + party_type_db_ := Party_Type_API.Encode(party_type_);
8.3029 +
8.3030 + New__(info_, objid_, objversion_, attr_, 'PREPARE');
8.3031 + Client_SYS.Add_To_Attr('COMPANY', company_, attr_);
8.3032 + Client_SYS.Add_To_Attr('IDENTITY', identity_, attr_);
8.3033 + Client_SYS.Add_To_Attr('PARTY_TYPE', party_type_, attr_);
8.3034 + IF (party_type_db_ = 'SUPPLIER') THEN
8.3035 + Client_SYS.Add_To_Attr('BLOCKED_FOR_PAYMENT', 'FALSE', attr_);
8.3036 + Client_SYS.Add_To_Attr('PRIORITY', 1, attr_);
8.3037 + Client_SYS.Add_To_Attr('CHECK_RECIPIENT', 'PAYEE', attr_);
8.3038 + ELSIF (party_type_db_ = 'CUSTOMER') THEN
8.3039 + def_template_ := Interest_Template_API.Get_Default_Template(company_);
8.3040 + IF (def_template_ IS NULL) THEN
8.3041 + RAISE nodefinteresttemp;
8.3042 + ELSE
8.3043 + Client_SYS.Add_To_Attr('INTEREST_TEMPLATE', def_template_, attr_);
8.3044 + END IF;
8.3045 + def_template_ := Reminder_Template_API.Get_Default_Template(company_);
8.3046 + IF (def_template_ IS NULL) THEN
8.3047 + RAISE nodefremindertemp;
8.3048 + ELSE
8.3049 + Client_SYS.Add_To_Attr('REMINDER_TEMPLATE', def_template_, attr_);
8.3050 + END IF;
8.3051 + IF Company_Invoice_Info_API.Get_Use_Tax_Invoice(company_) = 'TRUE' THEN
8.3052 + Client_SYS.Add_To_Attr('PAYMENT_RECEIPT_TYPE_DB', 'AT_MATCHING', attr_);
8.3053 + ELSE
8.3054 + Client_SYS.Add_To_Attr('PAYMENT_RECEIPT_TYPE_DB', 'NO_RECEIPT', attr_);
8.3055 + END IF;
8.3056 + END IF;
8.3057 + New__(info_, objid_, objversion_, attr_, 'DO');
8.3058 +EXCEPTION
8.3059 + WHEN nodefremindertemp THEN
8.3060 + Error_SYS.Record_General(lu_name_, 'NODEFREMINDERTEMP: There is no default reminder template defined');
8.3061 + WHEN nodefinteresttemp THEN
8.3062 + Error_SYS.Record_General(lu_name_, 'NODEFINTERESTTEMP: There is no default interest template defined');
8.3063 +END Create_Identity_Pay_Info;
8.3064 +
8.3065 +FUNCTION Validate_Identity (
8.3066 + company_ IN VARCHAR2,
8.3067 + party_type_ IN VARCHAR2,
8.3068 + identity_ IN VARCHAR2 ) RETURN VARCHAR2
8.3069 +IS
8.3070 + dummy_ NUMBER;
8.3071 + CURSOR exist_identity (party_type_db_ IN VARCHAR2) IS
8.3072 + SELECT 1
8.3073 + FROM &TABLE
8.3074 + WHERE company = company_
8.3075 + AND party_type = party_type_db_
8.3076 + AND identity = identity_ ;
8.3077 +BEGIN
8.3078 + OPEN exist_identity(Party_Type_API.Encode(party_type_));
8.3079 + FETCH exist_identity INTO dummy_;
8.3080 + IF (exist_identity %FOUND) THEN
8.3081 + CLOSE exist_identity ;
8.3082 + RETURN('TRUE');
8.3083 + END IF;
8.3084 + CLOSE exist_identity ;
8.3085 + RETURN('FALSE');
8.3086 +END Validate_Identity;
8.3087 +
8.3088 +PROCEDURE Fetch_Tolerance (
8.3089 + amount_tolerance_ OUT NUMBER,
8.3090 + percent_tolerance_ OUT NUMBER,
8.3091 + company_ IN VARCHAR2,
8.3092 + identity_ IN VARCHAR2,
8.3093 + party_type_ IN VARCHAR2,
8.3094 + currency_ IN VARCHAR2,
8.3095 + curr_rate_ IN NUMBER,
8.3096 + conv_factor_ IN NUMBER,
8.3097 + date_ IN DATE,
8.3098 + action_ IN VARCHAR2 )
8.3099 +IS
8.3100 + acc_currency_ VARCHAR2(20);
8.3101 + div_factor_ NUMBER;
8.3102 + amount_tolerance_acc_curr_ NUMBER;
8.3103 + currency_rate_ NUMBER;
8.3104 + dummy_ VARCHAR2(5);
8.3105 + party_type_db_ VARCHAR2(20);
8.3106 +
8.3107 + CURSOR get_identity_tolerance_ IS
8.3108 + SELECT percent_tolerance, amount_tolerance
8.3109 + FROM &TABLE
8.3110 + WHERE company = company_
8.3111 + AND identity = identity_
8.3112 + AND party_type = party_type_db_;
8.3113 +
8.3114 + CURSOR get_company_tolerance_ IS
8.3115 + SELECT percent_tolerance, amount_tolerance
8.3116 + FROM COMPANY_PAY_INFO_TAB
8.3117 + WHERE company = company_;
8.3118 +
8.3119 +BEGIN
8.3120 + General_SYS.Init_Method(lu_name_, '&PKG', 'Fetch_Tolerance');
8.3121 +
8.3122 + party_type_db_ := Party_Type_API.Encode(party_type_);
8.3123 +
8.3124 + IF party_type_db_ = 'CUSTOMER' THEN
8.3125 + OPEN get_identity_tolerance_;
8.3126 + FETCH get_identity_tolerance_ INTO percent_tolerance_, amount_tolerance_acc_curr_;
8.3127 + CLOSE get_identity_tolerance_;
8.3128 +
8.3129 + -- general payment tolerance
8.3130 + IF percent_tolerance_ IS NULL AND amount_tolerance_acc_curr_ IS NULL THEN
8.3131 + OPEN get_company_tolerance_;
8.3132 + FETCH get_company_tolerance_ INTO percent_tolerance_, amount_tolerance_acc_curr_;
8.3133 + CLOSE get_company_tolerance_;
8.3134 + END IF;
8.3135 +
8.3136 + ELSIF party_type_db_ = 'SUPPLIER' THEN
8.3137 + -- general payment tolerance
8.3138 + OPEN get_company_tolerance_;
8.3139 + FETCH get_company_tolerance_ INTO percent_tolerance_, amount_tolerance_acc_curr_;
8.3140 + CLOSE get_company_tolerance_;
8.3141 + END IF;
8.3142 +
8.3143 + IF action_ = 'NOCALCULATE' THEN
8.3144 + amount_tolerance_ := amount_tolerance_acc_curr_;
8.3145 + RETURN;
8.3146 + END IF;
8.3147 +
8.3148 + acc_currency_ := Company_Finance_API.Get_Currency_Code(company_);
8.3149 +
8.3150 + IF acc_currency_ = currency_ THEN
8.3151 + amount_tolerance_ := amount_tolerance_acc_curr_;
8.3152 + RETURN;
8.3153 + END IF;
8.3154 + div_factor_:= conv_factor_;
8.3155 + currency_rate_ := curr_rate_;
8.3156 + IF ( (div_factor_ IS NULL) OR (currency_rate_ IS NULL)) THEN
8.3157 + Payment_Library_API.Get_Currency_Rate(
8.3158 + currency_rate_,
8.3159 + div_factor_,
8.3160 + dummy_,
8.3161 + dummy_,
8.3162 + company_,
8.3163 + currency_,
8.3164 + NVL( date_, sysdate),
8.3165 + NULL,
8.3166 + party_type_db_,
8.3167 + identity_
8.3168 + );
8.3169 + END IF;
8.3170 + IF (date_ IS NOT NULL) AND ((div_factor_ IS NULL) OR (currency_rate_ IS NULL)) THEN
8.3171 + Payment_Library_API.Get_Currency_Rate(
8.3172 + currency_rate_,
8.3173 + div_factor_,
8.3174 + dummy_,
8.3175 + dummy_,
8.3176 + company_,
8.3177 + currency_,
8.3178 + sysdate,
8.3179 + NULL,
8.3180 + party_type_db_,
8.3181 + identity_
8.3182 + );
8.3183 + END IF;
8.3184 +
8.3185 + Payment_Library_API.Recalculate_To_Curr_Round(
8.3186 + amount_tolerance_,
8.3187 + company_,
8.3188 + amount_tolerance_acc_curr_,
8.3189 + curr_rate_,
8.3190 + div_factor_,
8.3191 + currency_);
8.3192 +END Fetch_Tolerance;
8.3193 +
8.3194 +PROCEDURE Copy_Payway_Per_Identity___ (
8.3195 + company_ IN VARCHAR2,
8.3196 + identity_ IN VARCHAR2,
8.3197 + party_type_db_ IN VARCHAR2,
8.3198 + new_identity_ IN VARCHAR2 )
8.3199 +IS
8.3200 + CURSOR get_pay_way IS
8.3201 + SELECT *
8.3202 + FROM PAYMENT_WAY_PER_IDENTITY_TAB
8.3203 + WHERE company = company_
8.3204 + AND identity = identity_
8.3205 + AND party_type = party_type_db_;
8.3206 +BEGIN
8.3207 + FOR pay_way_ IN get_pay_way LOOP
8.3208 + INSERT INTO PAYMENT_WAY_PER_IDENTITY_TAB (company, identity, party_type,
8.3209 + way_id, default_payment_way, rowversion )
8.3210 + VALUES (pay_way_.company, new_identity_, pay_way_.party_type,
8.3211 + pay_way_.way_id, pay_way_.default_payment_way, 1 );
8.3212 + END LOOP;
8.3213 +END Copy_Payway_Per_Identity___;
8.3214 +
8.3215 +PROCEDURE Copy_Payment_Address___ (
8.3216 + company_ IN VARCHAR2,
8.3217 + identity_ IN VARCHAR2,
8.3218 + party_type_db_ IN VARCHAR2,
8.3219 + new_identity_ IN VARCHAR2 )
8.3220 +IS
8.3221 + CURSOR get_pay_addr IS
8.3222 + SELECT *
8.3223 + FROM PAYMENT_ADDRESS_TAB
8.3224 + WHERE company = company_
8.3225 + AND identity = identity_
8.3226 + AND party_type = party_type_db_;
8.3227 +BEGIN
8.3228 + FOR pay_addr_ IN get_pay_addr LOOP
8.3229 + -- Bug 72177, Begin, Added bic_code
8.3230 + INSERT INTO PAYMENT_ADDRESS_TAB (company, identity, party_type, way_id,
8.3231 + address_id,description, default_address,
8.3232 + data1, data2, data3, data4, data5, data6,
8.3233 + data7, data8, data9, data10, data11, data12,
8.3234 + data13, data14, data15, data16, data17, data18,
8.3235 + data19, data20, data21, data22,
8.3236 + account, bic_code, rowversion, rowtype )
8.3237 + VALUES (pay_addr_.company, new_identity_, pay_addr_.party_type, pay_addr_.way_id,
8.3238 + pay_addr_.address_id,
8.3239 + pay_addr_.description, pay_addr_.default_address,
8.3240 + pay_addr_.data1, pay_addr_.data2, pay_addr_.data3,
8.3241 + pay_addr_.data4, pay_addr_.data5, pay_addr_.data6,
8.3242 + pay_addr_.data7, pay_addr_.data8, pay_addr_.data9,
8.3243 + pay_addr_.data10, pay_addr_.data11, pay_addr_.data12,
8.3244 + pay_addr_.data13, pay_addr_.data14, pay_addr_.data15,
8.3245 + pay_addr_.data16, pay_addr_.data17, pay_addr_.data18,
8.3246 + pay_addr_.data19, pay_addr_.data20, pay_addr_.data21,
8.3247 + pay_addr_.data22,pay_addr_.account, pay_addr_.bic_code, 1, pay_addr_.rowtype );
8.3248 + -- Bug 72177, End
8.3249 +
8.3250 + END LOOP;
8.3251 +END Copy_Payment_Address___;
8.3252 +
8.3253 +PROCEDURE Copy_Customer (
8.3254 + customer_identity_old_ IN VARCHAR2,
8.3255 + customer_identity_new_ IN VARCHAR2,
8.3256 + company_ IN VARCHAR2 )
8.3257 +IS
8.3258 + CURSOR get_customer IS
8.3259 + SELECT *
8.3260 + FROM IDENTITY_PAY_INFO_TAB
8.3261 + WHERE identity = customer_identity_old_
8.3262 + AND company = company_
8.3263 + AND party_type = 'CUSTOMER';
8.3264 +
8.3265 + CURSOR get_credit_info IS
8.3266 + SELECT *
8.3267 + FROM CUSTOMER_CREDIT_INFO_TAB
8.3268 + WHERE identity = customer_identity_old_
8.3269 + AND company = company_;
8.3270 +
8.3271 + format_no_ NUMBER;
8.3272 +BEGIN
8.3273 + General_SYS.Init_Method(lu_name_, '&PKG', 'Copy_Customer');
8.3274 + FOR customer_ IN get_customer LOOP
8.3275 + format_no_ := Get_Next_Format_No___ (company_);
8.3276 + -- Bug 73125, Begin, Added template_id
8.3277 + INSERT INTO IDENTITY_PAY_INFO_TAB (company, identity, party_type,
8.3278 + reminder_template, interest_template, payment_delay,
8.3279 + amount_tolerance, percent_tolerance, disc_days_tolerance,
8.3280 + netting_allowed, format_no, payment_advice,
8.3281 + deduction_group, corporation_id,
8.3282 + other_payee_identity, member_id,
8.3283 + send_reminder_to_payer, send_interest_inv_to_payer,
8.3284 + payment_receipt_type,send_statement_of_acc_to_payer ,
8.3285 + next_payment_matching_id,
8.3286 + template_id,rowversion )
8.3287 + VALUES (customer_.company, customer_identity_new_, 'CUSTOMER',
8.3288 + customer_.reminder_template, customer_.interest_template, customer_.payment_delay,
8.3289 + customer_.amount_tolerance, customer_.percent_tolerance, customer_.disc_days_tolerance,
8.3290 + customer_.netting_allowed, format_no_, customer_.payment_advice,
8.3291 + customer_.deduction_group, customer_.corporation_id,
8.3292 + customer_.other_payee_identity, customer_.member_id,
8.3293 + customer_.send_reminder_to_payer, customer_.send_interest_inv_to_payer,
8.3294 + customer_.payment_receipt_type,
8.3295 + customer_.send_statement_of_acc_to_payer, 1,
8.3296 + customer_.template_id,1 );
8.3297 + -- Bug 73125, End
8.3298 +
8.3299 +
8.3300 + Copy_Payway_Per_Identity___( customer_.company,
8.3301 + customer_identity_old_,
8.3302 + 'CUSTOMER',
8.3303 + customer_identity_new_ );
8.3304 + Copy_Payment_Address___( customer_.company,
8.3305 + customer_identity_old_,
8.3306 + 'CUSTOMER',
8.3307 + customer_identity_new_ );
8.3308 + END LOOP;
8.3309 +
8.3310 + FOR credit_ IN get_credit_info LOOP
8.3311 + INSERT INTO CUSTOMER_CREDIT_INFO_TAB (company, identity, last4q_sales,
8.3312 + note_text, credit_number, credit_rating, avg_days_for_payment,
8.3313 + credit_comments,credit_limit,credit_block,
8.3314 + next_review_date,corp_credit_relation_exist,
8.3315 + credit_relationship_type,message_type,
8.3316 + party_type,parent_identity,parent_company,
8.3317 + credit_analyst_code,rowversion )
8.3318 + VALUES (credit_.company, customer_identity_new_, credit_.last4q_sales,
8.3319 + credit_.note_text, credit_.credit_number, credit_.credit_rating, credit_.avg_days_for_payment,
8.3320 + credit_.credit_comments,credit_.credit_limit,credit_.credit_block,
8.3321 + credit_.next_review_date,'FALSE',
8.3322 + NULL,credit_.message_type,
8.3323 + credit_.party_type,NULL,NULL,
8.3324 + credit_.credit_analyst_code, sysdate );
8.3325 + END LOOP;
8.3326 +END Copy_Customer;
8.3327 +
8.3328 +PROCEDURE Copy_Supplier (
8.3329 + supplier_identity_old_ IN VARCHAR2,
8.3330 + supplier_identity_new_ IN VARCHAR2,
8.3331 + company_ IN VARCHAR2 )
8.3332 +IS
8.3333 + CURSOR get_supplier IS
8.3334 + SELECT *
8.3335 + FROM IDENTITY_PAY_INFO_TAB
8.3336 + WHERE identity = supplier_identity_old_
8.3337 + AND company = company_
8.3338 + AND party_type = 'SUPPLIER';
8.3339 +
8.3340 + attr_ VARCHAR2(2000);
8.3341 + info_ VARCHAR2(2000);
8.3342 + objid_ VARCHAR2(2000);
8.3343 + objversion_ VARCHAR2(2000);
8.3344 + format_no_ NUMBER;
8.3345 +BEGIN
8.3346 + General_SYS.Init_Method(lu_name_, '&PKG', 'Copy_Supplier');
8.3347 + FOR supplier_ IN get_supplier LOOP
8.3348 + format_no_ := Get_Next_Format_No___ (company_);
8.3349 + -- Bug 73125, Begin, Added template_id
8.3350 + INSERT INTO IDENTITY_PAY_INFO_TAB (company, identity, party_type,
8.3351 + priority, blocked_for_payment,
8.3352 + reminder_template, interest_template,
8.3353 + amount_tolerance, percent_tolerance,
8.3354 + netting_allowed, format_no,
8.3355 + payment_advice, next_payment_matching_id,check_recipient,
8.3356 + template_id, rowversion )
8.3357 + VALUES (supplier_.company, supplier_identity_new_, 'SUPPLIER',
8.3358 + supplier_.priority, supplier_.blocked_for_payment,
8.3359 + supplier_.reminder_template, supplier_.interest_template,
8.3360 + supplier_.amount_tolerance, supplier_.percent_tolerance,
8.3361 + supplier_.netting_allowed, format_no_,
8.3362 + supplier_.payment_advice, 1, supplier_.check_recipient,
8.3363 + supplier_.template_id,1 );
8.3364 + -- Bug 73125, End
8.3365 + Copy_Payway_Per_Identity___( supplier_.company,
8.3366 + supplier_identity_old_,
8.3367 + 'SUPPLIER',
8.3368 + supplier_identity_new_ );
8.3369 + Copy_Payment_Address___( supplier_.company,
8.3370 + supplier_identity_old_,
8.3371 + 'SUPPLIER',
8.3372 + supplier_identity_new_ );
8.3373 + END LOOP;
8.3374 +END Copy_Supplier;
8.3375 +
8.3376 +FUNCTION Get (
8.3377 + company_ IN VARCHAR2,
8.3378 + identity_ IN VARCHAR2,
8.3379 + party_type_db_ IN VARCHAR2 ) RETURN Public_Rec
8.3380 +IS
8.3381 + temp_ Public_Rec;
8.3382 + CURSOR get_attr IS
8.3383 + SELECT priority, blocked_for_payment, other_payee_identity, interest_template, reminder_template,payment_delay,
8.3384 + amount_tolerance, percent_tolerance, disc_days_tolerance, netting_allowed, format_no, payment_advice,
8.3385 + deduction_group,corporation_id,member_id,send_reminder_to_payer,send_interest_inv_to_payer,payment_receipt_type,
8.3386 + template_id, check_recipient, send_statement_of_acc_to_payer
8.3387 + FROM &TABLE
8.3388 + WHERE company = company_
8.3389 + AND identity = identity_
8.3390 + AND party_type = party_type_db_;
8.3391 +BEGIN
8.3392 + IF (NOT Company_Finance_API.Is_User_Authorized(company_)) THEN
8.3393 + RETURN temp_;
8.3394 + END IF;
8.3395 +
8.3396 + OPEN get_attr;
8.3397 + FETCH get_attr INTO temp_;
8.3398 + CLOSE get_attr;
8.3399 + RETURN temp_;
8.3400 +END Get;
8.3401 +
8.3402 +PROCEDURE User_Allowed___(
8.3403 + company_ IN VARCHAR2)
8.3404 +IS
8.3405 + fnd_user_ VARCHAR2(2000);
8.3406 +
8.3407 +BEGIN
8.3408 +
8.3409 + fnd_user_ := Fnd_Session_API.Get_Fnd_User;
8.3410 +
8.3411 + IF NOT (company_finance_api.Is_User_Authorized(company_)) then
8.3412 + Error_SYS.Appl_General(lu_name_,'NOTUSERALLOWED: User :P1 is not allowed to use Company :P2',fnd_user_,company_);
8.3413 + END IF;
8.3414 +
8.3415 +END User_Allowed___;
8.3416 +
8.3417 +
8.3418 +-- --------------------------------------------------------------------------
8.3419 +-- Server-side functions used by new report (Output Servicese)
8.3420 +-- --------------------------------------------------------------------------
8.3421 +FUNCTION Get_Group_For_Identity (
8.3422 + company_ IN VARCHAR2,
8.3423 + identity_ IN VARCHAR2,
8.3424 + party_type_db_ IN VARCHAR2 ) RETURN VARCHAR2
8.3425 +IS
8.3426 + CURSOR get_group IS
8.3427 + SELECT group_id
8.3428 + FROM IDENTITY_INVOICE_INFO
8.3429 + WHERE company = company_
8.3430 + AND identity = identity_
8.3431 + AND party_type_db = party_type_db_ ;
8.3432 + group_id_ VARCHAR2(20);
8.3433 +BEGIN
8.3434 + OPEN get_group;
8.3435 + FETCH get_group INTO group_id_;
8.3436 + IF (get_group%NOTFOUND) THEN
8.3437 + CLOSE get_group;
8.3438 + RETURN NULL;
8.3439 + END IF;
8.3440 + CLOSE get_group;
8.3441 +
8.3442 + RETURN group_id_;
8.3443 +END Get_Group_For_Identity;
8.3444 +
8.3445 +PROCEDURE Make_Company (
8.3446 + attr_ IN VARCHAR2 )
8.3447 +IS
8.3448 + rec_ Enterp_Comp_Connect_V160_API.Crecomp_Lu_Public_Rec;
8.3449 +BEGIN
8.3450 + General_SYS.Init_Method(lu_name_, '&PKG', 'Make_Company');
8.3451 +
8.3452 + rec_ := Enterp_Comp_Connect_V160_API.Get_Crecomp_Lu_Rec('&MODULE', attr_);
8.3453 +
8.3454 + IF (rec_.make_company = 'EXPORT') THEN
8.3455 + Export___(rec_);
8.3456 + ELSIF (rec_.make_company = 'IMPORT') THEN
8.3457 + IF (rec_.action = 'NEW') THEN
8.3458 + Import___(rec_);
8.3459 + ELSIF (rec_.action = 'DUPLICATE') THEN
8.3460 + Copy___(rec_);
8.3461 + END IF;
8.3462 + END IF;
8.3463 +END Make_Company;
8.3464 +
8.3465 +FUNCTION Cust_Open_Items_Exist (
8.3466 + company_ IN VARCHAR2,
8.3467 + identity_ IN VARCHAR2 ) RETURN VARCHAR2
8.3468 +IS
8.3469 + dummy_ NUMBER;
8.3470 + CURSOR exist_control IS
8.3471 + SELECT 1
8.3472 + FROM LEDGER_ITEM_TAB
8.3473 + WHERE company = company_
8.3474 + AND identity = identity_
8.3475 + AND (payer_identity IS NOT NULL AND payer_identity != identity)
8.3476 + AND ledger_status_type = 'NORMAL'
8.3477 + AND ((fully_paid_voucher_date IS NULL) OR
8.3478 + (rowstate in ('Unpaid', 'PartlyPaid'))
8.3479 + OR (rowstate in ('Created', 'BeforeDueDate', 'SentForCashing')))
8.3480 + AND (party_type = 'CUSTOMER' OR (party_type = 'COMPANY' AND parked_pay_type = 'CUSTOMER'));
8.3481 +
8.3482 +BEGIN
8.3483 + General_SYS.Init_Method(lu_name_, '&PKG', 'Cust_Open_Items_Exist');
8.3484 + OPEN exist_control;
8.3485 + FETCH exist_control INTO dummy_;
8.3486 + IF (exist_control%FOUND) THEN
8.3487 + CLOSE exist_control;
8.3488 + RETURN('TRUE');
8.3489 + END IF;
8.3490 + CLOSE exist_control;
8.3491 + RETURN('FALSE');
8.3492 +END Cust_Open_Items_Exist;
8.3493 +
8.3494 +FUNCTION Get_Send_Stmt_Of_Acc_To_Payer (
8.3495 + company_ IN VARCHAR2,
8.3496 + identity_ IN VARCHAR2,
8.3497 + party_type_ IN VARCHAR2 ) RETURN VARCHAR2
8.3498 +IS
8.3499 + temp_ Public_Rec;
8.3500 +BEGIN
8.3501 + IF (NOT Company_Finance_API.Is_User_Authorized(company_)) THEN
8.3502 + RETURN NULL;
8.3503 + END IF;
8.3504 + temp_ := Get(company_, identity_, Party_Type_API.Encode(party_type_));
8.3505 + RETURN temp_.send_statement_of_acc_to_payer;
8.3506 +END Get_Send_Stmt_Of_Acc_To_Payer;
8.3507 +-----------------------------------------------------------------------------
8.3508 +-------------------- FOUNDATION1 METHODS ------------------------------------
8.3509 +-----------------------------------------------------------------------------
8.3510 +-- Init
8.3511 +-- Dummy procedure that can be called at database startup to ensure that
8.3512 +-- this package is loaded into memory for performance reasons only.
8.3513 +-----------------------------------------------------------------------------
8.3514 +
8.3515 +PROCEDURE Init
8.3516 +IS
8.3517 +BEGIN
8.3518 + NULL;
8.3519 +END Init;
8.3520 +
8.3521 +
8.3522 +END &PKG;
8.3523 +/
8.3524 +SHOW ERROR
8.3525 +
8.3526 +-----------------------------------------------------------------------------
8.3527 +
8.3528 +----------------------------------------------------------
8.3529 +-- <UNDEFINE_SECTION>
8.3530 +----------------------------------------------------------
8.3531 +-- This section is reserved for undefine statements
8.3532 +-- nothing should be manually written below because
8.3533 +-- that would be overwritten everytime the IFS / Undefine
8.3534 +-- tool is run.
8.3535 +-- Also do NOT make any changes to the above tag because
8.3536 +-- this will result in duplicated code
8.3537 +----------------------------------------------------------
8.3538 +UNDEFINE MODULE
8.3539 +UNDEFINE LU
8.3540 +UNDEFINE TABLE
8.3541 +
8.3542 +UNDEFINE VIEW
8.3543 +UNDEFINE VIEWPCT
8.3544 +UNDEFINE VIEW_SU_QRY
8.3545 +UNDEFINE VIEW_CU_QRY
8.3546 +UNDEFINE VIEW_SUPP
8.3547 +UNDEFINE VIEW_CUST
8.3548 +UNDEFINE VIEW_MULTI_CUST
8.3549 +UNDEFINE VIEW_MULTI_SUP
8.3550 +UNDEFINE VIEW_LOV
8.3551 +UNDEFINE VIEW_ALL
8.3552 +UNDEFINE VIEW_MULTI_CUS
8.3553 +UNDEFINE VIEW_MULTI_SUP
8.3554 +UNDEFINE VIEW_MULTI_ADD
8.3555 +
8.3556 +UNDEFINE PKG
8.3557 +UNDEFINE OBJID
8.3558 +UNDEFINE OBJVERSION
8.3559 +UNDEFINE OBJID_PTIPI
8.3560 +UNDEFINE OBJVERSION_PTIPI
9.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
9.2 +++ b/PLSQL/Lexer/test/unit/data/InstallationSite.apy Wed May 15 23:04:20 2013 +0200
9.3 @@ -0,0 +1,739 @@
9.4 +-----------------------------------------------------------------------------
9.5 +--
9.6 +-- Logical unit: InstallationSite
9.7 +--
9.8 +-- Purpose:
9.9 +--
9.10 +-- IFS/Design Template Version 2.2
9.11 +--
9.12 +-- Date Sign History
9.13 +-- ------ ---- -----------------------------------------------------------
9.14 +-- 000101 JhMa Created.
9.15 +-- 000621 ROOD Modified parameters in Get_Timezone_Difference_.
9.16 +-- 000628 ROOD Changes in error handling.
9.17 +-- 000808 ROOD Completed the upgrade to Yoshimura template (Bug#15811).
9.18 +-- 020128 ROOD Modified view and business logic to handle
9.19 +-- attribute translations (ToDo#4070).
9.20 +-- 020702 ROOD Corrected usage of General_SYS.Init_Method (ToDo#4087).
9.21 +-- 030212 ROOD Changed module to FNDBAS (ToDo#4149).
9.22 +-- 040408 HAAR Unicode bulk changes, removed extensive use of Substr and/or Substrb (F1PR408B).
9.23 +-----------------------------------------------------------------------------
9.24 +
9.25 +DEFINE MODULE = FNDBAS
9.26 +DEFINE LU = InstallationSite
9.27 +DEFINE TABLE = INSTALLATION_SITE_TAB
9.28 +DEFINE VIEW = INSTALLATION_SITE
9.29 +DEFINE PKG = INSTALLATION_SITE_API
9.30 +DEFINE LOV_VIEW = USER_DB_LINKS_LOV
9.31 +
9.32 +DEFINE OBJID = rowid
9.33 +DEFINE OBJVERSION = "ltrim(lpad(to_char(rowversion,'YYYYMMDDHH24MISS'),2000))"
9.34 +
9.35 +-----------------------------------------------------------------------------
9.36 +-------------------- VIEWS FOR SELECTS --------------------------------------
9.37 +-----------------------------------------------------------------------------
9.38 +
9.39 +PROMPT Creating &LOV_VIEW view
9.40 +
9.41 +CREATE OR REPLACE FORCE VIEW &LOV_VIEW AS
9.42 +SELECT Db_Link Db_Link
9.43 +FROM user_db_links
9.44 +WITH read only;
9.45 +
9.46 +COMMENT ON TABLE &LOV_VIEW
9.47 + IS 'LU=&LU^PROMPT=Installation Site^MODULE=&MODULE^';
9.48 +
9.49 +COMMENT ON COLUMN &LOV_VIEW..Db_Link
9.50 + IS 'FLAGS=K---L^DATATYPE=STRING(128)/UPPERCASE^PROMPT=Db Link^';
9.51 +
9.52 +
9.53 +PROMPT Creating &VIEW view
9.54 +
9.55 +CREATE OR REPLACE FORCE VIEW &VIEW AS
9.56 +SELECT site_id site_id,
9.57 + timezone_difference timezone_difference,
9.58 + nvl(Module_Translate_Attr_Util_API.Get_Attribute_Translation('&MODULE', '&LU', site_id ),description) description,
9.59 + this_site this_site,
9.60 + database_link database_link,
9.61 + &OBJID objid,
9.62 + &OBJVERSION objversion
9.63 +FROM installation_site_tab
9.64 +WITH read only;
9.65 +
9.66 +COMMENT ON TABLE &VIEW
9.67 + IS 'LU=&LU^PROMPT=Installation Site^MODULE=&MODULE^';
9.68 +
9.69 +COMMENT ON COLUMN &VIEW..site_id
9.70 + IS 'FLAGS=KMI-L^DATATYPE=STRING(30)/UPPERCASE^PROMPT=Site Id^';
9.71 +COMMENT ON COLUMN &VIEW..timezone_difference
9.72 + IS 'FLAGS=AMIU-^DATATYPE=NUMBER^PROMPT=Timezone Difference^';
9.73 +COMMENT ON COLUMN &VIEW..description
9.74 + IS 'FLAGS=A-IUL^DATATYPE=STRING(255)^PROMPT=Description^';
9.75 +COMMENT ON COLUMN &VIEW..this_site
9.76 + IS 'FLAGS=AMIU-^DATATYPE=STRING(5)/UPPERCASE^PROMPT=This Site^';
9.77 +COMMENT ON COLUMN &VIEW..database_link
9.78 + IS 'FLAGS=A-IU-^DATATYPE=STRING(128)/UPPERCASE^PROMPT=Database Link^';
9.79 +
9.80 +-----------------------------------------------------------------------------
9.81 +-------------------- PACKAGES FOR METHODS -----------------------------------
9.82 +-----------------------------------------------------------------------------
9.83 +
9.84 +PROMPT Creating &PKG implementation
9.85 +
9.86 +CREATE OR REPLACE PACKAGE BODY &PKG IS
9.87 +
9.88 +-----------------------------------------------------------------------------
9.89 +-------------------- LU SPECIFIC IMPLEMENTATION METHOD DECLARATIONS ---------
9.90 +-----------------------------------------------------------------------------
9.91 +
9.92 +
9.93 +-----------------------------------------------------------------------------
9.94 +-------------------- IMPLEMENTATION BASE METHODS ----------------------------
9.95 +-----------------------------------------------------------------------------
9.96 +-- Lock_By_Id___
9.97 +-- Client-support to lock a specific instance of the logical unit.
9.98 +--
9.99 +-- Lock_By_Keys___
9.100 +-- Server support to lock a specific instance of the logical unit.
9.101 +--
9.102 +-- Get_Object_By_Id___
9.103 +-- Get LU-record from the database with a specified object identity.
9.104 +--
9.105 +-- Get_Object_By_Keys___
9.106 +-- Get LU-record from the database with specified key columns.
9.107 +--
9.108 +-- Check_Exist___
9.109 +-- Check if a specific LU-instance already exist in the database.
9.110 +--
9.111 +-- Get_Id_Version_By_Keys___
9.112 +-- Get the current OBJID and OBJVERSION for a specific LU-instance.
9.113 +-----------------------------------------------------------------------------
9.114 +
9.115 +FUNCTION Lock_By_Id___ (
9.116 + objid_ IN VARCHAR2,
9.117 + objversion_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
9.118 +IS
9.119 + row_changed EXCEPTION;
9.120 + row_deleted EXCEPTION;
9.121 + row_locked EXCEPTION;
9.122 + PRAGMA exception_init(row_locked, -0054);
9.123 + rec_ &TABLE%ROWTYPE;
9.124 + dummy_ NUMBER;
9.125 + CURSOR lock_control IS
9.126 + SELECT *
9.127 + FROM &TABLE
9.128 + WHERE &OBJID = objid_
9.129 + AND &OBJVERSION = objversion_
9.130 + FOR UPDATE NOWAIT;
9.131 + CURSOR exist_control IS
9.132 + SELECT 1
9.133 + FROM &TABLE
9.134 + WHERE &OBJID = objid_;
9.135 +BEGIN
9.136 + OPEN lock_control;
9.137 + FETCH lock_control INTO rec_;
9.138 + IF (lock_control%FOUND) THEN
9.139 + CLOSE lock_control;
9.140 + RETURN rec_;
9.141 + END IF;
9.142 + CLOSE lock_control;
9.143 + OPEN exist_control;
9.144 + FETCH exist_control INTO dummy_;
9.145 + IF (exist_control%FOUND) THEN
9.146 + CLOSE exist_control;
9.147 + RAISE row_changed;
9.148 + ELSE
9.149 + CLOSE exist_control;
9.150 + RAISE row_deleted;
9.151 + END IF;
9.152 +EXCEPTION
9.153 + WHEN row_locked THEN
9.154 + Error_SYS.Record_Locked(lu_name_);
9.155 + WHEN row_changed THEN
9.156 + Error_SYS.Record_Modified(lu_name_);
9.157 + WHEN row_deleted THEN
9.158 + Error_SYS.Record_Removed(lu_name_);
9.159 +END Lock_By_Id___;
9.160 +
9.161 +FUNCTION Lock_By_Keys___ (
9.162 + site_id_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
9.163 +IS
9.164 + row_deleted EXCEPTION;
9.165 + rec_ &TABLE%ROWTYPE;
9.166 + CURSOR lock_control IS
9.167 + SELECT *
9.168 + FROM &TABLE
9.169 + WHERE site_id = site_id_
9.170 + FOR UPDATE;
9.171 +BEGIN
9.172 + OPEN lock_control;
9.173 + FETCH lock_control INTO rec_;
9.174 + IF (lock_control%FOUND) THEN
9.175 + CLOSE lock_control;
9.176 + RETURN rec_;
9.177 + ELSE
9.178 + CLOSE lock_control;
9.179 + RAISE row_deleted;
9.180 + END IF;
9.181 +EXCEPTION
9.182 + WHEN row_deleted THEN
9.183 + Error_SYS.Record_Removed(lu_name_);
9.184 +END Lock_By_Keys___;
9.185 +
9.186 +FUNCTION Get_Object_By_Id___ (
9.187 + objid_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
9.188 +IS
9.189 + lu_rec_ &TABLE%ROWTYPE;
9.190 + CURSOR getrec IS
9.191 + SELECT *
9.192 + FROM &TABLE
9.193 + WHERE &OBJID = objid_;
9.194 +BEGIN
9.195 + OPEN getrec;
9.196 + FETCH getrec INTO lu_rec_;
9.197 + IF (getrec%NOTFOUND) THEN
9.198 + CLOSE getrec;
9.199 + Error_SYS.Record_Removed(lu_name_);
9.200 + END IF;
9.201 + CLOSE getrec;
9.202 + RETURN(lu_rec_);
9.203 +END Get_Object_By_Id___;
9.204 +
9.205 +FUNCTION Get_Object_By_Keys___ (
9.206 + site_id_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
9.207 +IS
9.208 + lu_rec_ &TABLE%ROWTYPE;
9.209 + CURSOR getrec IS
9.210 + SELECT *
9.211 + FROM &TABLE
9.212 + WHERE site_id = site_id_;
9.213 +BEGIN
9.214 + OPEN getrec;
9.215 + FETCH getrec INTO lu_rec_;
9.216 + CLOSE getrec;
9.217 + RETURN(lu_rec_);
9.218 +END Get_Object_By_Keys___;
9.219 +
9.220 +FUNCTION Check_Exist___ (
9.221 + site_id_ IN VARCHAR2 ) RETURN BOOLEAN
9.222 +IS
9.223 + dummy_ NUMBER;
9.224 + CURSOR exist_control IS
9.225 + SELECT 1
9.226 + FROM &TABLE
9.227 + WHERE site_id = site_id_;
9.228 +BEGIN
9.229 + OPEN exist_control;
9.230 + FETCH exist_control INTO dummy_;
9.231 + IF (exist_control%FOUND) THEN
9.232 + CLOSE exist_control;
9.233 + RETURN(TRUE);
9.234 + END IF;
9.235 + CLOSE exist_control;
9.236 + RETURN(FALSE);
9.237 +END Check_Exist___;
9.238 +
9.239 +PROCEDURE Get_Id_Version_By_Keys___ (
9.240 + objid_ IN OUT VARCHAR2,
9.241 + objversion_ IN OUT VARCHAR2,
9.242 + site_id_ IN VARCHAR2)
9.243 +IS
9.244 + CURSOR get_version IS
9.245 + SELECT &OBJID, &OBJVERSION
9.246 + FROM &TABLE
9.247 + WHERE site_id = site_id_;
9.248 +BEGIN
9.249 + OPEN get_version;
9.250 + FETCH get_version INTO objid_, objversion_;
9.251 + CLOSE get_version;
9.252 +END Get_Id_Version_By_Keys___;
9.253 +
9.254 +-----------------------------------------------------------------------------
9.255 +-------------------- IMPLEMENTATION BASE METHODS FOR INSERT -----------------
9.256 +-----------------------------------------------------------------------------
9.257 +-- Prepare_Insert___
9.258 +-- Set all default values for a new instance (ON-NEW-RECORD) of this
9.259 +-- logical unit by calling procedure Add_Attr.
9.260 +--
9.261 +-- Unpack_Check_Insert___
9.262 +-- Unpack the attribute list, check all attributes from the client
9.263 +-- and generate all default values before creation of the new object.
9.264 +--
9.265 +-- Insert___
9.266 +-- Insert a new LU-instance into the database and return the values
9.267 +-- for OBJID and OBJVERSION.
9.268 +-----------------------------------------------------------------------------
9.269 +
9.270 +PROCEDURE Prepare_Insert___ (
9.271 + attr_ IN OUT VARCHAR2 )
9.272 +IS
9.273 +BEGIN
9.274 + Client_SYS.Clear_Attr(attr_);
9.275 + Client_SYS.Add_To_Attr('TIMEZONE_DIFFERENCE', 0, attr_);
9.276 + Client_SYS.Add_To_Attr('THIS_SITE', 'FALSE', attr_);
9.277 +END Prepare_Insert___;
9.278 +
9.279 +
9.280 +PROCEDURE Unpack_Check_Insert___ (
9.281 + attr_ IN OUT VARCHAR2,
9.282 + newrec_ IN OUT &TABLE%ROWTYPE )
9.283 +IS
9.284 + ptr_ NUMBER;
9.285 + name_ VARCHAR2(30);
9.286 + value_ VARCHAR2(2000);
9.287 + this_site_exist_ EXCEPTION;
9.288 +BEGIN
9.289 + newrec_.timezone_difference := 0;
9.290 + newrec_.this_site := 'FALSE';
9.291 + value_ := Client_SYS.Get_Item_Value('THIS_SITE', attr_);
9.292 + IF ( (UPPER(NVL(value_, 'FALSE')) = 'TRUE') AND This_Site_Exist__ ) THEN
9.293 + RAISE this_site_exist_;
9.294 + END IF;
9.295 + ptr_ := NULL;
9.296 + WHILE (Client_SYS.Get_Next_From_Attr(attr_, ptr_, name_, value_)) LOOP
9.297 + IF (name_ = 'SITE_ID') THEN
9.298 + newrec_.site_id := value_;
9.299 + ELSIF (name_ = 'TIMEZONE_DIFFERENCE') THEN
9.300 + newrec_.timezone_difference := Client_SYS.Attr_Value_To_Number(value_);
9.301 + ELSIF (name_ = 'DESCRIPTION') THEN
9.302 + newrec_.description := value_;
9.303 + ELSIF (name_ = 'THIS_SITE') THEN
9.304 + newrec_.this_site := value_;
9.305 + ELSIF (name_ = 'DATABASE_LINK') THEN
9.306 + newrec_.database_link := value_;
9.307 + ELSE
9.308 + Error_SYS.Item_Not_Exist(lu_name_, name_, value_);
9.309 + END IF;
9.310 + END LOOP;
9.311 + Client_SYS.Clear_Attr(attr_);
9.312 + Error_SYS.Check_Not_Null(lu_name_, 'SITE_ID', newrec_.site_id);
9.313 + Error_SYS.Check_Not_Null(lu_name_, 'TIMEZONE_DIFFERENCE', newrec_.timezone_difference);
9.314 + Error_SYS.Check_Not_Null(lu_name_, 'THIS_SITE', newrec_.this_site);
9.315 +EXCEPTION
9.316 + WHEN value_error THEN
9.317 + Error_SYS.Item_Format(lu_name_, name_, value_);
9.318 + WHEN this_site_exist_ THEN
9.319 + Error_SYS.Appl_General(lu_name_, 'EXIST_INSERT: Only one replication site can be THIS_SITE.');
9.320 +END Unpack_Check_Insert___;
9.321 +
9.322 +
9.323 +PROCEDURE Insert___ (
9.324 + objid_ OUT VARCHAR2,
9.325 + objversion_ OUT VARCHAR2,
9.326 + newrec_ IN OUT &TABLE%ROWTYPE,
9.327 + attr_ IN OUT VARCHAR2 )
9.328 +IS
9.329 +BEGIN
9.330 + IF ( newrec_.timezone_difference IS NULL ) THEN
9.331 + newrec_.timezone_difference := 0;
9.332 + END IF;
9.333 + IF ( NVL(newrec_.this_site,'FALSE') NOT IN ('TRUE','FALSE') ) THEN
9.334 + newrec_.this_site := 'FALSE';
9.335 + END IF;
9.336 + newrec_.rowversion := sysdate;
9.337 + objversion_ := to_char(newrec_.rowversion,'YYYYMMDDHH24MISS');
9.338 + INSERT
9.339 + INTO installation_site_tab (
9.340 + site_id,
9.341 + timezone_difference,
9.342 + description,
9.343 + this_site,
9.344 + database_link,
9.345 + rowversion)
9.346 + VALUES (
9.347 + newrec_.site_id,
9.348 + newrec_.timezone_difference,
9.349 + newrec_.description,
9.350 + newrec_.this_site,
9.351 + newrec_.database_link,
9.352 + newrec_.rowversion);
9.353 + SELECT &OBJID
9.354 + INTO objid_
9.355 + FROM &TABLE
9.356 + WHERE site_id = newrec_.site_id;
9.357 + -- Insert into the translation database
9.358 + Module_Translate_Attr_Util_API.Insert_Lu_Translation('&MODULE',
9.359 + '&LU',
9.360 + newrec_.site_id,
9.361 + NULL,
9.362 + newrec_.description);
9.363 +EXCEPTION
9.364 + WHEN dup_val_on_index THEN
9.365 + Error_SYS.Record_Exist(lu_name_);
9.366 +END Insert___;
9.367 +
9.368 +-----------------------------------------------------------------------------
9.369 +-------------------- IMPLEMENTATION BASE METHODS FOR UPDATE -----------------
9.370 +-----------------------------------------------------------------------------
9.371 +-- Unpack_Check_Update___
9.372 +-- Unpack the attribute list, check all attributes from the client
9.373 +-- and generate all default values before modifying the object.
9.374 +--
9.375 +-- Update___
9.376 +-- Update an existing LU-instance in the database and return the
9.377 +-- the new OBJVERSION.
9.378 +-----------------------------------------------------------------------------
9.379 +
9.380 +PROCEDURE Unpack_Check_Update___ (
9.381 + attr_ IN OUT VARCHAR2,
9.382 + newrec_ IN OUT &TABLE%ROWTYPE,
9.383 + objid_ IN VARCHAR2 )
9.384 +IS
9.385 + ptr_ NUMBER;
9.386 + name_ VARCHAR2(30);
9.387 + value_ VARCHAR2(2000);
9.388 + this_site_exist_ EXCEPTION;
9.389 +BEGIN
9.390 + value_ := Client_SYS.Get_Item_Value('THIS_SITE', attr_);
9.391 + IF ( (UPPER(NVL(value_, 'FALSE')) = 'TRUE') AND (newrec_.this_site = 'FALSE') AND This_Site_Exist__ ) THEN
9.392 + RAISE this_site_exist_;
9.393 + END IF;
9.394 + ptr_ := NULL;
9.395 + WHILE (Client_SYS.Get_Next_From_Attr(attr_, ptr_, name_, value_)) LOOP
9.396 + IF (name_ = 'SITE_ID') THEN
9.397 + Error_SYS.Item_Update(lu_name_, 'SITE_ID');
9.398 + ELSIF (name_ = 'TIMEZONE_DIFFERENCE') THEN
9.399 + newrec_.timezone_difference := Client_SYS.Attr_Value_To_Number(value_);
9.400 + ELSIF (name_ = 'DESCRIPTION') THEN
9.401 + newrec_.description := value_;
9.402 + ELSIF (name_ = 'THIS_SITE') THEN
9.403 + newrec_.this_site := value_;
9.404 + ELSIF (name_ = 'DATABASE_LINK') THEN
9.405 + newrec_.database_link := value_;
9.406 + ELSE
9.407 + Error_SYS.Item_Not_Exist(lu_name_, name_, value_);
9.408 + END IF;
9.409 + END LOOP;
9.410 + Client_SYS.Clear_Attr(attr_);
9.411 + Error_SYS.Check_Not_Null(lu_name_, 'TIMEZONE_DIFFERENCE', newrec_.timezone_difference);
9.412 + Error_SYS.Check_Not_Null(lu_name_, 'THIS_SITE', newrec_.this_site);
9.413 +EXCEPTION
9.414 + WHEN value_error THEN
9.415 + Error_SYS.Item_Format(lu_name_, name_, value_);
9.416 + WHEN this_site_exist_ THEN
9.417 + Error_SYS.Appl_General(lu_name_, 'EXIST_UPDATE: Only one replication site can be THIS_SITE.');
9.418 +END Unpack_Check_Update___;
9.419 +
9.420 +
9.421 +PROCEDURE Update___ (
9.422 + objid_ IN VARCHAR2,
9.423 + oldrec_ IN &TABLE%ROWTYPE,
9.424 + newrec_ IN OUT &TABLE%ROWTYPE,
9.425 + attr_ IN OUT VARCHAR2,
9.426 + objversion_ IN OUT VARCHAR2,
9.427 + by_keys_ IN BOOLEAN DEFAULT FALSE )
9.428 +IS
9.429 +BEGIN
9.430 + IF ( newrec_.timezone_difference IS NULL ) THEN
9.431 + newrec_.timezone_difference := 0;
9.432 + END IF;
9.433 + IF ( NVL(newrec_.this_site,'FALSE') NOT IN ('TRUE','FALSE') ) THEN
9.434 + newrec_.this_site := 'FALSE';
9.435 + END IF;
9.436 + newrec_.rowversion := sysdate;
9.437 + objversion_ := to_char(newrec_.rowversion,'YYYYMMDDHH24MISS');
9.438 + IF by_keys_ THEN
9.439 + UPDATE installation_site_tab
9.440 + SET site_id = newrec_.site_id,
9.441 + timezone_difference = newrec_.timezone_difference,
9.442 + description = newrec_.description,
9.443 + this_site = newrec_.this_site,
9.444 + database_link = newrec_.database_link,
9.445 + rowversion = newrec_.rowversion
9.446 + WHERE site_id = newrec_.site_id;
9.447 + ELSE
9.448 + UPDATE installation_site_tab
9.449 + SET site_id = newrec_.site_id,
9.450 + timezone_difference = newrec_.timezone_difference,
9.451 + description = newrec_.description,
9.452 + this_site = newrec_.this_site,
9.453 + database_link = newrec_.database_link,
9.454 + rowversion = newrec_.rowversion
9.455 + WHERE &OBJID = objid_;
9.456 + END IF;
9.457 + -- Update the translation database if necessary
9.458 + Module_Translate_Attr_Util_API.Modify_Translation('&MODULE',
9.459 + lu_name_,
9.460 + newrec_.site_id,
9.461 + newrec_.description,
9.462 + oldrec_.description);
9.463 +EXCEPTION
9.464 + WHEN dup_val_on_index THEN
9.465 + Error_SYS.Record_Exist(lu_name_);
9.466 +END Update___;
9.467 +
9.468 +-----------------------------------------------------------------------------
9.469 +-------------------- IMPLEMENTATION BASE METHODS FOR DELETE -----------------
9.470 +-----------------------------------------------------------------------------
9.471 +-- Check_Delete___
9.472 +-- Checks whether a specific LU-record may be removed or not.
9.473 +-- The procedure should check business rules like attribute values
9.474 +-- as well as database constraints (defined or not).
9.475 +--
9.476 +-- Delete___
9.477 +-- Deletion of the specific LU-object from the database.
9.478 +-----------------------------------------------------------------------------
9.479 +
9.480 +PROCEDURE Check_Delete___ (
9.481 + remrec_ IN &TABLE%ROWTYPE )
9.482 +IS
9.483 + key_ VARCHAR2(2000);
9.484 +BEGIN
9.485 + key_ := remrec_.site_id || '^';
9.486 + Reference_SYS.Check_Restricted_Delete(lu_name_, key_);
9.487 +END Check_Delete___;
9.488 +
9.489 +
9.490 +PROCEDURE Delete___ (
9.491 + objid_ IN VARCHAR2,
9.492 + remrec_ IN &TABLE%ROWTYPE )
9.493 +IS
9.494 + key_ VARCHAR2(2000);
9.495 +BEGIN
9.496 + key_ := remrec_.site_id || '^';
9.497 + Reference_SYS.Do_Cascade_Delete(lu_name_, key_);
9.498 + DELETE
9.499 + FROM installation_site_tab
9.500 + WHERE &OBJID = objid_;
9.501 + -- Delete all existing translations for this record.
9.502 + Module_Translate_Attr_Util_API.Remove_Attribute('&MODULE', lu_name_, remrec_.site_id);
9.503 +END Delete___;
9.504 +
9.505 +-----------------------------------------------------------------------------
9.506 +-------------------- PRIVATE BASE METHODS -----------------------------------
9.507 +-----------------------------------------------------------------------------
9.508 +-- Lock__
9.509 +-- Client-support to lock a specific instance of the logical unit.
9.510 +--
9.511 +-- New__
9.512 +-- Client-support interface to create LU instances.
9.513 +-- action_ = 'PREPARE'
9.514 +-- Default values and handle of information to client.
9.515 +-- The default values are set in procedure Prepare_Insert___.
9.516 +-- action_ = 'CHECK'
9.517 +-- Check all attributes before creating new object and handle of
9.518 +-- information to client. The attribute list is unpacked, checked
9.519 +-- and prepared (defaults) in procedure Unpack_Check_Insert___.
9.520 +-- action_ = 'DO'
9.521 +-- Creation of new instances of the logical unit and handle of
9.522 +-- information to client. The attribute list is unpacked, checked
9.523 +-- and prepared (defaults) in procedure Unpack_Check_Insert___
9.524 +-- before calling procedure Insert___.
9.525 +--
9.526 +-- Modify__
9.527 +-- Client-support interface to modify attributes for LU instances.
9.528 +-- action_ = 'CHECK'
9.529 +-- Check all attributes before modifying an existing object and
9.530 +-- handle of information to client. The attribute list is unpacked,
9.531 +-- checked and prepared(defaults) in procedure Unpack_Check_Update___.
9.532 +-- action_ = 'DO'
9.533 +-- Modification of an existing instance of the logical unit. The
9.534 +-- procedure unpacks the attributes, checks all values before
9.535 +-- procedure Update___ is called.
9.536 +--
9.537 +-- Remove__
9.538 +-- Client-support interface to remove LU instances.
9.539 +-- action_ = 'CHECK'
9.540 +-- Check whether a specific LU-instance may be removed or not.
9.541 +-- The procedure fetches the complete record by calling procedure
9.542 +-- Get_Object_By_Id___. Then the check is made by calling procedure
9.543 +-- Check_Delete___.
9.544 +-- action_ = 'DO'
9.545 +-- Remove an existing instance of the logical unit. The procedure
9.546 +-- fetches the complete LU-record, checks for a delete and then
9.547 +-- deletes the record by calling procedure Delete___.
9.548 +-----------------------------------------------------------------------------
9.549 +
9.550 +PROCEDURE Lock__ (
9.551 + info_ OUT VARCHAR2,
9.552 + objid_ IN VARCHAR2,
9.553 + objversion_ IN VARCHAR2 )
9.554 +IS
9.555 + dummy_ &TABLE%ROWTYPE;
9.556 +BEGIN
9.557 + General_SYS.Init_Method(lu_name_, '&PKG', 'Lock__');
9.558 + dummy_ := Lock_By_Id___(objid_, objversion_);
9.559 + info_ := Client_SYS.Get_All_Info;
9.560 +END Lock__;
9.561 +
9.562 +
9.563 +PROCEDURE New__ (
9.564 + info_ OUT VARCHAR2,
9.565 + objid_ OUT VARCHAR2,
9.566 + objversion_ OUT VARCHAR2,
9.567 + attr_ IN OUT VARCHAR2,
9.568 + action_ IN VARCHAR2 )
9.569 +IS
9.570 + newrec_ &TABLE%ROWTYPE;
9.571 +BEGIN
9.572 + General_SYS.Init_Method(lu_name_, '&PKG', 'New__');
9.573 + IF (action_ = 'PREPARE') THEN
9.574 + Prepare_Insert___(attr_);
9.575 + ELSIF (action_ = 'CHECK') THEN
9.576 + Unpack_Check_Insert___(attr_, newrec_);
9.577 + ELSIF (action_ = 'DO') THEN
9.578 + Unpack_Check_Insert___(attr_, newrec_);
9.579 + Insert___(objid_, objversion_, newrec_, attr_);
9.580 + END IF;
9.581 + info_ := Client_SYS.Get_All_Info;
9.582 +END New__;
9.583 +
9.584 +
9.585 +PROCEDURE Modify__ (
9.586 + info_ OUT VARCHAR2,
9.587 + objid_ IN VARCHAR2,
9.588 + objversion_ IN OUT VARCHAR2,
9.589 + attr_ IN OUT VARCHAR2,
9.590 + action_ IN VARCHAR2 )
9.591 +IS
9.592 + oldrec_ &TABLE%ROWTYPE;
9.593 + newrec_ &TABLE%ROWTYPE;
9.594 +BEGIN
9.595 + General_SYS.Init_Method(lu_name_, '&PKG', 'Modify__');
9.596 + IF (action_ = 'CHECK') THEN
9.597 + newrec_ := Get_Object_By_Id___(objid_);
9.598 + Unpack_Check_Update___(attr_, newrec_, objid_);
9.599 + ELSIF (action_ = 'DO') THEN
9.600 + oldrec_ := Lock_By_Id___(objid_, objversion_);
9.601 + newrec_ := oldrec_;
9.602 + Unpack_Check_Update___(attr_, newrec_, objid_);
9.603 + Update___(objid_, oldrec_, newrec_, attr_, objversion_);
9.604 + END IF;
9.605 + info_ := Client_SYS.Get_All_Info;
9.606 +END Modify__;
9.607 +
9.608 +
9.609 +PROCEDURE Remove__ (
9.610 + info_ OUT VARCHAR2,
9.611 + objid_ IN VARCHAR2,
9.612 + objversion_ IN VARCHAR2,
9.613 + action_ IN VARCHAR2 )
9.614 +IS
9.615 + remrec_ &TABLE%ROWTYPE;
9.616 +BEGIN
9.617 + General_SYS.Init_Method(lu_name_, '&PKG', 'Remove__');
9.618 + IF (action_ = 'CHECK') THEN
9.619 + remrec_ := Get_Object_By_Id___(objid_);
9.620 + Check_Delete___(remrec_);
9.621 + ELSIF (action_ = 'DO') THEN
9.622 + remrec_ := Lock_By_Id___(objid_, objversion_);
9.623 + Check_Delete___(remrec_);
9.624 + Delete___(objid_, remrec_);
9.625 + END IF;
9.626 + info_ := Client_SYS.Get_All_Info;
9.627 +END Remove__;
9.628 +
9.629 +-----------------------------------------------------------------------------
9.630 +-------------------- PUBLIC BASE METHODS ------------------------------------
9.631 +-----------------------------------------------------------------------------
9.632 +-- Exist
9.633 +-- Checks if given pointer (e.g. primary key) to an instance of this
9.634 +-- logical unit exists. If not an exception will be raised.
9.635 +-----------------------------------------------------------------------------
9.636 +
9.637 +PROCEDURE Exist (
9.638 + site_id_ IN VARCHAR2 )
9.639 +IS
9.640 +BEGIN
9.641 + General_SYS.Init_Method(lu_name_, '&PKG', 'Exist', TRUE);
9.642 + IF (NOT Check_Exist___(site_id_)) THEN
9.643 + Error_SYS.Record_Not_Exist(lu_name_);
9.644 + END IF;
9.645 +END Exist;
9.646 +
9.647 +-----------------------------------------------------------------------------
9.648 +-------------------- LU SPECIFIC IMPLEMENTATION METHODS ---------------------
9.649 +-----------------------------------------------------------------------------
9.650 +
9.651 +
9.652 +-----------------------------------------------------------------------------
9.653 +-------------------- LU SPECIFIC PRIVATE METHODS ----------------------------
9.654 +-----------------------------------------------------------------------------
9.655 +
9.656 +FUNCTION This_Site_Exist__ RETURN BOOLEAN
9.657 +IS
9.658 + dummy_ NUMBER;
9.659 + CURSOR this_site_exist IS
9.660 + SELECT 1
9.661 + FROM &TABLE
9.662 + WHERE this_site = 'TRUE';
9.663 +BEGIN
9.664 + OPEN this_site_exist;
9.665 + FETCH this_site_exist INTO dummy_;
9.666 + IF ( this_site_exist%FOUND ) THEN
9.667 + CLOSE this_site_exist;
9.668 + RETURN TRUE;
9.669 + ELSE
9.670 + CLOSE this_site_exist;
9.671 + RETURN FALSE;
9.672 + END IF;
9.673 +END This_Site_Exist__;
9.674 +
9.675 +-----------------------------------------------------------------------------
9.676 +-------------------- LU SPECIFIC PROTECTED METHODS --------------------------
9.677 +-----------------------------------------------------------------------------
9.678 +
9.679 +FUNCTION Get_Timezone_Difference_ (
9.680 + site_id_ IN VARCHAR2 DEFAULT NULL ) RETURN NUMBER
9.681 +IS
9.682 + timezone_difference_error_ EXCEPTION;
9.683 + timezone_difference_ &TABLE..timezone_difference%TYPE;
9.684 + CURSOR local IS
9.685 + SELECT timezone_difference
9.686 + FROM &TABLE
9.687 + WHERE this_site = 'TRUE';
9.688 + CURSOR remote IS
9.689 + SELECT timezone_difference
9.690 + FROM &TABLE
9.691 + WHERE site_id = site_id_;
9.692 +BEGIN
9.693 + General_SYS.Init_Method(lu_name_, '&PKG', 'Get_Timezone_Difference_');
9.694 + IF ( site_id_ IS NULL ) THEN
9.695 + OPEN local;
9.696 + FETCH local INTO timezone_difference_;
9.697 + IF ( local%NOTFOUND ) THEN
9.698 + timezone_difference_ := 0;
9.699 + END IF;
9.700 + CLOSE local;
9.701 + ELSE
9.702 + OPEN remote;
9.703 + FETCH remote INTO timezone_difference_;
9.704 + IF ( remote%NOTFOUND ) THEN
9.705 + timezone_difference_ := 0;
9.706 + END IF;
9.707 + CLOSE remote;
9.708 + END IF;
9.709 + IF ( ABS(timezone_difference_) > 24 ) THEN
9.710 + RAISE timezone_difference_error_;
9.711 + END IF;
9.712 + RETURN timezone_difference_;
9.713 +EXCEPTION
9.714 + WHEN timezone_difference_error_ THEN
9.715 + Error_SYS.Appl_General(lu_name_, 'INVALIDTIMEZONEDIFF: Invalid timezone difference :P1.', timezone_difference_);
9.716 +END Get_Timezone_Difference_;
9.717 +
9.718 +-----------------------------------------------------------------------------
9.719 +-------------------- LU SPECIFIC PUBLIC METHODS -----------------------------
9.720 +-----------------------------------------------------------------------------
9.721 +
9.722 +
9.723 +-----------------------------------------------------------------------------
9.724 +-------------------- FOUNDATION1 METHODS ------------------------------------
9.725 +-----------------------------------------------------------------------------
9.726 +-- Init
9.727 +-- Dummy procedure that can be called at database startup to ensure that
9.728 +-- this package is loaded into memory for performance reasons only.
9.729 +-----------------------------------------------------------------------------
9.730 +
9.731 +PROCEDURE Init
9.732 +IS
9.733 +BEGIN
9.734 + NULL;
9.735 +END Init;
9.736 +
9.737 +
9.738 +END &PKG;
9.739 +/
9.740 +SHOW ERROR
9.741 +
9.742 +-----------------------------------------------------------------------------
10.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
10.2 +++ b/PLSQL/Lexer/test/unit/data/OpPersDiaryCalculation.apy Wed May 15 23:04:20 2013 +0200
10.3 @@ -0,0 +1,928 @@
10.4 +-----------------------------------------------------------------------------
10.5 +--
10.6 +-- Logical unit: OpPersDiaryCalculation
10.7 +--
10.8 +-- Purpose:
10.9 +--
10.10 +-- IFS/Design Template Version 2.3
10.11 +--
10.12 +-- Date Sign History
10.13 +-- ------ ---- -----------------------------------------------------------
10.14 +-- 070419 Laadlk Bug 64820, Added new IF condition in Calculate order hours
10.15 +-- 070109 AmGa Check error_no is null before update.
10.16 +-- 060106 GaKa Added labor class changes
10.17 +-- 040915 KjCr Modifications due to new Balance
10.18 +-- 040813 KjCr HRPR408 PL/SQL Torexec
10.19 +-----------------------------------------------------------------------------
10.20 +
10.21 +DEFINE MODULE = SHPEMP
10.22 +DEFINE LU = OpPersDiaryCalculation
10.23 +DEFINE PKG = OP_PERS_DIARY_CALCULATION_API
10.24 +
10.25 +
10.26 +-----------------------------------------------------------------------------
10.27 +-------------------- PACKAGES FOR METHODS -----------------------------------
10.28 +-----------------------------------------------------------------------------
10.29 +
10.30 +PROMPT Creating &PKG implementation
10.31 +
10.32 +CREATE OR REPLACE PACKAGE BODY &PKG IS
10.33 +
10.34 + RowLocked EXCEPTION;
10.35 + Skip EXCEPTION;
10.36 + DataError EXCEPTION;
10.37 + PRAGMA exception_init(RowLocked, -0054);
10.38 +
10.39 +-------------------------------------------------------------------------
10.40 +-- Private types
10.41 +-------------------------------------------------------------------------
10.42 +
10.43 + TYPE Op_Data_Rec IS RECORD (
10.44 + org_code VARCHAR2(20),
10.45 + min_op_diff NUMBER,
10.46 + max_op_diff NUMBER,
10.47 + presence_hours NUMBER );
10.48 +
10.49 +-------------------------------------------------------------------------
10.50 +-- Global variables
10.51 +-------------------------------------------------------------------------
10.52 +
10.53 + comp_time_format_ Comp_Time_Format_API.Value_Rec;
10.54 + wage_group_ Wage_Group_API.Value_Rec;
10.55 + time_param_label_ Time_Param_Label_API.Value_Rec;
10.56 + reg_status_ Time_Reg_Status_API.Value_Rec;
10.57 + test_active_ Time_Reg_Error_API.Active_Array_Type;
10.58 +
10.59 +-----------------------------------------------------------------------------
10.60 +-------------------- LU SPECIFIC IMPLEMENTATION METHOD DECLARATIONS ---------
10.61 +-----------------------------------------------------------------------------
10.62 +
10.63 +PROCEDURE Calculate_Op_Hours___ (
10.64 + op_data_ IN Op_Data_Rec,
10.65 + pers_diary_ IN Time_Pers_Diary_Calc_API.Diary_Record_Type,
10.66 + op_diary_ IN OUT NOCOPY Op_Diary_Record_Type );
10.67 +
10.68 +
10.69 +PROCEDURE Convert_Group_Operations___ (
10.70 + op_diary_ IN OUT NOCOPY Op_Diary_Record_Type );
10.71 +
10.72 +
10.73 +PROCEDURE Do_Wage_Rounding___ (
10.74 + pers_diary_ IN Time_Pers_Diary_Calc_API.Diary_Record_Type,
10.75 + op_diary_ IN OUT NOCOPY Op_Diary_Record_Type );
10.76 +
10.77 +
10.78 +PROCEDURE Get_Diary___ (
10.79 + op_diary_ IN OUT NOCOPY Op_Diary_Record_Type );
10.80 +
10.81 +
10.82 +PROCEDURE Get_Op_Data___ (
10.83 + op_data_ OUT NOCOPY Op_Data_Rec,
10.84 + pers_diary_ IN Time_Pers_Diary_Calc_API.Diary_Record_Type,
10.85 + op_diary_ IN OUT NOCOPY Op_Diary_Record_Type );
10.86 +
10.87 +
10.88 +PROCEDURE Remove_Result___ (
10.89 + op_diary_ IN Op_Diary_Record_Type );
10.90 +
10.91 +
10.92 +PROCEDURE Save_Result___ (
10.93 + op_diary_ IN Op_Diary_Record_Type );
10.94 +
10.95 +
10.96 +PROCEDURE Set_Op_Error___ (
10.97 + op_diary_ IN Op_Diary_Record_Type );
10.98 +
10.99 +PROCEDURE Set_Op_Error_Labor___ (
10.100 + op_diary_ IN Op_Diary_Record_Type );
10.101 +
10.102 +
10.103 +PROCEDURE Update_Diary___ (
10.104 + op_data_ IN Op_Data_Rec,
10.105 + op_diary_ IN OUT NOCOPY Op_Diary_Record_Type );
10.106 +
10.107 +
10.108 +
10.109 +-----------------------------------------------------------------------------
10.110 +-------------------- LU SPECIFIC IMPLEMENTATION METHODS ---------------------
10.111 +-----------------------------------------------------------------------------
10.112 +
10.113 +PROCEDURE Calculate_Op_Hours___ (
10.114 + op_data_ IN Op_Data_Rec,
10.115 + pers_diary_ IN Time_Pers_Diary_Calc_API.Diary_Record_Type,
10.116 + op_diary_ IN OUT NOCOPY Op_Diary_Record_Type )
10.117 +IS
10.118 + wage_grp_ VARCHAR2(20);
10.119 + wage_code_ VARCHAR2(20);
10.120 + wage_hours_ NUMBER;
10.121 + pers_wage_grp_ VARCHAR2(20);
10.122 + pers_wage_hours_ NUMBER;
10.123 + abs_hours_ NUMBER;
10.124 + op_id_ INTEGER;
10.125 + mch_code_ VARCHAR2(20);
10.126 + info_code_ VARCHAR2(20);
10.127 + org_code_ VARCHAR2(20);
10.128 + min_in_time_ NUMBER;
10.129 + max_out_time_ NUMBER;
10.130 + cur_in_time_ NUMBER;
10.131 + cur_out_time_ NUMBER;
10.132 + in_time_ NUMBER;
10.133 + out_time_ NUMBER;
10.134 + cur_count_ NUMBER;
10.135 + cur_factor_ NUMBER;
10.136 + w_ INTEGER;
10.137 +BEGIN
10.138 + /*-----------------------------------------------------------------------*/
10.139 + /* a) If status = done set status = ready */
10.140 + /*-----------------------------------------------------------------------*/
10.141 + min_in_time_ := 100.0;
10.142 + max_out_time_ := -100.0;
10.143 + IF op_diary_.reg_status = reg_status_.done THEN
10.144 + IF (time_pers_diary_api.Reporting_Complete(op_diary_.company_id, op_diary_.emp_no,
10.145 + op_diary_.account_date, op_diary_.reg_status) = 'TRUE') THEN
10.146 + op_diary_.reg_status := reg_status_.ready;
10.147 + END IF;
10.148 + END IF;
10.149 + FOR i_ IN 1 .. op_diary_.clocking.row_count LOOP
10.150 + min_in_time_ := LEAST(min_in_time_, op_diary_.clocking.start_stamp(i_));
10.151 + max_out_time_ := GREATEST(max_out_time_, op_diary_.clocking.stop_stamp(i_));
10.152 + IF op_diary_.clocking.org_code(i_) IS NULL THEN
10.153 + op_diary_.clocking.org_code(i_) := op_data_.org_code;
10.154 + END IF;
10.155 + END LOOP;
10.156 + /*-----------------------------------------------------------------------*/
10.157 + /* b) Calculate order hours */
10.158 + /*-----------------------------------------------------------------------*/
10.159 + op_diary_.result.row_count := 0;
10.160 + WHILE min_in_time_ < max_out_time_ LOOP
10.161 + cur_in_time_ := max_out_time_;
10.162 + FOR i_ IN 1 .. op_diary_.clocking.row_count LOOP
10.163 + IF min_in_time_ < op_diary_.clocking.stop_stamp(i_) THEN
10.164 + cur_in_time_ := LEAST(cur_in_time_, op_diary_.clocking.start_stamp(i_));
10.165 + END IF;
10.166 + END LOOP;
10.167 + cur_count_ := 0;
10.168 + cur_out_time_ := max_out_time_;
10.169 + FOR i_ IN 1 .. op_diary_.clocking.row_count LOOP
10.170 + IF min_in_time_ < op_diary_.clocking.stop_stamp(i_) THEN
10.171 + IF cur_in_time_ = op_diary_.clocking.start_stamp(i_) THEN
10.172 + cur_count_ := cur_count_+1;
10.173 + cur_out_time_ := LEAST(cur_out_time_, op_diary_.clocking.stop_stamp(i_));
10.174 + ELSE
10.175 + cur_out_time_ := LEAST(cur_out_time_, op_diary_.clocking.start_stamp(i_));
10.176 + END IF;
10.177 + END IF;
10.178 + END LOOP;
10.179 + cur_factor_ := 1 / cur_count_;
10.180 + FOR i_ IN 1 .. op_diary_.clocking.row_count LOOP
10.181 + IF cur_in_time_ = op_diary_.clocking.start_stamp(i_) AND
10.182 + cur_in_time_ < op_diary_.clocking.stop_stamp(i_) THEN
10.183 + op_id_ := op_diary_.clocking.op_id(i_);
10.184 + info_code_ := op_diary_.clocking.info_code(i_);
10.185 + mch_code_ := op_diary_.clocking.mch_code(i_);
10.186 + org_code_ := op_diary_.clocking.org_code(i_);
10.187 + FOR j_ IN 1 .. pers_diary_.result.row_count LOOP
10.188 + wage_hours_ := 0.0;
10.189 + wage_grp_ := pers_diary_.result.wage_grp(j_);
10.190 + wage_code_ := pers_diary_.result.wage_code(j_);
10.191 + pers_wage_hours_ := pers_diary_.result.wage_hours(j_);
10.192 + in_time_ := GREATEST(pers_diary_.result.wage_ftime(j_), cur_in_time_);
10.193 + out_time_ := LEAST(pers_diary_.result.wage_ttime(j_), cur_out_time_);
10.194 + IF wage_grp_ IN (wage_group_.normal, wage_group_.overtime, wage_group_.extra, wage_group_.increment, wage_group_.balance_accrual, wage_group_.info) THEN
10.195 + IF NOT pers_diary_.result.wage_hol(j_) THEN
10.196 + IF in_time_ < out_time_ THEN
10.197 + wage_hours_ := LEAST((out_time_-in_time_) * pers_diary_.result.wage_factor(j_), pers_wage_hours_);
10.198 + END IF;
10.199 + END IF;
10.200 + ELSIF wage_grp_ = wage_group_.balance_withdrawal THEN
10.201 + -- Bug 64820, Begin
10.202 + IF in_time_ < out_time_ THEN
10.203 + FOR k_ IN 1 .. pers_diary_.result.row_count LOOP
10.204 + pers_wage_grp_ := pers_diary_.result.wage_grp(k_);
10.205 + IF pers_wage_grp_ = wage_group_.normal AND
10.206 + in_time_ < pers_diary_.result.wage_ttime(k_) AND
10.207 + out_time_ > pers_diary_.result.wage_ftime(k_) AND
10.208 + pers_diary_.result.wage_hours(k_) > 0.005 THEN
10.209 + wage_grp_ := pers_wage_grp_;
10.210 + wage_code_ := pers_diary_.result.wage_code(k_);
10.211 + abs_hours_ := LEAST(pers_diary_.result.wage_hours(k_), pers_wage_hours_);
10.212 + abs_hours_ := LEAST((out_time_-in_time_) * pers_diary_.result.wage_factor(j_), abs_hours_);
10.213 + wage_hours_ := wage_hours_ - abs_hours_;
10.214 + END IF;
10.215 + END LOOP;
10.216 + END IF;
10.217 + -- Bug 64820, End
10.218 + END IF;
10.219 + IF wage_hours_ > 0.005 OR wage_hours_ < -0.005 THEN
10.220 + w_ := -1;
10.221 + FOR k_ IN 1 .. op_diary_.result.row_count LOOP
10.222 + IF op_id_ = op_diary_.result.op_id(k_) AND
10.223 + info_code_ = op_diary_.result.info_code(k_) AND
10.224 + mch_code_ = op_diary_.result.mch_code(k_) AND
10.225 + org_code_ = op_diary_.result.org_code(k_) AND
10.226 + wage_grp_ = op_diary_.result.wage_group(k_) AND
10.227 + wage_code_ = op_diary_.result.wage_code(k_) THEN
10.228 + w_ := k_;
10.229 + EXIT;
10.230 + END IF;
10.231 + END LOOP;
10.232 + IF w_ < 0 THEN
10.233 + op_diary_.result.row_count := op_diary_.result.row_count+1;
10.234 + w_ := op_diary_.result.row_count;
10.235 + op_diary_.result.op_id(w_) := op_id_;
10.236 + op_diary_.result.info_code(w_) := info_code_;
10.237 + op_diary_.result.mch_code(w_) := mch_code_;
10.238 + op_diary_.result.org_code(w_) := org_code_;
10.239 + op_diary_.result.contract(w_) := op_diary_.clocking.contract(i_);
10.240 + op_diary_.result.work_center_no(w_) := op_diary_.clocking.work_center_no(i_);
10.241 + op_diary_.result.labor_class_no(w_) := op_diary_.clocking.labor_class_no(i_);
10.242 + op_diary_.result.wage_group(w_) := wage_grp_;
10.243 + op_diary_.result.wage_code(w_) := wage_code_;
10.244 + op_diary_.result.wage_hours(w_) := 0.0;
10.245 + END IF;
10.246 + op_diary_.result.wage_hours(w_) := op_diary_.result.wage_hours(w_) + cur_factor_ * wage_hours_;
10.247 + END IF;
10.248 + END LOOP;
10.249 + op_diary_.clocking.start_stamp(i_) := cur_out_time_;
10.250 + END IF;
10.251 + END LOOP;
10.252 + min_in_time_ := cur_out_time_;
10.253 + END LOOP;
10.254 +END Calculate_Op_Hours___;
10.255 +
10.256 +
10.257 +PROCEDURE Convert_Group_Operations___ (
10.258 + op_diary_ IN OUT NOCOPY Op_Diary_Record_Type )
10.259 +IS
10.260 + op_id_ INTEGER;
10.261 + info_code_ VARCHAR2(20);
10.262 + grp_count_ INTEGER;
10.263 + grp_op_id_ INTEGER_ARRAY;
10.264 + grp_plan_hours_ NUMBER_ARRAY;
10.265 + sum_hours_ NUMBER;
10.266 + cnt_ INTEGER;
10.267 + w_ INTEGER;
10.268 + CURSOR Get_Operations IS
10.269 + SELECT op_id,
10.270 + NVL(DECODE(info_code_,
10.271 + 'R', plan_run_man,
10.272 + 'S', plan_setup_man,
10.273 + 'I', plan_run_man), 0)
10.274 + FROM op_plan_tab
10.275 + WHERE company_id = op_diary_.company_id
10.276 + AND sup_op_id = op_id_;
10.277 +BEGIN
10.278 + cnt_ := op_diary_.result.row_count;
10.279 + FOR i_ IN 1 .. cnt_ LOOP
10.280 + op_id_ := op_diary_.result.op_id(i_);
10.281 + info_code_ := op_diary_.result.info_code(i_);
10.282 + OPEN Get_Operations;
10.283 + FETCH Get_Operations
10.284 + BULK COLLECT INTO
10.285 + grp_op_id_,
10.286 + grp_plan_hours_;
10.287 + grp_count_ := Get_Operations%ROWCOUNT;
10.288 + CLOSE Get_Operations;
10.289 + IF grp_count_ > 0 THEN
10.290 + sum_hours_ := 0.0;
10.291 + FOR j_ IN 1 .. grp_count_ LOOP
10.292 + sum_hours_ := sum_hours_ + grp_plan_hours_(j_);
10.293 + END LOOP;
10.294 + IF sum_hours_ < 0.005 THEN
10.295 + /* If no planned hours, make equal distribution */
10.296 + FOR j_ IN 1 .. grp_count_ LOOP
10.297 + grp_plan_hours_(j_) := 1.0;
10.298 + END LOOP;
10.299 + sum_hours_ := TO_NUMBER(grp_count_);
10.300 + END IF;
10.301 + FOR j_ IN 1 .. grp_count_ LOOP
10.302 + w_ := op_diary_.result.row_count+1;
10.303 + op_diary_.result.op_id(w_) := grp_op_id_(j_);
10.304 + op_diary_.result.mch_code(w_) := op_diary_.result.mch_code(i_);
10.305 + op_diary_.result.info_code(w_) := op_diary_.result.info_code(i_);
10.306 + op_diary_.result.org_code(w_) := op_diary_.result.org_code(i_);
10.307 + op_diary_.result.contract(w_) := op_diary_.result.contract(i_);
10.308 + op_diary_.result.work_center_no(w_) := op_diary_.result.work_center_no(i_);
10.309 + op_diary_.result.labor_class_no(w_) := op_diary_.result.labor_class_no(i_);
10.310 + op_diary_.result.wage_group(w_) := op_diary_.result.wage_group(i_);
10.311 + op_diary_.result.wage_code(w_) := op_diary_.result.wage_code(i_);
10.312 + op_diary_.result.wage_hours(w_) := op_diary_.result.wage_hours(i_) * grp_plan_hours_(j_) / sum_hours_;
10.313 + op_diary_.result.row_count := w_;
10.314 + END LOOP;
10.315 + op_diary_.result.wage_hours(i_) := 0.0;
10.316 + END IF;
10.317 + END LOOP;
10.318 +END Convert_Group_Operations___;
10.319 +
10.320 +
10.321 +PROCEDURE Do_Wage_Rounding___ (
10.322 + pers_diary_ IN Time_Pers_Diary_Calc_API.Diary_Record_Type,
10.323 + op_diary_ IN OUT NOCOPY Op_Diary_Record_Type )
10.324 +IS
10.325 + pers_sum_hours_ NUMBER;
10.326 + op_sum_hours_ NUMBER;
10.327 + sum_hours_ NUMBER;
10.328 + diff_hours_ NUMBER;
10.329 + wage_hours_ NUMBER;
10.330 + wage_grp_ VARCHAR2(20);
10.331 + wage_code_ VARCHAR2(20);
10.332 + wage_diff_ NUMBER_ARRAY;
10.333 + w_ INTEGER;
10.334 +BEGIN
10.335 + IF NOT op_diary_.do_update THEN
10.336 + op_diary_.clocking.row_count := 0;
10.337 + op_diary_.result.row_count := 0;
10.338 + END IF;
10.339 + /*-----------------------------------------------------------------------*/
10.340 + /* a) Adjust wage hours according to TimePersDiaryResult */
10.341 + /*-----------------------------------------------------------------------*/
10.342 + FOR i_ IN 1 .. pers_diary_.result.row_count LOOP
10.343 + IF pers_diary_.result.wage_hours(i_) != 0 AND
10.344 + NOT pers_diary_.result.wage_hol(i_) THEN
10.345 + wage_grp_ := pers_diary_.result.wage_grp(i_);
10.346 + wage_code_ := pers_diary_.result.wage_code(i_);
10.347 + pers_sum_hours_ := 0.0;
10.348 + FOR j_ IN 1 .. pers_diary_.result.row_count LOOP
10.349 + IF pers_diary_.result.wage_grp(j_) = wage_grp_ AND
10.350 + pers_diary_.result.wage_code(j_) = wage_code_ AND
10.351 + NOT pers_diary_.result.wage_hol(j_) THEN
10.352 + pers_sum_hours_ := pers_sum_hours_ + pers_diary_.result.wage_hours(j_);
10.353 + END IF;
10.354 + END LOOP;
10.355 + op_sum_hours_ := 0.0;
10.356 + FOR j_ IN 1 .. op_diary_.result.row_count LOOP
10.357 + IF op_diary_.result.wage_group(j_) = wage_grp_ AND
10.358 + op_diary_.result.wage_code(j_) = wage_code_ THEN
10.359 + op_sum_hours_ := op_sum_hours_ + op_diary_.result.wage_hours(j_);
10.360 + END IF;
10.361 + END LOOP;
10.362 + /*-----------------------------------------------------------------------*/
10.363 + /* b) Wage hours are reduced proportionally to presence hours level */
10.364 + /*-----------------------------------------------------------------------*/
10.365 + sum_hours_ := op_sum_hours_;
10.366 + IF pers_sum_hours_ - op_sum_hours_ < 0.011 THEN
10.367 + sum_hours_ := 0.0;
10.368 + FOR j_ IN 1 .. op_diary_.result.row_count LOOP
10.369 + IF op_diary_.result.wage_group(j_) = wage_grp_ AND
10.370 + op_diary_.result.wage_code(j_) = wage_code_ THEN
10.371 + op_diary_.result.wage_hours(j_) := pers_sum_hours_ * op_diary_.result.wage_hours(j_) / op_sum_hours_;
10.372 + sum_hours_ := sum_hours_ + op_diary_.result.wage_hours(j_);
10.373 + END IF;
10.374 + END LOOP;
10.375 + END IF;
10.376 + op_sum_hours_ := ROUND(sum_hours_, 2);
10.377 + /*-----------------------------------------------------------------------*/
10.378 + /* c) Wage hours are rounded */
10.379 + /*-----------------------------------------------------------------------*/
10.380 + sum_hours_ := 0.0;
10.381 + FOR j_ IN 1 .. op_diary_.result.row_count LOOP
10.382 + IF op_diary_.result.wage_group(j_) = wage_grp_ AND
10.383 + op_diary_.result.wage_code(j_) = wage_code_ THEN
10.384 + wage_hours_ := op_diary_.result.wage_hours(j_);
10.385 + op_diary_.result.wage_hours(j_) := ROUND(wage_hours_, 2);
10.386 + wage_diff_(j_) := op_diary_.result.wage_hours(j_) - wage_hours_;
10.387 + sum_hours_ := sum_hours_ + op_diary_.result.wage_hours(j_);
10.388 + END IF;
10.389 + END LOOP;
10.390 + diff_hours_ := sum_hours_ - op_sum_hours_;
10.391 + /*-----------------------------------------------------------------------*/
10.392 + /* d) Wage hours are adjusted to total hours level after rounding diffs */
10.393 + /*-----------------------------------------------------------------------*/
10.394 + WHILE diff_hours_ < -0.001 LOOP
10.395 + w_ := 0;
10.396 + FOR j_ IN 1 .. op_diary_.result.row_count LOOP
10.397 + IF op_diary_.result.wage_group(j_) = wage_grp_ AND
10.398 + op_diary_.result.wage_code(j_) = wage_code_ THEN
10.399 + IF w_ = 0 THEN
10.400 + w_ := j_;
10.401 + ELSE
10.402 + IF wage_diff_(j_) < wage_diff_(w_) THEN
10.403 + w_ := j_;
10.404 + END IF;
10.405 + END IF;
10.406 + END IF;
10.407 + END LOOP;
10.408 + op_diary_.result.wage_hours(w_) := op_diary_.result.wage_hours(w_) + 0.01;
10.409 + wage_diff_(w_) := wage_diff_(w_) + 0.01;
10.410 + diff_hours_ := diff_hours_ + 0.01;
10.411 + END LOOP;
10.412 + WHILE diff_hours_ > 0.001 LOOP
10.413 + w_ := 0;
10.414 + FOR j_ IN 1 .. op_diary_.result.row_count LOOP
10.415 + IF op_diary_.result.wage_group(j_) = wage_grp_ AND
10.416 + op_diary_.result.wage_code(j_) = wage_code_ THEN
10.417 + IF w_ = 0 THEN
10.418 + w_ := j_;
10.419 + ELSE
10.420 + IF wage_diff_(j_) > wage_diff_(w_) THEN
10.421 + w_ := j_;
10.422 + END IF;
10.423 + END IF;
10.424 + END IF;
10.425 + END LOOP;
10.426 + op_diary_.result.wage_hours(w_) := op_diary_.result.wage_hours(w_) - 0.01;
10.427 + wage_diff_(w_) := wage_diff_(w_) - 0.01;
10.428 + diff_hours_ := diff_hours_ - 0.01;
10.429 + END LOOP;
10.430 + END IF;
10.431 + END LOOP;
10.432 +END Do_Wage_Rounding___;
10.433 +
10.434 +
10.435 +PROCEDURE Get_Diary___ (
10.436 + op_diary_ IN OUT NOCOPY Op_Diary_Record_Type )
10.437 +IS
10.438 + skip_ BOOLEAN;
10.439 + block_ BOOLEAN;
10.440 + found_ BOOLEAN;
10.441 + error_exist_ BOOLEAN;
10.442 +
10.443 + CURSOR Get_Diary IS
10.444 + SELECT ROWID,
10.445 + DECODE(auth_id, NULL, 0, 1),
10.446 + reg_status
10.447 + FROM op_pers_diary_tab
10.448 + WHERE company_id = op_diary_.company_id
10.449 + AND emp_no = op_diary_.emp_no
10.450 + AND account_date = op_diary_.account_date
10.451 + FOR UPDATE OF reg_status NOWAIT;
10.452 + CURSOR Get_Clockings IS
10.453 + SELECT ROWID,
10.454 + DECODE(error_no, NULL, 0,31,0, 1),
10.455 + op_id,
10.456 + mch_code,
10.457 + info_code,
10.458 + org_code,
10.459 + contract,
10.460 + work_center_no,
10.461 + labor_class_no,
10.462 + 24 * (start_stamp - account_date),
10.463 + 24 * (NVL(stop_stamp, start_stamp) - account_date)
10.464 + FROM op_clocking_tab
10.465 + WHERE company_id = op_diary_.company_id
10.466 + AND emp_no = op_diary_.emp_no
10.467 + AND account_date = op_diary_.account_date
10.468 + ORDER BY start_stamp, stop_stamp;
10.469 + --FOR UPDATE OF rowversion NOWAIT;
10.470 + CURSOR Get_Result IS
10.471 + SELECT ROWID
10.472 + FROM op_result_tab
10.473 + WHERE company_id = op_diary_.company_id
10.474 + AND emp_no = op_diary_.emp_no
10.475 + AND account_date = op_diary_.account_date
10.476 + FOR UPDATE OF rowversion NOWAIT;
10.477 +BEGIN
10.478 + /*-----------------------------------------------------------------------*/
10.479 + /* a) Fetch rows from OpClocking (to be updated later) */
10.480 + /*-----------------------------------------------------------------------*/
10.481 + op_diary_.error_no := 0;
10.482 + op_diary_.do_update := FALSE;
10.483 + op_diary_.clocking.row_count := 0;
10.484 + op_diary_.result.row_count := 0;
10.485 + skip_ := FALSE;
10.486 + block_ := FALSE;
10.487 + OPEN Get_Diary;
10.488 + FETCH Get_Diary
10.489 + INTO op_diary_.row_id,
10.490 + op_diary_.auth_id,
10.491 + op_diary_.reg_status;
10.492 + found_ := Get_Diary%FOUND;
10.493 + CLOSE Get_Diary;
10.494 + IF NOT found_ THEN
10.495 + op_diary_.reg_status := '';
10.496 + op_diary_.auth_id := 0;
10.497 + skip_ := TRUE;
10.498 + END IF;
10.499 + IF op_diary_.auth_id = 1 THEN
10.500 + block_ := TRUE;
10.501 + END IF;
10.502 + IF op_diary_.reg_status = reg_status_.OPEN THEN
10.503 + skip_ := TRUE;
10.504 + END IF;
10.505 + IF op_diary_.reg_status = reg_status_.ready THEN
10.506 + op_diary_.do_update := TRUE;
10.507 + END IF;
10.508 + IF op_diary_.reg_status = reg_status_.modified THEN
10.509 + block_ := TRUE;
10.510 + END IF;
10.511 + --
10.512 + OPEN Get_Clockings;
10.513 + FETCH Get_Clockings
10.514 + BULK COLLECT INTO
10.515 + op_diary_.clocking.row_id,
10.516 + op_diary_.clocking.error_no,
10.517 + op_diary_.clocking.op_id,
10.518 + op_diary_.clocking.mch_code,
10.519 + op_diary_.clocking.info_code,
10.520 + op_diary_.clocking.org_code,
10.521 + op_diary_.clocking.contract,
10.522 + op_diary_.clocking.work_center_no,
10.523 + op_diary_.clocking.labor_class_no,
10.524 + op_diary_.clocking.start_stamp,
10.525 + op_diary_.clocking.stop_stamp;
10.526 + op_diary_.clocking.row_count := Get_Clockings%ROWCOUNT;
10.527 + CLOSE Get_Clockings;
10.528 + --
10.529 + OPEN Get_Result;
10.530 + FETCH Get_Result
10.531 + BULK COLLECT INTO op_diary_.result.row_id;
10.532 + op_diary_.result.row_count := Get_Result%ROWCOUNT;
10.533 + CLOSE Get_Result;
10.534 + op_diary_.clocking.row_count_read := op_diary_.clocking.row_count;
10.535 + op_diary_.result.row_count_read := op_diary_.result.row_count;
10.536 + /*-----------------------------------------------------------------------*/
10.537 + /* b) If an error occurs on op clockings, save error code, */
10.538 + /* but continue with Time and Attendance processing */
10.539 + /*-----------------------------------------------------------------------*/
10.540 + error_exist_ := FALSE;
10.541 + FOR i_ IN 1 .. op_diary_.clocking.row_count LOOP
10.542 + IF op_diary_.clocking.start_stamp(i_) - op_diary_.clocking.stop_stamp(i_) > 0.001 AND
10.543 + test_active_(Time_Reg_Error_API.CD_OVERLAP) THEN
10.544 + skip_ := TRUE;
10.545 + op_diary_.error_no := Time_Reg_Error_API.CD_OVERLAP;
10.546 + END IF;
10.547 + FOR j_ IN i_+1 .. op_diary_.clocking.row_count LOOP
10.548 + IF ((op_diary_.clocking.op_id(i_) = op_diary_.clocking.op_id(j_)) AND
10.549 + (op_diary_.clocking.info_code(i_) = op_diary_.clocking.info_code(j_)) AND
10.550 + (op_diary_.clocking.mch_code(i_) = op_diary_.clocking.mch_code(j_)) ) THEN
10.551 + IF (op_diary_.clocking.labor_class_no(i_) != op_diary_.clocking.labor_class_no(j_)) THEN
10.552 + op_diary_.error_no := Time_Reg_Error_API.CD_LABOR_CLASS;
10.553 + Set_Op_Error_Labor___(op_diary_);
10.554 + skip_ := TRUE;
10.555 + error_exist_ := TRUE;
10.556 + END IF;
10.557 + IF (op_diary_.clocking.work_center_no(i_) != op_diary_.clocking.work_center_no(j_)) THEN
10.558 + --Bug 61149, start
10.559 + IF (Op_Machine_Api.Work_Center_Exists(op_diary_.clocking.contract(i_), op_diary_.clocking.work_center_no(i_))='TRUE') AND
10.560 + (Op_Machine_Api.Work_Center_Exists(op_diary_.clocking.contract(j_), op_diary_.clocking.work_center_no(j_))='TRUE') THEN
10.561 + op_diary_.error_no := Time_Reg_Error_API.CD_SUP_MCH_CODE;
10.562 + Set_Op_Error_Labor___(op_diary_);
10.563 + skip_ := TRUE;
10.564 + error_exist_ := TRUE;
10.565 + END IF;
10.566 + --Bug 61149, end
10.567 + END IF;
10.568 +
10.569 + END IF;
10.570 + END LOOP;
10.571 + IF (NOT (error_exist_)) THEN
10.572 + op_diary_.error_no := NULL;
10.573 + Set_Op_Error_Labor___(op_diary_);
10.574 + END IF;
10.575 + IF (op_diary_.clocking.error_no(i_) != 0) THEN
10.576 + skip_ := TRUE;
10.577 + END IF;
10.578 + END LOOP;
10.579 + IF block_ AND op_diary_.do_update THEN
10.580 + op_diary_.clocking.row_count := 0;
10.581 + op_diary_.error_no := Time_Reg_Error_API.CD_ORACLE;
10.582 + END IF;
10.583 + IF skip_ THEN
10.584 + op_diary_.clocking.row_count := 0;
10.585 + END IF;
10.586 + IF block_ THEN
10.587 + op_diary_.clocking.row_count := 0;
10.588 + op_diary_.do_update := FALSE;
10.589 + END IF;
10.590 + IF op_diary_.clocking.row_count > 0 THEN
10.591 + op_diary_.do_update := TRUE;
10.592 + END IF;
10.593 + IF op_diary_.clocking.row_count = 0 THEN
10.594 + RAISE Skip;
10.595 + END IF;
10.596 +END Get_Diary___;
10.597 +
10.598 +
10.599 +PROCEDURE Get_Op_Data___ (
10.600 + op_data_ OUT NOCOPY Op_Data_Rec,
10.601 + pers_diary_ IN Time_Pers_Diary_Calc_API.Diary_Record_Type,
10.602 + op_diary_ IN OUT NOCOPY Op_Diary_Record_Type )
10.603 +IS
10.604 + company_id_ VARCHAR2(20);
10.605 + emp_no_ VARCHAR2(20);
10.606 + account_date_ DATE;
10.607 + work_sched_ Work_Sched_Assign_API.Public_Rec;
10.608 + calc_param_type_ VARCHAR2(20);
10.609 + wage_grp_ VARCHAR2(20);
10.610 + wage_hours_ NUMBER;
10.611 + CURSOR Get_Calc_Param IS
10.612 + SELECT param_label_db param_label,
10.613 + NVL(param_value, 0) param_value
10.614 + FROM time_calc_param_desc
10.615 + WHERE company_id = company_id_
10.616 + AND calc_param_type = calc_param_type_;
10.617 +BEGIN
10.618 + company_id_ := op_diary_.company_id;
10.619 + emp_no_ := op_diary_.emp_no;
10.620 + account_date_ := op_diary_.account_date;
10.621 + op_data_.org_code := Company_Pers_Assign_API.Get_Org_Code(company_id_, emp_no_, account_date_);
10.622 + work_sched_ := Work_Sched_Assign_API.Get(company_id_, emp_no_, account_date_);
10.623 + op_diary_.wage_class := work_sched_.wage_class;
10.624 + calc_param_type_ := '';
10.625 + IF work_sched_.rule_type IS NOT NULL THEN
10.626 + calc_param_type_ := Time_Rule_API.Get_Calc_Param_Type(company_id_, work_sched_.wage_class, work_sched_.rule_type);
10.627 + END IF;
10.628 + op_data_.min_op_diff := 0.0;
10.629 + op_data_.max_op_diff := 0.0;
10.630 + IF calc_param_type_ IS NOT NULL THEN
10.631 + FOR p_ IN Get_Calc_Param LOOP
10.632 + CASE p_.param_label
10.633 + WHEN time_param_label_.min_op_diff THEN
10.634 + op_data_.min_op_diff := p_.param_value;
10.635 + WHEN time_param_label_.max_op_diff THEN
10.636 + op_data_.max_op_diff := p_.param_value;
10.637 + ELSE
10.638 + NULL;
10.639 + END CASE;
10.640 + END LOOP;
10.641 + END IF;
10.642 + op_data_.presence_hours := 0.0;
10.643 + FOR i_ IN 1 .. pers_diary_.result.row_count LOOP
10.644 + wage_hours_ := pers_diary_.result.wage_hours(i_);
10.645 + IF wage_hours_ > 0.001 OR wage_hours_ < -0.001 THEN
10.646 + wage_grp_ := pers_diary_.result.wage_grp(i_);
10.647 + IF wage_grp_ IN (wage_group_.normal, wage_group_.overtime, wage_group_.extra, wage_group_.balance_accrual) THEN
10.648 + IF NOT pers_diary_.result.wage_hol(i_) THEN
10.649 + op_data_.presence_hours := op_data_.presence_hours + wage_hours_;
10.650 + END IF;
10.651 + ELSIF wage_grp_ = wage_group_.balance_withdrawal THEN
10.652 + op_data_.presence_hours := op_data_.presence_hours - wage_hours_;
10.653 + END IF;
10.654 + END IF;
10.655 + END LOOP;
10.656 + op_data_.presence_hours := ROUND(op_data_.presence_hours, 2);
10.657 +END Get_Op_Data___;
10.658 +
10.659 +
10.660 +PROCEDURE Remove_Result___ (
10.661 + op_diary_ IN Op_Diary_Record_Type )
10.662 +IS
10.663 +BEGIN
10.664 + IF op_diary_.result.row_count_read > 0 AND op_diary_.do_update THEN
10.665 + FORALL i_ IN 1 .. op_diary_.result.row_count_read
10.666 + DELETE
10.667 + FROM op_result_tab
10.668 + WHERE ROWID = op_diary_.result.row_id(i_);
10.669 + END IF;
10.670 +END Remove_Result___;
10.671 +
10.672 +
10.673 +PROCEDURE Save_Result___ (
10.674 + op_diary_ IN Op_Diary_Record_Type )
10.675 +IS
10.676 +BEGIN
10.677 + IF op_diary_.result.row_count > 0 THEN
10.678 + FORALL i_ IN 1 .. op_diary_.result.row_count
10.679 + INSERT
10.680 + INTO op_result_tab (
10.681 + company_id,
10.682 + op_id,
10.683 + mch_code,
10.684 + info_code,
10.685 + emp_no,
10.686 + account_date,
10.687 + org_code,
10.688 + contract,
10.689 + work_center_no,
10.690 + labor_class_no,
10.691 + wage_class,
10.692 + wage_group,
10.693 + wage_code,
10.694 + work_hours,
10.695 + rowversion)
10.696 + SELECT op_diary_.company_id,
10.697 + op_diary_.result.op_id(i_),
10.698 + op_diary_.result.mch_code(i_),
10.699 + op_diary_.result.info_code(i_),
10.700 + op_diary_.emp_no,
10.701 + op_diary_.account_date,
10.702 + op_diary_.result.org_code(i_),
10.703 + op_diary_.result.contract(i_),
10.704 + op_diary_.result.work_center_no(i_),
10.705 + op_diary_.result.labor_class_no(i_),
10.706 + op_diary_.wage_class,
10.707 + op_diary_.result.wage_group(i_),
10.708 + op_diary_.result.wage_code(i_),
10.709 + ROUND(op_diary_.result.wage_hours(i_), 2),
10.710 + SYSDATE
10.711 + FROM dual
10.712 + WHERE ROUND(op_diary_.result.wage_hours(i_), 2) != 0;
10.713 + END IF;
10.714 +END Save_Result___;
10.715 +
10.716 +
10.717 +PROCEDURE Set_Op_Error___ (
10.718 + op_diary_ IN Op_Diary_Record_Type )
10.719 +IS
10.720 + PRAGMA AUTONOMOUS_TRANSACTION;
10.721 +BEGIN
10.722 + IF op_diary_.clocking.row_count > 0 THEN
10.723 + --Bug 61149, start
10.724 + IF op_diary_.error_no IS NOT NULL THEN
10.725 + FORALL i_ IN 1 .. op_diary_.clocking.row_id.COUNT
10.726 + UPDATE op_clocking_tab
10.727 + SET error_no = op_diary_.error_no,
10.728 + rowversion = SYSDATE
10.729 + WHERE ROWID = op_diary_.clocking.row_id(i_)
10.730 + AND op_diary_.clocking.row_id(i_) IS NOT NULL
10.731 + AND error_no IS NULL;
10.732 + COMMIT;
10.733 + END IF;
10.734 + --Bug 61149, end
10.735 + END IF;
10.736 +EXCEPTION
10.737 + WHEN OTHERS THEN
10.738 + ROLLBACK;
10.739 +END Set_Op_Error___;
10.740 +
10.741 +PROCEDURE Set_Op_Error_Labor___ (
10.742 + op_diary_ IN Op_Diary_Record_Type )
10.743 +IS
10.744 + PRAGMA AUTONOMOUS_TRANSACTION;
10.745 +BEGIN
10.746 + IF op_diary_.clocking.row_count > 0 THEN
10.747 + --Bug 61149, start
10.748 + IF op_diary_.error_no IS NOT NULL THEN
10.749 + FORALL i_ IN 1 .. op_diary_.clocking.row_id.COUNT
10.750 + UPDATE op_clocking_tab
10.751 + SET error_no = op_diary_.error_no,
10.752 + rowversion = SYSDATE
10.753 + WHERE ROWID = op_diary_.clocking.row_id(i_)
10.754 + AND op_diary_.clocking.row_id(i_) IS NOT NULL;
10.755 + COMMIT;
10.756 + END IF;
10.757 + --Bug 61149, end
10.758 + END IF;
10.759 +EXCEPTION
10.760 + WHEN OTHERS THEN
10.761 + ROLLBACK;
10.762 +END Set_Op_Error_Labor___;
10.763 +
10.764 +
10.765 +PROCEDURE Update_Diary___ (
10.766 + op_data_ IN Op_Data_Rec,
10.767 + op_diary_ IN OUT NOCOPY Op_Diary_Record_Type )
10.768 +IS
10.769 + min_op_normal_sum_ NUMBER;
10.770 + max_op_normal_sum_ NUMBER;
10.771 + sum_hours_ NUMBER;
10.772 +BEGIN
10.773 + min_op_normal_sum_ := op_data_.presence_hours + op_data_.min_op_diff - 0.005;
10.774 + max_op_normal_sum_ := op_data_.presence_hours + op_data_.max_op_diff + 0.005;
10.775 + sum_hours_ := 0.0;
10.776 + FOR w_ IN 1 .. op_diary_.result.row_count LOOP
10.777 + IF op_diary_.result.wage_group(w_) IN (wage_group_.normal, wage_group_.overtime, wage_group_.balance_accrual, wage_group_.extra) THEN
10.778 + sum_hours_ := sum_hours_ + op_diary_.result.wage_hours(w_);
10.779 + END IF;
10.780 + END LOOP;
10.781 + op_diary_.reg_status := reg_status_.done;
10.782 + IF op_diary_.clocking.row_count > 0 THEN
10.783 + UPDATE op_pers_diary_tab
10.784 + SET reg_status = op_diary_.reg_status,
10.785 + rowversion = SYSDATE
10.786 + WHERE rowid = op_diary_.row_id;
10.787 + END IF;
10.788 + /*-----------------------------------------------------------------------*/
10.789 + /* If an error occurred during order calculation all OpClocking records */
10.790 + /* are error marked. */
10.791 + /*-----------------------------------------------------------------------*/
10.792 + IF op_diary_.error_no != 0 AND op_diary_.clocking.row_count_read > 0 THEN
10.793 + op_diary_.clocking.row_count := op_diary_.clocking.row_count_read;
10.794 + Set_Op_Error___(op_diary_);
10.795 + END IF;
10.796 +END Update_Diary___;
10.797 +
10.798 +
10.799 +
10.800 +-----------------------------------------------------------------------------
10.801 +-------------------- LU SPECIFIC PRIVATE METHODS ----------------------------
10.802 +-----------------------------------------------------------------------------
10.803 +
10.804 +PROCEDURE Calculate_Op__ (
10.805 + pers_diary_ IN Time_Pers_Diary_Calc_API.Diary_Record_Type )
10.806 +IS
10.807 + op_diary_ Op_Diary_Record_Type;
10.808 + op_data_ Op_Data_Rec;
10.809 + history_enabled_ BOOLEAN;
10.810 +BEGIN
10.811 + SAVEPOINT Calculation_Start;
10.812 + /*************************************************************************/
10.813 + /* 1) Start */
10.814 + /*-----------------------------------------------------------------------*/
10.815 + history_enabled_ := History_Setting_Util_API.Is_Enabled;
10.816 + History_Setting_Util_API.Disable;
10.817 + op_diary_.company_id := pers_diary_.company_id;
10.818 + op_diary_.emp_no := pers_diary_.emp_no;
10.819 + op_diary_.account_date := pers_diary_.account_date;
10.820 + /*************************************************************************/
10.821 + /* 2) Get data */
10.822 + /*************************************************************************/
10.823 + Get_Diary___(op_diary_);
10.824 + Get_Op_Data___(op_data_, pers_diary_, op_diary_);
10.825 + /*************************************************************************/
10.826 + /* 3) Order calculations */
10.827 + /*************************************************************************/
10.828 + Calculate_Op_Hours___(op_data_, pers_diary_, op_diary_);
10.829 + Convert_Group_Operations___(op_diary_);
10.830 + Do_Wage_Rounding___(pers_diary_, op_diary_);
10.831 + /*************************************************************************/
10.832 + /* 4) Store order calulations */
10.833 + /*************************************************************************/
10.834 + Remove_Result___(op_diary_);
10.835 + Save_Result___(op_diary_);
10.836 + Update_Diary___(op_data_, op_diary_);
10.837 + /*************************************************************************/
10.838 + /* 5) End */
10.839 + /*************************************************************************/
10.840 + IF history_enabled_ THEN
10.841 + History_Setting_Util_API.Enable;
10.842 + END IF;
10.843 +EXCEPTION
10.844 + WHEN Skip THEN
10.845 + ROLLBACK TO Calculation_Start;
10.846 + IF history_enabled_ THEN
10.847 + History_Setting_Util_API.Enable;
10.848 + END IF;
10.849 + WHEN RowLocked THEN
10.850 + ROLLBACK TO Calculation_Start;
10.851 + IF history_enabled_ THEN
10.852 + History_Setting_Util_API.Enable;
10.853 + END IF;
10.854 + WHEN DataError THEN
10.855 + ROLLBACK TO Calculation_Start;
10.856 + Set_Op_Error___(op_diary_);
10.857 + IF history_enabled_ THEN
10.858 + History_Setting_Util_API.Enable;
10.859 + END IF;
10.860 + WHEN OTHERS THEN
10.861 + op_diary_.error_no := SQLCODE;
10.862 + ROLLBACK TO Calculation_Start;
10.863 + IF test_active_(Time_Reg_Error_API.CD_ORACLE) THEN
10.864 + op_diary_.error_no := Time_Reg_Error_API.CD_ORACLE;
10.865 + Set_Op_Error___(op_diary_);
10.866 + END IF;
10.867 + IF history_enabled_ THEN
10.868 + History_Setting_Util_API.Enable;
10.869 + END IF;
10.870 +END Calculate_Op__;
10.871 +
10.872 +
10.873 +FUNCTION Get_Op_Clocking_Count__ (
10.874 + pers_diary_ IN Time_Pers_Diary_Calc_API.Diary_Record_Type ) RETURN INTEGER
10.875 +IS
10.876 + op_diary_ Op_Diary_Record_Type;
10.877 +BEGIN
10.878 + op_diary_.company_id := pers_diary_.company_id;
10.879 + op_diary_.emp_no := pers_diary_.emp_no;
10.880 + op_diary_.account_date := pers_diary_.account_date;
10.881 + Get_Diary___(op_diary_);
10.882 + RETURN op_diary_.clocking.row_count;
10.883 +EXCEPTION
10.884 + WHEN OTHERS THEN
10.885 + RETURN 0;
10.886 +END Get_Op_Clocking_Count__;
10.887 +
10.888 +
10.889 +
10.890 +-----------------------------------------------------------------------------
10.891 +-------------------- LU SPECIFIC PROTECTED METHODS --------------------------
10.892 +-----------------------------------------------------------------------------
10.893 +
10.894 +
10.895 +-----------------------------------------------------------------------------
10.896 +-------------------- LU SPECIFIC PUBLIC METHODS -----------------------------
10.897 +-----------------------------------------------------------------------------
10.898 +
10.899 +
10.900 +-----------------------------------------------------------------------------
10.901 +-------------------- FOUNDATION1 METHODS ------------------------------------
10.902 +-----------------------------------------------------------------------------
10.903 +-- Init
10.904 +-- Dummy procedure that can be called at database startup to ensure that
10.905 +-- this package is loaded into memory for performance reasons only.
10.906 +-----------------------------------------------------------------------------
10.907 +
10.908 +PROCEDURE Init
10.909 +IS
10.910 +BEGIN
10.911 + NULL;
10.912 +END Init;
10.913 +-------------------------------------------------------------------------
10.914 +-- Initialize
10.915 +-------------------------------------------------------------------------
10.916 +BEGIN
10.917 + comp_time_format_ := Comp_Time_Format_API.Get_Db_Value_Rec;
10.918 + wage_group_ := Wage_Group_API.Get_Db_Value_Rec;
10.919 + time_param_label_ := Time_Param_Label_API.Get_Db_Value_Rec;
10.920 + reg_status_ := Time_Reg_Status_API.Get_Db_Value_Rec;
10.921 + Time_Reg_Error_API.Get_Active_Array(test_active_);
10.922 +END &PKG;
10.923 +/
10.924 +SHOW ERROR
10.925 +
10.926 +UNDEFINE MODULE
10.927 +UNDEFINE LU
10.928 +UNDEFINE PKG
10.929 +
10.930 +
10.931 +-----------------------------------------------------------------------------
11.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
11.2 +++ b/PLSQL/Lexer/test/unit/data/ScorecardInputValue.apy Wed May 15 23:04:20 2013 +0200
11.3 @@ -0,0 +1,6810 @@
11.4 +-----------------------------------------------------------------------------
11.5 +--
11.6 +-- Logical unit: ScorecardInputValue
11.7 +--
11.8 +-- Purpose:
11.9 +--
11.10 +-- IFS/Design Template Version 2.2
11.11 +--
11.12 +-- Date Sign History
11.13 +-- ------ ---- -----------------------------------------------------------
11.14 +-- 090402 ASJALK Created.
11.15 +-- 230402 ASJALK Changed the view comments.
11.16 +-- 150502 ASJALK Added method Get_Distributed_Attr.
11.17 +-- 200502 ASJALK Added method Update_Distributed_Values and removed the method Get_Distributed_Attr.
11.18 +-- 200502 ASJALK Added method Update_Sales_Values.
11.19 +-- 220502 SHWILK Call Id: 84289 - Changed the Modify__ method.
11.20 +-- 230502 ASJALK Added method Calculate_Measures.
11.21 +-- 240502 ASJALK Modified method Calculate_Measures.
11.22 +-- 300502 ASJALK Added method Update_Referred_Component.
11.23 +-- 310502 ASJALK Modified method Calculate_Measures.
11.24 +-- 110602 ASJALK Modified method Update_Sales_Values.
11.25 +-- 120602 ASJALK Added a new parameter for method Update_Reffered_Component.
11.26 +-- 130602 MAWELK Fixed Call Id 85475.(Added a update satement to Scorecard_Structure_tab in the Modify__ method.)
11.27 +-- 170602 ASJALK Added a update statement to Scorecard_Structure_tab in the Calculate_Measures and removed the
11.28 +-- update statement in Modify__ method.
11.29 +-- 180602 UMDOLK Call Id 85764,85765 Corrected.
11.30 +-- 200602 ASJALK Call Id 85793.
11.31 +-- 210602 MAWELK CALL ID 85518 Decimal Problem.
11.32 +-- 250602 UMDOLK Call Id 85913, 85775 Corrected.
11.33 +-- 250602 ASJALK Call Id 85606.
11.34 +-- 250602 UMDOLK Changed methods Publish__,Publish_Scorecard, and Update_Versions__.
11.35 +-- 250602 ASJALK Modified Update_Distributed_Values method.
11.36 +-- 250602 MAWELK CALL ID 85518 Decimal Problem(made the database more than 2 decimals).
11.37 +-- 260602 UMDOLK Corrected a bug in planned data publishing ( Changed Publish__ Method).
11.38 +-- 190802 INGULK Meathod added Check_Table.(Call Id 86123)
11.39 +-- 030902 INGULK Removed the check for the valid table in the Publish_Score__(Call Id 88441).
11.40 +-- 250902 SHWILK Added the field Action
11.41 +-- 011002 ASJALK Modified methods Update_Distributed_Values and Update_Sales_Values.
11.42 +-- 011002 MAWELK Added a new parameter called from_where_ to Update_Distributed_Values and Update_Sales_Values. Also change the code for measures too.
11.43 +-- 041002 ASJALK Added new parameter "action_value_" to Update_Distributed_Values and Update_Sales_Values methods.
11.44 +-- 071002 ASJALK Changed the error messages of Update_Sales_Values.
11.45 +-- 210103 ASJALK Rewrite all the get methods used for scorecard planning in the scorecard_structure_apy which was
11.46 +-- previously written in the scorecard_measure_apy.
11.47 +-- 130203 ASJALK Modified Update_Distributed_Values,Update_Sales_Values,Calculate_Measures methods in order to calculate the version and index (new logic).
11.48 +-- 130203 PRWELK modified input_scorecard_value procedure with ref cursors.
11.49 +-- 190203 ASJALK Modified Update_Distributed_Values,Update_Sales_Values methods.
11.50 +-- 240203 ASJALK Modified cursors 'get_period' of Update_Sales_Values and Input_Scorecard_Data methods.
11.51 +-- 290303 ASJALK Added methods Hierachical_Distribution and Distribute_Input_Values___.
11.52 +-- 010403 PRWELK Added support for administrating individual items in input_scorecard_data().
11.53 +-- 090903 PRWELK Added set_Publishing_environment,start_publishing_environment__,Publish_Environment_Batch.
11.54 +-- 090403 ASJALK Modified the method Distribute_Input_Values___.
11.55 +-- 100403 PRWELK Added Set_Publish_Scorecards()
11.56 +-- 230403 PRWELK Added prepare_scorecar_publish__,publish_scorecard_batch(),start_publish_scorecard_.
11.57 +-- 250403 MAAMLK Call Id 96585 - Added the new error message in Distribute_Input_Values___.
11.58 +-- 300403 ASJALK Added methods Hierarchical_Consolidation and Consolidate_Values.
11.59 +-- 060503 ASJALK Added methods All_Hierarchical_Logic,Background_Hierarchical_Logic,
11.60 +-- Call_Hierarchical_Logic and Start_Hierarchical_Logic.
11.61 +-- 080503 ASJALK Modified method Start_Hierarchical_Logic.
11.62 +-- 190503 MAAMLK Call Id 97124 - Added a new view Scorecard_Input_Value2 (VIEW2)
11.63 +-- 210503 ASJALK Modified All_Hierarchical_Logic method in order to make the ACTION field value TRUE.
11.64 +-- 040603 UMDOLK Call Id 97125 - Created a new view SCORECARD_INPUT_VALUE3.
11.65 +-- 050603 UMDOLK Modified Calculate_Measures method.
11.66 +-- 190603 ASJALK Added new field plan_seq_no to the view SCORECARD_INPUT_VALUE3.
11.67 +-- 070703 ASJALK Modified Calculate_Measures method.
11.68 +-- 210703 ANGALK Call Id 98470 - Cannot plan in a year with one period. Calculate_Measures method updated
11.69 +-- 240703 ANGALK Call Id 98225 - Changed message displayed when no plan formula in Calculate_Measures method
11.70 +-- 200803 CHPALK Added objid and objversion to view SCORECARD_INPUT_VALUE2.
11.71 +-- 280803 INGULK Call Id 101075 Added Rowversion to the Update statement in the Update_Versions__ method.
11.72 +-- 010903 ANGALK Call Id 98762 - CalculateMeasures() method was updated
11.73 +-- 020903 ANGALK Call Id 98855 - CalculateMeasures() method was updated
11.74 +-- 040903 CHPALK Call Id 101406 Changed methods Publish_Score__ ,Publish__
11.75 +-- and Update_Versions__ to improve performace.
11.76 +-- 170903 INGULK Call Id 102095 Changed lenghs of 4 variables in Input_Scorecard_Data & Scorecard_Inputs_By_Batch.
11.77 +-- 220903 ASJALK Call Id 103595 Changed dynamic cursors used in Update_Sales_Values to use bind variables.
11.78 +-- 230903 MAAMLK Call Id 99040 Changed the IID check from INF_WAR to DATA_WAR.
11.79 +-- 171003 ASJALK Call Id 105967 Modified method Update_Sales_Values.
11.80 +-- 231003 ANGALK Call Id 108864 Modified Update_Versions_() and Publish_Score methods
11.81 +-- 280104 UMDOLK FIPR408A1 Unicode (changed instrb to instr)
11.82 +-- 050304 CHPALK Modified Insert___ to use RETURNING INTO to select rowid.
11.83 +-- 040304 MAAMLK Call Id 40712
11.84 +-- 240304 MAWELK SP1 Merge (LCS Bug Id 42350)
11.85 +-- 080404 ASJALK Modified the code in order to align with the removed fields planned,scorecard_published,
11.86 +-- environment_published from scorecard_tab.
11.87 +-- 200404 ASJALK Called the method Set_To_Planned in Distribute_Input_Values___ and Consolidate_Values.
11.88 +-- 200404 PRWELK Value_distribution_type is replaced by scorecard_measure_api.get_match_type()
11.89 +-- 210404 PRWELK Removed Plan formula field and references
11.90 +-- 210404 ASJALK Modified methods Distribute_Input_Values___ and Consolidate_Values.
11.91 +-- 220404 ASJALK Modified methods Update_Distributed_Values,Update_Sales_Values,Distribute_Input_Values___ and Consolidate_Values.
11.92 +-- 280404 ASJALK Aligned the code according to the added state machine.
11.93 +-- 280404 ASJALK Added method Set_To_Planned and called this method in the planning methods.
11.94 +-- 280404 ASJALK Added method Get_Sco_Obj_State_Date.
11.95 +-- 190704 PRWELK Added Method Budget_And_Calculate
11.96 +-- 090804 PRWELK Changed Budget_And_Calculate method (Bug Id 116291)
11.97 +-- 260804 ASJALK Call Id 116850 Modified method Insert__.
11.98 +-- 030904 INGULK Call Id 117467 Changed cursor get_open_child_scr in the method Distribute_Input_Values___.
11.99 +-- 251004 ASJALK Call Id 118165 Modified method Budget_And_Calculate.
11.100 +-- 101104 MAAMLK Call Id 119453 Modified 'where' condition for consolidation error message
11.101 +-- 111104 MAAMLK Call Id 119454 Modified the 'where' condition
11.102 +-- 101204 INGULK Added General_SYS.Init_Method for procedures and Pragma for functions.
11.103 +-- 300305 MAWELK FIPR375 Added a method called Get_Error_Msg_For_Comp().
11.104 +-- 211205 ISWALK Added method Import_Planned_Values(), Calculate_Year_Value(), Aggregate_Planned_Values()
11.105 +-- and SCORECARD_INPUT_VALUE_BUDPRO... views.
11.106 +-- 110106 ISWALK Modified SCORECARD_INPUT_VALUE3,SCORECARD_INPUT_VALUE_BUDPRO1
11.107 +-- 140106 ISWALK Added method Load_Planned_Values(), Get_No_Of_Periods().
11.108 +-- 090206 MAAMLK Call Id 132397 This problem was caused due to the assert comments introduced. As such
11.109 +-- these changes were reversed.
11.110 +-- 170206 ISWALK Added functionality to load financials type data from budget process.
11.111 +-- 090306 ISWALK B136588 modified Import_Fin_Values().
11.112 +-- 090306 ISWALK B136601 modified Calculate_Year_Value() and Import_Fin_Values().
11.113 +-- 220306 ISWALK B136602 modified Load_Planned_Values() and Import_Fin_Values().
11.114 +-- 220207 INGULK Bug 63415, Changes to the WHERE clause of the view SCORECARD_INPUT_VALUE_BUDPRO2.
11.115 +-- 070515 SURMLK Added ifs_assert_safe comment
11.116 +-- 070523 CHSALK LCS Merge 64779, added a method Calc_Measure_From_Budpro() to calculate the measure values.
11.117 +-- 060707 MAAMLK LCS Merge Bug 65000, Corrected in all_hierarchical_logic.
11.118 +-- 110707 MAAMLK LCS Merge Bug 66326, Corrected in Publish_Environment.
11.119 +-- 160707 MAAMLK LCS Merge Bug 64779, added a method Calc_Measure_From_Budpro() to calculate the measure values.
11.120 +-- 200707 MAAMLK LCS Merge Bug 66082, Added calculate measure for FIN measures
11.121 +-- 051107 MAWELK Bug 68118, Changes to Import_Fin_Values()
11.122 +-- 060208 MAKRLK Bug 71089, Changes to Import_Fin_Values(), added dynamic calls to BUDPRO when required.
11.123 +-- 080318 Nsillk Bug 72069, Added assert_safe to places where it was missing.
11.124 +-- 080331 MAKRLK Bug 66984, changed method Load_Planned_Values()
11.125 +-- 160908 MAAYLK Bug 76573, Set measure to planned state at the end of Calculate_Measures() method
11.126 +-----------------------------------------------------------------------------
11.127 +
11.128 +DEFINE MODULE = BUSPER
11.129 +DEFINE LU = ScorecardInputValue
11.130 +DEFINE TABLE = SCORECARD_INPUT_VALUE_TAB
11.131 +DEFINE VIEW = SCORECARD_INPUT_VALUE
11.132 +DEFINE VIEW2 = SCORECARD_INPUT_VALUE2
11.133 +DEFINE VIEW3 = SCORECARD_INPUT_VALUE3
11.134 +DEFINE VIEW4 = SCORECARD_INPUT_VALUE_BUDPRO1
11.135 +DEFINE VIEW5 = SCORECARD_INPUT_VALUE_BUDPRO2
11.136 +DEFINE PKG = SCORECARD_INPUT_VALUE_API
11.137 +
11.138 +DEFINE OBJID = rowid
11.139 +DEFINE OBJVERSION = "ltrim(lpad(to_char(rowversion,'YYYYMMDDHH24MISS'),2000))"
11.140 +
11.141 +DEFINE OBJSTATE = rowstate
11.142 +DEFINE OBJEVENTS = &PKG..Finite_State_Events__(&OBJSTATE)
11.143 +DEFINE STATE = &PKG..Finite_State_Decode__(&OBJSTATE)
11.144 +-----------------------------------------------------------------------------
11.145 +-------------------- VIEWS FOR SELECTS --------------------------------------
11.146 +-----------------------------------------------------------------------------
11.147 +
11.148 +PROMPT Creating &VIEW view
11.149 +
11.150 +CREATE OR REPLACE FORCE VIEW &VIEW AS
11.151 +SELECT environment environment,
11.152 + scorecard scorecard,
11.153 + year year,
11.154 + version version,
11.155 + scorecard_object scorecard_object,
11.156 + object_type object_type,
11.157 + year_value year_value,
11.158 + p1_key p1_key,
11.159 + p1_value p1_value,
11.160 + p2_key p2_key,
11.161 + p2_value p2_value,
11.162 + p3_key p3_key,
11.163 + p3_value p3_value,
11.164 + p4_key p4_key,
11.165 + p4_value p4_value,
11.166 + p5_key p5_key,
11.167 + p5_value p5_value,
11.168 + p6_key p6_key,
11.169 + p6_value p6_value,
11.170 + p7_key p7_key,
11.171 + p7_value p7_value,
11.172 + p8_key p8_key,
11.173 + p8_value p8_value,
11.174 + p9_key p9_key,
11.175 + p9_value p9_value,
11.176 + p10_key p10_key,
11.177 + p10_value p10_value,
11.178 + p11_key p11_key,
11.179 + p11_value p11_value,
11.180 + p12_key p12_key,
11.181 + p12_value p12_value,
11.182 + action action,
11.183 + mea_state_change_date mea_state_change_date,
11.184 + budget_version budget_version,
11.185 + &OBJID objid,
11.186 + &OBJVERSION objversion,
11.187 + &OBJSTATE objstate,
11.188 + &OBJEVENTS objevents,
11.189 + &STATE state
11.190 +FROM scorecard_input_value_tab
11.191 +WITH read only;
11.192 +
11.193 +COMMENT ON TABLE &VIEW
11.194 + IS 'LU=&LU^PROMPT=Scorecard Input Value^MODULE=&MODULE^';
11.195 +
11.196 +COMMENT ON COLUMN &VIEW..environment
11.197 + IS 'FLAGS=KMIU-^DATATYPE=STRING(10)^PROMPT=Environment^REF=ScorecardEnvironment^';
11.198 +COMMENT ON COLUMN &VIEW..scorecard
11.199 + IS 'FLAGS=KMIU-^DATATYPE=STRING(10)^PROMPT=Scorecard^REF=Scorecard(environment)^';
11.200 +COMMENT ON COLUMN &VIEW..year
11.201 + IS 'FLAGS=KMIU-^DATATYPE=STRING(20)^PROMPT=Year^REF=EnvironmentYear(environment)^';
11.202 +COMMENT ON COLUMN &VIEW..version
11.203 + IS 'FLAGS=KMI-L^DATATYPE=STRING(20)^PROMPT=Version^';
11.204 +COMMENT ON COLUMN &VIEW..scorecard_object
11.205 + IS 'FLAGS=KMIU-^DATATYPE=STRING(10)^PROMPT=Scorecard Object^';
11.206 +COMMENT ON COLUMN &VIEW..object_type
11.207 + IS 'FLAGS=AMIU-^DATATYPE=STRING(10)^PROMPT=Object Type^';
11.208 +COMMENT ON COLUMN &VIEW..year_value
11.209 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=Year Value^';
11.210 +COMMENT ON COLUMN &VIEW..p1_key
11.211 + IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P1 Key^';
11.212 +COMMENT ON COLUMN &VIEW..p1_value
11.213 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P1 Value^';
11.214 +COMMENT ON COLUMN &VIEW..p2_key
11.215 + IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P2 Key^';
11.216 +COMMENT ON COLUMN &VIEW..p2_value
11.217 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P2 Value^';
11.218 +COMMENT ON COLUMN &VIEW..p3_key
11.219 + IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P3 Key^';
11.220 +COMMENT ON COLUMN &VIEW..p3_value
11.221 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P3 Value^';
11.222 +COMMENT ON COLUMN &VIEW..p4_key
11.223 + IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P4 Key^';
11.224 +COMMENT ON COLUMN &VIEW..p4_value
11.225 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P4 Value^';
11.226 +COMMENT ON COLUMN &VIEW..p5_key
11.227 + IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P5 Key^';
11.228 +COMMENT ON COLUMN &VIEW..p5_value
11.229 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P5 Value^';
11.230 +COMMENT ON COLUMN &VIEW..p6_key
11.231 + IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P6 Key^';
11.232 +COMMENT ON COLUMN &VIEW..p6_value
11.233 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P6 Value^';
11.234 +COMMENT ON COLUMN &VIEW..p7_key
11.235 + IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P7 Key^';
11.236 +COMMENT ON COLUMN &VIEW..p7_value
11.237 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P7 Value^';
11.238 +COMMENT ON COLUMN &VIEW..p8_key
11.239 + IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P8 Key^';
11.240 +COMMENT ON COLUMN &VIEW..p8_value
11.241 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P8 Value^';
11.242 +COMMENT ON COLUMN &VIEW..p9_key
11.243 + IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P9 Key^';
11.244 +COMMENT ON COLUMN &VIEW..p9_value
11.245 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P9 Value^';
11.246 +COMMENT ON COLUMN &VIEW..p10_key
11.247 + IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P10 Key^';
11.248 +COMMENT ON COLUMN &VIEW..p10_value
11.249 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P10 Value^';
11.250 +COMMENT ON COLUMN &VIEW..p11_key
11.251 + IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P11 Key^';
11.252 +COMMENT ON COLUMN &VIEW..p11_value
11.253 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P11 Value^';
11.254 +COMMENT ON COLUMN &VIEW..p12_key
11.255 + IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P12 Key^';
11.256 +COMMENT ON COLUMN &VIEW..p12_value
11.257 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P12 Value^';
11.258 +COMMENT ON COLUMN &VIEW..action
11.259 + IS 'FLAGS=AMIUL^DATATYPE=STRING^PROMPT=Action^';
11.260 +COMMENT ON COLUMN &VIEW..mea_state_change_date
11.261 + IS 'FLAGS=A-IU-^DATATYPE=DATE/DATE^PROMPT=Mea State Change Date^';
11.262 +COMMENT ON COLUMN &VIEW..budget_version
11.263 + IS 'FLAGS=A-IUL^DATATYPE=STRING(10)^PROMPT=Budget Version^';
11.264 +
11.265 +
11.266 +PROMPT Creating &VIEW2 view
11.267 +
11.268 +CREATE OR REPLACE FORCE VIEW &VIEW2 AS
11.269 +SELECT a.environment environment,
11.270 + a.scorecard scorecard,
11.271 + a.year year,
11.272 + a.version version,
11.273 + a.scorecard_object scorecard_object,
11.274 + a.object_type object_type,
11.275 + DECODE(c.decimal_places,NULL,a.year_value/TO_NUMBER(c.measure_format),ROUND(a.year_value/TO_NUMBER(c.measure_format), c.decimal_places)) year_value,
11.276 + a.p1_key p1_key,
11.277 + DECODE(c.decimal_places,NULL,a.p1_value/TO_NUMBER(c.measure_format),ROUND(a.p1_value/TO_NUMBER(c.measure_format), c.decimal_places)) p1_value,
11.278 + a.p2_key p2_key,
11.279 + DECODE(c.decimal_places,NULL,a.p2_value/TO_NUMBER(c.measure_format),ROUND(a.p2_value/TO_NUMBER(c.measure_format), c.decimal_places)) p2_value,
11.280 + a.p3_key p3_key,
11.281 + DECODE(c.decimal_places,NULL,a.p3_value/TO_NUMBER(c.measure_format),ROUND(a.p3_value/TO_NUMBER(c.measure_format), c.decimal_places)) p3_value,
11.282 + a.p4_key p4_key,
11.283 + DECODE(c.decimal_places,NULL,a.p4_value/TO_NUMBER(c.measure_format),ROUND(a.p4_value/TO_NUMBER(c.measure_format), c.decimal_places)) p4_value,
11.284 + a.p5_key p5_key,
11.285 + DECODE(c.decimal_places,NULL,a.p5_value/TO_NUMBER(c.measure_format),ROUND(a.p5_value/TO_NUMBER(c.measure_format), c.decimal_places)) p5_value,
11.286 + a.p6_key p6_key,
11.287 + DECODE(c.decimal_places,NULL,a.p6_value/TO_NUMBER(c.measure_format),ROUND(a.p6_value/TO_NUMBER(c.measure_format), c.decimal_places)) p6_value,
11.288 + a.p7_key p7_key,
11.289 + DECODE(c.decimal_places,NULL,a.p7_value/TO_NUMBER(c.measure_format),ROUND(a.p7_value/TO_NUMBER(c.measure_format), c.decimal_places)) p7_value,
11.290 + a.p8_key p8_key,
11.291 + DECODE(c.decimal_places,NULL,a.p8_value/TO_NUMBER(c.measure_format),ROUND(a.p8_value/TO_NUMBER(c.measure_format), c.decimal_places)) p8_value,
11.292 + a.p9_key p9_key,
11.293 + DECODE(c.decimal_places,NULL,a.p9_value/TO_NUMBER(c.measure_format),ROUND(a.p9_value/TO_NUMBER(c.measure_format), c.decimal_places)) p9_value,
11.294 + a.p10_key p10_key,
11.295 + DECODE(c.decimal_places,NULL,a.p10_value/TO_NUMBER(c.measure_format),ROUND(a.p10_value/TO_NUMBER(c.measure_format), c.decimal_places)) p10_value,
11.296 + a.p11_key p11_key,
11.297 + DECODE(c.decimal_places,NULL,a.p11_value/TO_NUMBER(c.measure_format),ROUND(a.p11_value/TO_NUMBER(c.measure_format), c.decimal_places)) p11_value,
11.298 + a.p12_key p12_key,
11.299 + DECODE(c.decimal_places,NULL,a.p12_value/TO_NUMBER(c.measure_format),ROUND(a.p12_value/TO_NUMBER(c.measure_format), c.decimal_places)) p12_value,
11.300 + a.action action,
11.301 + a.rowid objid,
11.302 + ltrim(lpad(to_char(a.rowversion,'YYYYMMDDHH24MISS'),2000)) objversion
11.303 +FROM scorecard_input_value_tab a, measure_version_tab b, scorecard_measure_tab c
11.304 +WHERE a.environment = b.environment
11.305 +AND a.version = b.version
11.306 +AND b.rowstate = 'Open'
11.307 +AND a.object_type = 'MEASURE'
11.308 +AND a.scorecard_object = c.measure
11.309 +WITH read only;
11.310 +
11.311 +COMMENT ON TABLE &VIEW2
11.312 + IS 'LU=&LU^PROMPT=Scorecard Input Value^MODULE=&MODULE^';
11.313 +
11.314 +COMMENT ON COLUMN &VIEW2..environment
11.315 + IS 'FLAGS=KMIU-^DATATYPE=STRING(10)^PROMPT=Environment^REF=ScorecardEnvironment^';
11.316 +COMMENT ON COLUMN &VIEW2..scorecard
11.317 + IS 'FLAGS=KMIU-^DATATYPE=STRING(10)^PROMPT=Scorecard^REF=Scorecard(environment)^';
11.318 +COMMENT ON COLUMN &VIEW2..year
11.319 + IS 'FLAGS=KMIU-^DATATYPE=STRING(20)^PROMPT=Year^REF=EnvironmentYear(environment)^';
11.320 +COMMENT ON COLUMN &VIEW2..version
11.321 + IS 'FLAGS=KMI-L^DATATYPE=STRING(20)^PROMPT=Version^';
11.322 +COMMENT ON COLUMN &VIEW2..scorecard_object
11.323 + IS 'FLAGS=KMIU-^DATATYPE=STRING(10)^PROMPT=Scorecard Object^';
11.324 +COMMENT ON COLUMN &VIEW2..object_type
11.325 + IS 'FLAGS=AMIU-^DATATYPE=STRING(10)^PROMPT=Object Type^';
11.326 +COMMENT ON COLUMN &VIEW2..year_value
11.327 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=Year Value^';
11.328 +COMMENT ON COLUMN &VIEW2..p1_key
11.329 + IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P1 Key^';
11.330 +COMMENT ON COLUMN &VIEW2..p1_value
11.331 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P1 Value^';
11.332 +COMMENT ON COLUMN &VIEW2..p2_key
11.333 + IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P2 Key^';
11.334 +COMMENT ON COLUMN &VIEW2..p2_value
11.335 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P2 Value^';
11.336 +COMMENT ON COLUMN &VIEW2..p3_key
11.337 + IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P3 Key^';
11.338 +COMMENT ON COLUMN &VIEW2..p3_value
11.339 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P3 Value^';
11.340 +COMMENT ON COLUMN &VIEW2..p4_key
11.341 + IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P4 Key^';
11.342 +COMMENT ON COLUMN &VIEW2..p4_value
11.343 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P4 Value^';
11.344 +COMMENT ON COLUMN &VIEW2..p5_key
11.345 + IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P5 Key^';
11.346 +COMMENT ON COLUMN &VIEW2..p5_value
11.347 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P5 Value^';
11.348 +COMMENT ON COLUMN &VIEW2..p6_key
11.349 + IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P6 Key^';
11.350 +COMMENT ON COLUMN &VIEW2..p6_value
11.351 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P6 Value^';
11.352 +COMMENT ON COLUMN &VIEW2..p7_key
11.353 + IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P7 Key^';
11.354 +COMMENT ON COLUMN &VIEW2..p7_value
11.355 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P7 Value^';
11.356 +COMMENT ON COLUMN &VIEW2..p8_key
11.357 + IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P8 Key^';
11.358 +COMMENT ON COLUMN &VIEW2..p8_value
11.359 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P8 Value^';
11.360 +COMMENT ON COLUMN &VIEW2..p9_key
11.361 + IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P9 Key^';
11.362 +COMMENT ON COLUMN &VIEW2..p9_value
11.363 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P9 Value^';
11.364 +COMMENT ON COLUMN &VIEW2..p10_key
11.365 + IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P10 Key^';
11.366 +COMMENT ON COLUMN &VIEW2..p10_value
11.367 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P10 Value^';
11.368 +COMMENT ON COLUMN &VIEW2..p11_key
11.369 + IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P11 Key^';
11.370 +COMMENT ON COLUMN &VIEW2..p11_value
11.371 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P11 Value^';
11.372 +COMMENT ON COLUMN &VIEW2..p12_key
11.373 + IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P12 Key^';
11.374 +COMMENT ON COLUMN &VIEW2..p12_value
11.375 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P12 Value^';
11.376 +COMMENT ON COLUMN &VIEW2..action
11.377 + IS 'FLAGS=AMIUL^DATATYPE=STRING^PROMPT=Action^';
11.378 +
11.379 +
11.380 +
11.381 +PROMPT Creating &VIEW3 view
11.382 +
11.383 +CREATE OR REPLACE FORCE VIEW &VIEW3 AS
11.384 +SELECT siv.environment environment,
11.385 + siv.scorecard scorecard,
11.386 + year year,
11.387 + version version,
11.388 + scorecard_object scorecard_object,
11.389 + object_type object_type,
11.390 + DECODE(sm.decimal_places,NULL ,siv.year_value/TO_NUMBER(sm.measure_format),ROUND(siv.year_value/TO_NUMBER(sm.measure_format), sm.decimal_places)) year_value,
11.391 + p1_key p1_key,
11.392 + DECODE(sm.decimal_places,NULL ,siv.p1_value/TO_NUMBER(sm.measure_format) ,ROUND(siv.p1_value/TO_NUMBER(sm.measure_format) , sm.decimal_places)) p1_value,
11.393 + p2_key p2_key,
11.394 + DECODE(sm.decimal_places,NULL ,siv.p2_value/TO_NUMBER(sm.measure_format) ,ROUND(siv.p2_value/TO_NUMBER(sm.measure_format) , sm.decimal_places)) p2_value,
11.395 + p3_key p3_key,
11.396 + DECODE(sm.decimal_places,NULL ,siv.p3_value/TO_NUMBER(sm.measure_format) ,ROUND(siv.p3_value/TO_NUMBER(sm.measure_format) , sm.decimal_places)) p3_value,
11.397 + p4_key p4_key,
11.398 + DECODE(sm.decimal_places,NULL ,siv.p4_value/TO_NUMBER(sm.measure_format) ,ROUND(siv.p4_value/TO_NUMBER(sm.measure_format) , sm.decimal_places)) p4_value,
11.399 + p5_key p5_key,
11.400 + DECODE(sm.decimal_places,NULL ,siv.p5_value/TO_NUMBER(sm.measure_format) ,ROUND(siv.p5_value/TO_NUMBER(sm.measure_format) , sm.decimal_places)) p5_value,
11.401 + p6_key p6_key,
11.402 + DECODE(sm.decimal_places,NULL ,siv.p6_value/TO_NUMBER(sm.measure_format) ,ROUND(siv.p6_value/TO_NUMBER(sm.measure_format) , sm.decimal_places)) p6_value,
11.403 + p7_key p7_key,
11.404 + DECODE(sm.decimal_places,NULL ,siv.p7_value/TO_NUMBER(sm.measure_format) ,ROUND(siv.p7_value/TO_NUMBER(sm.measure_format) , sm.decimal_places)) p7_value,
11.405 + p8_key p8_key,
11.406 + DECODE(sm.decimal_places,NULL ,siv.p8_value/TO_NUMBER(sm.measure_format) ,ROUND(siv.p8_value/TO_NUMBER(sm.measure_format) , sm.decimal_places)) p8_value,
11.407 + p9_key p9_key,
11.408 + DECODE(sm.decimal_places,NULL ,siv.p9_value/TO_NUMBER(sm.measure_format) ,ROUND(siv.p9_value/TO_NUMBER(sm.measure_format) , sm.decimal_places)) p9_value,
11.409 + p10_key p10_key,
11.410 + DECODE(sm.decimal_places,NULL ,siv.p10_value/TO_NUMBER(sm.measure_format) ,ROUND(siv.p10_value/TO_NUMBER(sm.measure_format) , sm.decimal_places)) p10_value,
11.411 + p11_key p11_key,
11.412 + DECODE(sm.decimal_places,NULL ,siv.p11_value/TO_NUMBER(sm.measure_format) ,ROUND(siv.p11_value/TO_NUMBER(sm.measure_format) , sm.decimal_places)) p11_value,
11.413 + p12_key p12_key,
11.414 + DECODE(sm.decimal_places,NULL ,siv.p12_value/TO_NUMBER(sm.measure_format) ,ROUND(siv.p12_value/TO_NUMBER(sm.measure_format) , sm.decimal_places)) p12_value,
11.415 + siv.action action,
11.416 + ss.plan_seq_no plan_seq_no,
11.417 + Budget_Process_Type_API.Encode(Measure_Version_API.Get_Budget_Process_Type(version,
11.418 + siv.environment))
11.419 + budget_process_type,
11.420 + DECODE(sm.measure_format,'1',sm.description,sm.description ||' ('||sm.measure_format||' )' ) scorecard_object_desc,
11.421 + siv.rowid objid,
11.422 + ltrim(lpad(to_char(siv.rowversion,'YYYYMMDDHH24MISS'),2000)) objversion
11.423 +FROM scorecard_input_value_tab siv, scorecard_measure_tab sm, scorecard_structure_tab ss
11.424 +WHERE siv.scorecard_object = sm.measure
11.425 +AND siv.environment = ss.environment
11.426 +AND siv.scorecard = ss.scorecard
11.427 +AND siv.object_type = ss.child_level_type
11.428 +AND siv.scorecard_object = ss.level_id
11.429 +WITH read only;
11.430 +
11.431 +COMMENT ON TABLE &VIEW3
11.432 + IS 'LU=&LU^PROMPT=Scorecard Input Value^MODULE=&MODULE^';
11.433 +
11.434 +COMMENT ON COLUMN &VIEW3..environment
11.435 + IS 'FLAGS=KMIU-^DATATYPE=STRING(10)^PROMPT=Environment^REF=ScorecardEnvironment^';
11.436 +COMMENT ON COLUMN &VIEW3..scorecard
11.437 + IS 'FLAGS=KMIU-^DATATYPE=STRING(10)^PROMPT=Scorecard^REF=Scorecard(environment)^';
11.438 +COMMENT ON COLUMN &VIEW3..year
11.439 + IS 'FLAGS=KMIU-^DATATYPE=STRING(20)^PROMPT=Year^REF=EnvironmentYear(environment)^';
11.440 +COMMENT ON COLUMN &VIEW3..version
11.441 + IS 'FLAGS=KMI-L^DATATYPE=STRING(20)^PROMPT=Version^';
11.442 +COMMENT ON COLUMN &VIEW3..scorecard_object
11.443 + IS 'FLAGS=KMIU-^DATATYPE=STRING(10)^PROMPT=Scorecard Object^';
11.444 +COMMENT ON COLUMN &VIEW3..object_type
11.445 + IS 'FLAGS=AMIU-^DATATYPE=STRING(10)^PROMPT=Object Type^';
11.446 +COMMENT ON COLUMN &VIEW3..year_value
11.447 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=Year Value^';
11.448 +COMMENT ON COLUMN &VIEW3..p1_key
11.449 + IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P1 Key^';
11.450 +COMMENT ON COLUMN &VIEW3..p1_value
11.451 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P1 Value^';
11.452 +COMMENT ON COLUMN &VIEW3..p2_key
11.453 + IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P2 Key^';
11.454 +COMMENT ON COLUMN &VIEW3..p2_value
11.455 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P2 Value^';
11.456 +COMMENT ON COLUMN &VIEW3..p3_key
11.457 + IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P3 Key^';
11.458 +COMMENT ON COLUMN &VIEW3..p3_value
11.459 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P3 Value^';
11.460 +COMMENT ON COLUMN &VIEW3..p4_key
11.461 + IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P4 Key^';
11.462 +COMMENT ON COLUMN &VIEW3..p4_value
11.463 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P4 Value^';
11.464 +COMMENT ON COLUMN &VIEW3..p5_key
11.465 + IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P5 Key^';
11.466 +COMMENT ON COLUMN &VIEW3..p5_value
11.467 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P5 Value^';
11.468 +COMMENT ON COLUMN &VIEW3..p6_key
11.469 + IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P6 Key^';
11.470 +COMMENT ON COLUMN &VIEW3..p6_value
11.471 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P6 Value^';
11.472 +COMMENT ON COLUMN &VIEW3..p7_key
11.473 + IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P7 Key^';
11.474 +COMMENT ON COLUMN &VIEW3..p7_value
11.475 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P7 Value^';
11.476 +COMMENT ON COLUMN &VIEW3..p8_key
11.477 + IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P8 Key^';
11.478 +COMMENT ON COLUMN &VIEW3..p8_value
11.479 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P8 Value^';
11.480 +COMMENT ON COLUMN &VIEW3..p9_key
11.481 + IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P9 Key^';
11.482 +COMMENT ON COLUMN &VIEW3..p9_value
11.483 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P9 Value^';
11.484 +COMMENT ON COLUMN &VIEW3..p10_key
11.485 + IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P10 Key^';
11.486 +COMMENT ON COLUMN &VIEW3..p10_value
11.487 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P10 Value^';
11.488 +COMMENT ON COLUMN &VIEW3..p11_key
11.489 + IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P11 Key^';
11.490 +COMMENT ON COLUMN &VIEW3..p11_value
11.491 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P11 Value^';
11.492 +COMMENT ON COLUMN &VIEW3..p12_key
11.493 + IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P12 Key^';
11.494 +COMMENT ON COLUMN &VIEW3..p12_value
11.495 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P12 Value^';
11.496 +COMMENT ON COLUMN &VIEW3..action
11.497 + IS 'FLAGS=AMIUL^DATATYPE=STRING^PROMPT=Action^';
11.498 +COMMENT ON COLUMN &VIEW3..plan_seq_no
11.499 + IS 'FLAGS=A---L^DATATYPE=STRING^PROMPT=Plan seq no^';
11.500 +COMMENT ON COLUMN &VIEW3..budget_process_type
11.501 + IS 'FLAGS=A----^DATATYPE=STRING(10)^PROMPT=Budget Process Type^';
11.502 +COMMENT ON COLUMN &VIEW3..scorecard_object_desc
11.503 + IS 'FLAGS=A----^DATATYPE=STRING(40)^PROMPT=Level Description^';
11.504 +
11.505 +--THIS VIEW IS USED AS A BASE FOR THE VIEW5 WHICH IS USED TO DISPLAY BUDGET REQUIREMENTS VS. TARGETS.
11.506 +PROMPT Creating &VIEW4 view
11.507 +
11.508 +CREATE OR REPLACE FORCE VIEW &VIEW4 AS
11.509 +SELECT environment environment,
11.510 + scorecard scorecard,
11.511 + year year,
11.512 + version version,
11.513 + scorecard_object measure,
11.514 + p1_key period,
11.515 + p1_value period_value
11.516 +FROM scorecard_input_value_tab
11.517 +WHERE p1_key IS NOT NULL
11.518 +UNION
11.519 +SELECT environment environment,
11.520 + scorecard scorecard,
11.521 + year year,
11.522 + version version,
11.523 + scorecard_object scorecard_object,
11.524 + p2_key period,
11.525 + p2_value period_value
11.526 +FROM scorecard_input_value_tab
11.527 +WHERE p2_key IS NOT NULL
11.528 +UNION
11.529 +SELECT environment environment,
11.530 + scorecard scorecard,
11.531 + year year,
11.532 + version version,
11.533 + scorecard_object measure,
11.534 + p3_key period,
11.535 + p3_value period_value
11.536 +FROM scorecard_input_value_tab
11.537 +WHERE p3_key IS NOT NULL
11.538 +UNION
11.539 +SELECT environment environment,
11.540 + scorecard scorecard,
11.541 + year year,
11.542 + version version,
11.543 + scorecard_object measure,
11.544 + p4_key period,
11.545 + p4_value period_value
11.546 +FROM scorecard_input_value_tab
11.547 +WHERE p4_key IS NOT NULL
11.548 +UNION
11.549 +SELECT environment environment,
11.550 + scorecard scorecard,
11.551 + year year,
11.552 + version version,
11.553 + scorecard_object measure,
11.554 + p5_key period,
11.555 + p5_value period_value
11.556 +FROM scorecard_input_value_tab
11.557 +WHERE p5_key IS NOT NULL
11.558 +UNION
11.559 +SELECT environment environment,
11.560 + scorecard scorecard,
11.561 + year year,
11.562 + version version,
11.563 + scorecard_object measure,
11.564 + p6_key period,
11.565 + p6_value period_value
11.566 +FROM scorecard_input_value_tab
11.567 +WHERE p6_key IS NOT NULL
11.568 +UNION
11.569 +SELECT environment environment,
11.570 + scorecard scorecard,
11.571 + year year,
11.572 + version version,
11.573 + scorecard_object measure,
11.574 + p7_key period,
11.575 + p7_value period_value
11.576 +FROM scorecard_input_value_tab
11.577 +WHERE p7_key IS NOT NULL
11.578 +UNION
11.579 +SELECT environment environment,
11.580 + scorecard scorecard,
11.581 + year year,
11.582 + version version,
11.583 + scorecard_object measure,
11.584 + p8_key period,
11.585 + p8_value period_value
11.586 +FROM scorecard_input_value_tab
11.587 +WHERE p8_key IS NOT NULL
11.588 +UNION
11.589 +SELECT environment environment,
11.590 + scorecard scorecard,
11.591 + year year,
11.592 + version version,
11.593 + scorecard_object measure,
11.594 + p9_key period,
11.595 + p9_value period_value
11.596 +FROM scorecard_input_value_tab
11.597 +WHERE p9_key IS NOT NULL
11.598 +UNION
11.599 +SELECT environment environment,
11.600 + scorecard scorecard,
11.601 + year year,
11.602 + version version,
11.603 + scorecard_object measure,
11.604 + p10_key period,
11.605 + p10_value period_value
11.606 +FROM scorecard_input_value_tab
11.607 +WHERE p10_key IS NOT NULL
11.608 +UNION
11.609 +SELECT environment environment,
11.610 + scorecard scorecard,
11.611 + year year,
11.612 + version version,
11.613 + scorecard_object measure,
11.614 + p11_key period,
11.615 + p11_value period_value
11.616 +FROM scorecard_input_value_tab
11.617 +WHERE p11_key IS NOT NULL
11.618 +UNION
11.619 +SELECT environment environment,
11.620 + scorecard scorecard,
11.621 + year year,
11.622 + version version,
11.623 + scorecard_object measure,
11.624 + p12_key period,
11.625 + p12_value period_value
11.626 +FROM scorecard_input_value_tab
11.627 +WHERE p12_key IS NOT NULL
11.628 +WITH read only;
11.629 +
11.630 +COMMENT ON TABLE &VIEW4
11.631 + IS 'LU=&LU^PROMPT=View Budget Requirements/Targets[BASE]^MODULE=&MODULE^';
11.632 +
11.633 +
11.634 +--THIS VIEW IS USED TO DISPLAY BUDGET REQUIREMENTS VS. TARGETS.[Client is BudgetRequirementsTargets.java]
11.635 +PROMPT Creating &VIEW5 view
11.636 +-- Bug 63415, begin, Added another condition to where clause of the view
11.637 +CREATE OR REPLACE FORCE VIEW &VIEW5 AS
11.638 +SELECT t1.environment environment,
11.639 + t1.scorecard scorecard,
11.640 + t1.year year,
11.641 + t1.version version,
11.642 + t1.measure measure,
11.643 + t1.period period,
11.644 + t1.period_value/TO_NUMBER(t5.measure_format) planned_value,
11.645 + t2.period_value/TO_NUMBER(t5.measure_format) target_value
11.646 +FROM &VIEW4 t1,
11.647 + &VIEW4 t2,
11.648 + measure_version_tab t3,
11.649 + measure_version_tab t4,
11.650 + scorecard_measure_tab t5
11.651 +WHERE t1.environment = t2.environment
11.652 +AND t1.scorecard = t2.scorecard
11.653 +AND t1.year = t2.YEAR
11.654 +AND t5.measure = t2.measure
11.655 +AND t1.measure = t2.measure
11.656 +AND t1.period = t2.period
11.657 +AND t1.environment = t3.environment
11.658 +AND t1.version = t3.version
11.659 +AND t2.environment = t4.environment
11.660 +AND t2.version = t4.version
11.661 +AND t3.budget_process_type = 'BUDPLAN'
11.662 +AND t4.budget_process_type = 'TARGET'
11.663 +AND ((t1.measure IN (SELECT measure
11.664 + FROM measure_role_access_tab
11.665 + WHERE role IN (SELECT oracle_role
11.666 + FROM fnd_user_role_runtime
11.667 + WHERE identity = (SELECT fnd_user
11.668 + FROM fnd_session))))
11.669 + OR t1.measure IN (SELECT measure
11.670 + FROM measure_user_access_tab
11.671 + WHERE identity = (SELECT fnd_user
11.672 + FROM fnd_session))
11.673 + OR EXISTS (SELECT 1
11.674 + FROM BP_ADMINISTRATOR_TAB
11.675 + WHERE identity = (SELECT fnd_user
11.676 + FROM fnd_session)))
11.677 +AND (t1.scorecard IN (SELECT scorecard
11.678 + FROM scorecard_user_access_tab
11.679 + WHERE identity = (SELECT fnd_user
11.680 + FROM fnd_session)
11.681 + AND environment = t1.environment
11.682 + AND scorecard = t1.scorecard)
11.683 + OR t1.scorecard IN (SELECT scorecard
11.684 + FROM scorecard_role_access_tab
11.685 + WHERE environment = t1.environment
11.686 + AND scorecard = t1.scorecard
11.687 + AND role IN (SELECT oracle_role
11.688 + FROM fnd_user_role_runtime
11.689 + WHERE identity = (SELECT fnd_user
11.690 + FROM fnd_session)))
11.691 + OR EXISTS (SELECT 1
11.692 + FROM BP_ADMINISTRATOR_TAB
11.693 + WHERE identity = (SELECT fnd_user
11.694 + FROM fnd_session)))
11.695 +WITH read only;
11.696 +
11.697 +COMMENT ON TABLE &VIEW5
11.698 + IS 'LU=&LU^PROMPT=View Budget Requirements/Targets^MODULE=&MODULE^';
11.699 +
11.700 +COMMENT ON COLUMN &VIEW5..environment
11.701 + IS 'FLAGS=KMIU-^DATATYPE=STRING(10)^PROMPT=Environment^';
11.702 +COMMENT ON COLUMN &VIEW5..scorecard
11.703 + IS 'FLAGS=KMIU-^DATATYPE=STRING(10)^PROMPT=Scorecard^';
11.704 +COMMENT ON COLUMN &VIEW5..year
11.705 + IS 'FLAGS=KMIU-^DATATYPE=STRING(20)^PROMPT=Year^';
11.706 +COMMENT ON COLUMN &VIEW5..version
11.707 + IS 'FLAGS=KMI-L^DATATYPE=STRING(20)^PROMPT=Version^';
11.708 +COMMENT ON COLUMN &VIEW5..measure
11.709 + IS 'FLAGS=KMIU-^DATATYPE=STRING(10)^PROMPT=Measure^';
11.710 +COMMENT ON COLUMN &VIEW5..period
11.711 + IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=Period^';
11.712 +COMMENT ON COLUMN &VIEW5..planned_value
11.713 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=Planned Value^';
11.714 +COMMENT ON COLUMN &VIEW5..target_value
11.715 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=Target Value^';
11.716 +
11.717 +-- Bug 63415, end
11.718 +
11.719 +
11.720 +
11.721 +-- Bug 63415, end
11.722 +
11.723 +-----------------------------------------------------------------------------
11.724 +-------------------- PACKAGES FOR METHODS -----------------------------------
11.725 +-----------------------------------------------------------------------------
11.726 +
11.727 +PROMPT Creating &PKG implementation
11.728 +
11.729 +CREATE OR REPLACE PACKAGE BODY &PKG IS
11.730 +
11.731 +-----------------------------------------------------------------------------
11.732 +-------------------- FINITE STATE DECLARATIONS ------------------------------
11.733 +-----------------------------------------------------------------------------
11.734 +db_state_list_ CONSTANT VARCHAR2(13) := 'Open^Planned^';
11.735 +client_state_list_ CONSTANT VARCHAR2(13) := 'Open^Planned^';
11.736 +active_state_list_ VARCHAR2(52) := Language_SYS.Translate_State_(lu_name_, client_state_list_);
11.737 +state_separator_ CONSTANT VARCHAR2(1) := Client_SYS.field_separator_;
11.738 +
11.739 +bp_installed_ CONSTANT BOOLEAN := Dictionary_SYS.Component_Is_Installed('BUDPRO');
11.740 +-----------------------------------------------------------------------------
11.741 +-------------------- LU SPECIFIC IMPLEMENTATION METHOD DECLARATIONS ---------
11.742 +-----------------------------------------------------------------------------
11.743 +
11.744 +
11.745 +PROCEDURE Distribute_Input_Values___ (
11.746 + environment_ IN VARCHAR2,
11.747 + scorecard_ IN VARCHAR2,
11.748 + year_ IN VARCHAR2,
11.749 + version_ IN VARCHAR2,
11.750 + object_type_ IN VARCHAR2,
11.751 + period_count_ IN NUMBER,
11.752 + scorecard_object_ IN VARCHAR2 );
11.753 +--PROCHEAD.Start_Publish_Environments___
11.754 +
11.755 +
11.756 +PROCEDURE Object_Planned_Date___ (
11.757 + rec_ IN &TABLE%ROWTYPE,
11.758 + attr_ IN OUT VARCHAR2 );
11.759 +
11.760 +FUNCTION Find_Column___(
11.761 + environment_ IN VARCHAR2,
11.762 + scorecard_ IN VARCHAR2,
11.763 + year_ IN VARCHAR2,
11.764 + version_ IN VARCHAR2,
11.765 + scorecard_object_ IN VARCHAR2,
11.766 + key_ IN VARCHAR2) RETURN VARCHAR2;
11.767 +-----------------------------------------------------------------------------
11.768 +-------------------- IMPLEMENTATION BASE METHODS ----------------------------
11.769 +-----------------------------------------------------------------------------
11.770 +-- Lock_By_Id___
11.771 +-- Client-support to lock a specific instance of the logical unit.
11.772 +--
11.773 +-- Lock_By_Keys___
11.774 +-- Server support to lock a specific instance of the logical unit.
11.775 +--
11.776 +-- Get_Object_By_Id___
11.777 +-- Get LU-record from the database with a specified object identity.
11.778 +--
11.779 +-- Get_Object_By_Keys___
11.780 +-- Get LU-record from the database with specified key columns.
11.781 +--
11.782 +-- Check_Exist___
11.783 +-- Check if a specific LU-instance already exist in the database.
11.784 +--
11.785 +-- Get_Id_Version_By_Keys___
11.786 +-- Get the current OBJID and OBJVERSION for a specific LU-instance.
11.787 +-----------------------------------------------------------------------------
11.788 +
11.789 +FUNCTION Lock_By_Id___ (
11.790 + objid_ IN VARCHAR2,
11.791 + objversion_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
11.792 +IS
11.793 + row_changed EXCEPTION;
11.794 + row_deleted EXCEPTION;
11.795 + row_locked EXCEPTION;
11.796 + PRAGMA exception_init(row_locked, -0054);
11.797 + rec_ &TABLE%ROWTYPE;
11.798 + dummy_ NUMBER;
11.799 + CURSOR lock_control IS
11.800 + SELECT *
11.801 + FROM &TABLE
11.802 + WHERE &OBJID = objid_
11.803 + AND &OBJVERSION = objversion_
11.804 + FOR UPDATE NOWAIT;
11.805 + CURSOR exist_control IS
11.806 + SELECT 1
11.807 + FROM &TABLE
11.808 + WHERE &OBJID = objid_;
11.809 +BEGIN
11.810 + OPEN lock_control;
11.811 + FETCH lock_control INTO rec_;
11.812 + IF (lock_control%FOUND) THEN
11.813 + CLOSE lock_control;
11.814 + RETURN rec_;
11.815 + END IF;
11.816 + CLOSE lock_control;
11.817 + OPEN exist_control;
11.818 + FETCH exist_control INTO dummy_;
11.819 + IF (exist_control%FOUND) THEN
11.820 + CLOSE exist_control;
11.821 + RAISE row_changed;
11.822 + ELSE
11.823 + CLOSE exist_control;
11.824 + RAISE row_deleted;
11.825 + END IF;
11.826 +EXCEPTION
11.827 + WHEN row_locked THEN
11.828 + Error_SYS.Record_Locked(lu_name_);
11.829 + WHEN row_changed THEN
11.830 + Error_SYS.Record_Modified(lu_name_);
11.831 + WHEN row_deleted THEN
11.832 + Error_SYS.Record_Removed(lu_name_);
11.833 +END Lock_By_Id___;
11.834 +
11.835 +FUNCTION Lock_By_Keys___ (
11.836 + environment_ IN VARCHAR2,
11.837 + scorecard_ IN VARCHAR2,
11.838 + year_ IN VARCHAR2,
11.839 + version_ IN VARCHAR2,
11.840 + scorecard_object_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
11.841 +IS
11.842 + row_deleted EXCEPTION;
11.843 + rec_ &TABLE%ROWTYPE;
11.844 + CURSOR lock_control IS
11.845 + SELECT *
11.846 + FROM &TABLE
11.847 + WHERE environment = environment_
11.848 + AND scorecard = scorecard_
11.849 + AND year = year_
11.850 + AND version = version_
11.851 + AND scorecard_object = scorecard_object_
11.852 + FOR UPDATE;
11.853 +BEGIN
11.854 + OPEN lock_control;
11.855 + FETCH lock_control INTO rec_;
11.856 + IF (lock_control%FOUND) THEN
11.857 + CLOSE lock_control;
11.858 + RETURN rec_;
11.859 + ELSE
11.860 + CLOSE lock_control;
11.861 + RAISE row_deleted;
11.862 + END IF;
11.863 +EXCEPTION
11.864 + WHEN row_deleted THEN
11.865 + Error_SYS.Record_Removed(lu_name_);
11.866 +END Lock_By_Keys___;
11.867 +
11.868 +FUNCTION Get_Object_By_Id___ (
11.869 + objid_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
11.870 +IS
11.871 + lu_rec_ &TABLE%ROWTYPE;
11.872 + CURSOR getrec IS
11.873 + SELECT *
11.874 + FROM &TABLE
11.875 + WHERE &OBJID = objid_;
11.876 +BEGIN
11.877 + OPEN getrec;
11.878 + FETCH getrec INTO lu_rec_;
11.879 + IF (getrec%NOTFOUND) THEN
11.880 + CLOSE getrec;
11.881 + Error_SYS.Record_Removed(lu_name_);
11.882 + END IF;
11.883 + CLOSE getrec;
11.884 + RETURN(lu_rec_);
11.885 +END Get_Object_By_Id___;
11.886 +
11.887 +
11.888 +FUNCTION Get_Object_By_Keys___ (
11.889 + environment_ IN VARCHAR2,
11.890 + scorecard_ IN VARCHAR2,
11.891 + year_ IN VARCHAR2,
11.892 + version_ IN VARCHAR2,
11.893 + scorecard_object_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
11.894 +IS
11.895 + lu_rec_ &TABLE%ROWTYPE;
11.896 + CURSOR getrec IS
11.897 + SELECT *
11.898 + FROM &TABLE
11.899 + WHERE environment = environment_
11.900 + AND scorecard = scorecard_
11.901 + AND year = year_
11.902 + AND version = version_
11.903 + AND scorecard_object = scorecard_object_;
11.904 +BEGIN
11.905 + OPEN getrec;
11.906 + FETCH getrec INTO lu_rec_;
11.907 + CLOSE getrec;
11.908 + RETURN(lu_rec_);
11.909 +END Get_Object_By_Keys___;
11.910 +
11.911 +FUNCTION Check_Exist___ (
11.912 + environment_ IN VARCHAR2,
11.913 + scorecard_ IN VARCHAR2,
11.914 + year_ IN VARCHAR2,
11.915 + version_ IN VARCHAR2,
11.916 + scorecard_object_ IN VARCHAR2 ) RETURN BOOLEAN
11.917 +IS
11.918 + dummy_ NUMBER;
11.919 + CURSOR exist_control IS
11.920 + SELECT 1
11.921 + FROM &TABLE
11.922 + WHERE environment = environment_
11.923 + AND scorecard = scorecard_
11.924 + AND year = year_
11.925 + AND version = version_
11.926 + AND scorecard_object = scorecard_object_;
11.927 +BEGIN
11.928 + OPEN exist_control;
11.929 + FETCH exist_control INTO dummy_;
11.930 + IF (exist_control%FOUND) THEN
11.931 + CLOSE exist_control;
11.932 + RETURN(TRUE);
11.933 + END IF;
11.934 + CLOSE exist_control;
11.935 + RETURN(FALSE);
11.936 +END Check_Exist___;
11.937 +
11.938 +PROCEDURE Get_Id_Version_By_Keys___ (
11.939 + objid_ IN OUT VARCHAR2,
11.940 + objversion_ IN OUT VARCHAR2,
11.941 + environment_ IN VARCHAR2,
11.942 + scorecard_ IN VARCHAR2,
11.943 + year_ IN VARCHAR2,
11.944 + version_ IN VARCHAR2,
11.945 + scorecard_object_ IN VARCHAR2)
11.946 +IS
11.947 + CURSOR get_version IS
11.948 + SELECT &OBJID, &OBJVERSION
11.949 + FROM &TABLE
11.950 + WHERE environment = environment_
11.951 + AND scorecard = scorecard_
11.952 + AND year = year_
11.953 + AND version = version_
11.954 + AND scorecard_object = scorecard_object_;
11.955 +BEGIN
11.956 + OPEN get_version;
11.957 + FETCH get_version INTO objid_, objversion_;
11.958 + CLOSE get_version;
11.959 +END Get_Id_Version_By_Keys___;
11.960 +
11.961 +-----------------------------------------------------------------------------
11.962 +-------------------- IMPLEMENTATION FINITE STATE MACHINE --------------------
11.963 +-----------------------------------------------------------------------------
11.964 +-- Finite_State_Set___
11.965 +-- Updates the finite state indicator for an existing LU-instance.
11.966 +--
11.967 +-- Finite_State_Machine___
11.968 +-- Processes an event by:
11.969 +-- 1. Fetching the current state
11.970 +-- 2. Evaluating any conditions for given event at current state
11.971 +-- 3. executing any exit code for the old state
11.972 +-- 4. Performing any action associated with given event
11.973 +-- 5. update the database to the new state
11.974 +-- 6. execute any entry code for the new state
11.975 +-- 7. Executing a state change to the new state
11.976 +--
11.977 +-- Finite_State_Add_To_Attr___
11.978 +-- Adds the current state and allowed events to the attribute string.
11.979 +--
11.980 +-- Finite_State_Init___
11.981 +-- Sets the initial finite state indicator for an existing LU-instance
11.982 +-- and processes any automatic events.
11.983 +-----------------------------------------------------------------------------
11.984 +PROCEDURE Finite_State_Set___ (
11.985 + rec_ IN OUT &TABLE%ROWTYPE,
11.986 + state_ IN VARCHAR2 )
11.987 +IS
11.988 +BEGIN
11.989 + rec_.rowversion := sysdate;
11.990 + UPDATE scorecard_input_value_tab
11.991 + SET &OBJSTATE = state_,
11.992 + mea_state_change_date = rec_.rowversion,
11.993 + rowversion = rec_.rowversion
11.994 + WHERE environment = rec_.environment
11.995 + AND scorecard = rec_.scorecard
11.996 + AND year = rec_.year
11.997 + AND version = rec_.version
11.998 + AND scorecard_object = rec_.scorecard_object;
11.999 + rec_.rowstate := state_;
11.1000 +END Finite_State_Set___;
11.1001 +PROCEDURE Finite_State_Machine___ (
11.1002 + rec_ IN OUT &TABLE%ROWTYPE,
11.1003 + event_ IN VARCHAR2,
11.1004 + attr_ IN OUT VARCHAR2 )
11.1005 +IS
11.1006 + state_ VARCHAR2(30);
11.1007 +BEGIN
11.1008 + state_ := rec_.rowstate;
11.1009 + IF (state_ IS NULL) THEN
11.1010 + IF (event_ IS NULL) THEN
11.1011 + rec_.rowstate := 'Open';
11.1012 + ELSE
11.1013 + Error_SYS.State_Event_Not_Handled(lu_name_, event_, Finite_State_Decode__(state_));
11.1014 + END IF;
11.1015 + ELSIF (state_ = 'Open') THEN
11.1016 + IF (event_ = 'Plan') THEN
11.1017 + Finite_State_Set___(rec_, 'Planned');
11.1018 + ELSE
11.1019 + Error_SYS.State_Event_Not_Handled(lu_name_, event_, Finite_State_Decode__(state_));
11.1020 + END IF;
11.1021 + ELSIF (state_ = 'Planned') THEN
11.1022 + IF (event_ = 'Plan') THEN
11.1023 + Object_Planned_Date___(rec_, attr_);
11.1024 + ELSE
11.1025 + Error_SYS.State_Event_Not_Handled(lu_name_, event_, Finite_State_Decode__(state_));
11.1026 + END IF;
11.1027 + ELSE
11.1028 + Error_SYS.State_Not_Exist(lu_name_, Finite_State_Decode__(state_));
11.1029 + END IF;
11.1030 +END Finite_State_Machine___;
11.1031 +PROCEDURE Finite_State_Add_To_Attr___ (
11.1032 + rec_ IN &TABLE%ROWTYPE,
11.1033 + attr_ IN OUT VARCHAR2 )
11.1034 +IS
11.1035 + state_ VARCHAR2(30);
11.1036 +BEGIN
11.1037 + state_ := rec_.rowstate;
11.1038 + Client_SYS.Add_To_Attr('__OBJSTATE', state_, attr_);
11.1039 + Client_SYS.Add_To_Attr('__OBJEVENTS', Finite_State_Events__(state_), attr_);
11.1040 + Client_SYS.Add_To_Attr('STATE', Finite_State_Decode__(state_), attr_);
11.1041 +END Finite_State_Add_To_Attr___;
11.1042 +PROCEDURE Finite_State_Init___ (
11.1043 + rec_ IN OUT &TABLE%ROWTYPE,
11.1044 + attr_ IN OUT VARCHAR2 )
11.1045 +IS
11.1046 + state_ VARCHAR2(30);
11.1047 +BEGIN
11.1048 + Finite_State_Machine___(rec_, NULL, attr_);
11.1049 + Finite_State_Add_To_Attr___(rec_, attr_);
11.1050 +END Finite_State_Init___;
11.1051 +-----------------------------------------------------------------------------
11.1052 +-------------------- PRIVATE FINITE STATE MACHINE ---------------------------
11.1053 +-----------------------------------------------------------------------------
11.1054 +-- Finite_State_Decode__
11.1055 +-- Returns the client equivalent for any database representation of
11.1056 +-- a state name = objstate.
11.1057 +--
11.1058 +-- Finite_State_Encode__
11.1059 +-- Returns the database equivalent for any client representation of
11.1060 +-- a state name = state.
11.1061 +--
11.1062 +-- Enumerate_States__
11.1063 +-- Returns a list of all possible finite states in client terminology.
11.1064 +--
11.1065 +-- Finite_State_Events__
11.1066 +-- Returns a list of allowed events for a given state
11.1067 +-- NOTE! Regardless of conditions if not otherwize encoded
11.1068 +--
11.1069 +-- Enumerate_Events__
11.1070 +-- Returns a list of all possible events.
11.1071 +-----------------------------------------------------------------------------
11.1072 +FUNCTION Finite_State_Decode__ (
11.1073 + db_state_ IN VARCHAR2 ) RETURN VARCHAR2
11.1074 +IS
11.1075 +BEGIN
11.1076 + RETURN(Domain_SYS.Decode_(active_state_list_, db_state_list_, db_state_));
11.1077 +END Finite_State_Decode__;
11.1078 +FUNCTION Finite_State_Encode__ (
11.1079 + client_state_ IN VARCHAR2 ) RETURN VARCHAR2
11.1080 +IS
11.1081 +BEGIN
11.1082 + RETURN(Domain_SYS.Encode_(active_state_list_, db_state_list_, client_state_));
11.1083 +END Finite_State_Encode__;
11.1084 +PROCEDURE Enumerate_States__ (
11.1085 + client_values_ OUT VARCHAR2)
11.1086 +IS
11.1087 +BEGIN
11.1088 + client_values_ := Domain_SYS.Enumerate_(active_state_list_);
11.1089 +END Enumerate_States__;
11.1090 +FUNCTION Finite_State_Events__ (
11.1091 + db_state_ IN VARCHAR2 ) RETURN VARCHAR2
11.1092 +IS
11.1093 +BEGIN
11.1094 + IF (db_state_ IS NULL) THEN
11.1095 + RETURN NULL;
11.1096 + ELSIF (db_state_ = 'Open') THEN
11.1097 + RETURN 'Plan^';
11.1098 + ELSIF (db_state_ = 'Planned') THEN
11.1099 + RETURN 'Plan^';
11.1100 + ELSE
11.1101 + RETURN NULL;
11.1102 + END IF;
11.1103 +END Finite_State_Events__;
11.1104 +PROCEDURE Enumerate_Events__ (
11.1105 + db_events_ OUT VARCHAR2 )
11.1106 +IS
11.1107 +BEGIN
11.1108 + db_events_ := 'Plan^';
11.1109 +END Enumerate_Events__;
11.1110 +-----------------------------------------------------------------------------
11.1111 +-------------------- IMPLEMENTATION BASE METHODS FOR INSERT -----------------
11.1112 +-----------------------------------------------------------------------------
11.1113 +-- Prepare_Insert___
11.1114 +-- Set all default values for a new instance (ON-NEW-RECORD) of this
11.1115 +-- logical unit by calling procedure Add_Attr.
11.1116 +--
11.1117 +-- Unpack_Check_Insert___
11.1118 +-- Unpack the attribute list, check all attributes from the client
11.1119 +-- and generate all default values before creation of the new object.
11.1120 +--
11.1121 +-- Insert___
11.1122 +-- Insert a new LU-instance into the database and return the values
11.1123 +-- for OBJID and OBJVERSION.
11.1124 +-----------------------------------------------------------------------------
11.1125 +
11.1126 +PROCEDURE Prepare_Insert___ (
11.1127 + attr_ IN OUT VARCHAR2 )
11.1128 +IS
11.1129 +BEGIN
11.1130 + Client_SYS.Clear_Attr(attr_);
11.1131 +END Prepare_Insert___;
11.1132 +
11.1133 +
11.1134 +PROCEDURE Unpack_Check_Insert___ (
11.1135 + attr_ IN OUT VARCHAR2,
11.1136 + newrec_ IN OUT &TABLE%ROWTYPE )
11.1137 +IS
11.1138 + ptr_ NUMBER;
11.1139 + name_ VARCHAR2(30);
11.1140 + value_ VARCHAR2(2000);
11.1141 +
11.1142 + measure_format_ NUMBER;
11.1143 +
11.1144 +BEGIN
11.1145 + ptr_ := NULL;
11.1146 + WHILE (Client_SYS.Get_Next_From_Attr(attr_, ptr_, name_, value_)) LOOP
11.1147 + IF (name_ = 'ENVIRONMENT') THEN
11.1148 + newrec_.environment := value_;
11.1149 + Scorecard_Environment_API.Exist(newrec_.environment);
11.1150 + ELSIF (name_ = 'SCORECARD') THEN
11.1151 + newrec_.scorecard := value_;
11.1152 + Scorecard_API.Exist(newrec_.environment, newrec_.scorecard);
11.1153 + ELSIF (name_ = 'YEAR') THEN
11.1154 + newrec_.year := value_;
11.1155 + Environment_Year_API.Exist(newrec_.environment, newrec_.year);
11.1156 + ELSIF (name_ = 'VERSION') THEN
11.1157 + newrec_.version := value_;
11.1158 + ELSIF (name_ = 'SCORECARD_OBJECT') THEN
11.1159 + newrec_.scorecard_object := value_;
11.1160 + ELSIF (name_ = 'OBJECT_TYPE') THEN
11.1161 + newrec_.object_type := value_;
11.1162 + ELSIF (name_ = 'YEAR_VALUE') THEN
11.1163 + newrec_.year_value := Client_SYS.Attr_Value_To_Number(value_);
11.1164 + ELSIF (name_ = 'P1_KEY') THEN
11.1165 + newrec_.p1_key := value_;
11.1166 + ELSIF (name_ = 'P1_VALUE') THEN
11.1167 + newrec_.p1_value := Client_SYS.Attr_Value_To_Number(value_);
11.1168 + ELSIF (name_ = 'P2_KEY') THEN
11.1169 + newrec_.p2_key := value_;
11.1170 + ELSIF (name_ = 'P2_VALUE') THEN
11.1171 + newrec_.p2_value := Client_SYS.Attr_Value_To_Number(value_);
11.1172 + ELSIF (name_ = 'P3_KEY') THEN
11.1173 + newrec_.p3_key := value_;
11.1174 + ELSIF (name_ = 'P3_VALUE') THEN
11.1175 + newrec_.p3_value := Client_SYS.Attr_Value_To_Number(value_);
11.1176 + ELSIF (name_ = 'P4_KEY') THEN
11.1177 + newrec_.p4_key := value_;
11.1178 + ELSIF (name_ = 'P4_VALUE') THEN
11.1179 + newrec_.p4_value := Client_SYS.Attr_Value_To_Number(value_);
11.1180 + ELSIF (name_ = 'P5_KEY') THEN
11.1181 + newrec_.p5_key := value_;
11.1182 + ELSIF (name_ = 'P5_VALUE') THEN
11.1183 + newrec_.p5_value := Client_SYS.Attr_Value_To_Number(value_);
11.1184 + ELSIF (name_ = 'P6_KEY') THEN
11.1185 + newrec_.p6_key := value_;
11.1186 + ELSIF (name_ = 'P6_VALUE') THEN
11.1187 + newrec_.p6_value := Client_SYS.Attr_Value_To_Number(value_);
11.1188 + ELSIF (name_ = 'P7_KEY') THEN
11.1189 + newrec_.p7_key := value_;
11.1190 + ELSIF (name_ = 'P7_VALUE') THEN
11.1191 + newrec_.p7_value := Client_SYS.Attr_Value_To_Number(value_);
11.1192 + ELSIF (name_ = 'P8_KEY') THEN
11.1193 + newrec_.p8_key := value_;
11.1194 + ELSIF (name_ = 'P8_VALUE') THEN
11.1195 + newrec_.p8_value := Client_SYS.Attr_Value_To_Number(value_);
11.1196 + ELSIF (name_ = 'P9_KEY') THEN
11.1197 + newrec_.p9_key := value_;
11.1198 + ELSIF (name_ = 'P9_VALUE') THEN
11.1199 + newrec_.p9_value := Client_SYS.Attr_Value_To_Number(value_);
11.1200 + ELSIF (name_ = 'P10_KEY') THEN
11.1201 + newrec_.p10_key := value_;
11.1202 + ELSIF (name_ = 'P10_VALUE') THEN
11.1203 + newrec_.p10_value := Client_SYS.Attr_Value_To_Number(value_);
11.1204 + ELSIF (name_ = 'P11_KEY') THEN
11.1205 + newrec_.p11_key := value_;
11.1206 + ELSIF (name_ = 'P11_VALUE') THEN
11.1207 + newrec_.p11_value := Client_SYS.Attr_Value_To_Number(value_);
11.1208 + ELSIF (name_ = 'P12_KEY') THEN
11.1209 + newrec_.p12_key := value_;
11.1210 + ELSIF (name_ = 'P12_VALUE') THEN
11.1211 + newrec_.p12_value := Client_SYS.Attr_Value_To_Number(value_);
11.1212 + ELSIF (name_ = 'ACTION') THEN
11.1213 + newrec_.action := value_;
11.1214 + ELSIF (name_ = 'MEA_STATE_CHANGE_DATE') THEN
11.1215 + newrec_.mea_state_change_date := Client_SYS.Attr_Value_To_Date(value_);
11.1216 + ELSIF (name_ = 'BUDGET_VERSION') THEN
11.1217 + newrec_.budget_version := value_;
11.1218 + ELSE
11.1219 + Error_SYS.Item_Not_Exist(lu_name_, name_, value_);
11.1220 + END IF;
11.1221 + END LOOP;
11.1222 +
11.1223 +
11.1224 + IF( newrec_.scorecard_object IS NOT NULL) THEN
11.1225 +
11.1226 + measure_format_ := TO_NUMBER(Scorecard_Measure_API.Get_Measure_Format(newrec_.scorecard_object));
11.1227 +
11.1228 + newrec_.year_value := newrec_.year_value * measure_format_;
11.1229 + newrec_.p1_value := newrec_.p1_value * measure_format_;
11.1230 + newrec_.p2_value := newrec_.p2_value * measure_format_;
11.1231 + newrec_.p3_value := newrec_.p3_value * measure_format_;
11.1232 + newrec_.p4_value := newrec_.p4_value * measure_format_;
11.1233 + newrec_.p5_value := newrec_.p5_value * measure_format_;
11.1234 + newrec_.p6_value := newrec_.p6_value * measure_format_;
11.1235 + newrec_.p7_value := newrec_.p7_value * measure_format_;
11.1236 + newrec_.p8_value := newrec_.p8_value * measure_format_;
11.1237 + newrec_.p9_value := newrec_.p9_value * measure_format_;
11.1238 + newrec_.p10_value := newrec_.p10_value * measure_format_;
11.1239 + newrec_.p11_value := newrec_.p11_value * measure_format_;
11.1240 + newrec_.p12_value := newrec_.p12_value * measure_format_;
11.1241 +
11.1242 + END IF;
11.1243 +
11.1244 + Client_SYS.Clear_Attr(attr_);
11.1245 + Error_SYS.Check_Not_Null(lu_name_, 'ENVIRONMENT', newrec_.environment);
11.1246 + Error_SYS.Check_Not_Null(lu_name_, 'SCORECARD', newrec_.scorecard);
11.1247 + Error_SYS.Check_Not_Null(lu_name_, 'YEAR', newrec_.year);
11.1248 + Error_SYS.Check_Not_Null(lu_name_, 'VERSION', newrec_.version);
11.1249 + Error_SYS.Check_Not_Null(lu_name_, 'SCORECARD_OBJECT', newrec_.scorecard_object);
11.1250 + Error_SYS.Check_Not_Null(lu_name_, 'OBJECT_TYPE', newrec_.object_type);
11.1251 + Error_SYS.Check_Not_Null(lu_name_, 'ACTION', newrec_.action);
11.1252 +EXCEPTION
11.1253 + WHEN value_error THEN
11.1254 + Error_SYS.Item_Format(lu_name_, name_, value_);
11.1255 +END Unpack_Check_Insert___;
11.1256 +
11.1257 +
11.1258 +PROCEDURE Insert___ (
11.1259 + objid_ OUT VARCHAR2,
11.1260 + objversion_ OUT VARCHAR2,
11.1261 + newrec_ IN OUT &TABLE%ROWTYPE,
11.1262 + attr_ IN OUT VARCHAR2 )
11.1263 +IS
11.1264 +BEGIN
11.1265 + newrec_.rowversion := sysdate;
11.1266 + objversion_ := to_char(newrec_.rowversion,'YYYYMMDDHH24MISS');
11.1267 + newrec_.mea_state_change_date := sysdate;
11.1268 + INSERT
11.1269 + INTO scorecard_input_value_tab (
11.1270 + environment,
11.1271 + scorecard,
11.1272 + year,
11.1273 + version,
11.1274 + scorecard_object,
11.1275 + object_type,
11.1276 + year_value,
11.1277 + p1_key,
11.1278 + p1_value,
11.1279 + p2_key,
11.1280 + p2_value,
11.1281 + p3_key,
11.1282 + p3_value,
11.1283 + p4_key,
11.1284 + p4_value,
11.1285 + p5_key,
11.1286 + p5_value,
11.1287 + p6_key,
11.1288 + p6_value,
11.1289 + p7_key,
11.1290 + p7_value,
11.1291 + p8_key,
11.1292 + p8_value,
11.1293 + p9_key,
11.1294 + p9_value,
11.1295 + p10_key,
11.1296 + p10_value,
11.1297 + p11_key,
11.1298 + p11_value,
11.1299 + p12_key,
11.1300 + p12_value,
11.1301 + action,
11.1302 + mea_state_change_date,
11.1303 + budget_version,
11.1304 + rowversion,
11.1305 + rowstate)
11.1306 + VALUES (
11.1307 + newrec_.environment,
11.1308 + newrec_.scorecard,
11.1309 + newrec_.year,
11.1310 + newrec_.version,
11.1311 + newrec_.scorecard_object,
11.1312 + newrec_.object_type,
11.1313 + newrec_.year_value,
11.1314 + newrec_.p1_key,
11.1315 + newrec_.p1_value,
11.1316 + newrec_.p2_key,
11.1317 + newrec_.p2_value,
11.1318 + newrec_.p3_key,
11.1319 + newrec_.p3_value,
11.1320 + newrec_.p4_key,
11.1321 + newrec_.p4_value,
11.1322 + newrec_.p5_key,
11.1323 + newrec_.p5_value,
11.1324 + newrec_.p6_key,
11.1325 + newrec_.p6_value,
11.1326 + newrec_.p7_key,
11.1327 + newrec_.p7_value,
11.1328 + newrec_.p8_key,
11.1329 + newrec_.p8_value,
11.1330 + newrec_.p9_key,
11.1331 + newrec_.p9_value,
11.1332 + newrec_.p10_key,
11.1333 + newrec_.p10_value,
11.1334 + newrec_.p11_key,
11.1335 + newrec_.p11_value,
11.1336 + newrec_.p12_key,
11.1337 + newrec_.p12_value,
11.1338 + newrec_.action,
11.1339 + newrec_.mea_state_change_date,
11.1340 + newrec_.budget_version,
11.1341 + newrec_.rowversion,
11.1342 + 'Open')
11.1343 + RETURNING &OBJID INTO objid_;
11.1344 + Finite_State_Init___(newrec_, attr_);
11.1345 +EXCEPTION
11.1346 + WHEN dup_val_on_index THEN
11.1347 + Error_SYS.Record_Exist(lu_name_);
11.1348 +END Insert___;
11.1349 +
11.1350 +-----------------------------------------------------------------------------
11.1351 +-------------------- IMPLEMENTATION BASE METHODS FOR UPDATE -----------------
11.1352 +-----------------------------------------------------------------------------
11.1353 +-- Unpack_Check_Update___
11.1354 +-- Unpack the attribute list, check all attributes from the client
11.1355 +-- and generate all default values before modifying the object.
11.1356 +--
11.1357 +-- Update___
11.1358 +-- Update an existing LU-instance in the database and return the
11.1359 +-- the new OBJVERSION.
11.1360 +-----------------------------------------------------------------------------
11.1361 +
11.1362 +PROCEDURE Unpack_Check_Update___ (
11.1363 + attr_ IN OUT VARCHAR2,
11.1364 + newrec_ IN OUT &TABLE%ROWTYPE,
11.1365 + objid_ IN VARCHAR2 )
11.1366 +IS
11.1367 + ptr_ NUMBER;
11.1368 + name_ VARCHAR2(30);
11.1369 + value_ VARCHAR2(2000);
11.1370 +
11.1371 +
11.1372 + measure_format_ NUMBER;
11.1373 + from_budpro_ VARCHAR2(5):= 'FALSE';
11.1374 + oldrec_ Scorecard_Input_Value_Tab%ROWTYPE;
11.1375 +
11.1376 +BEGIN
11.1377 + ptr_ := NULL;
11.1378 + oldrec_ := newrec_;
11.1379 + WHILE (Client_SYS.Get_Next_From_Attr(attr_, ptr_, name_, value_)) LOOP
11.1380 + IF (name_ = 'ENVIRONMENT') THEN
11.1381 + newrec_.environment := value_;
11.1382 + Scorecard_Environment_API.Exist(newrec_.environment);
11.1383 + ELSIF (name_ = 'SCORECARD') THEN
11.1384 + newrec_.scorecard := value_;
11.1385 + Scorecard_API.Exist(newrec_.environment, newrec_.scorecard);
11.1386 + ELSIF (name_ = 'YEAR') THEN
11.1387 + newrec_.year := value_;
11.1388 + Environment_Year_API.Exist(newrec_.environment, newrec_.year);
11.1389 + ELSIF (name_ = 'VERSION') THEN
11.1390 + Error_SYS.Item_Update(lu_name_, 'VERSION');
11.1391 + ELSIF (name_ = 'SCORECARD_OBJECT') THEN
11.1392 + newrec_.scorecard_object := value_;
11.1393 + ELSIF (name_ = 'OBJECT_TYPE') THEN
11.1394 + newrec_.object_type := value_;
11.1395 + ELSIF (name_ = 'YEAR_VALUE') THEN
11.1396 + newrec_.year_value := Client_SYS.Attr_Value_To_Number(value_);
11.1397 + ELSIF (name_ = 'P1_KEY') THEN
11.1398 + newrec_.p1_key := value_;
11.1399 + ELSIF (name_ = 'P1_VALUE') THEN
11.1400 + newrec_.p1_value := Client_SYS.Attr_Value_To_Number(value_);
11.1401 + ELSIF (name_ = 'P2_KEY') THEN
11.1402 + newrec_.p2_key := value_;
11.1403 + ELSIF (name_ = 'P2_VALUE') THEN
11.1404 + newrec_.p2_value := Client_SYS.Attr_Value_To_Number(value_);
11.1405 + ELSIF (name_ = 'P3_KEY') THEN
11.1406 + newrec_.p3_key := value_;
11.1407 + ELSIF (name_ = 'P3_VALUE') THEN
11.1408 + newrec_.p3_value := Client_SYS.Attr_Value_To_Number(value_);
11.1409 + ELSIF (name_ = 'P4_KEY') THEN
11.1410 + newrec_.p4_key := value_;
11.1411 + ELSIF (name_ = 'P4_VALUE') THEN
11.1412 + newrec_.p4_value := Client_SYS.Attr_Value_To_Number(value_);
11.1413 + ELSIF (name_ = 'P5_KEY') THEN
11.1414 + newrec_.p5_key := value_;
11.1415 + ELSIF (name_ = 'P5_VALUE') THEN
11.1416 + newrec_.p5_value := Client_SYS.Attr_Value_To_Number(value_);
11.1417 + ELSIF (name_ = 'P6_KEY') THEN
11.1418 + newrec_.p6_key := value_;
11.1419 + ELSIF (name_ = 'P6_VALUE') THEN
11.1420 + newrec_.p6_value := Client_SYS.Attr_Value_To_Number(value_);
11.1421 + ELSIF (name_ = 'P7_KEY') THEN
11.1422 + newrec_.p7_key := value_;
11.1423 + ELSIF (name_ = 'P7_VALUE') THEN
11.1424 + newrec_.p7_value := Client_SYS.Attr_Value_To_Number(value_);
11.1425 + ELSIF (name_ = 'P8_KEY') THEN
11.1426 + newrec_.p8_key := value_;
11.1427 + ELSIF (name_ = 'P8_VALUE') THEN
11.1428 + newrec_.p8_value := Client_SYS.Attr_Value_To_Number(value_);
11.1429 + ELSIF (name_ = 'P9_KEY') THEN
11.1430 + newrec_.p9_key := value_;
11.1431 + ELSIF (name_ = 'P9_VALUE') THEN
11.1432 + newrec_.p9_value := Client_SYS.Attr_Value_To_Number(value_);
11.1433 + ELSIF (name_ = 'P10_KEY') THEN
11.1434 + newrec_.p10_key := value_;
11.1435 + ELSIF (name_ = 'P10_VALUE') THEN
11.1436 + newrec_.p10_value := Client_SYS.Attr_Value_To_Number(value_);
11.1437 + ELSIF (name_ = 'P11_KEY') THEN
11.1438 + newrec_.p11_key := value_;
11.1439 + ELSIF (name_ = 'P11_VALUE') THEN
11.1440 + newrec_.p11_value := Client_SYS.Attr_Value_To_Number(value_);
11.1441 + ELSIF (name_ = 'P12_KEY') THEN
11.1442 + newrec_.p12_key := value_;
11.1443 + ELSIF (name_ = 'P12_VALUE') THEN
11.1444 + newrec_.p12_value := Client_SYS.Attr_Value_To_Number(value_);
11.1445 + ELSIF (name_ = 'ACTION') THEN
11.1446 + newrec_.action := value_;
11.1447 + ELSIF (name_ = 'MEA_STATE_CHANGE_DATE') THEN
11.1448 + newrec_.mea_state_change_date := Client_SYS.Attr_Value_To_Date(value_);
11.1449 + ELSIF (name_ = 'BUDGET_VERSION') THEN
11.1450 + newrec_.budget_version := value_;
11.1451 + ELSIF (name_ = 'FROM_BUDPRO') THEN
11.1452 + from_budpro_ := value_;
11.1453 + ELSE
11.1454 + Error_SYS.Item_Not_Exist(lu_name_, name_, value_);
11.1455 + END IF;
11.1456 + END LOOP;
11.1457 +
11.1458 +
11.1459 + IF( newrec_.scorecard_object IS NOT NULL AND from_budpro_ = 'FALSE') THEN
11.1460 +
11.1461 + measure_format_ := TO_NUMBER(Scorecard_Measure_API.Get_Measure_Format(newrec_.scorecard_object));
11.1462 + IF( newrec_.year_value != NVL(oldrec_.year_value,0)) THEN
11.1463 + newrec_.year_value := newrec_.year_value * measure_format_;
11.1464 + END IF;
11.1465 + IF( newrec_.p1_value != NVL(oldrec_.p1_value,0)) THEN
11.1466 + newrec_.p1_value := newrec_.p1_value * measure_format_;
11.1467 + END IF;
11.1468 + IF( newrec_.p2_value != NVL(oldrec_.p2_value,0)) THEN
11.1469 + newrec_.p2_value := newrec_.p2_value * measure_format_;
11.1470 + END IF;
11.1471 + IF( newrec_.p3_value != NVL(oldrec_.p3_value,0)) THEN
11.1472 + newrec_.p3_value := newrec_.p3_value * measure_format_;
11.1473 + END IF;
11.1474 + IF( newrec_.p4_value != NVL(oldrec_.p4_value,0)) THEN
11.1475 + newrec_.p4_value := newrec_.p4_value * measure_format_;
11.1476 + END IF;
11.1477 + IF( newrec_.p5_value != NVL(oldrec_.p5_value,0)) THEN
11.1478 + newrec_.p5_value := newrec_.p5_value * measure_format_;
11.1479 + END IF;
11.1480 + IF( newrec_.p6_value != NVL(oldrec_.p6_value,0)) THEN
11.1481 + newrec_.p6_value := newrec_.p6_value * measure_format_;
11.1482 + END IF;
11.1483 + IF( newrec_.p7_value != NVL(oldrec_.p7_value,0)) THEN
11.1484 + newrec_.p7_value := newrec_.p7_value * measure_format_;
11.1485 + END IF;
11.1486 + IF( newrec_.p8_value != NVL(oldrec_.p8_value,0)) THEN
11.1487 + newrec_.p8_value := newrec_.p8_value * measure_format_;
11.1488 + END IF;
11.1489 + IF( newrec_.p9_value != NVL(oldrec_.p9_value,0)) THEN
11.1490 + newrec_.p9_value := newrec_.p9_value * measure_format_;
11.1491 + END IF;
11.1492 + IF( newrec_.p10_value != NVL(oldrec_.p10_value,0)) THEN
11.1493 + newrec_.p10_value := newrec_.p10_value * measure_format_;
11.1494 + END IF;
11.1495 + IF( newrec_.p11_value != NVL(oldrec_.p11_value,0)) THEN
11.1496 + newrec_.p11_value := newrec_.p11_value * measure_format_;
11.1497 + END IF;
11.1498 + IF( newrec_.p12_value != NVL(oldrec_.p12_value,0)) THEN
11.1499 + newrec_.p12_value := newrec_.p12_value * measure_format_;
11.1500 + END IF;
11.1501 +
11.1502 + END IF;
11.1503 + Client_SYS.Clear_Attr(attr_);
11.1504 + Error_SYS.Check_Not_Null(lu_name_, 'ENVIRONMENT', newrec_.environment);
11.1505 + Error_SYS.Check_Not_Null(lu_name_, 'SCORECARD', newrec_.scorecard);
11.1506 + Error_SYS.Check_Not_Null(lu_name_, 'YEAR', newrec_.year);
11.1507 + Error_SYS.Check_Not_Null(lu_name_, 'SCORECARD_OBJECT', newrec_.scorecard_object);
11.1508 + Error_SYS.Check_Not_Null(lu_name_, 'OBJECT_TYPE', newrec_.object_type);
11.1509 + Error_SYS.Check_Not_Null(lu_name_, 'ACTION', newrec_.action);
11.1510 +EXCEPTION
11.1511 + WHEN value_error THEN
11.1512 + Error_SYS.Item_Format(lu_name_, name_, value_);
11.1513 +END Unpack_Check_Update___;
11.1514 +
11.1515 +
11.1516 +PROCEDURE Update___ (
11.1517 + objid_ IN VARCHAR2,
11.1518 + oldrec_ IN &TABLE%ROWTYPE,
11.1519 + newrec_ IN OUT &TABLE%ROWTYPE,
11.1520 + attr_ IN OUT VARCHAR2,
11.1521 + objversion_ IN OUT VARCHAR2,
11.1522 + by_keys_ IN BOOLEAN DEFAULT FALSE )
11.1523 +IS
11.1524 +BEGIN
11.1525 + newrec_.rowversion := sysdate;
11.1526 + objversion_ := to_char(newrec_.rowversion,'YYYYMMDDHH24MISS');
11.1527 + IF by_keys_ THEN
11.1528 + UPDATE scorecard_input_value_tab
11.1529 + SET environment = newrec_.environment,
11.1530 + scorecard = newrec_.scorecard,
11.1531 + year = newrec_.year,
11.1532 + version = newrec_.version,
11.1533 + scorecard_object = newrec_.scorecard_object,
11.1534 + object_type = newrec_.object_type,
11.1535 + year_value = newrec_.year_value,
11.1536 + p1_key = newrec_.p1_key,
11.1537 + p1_value = newrec_.p1_value,
11.1538 + p2_key = newrec_.p2_key,
11.1539 + p2_value = newrec_.p2_value,
11.1540 + p3_key = newrec_.p3_key,
11.1541 + p3_value = newrec_.p3_value,
11.1542 + p4_key = newrec_.p4_key,
11.1543 + p4_value = newrec_.p4_value,
11.1544 + p5_key = newrec_.p5_key,
11.1545 + p5_value = newrec_.p5_value,
11.1546 + p6_key = newrec_.p6_key,
11.1547 + p6_value = newrec_.p6_value,
11.1548 + p7_key = newrec_.p7_key,
11.1549 + p7_value = newrec_.p7_value,
11.1550 + p8_key = newrec_.p8_key,
11.1551 + p8_value = newrec_.p8_value,
11.1552 + p9_key = newrec_.p9_key,
11.1553 + p9_value = newrec_.p9_value,
11.1554 + p10_key = newrec_.p10_key,
11.1555 + p10_value = newrec_.p10_value,
11.1556 + p11_key = newrec_.p11_key,
11.1557 + p11_value = newrec_.p11_value,
11.1558 + p12_key = newrec_.p12_key,
11.1559 + p12_value = newrec_.p12_value,
11.1560 + action = newrec_.action,
11.1561 + mea_state_change_date = newrec_.mea_state_change_date,
11.1562 + budget_version = newrec_.budget_version,
11.1563 + rowversion = newrec_.rowversion
11.1564 + WHERE environment = newrec_.environment
11.1565 + AND scorecard = newrec_.scorecard
11.1566 + AND year = newrec_.year
11.1567 + AND version = newrec_.version
11.1568 + AND scorecard_object = newrec_.scorecard_object;
11.1569 + ELSE
11.1570 + UPDATE scorecard_input_value_tab
11.1571 + SET environment = newrec_.environment,
11.1572 + scorecard = newrec_.scorecard,
11.1573 + year = newrec_.year,
11.1574 + version = newrec_.version,
11.1575 + scorecard_object = newrec_.scorecard_object,
11.1576 + object_type = newrec_.object_type,
11.1577 + year_value = newrec_.year_value,
11.1578 + p1_key = newrec_.p1_key,
11.1579 + p1_value = newrec_.p1_value,
11.1580 + p2_key = newrec_.p2_key,
11.1581 + p2_value = newrec_.p2_value,
11.1582 + p3_key = newrec_.p3_key,
11.1583 + p3_value = newrec_.p3_value,
11.1584 + p4_key = newrec_.p4_key,
11.1585 + p4_value = newrec_.p4_value,
11.1586 + p5_key = newrec_.p5_key,
11.1587 + p5_value = newrec_.p5_value,
11.1588 + p6_key = newrec_.p6_key,
11.1589 + p6_value = newrec_.p6_value,
11.1590 + p7_key = newrec_.p7_key,
11.1591 + p7_value = newrec_.p7_value,
11.1592 + p8_key = newrec_.p8_key,
11.1593 + p8_value = newrec_.p8_value,
11.1594 + p9_key = newrec_.p9_key,
11.1595 + p9_value = newrec_.p9_value,
11.1596 + p10_key = newrec_.p10_key,
11.1597 + p10_value = newrec_.p10_value,
11.1598 + p11_key = newrec_.p11_key,
11.1599 + p11_value = newrec_.p11_value,
11.1600 + p12_key = newrec_.p12_key,
11.1601 + p12_value = newrec_.p12_value,
11.1602 + action = newrec_.action,
11.1603 + mea_state_change_date = newrec_.mea_state_change_date,
11.1604 + budget_version = newrec_.budget_version,
11.1605 + rowversion = newrec_.rowversion
11.1606 + WHERE &OBJID = objid_;
11.1607 + END IF;
11.1608 +EXCEPTION
11.1609 + WHEN dup_val_on_index THEN
11.1610 + Error_SYS.Record_Exist(lu_name_);
11.1611 +END Update___;
11.1612 +
11.1613 +-----------------------------------------------------------------------------
11.1614 +-------------------- IMPLEMENTATION BASE METHODS FOR DELETE -----------------
11.1615 +-----------------------------------------------------------------------------
11.1616 +-- Check_Delete___
11.1617 +-- Checks whether a specific LU-record may be removed or not.
11.1618 +-- The procedure should check business rules like attribute values
11.1619 +-- as well as database constraints (defined or not).
11.1620 +--
11.1621 +-- Delete___
11.1622 +-- Deletion of the specific LU-object from the database.
11.1623 +-----------------------------------------------------------------------------
11.1624 +
11.1625 +PROCEDURE Check_Delete___ (
11.1626 + remrec_ IN &TABLE%ROWTYPE )
11.1627 +IS
11.1628 + key_ VARCHAR2(2000);
11.1629 +BEGIN
11.1630 + key_ := remrec_.environment || '^' || remrec_.scorecard || '^' || remrec_.year || '^' || remrec_.version || '^' || remrec_.scorecard_object || '^';
11.1631 + Reference_SYS.Check_Restricted_Delete(lu_name_, key_);
11.1632 +END Check_Delete___;
11.1633 +
11.1634 +
11.1635 +PROCEDURE Delete___ (
11.1636 + objid_ IN VARCHAR2,
11.1637 + remrec_ IN &TABLE%ROWTYPE )
11.1638 +IS
11.1639 + key_ VARCHAR2(2000);
11.1640 +BEGIN
11.1641 + key_ := remrec_.environment || '^' || remrec_.scorecard || '^' || remrec_.year || '^' || remrec_.version || '^' || remrec_.scorecard_object || '^';
11.1642 + Reference_SYS.Do_Cascade_Delete(lu_name_, key_);
11.1643 + DELETE
11.1644 + FROM scorecard_input_value_tab
11.1645 + WHERE &OBJID = objid_;
11.1646 +END Delete___;
11.1647 +
11.1648 +-----------------------------------------------------------------------------
11.1649 +-------------------- PRIVATE BASE METHODS -----------------------------------
11.1650 +-----------------------------------------------------------------------------
11.1651 +-- Lock__
11.1652 +-- Client-support to lock a specific instance of the logical unit.
11.1653 +--
11.1654 +-- New__
11.1655 +-- Client-support interface to create LU instances.
11.1656 +-- action_ = 'PREPARE'
11.1657 +-- Default values and handle of information to client.
11.1658 +-- The default values are set in procedure Prepare_Insert___.
11.1659 +-- action_ = 'CHECK'
11.1660 +-- Check all attributes before creating new object and handle of
11.1661 +-- information to client. The attribute list is unpacked, checked
11.1662 +-- and prepared (defaults) in procedure Unpack_Check_Insert___.
11.1663 +-- action_ = 'DO'
11.1664 +-- Creation of new instances of the logical unit and handle of
11.1665 +-- information to client. The attribute list is unpacked, checked
11.1666 +-- and prepared (defaults) in procedure Unpack_Check_Insert___
11.1667 +-- before calling procedure Insert___.
11.1668 +--
11.1669 +-- Modify__
11.1670 +-- Client-support interface to modify attributes for LU instances.
11.1671 +-- action_ = 'CHECK'
11.1672 +-- Check all attributes before modifying an existing object and
11.1673 +-- handle of information to client. The attribute list is unpacked,
11.1674 +-- checked and prepared(defaults) in procedure Unpack_Check_Update___.
11.1675 +-- action_ = 'DO'
11.1676 +-- Modification of an existing instance of the logical unit. The
11.1677 +-- procedure unpacks the attributes, checks all values before
11.1678 +-- procedure Update___ is called.
11.1679 +--
11.1680 +-- Remove__
11.1681 +-- Client-support interface to remove LU instances.
11.1682 +-- action_ = 'CHECK'
11.1683 +-- Check whether a specific LU-instance may be removed or not.
11.1684 +-- The procedure fetches the complete record by calling procedure
11.1685 +-- Get_Object_By_Id___. Then the check is made by calling procedure
11.1686 +-- Check_Delete___.
11.1687 +-- action_ = 'DO'
11.1688 +-- Remove an existing instance of the logical unit. The procedure
11.1689 +-- fetches the complete LU-record, checks for a delete and then
11.1690 +-- deletes the record by calling procedure Delete___.
11.1691 +-----------------------------------------------------------------------------
11.1692 +
11.1693 +PROCEDURE Lock__ (
11.1694 + info_ OUT VARCHAR2,
11.1695 + objid_ IN VARCHAR2,
11.1696 + objversion_ IN VARCHAR2 )
11.1697 +IS
11.1698 + dummy_ &TABLE%ROWTYPE;
11.1699 +BEGIN
11.1700 + General_SYS.Init_Method(lu_name_, '&PKG', 'Lock__');
11.1701 + dummy_ := Lock_By_Id___(objid_, objversion_);
11.1702 + info_ := Client_SYS.Get_All_Info;
11.1703 +END Lock__;
11.1704 +
11.1705 +
11.1706 +PROCEDURE New__ (
11.1707 + info_ OUT VARCHAR2,
11.1708 + objid_ OUT VARCHAR2,
11.1709 + objversion_ OUT VARCHAR2,
11.1710 + attr_ IN OUT VARCHAR2,
11.1711 + action_ IN VARCHAR2 )
11.1712 +IS
11.1713 + newrec_ &TABLE%ROWTYPE;
11.1714 +BEGIN
11.1715 + General_SYS.Init_Method(lu_name_, '&PKG', 'New__');
11.1716 + IF (action_ = 'PREPARE') THEN
11.1717 + Prepare_Insert___(attr_);
11.1718 + ELSIF (action_ = 'CHECK') THEN
11.1719 + Unpack_Check_Insert___(attr_, newrec_);
11.1720 + ELSIF (action_ = 'DO') THEN
11.1721 + Unpack_Check_Insert___(attr_, newrec_);
11.1722 + Insert___(objid_, objversion_, newrec_, attr_);
11.1723 + END IF;
11.1724 + info_ := Client_SYS.Get_All_Info;
11.1725 +END New__;
11.1726 +
11.1727 +
11.1728 +PROCEDURE Modify__ (
11.1729 + info_ OUT VARCHAR2,
11.1730 + objid_ IN VARCHAR2,
11.1731 + objversion_ IN OUT VARCHAR2,
11.1732 + attr_ IN OUT VARCHAR2,
11.1733 + action_ IN VARCHAR2 )
11.1734 +IS
11.1735 + oldrec_ &TABLE%ROWTYPE;
11.1736 + newrec_ &TABLE%ROWTYPE;
11.1737 +BEGIN
11.1738 + General_SYS.Init_Method(lu_name_, '&PKG', 'Modify__');
11.1739 + IF (action_ = 'CHECK') THEN
11.1740 + newrec_ := Get_Object_By_Id___(objid_);
11.1741 + Unpack_Check_Update___(attr_, newrec_, objid_);
11.1742 + ELSIF (action_ = 'DO') THEN
11.1743 + oldrec_ := Lock_By_Id___(objid_, objversion_);
11.1744 + newrec_ := oldrec_;
11.1745 + Unpack_Check_Update___(attr_, newrec_, objid_);
11.1746 + Update___(objid_, oldrec_, newrec_, attr_, objversion_);
11.1747 + END IF;
11.1748 + info_ := Client_SYS.Get_All_Info;
11.1749 +END Modify__;
11.1750 +
11.1751 +
11.1752 +PROCEDURE Remove__ (
11.1753 + info_ OUT VARCHAR2,
11.1754 + objid_ IN VARCHAR2,
11.1755 + objversion_ IN VARCHAR2,
11.1756 + action_ IN VARCHAR2 )
11.1757 +IS
11.1758 + remrec_ &TABLE%ROWTYPE;
11.1759 +BEGIN
11.1760 + General_SYS.Init_Method(lu_name_, '&PKG', 'Remove__');
11.1761 + IF (action_ = 'CHECK') THEN
11.1762 + remrec_ := Get_Object_By_Id___(objid_);
11.1763 + Check_Delete___(remrec_);
11.1764 + ELSIF (action_ = 'DO') THEN
11.1765 + remrec_ := Lock_By_Id___(objid_, objversion_);
11.1766 + Check_Delete___(remrec_);
11.1767 + Delete___(objid_, remrec_);
11.1768 + END IF;
11.1769 + info_ := Client_SYS.Get_All_Info;
11.1770 +END Remove__;
11.1771 +
11.1772 +-----------------------------------------------------------------------------
11.1773 +-------------------- PUBLIC BASE METHODS ------------------------------------
11.1774 +-----------------------------------------------------------------------------
11.1775 +-- Exist
11.1776 +-- Checks if given pointer (e.g. primary key) to an instance of this
11.1777 +-- logical unit exists. If not an exception will be raised.
11.1778 +-----------------------------------------------------------------------------
11.1779 +
11.1780 +PROCEDURE Exist (
11.1781 + environment_ IN VARCHAR2,
11.1782 + scorecard_ IN VARCHAR2,
11.1783 + year_ IN VARCHAR2,
11.1784 + version_ IN VARCHAR2,
11.1785 + scorecard_object_ IN VARCHAR2 )
11.1786 +IS
11.1787 +BEGIN
11.1788 + General_SYS.Init_Method(lu_name_, '&PKG', 'Exist', TRUE);
11.1789 + IF (NOT Check_Exist___(environment_, scorecard_, year_, version_, scorecard_object_)) THEN
11.1790 + Error_SYS.Record_Not_Exist(lu_name_);
11.1791 + END IF;
11.1792 +END Exist;
11.1793 +
11.1794 +-----------------------------------------------------------------------------
11.1795 +-------------------- PUBLIC TRANSLATION METHODS -----------------------------
11.1796 +-----------------------------------------------------------------------------
11.1797 +PROCEDURE Language_Refreshed
11.1798 +IS
11.1799 +BEGIN
11.1800 + active_state_list_ := Language_SYS.Translate_State_(lu_name_, client_state_list_);
11.1801 +END Language_Refreshed;
11.1802 +-----------------------------------------------------------------------------
11.1803 +-------------------- LU SPECIFIC IMPLEMENTATION METHODS ---------------------
11.1804 +-----------------------------------------------------------------------------
11.1805 +
11.1806 +
11.1807 +PROCEDURE Distribute_Input_Values___ (
11.1808 + environment_ IN VARCHAR2,
11.1809 + scorecard_ IN VARCHAR2,
11.1810 + year_ IN VARCHAR2,
11.1811 + version_ IN VARCHAR2,
11.1812 + object_type_ IN VARCHAR2,
11.1813 + period_count_ IN NUMBER,
11.1814 + scorecard_object_ IN VARCHAR2 )
11.1815 +IS
11.1816 + child_scr_ VARCHAR2(20);
11.1817 +
11.1818 +
11.1819 + CURSOR get_child_scorecards IS --- Move to scorecard
11.1820 + SELECT scorecard
11.1821 + FROM scorecard
11.1822 + WHERE parent=scorecard_
11.1823 + AND environment=environment_;
11.1824 +
11.1825 + CURSOR get_open_child_scr IS
11.1826 + SELECT '1'
11.1827 + FROM scorecard
11.1828 + WHERE scorecard = child_scr_
11.1829 + AND environment=environment_
11.1830 + AND objstate NOT IN ('Open', 'Planned');
11.1831 +
11.1832 + CURSOR get_input_values (scorecard_object_ VARCHAR2,temp_scorecard_ VARCHAR2) IS
11.1833 + SELECT year_value,p1_value,p2_value,p3_value,p4_value,p5_value,p6_value,
11.1834 + p7_value,p8_value,p9_value,p10_value,p11_value,p12_value
11.1835 + FROM scorecard_input_value_tab
11.1836 + WHERE environment = environment_
11.1837 + AND scorecard = temp_scorecard_
11.1838 + AND year = year_
11.1839 + AND version = version_
11.1840 + AND scorecard_object = scorecard_object_
11.1841 + AND object_type_=object_type_;
11.1842 +
11.1843 + CURSOR get_attribute_value_sum(attribute_ VARCHAR2) IS
11.1844 + SELECT SUM(TO_NUMBER(value))
11.1845 + FROM scorecard_attribute_tab
11.1846 + WHERE environment=environment_
11.1847 + AND scorecard IN (SELECT scorecard
11.1848 + FROM scorecard
11.1849 + WHERE environment = environment_
11.1850 + AND parent = scorecard_)
11.1851 + AND attribute=attribute_;
11.1852 +
11.1853 + value_distribution_type_ VARCHAR2(20);
11.1854 + hierachical_dist_logic_ VARCHAR2(20);
11.1855 + distribution_version_ VARCHAR2(20);
11.1856 + distribution_attribute_ VARCHAR2(20);
11.1857 + temp_val_ VARCHAR2(5);
11.1858 + newrec_ SCORECARD_INPUT_VALUE_TAB%ROWTYPE;
11.1859 + oldrec_ SCORECARD_INPUT_VALUE_TAB%ROWTYPE;
11.1860 + objid_ VARCHAR2(2000);
11.1861 + attr_ VARCHAR2(2000);
11.1862 + objversion_ VARCHAR2(2000);
11.1863 + child_count_ NUMBER;
11.1864 + temp_period_count_ NUMBER;
11.1865 + attribute_val_str_ VARCHAR2(2000);
11.1866 + attribute_value_ NUMBER;
11.1867 + attribute_value_sum_ NUMBER;
11.1868 +
11.1869 + parent_year_value_ NUMBER;
11.1870 + parent_p1_value_ NUMBER;
11.1871 + parent_p2_value_ NUMBER;
11.1872 + parent_p3_value_ NUMBER;
11.1873 + parent_p4_value_ NUMBER;
11.1874 + parent_p5_value_ NUMBER;
11.1875 + parent_p6_value_ NUMBER;
11.1876 + parent_p7_value_ NUMBER;
11.1877 + parent_p8_value_ NUMBER;
11.1878 + parent_p9_value_ NUMBER;
11.1879 + parent_p10_value_ NUMBER;
11.1880 + parent_p11_value_ NUMBER;
11.1881 + parent_p12_value_ NUMBER;
11.1882 +
11.1883 + period_val_arr_ PeriodValArrType;
11.1884 + TYPE ValArrType IS TABLE OF NUMBER
11.1885 + INDEX BY BINARY_INTEGER;
11.1886 + parent_val_arr_ ValArrType;
11.1887 + child_val_arr_ ValArrType;
11.1888 + year_value_ NUMBER;
11.1889 +
11.1890 +BEGIN
11.1891 +
11.1892 + Scorecard_Structure_API.Get_Dist_Logic_Details(value_distribution_type_,hierachical_dist_logic_,
11.1893 + distribution_version_,distribution_attribute_,
11.1894 + scorecard_,scorecard_object_,environment_,object_type_);
11.1895 +
11.1896 + IF value_distribution_type_ IS NULL THEN
11.1897 + IF object_type_='MEASURE' THEN
11.1898 + Error_SYS.Appl_General(lu_name_,'VALDIST1: Value distribution type must have a value for measure :P1 in parent scorecard :P2.',scorecard_object_,scorecard_);
11.1899 + ELSE
11.1900 + Error_SYS.Appl_General(lu_name_,'VALDIST2: Value distribution type must have a value for component :P1 in parent scorecard :P2.',scorecard_object_,scorecard_);
11.1901 + END IF;
11.1902 + END IF;
11.1903 +
11.1904 + OPEN get_input_values(scorecard_object_,scorecard_);
11.1905 + FETCH get_input_values INTO parent_year_value_,parent_p1_value_,parent_p2_value_,parent_p3_value_,parent_p4_value_,
11.1906 + parent_p5_value_,parent_p6_value_,parent_p7_value_,parent_p8_value_,parent_p9_value_,
11.1907 + parent_p10_value_,parent_p11_value_,parent_p12_value_;
11.1908 + CLOSE get_input_values;
11.1909 +
11.1910 + parent_val_arr_(1):=parent_p1_value_;
11.1911 + parent_val_arr_(2):=parent_p2_value_;
11.1912 + parent_val_arr_(3):=parent_p3_value_;
11.1913 + parent_val_arr_(4):=parent_p4_value_;
11.1914 + parent_val_arr_(5):=parent_p5_value_;
11.1915 + parent_val_arr_(6):=parent_p6_value_;
11.1916 + parent_val_arr_(7):=parent_p7_value_;
11.1917 + parent_val_arr_(8):=parent_p8_value_;
11.1918 + parent_val_arr_(9):=parent_p9_value_;
11.1919 + parent_val_arr_(10):=parent_p10_value_;
11.1920 + parent_val_arr_(11):=parent_p11_value_;
11.1921 + parent_val_arr_(12):=parent_p12_value_;
11.1922 + --END IF;
11.1923 +
11.1924 + FOR temp_period_count_ IN 1..period_count_ LOOP
11.1925 + IF parent_val_arr_(temp_period_count_) IS NULL THEN
11.1926 + Error_SYS.Appl_General(lu_name_,'PERVAL1: One or more periods in parent scorecard :P1 does not contain input values.',scorecard_);
11.1927 + END IF;
11.1928 + END LOOP;
11.1929 +
11.1930 + child_count_:=Scorecard_API.Get_Child_Count(scorecard_,environment_);
11.1931 +
11.1932 + FOR child_scorecards_ IN get_child_scorecards LOOP -- fetch the child scorecards
11.1933 +
11.1934 + year_value_:=0;
11.1935 + child_scr_ := child_scorecards_.scorecard;
11.1936 + OPEN get_open_child_scr;
11.1937 + FETCH get_open_child_scr INTO temp_val_;
11.1938 + CLOSE get_open_child_scr;
11.1939 +
11.1940 + IF (temp_val_ = '1') THEN
11.1941 + Error_SYS.Appl_General(lu_name_,'TMPVAL: Not all scorecards in the hierarchy are opened for planning. Distribution not possible.');
11.1942 + END IF;
11.1943 +
11.1944 + IF NOT Check_Exist___(environment_,child_scorecards_.scorecard,year_,version_,scorecard_object_) THEN
11.1945 + Error_SYS.Appl_General(lu_name_,'INPVAL: Scorecard object :P1 does not exist in scorecard :P2.',scorecard_object_,child_scorecards_.scorecard);
11.1946 +
11.1947 + ELSE
11.1948 + oldrec_:=Lock_By_Keys___(environment_,child_scorecards_.scorecard,year_,version_,scorecard_object_);
11.1949 + child_val_arr_(1):=oldrec_.p1_value;
11.1950 + child_val_arr_(2):=oldrec_.p2_value;
11.1951 + child_val_arr_(3):=oldrec_.p3_value;
11.1952 + child_val_arr_(4):=oldrec_.p4_value;
11.1953 + child_val_arr_(5):=oldrec_.p5_value;
11.1954 + child_val_arr_(6):=oldrec_.p6_value;
11.1955 + child_val_arr_(7):=oldrec_.p7_value;
11.1956 + child_val_arr_(8):=oldrec_.p8_value;
11.1957 + child_val_arr_(9):=oldrec_.p9_value;
11.1958 + child_val_arr_(10):=oldrec_.p10_value;
11.1959 + child_val_arr_(11):=oldrec_.p11_value;
11.1960 + child_val_arr_(12):=oldrec_.p12_value;
11.1961 + newrec_:=oldrec_;
11.1962 + IF value_distribution_type_ = 'PERCENTAGE' THEN
11.1963 + IF hierachical_dist_logic_ IS NULL THEN
11.1964 + FOR temp_period_count_ IN 1..period_count_ LOOP
11.1965 + child_val_arr_(temp_period_count_):=parent_val_arr_(temp_period_count_);
11.1966 + year_value_:=year_value_ +child_val_arr_(temp_period_count_);
11.1967 + END LOOP;
11.1968 +
11.1969 + ELSIF hierachical_dist_logic_='VERSION' THEN
11.1970 + IF distribution_version_ IS NULL THEN
11.1971 + IF object_type_='MEASURE' THEN
11.1972 + Error_SYS.Appl_General(lu_name_,'DISTVER1: Distribution version must have a value for measure :P1 in parent scorecard :P2.',scorecard_object_,scorecard_);
11.1973 + ELSE
11.1974 + Error_SYS.Appl_General(lu_name_,'DISTVER2: Distribution version must have a value for component :P1 in parent scorecard :P2.',scorecard_object_,scorecard_);
11.1975 + END IF;
11.1976 + END IF;
11.1977 + Scorecard_Value_API.Get_Period_Values__ (period_val_arr_,child_scorecards_.scorecard,object_type_,
11.1978 + period_count_,environment_,scorecard_,year_,
11.1979 + distribution_version_,scorecard_object_);
11.1980 + FOR temp_period_count_ IN 1..period_count_ LOOP
11.1981 + child_val_arr_(temp_period_count_):=parent_val_arr_(temp_period_count_)
11.1982 + *(period_val_arr_(temp_period_count_).value
11.1983 + /(period_val_arr_(temp_period_count_).sum/child_count_));
11.1984 + year_value_:=year_value_ +child_val_arr_(temp_period_count_);
11.1985 + END LOOP;
11.1986 + ELSIF hierachical_dist_logic_='ATTRIBUTE' THEN
11.1987 + IF distribution_attribute_ IS NULL THEN
11.1988 + IF object_type_='MEASURE' THEN
11.1989 + Error_SYS.Appl_General(lu_name_,'DISTATTR1: Distribution attribute must have a value for measure :P1 in parent scorecard :P2.',scorecard_object_,scorecard_);
11.1990 + ELSE
11.1991 + Error_SYS.Appl_General(lu_name_,'DISTATTR2: Distribution attribute must have a value for component :P1 in parent scorecard :P2.',scorecard_object_,scorecard_);
11.1992 + END IF;
11.1993 + END IF;
11.1994 +
11.1995 + attribute_val_str_:=Scorecard_Attribute_API.Get_Value(environment_,child_scorecards_.scorecard,
11.1996 + distribution_attribute_);
11.1997 + IF attribute_val_str_ IS NULL THEN
11.1998 + Error_SYS.Appl_General(lu_name_,'ATTRERR: Attribute :P1 must have a value in scorecard :P2.',distribution_attribute_,child_scorecards_.scorecard);
11.1999 + ELSE
11.2000 + BEGIN
11.2001 + attribute_value_:=TO_NUMBER(attribute_val_str_);
11.2002 + EXCEPTION
11.2003 + WHEN OTHERS THEN
11.2004 + Error_SYS.Appl_General(lu_name_,'NUMVALERR: Value of the attribute :P1 in all child scorecards of parent scorecard :P2 must be numeric.',distribution_attribute_,scorecard_);
11.2005 + END;
11.2006 + END IF;
11.2007 + BEGIN
11.2008 + OPEN get_attribute_value_sum(distribution_attribute_);
11.2009 + FETCH get_attribute_value_sum INTO attribute_value_sum_;
11.2010 + CLOSE get_attribute_value_sum;
11.2011 +
11.2012 + IF attribute_value_sum_=0 THEN
11.2013 + Error_SYS.Appl_General(lu_name_,'ATTRSUM : Attribute value of at least one child scorecard of parent scorecard :P1 must be greater than 0.');
11.2014 + END IF;
11.2015 + EXCEPTION
11.2016 + WHEN OTHERS THEN
11.2017 + Error_SYS.Appl_General(lu_name_,'NUMVALERR: Value of the attribute :P1 in all child scorecards of parent scorecard :P2 must be numeric.',distribution_attribute_,scorecard_);
11.2018 + END;
11.2019 +
11.2020 + FOR temp_period_count_ IN 1..period_count_ LOOP
11.2021 + child_val_arr_(temp_period_count_):=parent_val_arr_(temp_period_count_)
11.2022 + *(attribute_value_/(attribute_value_sum_/child_count_));
11.2023 + year_value_:=year_value_ +child_val_arr_(temp_period_count_);
11.2024 + END LOOP;
11.2025 + END IF;
11.2026 + year_value_:=year_value_ /period_count_;
11.2027 + ELSIF value_distribution_type_ = 'VALUE' THEN
11.2028 + IF hierachical_dist_logic_ IS NULL THEN
11.2029 + FOR temp_period_count_ IN 1..period_count_ LOOP
11.2030 + child_val_arr_(temp_period_count_):=parent_val_arr_(temp_period_count_)/child_count_;
11.2031 + year_value_:=year_value_ +child_val_arr_(temp_period_count_);
11.2032 + END LOOP;
11.2033 + ELSIF hierachical_dist_logic_='VERSION' THEN
11.2034 + IF distribution_version_ IS NULL THEN
11.2035 + IF object_type_='MEASURE' THEN
11.2036 + Error_SYS.Appl_General(lu_name_,'DISTVER1: Distribution version must have a value for measure :P1 in parent scorecard :P2.',scorecard_object_,scorecard_);
11.2037 + ELSE
11.2038 + Error_SYS.Appl_General(lu_name_,'DISTVER2: Distribution version must have a value for component :P1 in parent scorecard :P2.',scorecard_object_,scorecard_);
11.2039 + END IF;
11.2040 + END IF;
11.2041 + Scorecard_Value_API.Get_Period_Values__ (period_val_arr_,child_scorecards_.scorecard,object_type_,
11.2042 + period_count_,environment_,scorecard_,year_,
11.2043 + distribution_version_,scorecard_object_);
11.2044 + FOR temp_period_count_ IN 1..period_count_ LOOP
11.2045 + child_val_arr_(temp_period_count_):=parent_val_arr_(temp_period_count_)
11.2046 + *(period_val_arr_(temp_period_count_).value
11.2047 + /period_val_arr_(temp_period_count_).sum);
11.2048 + year_value_:=year_value_ +child_val_arr_(temp_period_count_);
11.2049 + END LOOP;
11.2050 + ELSIF hierachical_dist_logic_='ATTRIBUTE' THEN
11.2051 + IF distribution_attribute_ IS NULL THEN
11.2052 + IF object_type_='MEASURE' THEN
11.2053 + Error_SYS.Appl_General(lu_name_,'DISTATTR1: Distribution attribute must have a value for measure :P1 in parent scorecard :P2.',scorecard_object_,scorecard_);
11.2054 + ELSE
11.2055 + Error_SYS.Appl_General(lu_name_,'DISTATTR2: Distribution attribute must have a value for component :P1 in parent scorecard :P2.',scorecard_object_,scorecard_);
11.2056 + END IF;
11.2057 + END IF;
11.2058 + attribute_val_str_:=Scorecard_Attribute_API.Get_Value(environment_,child_scorecards_.scorecard,
11.2059 + distribution_attribute_);
11.2060 + IF attribute_val_str_ IS NULL THEN
11.2061 + Error_SYS.Appl_General(lu_name_,'ATTRERR: Attribute :P1 must have a value in scorecard :P2.',distribution_attribute_,child_scorecards_.scorecard);
11.2062 + ELSE
11.2063 + BEGIN
11.2064 + attribute_value_:=TO_NUMBER(attribute_val_str_);
11.2065 + EXCEPTION
11.2066 + WHEN OTHERS THEN
11.2067 + Error_SYS.Appl_General(lu_name_,'NUMVALERR: Value of the attribute :P1 in all child scorecards of parent scorecard :P2 must be numeric.',distribution_attribute_,scorecard_);
11.2068 + END;
11.2069 + END IF;
11.2070 + BEGIN
11.2071 + OPEN get_attribute_value_sum(distribution_attribute_);
11.2072 + FETCH get_attribute_value_sum INTO attribute_value_sum_;
11.2073 + CLOSE get_attribute_value_sum;
11.2074 +
11.2075 + IF attribute_value_sum_=0 THEN
11.2076 + Error_SYS.Appl_General(lu_name_,'ATTRSUM : Attribute value of at least one child scorecard of parent scorecard :P1 must be greater than 0.');
11.2077 + END IF;
11.2078 + EXCEPTION
11.2079 + WHEN OTHERS THEN
11.2080 + Error_SYS.Appl_General(lu_name_,'NUMVALERR: Value of the attribute :P1 in all child scorecards of parent scorecard :P2 must be numeric.',distribution_attribute_,scorecard_);
11.2081 + END;
11.2082 +
11.2083 + FOR temp_period_count_ IN 1..period_count_ LOOP
11.2084 + child_val_arr_(temp_period_count_):=parent_val_arr_(temp_period_count_)
11.2085 + *(attribute_value_/attribute_value_sum_);
11.2086 + year_value_:=year_value_ +child_val_arr_(temp_period_count_);
11.2087 + END LOOP;
11.2088 + END IF;
11.2089 + END IF;
11.2090 + newrec_.year_value:=year_value_;
11.2091 + newrec_.p1_value:=child_val_arr_(1);
11.2092 + newrec_.p2_value:=child_val_arr_(2);
11.2093 + newrec_.p3_value:=child_val_arr_(3);
11.2094 + newrec_.p4_value:=child_val_arr_(4);
11.2095 + newrec_.p5_value:=child_val_arr_(5);
11.2096 + newrec_.p6_value:=child_val_arr_(6);
11.2097 + newrec_.p7_value:=child_val_arr_(7);
11.2098 + newrec_.p8_value:=child_val_arr_(8);
11.2099 + newrec_.p9_value:=child_val_arr_(9);
11.2100 + newrec_.p10_value:=child_val_arr_(10);
11.2101 + newrec_.p11_value:=child_val_arr_(11);
11.2102 + newrec_.p12_value:=child_val_arr_(12);
11.2103 + Update___(objid_,oldrec_,newrec_,attr_,objversion_,TRUE);
11.2104 + Scorecard_api.Set_To_Planned(environment_,child_scorecards_.scorecard);
11.2105 + Scorecard_Input_Value_api.Set_To_Planned(environment_,child_scorecards_.scorecard,year_,version_,scorecard_object_);
11.2106 + END IF;
11.2107 + END LOOP;
11.2108 +END Distribute_Input_Values___;
11.2109 +PROCEDURE Object_Planned_Date___ (
11.2110 + rec_ IN &TABLE%ROWTYPE,
11.2111 + attr_ IN OUT VARCHAR2 )
11.2112 +IS
11.2113 + newrec_ &TABLE%ROWTYPE;
11.2114 +BEGIN
11.2115 + newrec_ := rec_;
11.2116 + Finite_State_Set___(newrec_, 'Planned');
11.2117 +END Object_Planned_Date___;
11.2118 +
11.2119 +FUNCTION Find_Column___(
11.2120 + environment_ IN VARCHAR2,
11.2121 + scorecard_ IN VARCHAR2,
11.2122 + year_ IN VARCHAR2,
11.2123 + version_ IN VARCHAR2,
11.2124 + scorecard_object_ IN VARCHAR2,
11.2125 + key_ IN VARCHAR2) RETURN VARCHAR2
11.2126 +IS
11.2127 + CURSOR get_record IS
11.2128 + SELECT p1_key, p2_key, p3_key, p4_key, p5_key, p6_key,
11.2129 + p7_key, p8_key, p9_key, p10_key, p11_key, p12_key
11.2130 + FROM &TABLE
11.2131 + WHERE environment = environment_
11.2132 + AND scorecard = scorecard_
11.2133 + AND year = year_
11.2134 + AND version = version_
11.2135 + AND scorecard_object = scorecard_object_;
11.2136 +
11.2137 + column_ VARCHAR2(30);
11.2138 +BEGIN
11.2139 + FOR rec_ IN get_record LOOP
11.2140 + IF (rec_.p1_key = key_) THEN
11.2141 + column_ := 'P1_VALUE';
11.2142 + ELSIF (rec_.p2_key = key_) THEN
11.2143 + column_ := 'P2_VALUE';
11.2144 + ELSIF (rec_.p3_key = key_) THEN
11.2145 + column_ := 'P3_VALUE';
11.2146 + ELSIF (rec_.p4_key = key_) THEN
11.2147 + column_ := 'P4_VALUE';
11.2148 + ELSIF (rec_.p5_key = key_) THEN
11.2149 + column_ := 'P5_VALUE';
11.2150 + ELSIF (rec_.p6_key = key_) THEN
11.2151 + column_ := 'P6_VALUE';
11.2152 + ELSIF (rec_.p7_key = key_) THEN
11.2153 + column_ := 'P7_VALUE';
11.2154 + ELSIF (rec_.p8_key = key_) THEN
11.2155 + column_ := 'P8_VALUE';
11.2156 + ELSIF (rec_.p9_key = key_) THEN
11.2157 + column_ := 'P9_VALUE';
11.2158 + ELSIF (rec_.p10_key = key_) THEN
11.2159 + column_ := 'P10_VALUE';
11.2160 + ELSIF (rec_.p11_key = key_) THEN
11.2161 + column_ := 'P11_VALUE';
11.2162 + ELSIF (rec_.p12_key = key_) THEN
11.2163 + column_ := 'P12_VALUE';
11.2164 + END IF;
11.2165 + END LOOP;
11.2166 +
11.2167 + RETURN column_;
11.2168 +END Find_Column___;
11.2169 +-----------------------------------------------------------------------------
11.2170 +-------------------- LU SPECIFIC PRIVATE METHODS ----------------------------
11.2171 +-----------------------------------------------------------------------------
11.2172 +
11.2173 +
11.2174 +PROCEDURE Update_Versions__ (
11.2175 + environment_ IN VARCHAR2,
11.2176 + scorecard_ IN VARCHAR2,
11.2177 + measure_ IN VARCHAR2,
11.2178 + object_type_ IN VARCHAR2,
11.2179 + period_ IN VARCHAR2,
11.2180 + version_ IN VARCHAR2,
11.2181 + version_value_ IN NUMBER,
11.2182 + plan_type_ IN VARCHAR2,
11.2183 + data_mart_ IN VARCHAR2 )
11.2184 +IS
11.2185 + attr_ VARCHAR2(32000);
11.2186 + objid_ VARCHAR2(2000);
11.2187 + objversion_ VARCHAR2(2000);
11.2188 + info_ VARCHAR2(2000);
11.2189 +BEGIN
11.2190 + General_SYS.Init_Method(lu_name_, '&PKG', 'Update_Versions__');
11.2191 + Client_SYS.Clear_Attr(attr_);
11.2192 + IF version_ = 'TAR' THEN
11.2193 + Client_SYS.Add_To_Attr('TARGET_VALUE', version_value_, attr_);
11.2194 + ELSIF version_ = 'ACT' THEN
11.2195 + Client_SYS.Add_To_Attr('ACTUAL_VALUE', version_value_, attr_);
11.2196 + ELSE
11.2197 + Client_SYS.Add_To_Attr(version_||'_VALUE', version_value_, attr_);
11.2198 + END IF;
11.2199 + IF data_mart_='TRUE' THEN
11.2200 + Bp_Scorecard_Fact_API.Get_Id_Version(objid_,objversion_,environment_,scorecard_,period_,object_type_,measure_);
11.2201 + Bp_Scorecard_Fact_API.Modify__(info_,objid_,objversion_,attr_,'DO');
11.2202 + ELSE
11.2203 + Scorecard_Value_API.Get_Id_Version(objid_,objversion_,environment_,scorecard_,period_,object_type_,measure_);
11.2204 + Scorecard_Value_API.Modify__(info_,objid_,objversion_,attr_,'DO');
11.2205 + END IF;
11.2206 +END Update_Versions__;
11.2207 +
11.2208 +PROCEDURE Publish__ (
11.2209 + environment_ IN VARCHAR2,
11.2210 + scorecard_ IN VARCHAR2,
11.2211 + measure_ IN VARCHAR2,
11.2212 + object_type_ IN VARCHAR2,
11.2213 + period_ IN VARCHAR2,
11.2214 + version_ IN VARCHAR2,
11.2215 + value_ IN NUMBER,
11.2216 + plan_type_ IN VARCHAR2 )
11.2217 +IS
11.2218 + attr_ VARCHAR2(32000);
11.2219 + objid_ VARCHAR2(2000);
11.2220 + objversion_ VARCHAR2(2000);
11.2221 + info_ VARCHAR2(2000);
11.2222 + flag_ VARCHAR2(5);
11.2223 + data_mart_enabled_ VARCHAR2(5);
11.2224 +BEGIN
11.2225 + General_SYS.Init_Method(lu_name_, '&PKG', 'Publish__');
11.2226 + flag_ := 'TRUE';
11.2227 + data_mart_enabled_:= Scorecard_Environment_API.Get_Data_Mart(environment_);
11.2228 +
11.2229 + IF data_mart_enabled_='TRUE' THEN
11.2230 + IF Bp_Scorecard_Fact_API.Check_Exist_By_Object(environment_,scorecard_,period_,object_type_,measure_)='FALSE' THEN
11.2231 + IF value_ IS NOT NULL THEN
11.2232 + Client_SYS.Clear_Attr(attr_);
11.2233 + Client_SYS.Add_To_Attr('ENVIRONMENT', environment_, attr_);
11.2234 + Client_SYS.Add_To_Attr('SCORECARD', scorecard_, attr_);
11.2235 + Client_SYS.Add_To_Attr('PERIOD', period_, attr_);
11.2236 + Client_SYS.Add_To_Attr(object_type_, measure_, attr_);
11.2237 + Bp_Scorecard_Fact_API.New__(info_,objid_,objversion_,attr_,'DO');
11.2238 + ELSE
11.2239 + flag_ := 'FALSE';
11.2240 + END IF;
11.2241 + END IF;
11.2242 + ELSE
11.2243 + IF Scorecard_Value_API.Check_Exist_By_Object(environment_,scorecard_,period_,object_type_,measure_)='FALSE' THEN
11.2244 + IF value_ IS NOT NULL THEN
11.2245 + Client_SYS.Clear_Attr(attr_);
11.2246 + Client_SYS.Add_To_Attr('ENVIRONMENT', environment_, attr_);
11.2247 + Client_SYS.Add_To_Attr('SCORECARD', scorecard_, attr_);
11.2248 + Client_SYS.Add_To_Attr('PERIOD', period_, attr_);
11.2249 + Client_SYS.Add_To_Attr(object_type_, measure_, attr_);
11.2250 + Scorecard_Value_API.New__(info_,objid_,objversion_,attr_,'DO');
11.2251 + ELSE
11.2252 + flag_ := 'FALSE';
11.2253 + END IF;
11.2254 + END IF;
11.2255 + END IF;
11.2256 +
11.2257 + IF (flag_ = 'TRUE' AND value_ IS NOT NULL) THEN
11.2258 + Update_Versions__(environment_,scorecard_,measure_ ,object_type_, period_ , version_, value_ , plan_type_ ,data_mart_enabled_);
11.2259 + END IF;
11.2260 + flag_ := 'FALSE';
11.2261 +END Publish__;
11.2262 +PROCEDURE Publish_Score__ (
11.2263 + environment_ IN VARCHAR2,
11.2264 + scorecard_ IN VARCHAR2,
11.2265 + publish_type_ IN VARCHAR2 )
11.2266 +IS
11.2267 + measure_ VARCHAR2(40);
11.2268 + version_ VARCHAR2(15);
11.2269 + target_tab_ VARCHAR2(30);
11.2270 +
11.2271 + --get measures and components for a specific environment_, scorecard_
11.2272 + CURSOR get_measure IS
11.2273 + select * from scorecard_input_value_tab
11.2274 + where scorecard = scorecard_
11.2275 + and environment = environment_
11.2276 + order by scorecard_object;
11.2277 +
11.2278 + -- get Id, version of a scorecard record by keys
11.2279 + CURSOR get_objid IS
11.2280 + select objid,objversion from scorecard
11.2281 + where scorecard = scorecard_
11.2282 + and environment = environment_;
11.2283 +
11.2284 + attr_ VARCHAR2(32000);
11.2285 + objid_ VARCHAR2(32000);
11.2286 + objversion_ VARCHAR2(32000);
11.2287 + info_ VARCHAR2(2000);
11.2288 + isScorecardPlan VARCHAR2(5);
11.2289 + isEnvPlan VARCHAR2(5);
11.2290 +BEGIN
11.2291 + General_SYS.Init_Method(lu_name_, '&PKG', 'Publish_Score__');
11.2292 + FOR get_rec_ in get_measure LOOP
11.2293 + isEnvPlan := 'FALSE';
11.2294 + isScorecardPlan := 'FALSE';
11.2295 +
11.2296 + measure_ := get_rec_.scorecard_object;
11.2297 + version_ := get_rec_.version;
11.2298 + if publish_type_ = 'ENV' then --plublish only environment plan data
11.2299 + isEnvPlan := MEASURE_VERSION_API.GET_ENVIRONMENT_PLANNING(version_,environment_);
11.2300 + else
11.2301 + isScorecardPlan := MEASURE_VERSION_API.Get_Scorecard_Planning (version_,environment_);
11.2302 + end if;
11.2303 +
11.2304 + if (isScorecardPlan = 'TRUE' or isEnvPlan = 'TRUE' ) then
11.2305 +
11.2306 + if get_rec_.p1_key is not null then
11.2307 + Publish__(environment_, scorecard_,measure_, get_rec_.object_type, get_rec_.p1_key, version_ , get_rec_.p1_value,publish_type_);
11.2308 + end if;
11.2309 + if get_rec_.p2_key is not null then
11.2310 + Publish__(environment_, scorecard_,measure_, get_rec_.object_type ,get_rec_.p2_key, version_ , get_rec_.p2_value,publish_type_);
11.2311 + end if;
11.2312 + if get_rec_.p3_key is not null then
11.2313 + Publish__(environment_, scorecard_,measure_, get_rec_.object_type ,get_rec_.p3_key, version_ , get_rec_.p3_value,publish_type_);
11.2314 + end if;
11.2315 + if get_rec_.p4_key is not null then
11.2316 + Publish__(environment_, scorecard_,measure_, get_rec_.object_type, get_rec_.p4_key, version_ , get_rec_.p4_value,publish_type_);
11.2317 + end if;
11.2318 + if get_rec_.p5_key is not null then
11.2319 + Publish__(environment_, scorecard_,measure_, get_rec_.object_type, get_rec_.p5_key, version_ , get_rec_.p5_value,publish_type_);
11.2320 + end if;
11.2321 + if get_rec_.p6_key is not null then
11.2322 + Publish__(environment_, scorecard_,measure_, get_rec_.object_type , get_rec_.p6_key, version_ , get_rec_.p6_value,publish_type_);
11.2323 + end if;
11.2324 + if get_rec_.p7_key is not null then
11.2325 + Publish__(environment_, scorecard_,measure_, get_rec_.object_type , get_rec_.p7_key, version_ , get_rec_.p7_value,publish_type_);
11.2326 + end if;
11.2327 + if get_rec_.p8_key is not null then
11.2328 + Publish__(environment_, scorecard_,measure_, get_rec_.object_type, get_rec_.p8_key, version_ , get_rec_.p8_value,publish_type_);
11.2329 + end if;
11.2330 + if get_rec_.p9_key is not null then
11.2331 + Publish__(environment_, scorecard_,measure_, get_rec_.object_type , get_rec_.p9_key, version_ , get_rec_.p9_value,publish_type_);
11.2332 + end if;
11.2333 + if get_rec_.p10_key is not null then
11.2334 + Publish__(environment_, scorecard_,measure_, get_rec_.object_type , get_rec_.p10_key, version_ , get_rec_.p10_value,publish_type_);
11.2335 + end if;
11.2336 + -- Call Id - 85775 Fix
11.2337 + if get_rec_.p11_key is not null then
11.2338 + Publish__(environment_, scorecard_,measure_, get_rec_.object_type , get_rec_.p11_key, version_ , get_rec_.p11_value,publish_type_);
11.2339 + end if;
11.2340 + if get_rec_.p12_key is not null then
11.2341 + Publish__(environment_, scorecard_,measure_, get_rec_.object_type , get_rec_.p12_key, version_ , get_rec_.p12_value,publish_type_);
11.2342 + end if;
11.2343 + end if;
11.2344 + END LOOP;
11.2345 + open get_objid;
11.2346 + fetch get_objid into objid_,objversion_;
11.2347 + close get_objid;
11.2348 +
11.2349 + SCORECARD_API.MODIFY__(info_,objid_,objversion_,attr_,'DO');
11.2350 +
11.2351 + isScorecardPlan := 'FALSE';
11.2352 +END Publish_Score__;
11.2353 +PROCEDURE Start_Publish_Environments__ (
11.2354 + attr_ IN VARCHAR2 )
11.2355 +IS
11.2356 + new_attr_ VARCHAR2(32000) := attr_;
11.2357 + desc_ VARCHAR2(2000);
11.2358 +BEGIN
11.2359 + General_SYS.Init_Method(lu_name_, '&PKG', 'Start_Publish_Environments__');
11.2360 + desc_ := Language_SYS.Translate_Constant (lu_name_, 'BGJOB_INPUTSSC:Publish Environment.');
11.2361 + Transaction_SYS.Deferred_Call ('Scorecard_Input_Value_API.Set_Publish_Environments__',new_attr_, desc_);
11.2362 +END Start_Publish_Environments__;
11.2363 +PROCEDURE Set_Publish_Environments__ (
11.2364 + attr_ IN VARCHAR2 )
11.2365 +IS
11.2366 + env VARCHAR2(20);
11.2367 +
11.2368 +BEGIN
11.2369 + General_SYS.Init_Method(lu_name_, '&PKG', 'Set_Publish_Environments__');
11.2370 + env:=Client_SYS.Get_Item_Value('ENVIRONMENT',attr_);
11.2371 + Publish_Environment(env);
11.2372 +
11.2373 +END Set_Publish_Environments__;
11.2374 +PROCEDURE Start_Publish_Scorecards__ (
11.2375 + attr_ IN VARCHAR2 )
11.2376 +IS
11.2377 + new_attr_ VARCHAR2(32000) := attr_;
11.2378 + desc_ VARCHAR2(2000);
11.2379 +BEGIN
11.2380 + General_SYS.Init_Method(lu_name_, '&PKG', 'Start_Publish_Scorecards__');
11.2381 + desc_ := Language_SYS.Translate_Constant (lu_name_, 'BGJOB_INPUTSSC:Publish Scorecards.');
11.2382 + Transaction_SYS.Deferred_Call ('Scorecard_Input_Value_API.Prepare_Scorecard_Publish__',new_attr_, desc_);
11.2383 +END Start_Publish_Scorecards__;
11.2384 +PROCEDURE Prepare_Scorecard_Publish__ (
11.2385 + attr_ IN VARCHAR2 )
11.2386 +IS
11.2387 + env_ VARCHAR2(2000);
11.2388 + scr_ VARCHAR2(2000);
11.2389 +BEGIN
11.2390 + General_SYS.Init_Method(lu_name_, '&PKG', 'Prepare_Scorecard_Publish__');
11.2391 + env_:=Client_SYS.Get_Item_Value('ENVIRONMENT',attr_);
11.2392 + scr_:=Client_SYS.Get_Item_Value('SCORECARD',attr_);
11.2393 + Set_Publish_Scorecards(env_,scr_);
11.2394 +END Prepare_Scorecard_Publish__;
11.2395 +PROCEDURE Plan__ (
11.2396 + info_ OUT VARCHAR2,
11.2397 + objid_ IN VARCHAR2,
11.2398 + objversion_ IN OUT VARCHAR2,
11.2399 + attr_ IN OUT VARCHAR2,
11.2400 + action_ IN VARCHAR2 )
11.2401 +IS
11.2402 + rec_ &TABLE%ROWTYPE;
11.2403 +BEGIN
11.2404 + General_SYS.Init_Method(lu_name_, '&PKG', 'Plan__');
11.2405 + IF (action_ = 'CHECK') THEN
11.2406 + NULL;
11.2407 + ELSIF (action_ = 'DO') THEN
11.2408 + rec_ := Lock_By_Id___(objid_, objversion_);
11.2409 + Finite_State_Machine___(rec_, 'Plan', attr_);
11.2410 + objversion_ := to_char(rec_.rowversion,'YYYYMMDDHH24MISS');
11.2411 + Finite_State_Add_To_Attr___(rec_, attr_);
11.2412 + END IF;
11.2413 + info_ := Client_SYS.Get_All_Info;
11.2414 +END Plan__;
11.2415 +-----------------------------------------------------------------------------
11.2416 +-------------------- LU SPECIFIC PROTECTED METHODS --------------------------
11.2417 +-----------------------------------------------------------------------------
11.2418 +
11.2419 +
11.2420 +-----------------------------------------------------------------------------
11.2421 +-------------------- LU SPECIFIC PUBLIC METHODS -----------------------------
11.2422 +-----------------------------------------------------------------------------
11.2423 +
11.2424 +
11.2425 +FUNCTION Get_Year (
11.2426 + environment_ IN VARCHAR2,
11.2427 + scorecard_ IN VARCHAR2,
11.2428 + year_ IN VARCHAR2,
11.2429 + version_ IN VARCHAR2,
11.2430 + scorecard_object_ IN VARCHAR2 ) RETURN VARCHAR2
11.2431 +IS
11.2432 + temp_ &TABLE..year%TYPE;
11.2433 + CURSOR get_attr IS
11.2434 + SELECT year
11.2435 + FROM &TABLE
11.2436 + WHERE environment = environment_
11.2437 + AND scorecard = scorecard_
11.2438 + AND year = year_
11.2439 + AND version = version_
11.2440 + AND scorecard_object = scorecard_object_;
11.2441 +BEGIN
11.2442 + OPEN get_attr;
11.2443 + FETCH get_attr INTO temp_;
11.2444 + CLOSE get_attr;
11.2445 + RETURN temp_;
11.2446 +END Get_Year;
11.2447 +FUNCTION Get_Distributed_Attr (
11.2448 + environment_ IN VARCHAR2,
11.2449 + scorecard_ IN VARCHAR2,
11.2450 + component_ IN VARCHAR2,
11.2451 + year_ IN VARCHAR2,
11.2452 + year_value_ IN NUMBER ) RETURN VARCHAR2
11.2453 +IS
11.2454 + period_ VARCHAR2(20);
11.2455 + version_val_ NUMBER;
11.2456 + distribute_string_ VARCHAR2(2000);
11.2457 + index_value_ NUMBER;
11.2458 + distribute_val_ NUMBER;
11.2459 + total_val_ NUMBER;
11.2460 + --distribute_str_ VARCHAR2(20);
11.2461 +
11.2462 + CURSOR version_cur_ IS
11.2463 + SELECT period,v4_value
11.2464 + FROM scorecard_value11
11.2465 + WHERE environment = environment_
11.2466 + AND scorecard = scorecard_
11.2467 + AND component = component_
11.2468 + AND year = year_;
11.2469 +
11.2470 + CURSOR total_cur_ IS
11.2471 + SELECT sum(v4_value)
11.2472 + FROM scorecard_value11
11.2473 + WHERE environment = environment_
11.2474 + AND scorecard = scorecard_
11.2475 + AND component = component_
11.2476 + AND year = year_;
11.2477 +BEGIN
11.2478 + General_SYS.Init_Method(lu_name_, '&PKG', 'Get_Distributed_Attr');
11.2479 + OPEN total_cur_;
11.2480 + FETCH total_cur_ INTO total_val_;
11.2481 + CLOSE total_cur_;
11.2482 + IF total_val_ IS NULL THEN
11.2483 + Error_SYS.Appl_General(lu_name_,'SCDISVAL : There are no values for version6');
11.2484 + END IF;
11.2485 +
11.2486 + --distribute_string_ := "";
11.2487 +
11.2488 + FOR temp_ IN version_cur_ LOOP
11.2489 +
11.2490 + version_val_ := temp_.v4_value;
11.2491 + period_ := temp_.period;
11.2492 + index_value_ := scorecard_index_api.Get_Value(environment_,period_,'k_index');
11.2493 + distribute_val_ := (version_val_/total_val_)*year_value_*index_value_;
11.2494 + distribute_string_ := distribute_string_ || '^' ||distribute_val_;
11.2495 +
11.2496 + END LOOP;
11.2497 + RETURN distribute_string_;
11.2498 +END Get_Distributed_Attr;
11.2499 +FUNCTION Get_Action (
11.2500 + environment_ IN VARCHAR2,
11.2501 + scorecard_ IN VARCHAR2,
11.2502 + year_ IN VARCHAR2,
11.2503 + version_ IN VARCHAR2,
11.2504 + scorecard_object_ IN VARCHAR2 ) RETURN VARCHAR2
11.2505 +IS
11.2506 + temp_ &TABLE..action%TYPE;
11.2507 + CURSOR get_attr IS
11.2508 + SELECT action
11.2509 + FROM &TABLE
11.2510 + WHERE environment = environment_
11.2511 + AND scorecard = scorecard_
11.2512 + AND year = year_
11.2513 + AND version = version_
11.2514 + AND scorecard_object = scorecard_object_;
11.2515 +BEGIN
11.2516 + OPEN get_attr;
11.2517 + FETCH get_attr INTO temp_;
11.2518 + CLOSE get_attr;
11.2519 + RETURN temp_;
11.2520 +END Get_Action;
11.2521 +FUNCTION Get_Mea_State_Change_Date (
11.2522 + environment_ IN VARCHAR2,
11.2523 + scorecard_ IN VARCHAR2,
11.2524 + year_ IN VARCHAR2,
11.2525 + version_ IN VARCHAR2,
11.2526 + scorecard_object_ IN VARCHAR2 ) RETURN DATE
11.2527 +IS
11.2528 + temp_ &TABLE..mea_state_change_date%TYPE;
11.2529 + CURSOR get_attr IS
11.2530 + SELECT mea_state_change_date
11.2531 + FROM &TABLE
11.2532 + WHERE environment = environment_
11.2533 + AND scorecard = scorecard_
11.2534 + AND year = year_
11.2535 + AND version = version_
11.2536 + AND scorecard_object = scorecard_object_;
11.2537 +BEGIN
11.2538 + OPEN get_attr;
11.2539 + FETCH get_attr INTO temp_;
11.2540 + CLOSE get_attr;
11.2541 + RETURN temp_;
11.2542 +END Get_Mea_State_Change_Date;
11.2543 +FUNCTION Get_Budget_Version (
11.2544 + environment_ IN VARCHAR2,
11.2545 + scorecard_ IN VARCHAR2,
11.2546 + year_ IN VARCHAR2,
11.2547 + version_ IN VARCHAR2,
11.2548 + scorecard_object_ IN VARCHAR2 ) RETURN VARCHAR2
11.2549 +IS
11.2550 + temp_ &TABLE..budget_version%TYPE;
11.2551 + CURSOR get_attr IS
11.2552 + SELECT budget_version
11.2553 + FROM &TABLE
11.2554 + WHERE environment = environment_
11.2555 + AND scorecard = scorecard_
11.2556 + AND year = year_
11.2557 + AND version = version_
11.2558 + AND scorecard_object = scorecard_object_;
11.2559 +BEGIN
11.2560 + OPEN get_attr;
11.2561 + FETCH get_attr INTO temp_;
11.2562 + CLOSE get_attr;
11.2563 + RETURN temp_;
11.2564 +END Get_Budget_Version;
11.2565 +PROCEDURE Update_Sales_Values (
11.2566 + environment_ IN VARCHAR2,
11.2567 + scorecard_ IN VARCHAR2,
11.2568 + year_ IN VARCHAR2,
11.2569 + version_ IN VARCHAR2,
11.2570 + component_ IN VARCHAR2,
11.2571 + year_value_ IN NUMBER,
11.2572 + period_count_ IN NUMBER,
11.2573 + from_where_ IN VARCHAR2,
11.2574 + action_value_ IN VARCHAR2 )
11.2575 +IS
11.2576 + period_ VARCHAR2(20);
11.2577 + version_val_ NUMBER;
11.2578 + distribute_string_ VARCHAR2(2000);
11.2579 + index_value_ NUMBER;
11.2580 + distribute_val_ NUMBER;
11.2581 + total_val_ NUMBER;
11.2582 + total_dist_val_ NUMBER;
11.2583 + avarage_val_ NUMBER;
11.2584 + count_null_ NUMBER;
11.2585 + total_index_ NUMBER;
11.2586 + period_index_ VARCHAR2(20);
11.2587 + avarage_index_val_ NUMBER;
11.2588 + distribute_index_val_ NUMBER;
11.2589 + index_val_ NUMBER;
11.2590 +
11.2591 + count_ NUMBER;
11.2592 + dist_type_ VARCHAR2(30);
11.2593 + dist_index_ VARCHAR2(20);
11.2594 + dist_version_ VARCHAR2(20);
11.2595 + dist_ver_ VARCHAR2(10);
11.2596 + dist_logic_ VARCHAR2(10);
11.2597 + temp1_ VARCHAR2(1000);
11.2598 + temp2_ VARCHAR2(1000);
11.2599 +
11.2600 + TYPE RefCurTyp IS REF CURSOR;
11.2601 +
11.2602 + version_cur_ RefCurTyp;
11.2603 + total_cur_ RefCurTyp;
11.2604 +
11.2605 + TYPE Val_Array_Type IS TABLE OF NUMBER
11.2606 + INDEX BY BINARY_INTEGER;
11.2607 +
11.2608 + val_arr_ Val_Array_Type;
11.2609 + rec_ SCORECARD_INPUT_VALUE_TAB%ROWTYPE;
11.2610 +
11.2611 + CURSOR total_index_cur_ IS
11.2612 + SELECT SUM(value)
11.2613 + FROM scorecard_index_tab
11.2614 + WHERE environment = environment_
11.2615 + AND index_type = dist_index_;
11.2616 +
11.2617 + CURSOR get_period IS
11.2618 + SELECT period
11.2619 + FROM scorecard_period_tab
11.2620 + WHERE environment = environment_
11.2621 + AND year = year_
11.2622 + ORDER BY end_date;
11.2623 +
11.2624 + -- Bug 65540, begin
11.2625 + final_year_value_ NUMBER;
11.2626 + measure_format_ NUMBER;
11.2627 + -- Bug 65540, end
11.2628 +
11.2629 +
11.2630 +BEGIN
11.2631 + General_SYS.Init_Method(lu_name_, '&PKG', 'Update_Sales_Values');
11.2632 + rec_ := Lock_By_Keys___(environment_,scorecard_,year_,version_,component_);
11.2633 + count_ := 0;
11.2634 + --val_arr_ Val_Array_Type;
11.2635 +
11.2636 + IF (from_where_ = 'FROM_COMPONENT') THEN
11.2637 +
11.2638 + dist_type_ := measure_type_api.Encode(scorecard_Measure_api.Get_Measure_type(component_));
11.2639 + dist_index_ := scorecard_Structure_api.Get_Distribution_Index(scorecard_,component_,environment_,Scorecard_Level_Type_api.Decode('COMPONENT'));
11.2640 + dist_ver_ := UPPER(scorecard_Structure_api.Get_Distribution_Version(scorecard_,component_,environment_,Scorecard_Level_Type_api.Decode('COMPONENT')));
11.2641 + dist_logic_ := scorecard_Structure_api.Get_Dist_Logic_Db(scorecard_,component_,environment_,'COMPONENT');
11.2642 +
11.2643 + END IF;
11.2644 +
11.2645 + IF (from_where_ = 'FROM_MEASURE') THEN
11.2646 +
11.2647 + dist_type_ := measure_type_api.Encode(scorecard_Measure_api.Get_Measure_type(component_));
11.2648 + dist_index_ := scorecard_Structure_api.Get_Distribution_Index(scorecard_,component_,environment_,Scorecard_Level_Type_api.Decode('MEASURE'));
11.2649 + dist_ver_ := UPPER(scorecard_Structure_api.Get_Distribution_Version(scorecard_,component_,environment_,Scorecard_Level_Type_api.Decode('MEASURE')));
11.2650 + dist_logic_ := scorecard_Structure_api.Get_Dist_Logic_Db(scorecard_,component_,environment_,'MEASURE');
11.2651 +
11.2652 + END IF;
11.2653 +
11.2654 + IF (dist_logic_ = 'INDEX') THEN
11.2655 +
11.2656 + OPEN total_index_cur_;
11.2657 + FETCH total_index_cur_ INTO total_index_;
11.2658 + CLOSE total_index_cur_;
11.2659 +
11.2660 + IF (total_index_ IS NULL) THEN
11.2661 + Error_SYS.Appl_General(lu_name_,'SCDISVAL : There are no values for indexes :P1',dist_index_);
11.2662 + END IF;
11.2663 +
11.2664 + total_dist_val_ := 0;
11.2665 + avarage_index_val_ := 0;
11.2666 + distribute_index_val_ := 0;
11.2667 +
11.2668 + OPEN get_period;
11.2669 + LOOP
11.2670 + FETCH get_period INTO period_index_;
11.2671 + EXIT WHEN get_period%NOTFOUND;
11.2672 + count_ := count_+1;
11.2673 + index_value_ := scorecard_index_api.Get_Value(environment_,period_index_,dist_index_);
11.2674 + IF (index_value_ IS NULL) THEN
11.2675 + CLOSE get_period;
11.2676 + Error_SYS.Appl_General(lu_name_,'SCDISNOINDEXVAL1 : There are no values for index :P1',dist_index_);
11.2677 + END IF;
11.2678 + IF (dist_type_ = 'PERCENTAGE') THEN
11.2679 + avarage_index_val_ := total_index_/period_count_;
11.2680 + distribute_index_val_ := (index_value_/avarage_index_val_)*year_value_;
11.2681 + ELSIF (dist_type_ = 'VALUE') THEN
11.2682 + distribute_index_val_ := (index_value_/total_index_)*year_value_;
11.2683 + END IF;
11.2684 + val_arr_(count_) := distribute_index_val_;
11.2685 + total_dist_val_ := total_dist_val_ + distribute_index_val_;
11.2686 + END LOOP;
11.2687 + CLOSE get_period;
11.2688 + ELSIF (dist_logic_ != 'INDEX') THEN
11.2689 + IF (dist_ver_ = 'ACT') THEN
11.2690 + dist_version_ := 'actual_value';
11.2691 + ELSIF (dist_ver_ = 'TAR') THEN
11.2692 + dist_version_ := 'target_value';
11.2693 + ELSIF (dist_ver_ = 'V1') THEN
11.2694 + dist_version_ := 'v1_value';
11.2695 + ELSIF (dist_ver_ = 'V2') THEN
11.2696 + dist_version_ := 'v2_value';
11.2697 + ELSIF (dist_ver_ = 'V3') THEN
11.2698 + dist_version_ := 'v3_value';
11.2699 + ELSIF (dist_ver_ = 'V4') THEN
11.2700 + dist_version_ := 'v4_value';
11.2701 + ELSIF (dist_ver_ = 'V5') THEN
11.2702 + dist_version_ := 'v5_value';
11.2703 + ELSIF (dist_ver_ = 'V6') THEN
11.2704 + dist_version_ := 'v6_value';
11.2705 + ELSIF (dist_ver_ = 'V7') THEN
11.2706 + dist_version_ := 'v7_value';
11.2707 + ELSIF (dist_ver_ = 'V8') THEN
11.2708 + dist_version_ := 'v8_value';
11.2709 + ELSIF (dist_ver_ = 'V9') THEN
11.2710 + dist_version_ := 'v9_value';
11.2711 + ELSIF (dist_ver_ = 'V10') THEN
11.2712 + dist_version_ := 'v10_value';
11.2713 + END IF;
11.2714 +
11.2715 + IF( from_where_= 'FROM_COMPONENT') THEN
11.2716 + temp1_ := 'SELECT period,'|| dist_version_ ||'
11.2717 + FROM scorecard_value11
11.2718 + WHERE environment= :p_environment
11.2719 + AND scorecard = :p_scorecard
11.2720 + AND component = :p_component
11.2721 + AND year = :p_year
11.2722 + ORDER BY end_date';
11.2723 +
11.2724 + temp2_ := 'SELECT sum('|| dist_version_ ||') '||'
11.2725 + FROM scorecard_value11
11.2726 + WHERE environment= :p_environment
11.2727 + AND scorecard = :p_scorecard
11.2728 + AND component = :p_component
11.2729 + AND year = :p_year ';
11.2730 + END IF;
11.2731 +
11.2732 + IF( from_where_= 'FROM_MEASURE') THEN
11.2733 + temp1_ := 'SELECT period,'|| dist_version_ ||'
11.2734 + FROM scorecard_value11
11.2735 + WHERE environment= :p_environment
11.2736 + AND scorecard = :p_scorecard
11.2737 + AND measure = :p_component
11.2738 + AND year = :p_year
11.2739 + ORDER BY end_date';
11.2740 +
11.2741 + temp2_ := 'SELECT sum('|| dist_version_ ||') '||'
11.2742 + FROM scorecard_value11
11.2743 + WHERE environment= :p_environment
11.2744 + AND scorecard = :p_scorecard
11.2745 + AND measure = :p_component
11.2746 + AND year = :p_year ';
11.2747 + END IF;
11.2748 +
11.2749 + -- ifs_assert_safe shsalk 20060117
11.2750 + OPEN total_cur_ FOR temp2_ USING environment_,scorecard_,component_,year_;
11.2751 + FETCH total_cur_ INTO total_val_;
11.2752 + CLOSE total_cur_;
11.2753 +
11.2754 + IF (total_val_ IS NULL) THEN
11.2755 + Error_SYS.Appl_General(lu_name_,'SCDISVAL : There are no values for distribution version :P1',dist_ver_);
11.2756 + END IF;
11.2757 +
11.2758 + total_dist_val_ := 0;
11.2759 + avarage_val_ := 0;
11.2760 + -- ifs_assert_safe shsalk 20060117
11.2761 + OPEN version_cur_ FOR temp1_ USING environment_,scorecard_,component_,year_;
11.2762 + LOOP
11.2763 + FETCH version_cur_ INTO period_,version_val_;
11.2764 + EXIT WHEN version_cur_%NOTFOUND;
11.2765 + count_ := count_+1;
11.2766 + IF (version_val_ IS NULL) THEN
11.2767 + CLOSE version_cur_;
11.2768 + Error_SYS.Appl_General(lu_name_,'SCDISNOVAL1 : There are no values for distribution version :P1',dist_ver_);
11.2769 + ELSE
11.2770 + IF (dist_logic_ = 'SYB') THEN
11.2771 + index_value_ := scorecard_index_api.Get_Value(environment_,period_,dist_index_);
11.2772 + IF (index_value_ IS NULL) THEN
11.2773 + CLOSE version_cur_;
11.2774 + Error_SYS.Appl_General(lu_name_,'SCDISNOINDEXVAL1 : There are no values for distribution index :P1',dist_index_);
11.2775 + END IF;
11.2776 + IF (dist_type_ = 'PERCENTAGE') THEN
11.2777 + avarage_val_ := total_val_/period_count_;
11.2778 + distribute_val_ := (version_val_/avarage_val_)*year_value_*index_value_;
11.2779 + ELSIF (dist_type_ = 'VALUE') THEN
11.2780 + distribute_val_ := (version_val_/total_val_)*year_value_*index_value_;
11.2781 + END IF;
11.2782 + ELSIF (dist_logic_ = 'VERSION') THEN
11.2783 + IF (dist_type_ = 'PERCENTAGE') THEN
11.2784 + avarage_val_ := total_val_/period_count_;
11.2785 + distribute_val_ := (version_val_/avarage_val_)*year_value_;
11.2786 + ELSIF (dist_type_ = 'VALUE') THEN
11.2787 + distribute_val_ := (version_val_/total_val_)*year_value_;
11.2788 + END IF;
11.2789 + END IF;
11.2790 + END IF;
11.2791 +
11.2792 + val_arr_(count_) := distribute_val_;
11.2793 + total_dist_val_ := total_dist_val_ + distribute_val_;
11.2794 + END LOOP;
11.2795 + CLOSE version_cur_;
11.2796 + END IF;
11.2797 +
11.2798 +
11.2799 + measure_format_ := TO_NUMBER(Scorecard_Measure_API.Get_Measure_Format(component_));
11.2800 +
11.2801 + final_year_value_ := year_value_ * measure_format_;
11.2802 +
11.2803 + IF (dist_logic_ != 'VERSION') THEN
11.2804 +
11.2805 + IF (dist_type_ = 'PERCENTAGE') THEN
11.2806 + total_dist_val_ := total_dist_val_/count_;
11.2807 + END IF;
11.2808 +
11.2809 + IF (year_value_ != total_dist_val_) THEN
11.2810 + FOR i IN 1..count_ LOOP
11.2811 + val_arr_(i) := (val_arr_(i)/total_dist_val_)*year_value_ * measure_format_;
11.2812 + END LOOP;
11.2813 + END IF;
11.2814 + END IF;
11.2815 +
11.2816 + IF (count_= 1) THEN
11.2817 + UPDATE scorecard_input_value_tab
11.2818 + SET action = action_value_,
11.2819 + year_value = final_year_value_,
11.2820 + p1_value = val_arr_(1)
11.2821 + WHERE
11.2822 + environment = environment_
11.2823 + AND
11.2824 + scorecard = scorecard_
11.2825 + AND
11.2826 + year = year_
11.2827 + AND
11.2828 + version = version_
11.2829 + AND
11.2830 + scorecard_object = component_;
11.2831 + ELSIF (count_= 2) THEN
11.2832 + UPDATE scorecard_input_value_tab
11.2833 + SET action = action_value_,
11.2834 + year_value = final_year_value_,
11.2835 + p1_value = val_arr_(1),
11.2836 + p2_value = val_arr_(2)
11.2837 + WHERE
11.2838 + environment = environment_
11.2839 + AND
11.2840 + scorecard = scorecard_
11.2841 + AND
11.2842 + year = year_
11.2843 + AND
11.2844 + version = version_
11.2845 + AND
11.2846 + scorecard_object = component_;
11.2847 + ELSIF (count_= 3) THEN
11.2848 + UPDATE scorecard_input_value_tab
11.2849 + SET action = action_value_,
11.2850 + year_value = final_year_value_,
11.2851 + p1_value = val_arr_(1),
11.2852 + p2_value = val_arr_(2),
11.2853 + p3_value = val_arr_(3)
11.2854 + WHERE
11.2855 + environment = environment_
11.2856 + AND
11.2857 + scorecard = scorecard_
11.2858 + AND
11.2859 + year = year_
11.2860 + AND
11.2861 + version = version_
11.2862 + AND
11.2863 + scorecard_object = component_;
11.2864 + ELSIF (count_= 4) THEN
11.2865 + UPDATE scorecard_input_value_tab
11.2866 + SET action = action_value_,
11.2867 + year_value = final_year_value_,
11.2868 + p1_value = val_arr_(1),
11.2869 + p2_value = val_arr_(2),
11.2870 + p3_value = val_arr_(3),
11.2871 + p4_value = val_arr_(4)
11.2872 + WHERE
11.2873 + environment = environment_
11.2874 + AND
11.2875 + scorecard = scorecard_
11.2876 + AND
11.2877 + year = year_
11.2878 + AND
11.2879 + version = version_
11.2880 + AND
11.2881 + scorecard_object = component_;
11.2882 + ELSIF (count_= 5) THEN
11.2883 + UPDATE scorecard_input_value_tab
11.2884 + SET action = final_year_value_,
11.2885 + year_value = year_value_,
11.2886 + p1_value = val_arr_(1),
11.2887 + p2_value = val_arr_(2),
11.2888 + p3_value = val_arr_(3),
11.2889 + p4_value = val_arr_(4),
11.2890 + p5_value = val_arr_(5)
11.2891 + WHERE
11.2892 + environment = environment_
11.2893 + AND
11.2894 + scorecard = scorecard_
11.2895 + AND
11.2896 + year = year_
11.2897 + AND
11.2898 + version = version_
11.2899 + AND
11.2900 + scorecard_object = component_;
11.2901 + ELSIF (count_= 6) THEN
11.2902 + UPDATE scorecard_input_value_tab
11.2903 + SET action = action_value_,
11.2904 + year_value = final_year_value_,
11.2905 + p1_value = val_arr_(1),
11.2906 + p2_value = val_arr_(2),
11.2907 + p3_value = val_arr_(3),
11.2908 + p4_value = val_arr_(4),
11.2909 + p5_value = val_arr_(5),
11.2910 + p6_value = val_arr_(6)
11.2911 + WHERE
11.2912 + environment = environment_
11.2913 + AND
11.2914 + scorecard = scorecard_
11.2915 + AND
11.2916 + year = year_
11.2917 + AND
11.2918 + version = version_
11.2919 + AND
11.2920 + scorecard_object = component_;
11.2921 + ELSIF (count_= 7) THEN
11.2922 + UPDATE scorecard_input_value_tab
11.2923 + SET action = action_value_,
11.2924 + year_value = final_year_value_,
11.2925 + p1_value = val_arr_(1),
11.2926 + p2_value = val_arr_(2),
11.2927 + p3_value = val_arr_(3),
11.2928 + p4_value = val_arr_(4),
11.2929 + p5_value = val_arr_(5),
11.2930 + p6_value = val_arr_(6),
11.2931 + p7_value = val_arr_(7)
11.2932 + WHERE
11.2933 + environment = environment_
11.2934 + AND
11.2935 + scorecard = scorecard_
11.2936 + AND
11.2937 + year = year_
11.2938 + AND
11.2939 + version = version_
11.2940 + AND
11.2941 + scorecard_object = component_;
11.2942 + ELSIF (count_= 8) THEN
11.2943 + UPDATE scorecard_input_value_tab
11.2944 + SET action = action_value_,
11.2945 + year_value = final_year_value_,
11.2946 + p1_value = val_arr_(1),
11.2947 + p2_value = val_arr_(2),
11.2948 + p3_value = val_arr_(3),
11.2949 + p4_value = val_arr_(4),
11.2950 + p5_value = val_arr_(5),
11.2951 + p6_value = val_arr_(6),
11.2952 + p7_value = val_arr_(7),
11.2953 + p8_value = val_arr_(8)
11.2954 + WHERE
11.2955 + environment = environment_
11.2956 + AND
11.2957 + scorecard = scorecard_
11.2958 + AND
11.2959 + year = year_
11.2960 + AND
11.2961 + version = version_
11.2962 + AND
11.2963 + scorecard_object = component_;
11.2964 + ELSIF (count_= 9) THEN
11.2965 + UPDATE scorecard_input_value_tab
11.2966 + SET action = action_value_,
11.2967 + year_value = final_year_value_,
11.2968 + p1_value = val_arr_(1),
11.2969 + p2_value = val_arr_(2),
11.2970 + p3_value = val_arr_(3),
11.2971 + p4_value = val_arr_(4),
11.2972 + p5_value = val_arr_(5),
11.2973 + p6_value = val_arr_(6),
11.2974 + p7_value = val_arr_(7),
11.2975 + p8_value = val_arr_(8),
11.2976 + p9_value = val_arr_(9)
11.2977 + WHERE
11.2978 + environment = environment_
11.2979 + AND
11.2980 + scorecard = scorecard_
11.2981 + AND
11.2982 + year = year_
11.2983 + AND
11.2984 + version = version_
11.2985 + AND
11.2986 + scorecard_object = component_;
11.2987 + ELSIF (count_= 10) THEN
11.2988 + UPDATE scorecard_input_value_tab
11.2989 + SET action = action_value_,
11.2990 + year_value = final_year_value_,
11.2991 + p1_value = val_arr_(1),
11.2992 + p2_value = val_arr_(2),
11.2993 + p3_value = val_arr_(3),
11.2994 + p4_value = val_arr_(4),
11.2995 + p5_value = val_arr_(5),
11.2996 + p6_value = val_arr_(6),
11.2997 + p7_value = val_arr_(7),
11.2998 + p8_value = val_arr_(8),
11.2999 + p9_value = val_arr_(9),
11.3000 + p10_value = val_arr_(10)
11.3001 + WHERE
11.3002 + environment = environment_
11.3003 + AND
11.3004 + scorecard = scorecard_
11.3005 + AND
11.3006 + year = year_
11.3007 + AND
11.3008 + version = version_
11.3009 + AND
11.3010 + scorecard_object = component_;
11.3011 + ELSIF (count_= 11) THEN
11.3012 + UPDATE scorecard_input_value_tab
11.3013 + SET action = action_value_,
11.3014 + year_value = final_year_value_,
11.3015 + p1_value = val_arr_(1),
11.3016 + p2_value = val_arr_(2),
11.3017 + p3_value = val_arr_(3),
11.3018 + p4_value = val_arr_(4),
11.3019 + p5_value = val_arr_(5),
11.3020 + p6_value = val_arr_(6),
11.3021 + p7_value = val_arr_(7),
11.3022 + p8_value = val_arr_(8),
11.3023 + p9_value = val_arr_(9),
11.3024 + p10_value = val_arr_(10),
11.3025 + p11_value = val_arr_(11)
11.3026 + WHERE
11.3027 + environment = environment_
11.3028 + AND
11.3029 + scorecard = scorecard_
11.3030 + AND
11.3031 + year = year_
11.3032 + AND
11.3033 + version = version_
11.3034 + AND
11.3035 + scorecard_object = component_;
11.3036 + ELSIF (count_= 12) THEN
11.3037 + UPDATE scorecard_input_value_tab
11.3038 + SET action = action_value_,
11.3039 + year_value = final_year_value_,
11.3040 + p1_value = val_arr_(1),
11.3041 + p2_value = val_arr_(2),
11.3042 + p3_value = val_arr_(3),
11.3043 + p4_value = val_arr_(4),
11.3044 + p5_value = val_arr_(5),
11.3045 + p6_value = val_arr_(6),
11.3046 + p7_value = val_arr_(7),
11.3047 + p8_value = val_arr_(8),
11.3048 + p9_value = val_arr_(9),
11.3049 + p10_value = val_arr_(10),
11.3050 + p11_value = val_arr_(11),
11.3051 + p12_value = val_arr_(12)
11.3052 + WHERE
11.3053 + environment = environment_
11.3054 + AND
11.3055 + scorecard = scorecard_
11.3056 + AND
11.3057 + year = year_
11.3058 + AND
11.3059 + version = version_
11.3060 + AND
11.3061 + scorecard_object = component_;
11.3062 + END IF;
11.3063 +
11.3064 +END Update_Sales_Values;
11.3065 +PROCEDURE Update_Distributed_Values (
11.3066 + environment_ IN VARCHAR2,
11.3067 + scorecard_ IN VARCHAR2,
11.3068 + year_ IN VARCHAR2,
11.3069 + version_ IN VARCHAR2,
11.3070 + component_ IN VARCHAR2,
11.3071 + year_value_ IN NUMBER,
11.3072 + period_count_ IN NUMBER,
11.3073 + from_where_ IN VARCHAR2,
11.3074 + action_value_ IN VARCHAR2 )
11.3075 +IS
11.3076 + dist_type_ VARCHAR2(30);
11.3077 + dist_logic_ VARCHAR2(10);
11.3078 + mean_value_ NUMBER;
11.3079 + reference_type_ VARCHAR2(10);
11.3080 + ref_type_ VARCHAR2(10);
11.3081 + rec_ SCORECARD_INPUT_VALUE_TAB%ROWTYPE;
11.3082 + measure_format_ NUMBER;
11.3083 + final_year_value_ NUMBER;
11.3084 +
11.3085 +BEGIN
11.3086 + General_SYS.Init_Method(lu_name_, '&PKG', 'Update_Distributed_Values');
11.3087 + rec_ := Lock_By_Keys___(environment_,scorecard_,year_,version_,component_);
11.3088 +
11.3089 + IF (action_value_ = 'TRUE') THEN
11.3090 +
11.3091 + measure_format_ := TO_NUMBER(Scorecard_Measure_API.Get_Measure_Format(component_));
11.3092 + IF(from_where_ = 'FROM_COMPONENT') THEN
11.3093 + reference_type_ := scorecard_structure_api.Get_Planning_Type_Db(scorecard_,component_,environment_,'COMPONENT');
11.3094 + ref_type_ := NVL(reference_type_,'BASE');
11.3095 + END IF;
11.3096 +
11.3097 + IF(from_where_ = 'FROM_MEASURE') THEN
11.3098 + ref_type_ := 'BASE';
11.3099 + END IF;
11.3100 +
11.3101 + IF NOT(ref_type_ = 'REFERENCE') THEN
11.3102 +
11.3103 + IF (from_where_ = 'FROM_COMPONENT') THEN
11.3104 +
11.3105 + dist_type_ := measure_type_api.Encode(scorecard_Measure_api.Get_Measure_type(component_));
11.3106 + dist_logic_ := scorecard_Structure_api.Get_Dist_Logic_Db(scorecard_,component_,environment_,'COMPONENT');
11.3107 +
11.3108 + END IF;
11.3109 +
11.3110 + IF (from_where_ = 'FROM_MEASURE') THEN
11.3111 +
11.3112 + dist_type_ := measure_type_api.Encode(scorecard_Measure_api.Get_Measure_type(component_));
11.3113 + dist_logic_ := scorecard_Structure_api.Get_Dist_Logic_Db(scorecard_,component_,environment_,'MEASURE');
11.3114 +
11.3115 + END IF;
11.3116 +
11.3117 + final_year_value_ := year_value_ * measure_format_;
11.3118 + IF (year_value_ IS NULL) THEN
11.3119 + UPDATE scorecard_input_value_tab
11.3120 + SET year_value = final_year_value_
11.3121 + WHERE
11.3122 + environment = environment_
11.3123 + AND
11.3124 + scorecard = scorecard_
11.3125 + AND
11.3126 + year = year_
11.3127 + AND
11.3128 + version = version_
11.3129 + AND
11.3130 + scorecard_object = component_;
11.3131 + ELSE
11.3132 + IF (dist_type_ = 'PERCENTAGE' AND dist_logic_ IS NULL) THEN
11.3133 + IF (period_count_ = 1) THEN
11.3134 + UPDATE scorecard_input_value_tab
11.3135 + SET action = final_year_value_,
11.3136 + year_value = final_year_value_,
11.3137 + p1_value = final_year_value_
11.3138 + WHERE
11.3139 + environment = environment_
11.3140 + AND
11.3141 + scorecard = scorecard_
11.3142 + AND
11.3143 + year = year_
11.3144 + AND
11.3145 + version = version_
11.3146 + AND
11.3147 + scorecard_object = component_;
11.3148 + ELSIF (period_count_ = 2) THEN
11.3149 + UPDATE scorecard_input_value_tab
11.3150 + SET action = action_value_,
11.3151 + year_value = final_year_value_,
11.3152 + p1_value = final_year_value_,
11.3153 + p2_value = final_year_value_
11.3154 + WHERE
11.3155 + environment = environment_
11.3156 + AND
11.3157 + scorecard = scorecard_
11.3158 + AND
11.3159 + year = year_
11.3160 + AND
11.3161 + version = version_
11.3162 + AND
11.3163 + scorecard_object = component_;
11.3164 + ELSIF (period_count_ = 3) THEN
11.3165 + UPDATE scorecard_input_value_tab
11.3166 + SET action = action_value_,
11.3167 + year_value = final_year_value_,
11.3168 + p1_value = final_year_value_,
11.3169 + p2_value = final_year_value_,
11.3170 + p3_value = final_year_value_
11.3171 + WHERE
11.3172 + environment = environment_
11.3173 + AND
11.3174 + scorecard = scorecard_
11.3175 + AND
11.3176 + year = year_
11.3177 + AND
11.3178 + version = version_
11.3179 + AND
11.3180 + scorecard_object = component_;
11.3181 + ELSIF (period_count_ = 4) THEN
11.3182 + UPDATE scorecard_input_value_tab
11.3183 + SET action = action_value_,
11.3184 + year_value = final_year_value_,
11.3185 + p1_value = final_year_value_,
11.3186 + p2_value = final_year_value_,
11.3187 + p3_value = final_year_value_,
11.3188 + p4_value = final_year_value_
11.3189 + WHERE
11.3190 + environment = environment_
11.3191 + AND
11.3192 + scorecard = scorecard_
11.3193 + AND
11.3194 + year = year_
11.3195 + AND
11.3196 + version = version_
11.3197 + AND
11.3198 + scorecard_object = component_;
11.3199 + ELSIF (period_count_ = 5) THEN
11.3200 + UPDATE scorecard_input_value_tab
11.3201 + SET action = action_value_,
11.3202 + year_value = final_year_value_,
11.3203 + p1_value = final_year_value_,
11.3204 + p2_value = final_year_value_,
11.3205 + p3_value = final_year_value_,
11.3206 + p4_value = final_year_value_,
11.3207 + p5_value = final_year_value_
11.3208 + WHERE
11.3209 + environment = environment_
11.3210 + AND
11.3211 + scorecard = scorecard_
11.3212 + AND
11.3213 + year = year_
11.3214 + AND
11.3215 + version = version_
11.3216 + AND
11.3217 + scorecard_object = component_;
11.3218 + ELSIF (period_count_ = 6) THEN
11.3219 + UPDATE scorecard_input_value_tab
11.3220 + SET action = action_value_,
11.3221 + year_value = final_year_value_,
11.3222 + p1_value = final_year_value_,
11.3223 + p2_value = final_year_value_,
11.3224 + p3_value = final_year_value_,
11.3225 + p4_value = final_year_value_,
11.3226 + p5_value = final_year_value_,
11.3227 + p6_value = final_year_value_
11.3228 + WHERE
11.3229 + environment = environment_
11.3230 + AND
11.3231 + scorecard = scorecard_
11.3232 + AND
11.3233 + year = year_
11.3234 + AND
11.3235 + version = version_
11.3236 + AND
11.3237 + scorecard_object = component_;
11.3238 + ELSIF (period_count_ = 7) THEN
11.3239 + UPDATE scorecard_input_value_tab
11.3240 + SET action = action_value_,
11.3241 + year_value = final_year_value_,
11.3242 + p1_value = final_year_value_,
11.3243 + p2_value = final_year_value_,
11.3244 + p3_value = final_year_value_,
11.3245 + p4_value = final_year_value_,
11.3246 + p5_value = final_year_value_,
11.3247 + p6_value = final_year_value_,
11.3248 + p7_value = final_year_value_
11.3249 + WHERE
11.3250 + environment = environment_
11.3251 + AND
11.3252 + scorecard = scorecard_
11.3253 + AND
11.3254 + year = year_
11.3255 + AND
11.3256 + version = version_
11.3257 + AND
11.3258 + scorecard_object = component_;
11.3259 + ELSIF (period_count_ = 8) THEN
11.3260 + UPDATE scorecard_input_value_tab
11.3261 + SET action = action_value_,
11.3262 + year_value = final_year_value_,
11.3263 + p1_value = final_year_value_,
11.3264 + p2_value = final_year_value_,
11.3265 + p3_value = final_year_value_,
11.3266 + p4_value = final_year_value_,
11.3267 + p5_value = final_year_value_,
11.3268 + p6_value = final_year_value_,
11.3269 + p7_value = final_year_value_,
11.3270 + p8_value = final_year_value_
11.3271 + WHERE
11.3272 + environment = environment_
11.3273 + AND
11.3274 + scorecard = scorecard_
11.3275 + AND
11.3276 + year = year_
11.3277 + AND
11.3278 + version = version_
11.3279 + AND
11.3280 + scorecard_object = component_;
11.3281 + ELSIF (period_count_ = 9) THEN
11.3282 + UPDATE scorecard_input_value_tab
11.3283 + SET action = action_value_,
11.3284 + year_value = final_year_value_,
11.3285 + p1_value = final_year_value_,
11.3286 + p2_value = final_year_value_,
11.3287 + p3_value = final_year_value_,
11.3288 + p4_value = final_year_value_,
11.3289 + p5_value = final_year_value_,
11.3290 + p6_value = final_year_value_,
11.3291 + p7_value = final_year_value_,
11.3292 + p8_value = final_year_value_,
11.3293 + p9_value = final_year_value_
11.3294 + WHERE
11.3295 + environment = environment_
11.3296 + AND
11.3297 + scorecard = scorecard_
11.3298 + AND
11.3299 + year = year_
11.3300 + AND
11.3301 + version = version_
11.3302 + AND
11.3303 + scorecard_object = component_;
11.3304 + ELSIF (period_count_ = 10) THEN
11.3305 + UPDATE scorecard_input_value_tab
11.3306 + SET action = action_value_,
11.3307 + year_value = final_year_value_,
11.3308 + p1_value = final_year_value_,
11.3309 + p2_value = final_year_value_,
11.3310 + p3_value = final_year_value_,
11.3311 + p4_value = final_year_value_,
11.3312 + p5_value = final_year_value_,
11.3313 + p6_value = final_year_value_,
11.3314 + p7_value = final_year_value_,
11.3315 + p8_value = final_year_value_,
11.3316 + p9_value = final_year_value_,
11.3317 + p10_value = final_year_value_
11.3318 + WHERE
11.3319 + environment = environment_
11.3320 + AND
11.3321 + scorecard = scorecard_
11.3322 + AND
11.3323 + year = year_
11.3324 + AND
11.3325 + version = version_
11.3326 + AND
11.3327 + scorecard_object = component_;
11.3328 + ELSIF (period_count_ = 11) THEN
11.3329 + UPDATE scorecard_input_value_tab
11.3330 + SET action = action_value_,
11.3331 + year_value = final_year_value_,
11.3332 + p1_value = final_year_value_,
11.3333 + p2_value = final_year_value_,
11.3334 + p3_value = final_year_value_,
11.3335 + p4_value = final_year_value_,
11.3336 + p5_value = final_year_value_,
11.3337 + p6_value = final_year_value_,
11.3338 + p7_value = final_year_value_,
11.3339 + p8_value = final_year_value_,
11.3340 + p9_value = final_year_value_,
11.3341 + p10_value = final_year_value_,
11.3342 + p11_value = final_year_value_
11.3343 + WHERE
11.3344 + environment = environment_
11.3345 + AND
11.3346 + scorecard = scorecard_
11.3347 + AND
11.3348 + year = year_
11.3349 + AND
11.3350 + version = version_
11.3351 + AND
11.3352 + scorecard_object = component_;
11.3353 + ELSIF (period_count_ = 12) THEN
11.3354 + UPDATE scorecard_input_value_tab
11.3355 + SET action = action_value_,
11.3356 + year_value = final_year_value_,
11.3357 + p1_value = final_year_value_,
11.3358 + p2_value = final_year_value_,
11.3359 + p3_value = final_year_value_,
11.3360 + p4_value = final_year_value_,
11.3361 + p5_value = final_year_value_,
11.3362 + p6_value = final_year_value_,
11.3363 + p7_value = final_year_value_,
11.3364 + p8_value = final_year_value_,
11.3365 + p9_value = final_year_value_,
11.3366 + p10_value = final_year_value_,
11.3367 + p11_value = final_year_value_,
11.3368 + p12_value = final_year_value_
11.3369 + WHERE
11.3370 + environment = environment_
11.3371 + AND
11.3372 + scorecard = scorecard_
11.3373 + AND
11.3374 + year = year_
11.3375 + AND
11.3376 + version = version_
11.3377 + AND
11.3378 + scorecard_object = component_;
11.3379 + END IF;
11.3380 +
11.3381 +
11.3382 + ELSIF (dist_type_ = 'VALUE' AND dist_logic_ IS NULL) THEN
11.3383 + mean_value_ := (year_value_ * measure_format_)/period_count_;
11.3384 + IF (period_count_ = 1) THEN
11.3385 + UPDATE scorecard_input_value_tab
11.3386 + SET action = action_value_,
11.3387 + year_value = final_year_value_,
11.3388 + p1_value = mean_value_
11.3389 + WHERE
11.3390 + environment = environment_
11.3391 + AND
11.3392 + scorecard = scorecard_
11.3393 + AND
11.3394 + year = year_
11.3395 + AND
11.3396 + version = version_
11.3397 + AND
11.3398 + scorecard_object = component_;
11.3399 + ELSIF (period_count_ = 2) THEN
11.3400 + UPDATE scorecard_input_value_tab
11.3401 + SET action = action_value_,
11.3402 + year_value = final_year_value_,
11.3403 + p1_value = mean_value_,
11.3404 + p2_value = mean_value_
11.3405 + WHERE
11.3406 + environment = environment_
11.3407 + AND
11.3408 + scorecard = scorecard_
11.3409 + AND
11.3410 + year = year_
11.3411 + AND
11.3412 + version = version_
11.3413 + AND
11.3414 + scorecard_object = component_;
11.3415 + ELSIF (period_count_ = 3) THEN
11.3416 + UPDATE scorecard_input_value_tab
11.3417 + SET action = action_value_,
11.3418 + year_value = final_year_value_,
11.3419 + p1_value = mean_value_,
11.3420 + p2_value = mean_value_,
11.3421 + p3_value = mean_value_
11.3422 + WHERE
11.3423 + environment = environment_
11.3424 + AND
11.3425 + scorecard = scorecard_
11.3426 + AND
11.3427 + year = year_
11.3428 + AND
11.3429 + version = version_
11.3430 + AND
11.3431 + scorecard_object = component_;
11.3432 + ELSIF (period_count_ = 4) THEN
11.3433 + UPDATE scorecard_input_value_tab
11.3434 + SET action = action_value_,
11.3435 + year_value = final_year_value_,
11.3436 + p1_value = mean_value_,
11.3437 + p2_value = mean_value_,
11.3438 + p3_value = mean_value_,
11.3439 + p4_value = mean_value_
11.3440 + WHERE
11.3441 + environment = environment_
11.3442 + AND
11.3443 + scorecard = scorecard_
11.3444 + AND
11.3445 + year = year_
11.3446 + AND
11.3447 + version = version_
11.3448 + AND
11.3449 + scorecard_object = component_;
11.3450 + ELSIF (period_count_ = 5) THEN
11.3451 + UPDATE scorecard_input_value_tab
11.3452 + SET action = action_value_,
11.3453 + year_value = final_year_value_,
11.3454 + p1_value = mean_value_,
11.3455 + p2_value = mean_value_,
11.3456 + p3_value = mean_value_,
11.3457 + p4_value = mean_value_,
11.3458 + p5_value = mean_value_
11.3459 + WHERE
11.3460 + environment = environment_
11.3461 + AND
11.3462 + scorecard = scorecard_
11.3463 + AND
11.3464 + year = year_
11.3465 + AND
11.3466 + version = version_
11.3467 + AND
11.3468 + scorecard_object = component_;
11.3469 + ELSIF (period_count_ = 6) THEN
11.3470 + UPDATE scorecard_input_value_tab
11.3471 + SET action = action_value_,
11.3472 + year_value = final_year_value_,
11.3473 + p1_value = mean_value_,
11.3474 + p2_value = mean_value_,
11.3475 + p3_value = mean_value_,
11.3476 + p4_value = mean_value_,
11.3477 + p5_value = mean_value_,
11.3478 + p6_value = mean_value_
11.3479 + WHERE
11.3480 + environment = environment_
11.3481 + AND
11.3482 + scorecard = scorecard_
11.3483 + AND
11.3484 + year = year_
11.3485 + AND
11.3486 + version = version_
11.3487 + AND
11.3488 + scorecard_object = component_;
11.3489 + ELSIF (period_count_ = 7) THEN
11.3490 + UPDATE scorecard_input_value_tab
11.3491 + SET action = action_value_,
11.3492 + year_value = final_year_value_,
11.3493 + p1_value = mean_value_,
11.3494 + p2_value = mean_value_,
11.3495 + p3_value = mean_value_,
11.3496 + p4_value = mean_value_,
11.3497 + p5_value = mean_value_,
11.3498 + p6_value = mean_value_,
11.3499 + p7_value = mean_value_
11.3500 + WHERE
11.3501 + environment = environment_
11.3502 + AND
11.3503 + scorecard = scorecard_
11.3504 + AND
11.3505 + year = year_
11.3506 + AND
11.3507 + version = version_
11.3508 + AND
11.3509 + scorecard_object = component_;
11.3510 + ELSIF (period_count_ = 8) THEN
11.3511 + UPDATE scorecard_input_value_tab
11.3512 + SET action = action_value_,
11.3513 + year_value = final_year_value_,
11.3514 + p1_value = mean_value_,
11.3515 + p2_value = mean_value_,
11.3516 + p3_value = mean_value_,
11.3517 + p4_value = mean_value_,
11.3518 + p5_value = mean_value_,
11.3519 + p6_value = mean_value_,
11.3520 + p7_value = mean_value_,
11.3521 + p8_value = mean_value_
11.3522 + WHERE
11.3523 + environment = environment_
11.3524 + AND
11.3525 + scorecard = scorecard_
11.3526 + AND
11.3527 + year = year_
11.3528 + AND
11.3529 + version = version_
11.3530 + AND
11.3531 + scorecard_object = component_;
11.3532 + ELSIF (period_count_ = 9) THEN
11.3533 + UPDATE scorecard_input_value_tab
11.3534 + SET action = action_value_,
11.3535 + year_value = final_year_value_,
11.3536 + p1_value = mean_value_,
11.3537 + p2_value = mean_value_,
11.3538 + p3_value = mean_value_,
11.3539 + p4_value = mean_value_,
11.3540 + p5_value = mean_value_,
11.3541 + p6_value = mean_value_,
11.3542 + p7_value = mean_value_,
11.3543 + p8_value = mean_value_,
11.3544 + p9_value = mean_value_
11.3545 + WHERE
11.3546 + environment = environment_
11.3547 + AND
11.3548 + scorecard = scorecard_
11.3549 + AND
11.3550 + year = year_
11.3551 + AND
11.3552 + version = version_
11.3553 + AND
11.3554 + scorecard_object = component_;
11.3555 + ELSIF (period_count_ = 10) THEN
11.3556 + UPDATE scorecard_input_value_tab
11.3557 + SET action = action_value_,
11.3558 + year_value = final_year_value_,
11.3559 + p1_value = mean_value_,
11.3560 + p2_value = mean_value_,
11.3561 + p3_value = mean_value_,
11.3562 + p4_value = mean_value_,
11.3563 + p5_value = mean_value_,
11.3564 + p6_value = mean_value_,
11.3565 + p7_value = mean_value_,
11.3566 + p8_value = mean_value_,
11.3567 + p9_value = mean_value_,
11.3568 + p10_value = mean_value_
11.3569 + WHERE
11.3570 + environment = environment_
11.3571 + AND
11.3572 + scorecard = scorecard_
11.3573 + AND
11.3574 + year = year_
11.3575 + AND
11.3576 + version = version_
11.3577 + AND
11.3578 + scorecard_object = component_;
11.3579 + ELSIF (period_count_ = 11) THEN
11.3580 + UPDATE scorecard_input_value_tab
11.3581 + SET action = action_value_,
11.3582 + year_value = final_year_value_,
11.3583 + p1_value = mean_value_,
11.3584 + p2_value = mean_value_,
11.3585 + p3_value = mean_value_,
11.3586 + p4_value = mean_value_,
11.3587 + p5_value = mean_value_,
11.3588 + p6_value = mean_value_,
11.3589 + p7_value = mean_value_,
11.3590 + p8_value = mean_value_,
11.3591 + p9_value = mean_value_,
11.3592 + p10_value = mean_value_,
11.3593 + p11_value = mean_value_
11.3594 + WHERE
11.3595 + environment = environment_
11.3596 + AND
11.3597 + scorecard = scorecard_
11.3598 + AND
11.3599 + year = year_
11.3600 + AND
11.3601 + version = version_
11.3602 + AND
11.3603 + scorecard_object = component_;
11.3604 + ELSIF (period_count_ = 12) THEN
11.3605 + UPDATE scorecard_input_value_tab
11.3606 + SET action = action_value_,
11.3607 + year_value = final_year_value_,
11.3608 + p1_value = mean_value_,
11.3609 + p2_value = mean_value_,
11.3610 + p3_value = mean_value_,
11.3611 + p4_value = mean_value_,
11.3612 + p5_value = mean_value_,
11.3613 + p6_value = mean_value_,
11.3614 + p7_value = mean_value_,
11.3615 + p8_value = mean_value_,
11.3616 + p9_value = mean_value_,
11.3617 + p10_value = mean_value_,
11.3618 + p11_value = mean_value_,
11.3619 + p12_value = mean_value_
11.3620 + WHERE
11.3621 + environment = environment_
11.3622 + AND
11.3623 + scorecard = scorecard_
11.3624 + AND
11.3625 + year = year_
11.3626 + AND
11.3627 + version = version_
11.3628 + AND
11.3629 + scorecard_object = component_;
11.3630 +
11.3631 + END IF;
11.3632 + ELSIF ((dist_logic_ = 'SYB' OR dist_logic_ = 'VERSION' OR dist_logic_ = 'INDEX') AND (dist_type_ IS NOT NULL)) THEN
11.3633 + Update_Sales_Values(environment_,scorecard_,year_,version_,component_,year_value_,period_count_,from_where_,action_value_);
11.3634 + END IF;
11.3635 + END IF;
11.3636 + END IF;
11.3637 + ELSIF (action_value_ = 'FALSE') THEN
11.3638 + UPDATE scorecard_input_value_tab
11.3639 + SET action = action_value_
11.3640 + WHERE
11.3641 + environment = environment_
11.3642 + AND
11.3643 + scorecard = scorecard_
11.3644 + AND
11.3645 + year = year_
11.3646 + AND
11.3647 + version = version_
11.3648 + AND
11.3649 + scorecard_object = component_;
11.3650 + END IF;
11.3651 +END Update_Distributed_Values;
11.3652 +PROCEDURE Publish_Scorecard (
11.3653 + environment_ IN VARCHAR2,
11.3654 + scorecard_ IN VARCHAR2 )
11.3655 +IS
11.3656 + can_modify_ VARCHAR2(5);
11.3657 +BEGIN
11.3658 + General_SYS.Init_Method(lu_name_, '&PKG', 'Publish_Scorecard');
11.3659 + can_modify_ := Scorecard_User_Access_Api.Check_Modify_Acc(environment_,scorecard_);
11.3660 + if can_modify_ = 'TRUE' then
11.3661 + Publish_Score__(environment_, scorecard_, 'SCORE');
11.3662 + end if;
11.3663 +END Publish_Scorecard;
11.3664 +PROCEDURE Publish_Environment (
11.3665 + environment_ IN VARCHAR2 )
11.3666 +IS
11.3667 + attr_ VARCHAR2(2000);
11.3668 + info_ VARCHAR2(2000);
11.3669 +
11.3670 + CURSOR get_scorecard IS
11.3671 + SELECT DISTINCT scorecard, objstate
11.3672 + FROM scorecard_input
11.3673 + WHERE environment = environment_
11.3674 + AND (objstate = 'Open' OR objstate = 'Planned');
11.3675 +
11.3676 + can_modify_ VARCHAR2(5);
11.3677 +BEGIN
11.3678 + General_SYS.Init_Method(lu_name_, '&PKG', 'Publish_Environment');
11.3679 + FOR get_rec in get_scorecard loop
11.3680 + IF (get_rec.objstate = 'Open') THEN
11.3681 + info_ := Language_SYS.Translate_Constant(lu_name_,'TRANS: The operation "Publish" is not allowed for Scorecard :P1 in state "Open"',Fnd_Session_API.Get_Language,get_rec.scorecard);
11.3682 + Transaction_SYS.Set_Status_Info(info_);
11.3683 + ELSE
11.3684 + can_modify_ := Scorecard_User_Access_Api.Check_Modify_Acc(environment_,get_rec.scorecard);
11.3685 + if can_modify_ = 'TRUE' then
11.3686 + Publish_Score__(environment_, get_rec.scorecard, 'ENV');
11.3687 + Client_SYS.Clear_Attr(attr_);
11.3688 + Scorecard_Api.Force_Publish__(info_,attr_,'DO',environment_,get_rec.scorecard);
11.3689 + Client_SYS.Clear_Attr(attr_);
11.3690 + end if;
11.3691 + END IF;
11.3692 + end loop;
11.3693 +END Publish_Environment;
11.3694 +
11.3695 +
11.3696 +PROCEDURE Calculate_Measures (
11.3697 + environment_ IN VARCHAR2,
11.3698 + scorecard_ IN VARCHAR2,
11.3699 + year_ IN VARCHAR2,
11.3700 + version_ IN VARCHAR2,
11.3701 + measure_ IN VARCHAR2,
11.3702 + period_count_ IN NUMBER,
11.3703 + from_budpro_ IN VARCHAR2 DEFAULT 'FALSE' )
11.3704 +IS
11.3705 + plan_formula_ VARCHAR2(2000);
11.3706 + plan_formula_year_ VARCHAR2(2000);
11.3707 + plan_formula_p1_ VARCHAR2(2000);
11.3708 + plan_formula_p2_ VARCHAR2(2000);
11.3709 + plan_formula_p3_ VARCHAR2(2000);
11.3710 + plan_formula_p4_ VARCHAR2(2000);
11.3711 + plan_formula_p5_ VARCHAR2(2000);
11.3712 + plan_formula_p6_ VARCHAR2(2000);
11.3713 + plan_formula_p7_ VARCHAR2(2000);
11.3714 + plan_formula_p8_ VARCHAR2(2000);
11.3715 + plan_formula_p9_ VARCHAR2(2000);
11.3716 + plan_formula_p10_ VARCHAR2(2000);
11.3717 + plan_formula_p11_ VARCHAR2(2000);
11.3718 + plan_formula_p12_ VARCHAR2(2000);
11.3719 + count_ NUMBER;
11.3720 + p1_value_ NUMBER;
11.3721 + p2_value_ NUMBER;
11.3722 + p3_value_ NUMBER;
11.3723 + p4_value_ NUMBER;
11.3724 + p5_value_ NUMBER;
11.3725 + p6_value_ NUMBER;
11.3726 + p7_value_ NUMBER;
11.3727 + p8_value_ NUMBER;
11.3728 + p9_value_ NUMBER;
11.3729 + p10_value_ NUMBER;
11.3730 + p11_value_ NUMBER;
11.3731 + p12_value_ NUMBER;
11.3732 + year_value_ NUMBER;
11.3733 + level_id_ VARCHAR2(30);
11.3734 +
11.3735 + formula_year_ NUMBER;
11.3736 + formula_p1_ NUMBER;
11.3737 + formula_p2_ NUMBER;
11.3738 + formula_p3_ NUMBER;
11.3739 + formula_p4_ NUMBER;
11.3740 + formula_p5_ NUMBER;
11.3741 + formula_p6_ NUMBER;
11.3742 + formula_p7_ NUMBER;
11.3743 + formula_p8_ NUMBER;
11.3744 + formula_p9_ NUMBER;
11.3745 + formula_p10_ NUMBER;
11.3746 + formula_p11_ NUMBER;
11.3747 + formula_p12_ NUMBER;
11.3748 +
11.3749 + check_year_value_ VARCHAR2(10);
11.3750 + check_p1_value_ VARCHAR2(10);
11.3751 + check_p2_value_ VARCHAR2(10);
11.3752 + check_p3_value_ VARCHAR2(10);
11.3753 + check_p4_value_ VARCHAR2(10);
11.3754 + check_p5_value_ VARCHAR2(10);
11.3755 + check_p6_value_ VARCHAR2(10);
11.3756 + check_p7_value_ VARCHAR2(10);
11.3757 + check_p8_value_ VARCHAR2(10);
11.3758 + check_p9_value_ VARCHAR2(10);
11.3759 + check_p10_value_ VARCHAR2(10);
11.3760 + check_p11_value_ VARCHAR2(10);
11.3761 + check_p12_value_ VARCHAR2(10);
11.3762 + level_type_val_ VARCHAR2(20);
11.3763 +
11.3764 + stmt_ VARCHAR2(2000);
11.3765 +
11.3766 + rec_ SCORECARD_INPUT_VALUE_TAB%ROWTYPE;
11.3767 +
11.3768 + CURSOR measure_components_ IS
11.3769 + SELECT level_id
11.3770 + FROM scorecard_structure_tab
11.3771 + WHERE environment = environment_
11.3772 + AND scorecard = scorecard_
11.3773 + AND parent_level_type = 'MEASURE'
11.3774 + AND parent_id = measure_;
11.3775 + CURSOR version_value_ IS
11.3776 + SELECT Year_Value,P1_Value,P2_Value,P3_Value,P4_Value,P5_Value,P6_Value,P7_Value,P8_Value,P9_Value,P10_Value,P11_Value,P12_Value
11.3777 + FROM scorecard_input_value_tab
11.3778 + WHERE environment = environment_
11.3779 + AND scorecard = scorecard_
11.3780 + AND year = year_
11.3781 + AND version = version_
11.3782 + AND scorecard_object = level_id_;
11.3783 + CURSOR measure_value_ IS
11.3784 + SELECT Year_Value,P1_Value,P2_Value,P3_Value,P4_Value,P5_Value,P6_Value,P7_Value,P8_Value,P9_Value,P10_Value,P11_Value,P12_Value
11.3785 + FROM scorecard_input_value_tab
11.3786 + WHERE environment = environment_
11.3787 + AND scorecard = scorecard_
11.3788 + AND year = year_
11.3789 + AND version = version_
11.3790 + AND scorecard_object = measure_;
11.3791 +
11.3792 + byteOffSet_ Number := 0;
11.3793 +
11.3794 + invalid_comp_ NUMBER;
11.3795 +BEGIN
11.3796 + General_SYS.Init_Method(lu_name_, '&PKG', 'Calculate_Measures');
11.3797 + rec_ := Lock_By_Keys___(environment_,scorecard_,year_,version_,measure_);
11.3798 + level_type_val_ := Scorecard_Level_Type_API.Decode('MEASURE');
11.3799 + plan_formula_ := scorecard_structure_api.Get_Measure_Calc_Formula(scorecard_,measure_,environment_,level_type_val_);
11.3800 + check_year_value_ := 'FALSE';
11.3801 + check_p1_value_ := 'FALSE';
11.3802 + check_p2_value_ := 'FALSE';
11.3803 + check_p3_value_ := 'FALSE';
11.3804 + check_p4_value_ := 'FALSE';
11.3805 + check_p5_value_ := 'FALSE';
11.3806 + check_p6_value_ := 'FALSE';
11.3807 + check_p7_value_ := 'FALSE';
11.3808 + check_p8_value_ := 'FALSE';
11.3809 + check_p9_value_ := 'FALSE';
11.3810 + check_p10_value_ := 'FALSE';
11.3811 + check_p11_value_ := 'FALSE';
11.3812 + check_p12_value_ := 'FALSE';
11.3813 +
11.3814 + IF plan_formula_ IS NOT NULL THEN
11.3815 + plan_formula_ := REPLACE(plan_formula_,' ','');
11.3816 + plan_formula_ := UPPER(plan_formula_);
11.3817 + plan_formula_year_ := plan_formula_;
11.3818 + plan_formula_p1_ := plan_formula_;
11.3819 + plan_formula_p2_ := plan_formula_;
11.3820 + plan_formula_p3_ := plan_formula_;
11.3821 + plan_formula_p4_ := plan_formula_;
11.3822 + plan_formula_p5_ := plan_formula_;
11.3823 + plan_formula_p6_ := plan_formula_;
11.3824 + plan_formula_p7_ := plan_formula_;
11.3825 + plan_formula_p8_ := plan_formula_;
11.3826 + plan_formula_p9_ := plan_formula_;
11.3827 + plan_formula_p10_ := plan_formula_;
11.3828 + plan_formula_p11_ := plan_formula_;
11.3829 + plan_formula_p12_ := plan_formula_;
11.3830 + count_ := 0;
11.3831 + FOR measure_comp_ IN measure_components_ LOOP
11.3832 + level_id_ := measure_comp_.level_id;
11.3833 + byteOffset_ := INSTR(plan_formula_,'COMP.'||level_id_);
11.3834 +
11.3835 + IF byteOffSet_ > 0 THEN
11.3836 + OPEN version_value_;
11.3837 + FETCH version_value_ INTO year_value_,p1_value_,p2_value_,p3_value_,p4_value_,p5_value_,p6_value_,p7_value_,p8_value_,p9_value_,p10_value_,p11_value_,p12_value_;
11.3838 + CLOSE version_value_;
11.3839 + IF (year_value_ IS NULL) THEN
11.3840 + check_year_value_ := 'TRUE';
11.3841 + END IF;
11.3842 + IF (p1_value_ IS NULL) THEN
11.3843 + check_p1_value_ := 'TRUE';
11.3844 + END IF;
11.3845 + IF (p2_value_ IS NULL) THEN
11.3846 + check_p2_value_ := 'TRUE';
11.3847 + END IF;
11.3848 + IF (p3_value_ IS NULL) THEN
11.3849 + check_p3_value_ := 'TRUE';
11.3850 + END IF;
11.3851 + IF (p4_value_ IS NULL) THEN
11.3852 + check_p4_value_ := 'TRUE';
11.3853 + END IF;
11.3854 + IF (p5_value_ IS NULL) THEN
11.3855 + check_p5_value_ := 'TRUE';
11.3856 + END IF;
11.3857 + IF (p6_value_ IS NULL) THEN
11.3858 + check_p6_value_ := 'TRUE';
11.3859 + END IF;
11.3860 + IF (p7_value_ IS NULL) THEN
11.3861 + check_p7_value_ := 'TRUE';
11.3862 + END IF;
11.3863 + IF (p8_value_ IS NULL) THEN
11.3864 + check_p8_value_ := 'TRUE';
11.3865 + END IF;
11.3866 + IF (p9_value_ IS NULL) THEN
11.3867 + check_p9_value_ := 'TRUE';
11.3868 + END IF;
11.3869 + IF (p10_value_ IS NULL) THEN
11.3870 + check_p10_value_ := 'TRUE';
11.3871 + END IF;
11.3872 + IF (p11_value_ IS NULL) THEN
11.3873 + check_p11_value_ := 'TRUE';
11.3874 + END IF;
11.3875 + IF (p12_value_ IS NULL) THEN
11.3876 + check_p12_value_ := 'TRUE';
11.3877 + END IF;
11.3878 +
11.3879 + plan_formula_year_ := REPLACE(plan_formula_year_,'COMP.'||level_id_,year_value_);
11.3880 + plan_formula_p1_ := REPLACE(plan_formula_p1_,'COMP.'||level_id_,p1_value_);
11.3881 + plan_formula_p2_ := REPLACE(plan_formula_p2_,'COMP.'||level_id_,p2_value_);
11.3882 + plan_formula_p3_ := REPLACE(plan_formula_p3_,'COMP.'||level_id_,p3_value_);
11.3883 + plan_formula_p4_ := REPLACE(plan_formula_p4_,'COMP.'||level_id_,p4_value_);
11.3884 + plan_formula_p5_ := REPLACE(plan_formula_p5_,'COMP.'||level_id_,p5_value_);
11.3885 + plan_formula_p6_ := REPLACE(plan_formula_p6_,'COMP.'||level_id_,p6_value_);
11.3886 + plan_formula_p7_ := REPLACE(plan_formula_p7_,'COMP.'||level_id_,p7_value_);
11.3887 + plan_formula_p8_ := REPLACE(plan_formula_p8_,'COMP.'||level_id_,p8_value_);
11.3888 + plan_formula_p9_ := REPLACE(plan_formula_p9_,'COMP.'||level_id_,p9_value_);
11.3889 + plan_formula_p10_ := REPLACE(plan_formula_p10_,'COMP.'||level_id_,p10_value_);
11.3890 + plan_formula_p11_ := REPLACE(plan_formula_p11_,'COMP.'||level_id_,p11_value_);
11.3891 + plan_formula_p12_ := REPLACE(plan_formula_p12_,'COMP.'||level_id_,p12_value_);
11.3892 + END IF;
11.3893 + END LOOP;
11.3894 +
11.3895 + Get_Error_Msg_For_Comp(plan_formula_year_,check_year_value_);
11.3896 + Get_Error_Msg_For_Comp(plan_formula_p1_,check_p1_value_);
11.3897 + Get_Error_Msg_For_Comp(plan_formula_p2_,check_p2_value_);
11.3898 + Get_Error_Msg_For_Comp(plan_formula_p3_,check_p3_value_);
11.3899 + Get_Error_Msg_For_Comp(plan_formula_p4_,check_p4_value_);
11.3900 + Get_Error_Msg_For_Comp(plan_formula_p5_,check_p5_value_);
11.3901 + Get_Error_Msg_For_Comp(plan_formula_p6_,check_p6_value_);
11.3902 + Get_Error_Msg_For_Comp(plan_formula_p7_,check_p7_value_);
11.3903 + Get_Error_Msg_For_Comp(plan_formula_p8_,check_p8_value_);
11.3904 + Get_Error_Msg_For_Comp(plan_formula_p9_,check_p9_value_);
11.3905 + Get_Error_Msg_For_Comp(plan_formula_p10_,check_p10_value_);
11.3906 + Get_Error_Msg_For_Comp(plan_formula_p11_,check_p11_value_);
11.3907 + Get_Error_Msg_For_Comp(plan_formula_p12_,check_p12_value_);
11.3908 +
11.3909 + IF (period_count_ = 1) THEN
11.3910 + -- ifs_assert_safe samwlk 070515
11.3911 + EXECUTE IMMEDIATE 'select '||plan_formula_year_||','||plan_formula_p1_||' from dual'
11.3912 + INTO
11.3913 + formula_year_,formula_p1_;
11.3914 +
11.3915 + formula_p2_ := NULL;
11.3916 + formula_p3_ := NULL;
11.3917 + formula_p4_ := NULL;
11.3918 + formula_p5_ := NULL;
11.3919 + formula_p6_ := NULL;
11.3920 + formula_p7_ := NULL;
11.3921 + formula_p8_ := NULL;
11.3922 + formula_p9_ := NULL;
11.3923 + formula_p10_ := NULL;
11.3924 + formula_p11_ := NULL;
11.3925 + formula_p12_ := NULL;
11.3926 + END IF;
11.3927 + IF (period_count_ = 2) THEN
11.3928 + -- ifs_assert_safe samwlk 070515
11.3929 + EXECUTE IMMEDIATE 'select '||plan_formula_year_||','||plan_formula_p1_||','||plan_formula_p2_||' from dual'
11.3930 + INTO
11.3931 + formula_year_,formula_p1_,formula_p2_;
11.3932 +
11.3933 + formula_p3_ := NULL;
11.3934 + formula_p4_ := NULL;
11.3935 + formula_p5_ := NULL;
11.3936 + formula_p6_ := NULL;
11.3937 + formula_p7_ := NULL;
11.3938 + formula_p8_ := NULL;
11.3939 + formula_p9_ := NULL;
11.3940 + formula_p10_ := NULL;
11.3941 + formula_p11_ := NULL;
11.3942 + formula_p12_ := NULL;
11.3943 + END IF;
11.3944 + IF (period_count_ = 3) THEN
11.3945 + -- ifs_assert_safe samwlk 070515
11.3946 + EXECUTE IMMEDIATE 'select '||plan_formula_year_||','||plan_formula_p1_||','||plan_formula_p2_||','
11.3947 + ||plan_formula_p3_||' from dual'
11.3948 + INTO
11.3949 + formula_year_,formula_p1_,formula_p2_,formula_p3_;
11.3950 +
11.3951 + formula_p4_ := NULL;
11.3952 + formula_p5_ := NULL;
11.3953 + formula_p6_ := NULL;
11.3954 + formula_p7_ := NULL;
11.3955 + formula_p8_ := NULL;
11.3956 + formula_p9_ := NULL;
11.3957 + formula_p10_ := NULL;
11.3958 + formula_p11_ := NULL;
11.3959 + formula_p12_ := NULL;
11.3960 + END IF;
11.3961 + IF (period_count_ = 4) THEN
11.3962 + -- ifs_assert_safe samwlk 070515
11.3963 + EXECUTE IMMEDIATE 'select '||plan_formula_year_||','||plan_formula_p1_||','||plan_formula_p2_||','
11.3964 + ||plan_formula_p3_||','||plan_formula_p4_||' from dual'
11.3965 + INTO
11.3966 + formula_year_,formula_p1_,formula_p2_,formula_p3_,formula_p4_;
11.3967 +
11.3968 + formula_p5_ := NULL;
11.3969 + formula_p6_ := NULL;
11.3970 + formula_p7_ := NULL;
11.3971 + formula_p8_ := NULL;
11.3972 + formula_p9_ := NULL;
11.3973 + formula_p10_ := NULL;
11.3974 + formula_p11_ := NULL;
11.3975 + formula_p12_ := NULL;
11.3976 + END IF;
11.3977 + IF (period_count_ = 5) THEN
11.3978 + -- ifs_assert_safe samwlk 070515
11.3979 + EXECUTE IMMEDIATE 'select '||plan_formula_year_||','||plan_formula_p1_||','||plan_formula_p2_||','
11.3980 + ||plan_formula_p3_||','||plan_formula_p4_||','||plan_formula_p5_||' from dual'
11.3981 + INTO
11.3982 + formula_year_,formula_p1_,formula_p2_,formula_p3_,formula_p4_,formula_p5_;
11.3983 +
11.3984 + formula_p6_ := NULL;
11.3985 + formula_p7_ := NULL;
11.3986 + formula_p8_ := NULL;
11.3987 + formula_p9_ := NULL;
11.3988 + formula_p10_ := NULL;
11.3989 + formula_p11_ := NULL;
11.3990 + formula_p12_ := NULL;
11.3991 + END IF;
11.3992 + IF (period_count_ = 6) THEN
11.3993 + -- ifs_assert_safe samwlk 070515
11.3994 + EXECUTE IMMEDIATE 'select '||plan_formula_year_||','||plan_formula_p1_||','||plan_formula_p2_||','
11.3995 + ||plan_formula_p3_||','||plan_formula_p4_||','||plan_formula_p5_||','||plan_formula_p6_||' from dual'
11.3996 + INTO
11.3997 + formula_year_,formula_p1_,formula_p2_,formula_p3_,formula_p4_,formula_p5_,formula_p6_;
11.3998 +
11.3999 + formula_p7_ := NULL;
11.4000 + formula_p8_ := NULL;
11.4001 + formula_p9_ := NULL;
11.4002 + formula_p10_ := NULL;
11.4003 + formula_p11_ := NULL;
11.4004 + formula_p12_ := NULL;
11.4005 + END IF;
11.4006 + IF (period_count_ = 7) THEN
11.4007 + -- ifs_assert_safe samwlk 070515
11.4008 + EXECUTE IMMEDIATE 'select '||plan_formula_year_||','||plan_formula_p1_||','||plan_formula_p2_||','
11.4009 + ||plan_formula_p3_||','||plan_formula_p4_||','||plan_formula_p5_||','||plan_formula_p6_||','
11.4010 + ||plan_formula_p7_||' from dual'
11.4011 + INTO
11.4012 + formula_year_,formula_p1_,formula_p2_,formula_p3_,formula_p4_,formula_p5_,formula_p6_,formula_p7_;
11.4013 +
11.4014 + formula_p8_ := NULL;
11.4015 + formula_p9_ := NULL;
11.4016 + formula_p10_ := NULL;
11.4017 + formula_p11_ := NULL;
11.4018 + formula_p12_ := NULL;
11.4019 + END IF;
11.4020 + IF (period_count_ = 8) THEN
11.4021 + -- ifs_assert_safe samwlk 070515
11.4022 + EXECUTE IMMEDIATE 'select '||plan_formula_year_||','||plan_formula_p1_||','||plan_formula_p2_||','
11.4023 + ||plan_formula_p3_||','||plan_formula_p4_||','||plan_formula_p5_||','||plan_formula_p6_||','
11.4024 + ||plan_formula_p7_||','||plan_formula_p8_||' from dual'
11.4025 + INTO
11.4026 + formula_year_,formula_p1_,formula_p2_,formula_p3_,formula_p4_,formula_p5_,formula_p6_,formula_p7_,
11.4027 + formula_p8_;
11.4028 +
11.4029 + formula_p9_ := NULL;
11.4030 + formula_p10_ := NULL;
11.4031 + formula_p11_ := NULL;
11.4032 + formula_p12_ := NULL;
11.4033 + END IF;
11.4034 + IF (period_count_ = 9) THEN
11.4035 + -- ifs_assert_safe samwlk 070515
11.4036 + EXECUTE IMMEDIATE 'select '||plan_formula_year_||','||plan_formula_p1_||','||plan_formula_p2_||','
11.4037 + ||plan_formula_p3_||','||plan_formula_p4_||','||plan_formula_p5_||','||plan_formula_p6_||','
11.4038 + ||plan_formula_p7_||','||plan_formula_p8_||','||plan_formula_p9_||' from dual'
11.4039 + INTO
11.4040 + formula_year_,formula_p1_,formula_p2_,formula_p3_,formula_p4_,formula_p5_,formula_p6_,formula_p7_,
11.4041 + formula_p8_,formula_p9_;
11.4042 +
11.4043 + formula_p10_ := NULL;
11.4044 + formula_p11_ := NULL;
11.4045 + formula_p12_ := NULL;
11.4046 + END IF;
11.4047 + IF (period_count_ = 10) THEN
11.4048 + -- ifs_assert_safe samwlk 070515
11.4049 + EXECUTE IMMEDIATE 'select '||plan_formula_year_||','||plan_formula_p1_||','||plan_formula_p2_||','
11.4050 + ||plan_formula_p3_||','||plan_formula_p4_||','||plan_formula_p5_||','||plan_formula_p6_||','
11.4051 + ||plan_formula_p7_||','||plan_formula_p8_||','||plan_formula_p9_||','||plan_formula_p10_||' from dual'
11.4052 + INTO
11.4053 + formula_year_,formula_p1_,formula_p2_,formula_p3_,formula_p4_,formula_p5_,formula_p6_,formula_p7_,
11.4054 + formula_p8_,formula_p9_,formula_p10_;
11.4055 +
11.4056 + formula_p11_ := NULL;
11.4057 + formula_p12_ := NULL;
11.4058 + END IF;
11.4059 + IF (period_count_ = 11) THEN
11.4060 + -- ifs_assert_safe samwlk 070515
11.4061 + EXECUTE IMMEDIATE 'select '||plan_formula_year_||','||plan_formula_p1_||','||plan_formula_p2_||','
11.4062 + ||plan_formula_p3_||','||plan_formula_p4_||','||plan_formula_p5_||','||plan_formula_p6_||','
11.4063 + ||plan_formula_p7_||','||plan_formula_p8_||','||plan_formula_p9_||','||plan_formula_p10_||','
11.4064 + ||plan_formula_p11_||' from dual'
11.4065 + INTO
11.4066 + formula_year_,formula_p1_,formula_p2_,formula_p3_,formula_p4_,formula_p5_,formula_p6_,formula_p7_,
11.4067 + formula_p8_,formula_p9_,formula_p10_,formula_p11_;
11.4068 +
11.4069 + formula_p12_ := NULL;
11.4070 + END IF;
11.4071 + IF (period_count_ = 12) THEN
11.4072 + -- ifs_assert_safe samwlk 070515
11.4073 + EXECUTE IMMEDIATE 'select '||plan_formula_year_||','||plan_formula_p1_||','||plan_formula_p2_||','
11.4074 + ||plan_formula_p3_||','||plan_formula_p4_||','||plan_formula_p5_||','||plan_formula_p6_||','
11.4075 + ||plan_formula_p7_||','||plan_formula_p8_||','||plan_formula_p9_||','||plan_formula_p10_||','
11.4076 + ||plan_formula_p11_||','||plan_formula_p12_||' from dual'
11.4077 + INTO
11.4078 + formula_year_,formula_p1_,formula_p2_,formula_p3_,formula_p4_,formula_p5_,formula_p6_,formula_p7_,
11.4079 + formula_p8_,formula_p9_,formula_p10_,formula_p11_,formula_p12_;
11.4080 + END IF;
11.4081 + UPDATE scorecard_input_value_tab
11.4082 + SET
11.4083 + year_value = formula_year_,
11.4084 + p1_value = formula_p1_,
11.4085 + p2_value = formula_p2_,
11.4086 + p3_value = formula_p3_,
11.4087 + p4_value = formula_p4_,
11.4088 + p5_value = formula_p5_,
11.4089 + p6_value = formula_p6_,
11.4090 + p7_value = formula_p7_,
11.4091 + p8_value = formula_p8_,
11.4092 + p9_value = formula_p9_,
11.4093 + p10_value = formula_p10_,
11.4094 + p11_value = formula_p11_,
11.4095 + p12_value = formula_p12_
11.4096 + WHERE
11.4097 + environment = environment_ AND
11.4098 + scorecard = scorecard_ AND
11.4099 + year = year_ AND
11.4100 + version = version_ AND
11.4101 + scorecard_object = measure_;
11.4102 + -- Bug 76573 Begin. Set the measure to planned state
11.4103 + Set_To_Planned(environment_, scorecard_, year_, version_, measure_);
11.4104 + -- Bug 76573 End
11.4105 +
11.4106 + ELSE
11.4107 + Error_SYS.Appl_General(lu_name_,'ERRPLANFOR : No Calculation formula is connected to the measure :P1 in Scorecard :P2',Scorecard_Measure_API.Get_Description(measure_),Scorecard_API.Get_Description(scorecard_,environment_));
11.4108 + END IF;
11.4109 +
11.4110 +END Calculate_Measures;
11.4111 +PROCEDURE Update_Referred_Component (
11.4112 + check_reference_ IN OUT VARCHAR2,
11.4113 + environment_ IN VARCHAR2,
11.4114 + scorecard_ IN VARCHAR2,
11.4115 + year_ IN VARCHAR2,
11.4116 + version_ IN VARCHAR2,
11.4117 + scorecard_object_ IN VARCHAR2 )
11.4118 +IS
11.4119 + rec_ SCORECARD_INPUT_VALUE_TAB%ROWTYPE;
11.4120 + CURSOR value_cur IS
11.4121 + SELECT year_value,p1_value,p2_value,p3_value,p4_value,p5_value,p6_value,p7_value,p8_value,p9_value,p10_value,
11.4122 + p11_value,p12_value
11.4123 + FROM scorecard_input_value_tab
11.4124 + WHERE environment = environment_
11.4125 + AND scorecard = scorecard_
11.4126 + AND year = year_
11.4127 + AND version = version_
11.4128 + AND scorecard_object = scorecard_object_;
11.4129 + CURSOR component_cur IS
11.4130 + SELECT level_id
11.4131 + FROM scorecard_structure_tab
11.4132 + WHERE environment = environment_
11.4133 + AND scorecard = scorecard_
11.4134 + AND planning_type = 'REFERENCE'
11.4135 + AND planning_reference = scorecard_object_
11.4136 + AND child_level_type = 'COMPONENT';
11.4137 + measure_format_ NUMBER;
11.4138 +BEGIN
11.4139 + General_SYS.Init_Method(lu_name_, '&PKG', 'Update_Referred_Component');
11.4140 + FOR component_cur_ IN component_cur LOOP
11.4141 + check_reference_ := 'TRUE';
11.4142 + rec_ := Lock_By_Keys___(environment_,scorecard_,year_,version_,component_cur_.level_id);
11.4143 + FOR value_cur_ IN value_cur LOOP
11.4144 + measure_format_ := TO_NUMBER(Scorecard_Measure_API.Get_Measure_Format(component_cur_.level_id));
11.4145 + UPDATE scorecard_input_value_tab
11.4146 + SET year_value = value_cur_.year_value * measure_format_,
11.4147 + p1_value = value_cur_.p1_value * measure_format_,
11.4148 + p2_value = value_cur_.p2_value * measure_format_,
11.4149 + p3_value = value_cur_.p3_value * measure_format_,
11.4150 + p4_value = value_cur_.p4_value * measure_format_,
11.4151 + p5_value = value_cur_.p5_value * measure_format_,
11.4152 + p6_value = value_cur_.p6_value * measure_format_,
11.4153 + p7_value = value_cur_.p7_value * measure_format_,
11.4154 + p8_value = value_cur_.p8_value * measure_format_,
11.4155 + p9_value = value_cur_.p9_value * measure_format_,
11.4156 + p10_value = value_cur_.p10_value * measure_format_,
11.4157 + p11_value = value_cur_.p11_value * measure_format_,
11.4158 + p12_value = value_cur_.p12_value * measure_format_
11.4159 + WHERE
11.4160 + environment = environment_ AND
11.4161 + scorecard = scorecard_ AND
11.4162 + year = year_ AND
11.4163 + version = version_ AND
11.4164 + scorecard_object = component_cur_.level_id;
11.4165 + END LOOP;
11.4166 + Set_To_Planned(environment_,scorecard_,year_,version_,component_cur_.level_id);
11.4167 + END LOOP;
11.4168 +END Update_Referred_Component;
11.4169 +PROCEDURE Delete_By_Passed_Value (
11.4170 + key_value_ IN VARCHAR2,
11.4171 + year_ IN VARCHAR2 )
11.4172 +IS
11.4173 + dummy_ SCORECARD_INPUT_VALUE_TAB%ROWTYPE;
11.4174 + info_ VARCHAR2(2000);
11.4175 + --objversion_ VARCHAR2(2000);
11.4176 + CURSOR Get_rows IS
11.4177 + SELECT objid,objversion FROM scorecard_input_value
11.4178 + WHERE environment=key_value_
11.4179 + AND year=year_ ;
11.4180 +BEGIN
11.4181 + General_SYS.Init_Method(lu_name_, 'SCORECARD_INPUT_VALUE_API', 'Delete_By_Passed_Value');
11.4182 + FOR get_rec in Get_rows loop
11.4183 + -- Delete___(get_rec.objid,get_rec);
11.4184 + Remove__ (info_ ,get_rec.objid ,get_rec.objversion,'DO' );
11.4185 + end loop;
11.4186 +END Delete_By_Passed_Value;
11.4187 +PROCEDURE Delete_Version_Passed (
11.4188 + environment_ IN VARCHAR2,
11.4189 + version_ IN VARCHAR2 )
11.4190 +IS
11.4191 + info_ VARCHAR2(2000);
11.4192 + CURSOR Get_rows IS
11.4193 + SELECT objid,objversion FROM scorecard_input_value
11.4194 + WHERE environment=environment_
11.4195 + AND version=version_ ;
11.4196 +
11.4197 +BEGIN
11.4198 + General_SYS.Init_Method(lu_name_, 'SCORECARD_INPUT_VALUE_API', 'Delete_Version_passed');
11.4199 + FOR get_rec in Get_rows loop
11.4200 + Remove__ (info_ ,get_rec.objid ,get_rec.objversion,'DO' );
11.4201 + end loop;
11.4202 +END Delete_Version_Passed;
11.4203 +PROCEDURE Delete_Scorecard_Passed (
11.4204 + environment_ IN VARCHAR2,
11.4205 + scorecard_ IN VARCHAR2 )
11.4206 +IS
11.4207 +
11.4208 + info_ VARCHAR2(2000);
11.4209 + CURSOR Get_rows IS
11.4210 + SELECT objid,objversion FROM scorecard_input_value
11.4211 + WHERE environment=environment_
11.4212 + AND scorecard=scorecard_ ;
11.4213 +BEGIN
11.4214 + General_SYS.Init_Method(lu_name_, 'SCORECARD_INPUT_VALUE_API', 'Delete_Scorecard_passed');
11.4215 + FOR get_rec in Get_rows loop
11.4216 + Remove__ (info_ ,get_rec.objid ,get_rec.objversion,'DO' );
11.4217 + end loop;
11.4218 +END Delete_Scorecard_Passed;
11.4219 +PROCEDURE Insert_Data (
11.4220 + env_ IN VARCHAR2,
11.4221 + scr_ IN VARCHAR2,
11.4222 + year_ IN VARCHAR2,
11.4223 + version_ IN VARCHAR2,
11.4224 + obj_ IN VARCHAR2,
11.4225 + type_ IN VARCHAR2,
11.4226 + p1_ IN VARCHAR2,
11.4227 + p2_ IN VARCHAR2,
11.4228 + p3_ IN VARCHAR2,
11.4229 + p4_ IN VARCHAR2,
11.4230 + p5_ IN VARCHAR2,
11.4231 + p6_ IN VARCHAR2,
11.4232 + p7_ IN VARCHAR2,
11.4233 + p8_ IN VARCHAR2,
11.4234 + p9_ IN VARCHAR2,
11.4235 + p10_ IN VARCHAR2,
11.4236 + p11_ IN VARCHAR2,
11.4237 + p12_ IN VARCHAR2 )
11.4238 +IS
11.4239 + newrec_ SCORECARD_INPUT_VALUE_TAB%ROWTYPE;
11.4240 + objid_ VARCHAR2(2000);
11.4241 + objversion_ VARCHAR2(2000);
11.4242 + attr_ VARCHAR2(2000);
11.4243 +
11.4244 +BEGIN
11.4245 + General_SYS.Init_Method(lu_name_, '&PKG', 'Insert_Data');
11.4246 + newrec_.environment := env_;
11.4247 + newrec_.scorecard := scr_;
11.4248 + newrec_.year := year_;
11.4249 + newrec_.version := version_ ;
11.4250 + newrec_.scorecard_object := obj_;
11.4251 + newrec_.object_type := type_;
11.4252 + newrec_.p1_key := p1_;
11.4253 + newrec_.p2_key := p2_;
11.4254 + newrec_.p3_key := p3_;
11.4255 + newrec_.p4_key := p4_;
11.4256 + newrec_.p5_key := p5_;
11.4257 + newrec_.p6_key := p6_;
11.4258 + newrec_.p7_key := p7_;
11.4259 + newrec_.p8_key := p8_;
11.4260 + newrec_.p9_key := p9_;
11.4261 + newrec_.p10_key :=p10_;
11.4262 + newrec_.p11_key :=p11_;
11.4263 + newrec_.p12_key :=p12_;
11.4264 + newrec_.p12_key :=p12_;
11.4265 + newrec_.action :='TRUE';
11.4266 +
11.4267 + Insert___(objid_, objversion_, newrec_, attr_);
11.4268 +END Insert_Data;
11.4269 +PROCEDURE Modify_Data (
11.4270 + p1_ IN VARCHAR2,
11.4271 + p2_ IN VARCHAR2,
11.4272 + p3_ IN VARCHAR2,
11.4273 + p4_ IN VARCHAR2,
11.4274 + p5_ IN VARCHAR2,
11.4275 + p6_ IN VARCHAR2,
11.4276 + p7_ IN VARCHAR2,
11.4277 + p8_ IN VARCHAR2,
11.4278 + p9_ IN VARCHAR2,
11.4279 + p10_ IN VARCHAR2,
11.4280 + p11_ IN VARCHAR2,
11.4281 + p12_ IN VARCHAR2,
11.4282 + env_ IN VARCHAR2,
11.4283 + scr_ IN VARCHAR2,
11.4284 + year_ IN VARCHAR2,
11.4285 + version_ IN VARCHAR2,
11.4286 + level_ IN VARCHAR2 )
11.4287 +IS
11.4288 + objid_ VARCHAR2(2000);
11.4289 + objversion_ VARCHAR2(2000);
11.4290 + info_ VARCHAR2(32000);
11.4291 + attr_ VARCHAR2(32000);
11.4292 +BEGIN
11.4293 + General_SYS.Init_Method(lu_name_, '&PKG', 'Modify_Data');
11.4294 + Get_Id_Version_By_Keys___(objid_,objversion_,env_ ,scr_,year_,version_,level_);
11.4295 + Client_SYS.Clear_Attr(attr_);
11.4296 + Client_SYS.Add_To_Attr('P1_KEY', p1_, attr_);
11.4297 + Client_SYS.Add_To_Attr('P2_KEY', p2_, attr_);
11.4298 + Client_SYS.Add_To_Attr('P3_KEY', p3_, attr_);
11.4299 + Client_SYS.Add_To_Attr('P4_KEY', p4_, attr_);
11.4300 + Client_SYS.Add_To_Attr('P5_KEY', p5_, attr_);
11.4301 + Client_SYS.Add_To_Attr('P6_KEY', p6_, attr_);
11.4302 + Client_SYS.Add_To_Attr('P7_KEY', p7_, attr_);
11.4303 + Client_SYS.Add_To_Attr('P8_KEY', p8_, attr_);
11.4304 + Client_SYS.Add_To_Attr('P9_KEY', p9_, attr_);
11.4305 + Client_SYS.Add_To_Attr('P10_KEY', p10_, attr_);
11.4306 + Client_SYS.Add_To_Attr('P11_KEY', p11_, attr_);
11.4307 + Client_SYS.Add_To_Attr('P12_KEY', p12_, attr_);
11.4308 + Client_SYS.Add_To_Attr('ACTION', 'TRUE',attr_);
11.4309 + Modify__(info_,objid_,objversion_,attr_,'DO');
11.4310 +
11.4311 +
11.4312 +END Modify_Data;
11.4313 +PROCEDURE Delete_Data (
11.4314 + env_ IN VARCHAR2,
11.4315 + scr_ IN VARCHAR2,
11.4316 + year_ IN VARCHAR2,
11.4317 + version_ IN VARCHAR2,
11.4318 + level_ IN VARCHAR2 )
11.4319 +IS
11.4320 +
11.4321 + objid_ VARCHAR2(2000);
11.4322 + objversion_ VARCHAR2(2000);
11.4323 + info_ VARCHAR2(32000);
11.4324 + attr_ VARCHAR2(32000);
11.4325 +BEGIN
11.4326 + General_SYS.Init_Method(lu_name_, '&PKG', 'Delete_Data');
11.4327 + Get_Id_Version_By_Keys___(objid_,objversion_,env_ ,scr_,year_,version_,level_);
11.4328 + Remove__ (info_ ,objid_,objversion_,'DO' );
11.4329 +END Delete_Data;
11.4330 +PROCEDURE Scorecard_Inputs_By_Batch (
11.4331 + environment_ IN VARCHAR2,
11.4332 + scorecard_ IN VARCHAR2,
11.4333 + years_ IN VARCHAR2,
11.4334 + version_ IN VARCHAR2,
11.4335 + execution_ IN VARCHAR2 )
11.4336 +IS
11.4337 + job_id_ NUMBER;
11.4338 + method_ VARCHAR2(32000);
11.4339 + attr_ VARCHAR2(32000);
11.4340 +BEGIN
11.4341 + General_SYS.Init_Method(lu_name_, 'SCORECARD_INPUT_VALUE_API','Scorecard_Inputs_By_Batch');
11.4342 + Client_SYS.Clear_Attr(attr_);
11.4343 + Client_SYS.Add_To_Attr('ENVIRONMENT',environment_,attr_);
11.4344 + Client_SYS.Add_To_Attr('SCORECARD',scorecard_ ,attr_);
11.4345 + Client_SYS.Add_To_Attr('YEAR',years_,attr_);
11.4346 + Client_SYS.Add_To_Attr('VERSION',version_,attr_);
11.4347 + method_ := 'Scorecard_Input_Value_API.Start_Inputing_Scorecards('''''||attr_||''''')';
11.4348 + IF (execution_ != 'NOW') THEN
11.4349 + Batch_SYS.New_Job(job_id_,method_,execution_);
11.4350 + ELSE
11.4351 + Input_Scorecard_Data (attr_);
11.4352 + END IF;
11.4353 +END Scorecard_Inputs_By_Batch;
11.4354 +PROCEDURE Input_Scorecard_Data (
11.4355 + attr_ IN VARCHAR2 )
11.4356 +IS
11.4357 +
11.4358 + TYPE RefCurTyp IS REF CURSOR;
11.4359 + rcScr RefCurTyp;
11.4360 + rcYear RefCurTyp;
11.4361 + rcVer RefCurTyp;
11.4362 + ssql_ varchar2(32000);
11.4363 + ssql2_ varchar2(32000);
11.4364 + ssql3_ varchar2(32000);
11.4365 + tempscr_ varchar2(20);
11.4366 + tempver_ varchar2(20);
11.4367 + tempyear_ varchar2(20);
11.4368 + env VARCHAR2(10);
11.4369 + scorecard_ VARCHAR2(32000);
11.4370 + years_ VARCHAR2(2000);
11.4371 + version_ VARCHAR2(2000);
11.4372 + period1_ VARCHAR2(10);
11.4373 + period2_ VARCHAR2(10);
11.4374 + period3_ VARCHAR2(10);
11.4375 + period4_ VARCHAR2(10);
11.4376 + period5_ VARCHAR2(10);
11.4377 + period6_ VARCHAR2(10);
11.4378 + period7_ VARCHAR2(10);
11.4379 + period8_ VARCHAR2(10);
11.4380 + period9_ VARCHAR2(10);
11.4381 + period10_ VARCHAR2(10);
11.4382 + period11_ VARCHAR2(10);
11.4383 + period12_ VARCHAR2(10);
11.4384 + ExistEnv VARCHAR2(10);
11.4385 + dummy2_ VARCHAR2(10);
11.4386 + dummy_ NUMBER;
11.4387 + scr_exist NUMBER;
11.4388 + mea_exist NUMBER;
11.4389 + mea_ver_exist NUMBER;
11.4390 + mea_year_exist NUMBER;
11.4391 + mea_year_conn_exist NUMBER;
11.4392 + comp_exist NUMBER;
11.4393 + comp_ver_exist NUMBER;
11.4394 + comp_year_exist NUMBER;
11.4395 + comp_year_conn_exist NUMBER;
11.4396 + del_mea_rec NUMBER;
11.4397 + del_comp_rec NUMBER;
11.4398 + insert_mea_rec NUMBER;
11.4399 + insert_comp_rec NUMBER;
11.4400 + rec_exists NUMBER;
11.4401 + rec_exists2 NUMBER;
11.4402 + rec_not_exist NUMBER;
11.4403 + rec_not_exist2 NUMBER;
11.4404 + rec_exists_del NUMBER;
11.4405 + rec_exists_del2 NUMBER;
11.4406 +
11.4407 + CURSOR get_year_conn(env_ varchar2, year_ varchar2) IS
11.4408 + SELECT year
11.4409 + FROM scorecard_period_tab
11.4410 + WHERE environment = env_
11.4411 + AND year = year_;
11.4412 +
11.4413 + CURSOR get_mea(env_ varchar2, scr_ varchar2) IS
11.4414 + SELECT level_id
11.4415 + FROM scorecard_structure_tab
11.4416 + WHERE environment = env_
11.4417 + AND scorecard = scr_
11.4418 + AND child_level_type = 'MEASURE';
11.4419 +
11.4420 + CURSOR get_comp(env_ varchar2, scr_ varchar2, mea_ varchar2) IS
11.4421 + SELECT level_id
11.4422 + FROM scorecard_structure_tab
11.4423 + WHERE environment = env_
11.4424 + AND scorecard = scr_
11.4425 + AND child_level_type = 'COMPONENT'
11.4426 + AND parent_id = mea_;
11.4427 +
11.4428 + CURSOR chk_exist(env_ varchar2, scr_ varchar2, year_ varchar2, ver_ varchar2, scr_obj_ varchar2) IS
11.4429 + SELECT 1
11.4430 + FROM scorecard_input_value_tab
11.4431 + WHERE environment = env_
11.4432 + AND scorecard = scr_
11.4433 + AND year = year_
11.4434 + AND version = ver_
11.4435 + AND scorecard_object = scr_obj_;
11.4436 +BEGIN
11.4437 + General_SYS.Init_Method(lu_name_, '&PKG', 'Input_Scorecard_Data');
11.4438 + env:=Client_SYS.Get_Item_Value('ENVIRONMENT',attr_);
11.4439 + scorecard_:= Client_SYS.Get_Item_Value('SCORECARD',attr_);
11.4440 + version_ := Client_SYS.Get_Item_Value('VERSION',attr_);
11.4441 + years_ := Client_SYS.Get_Item_Value('YEAR',attr_);
11.4442 + scorecard_:= Replace(scorecard_,'^','''');
11.4443 + version_ := Replace(version_,'^','''');
11.4444 + years_ := Replace(years_,'^','''');
11.4445 + scr_exist := 0;
11.4446 + mea_exist := 0;
11.4447 + mea_ver_exist := 0;
11.4448 + mea_year_exist := 0;
11.4449 + mea_year_conn_exist := 0;
11.4450 + comp_exist := 0;
11.4451 + comp_ver_exist := 0;
11.4452 + comp_year_exist := 0;
11.4453 + comp_year_conn_exist := 0;
11.4454 + del_mea_rec := 0;
11.4455 + del_comp_rec := 0;
11.4456 + insert_mea_rec := 0;
11.4457 + insert_comp_rec := 0;
11.4458 + rec_exists := 0;
11.4459 + rec_exists2 := 0;
11.4460 + rec_not_exist := 0;
11.4461 + rec_not_exist2 := 0;
11.4462 + rec_exists_del := 0;
11.4463 + rec_exists_del2 := 0;
11.4464 +
11.4465 + IF scorecard_ IS null then
11.4466 + ssql_:='SELECT scorecard FROM scorecard_tab WHERE environment='|| '''' || env || '''' || ' AND (rowstate = '||'''Open''' || ' OR rowstate = '||'''Published'''||')';
11.4467 + else
11.4468 + ssql_ := 'SELECT scorecard FROM scorecard_tab WHERE environment='|| '''' || env || '''' || ' AND SCORECARD IN (' || scorecard_ || ')' ;
11.4469 + end if;
11.4470 +
11.4471 + if version_ IS null then
11.4472 + ssql2_:= 'SELECT version FROM measure_version_tab WHERE environment ='|| '''' || env || '''' || 'AND USE_VERSIONS = ' || '''TRUE''' || ' AND (VERSION NOT IN (' || '''ASS'''||','||'''IND'''||','||'''TRN'''||')) AND rowstate='|| '''Open''';
11.4473 + else
11.4474 + ssql2_:= 'SELECT version FROM measure_version_tab WHERE environment ='|| '''' || env || '''' || ' AND VERSION IN (' || version_ || ')' ;
11.4475 + end if;
11.4476 +
11.4477 + if years_ IS null then
11.4478 + ssql3_:= 'SELECT year FROM environment_year_tab WHERE environment ='|| '''' || env || '''' ||' AND rowstate= '||'''Open''';
11.4479 + else
11.4480 + ssql3_:= 'SELECT year FROM environment_year_tab WHERE environment ='|| '''' || env || '''' || ' AND YEAR IN (' || years_ || ')' ;
11.4481 + end if;
11.4482 +
11.4483 + -- ifs_assert_safe shsalk 20060117
11.4484 + open rcScr for ssql_;
11.4485 +
11.4486 + LOOP
11.4487 + FETCH rcScr INTO tempscr_;
11.4488 + EXIT WHEN rcScr%NOTFOUND;
11.4489 + scr_exist := 1;
11.4490 +
11.4491 + FOR meaNo IN get_mea(env, tempscr_) LOOP
11.4492 + -- ifs_assert_safe shsalk 20060117
11.4493 + open rcVer for ssql2_;
11.4494 + LOOP
11.4495 + FETCH rcVer INTO tempver_;
11.4496 + EXIT WHEN rcVer%NOTFOUND;
11.4497 + -- ifs_assert_safe shsalk 20060117
11.4498 + open rcYear for ssql3_;
11.4499 + LOOP
11.4500 + FETCH rcYear INTO tempyear_;
11.4501 + EXIT WHEN rcYear%NOTFOUND;
11.4502 + Return_Periods(period1_,period2_,period3_,period4_,period5_,period6_,period7_,
11.4503 + period8_,period9_,period10_,period11_,period12_,env, tempyear_);
11.4504 +
11.4505 + IF (tempver_ != 'ASS') THEN
11.4506 +
11.4507 + OPEN get_year_conn(env, tempyear_);
11.4508 + FETCH get_year_conn INTO dummy2_;
11.4509 + IF (get_year_conn%FOUND) THEN
11.4510 + rec_not_exist := 1;
11.4511 + ELSE
11.4512 + rec_not_exist := 0;
11.4513 + END IF;
11.4514 + CLOSE get_year_conn;
11.4515 +
11.4516 + IF (rec_not_exist = 1) THEN
11.4517 + mea_year_conn_exist := 1;
11.4518 +
11.4519 + OPEN chk_exist(env, tempscr_, tempyear_, tempver_, meaNo.level_id);
11.4520 + FETCH chk_exist INTO dummy_;
11.4521 + IF (chk_exist%FOUND) THEN
11.4522 + rec_exists := 1;
11.4523 + ELSE
11.4524 + rec_exists := 0;
11.4525 + END IF;
11.4526 + CLOSE chk_exist;
11.4527 +
11.4528 + IF (rec_exists = 1) THEN
11.4529 + Modify_Data(period1_,period2_,period3_,period4_,period5_,period6_,
11.4530 + period7_,period8_,period9_,period10_,period11_,period12_,
11.4531 + env,tempscr_,tempyear_,tempver_,meaNo.level_id);
11.4532 + ELSE
11.4533 + Insert_Data(env,tempscr_,tempyear_,tempver_,meaNo.level_id,'MEASURE',
11.4534 + period1_,period2_,period3_,period4_,period5_,period6_,
11.4535 + period7_,period8_,period9_,period10_,period11_,period12_);
11.4536 + END IF;
11.4537 + Environment_Year_Api.Force_Open(env,tempyear_);
11.4538 + Scorecard_Api.Force_Open(env,tempscr_);
11.4539 + Measure_Version_Api.Force_Open(env,tempver_);
11.4540 + insert_mea_rec := 1;
11.4541 +
11.4542 + ELSE
11.4543 +
11.4544 + OPEN chk_exist(env, tempscr_, tempyear_, tempver_, meaNo.level_id);
11.4545 + FETCH chk_exist INTO dummy_;
11.4546 + IF (chk_exist%FOUND) THEN
11.4547 + rec_exists_del := 1;
11.4548 + ELSE
11.4549 + rec_exists_del:= 0;
11.4550 + END IF;
11.4551 + CLOSE chk_exist;
11.4552 +
11.4553 + IF (rec_exists_del = 1) THEN
11.4554 + Delete_Data(env,tempscr_,tempyear_,tempver_,meaNo.level_id);
11.4555 + del_mea_rec := 1;
11.4556 + END IF;
11.4557 + END IF;
11.4558 +
11.4559 + END IF;
11.4560 +
11.4561 + END LOOP;
11.4562 + close rcYear;
11.4563 + END LOOP;
11.4564 + close rcVer;
11.4565 + END LOOP;
11.4566 +
11.4567 + FOR meaNo IN get_mea(env, tempscr_) LOOP
11.4568 + FOR compNo IN get_comp(env, tempscr_, meaNo.level_id) LOOP
11.4569 + comp_exist := 1;
11.4570 + -- ifs_assert_safe shsalk 20060117
11.4571 + open rcVer for ssql2_;
11.4572 + LOOP
11.4573 + FETCH rcVer INTO tempver_;
11.4574 + EXIT WHEN rcVer%NOTFOUND;
11.4575 + comp_ver_exist := 1;
11.4576 + -- ifs_assert_safe shsalk 20060117
11.4577 + open rcYear for ssql3_;
11.4578 + LOOP
11.4579 + FETCH rcYear INTO tempyear_;
11.4580 + EXIT WHEN rcYear%NOTFOUND;
11.4581 + comp_year_exist := 1;
11.4582 +
11.4583 + Return_Periods(period1_,period2_,period3_,period4_,period5_,period6_,period7_,
11.4584 + period8_,period9_,period10_,period11_,period12_,env, tempyear_);
11.4585 +
11.4586 + IF (tempver_ != 'ASS') THEN
11.4587 +
11.4588 + OPEN get_year_conn(env, tempyear_);
11.4589 + FETCH get_year_conn INTO dummy2_;
11.4590 + IF (get_year_conn%FOUND) THEN
11.4591 + rec_not_exist2 := 1;
11.4592 + ELSE
11.4593 + rec_not_exist2 := 0;
11.4594 + END IF;
11.4595 + CLOSE get_year_conn;
11.4596 +
11.4597 + IF (rec_not_exist2 = 1) THEN
11.4598 + comp_year_conn_exist := 1;
11.4599 +
11.4600 + OPEN chk_exist(env, tempscr_, tempyear_, tempver_, compNo.level_id);
11.4601 + FETCH chk_exist INTO dummy_;
11.4602 + IF (chk_exist%FOUND) THEN
11.4603 + rec_exists2 := 1;
11.4604 + ELSE
11.4605 + rec_exists2 := 0;
11.4606 + END IF;
11.4607 + CLOSE chk_exist;
11.4608 +
11.4609 + IF (rec_exists2 = 1) THEN
11.4610 + Modify_Data(period1_,period2_,period3_,period4_,period5_,period6_,
11.4611 + period7_,period8_,period9_,period10_,period11_,period12_,
11.4612 + env,tempscr_,tempyear_,tempver_,compNo.level_id);
11.4613 + ELSE
11.4614 + Insert_Data(env,tempscr_,tempyear_,tempver_,compNo.level_id,'COMPONENT',
11.4615 + period1_,period2_,period3_,period4_,period5_,period6_,
11.4616 + period7_,period8_,period9_,period10_,period11_,period12_);
11.4617 + END IF;
11.4618 + Environment_Year_Api.Force_Open(env,tempyear_);
11.4619 + Scorecard_Api.Force_Open(env,tempscr_);
11.4620 + Measure_Version_Api.Force_Open(env,tempver_);
11.4621 + insert_comp_rec := 1;
11.4622 +
11.4623 + ELSE
11.4624 +
11.4625 + OPEN chk_exist(env, tempscr_, tempyear_, tempver_, compNo.level_id);
11.4626 + FETCH chk_exist INTO dummy_;
11.4627 + IF (chk_exist%FOUND) THEN
11.4628 + rec_exists_del2 := 1;
11.4629 + ELSE
11.4630 + rec_exists_del2 := 0;
11.4631 + END IF;
11.4632 + CLOSE chk_exist;
11.4633 +
11.4634 + IF (rec_exists_del2 = 1) THEN
11.4635 + Delete_Data(env,tempscr_,tempyear_,tempver_, compNo.level_id);
11.4636 + del_comp_rec := 1;
11.4637 + END IF;
11.4638 + END IF;
11.4639 +
11.4640 + END IF;
11.4641 + END LOOP;
11.4642 + close rcYear;
11.4643 + END LOOP;
11.4644 + close rcVer;
11.4645 +
11.4646 + END LOOP;
11.4647 + END LOOP;
11.4648 +
11.4649 + END LOOP;
11.4650 + close rcScr;
11.4651 +
11.4652 +END Input_Scorecard_Data;
11.4653 +
11.4654 +PROCEDURE Start_Inputing_Scorecards (
11.4655 + attr_ IN VARCHAR2 )
11.4656 +IS
11.4657 + new_attr_ VARCHAR2(32000) := attr_;
11.4658 + desc_ VARCHAR2(2000);
11.4659 +BEGIN
11.4660 + General_SYS.Init_Method(lu_name_, '&PKG', 'Start_Inputing_Scorecards');
11.4661 + desc_ := Language_SYS.Translate_Constant (lu_name_, 'BGJOB_INPUTSSC:Update Scorecard Input Value Table.');
11.4662 + Transaction_SYS.Deferred_Call ('Scorecard_Input_Value_API.Input_Scorecard_Data',new_attr_, desc_);
11.4663 +END Start_Inputing_Scorecards;
11.4664 +PROCEDURE Hierachical_Distribution (
11.4665 + environment_ IN VARCHAR2,
11.4666 + scorecard_ IN VARCHAR2,
11.4667 + year_ IN VARCHAR2,
11.4668 + version_ IN VARCHAR2,
11.4669 + object_type_ IN VARCHAR2,
11.4670 + period_count_ IN NUMBER,
11.4671 + measure_ IN VARCHAR2 DEFAULT NULL )
11.4672 +IS
11.4673 + CURSOR get_scorecard_objects IS
11.4674 + SELECT scorecard_object
11.4675 + FROM scorecard_input_value_tab
11.4676 + WHERE scorecard=scorecard_
11.4677 + AND environment=environment_
11.4678 + AND object_type=object_type_
11.4679 + AND year=year_
11.4680 + AND version=version_
11.4681 + AND action='TRUE';
11.4682 +
11.4683 + CURSOR get_components(scorecard_id_ VARCHAR2) IS -- Move to scorecard structure
11.4684 + SELECT level_id
11.4685 + FROM scorecard_structure
11.4686 + WHERE parent_id=measure_
11.4687 + AND parent_level_type_db='MEASURE'
11.4688 + AND scorecard=scorecard_id_
11.4689 + AND environment=environment_;
11.4690 +
11.4691 + CURSOR get_child_scorecards IS -- Move to scorecard
11.4692 + SELECT scorecard
11.4693 + FROM scorecard
11.4694 + WHERE parent=scorecard_
11.4695 + AND environment=environment_;
11.4696 +
11.4697 + CURSOR check_component_selected (component_ VARCHAR2)IS
11.4698 + SELECT 1
11.4699 + FROM scorecard_input_value_tab
11.4700 + WHERE action='TRUE'
11.4701 + AND object_type='COMPONENT'
11.4702 + AND year=year_
11.4703 + AND version=version_
11.4704 + AND environment=environment_
11.4705 + AND scorecard=scorecard_
11.4706 + AND scorecard_object=component_;
11.4707 +
11.4708 + TYPE component_arr_type IS TABLE OF VARCHAR2(10)
11.4709 + INDEX BY BINARY_INTEGER;
11.4710 + component_arr_ component_arr_type;
11.4711 + index_ NUMBER;
11.4712 + parent_component_count_ NUMBER;
11.4713 + child_component_count_ NUMBER;
11.4714 + component_exist_ BOOLEAN;
11.4715 + sel_component_arr_ component_arr_type;
11.4716 + sel_index_ NUMBER;
11.4717 + temp_ NUMBER;
11.4718 +
11.4719 +BEGIN
11.4720 + General_SYS.Init_Method(lu_name_, '&PKG', 'Hierachical_Distribution');
11.4721 + IF object_type_ = 'COMPONENT' THEN
11.4722 + -- Get measure components in parent
11.4723 + index_:=0;
11.4724 + sel_index_:=0;
11.4725 + FOR components_ IN get_components(scorecard_) LOOP
11.4726 + index_:=index_+1;
11.4727 + component_arr_(index_):=components_.level_id;
11.4728 + OPEN check_component_selected (components_.level_id);
11.4729 + FETCH check_component_selected INTO temp_;
11.4730 + IF check_component_selected%FOUND THEN
11.4731 + sel_index_:=sel_index_+1;
11.4732 + sel_component_arr_(sel_index_):=components_.level_id;
11.4733 + END IF;
11.4734 + CLOSE check_component_selected;
11.4735 + END LOOP;
11.4736 +
11.4737 + IF index_>0 THEN
11.4738 + parent_component_count_:=index_;
11.4739 + FOR child_scorecards_ IN get_child_scorecards LOOP
11.4740 + child_component_count_:=0;
11.4741 + FOR components_ IN get_components(child_scorecards_.scorecard) LOOP
11.4742 + component_exist_:=FALSE;
11.4743 + FOR index_ IN 1 .. parent_component_count_ LOOP
11.4744 + IF component_arr_(index_)=components_.level_id THEN
11.4745 + component_exist_:=TRUE;
11.4746 + EXIT;
11.4747 + END IF;
11.4748 + END LOOP;
11.4749 + IF NOT component_exist_ THEN
11.4750 + Error_SYS.Appl_General(lu_name_,'SAMESTRUCT1: Child scorecard :P1 does not contain component :P2 .',child_scorecards_.scorecard,components_.level_id);
11.4751 + END IF;
11.4752 + child_component_count_:=child_component_count_+1;
11.4753 + END LOOP;
11.4754 + IF child_component_count_!=parent_component_count_ THEN
11.4755 + Error_SYS.Appl_General(lu_name_,'SAMESTRUCT2: Child scorecard :P1 does not contain the same structure as parent.',child_scorecards_.scorecard);
11.4756 + END IF;
11.4757 + END LOOP;
11.4758 + ELSE
11.4759 + Error_SYS.Appl_General(lu_name_,'NOCOMPSEL1: Selected scorecard does not contain any components.');
11.4760 + END IF;
11.4761 +
11.4762 + IF sel_index_>0 THEN
11.4763 + FOR index_ IN 1..sel_index_ LOOP
11.4764 + Distribute_Input_Values___(environment_,scorecard_,year_,version_,object_type_,period_count_,sel_component_arr_(index_));
11.4765 + END LOOP;
11.4766 + ELSE
11.4767 + Error_SYS.Appl_General(lu_name_,'NOCOMPSEL2: No components are selected for hierachical distribution.');
11.4768 + END IF;
11.4769 + FOR child_scorecards_ IN get_child_scorecards LOOP
11.4770 + Calculate_Measures (environment_,child_scorecards_.scorecard ,year_,version_,measure_,period_count_);
11.4771 + -- Bug 76573 Removed the call to Set_To_Planned() since it is called inside Calculate_Measures() method
11.4772 + END LOOP;
11.4773 + ELSE
11.4774 + FOR scorecard_objects_ IN get_scorecard_objects LOOP -- fetch the measures that are selected in planning page
11.4775 + Distribute_Input_Values___(environment_,scorecard_,year_,version_,object_type_,period_count_,scorecard_objects_.scorecard_object);
11.4776 + END LOOP;
11.4777 + END IF;
11.4778 +
11.4779 +END Hierachical_Distribution;
11.4780 +
11.4781 +PROCEDURE Publish_Environment_Batch (
11.4782 + environment_ IN VARCHAR2,
11.4783 + schedule_ IN VARCHAR2 )
11.4784 +IS
11.4785 + job_id_ NUMBER;
11.4786 + method_ VARCHAR2(2000);
11.4787 + attr_ VARCHAR2(32000);
11.4788 +BEGIN
11.4789 + General_SYS.Init_Method(lu_name_, 'SCORECARD_INPUT_VALUE_API','Publish_Environment_Batch');
11.4790 + Client_SYS.Clear_Attr(attr_);
11.4791 + Client_SYS.Add_To_Attr('ENVIRONMENT',environment_,attr_);
11.4792 + --Start_Publish_Environments___(attr_);
11.4793 + method_ := 'Scorecard_Input_Value_API.Start_Publish_Environments__('''''||attr_||''''')';
11.4794 + IF (schedule_ != 'NOW') THEN
11.4795 + Batch_SYS.New_Job(job_id_,method_,schedule_);
11.4796 + ELSE
11.4797 + Start_Publish_Environments__(attr_);
11.4798 + END IF;
11.4799 +END Publish_Environment_Batch;
11.4800 +PROCEDURE Set_Publish_Scorecards (
11.4801 + environment_ IN VARCHAR2,
11.4802 + scorecard_ IN VARCHAR2 )
11.4803 +IS
11.4804 + rec_ SCORECARD%ROWTYPE;
11.4805 + rec2_ SCORECARD_TAB%ROWTYPE;
11.4806 + attr_ VARCHAR2(2000);
11.4807 + info_ VARCHAR2(32000);
11.4808 + objver_ VARCHAR2(2000);
11.4809 +
11.4810 +BEGIN
11.4811 + General_SYS.Init_Method(lu_name_, '&PKG', 'Set_Publish_Scorecards');
11.4812 + Publish_Scorecard(environment_,scorecard_);
11.4813 + Client_SYS.Clear_Attr(attr_);
11.4814 + Scorecard_Api.Force_Publish__(info_,attr_,'DO',environment_,scorecard_);
11.4815 + Client_SYS.Clear_Attr(attr_);
11.4816 +END Set_Publish_Scorecards;
11.4817 +PROCEDURE Publish_Scorecard_Batch (
11.4818 + environment_ IN VARCHAR2,
11.4819 + scorecard_ IN VARCHAR2,
11.4820 + schedule_ IN VARCHAR2 )
11.4821 +IS
11.4822 + job_id_ NUMBER;
11.4823 + method_ VARCHAR2(2000);
11.4824 + attr_ VARCHAR2(32000);
11.4825 +
11.4826 +BEGIN
11.4827 + General_SYS.Init_Method(lu_name_, 'SCORECARD_INPUT_VALUE_API','Publish_Scorecard_Batch');
11.4828 + Client_SYS.Clear_Attr(attr_);
11.4829 + Client_SYS.Add_To_Attr('ENVIRONMENT',environment_,attr_);
11.4830 + Client_SYS.Add_To_Attr('SCORECARD',scorecard_,attr_);
11.4831 + --Start_Publish_Environments___(attr_);
11.4832 + method_ := 'Scorecard_Input_Value_API.Start_Publish_Scorecards__('''''||attr_||''''')';
11.4833 + IF (schedule_ != 'NOW') THEN
11.4834 + Batch_SYS.New_Job(job_id_,method_,schedule_);
11.4835 + ELSE
11.4836 + Start_Publish_Scorecards__(attr_);
11.4837 + END IF;
11.4838 +
11.4839 +END Publish_Scorecard_Batch;
11.4840 +PROCEDURE Hierarchical_Consolidation (
11.4841 + environment_ IN VARCHAR2,
11.4842 + scorecard_ IN VARCHAR2,
11.4843 + year_ IN VARCHAR2,
11.4844 + version_ IN VARCHAR2,
11.4845 + object_type_ IN VARCHAR2,
11.4846 + period_count_ IN NUMBER,
11.4847 + measure_ IN VARCHAR2 )
11.4848 +IS
11.4849 + CURSOR get_scorecard_objects IS
11.4850 + SELECT scorecard_object
11.4851 + FROM scorecard_input_value_tab
11.4852 + WHERE scorecard=scorecard_
11.4853 + AND environment=environment_
11.4854 + AND object_type=object_type_
11.4855 + AND year=year_
11.4856 + AND version=version_
11.4857 + AND action='TRUE';
11.4858 +
11.4859 + CURSOR get_components(scorecard_id_ VARCHAR2) IS -- Move to scorecard structure
11.4860 + SELECT level_id
11.4861 + FROM scorecard_structure
11.4862 + WHERE parent_id=measure_
11.4863 + AND parent_level_type_db='MEASURE'
11.4864 + AND scorecard=scorecard_id_
11.4865 + AND environment=environment_;
11.4866 +
11.4867 + CURSOR get_child_scorecards IS -- Move to scorecard
11.4868 + SELECT scorecard
11.4869 + FROM scorecard
11.4870 + WHERE parent=scorecard_
11.4871 + AND environment=environment_;
11.4872 +
11.4873 + CURSOR check_child_scorecards IS --- Move to scorecard
11.4874 + SELECT 1
11.4875 + FROM scorecard
11.4876 + WHERE parent=scorecard_
11.4877 + AND environment=environment_;
11.4878 +
11.4879 + CURSOR check_component_selected (component_ VARCHAR2)IS
11.4880 + SELECT 1
11.4881 + FROM scorecard_input_value_tab
11.4882 + WHERE action='TRUE'
11.4883 + AND object_type='COMPONENT'
11.4884 + AND year=year_
11.4885 + AND version=version_
11.4886 + AND environment=environment_
11.4887 + AND scorecard=scorecard_
11.4888 + AND scorecard_object=component_;
11.4889 +
11.4890 + TYPE component_arr_type IS TABLE OF VARCHAR2(10)
11.4891 + INDEX BY BINARY_INTEGER;
11.4892 + component_arr_ component_arr_type;
11.4893 + index_ NUMBER;
11.4894 + parent_component_count_ NUMBER;
11.4895 + child_component_count_ NUMBER;
11.4896 + component_exist_ BOOLEAN;
11.4897 + sel_component_arr_ component_arr_type;
11.4898 + sel_index_ NUMBER;
11.4899 + temp_ NUMBER;
11.4900 + check_child_ NUMBER;
11.4901 +
11.4902 +BEGIN
11.4903 + General_SYS.Init_Method(lu_name_, '&PKG', 'Hierarchical_Consolidation');
11.4904 + OPEN check_child_scorecards;
11.4905 + FETCH check_child_scorecards INTO check_child_;
11.4906 + IF (check_child_scorecards%NOTFOUND) THEN
11.4907 + CLOSE check_child_scorecards;
11.4908 + Error_SYS.Appl_General(lu_name_,'CHECHISC1: No child scorecards found for the scorecard :P1.',scorecard_);
11.4909 + END IF;
11.4910 + CLOSE check_child_scorecards;
11.4911 +
11.4912 +
11.4913 + IF object_type_ = 'COMPONENT' THEN
11.4914 + -- Get measure components in parent
11.4915 + index_:=0;
11.4916 + sel_index_:=0;
11.4917 + FOR components_ IN get_components(scorecard_) LOOP
11.4918 + index_:=index_+1;
11.4919 + component_arr_(index_):=components_.level_id;
11.4920 + OPEN check_component_selected (components_.level_id);
11.4921 + FETCH check_component_selected INTO temp_;
11.4922 + IF check_component_selected%FOUND THEN
11.4923 + sel_index_:=sel_index_+1;
11.4924 + sel_component_arr_(sel_index_):=components_.level_id;
11.4925 + END IF;
11.4926 + CLOSE check_component_selected;
11.4927 + END LOOP;
11.4928 +
11.4929 + IF index_>0 THEN
11.4930 + parent_component_count_:=index_;
11.4931 + FOR child_scorecards_ IN get_child_scorecards LOOP
11.4932 + child_component_count_:=0;
11.4933 + FOR components_ IN get_components(child_scorecards_.scorecard) LOOP
11.4934 + component_exist_:=FALSE;
11.4935 + FOR index_ IN 1 .. parent_component_count_ LOOP
11.4936 + IF component_arr_(index_)=components_.level_id THEN
11.4937 + component_exist_:=TRUE;
11.4938 + EXIT;
11.4939 + END IF;
11.4940 + END LOOP;
11.4941 + IF NOT component_exist_ THEN
11.4942 + Error_SYS.Appl_General(lu_name_,'SAMESTRUCT1: Child scorecard :P1 does not contain component :P2 .',child_scorecards_.scorecard,components_.level_id);
11.4943 + END IF;
11.4944 + child_component_count_:=child_component_count_+1;
11.4945 + END LOOP;
11.4946 + IF child_component_count_!=parent_component_count_ THEN
11.4947 + Error_SYS.Appl_General(lu_name_,'SAMESTRUCT2: Child scorecard :P1 does not contain the same structure as parent.',child_scorecards_.scorecard);
11.4948 + END IF;
11.4949 + END LOOP;
11.4950 + ELSE
11.4951 + Error_SYS.Appl_General(lu_name_,'NOCOMPSEL1: Selected scorecard does not contain any components.');
11.4952 + END IF;
11.4953 +
11.4954 + IF sel_index_>0 THEN
11.4955 + FOR index_ IN 1..sel_index_ LOOP
11.4956 + Consolidate_Values(environment_,scorecard_,year_,version_,object_type_,period_count_,sel_component_arr_(index_));
11.4957 + END LOOP;
11.4958 + Calculate_Measures (environment_,scorecard_ ,year_,version_,measure_,period_count_);
11.4959 + -- Bug 76573 Removed the call to Set_To_Planned() since it is called inside Calculate_Measures() method
11.4960 + ELSE
11.4961 + Error_SYS.Appl_General(lu_name_,'NOCOMPSEL2: No components are selected for hierachical distribution.');
11.4962 + END IF;
11.4963 +
11.4964 +
11.4965 + ELSE
11.4966 +
11.4967 + FOR scorecard_objects_ IN get_scorecard_objects LOOP -- fetch the measures that are selected in planning page
11.4968 + Consolidate_Values(environment_,scorecard_,year_,version_,object_type_,period_count_,scorecard_objects_.scorecard_object);
11.4969 + END LOOP;
11.4970 +
11.4971 + END IF;
11.4972 +
11.4973 +END Hierarchical_Consolidation;
11.4974 +PROCEDURE Consolidate_Values (
11.4975 + environment_ IN VARCHAR2,
11.4976 + scorecard_ IN VARCHAR2,
11.4977 + year_ IN VARCHAR2,
11.4978 + version_ IN VARCHAR2,
11.4979 + object_type_ IN VARCHAR2,
11.4980 + period_count_ IN NUMBER,
11.4981 + scorecard_object_ IN VARCHAR2 )
11.4982 +IS
11.4983 +
11.4984 + year_value_ NUMBER;
11.4985 + newrec_ SCORECARD_INPUT_VALUE_TAB%ROWTYPE;
11.4986 + oldrec_ SCORECARD_INPUT_VALUE_TAB%ROWTYPE;
11.4987 + objid_ VARCHAR2(2000);
11.4988 + attr_ VARCHAR2(2000);
11.4989 + objversion_ VARCHAR2(2000);
11.4990 + child_count_ NUMBER;
11.4991 + TYPE ValArrType IS TABLE OF NUMBER
11.4992 + INDEX BY BINARY_INTEGER;
11.4993 + period_val_arr_ ValArrType;
11.4994 + temp_period_count_ NUMBER;
11.4995 + value_distribution_type_ VARCHAR2(20);
11.4996 + period_val_ VARCHAR2(30);
11.4997 + child_scr_ VARCHAR2(20);
11.4998 + temp_val_ VARCHAR2(5);
11.4999 + temp_period_value_ NUMBER;
11.5000 +
11.5001 +
11.5002 + CURSOR get_child_scorecards IS --- Move to scorecard
11.5003 + SELECT scorecard
11.5004 + FROM scorecard
11.5005 + WHERE parent=scorecard_
11.5006 + AND environment=environment_;
11.5007 +
11.5008 + CURSOR get_open_child_scr IS
11.5009 + SELECT '1'
11.5010 + FROM scorecard
11.5011 + WHERE scorecard = child_scr_
11.5012 + AND environment=environment_
11.5013 + AND objstate NOT IN ('Open','Planned');
11.5014 +
11.5015 +
11.5016 + CURSOR get_total_period_val_ (period_value_ NUMBER) IS
11.5017 + SELECT SUM(DECODE(period_value_,1,p1_value,2,p2_value,3,p3_value,
11.5018 + 4,p4_value,5,p5_value,6,p6_value,7,p7_value,
11.5019 + 8,p8_value,9,p9_value,10,p10_value,11,p11_value,
11.5020 + 12,p12_value))
11.5021 + FROM scorecard_input_value_tab
11.5022 + WHERE environment= environment_
11.5023 + AND scorecard IN (SELECT sc.scorecard
11.5024 + FROM scorecard_tab sc
11.5025 + WHERE sc.environment = environment_
11.5026 + AND sc.parent = scorecard_
11.5027 + AND (sc.scorecard IN (SELECT scorecard
11.5028 + FROM scorecard_user_access_tab
11.5029 + WHERE identity = (SELECT fnd_user
11.5030 + FROM fnd_session)
11.5031 + AND environment=sc.environment
11.5032 + AND scorecard=sc.scorecard)
11.5033 + OR sc.scorecard IN (SELECT scorecard
11.5034 + FROM scorecard_role_access_tab
11.5035 + WHERE environment=sc.environment
11.5036 + AND scorecard=sc.scorecard
11.5037 + AND role IN (SELECT oracle_role
11.5038 + FROM fnd_user_role_runtime
11.5039 + WHERE identity = (SELECT fnd_user
11.5040 + FROM fnd_session)))))
11.5041 + AND year = year_
11.5042 + AND version = version_
11.5043 + AND scorecard_object = scorecard_object_
11.5044 + AND object_type_=object_type_;
11.5045 +
11.5046 +
11.5047 + CURSOR get_period_val_ (period_value_ NUMBER) IS
11.5048 + SELECT DECODE(period_value_,1,p1_value,2,p2_value,3,p3_value,
11.5049 + 4,p4_value,5,p5_value,6,p6_value,7,p7_value,
11.5050 + 8,p8_value,9,p9_value,10,p10_value,11,p1_value,
11.5051 + 12,p12_value)
11.5052 + FROM scorecard_input_value_tab
11.5053 + WHERE environment= environment_
11.5054 + AND scorecard IN (SELECT sc.scorecard
11.5055 + FROM scorecard_tab sc
11.5056 + WHERE sc.environment = environment_
11.5057 + AND sc.parent = scorecard_
11.5058 + AND (sc.scorecard IN (SELECT scorecard
11.5059 + FROM scorecard_user_access_tab
11.5060 + WHERE identity = (SELECT fnd_user
11.5061 + FROM fnd_session)
11.5062 + AND environment=sc.environment
11.5063 + AND scorecard=sc.scorecard)
11.5064 + OR sc.scorecard IN (SELECT scorecard
11.5065 + FROM scorecard_role_access_tab
11.5066 + WHERE environment=sc.environment
11.5067 + AND scorecard=sc.scorecard
11.5068 + AND role IN (SELECT oracle_role
11.5069 + FROM fnd_user_role_runtime
11.5070 + WHERE identity = (SELECT fnd_user
11.5071 + FROM fnd_session)))))
11.5072 + AND year = year_
11.5073 + AND version = version_
11.5074 + AND scorecard_object = scorecard_object_
11.5075 + AND object_type_=object_type_;
11.5076 +
11.5077 +BEGIN
11.5078 + General_SYS.Init_Method(lu_name_, '&PKG', 'Consolidate_Values');
11.5079 + year_value_ := 0;
11.5080 + --value_distribution_type_ := scorecard_Structure_api.Get_Value_Dist_Type_Db(scorecard_,scorecard_object_,environment_,object_type_);
11.5081 + value_distribution_type_ := measure_type_api.Encode(scorecard_Measure_api.Get_Measure_type(scorecard_object_));
11.5082 +
11.5083 + IF value_distribution_type_ IS NULL THEN
11.5084 + IF object_type_='MEASURE' THEN
11.5085 + Error_SYS.Appl_General(lu_name_,'VALDIST1: Value distribution type must have a value for measure :P1 in parent scorecard :P2.',scorecard_object_,scorecard_);
11.5086 + ELSE
11.5087 + Error_SYS.Appl_General(lu_name_,'VALDIST2: Value distribution type must have a value for component :P1 in parent scorecard :P2.',scorecard_object_,scorecard_);
11.5088 + END IF;
11.5089 + END IF;
11.5090 +
11.5091 +
11.5092 + FOR child_scorecards_ IN get_child_scorecards LOOP -- fetch the child scorecards
11.5093 +
11.5094 + child_scr_ := child_scorecards_.scorecard;
11.5095 + OPEN get_open_child_scr;
11.5096 + FETCH get_open_child_scr INTO temp_val_;
11.5097 + CLOSE get_open_child_scr;
11.5098 +
11.5099 + IF (temp_val_ = '1') THEN
11.5100 + Error_SYS.Appl_General(lu_name_,'TMPVAL: Not all scorecards in the hierarchy are opened for planning. Consolidation not possible.');
11.5101 + END IF;
11.5102 +
11.5103 + IF NOT Check_Exist___(environment_,child_scorecards_.scorecard,year_,version_,scorecard_object_) THEN
11.5104 + Error_SYS.Appl_General(lu_name_,'INPVAL: Scorecard object :P1 does not exist in scorecard :P2.',scorecard_object_,child_scorecards_.scorecard);
11.5105 + END IF;
11.5106 +
11.5107 + END LOOP;
11.5108 +
11.5109 + FOR temp_period_count_ IN 1..period_count_ LOOP
11.5110 +
11.5111 + OPEN get_period_val_(temp_period_count_);
11.5112 + LOOP
11.5113 + FETCH get_period_val_ INTO temp_period_value_;
11.5114 + EXIT WHEN get_period_val_%NOTFOUND;
11.5115 +
11.5116 + IF (temp_period_value_ IS NULL) THEN
11.5117 + Error_SYS.Appl_General(lu_name_,'SCINPUTVALNO : One of the child scorecard objects does not have values for the periods');
11.5118 + END IF;
11.5119 + END LOOP;
11.5120 + CLOSE get_period_val_;
11.5121 + END LOOP;
11.5122 +
11.5123 +
11.5124 + oldrec_:=Lock_By_Keys___(environment_,scorecard_,year_,version_,scorecard_object_);
11.5125 +
11.5126 +
11.5127 + period_val_arr_(1) := oldrec_.p1_value;
11.5128 + period_val_arr_(2) := oldrec_.p2_value;
11.5129 + period_val_arr_(3) := oldrec_.p3_value;
11.5130 + period_val_arr_(4) := oldrec_.p4_value;
11.5131 + period_val_arr_(5) := oldrec_.p5_value;
11.5132 + period_val_arr_(6) := oldrec_.p6_value;
11.5133 + period_val_arr_(7) := oldrec_.p7_value;
11.5134 + period_val_arr_(8) := oldrec_.p8_value;
11.5135 + period_val_arr_(9) := oldrec_.p9_value;
11.5136 + period_val_arr_(10) := oldrec_.p10_value;
11.5137 + period_val_arr_(11) := oldrec_.p11_value;
11.5138 + period_val_arr_(12) := oldrec_.p12_value;
11.5139 +
11.5140 + newrec_:=oldrec_;
11.5141 +
11.5142 + IF (value_distribution_type_ = 'PERCENTAGE') THEN
11.5143 +
11.5144 + child_count_:=Scorecard_API.Get_Child_Count(scorecard_,environment_);
11.5145 +
11.5146 + FOR temp_period_count_ IN 1..period_count_ LOOP
11.5147 +
11.5148 + OPEN get_total_period_val_ (temp_period_count_);
11.5149 + FETCH get_total_period_val_ INTO period_val_arr_(temp_period_count_);
11.5150 + period_val_arr_(temp_period_count_) := (period_val_arr_(temp_period_count_)/child_count_);
11.5151 + year_value_:=year_value_ +period_val_arr_(temp_period_count_);
11.5152 + CLOSE get_total_period_val_;
11.5153 +
11.5154 + END LOOP;
11.5155 + year_value_:=year_value_ /period_count_;
11.5156 +
11.5157 + ELSIF (value_distribution_type_ = 'VALUE') THEN
11.5158 +
11.5159 + FOR temp_period_count_ IN 1..period_count_ LOOP
11.5160 +
11.5161 + OPEN get_total_period_val_ (temp_period_count_);
11.5162 + FETCH get_total_period_val_ INTO period_val_arr_(temp_period_count_);
11.5163 + year_value_:=year_value_ +period_val_arr_(temp_period_count_);
11.5164 + CLOSE get_total_period_val_;
11.5165 +
11.5166 + END LOOP;
11.5167 +
11.5168 + END IF;
11.5169 +
11.5170 + newrec_.year_value:=year_value_;
11.5171 + newrec_.p1_value :=period_val_arr_(1);
11.5172 + newrec_.p2_value :=period_val_arr_(2);
11.5173 + newrec_.p3_value :=period_val_arr_(3);
11.5174 + newrec_.p4_value :=period_val_arr_(4);
11.5175 + newrec_.p5_value :=period_val_arr_(5);
11.5176 + newrec_.p6_value :=period_val_arr_(6);
11.5177 + newrec_.p7_value :=period_val_arr_(7);
11.5178 + newrec_.p8_value :=period_val_arr_(8);
11.5179 + newrec_.p9_value :=period_val_arr_(9);
11.5180 + newrec_.p10_value:=period_val_arr_(10);
11.5181 + newrec_.p11_value:=period_val_arr_(11);
11.5182 + newrec_.p12_value:=period_val_arr_(12);
11.5183 +
11.5184 + Update___(objid_,oldrec_,newrec_,attr_,objversion_,TRUE);
11.5185 + Scorecard_api.Set_To_Planned(environment_,scorecard_);
11.5186 + Scorecard_Input_Value_api.Set_To_Planned(environment_,scorecard_,year_,version_,scorecard_object_);
11.5187 +END Consolidate_Values;
11.5188 +PROCEDURE All_Hierarchical_Logic (
11.5189 + environment_ IN VARCHAR2,
11.5190 + scorecard_ IN VARCHAR2,
11.5191 + year_ IN VARCHAR2,
11.5192 + version_ IN VARCHAR2,
11.5193 + action_ IN VARCHAR2 )
11.5194 +IS
11.5195 + comp_level_ VARCHAR2(5);
11.5196 + period_count_ NUMBER;
11.5197 + measures_ VARCHAR2(10);
11.5198 + scorecard_object_ VARCHAR2(10);
11.5199 + newrec_ SCORECARD_INPUT_VALUE_TAB%ROWTYPE;
11.5200 + oldrec_ SCORECARD_INPUT_VALUE_TAB%ROWTYPE;
11.5201 + attr_ VARCHAR2(2000);
11.5202 + objid_ VARCHAR2(2000);
11.5203 + objversion_ VARCHAR2(2000);
11.5204 + get_childs_ VARCHAR2(10);
11.5205 + child_exists_ VARCHAR2(10);
11.5206 +
11.5207 +
11.5208 + CURSOR get_scorecard_objects(scorecard_ VARCHAR2) IS
11.5209 + SELECT scorecard_object
11.5210 + FROM scorecard_input_value_tab
11.5211 + WHERE environment = environment_
11.5212 + AND scorecard = scorecard_
11.5213 + AND year = year_
11.5214 + AND version = version_;
11.5215 +
11.5216 + CURSOR get_period_count IS
11.5217 + SELECT count(1)
11.5218 + FROM scorecard_period_tab
11.5219 + WHERE environment = environment_
11.5220 + AND year = year_;
11.5221 +
11.5222 + CURSOR get_scorecard_measures(scorecard_ VARCHAR2) IS
11.5223 + SELECT level_id
11.5224 + FROM scorecard_structure_tab
11.5225 + WHERE environment = environment_
11.5226 + AND scorecard = scorecard_
11.5227 + AND child_level_type = 'MEASURE';
11.5228 +
11.5229 + CURSOR get_childs IS
11.5230 + SELECT scorecard
11.5231 + FROM scorecard
11.5232 + WHERE environment = environment_
11.5233 + AND parent = scorecard_
11.5234 + AND objstate IN ('Open','Planned');
11.5235 +
11.5236 + CURSOR get_childs_for_cons IS
11.5237 + SELECT scorecard
11.5238 + FROM scorecard
11.5239 + WHERE environment = environment_
11.5240 + START WITH parent = scorecard_
11.5241 + CONNECT BY parent = PRIOR scorecard
11.5242 + AND environment = PRIOR environment
11.5243 + AND objstate IN ('Open','Planned')
11.5244 + ORDER BY level_sequence desc;
11.5245 +
11.5246 +BEGIN
11.5247 + General_SYS.Init_Method(lu_name_, '&PKG', 'All_Hierarchical_Logic');
11.5248 + child_exists_ := 'TRUE';
11.5249 + OPEN get_childs;
11.5250 + FETCH get_childs INTO get_childs_;
11.5251 + IF (get_childs%NOTFOUND) THEN
11.5252 + CLOSE get_childs;
11.5253 + child_exists_ := 'FALSE';
11.5254 + ELSE
11.5255 + CLOSE get_childs;
11.5256 + END IF;
11.5257 +
11.5258 + IF (child_exists_ = 'TRUE') THEN
11.5259 +
11.5260 + FOR get_scorecard_objects_ IN get_scorecard_objects(scorecard_) LOOP
11.5261 + scorecard_object_ := get_scorecard_objects_.scorecard_object;
11.5262 + oldrec_:=Lock_By_Keys___(environment_,scorecard_,year_,version_,scorecard_object_);
11.5263 + newrec_:=oldrec_;
11.5264 + newrec_.action:='TRUE';
11.5265 + Update___(objid_,oldrec_,newrec_,attr_,objversion_,TRUE);
11.5266 + END LOOP;
11.5267 +
11.5268 + measures_ := null;
11.5269 + comp_level_ := scorecard_environment_api.Get_Component_Level(environment_ );
11.5270 +
11.5271 + OPEN get_period_count;
11.5272 + FETCH get_period_count INTO period_count_;
11.5273 + CLOSE get_period_count;
11.5274 +
11.5275 + IF (action_ = 'DISTRIBUTION') THEN
11.5276 + IF (comp_level_ = 'TRUE') THEN
11.5277 + FOR get_scorecard_measures_ IN get_scorecard_measures(scorecard_) LOOP
11.5278 + measures_ := get_scorecard_measures_.level_id;
11.5279 + Hierachical_Distribution(environment_,scorecard_,year_,version_ ,'COMPONENT',period_count_,measures_);
11.5280 + END LOOP;
11.5281 + ELSE
11.5282 + Hierachical_Distribution(environment_,scorecard_,year_,version_ ,'MEASURE',period_count_,measures_);
11.5283 + END IF;
11.5284 + FOR get_childs_ IN get_childs LOOP
11.5285 + All_Hierarchical_Logic(environment_,get_childs_.scorecard,year_,version_ ,action_);
11.5286 + END LOOP;
11.5287 +
11.5288 + ELSIF (action_ = 'CONSOLIDATION') THEN
11.5289 + FOR get_childs_for_cons_ IN get_childs_for_cons LOOP
11.5290 + FOR get_scorecard_objects_ IN get_scorecard_objects(get_childs_for_cons_.scorecard) LOOP
11.5291 + scorecard_object_ := get_scorecard_objects_.scorecard_object;
11.5292 + oldrec_:=Lock_By_Keys___(environment_,get_childs_for_cons_.scorecard,year_,version_,scorecard_object_);
11.5293 + newrec_:=oldrec_;
11.5294 + newrec_.action:='TRUE';
11.5295 + Update___(objid_,oldrec_,newrec_,attr_,objversion_,TRUE);
11.5296 + END LOOP;
11.5297 + IF (Scorecard_API.Get_Child_Count(get_childs_for_cons_.scorecard,environment_) >=1) THEN
11.5298 + IF (comp_level_ = 'TRUE') THEN
11.5299 + FOR get_scorecard_measures_ IN get_scorecard_measures(get_childs_for_cons_.scorecard) LOOP
11.5300 + measures_ := get_scorecard_measures_.level_id;
11.5301 + Hierarchical_Consolidation(environment_,get_childs_for_cons_.scorecard,year_,version_ ,'COMPONENT',period_count_,measures_);
11.5302 + END LOOP;
11.5303 + ELSE
11.5304 + Hierarchical_Consolidation(environment_,get_childs_for_cons_.scorecard,year_,version_ ,'MEASURE',period_count_,measures_);
11.5305 + END IF;
11.5306 + END IF;
11.5307 + END LOOP;
11.5308 + -- for the selected scorecard
11.5309 + IF (Scorecard_API.Get_Child_Count(scorecard_,environment_) >=1) THEN
11.5310 + IF (comp_level_ = 'TRUE') THEN
11.5311 + FOR get_scorecard_measures_ IN get_scorecard_measures(scorecard_) LOOP
11.5312 + measures_ := get_scorecard_measures_.level_id;
11.5313 + Hierarchical_Consolidation(environment_,scorecard_,year_,version_ ,'COMPONENT',period_count_,measures_);
11.5314 + END LOOP;
11.5315 + ELSE
11.5316 + Hierarchical_Consolidation(environment_,scorecard_,year_,version_ ,'MEASURE',period_count_,measures_);
11.5317 + END IF;
11.5318 + END IF;
11.5319 + END IF;
11.5320 + END IF;
11.5321 +END All_Hierarchical_Logic;
11.5322 +PROCEDURE Call_Hierarchical_Logic (
11.5323 + attr_ IN VARCHAR2 )
11.5324 +IS
11.5325 + environment_ Scorecard_Environment_Tab.environment%TYPE;
11.5326 + scorecard_ Scorecard_Tab.scorecard%TYPE;
11.5327 + year_ VARCHAR2(20);
11.5328 + version_ VARCHAR2(20);
11.5329 + action_ VARCHAR2(30);
11.5330 +BEGIN
11.5331 + General_SYS.Init_Method(lu_name_, '&PKG', 'Call_Hierarchical_Logic');
11.5332 + environment_ := Client_SYS.Get_Item_Value('ENVIRONMENT' ,attr_);
11.5333 + scorecard_ := Client_SYS.Get_Item_Value('SCORECARD' ,attr_);
11.5334 + year_ := Client_SYS.Get_Item_Value('YEAR' ,attr_);
11.5335 + version_ := Client_SYS.Get_Item_Value('VERSION' ,attr_);
11.5336 + action_ := Client_SYS.Get_Item_Value('ACTION' ,attr_);
11.5337 + Scorecard_Input_Value_API.All_Hierarchical_Logic(environment_,scorecard_,year_,version_,action_);
11.5338 +END Call_Hierarchical_Logic;
11.5339 +PROCEDURE Start_Hierarchical_Logic (
11.5340 + attr_ IN VARCHAR2 )
11.5341 +IS
11.5342 + new_attr_ VARCHAR2(2000) := attr_;
11.5343 + desc_ VARCHAR2(2000);
11.5344 +BEGIN
11.5345 + General_SYS.Init_Method(lu_name_, '&PKG', 'Start_Hierarchical_Logic');
11.5346 + desc_ := Language_SYS.Translate_Constant (lu_name_, 'BGJOB_HR_LOGIC:Update Scorecard objects in the scorecard input value according to the hierarchical logic.');
11.5347 + Transaction_SYS.Deferred_Call ('Scorecard_Input_Value_API.Call_Hierarchical_Logic',new_attr_, desc_);
11.5348 +END Start_Hierarchical_Logic;
11.5349 +PROCEDURE Background_Hierarchical_Logic (
11.5350 + environment_ IN VARCHAR2,
11.5351 + scorecard_ IN VARCHAR2,
11.5352 + year_ IN VARCHAR2,
11.5353 + version_ IN VARCHAR2,
11.5354 + action_ IN VARCHAR2,
11.5355 + execution_plan_ IN VARCHAR2 )
11.5356 +IS
11.5357 + job_id_ NUMBER;
11.5358 + method_ VARCHAR2(2000);
11.5359 + attr_ VARCHAR2(2000);
11.5360 +BEGIN
11.5361 + General_SYS.Init_Method(lu_name_, 'Scorecard_Input_Value_API','Background_Hierarchical_Logic');
11.5362 + Client_SYS.Clear_Attr(attr_);
11.5363 + Client_SYS.Add_To_Attr('ENVIRONMENT',environment_,attr_);
11.5364 + Client_SYS.Add_To_Attr('SCORECARD',scorecard_ ,attr_);
11.5365 + Client_SYS.Add_To_Attr('YEAR',year_ ,attr_);
11.5366 + Client_SYS.Add_To_Attr('VERSION',version_ ,attr_);
11.5367 + Client_SYS.Add_To_Attr('ACTION',action_ ,attr_);
11.5368 + method_:='Scorecard_Input_Value_API.Start_Hierarchical_Logic_('''''||attr_||''''')';
11.5369 + IF (execution_plan_ != 'NOW') THEN
11.5370 + Batch_SYS.New_Job(job_id_,method_,execution_plan_);
11.5371 + ELSE
11.5372 + Start_Hierarchical_Logic(attr_);
11.5373 + END IF;
11.5374 +END Background_Hierarchical_Logic;
11.5375 +PROCEDURE Set_To_Planned (
11.5376 + environment_ IN VARCHAR2,
11.5377 + scorecard_ IN VARCHAR2,
11.5378 + year_ IN VARCHAR2,
11.5379 + version_ IN VARCHAR2,
11.5380 + scorecard_object_ IN VARCHAR2 )
11.5381 +IS
11.5382 + rec_ SCORECARD_INPUT_VALUE%ROWTYPE;
11.5383 + rec2_ SCORECARD_INPUT_VALUE_TAB%ROWTYPE;
11.5384 + attr_ VARCHAR2(2000);
11.5385 + info_ VARCHAR2(32000);
11.5386 + objver_ VARCHAR2(2000);
11.5387 + CURSOR get_attr IS
11.5388 + SELECT *
11.5389 + FROM SCORECARD_INPUT_VALUE
11.5390 + WHERE environment=environment_
11.5391 + AND scorecard=scorecard_
11.5392 + AND year=year_
11.5393 + AND version=version_
11.5394 + AND scorecard_object=scorecard_object_;
11.5395 +BEGIN
11.5396 + General_SYS.Init_Method(lu_name_, 'SCORECARD_INPUT_VALUE_API', 'Set_To_Planned');
11.5397 + OPEN get_attr;
11.5398 + FETCH get_attr INTO rec_;
11.5399 + CLOSE get_attr;
11.5400 + Client_SYS.Clear_Attr(attr_);
11.5401 + Client_SYS.Add_To_Attr ('OBJID', rec_.objid, attr_);
11.5402 + Client_SYS.Add_To_Attr ('OBJVERSION', rec_.objversion, attr_);
11.5403 + --rec2_:=Lock_By_Keys___(environment_,scorecard_,year_,version_,scorecard_object_);
11.5404 + --objver_:= to_char(rec2_.rowversion,'YYYYMMDDHH24MISS');
11.5405 + --Plan__(info_,rec_.objid,objver_,attr_,'DO');
11.5406 + Plan__(info_,rec_.objid,rec_.objversion,attr_,'DO');
11.5407 + Client_SYS.Clear_Attr(attr_);
11.5408 +END Set_To_Planned;
11.5409 +FUNCTION Get_Sco_Obj_State_Date (
11.5410 + environment_ IN VARCHAR2,
11.5411 + scorecard_ IN VARCHAR2,
11.5412 + measure_ IN VARCHAR2 ) RETURN DATE
11.5413 +IS
11.5414 + temp_ &TABLE..mea_state_change_date%TYPE;
11.5415 + CURSOR get_attr IS
11.5416 + SELECT max(mea_state_change_date)
11.5417 + FROM &TABLE
11.5418 + WHERE environment = environment_
11.5419 + AND scorecard = scorecard_
11.5420 + AND scorecard_object = measure_;
11.5421 +BEGIN
11.5422 + OPEN get_attr;
11.5423 + FETCH get_attr INTO temp_;
11.5424 + CLOSE get_attr;
11.5425 + RETURN temp_;
11.5426 +END Get_Sco_Obj_State_Date;
11.5427 +PROCEDURE Budget_And_Calculate (
11.5428 + components_not_used_ OUT VARCHAR2,
11.5429 + company_ IN VARCHAR2,
11.5430 + environment_ IN VARCHAR2,
11.5431 + scorecard_ IN VARCHAR2,
11.5432 + year_ IN VARCHAR2,
11.5433 + measure_ IN VARCHAR2,
11.5434 + version_ IN VARCHAR2,
11.5435 + budget_version_ IN VARCHAR2,
11.5436 + component_list_ IN VARCHAR2 )
11.5437 +IS
11.5438 +
11.5439 + TYPE RefCurTyp IS REF CURSOR;
11.5440 + scorecard_input_rec_ RefCurTyp;
11.5441 + budget_period_rec_ RefCurTyp;
11.5442 + source_stmt_ VARCHAR2(2000);
11.5443 + code_part_str_ VARCHAR2(50);
11.5444 + code_part_values_ VARCHAR2(2000);
11.5445 + account_list_ VARCHAR2(2000);
11.5446 + component_rec_ SCORECARD_MEASURE_TAB%ROWTYPE;
11.5447 + period_val_ SCORECARD_PERIOD_TAB.PERIOD_MATCH_IDENTITY%TYPE;
11.5448 + temp_input_val_rec_ SCORECARD_INPUT_VALUE_TAB%ROWTYPE;
11.5449 + code_part_value_ VARCHAR2(20);
11.5450 + scr_code_part_ VARCHAR2(20);
11.5451 + in_values_ VARCHAR2(2000);
11.5452 + input_value_tab_stmt_ VARCHAR2(2000);
11.5453 + table_name_ VARCHAR2(50);
11.5454 + aggregated_value_ NUMBER;
11.5455 + budget_year_ NUMBER;
11.5456 + new_account_list_ VARCHAR2(2000);
11.5457 + replace_from_ VARCHAR2(1) ;
11.5458 + replace_with_ VARCHAR2(4);
11.5459 + count_period_ NUMBER;
11.5460 + TYPE PeriodMatchType IS TABLE OF NUMBER
11.5461 + INDEX BY BINARY_INTEGER;
11.5462 + per_match_identity_type_ PeriodMatchType;
11.5463 + newrec_ SCORECARD_INPUT_VALUE_TAB%ROWTYPE;
11.5464 + oldrec_ SCORECARD_INPUT_VALUE_TAB%ROWTYPE;
11.5465 + objid_ VARCHAR2(2000);
11.5466 + attr_ VARCHAR2(2000);
11.5467 + objversion_ VARCHAR2(2000);
11.5468 + is_visited_ BOOLEAN:=false;
11.5469 + field_separator_ CONSTANT VARCHAR2(1) := chr(31);
11.5470 + i NUMBER;
11.5471 + count_ NUMBER;
11.5472 + mea_type_ VARCHAR2(20);
11.5473 + total_value_ NUMBER;
11.5474 + avg_value_ NUMBER;
11.5475 +
11.5476 +CURSOR get_comp_details (comp_ VARCHAR2) IS
11.5477 + SELECT * FROM SCORECARD_MEASURE_TAB
11.5478 + WHERE measure = comp_;
11.5479 +
11.5480 +CURSOR get_period_details IS
11.5481 + SELECT period_match_identity FROM SCORECARD_PERIOD_TAB
11.5482 + WHERE Environment = environment_
11.5483 + AND YEAR = year_
11.5484 + ORDER BY end_date;
11.5485 +
11.5486 +CURSOR get_code_part IS
11.5487 + SELECT scorecard_code_part FROM SCORECARD_ENVIRONMENT_TAB
11.5488 + WHERE environment = environment_;
11.5489 +
11.5490 +
11.5491 +BEGIN
11.5492 + General_SYS.Init_Method(lu_name_, 'Scorecard_Input_Value_API','Budget_And_Calculate');
11.5493 + replace_from_:=',';
11.5494 + replace_with_:=''',''';
11.5495 + count_period_ :=1;
11.5496 +
11.5497 + in_values_:=Replace(component_list_,'^','''');
11.5498 +
11.5499 + table_name_ :='SCORECARD_INPUT_VALUE_TAB';
11.5500 + input_value_tab_stmt_ := ' SELECT * FROM ' || table_name_ ||
11.5501 + ' WHERE environment ='|| '''' ||environment_ || '''' ||
11.5502 + ' AND scorecard =' ||'''' ||scorecard_ || '''' ||
11.5503 + ' AND year =' ||'''' ||year_ || '''' ||
11.5504 + ' AND version =' ||'''' || version_ || '''' ||
11.5505 + ' AND scorecard_object in (' || in_values_ || ')';
11.5506 +
11.5507 + OPEN get_code_part;
11.5508 + FETCH get_code_part INTO scr_code_part_;
11.5509 + CLOSE get_code_part;
11.5510 +
11.5511 + IF NOT scr_code_part_ IS NULL THEN
11.5512 + code_part_values_ := scorecard_attribute_api.Get_Value(environment_,scorecard_,'CODE_PART_VALUE');
11.5513 + code_part_values_:=Replace(code_part_values_,replace_from_,replace_with_);
11.5514 + code_part_str_ :=' AND CODE_' || scr_code_part_ || ' IN ( ' || '''' || code_part_values_ || '''' ||' )';
11.5515 + ELSE
11.5516 + code_part_str_ :='';
11.5517 + END IF;
11.5518 +
11.5519 + -- since table_name_ is hardcoded we can set asserted
11.5520 + -- ifs_assert_safe shsalk 20060117
11.5521 + open scorecard_input_rec_ for input_value_tab_stmt_;
11.5522 +
11.5523 + OPEN get_period_details;
11.5524 + LOOP
11.5525 + FETCH get_period_details INTO period_val_;
11.5526 + EXIT WHEN get_period_details%NOTFOUND;
11.5527 + per_match_identity_type_(count_period_):=period_val_;
11.5528 + count_period_ :=count_period_+1;
11.5529 + END LOOP;
11.5530 +
11.5531 + CLOSE get_period_details;
11.5532 +
11.5533 + count_:= count_period_ - 1 ;
11.5534 +
11.5535 + LOOP
11.5536 + source_stmt_ :='SELECT ';
11.5537 +
11.5538 + FETCH scorecard_input_rec_ INTO temp_input_val_rec_;
11.5539 + EXIT WHEN scorecard_input_rec_%NOTFOUND;
11.5540 +
11.5541 + OPEN get_comp_details(temp_input_val_rec_.scorecard_object);
11.5542 + FETCH get_comp_details INTO component_rec_;
11.5543 + CLOSE get_comp_details;
11.5544 +
11.5545 + -- check amount type
11.5546 + --'AMTBAL^CURBAL^QTYBAL^PROJBAL^PROJQTY^PRJCURBAL^';
11.5547 + IF component_rec_.amount_type = 'AMTBAL' THEN
11.5548 + source_stmt_ := source_stmt_ || 'SUM(DECODE(LOGICAL_ACCOUNT_TYPE,' || '''' ||'L' || '''' ||',' || '-AMOUNT' || ',' || '''' || 'R' || '''' || ',' ||'-AMOUNT' || ',' || 'AMOUNT'|| '))' || ',YEAR_PERIOD_KEY ';
11.5549 + ELSIF component_rec_.amount_type = 'CURBAL' THEN
11.5550 + source_stmt_ := source_stmt_ || 'SUM(DECODE(LOGICAL_ACCOUNT_TYPE,' || '''' ||'L' || '''' ||',' || '-THIRD_CURRENCY_AMOUNT' || ',' || '''' || 'R' || '''' || ',' ||'-THIRD_CURRENCY_AMOUNT' || ',' || 'THIRD_CURRENCY_AMOUNT'|| '))' || ',YEAR_PERIOD_KEY ';
11.5551 + ELSIF component_rec_.amount_type = 'QTYBAL' THEN
11.5552 + source_stmt_ := source_stmt_ || 'SUM(DECODE(LOGICAL_ACCOUNT_TYPE,' || '''' ||'L' || '''' ||',' || '-QUANTITY' || ',' || '''' || 'R' || '''' || ',' ||'-QUANTITY' || ',' || 'QUANTITY'|| '))' || ',YEAR_PERIOD_KEY ';
11.5553 + ELSIF component_rec_.amount_type = 'PROJBAL' THEN
11.5554 + source_stmt_ := source_stmt_ || 'SUM(DECODE(LOGICAL_ACCOUNT_TYPE,' || '''' ||'L' || '''' ||',' || '-AMOUNT' || ',' || '''' || 'R' || '''' || ',' ||'-AMOUNT' || ',' || 'AMOUNT'|| '))' || ',YEAR_PERIOD_KEY ';
11.5555 + ELSIF component_rec_.amount_type = 'PRJCURBAL' THEN
11.5556 + source_stmt_ := source_stmt_ || 'SUM(DECODE(LOGICAL_ACCOUNT_TYPE,' || '''' ||'L' || '''' ||',' || '-THIRD_CURRENCY_AMOUNT' || ',' || '''' || 'R' || '''' || ',' ||'-THIRD_CURRENCY_AMOUNT' || ',' || 'THIRD_CURRENCY_AMOUNT'|| '))' || ',YEAR_PERIOD_KEY ';
11.5557 + ELSIF component_rec_.amount_type = 'PROJQTY' THEN
11.5558 + source_stmt_ := source_stmt_ || 'SUM(DECODE(LOGICAL_ACCOUNT_TYPE,' || '''' ||'L' || '''' ||',' || '-QUANTITY' || ',' || '''' || 'R' || '''' || ',' ||'-QUANTITY' || ',' || 'QUANTITY'|| '))' || ',YEAR_PERIOD_KEY ';
11.5559 + END IF;
11.5560 +
11.5561 + source_stmt_ :=source_stmt_ || ' FROM budget_period_amount_pub
11.5562 + WHERE COMPANY=:c_company
11.5563 + AND BUDGET_VERSION=:b_budget_Version
11.5564 + AND BUDGET_YEAR=:b_budget_year';
11.5565 +
11.5566 + source_stmt_ := source_stmt_ || code_part_str_ ;
11.5567 +
11.5568 +
11.5569 + -- Add ledger Id
11.5570 + source_stmt_ := source_stmt_ || ' AND LEDGER_ID=:l_ledger_id ' ;
11.5571 +
11.5572 + -- Add account list
11.5573 + account_list_:=bp_measure_accounts_api.Get_Measure_Accounts(temp_input_val_rec_.scorecard_object);
11.5574 + IF NOT account_list_ IS null THEN
11.5575 + new_account_list_ := '''' || Replace(account_list_,replace_from_,replace_with_) || '''' ;
11.5576 + source_stmt_ := source_stmt_ || ' AND ACCOUNT IN ( ' || new_account_list_ || ') ' ;
11.5577 + END IF;
11.5578 +
11.5579 + -- check amount type
11.5580 + IF component_rec_.amount_type = 'PROJBAL' OR component_rec_.amount_type = 'PROJQTY' OR component_rec_.amount_type ='PRJCURBAL' THEN
11.5581 + source_stmt_ := source_stmt_ || 'AND Project_Id IS NOT NULL';
11.5582 + END IF;
11.5583 + source_stmt_ := source_stmt_ || 'GROUP BY year_period_key';
11.5584 +
11.5585 + oldrec_:=scorecard_input_value_api.Lock_By_Keys___(environment_,scorecard_,year_,version_,temp_input_val_rec_.scorecard_object);
11.5586 + newrec_:=oldrec_;
11.5587 +
11.5588 + -- Initialize field values
11.5589 +
11.5590 + newrec_.p1_value :=NULL;
11.5591 + newrec_.p2_value :=NULL;
11.5592 + newrec_.p3_value :=NULL;
11.5593 + newrec_.p4_value :=NULL;
11.5594 + newrec_.p4_value :=NULL;
11.5595 + newrec_.p5_value :=NULL;
11.5596 + newrec_.p6_value :=NULL;
11.5597 + newrec_.p7_value :=NULL;
11.5598 + newrec_.p8_value :=NULL;
11.5599 + newrec_.p9_value :=NULL;
11.5600 + newrec_.p10_value :=NULL;
11.5601 + newrec_.p11_value :=NULL;
11.5602 + newrec_.p12_value :=NULL;
11.5603 +
11.5604 + -- ifs_assert_safe shsalk 20060117
11.5605 + OPEN budget_period_rec_ FOR source_stmt_ USING company_,budget_version_,year_,component_rec_.ledger_id;
11.5606 + count_period_ :=1;
11.5607 + is_visited_:=false;
11.5608 + LOOP
11.5609 + FETCH budget_period_rec_ INTO aggregated_value_,budget_year_;
11.5610 + EXIT WHEN budget_period_rec_%NOTFOUND;
11.5611 +
11.5612 + FOR i IN 1..count_ LOOP
11.5613 + IF budget_year_ = per_match_identity_type_(i) THEN
11.5614 + count_period_:=i;
11.5615 + EXIT;
11.5616 + END IF;
11.5617 + END LOOP;
11.5618 +
11.5619 + CASE count_period_
11.5620 + WHEN 1 THEN newrec_.p1_value :=aggregated_value_;
11.5621 + WHEN 2 THEN newrec_.p2_value :=aggregated_value_;
11.5622 + WHEN 3 THEN newrec_.p3_value :=aggregated_value_;
11.5623 + WHEN 4 THEN newrec_.p4_value :=aggregated_value_;
11.5624 + WHEN 5 THEN newrec_.p5_value :=aggregated_value_;
11.5625 + WHEN 6 THEN newrec_.p6_value :=aggregated_value_;
11.5626 + WHEN 7 THEN newrec_.p7_value :=aggregated_value_;
11.5627 + WHEN 8 THEN newrec_.p8_value :=aggregated_value_;
11.5628 + WHEN 9 THEN newrec_.p9_value :=aggregated_value_;
11.5629 + WHEN 10 THEN newrec_.p10_value:=aggregated_value_;
11.5630 + WHEN 11 THEN newrec_.p11_value:=aggregated_value_;
11.5631 + WHEN 12 THEN newrec_.p12_value:=aggregated_value_;
11.5632 + ELSE Error_SYS.Appl_General(lu_name_,'SCOINPUTVALLOADMES22: Invaild no of periods');
11.5633 + END CASE;
11.5634 +
11.5635 + is_visited_:=true;
11.5636 +
11.5637 + END LOOP;
11.5638 + CLOSE budget_period_rec_;
11.5639 +
11.5640 + IF NOT is_visited_ THEN
11.5641 + components_not_used_:=components_not_used_|| scorecard_measure_api.Get_Description(temp_input_val_rec_.scorecard_object) || field_separator_;
11.5642 + END IF;
11.5643 +
11.5644 + newrec_.budget_version:=budget_version_;
11.5645 +
11.5646 + newrec_.p1_value :=NVL(newrec_.p1_value,0);
11.5647 + newrec_.p2_value :=NVL(newrec_.p2_value,0);
11.5648 + newrec_.p3_value :=NVL(newrec_.p3_value,0);
11.5649 + newrec_.p4_value :=NVL(newrec_.p4_value,0);
11.5650 + newrec_.p5_value :=NVL(newrec_.p5_value,0);
11.5651 + newrec_.p6_value :=NVL(newrec_.p6_value,0);
11.5652 + newrec_.p7_value :=NVL(newrec_.p7_value,0);
11.5653 + newrec_.p8_value :=NVL(newrec_.p8_value,0);
11.5654 + newrec_.p9_value :=NVL(newrec_.p9_value,0);
11.5655 + newrec_.p10_value:=NVL(newrec_.p10_value,0);
11.5656 + newrec_.p11_value:=NVL(newrec_.p11_value,0);
11.5657 + newrec_.p12_value:=NVL(newrec_.p12_value,0);
11.5658 +
11.5659 + mea_type_ := scorecard_Measure_api.Get_Measure_Type_Db(temp_input_val_rec_.scorecard_object);
11.5660 + total_value_ := newrec_.p1_value+newrec_.p2_value+newrec_.p3_value+newrec_.p4_value+newrec_.p5_value+newrec_.p6_value+newrec_.p7_value+newrec_.p8_value+newrec_.p9_value+newrec_.p10_value+newrec_.p11_value+newrec_.p12_value;
11.5661 + IF mea_type_ = 'PERCENTAGE' THEN
11.5662 + avg_value_ := total_value_/count_;
11.5663 + newrec_.year_value := avg_value_;
11.5664 + ELSIF mea_type_ = 'VALUE' THEN
11.5665 + newrec_.year_value := total_value_;
11.5666 + END IF;
11.5667 + scorecard_input_value_api.Update___(objid_,oldrec_,newrec_,attr_,objversion_,TRUE);
11.5668 + END LOOP;
11.5669 + close scorecard_input_rec_;
11.5670 + scorecard_input_value_api.Calculate_Measures (environment_,scorecard_ ,year_,version_,measure_,12);
11.5671 +END Budget_And_Calculate;
11.5672 +
11.5673 +PROCEDURE Get_Error_Msg_For_Comp (
11.5674 + plan_formula_ IN OUT VARCHAR2,
11.5675 + check_value_ IN VARCHAR2 )
11.5676 +IS
11.5677 + invalid_comp_ NUMBER;
11.5678 +BEGIN
11.5679 + General_SYS.Init_Method(lu_name_, '&PKG', 'Get_Error_Msg_For_Comp');
11.5680 + IF (check_value_ = 'TRUE') THEN
11.5681 + plan_formula_ := 'NULL';
11.5682 + ELSE
11.5683 + invalid_comp_ := INSTR(plan_formula_,'COMP', 1, 1);
11.5684 + IF invalid_comp_ <> 0 THEN
11.5685 + Error_SYS.Appl_General(lu_name_,'INPVALCOMPNFND: A component in Calculation formula is not found ');
11.5686 + END IF;
11.5687 + END IF;
11.5688 +END Get_Error_Msg_For_Comp;
11.5689 +PROCEDURE Return_Periods (
11.5690 + period1_ OUT VARCHAR2,
11.5691 + period2_ OUT VARCHAR2,
11.5692 + period3_ OUT VARCHAR2,
11.5693 + period4_ OUT VARCHAR2,
11.5694 + period5_ OUT VARCHAR2,
11.5695 + period6_ OUT VARCHAR2,
11.5696 + period7_ OUT VARCHAR2,
11.5697 + period8_ OUT VARCHAR2,
11.5698 + period9_ OUT VARCHAR2,
11.5699 + period10_ OUT VARCHAR2,
11.5700 + period11_ OUT VARCHAR2,
11.5701 + period12_ OUT VARCHAR2,
11.5702 + env_ IN VARCHAR2,
11.5703 + year_ IN VARCHAR2 )
11.5704 +IS
11.5705 + per_no NUMBER;
11.5706 + period_ VARCHAR2(10);
11.5707 + CURSOR get_period IS
11.5708 + SELECT period
11.5709 + FROM scorecard_period_tab
11.5710 + WHERE environment = env_
11.5711 + AND year = year_
11.5712 + ORDER BY end_date;
11.5713 +
11.5714 + CURSOR get_periodCount IS
11.5715 + SELECT count (1)
11.5716 + FROM scorecard_period_tab
11.5717 + WHERE environment = env_
11.5718 + AND year = year_;
11.5719 +BEGIN
11.5720 + General_SYS.Init_Method(lu_name_, '&PKG', 'Return_Periods');
11.5721 + OPEN get_periodCount;
11.5722 + FETCH get_periodCount INTO per_no;
11.5723 + CLOSE get_periodCount;
11.5724 +
11.5725 + OPEN get_period;
11.5726 + period1_ := null;
11.5727 + period2_ := null;
11.5728 + period3_ := null;
11.5729 + period4_ := null;
11.5730 + period5_ := null;
11.5731 + period6_ := null;
11.5732 + period7_ := null;
11.5733 + period8_ := null;
11.5734 + period9_ := null;
11.5735 + period10_ := null;
11.5736 + period11_ := null;
11.5737 + period12_ := null;
11.5738 +
11.5739 + FOR i IN 1..per_no LOOP
11.5740 + FETCH get_period INTO period_;
11.5741 + IF (i = 1) THEN
11.5742 + period1_ := period_;
11.5743 + ELSIF (i = 2) THEN
11.5744 + period2_ := period_;
11.5745 + ELSIF (i = 3) THEN
11.5746 + period3_ := period_;
11.5747 + ELSIF (i = 4) THEN
11.5748 + period4_ := period_;
11.5749 + ELSIF (i = 5) THEN
11.5750 + period5_ := period_;
11.5751 + ELSIF (i = 6) THEN
11.5752 + period6_ := period_;
11.5753 + ELSIF (i = 7) THEN
11.5754 + period7_ := period_;
11.5755 + ELSIF (i = 8) THEN
11.5756 + period8_ := period_;
11.5757 + ELSIF (i = 9) THEN
11.5758 + period9_ := period_;
11.5759 + ELSIF (i = 10) THEN
11.5760 + period10_ := period_;
11.5761 + ELSIF (i = 11) THEN
11.5762 + period11_ := period_;
11.5763 + ELSIF (i = 12) THEN
11.5764 + period12_ := period_;
11.5765 + END IF;
11.5766 + END LOOP;
11.5767 + CLOSE get_period;
11.5768 +
11.5769 +END Return_Periods;
11.5770 +PROCEDURE Import_Planned_Values(
11.5771 + environment_ IN VARCHAR2,
11.5772 + scorecard_ IN VARCHAR2,
11.5773 + p_year_ IN VARCHAR2,
11.5774 + version_ IN VARCHAR2,
11.5775 + scorecard_object_ IN VARCHAR2,
11.5776 + key_value_attr_ IN VARCHAR2)
11.5777 +IS
11.5778 + year_ &TABLE..year%TYPE;
11.5779 + key_ &TABLE..p1_key%TYPE;
11.5780 + trans_value_ &TABLE..p1_value%TYPE;
11.5781 +
11.5782 + ptr_ NUMBER;
11.5783 + name_ VARCHAR2(30);
11.5784 + column_ VARCHAR2(30);
11.5785 + value_ VARCHAR2(2000);
11.5786 + info_ VARCHAR2(2000);
11.5787 + objid_ VARCHAR2(2000);
11.5788 + objversion_ VARCHAR2(2000);
11.5789 + attr_ VARCHAR2(2000);
11.5790 +
11.5791 + CURSOR get_update_record IS
11.5792 + SELECT objid, objversion
11.5793 + FROM &VIEW
11.5794 + WHERE environment = environment_
11.5795 + AND scorecard = scorecard_
11.5796 + AND year = year_
11.5797 + AND version = version_
11.5798 + AND scorecard_object = scorecard_object_;
11.5799 +BEGIN
11.5800 + General_SYS.Init_Method(lu_name_, '&PKG', 'Import_Planned_Values');
11.5801 + ptr_ := NULL;
11.5802 +
11.5803 + LOOP
11.5804 +
11.5805 + WHILE ( Client_SYS.Get_Next_From_Attr(key_value_attr_, ptr_, name_, value_) ) LOOP
11.5806 +
11.5807 + IF (name_ = 'KEY') THEN
11.5808 + key_ := value_;
11.5809 + year_ := Scorecard_Period_API.Get_Year(environment_,
11.5810 + key_);
11.5811 + ELSIF (name_ = 'VALUE') THEN
11.5812 + trans_value_ := value_;
11.5813 + EXIT;
11.5814 + END IF;
11.5815 +
11.5816 + END LOOP;
11.5817 +
11.5818 + column_ := Find_Column___(environment_,
11.5819 + scorecard_,
11.5820 + year_,
11.5821 + version_,
11.5822 + scorecard_object_,
11.5823 + key_);
11.5824 + OPEN get_update_record;
11.5825 + FETCH get_update_record INTO objid_, objversion_;
11.5826 +
11.5827 + IF ((get_update_record%FOUND) AND (column_ IS NOT NULL)) THEN
11.5828 + Client_SYS.Clear_Attr(attr_);
11.5829 + Client_SYS.Add_To_Attr(column_, trans_value_, attr_);
11.5830 + Client_SYS.Add_To_Attr('FROM_BUDPRO', 'TRUE', attr_);
11.5831 + Modify__(info_, objid_, objversion_, attr_, 'DO');
11.5832 + Calculate_Year_Value(environment_,
11.5833 + scorecard_,
11.5834 + year_,
11.5835 + version_,
11.5836 + scorecard_object_,
11.5837 + 'TRUE');
11.5838 + /*Calculate_Measures(environment_,
11.5839 + scorecard_,
11.5840 + year_,
11.5841 + version_,
11.5842 + scorecard_object_,
11.5843 + 12);*/
11.5844 + END IF;
11.5845 +
11.5846 + CLOSE get_update_record;
11.5847 + EXIT WHEN NOT (Client_SYS.Get_Next_From_Attr(key_value_attr_, ptr_, name_, value_));
11.5848 +
11.5849 + END LOOP;
11.5850 +
11.5851 +END Import_Planned_Values;
11.5852 +
11.5853 +PROCEDURE Calculate_Year_Value (
11.5854 + environment_ IN VARCHAR2,
11.5855 + scorecard_ IN VARCHAR2,
11.5856 + year_ IN VARCHAR2,
11.5857 + version_ IN VARCHAR2,
11.5858 + measure_ IN VARCHAR2,
11.5859 + from_budpro_ IN VARCHAR2 DEFAULT 'FALSE' )
11.5860 +IS
11.5861 + total_ &TABLE..year_value%TYPE := 0;
11.5862 + measure_type_ scorecard_measure_tab.measure_type%TYPE;
11.5863 +
11.5864 + objid_ VARCHAR2(2000);
11.5865 + objversion_ VARCHAR2(2000);
11.5866 + info_ VARCHAR2(2000);
11.5867 + attr_ VARCHAR2(2000);
11.5868 + count_ NUMBER := 0;
11.5869 + formula_p1_ NUMBER;
11.5870 + formula_p2_ NUMBER;
11.5871 + formula_p3_ NUMBER;
11.5872 + formula_p4_ NUMBER;
11.5873 + formula_p5_ NUMBER;
11.5874 + formula_p6_ NUMBER;
11.5875 + formula_p7_ NUMBER;
11.5876 + formula_p8_ NUMBER;
11.5877 + formula_p9_ NUMBER;
11.5878 + formula_p10_ NUMBER;
11.5879 + formula_p11_ NUMBER;
11.5880 + formula_p12_ NUMBER;
11.5881 +
11.5882 + CURSOR measure_value IS
11.5883 + SELECT objid,objversion,P1_Value,P2_Value,P3_Value,P4_Value,P5_Value,P6_Value,P7_Value,P8_Value,P9_Value,P10_Value,P11_Value,P12_Value
11.5884 + FROM &VIEW
11.5885 + WHERE environment = environment_
11.5886 + AND scorecard = scorecard_
11.5887 + AND year = year_
11.5888 + AND version = version_
11.5889 + AND scorecard_object = measure_;
11.5890 +BEGIN
11.5891 + General_SYS.Init_Method(lu_name_, '&PKG', 'Calculate_Year_Value');
11.5892 + measure_type_ := Scorecard_measure_API.Get_Measure_Type_Db(measure_);
11.5893 + OPEN measure_value;
11.5894 + FETCH measure_value INTO objid_, objversion_, formula_p1_, formula_p2_, formula_p3_, formula_p4_, formula_p5_,
11.5895 + formula_p6_, formula_p7_, formula_p8_, formula_p9_, formula_p10_, formula_p11_, formula_p12_;
11.5896 + CLOSE measure_value;
11.5897 +
11.5898 + IF (formula_p1_ IS NOT NULL) THEN
11.5899 + total_ := total_ + formula_p1_;
11.5900 + count_ := count_ + 1;
11.5901 + END IF;
11.5902 +
11.5903 + IF (formula_p2_ IS NOT NULL) THEN
11.5904 + total_ := total_ + formula_p2_;
11.5905 + count_ := count_ + 1;
11.5906 + END IF;
11.5907 +
11.5908 + IF (formula_p3_ IS NOT NULL) THEN
11.5909 + total_ := total_ + formula_p3_;
11.5910 + count_ := count_ + 1;
11.5911 + END IF;
11.5912 +
11.5913 + IF (formula_p4_ IS NOT NULL) THEN
11.5914 + total_ := total_ + formula_p4_;
11.5915 + count_ := count_ + 1;
11.5916 + END IF;
11.5917 +
11.5918 + IF (formula_p5_ IS NOT NULL) THEN
11.5919 + total_ := total_ + formula_p5_;
11.5920 + count_ := count_ + 1;
11.5921 + END IF;
11.5922 +
11.5923 + IF (formula_p6_ IS NOT NULL) THEN
11.5924 + total_ := total_ + formula_p6_;
11.5925 + count_ := count_ + 1;
11.5926 + END IF;
11.5927 +
11.5928 + IF (formula_p7_ IS NOT NULL) THEN
11.5929 + total_ := total_ + formula_p7_;
11.5930 + count_ := count_ + 1;
11.5931 + END IF;
11.5932 +
11.5933 + IF (formula_p8_ IS NOT NULL) THEN
11.5934 + total_ := total_ + formula_p8_;
11.5935 + count_ := count_ + 1;
11.5936 + END IF;
11.5937 +
11.5938 + IF (formula_p9_ IS NOT NULL) THEN
11.5939 + total_ := total_ + formula_p9_;
11.5940 + count_ := count_ + 1;
11.5941 + END IF;
11.5942 +
11.5943 + IF (formula_p10_ IS NOT NULL) THEN
11.5944 + total_ := total_ + formula_p10_;
11.5945 + count_ := count_ + 1;
11.5946 + END IF;
11.5947 +
11.5948 + IF (formula_p11_ IS NOT NULL) THEN
11.5949 + total_ := total_ + formula_p11_;
11.5950 + count_ := count_ + 1;
11.5951 + END IF;
11.5952 +
11.5953 + IF (formula_p12_ IS NOT NULL) THEN
11.5954 + total_ := total_ + formula_p12_;
11.5955 + count_ := count_ + 1;
11.5956 + END IF;
11.5957 +
11.5958 + IF (measure_type_ = 'PERCENTAGE' AND count_ > 0) THEN
11.5959 + total_ := total_ / count_;
11.5960 + ELSIF NOT(measure_type_ = 'VALUE') THEN
11.5961 + total_ := NULL;
11.5962 + END IF;
11.5963 +
11.5964 + IF (total_ IS NOT NULL) THEN
11.5965 + Client_SYS.Clear_Attr(attr_);
11.5966 + Client_SYS.Add_To_Attr('YEAR_VALUE', total_, attr_);
11.5967 + Client_SYS.Add_To_Attr('FROM_BUDPRO', from_budpro_, attr_);
11.5968 + Modify__(info_, objid_, objversion_, attr_ , 'DO');
11.5969 + END IF;
11.5970 +
11.5971 +END Calculate_Year_Value;
11.5972 +PROCEDURE Aggregate_Planned_Values(
11.5973 + environment_ IN VARCHAR2,
11.5974 + scorecard_ IN VARCHAR2,
11.5975 + year_ IN VARCHAR2,
11.5976 + version_ IN VARCHAR2,
11.5977 + scorecard_object_ IN VARCHAR2,
11.5978 + type_ IN VARCHAR2)
11.5979 +IS
11.5980 + my_year_ &TABLE..year%TYPE;
11.5981 + num_ NUMBER;
11.5982 +
11.5983 + CURSOR get_update_record IS
11.5984 + SELECT 1
11.5985 + FROM &VIEW
11.5986 + WHERE environment = environment_
11.5987 + AND scorecard = scorecard_
11.5988 + AND year = year_
11.5989 + AND version = version_
11.5990 + AND scorecard_object = scorecard_object_;
11.5991 +BEGIN
11.5992 + General_SYS.Init_Method(lu_name_, '&PKG', 'Aggregate_Planned_Values');
11.5993 + OPEN get_update_record;
11.5994 + FETCH get_update_record INTO num_;
11.5995 +
11.5996 + IF (get_update_record%FOUND) THEN
11.5997 + my_year_ := Scorecard_Period_API.Get_Year(environment_,
11.5998 + year_);
11.5999 + Hierarchical_Consolidation(environment_,
11.6000 + scorecard_,
11.6001 + my_year_,
11.6002 + version_,
11.6003 + type_,
11.6004 + 12,
11.6005 + scorecard_object_);
11.6006 + /*Calculate_Measures(environment_,
11.6007 + scorecard_,
11.6008 + year_,
11.6009 + version_,
11.6010 + scorecard_object_,
11.6011 + 12);*/
11.6012 + END IF;
11.6013 +
11.6014 + CLOSE get_update_record;
11.6015 +END Aggregate_Planned_Values;
11.6016 +
11.6017 +PROCEDURE Load_Planned_Values (
11.6018 + environment_ IN VARCHAR2,
11.6019 + scorecard_ IN VARCHAR2,
11.6020 + year_ IN VARCHAR2,
11.6021 + version_ IN VARCHAR2,
11.6022 + scorecard_object_ IN VARCHAR2,
11.6023 + from_ IN VARCHAR2,
11.6024 + period_count_ IN VARCHAR2 )
11.6025 +IS
11.6026 + stmt_bp_call_ VARCHAR2(2000);
11.6027 + attr_ VARCHAR2(2000);
11.6028 + dummy_ VARCHAR2(2000);
11.6029 +
11.6030 + TYPE GetTemplateNode IS REF CURSOR;
11.6031 + get_budpro GetTemplateNode;
11.6032 + --Bug 66984 Begin
11.6033 + get_budpro_node GetTemplateNode;
11.6034 + --Bug 66984 End
11.6035 + TYPE BudTemplateRec IS RECORD (company VARCHAR2(60),
11.6036 + budget_process_id VARCHAR2(30),
11.6037 + budget_template_id VARCHAR2(60));
11.6038 + template_rec_ BudTemplateRec;
11.6039 + TYPE BudNodeRec IS RECORD (company VARCHAR2(60),
11.6040 + budget_process_id VARCHAR2(30),
11.6041 + budget_structure_id VARCHAR2(90),
11.6042 + budget_node_id VARCHAR2(90));
11.6043 + node_rec_ BudNodeRec;
11.6044 +
11.6045 + rec_ &TABLE.%ROWTYPE;
11.6046 +
11.6047 + CURSOR get_keys IS
11.6048 + SELECT *
11.6049 + FROM &TABLE
11.6050 + WHERE environment = environment_
11.6051 + AND scorecard = scorecard_
11.6052 + AND year = year_
11.6053 + AND version = version_;
11.6054 +BEGIN
11.6055 + General_SYS.Init_Method(lu_name_, '&PKG', 'Load_Planned_Values');
11.6056 +
11.6057 + IF ( bp_installed_ ) THEN
11.6058 + Client_SYS.Clear_Attr(attr_);
11.6059 +
11.6060 + OPEN get_keys;
11.6061 + FETCH get_keys INTO rec_;
11.6062 + CLOSE get_keys;
11.6063 +
11.6064 + Client_SYS.Add_To_Attr('FROM', from_, attr_);
11.6065 +
11.6066 + IF (rec_.p1_key IS NOT NULL) THEN
11.6067 + Client_SYS.Add_To_Attr('P1_KEY', rec_.p1_key, attr_);
11.6068 + END IF;
11.6069 +
11.6070 + IF (rec_.p2_key IS NOT NULL) THEN
11.6071 + Client_SYS.Add_To_Attr('P2_KEY', rec_.p2_key, attr_);
11.6072 + END IF;
11.6073 +
11.6074 + IF (rec_.p3_key IS NOT NULL) THEN
11.6075 + Client_SYS.Add_To_Attr('P3_KEY', rec_.p3_key, attr_);
11.6076 + END IF;
11.6077 +
11.6078 + IF (rec_.p4_key IS NOT NULL) THEN
11.6079 + Client_SYS.Add_To_Attr('P4_KEY', rec_.p4_key, attr_);
11.6080 + END IF;
11.6081 +
11.6082 + IF (rec_.p5_key IS NOT NULL) THEN
11.6083 + Client_SYS.Add_To_Attr('P5_KEY', rec_.p5_key, attr_);
11.6084 + END IF;
11.6085 +
11.6086 + IF (rec_.p6_key IS NOT NULL) THEN
11.6087 + Client_SYS.Add_To_Attr('P6_KEY', rec_.p6_key, attr_);
11.6088 + END IF;
11.6089 +
11.6090 + IF (rec_.p7_key IS NOT NULL) THEN
11.6091 + Client_SYS.Add_To_Attr('P7_KEY', rec_.p7_key, attr_);
11.6092 + END IF;
11.6093 +
11.6094 + IF (rec_.p8_key IS NOT NULL) THEN
11.6095 + Client_SYS.Add_To_Attr('P8_KEY', rec_.p8_key, attr_);
11.6096 + END IF;
11.6097 +
11.6098 + IF (rec_.p9_key IS NOT NULL) THEN
11.6099 + Client_SYS.Add_To_Attr('P9_KEY', rec_.p9_key, attr_);
11.6100 + END IF;
11.6101 +
11.6102 + IF (rec_.p10_key IS NOT NULL) THEN
11.6103 + Client_SYS.Add_To_Attr('P10_KEY', rec_.p10_key, attr_);
11.6104 + END IF;
11.6105 +
11.6106 + IF (rec_.p11_key IS NOT NULL) THEN
11.6107 + Client_SYS.Add_To_Attr('P11_KEY', rec_.p11_key, attr_);
11.6108 + END IF;
11.6109 +
11.6110 + IF (rec_.p12_key IS NOT NULL) THEN
11.6111 + Client_SYS.Add_To_Attr('P12_KEY', rec_.p12_key, attr_);
11.6112 + END IF;
11.6113 +
11.6114 + IF (attr_ IS NOT NULL) THEN
11.6115 + attr_ := attr_ || scorecard_object_;
11.6116 + END IF;
11.6117 + -- Bug 66984 Begin,Added the line for Budget_Template_API.Is_Period_Matching() method call to stop loading values from templates which don't have matching periods
11.6118 + -- To handle multiple Budget Templates the single fetch was put inside a loop
11.6119 + stmt_bp_call_ := 'SELECT company, budget_process_id, budget_template_id
11.6120 + FROM budget_template_tab
11.6121 + WHERE scorecard = :scorecard
11.6122 + AND Budget_Process_API.Get_Environment(company,budget_process_id) = :environment
11.6123 + AND Budget_Template_API.Is_Period_Matching(company, budget_process_id, budget_template_id)= :value ';
11.6124 +
11.6125 + -- ifs_assert_safe iswalk 060111
11.6126 + OPEN get_budpro FOR stmt_bp_call_ USING scorecard_, environment_,'TRUE';
11.6127 + LOOP
11.6128 + FETCH get_budpro INTO template_rec_;
11.6129 + --Bug 66984 Begin,Added the if condition line and the else part
11.6130 + IF get_budpro%FOUND THEN
11.6131 + IF ((template_rec_.company IS NULL) AND (attr_ IS NOT NULL)) THEN
11.6132 + stmt_bp_call_ := 'SELECT company, budget_process_id, budget_structure_id, budget_node_id
11.6133 + FROM budget_node_tab
11.6134 + WHERE scorecard = :scorecard
11.6135 + AND Budget_Process_API.Get_Environment(company,
11.6136 + budget_process_id) = :environment';
11.6137 +
11.6138 + -- ifs_assert_safe iswalk 060111
11.6139 + OPEN get_budpro_node FOR stmt_bp_call_ USING scorecard_, environment_;
11.6140 + FETCH get_budpro_node INTO node_rec_;
11.6141 + CLOSE get_budpro_node;
11.6142 +
11.6143 + IF (node_rec_.company IS NOT NULL) THEN
11.6144 + --Load the value from Budget Node
11.6145 + dummy_ := 'NODE';
11.6146 + stmt_bp_call_ := 'BEGIN
11.6147 + Budget_Node_API.Export_Planned_Values(:company,
11.6148 + :budget_process_id,
11.6149 + :budget_structure_id,
11.6150 + :budget_node_id,
11.6151 + :record_type,
11.6152 + :attr);
11.6153 + END;';
11.6154 + -- ifs_assert_safe iswalk 060111
11.6155 + EXECUTE IMMEDIATE stmt_bp_call_ USING IN node_rec_.company,
11.6156 + IN node_rec_.budget_process_id,
11.6157 + IN node_rec_.budget_structure_id,
11.6158 + IN node_rec_.budget_node_id,
11.6159 + IN dummy_,
11.6160 + IN attr_;
11.6161 + ELSE
11.6162 + Error_SYS.Appl_General(lu_name_, 'BUSPERSCOIPNOBUD: Selected scorecard object is not connected to any budget template or budget node');
11.6163 + END IF;
11.6164 + ELSIF (attr_ IS NOT NULL) THEN
11.6165 + --Load the value from Budget Template
11.6166 + stmt_bp_call_ := 'BEGIN
11.6167 + Budget_Template_API.Export_Planned_Values(:company,
11.6168 + :budget_process_id,
11.6169 + :budget_template_id,
11.6170 + :attr);
11.6171 + END;';
11.6172 + -- ifs_assert_safe iswalk 060111
11.6173 + EXECUTE IMMEDIATE stmt_bp_call_ USING IN template_rec_.company,
11.6174 + IN template_rec_.budget_process_id,
11.6175 + IN template_rec_.budget_template_id,
11.6176 + IN attr_;
11.6177 + END IF;
11.6178 + IF (attr_ IS NOT NULL) THEN
11.6179 + Import_Fin_Values(environment_,
11.6180 + scorecard_,
11.6181 + year_,
11.6182 + version_,
11.6183 + scorecard_object_);
11.6184 + END IF;
11.6185 + ELSE
11.6186 + CLOSE get_budpro;
11.6187 + EXIT;
11.6188 + END IF;
11.6189 + --Bug 66984 End
11.6190 + END LOOP;
11.6191 + --Bug 66984 End
11.6192 + END IF;
11.6193 +
11.6194 +END Load_Planned_Values;
11.6195 +
11.6196 +FUNCTION Get_No_Of_Periods (
11.6197 + environment_ IN VARCHAR2,
11.6198 + scorecard_ IN VARCHAR2,
11.6199 + year_ IN VARCHAR2,
11.6200 + version_ IN VARCHAR2,
11.6201 + scorecard_object_ IN VARCHAR2 ) RETURN NUMBER
11.6202 +IS
11.6203 + no_of_periods_ NUMBER := 0;
11.6204 + rec_ &TABLE.%ROWTYPE;
11.6205 +
11.6206 + CURSOR get_record IS
11.6207 + SELECT *
11.6208 + FROM &TABLE
11.6209 + WHERE environment = environment_
11.6210 + AND scorecard = scorecard_
11.6211 + AND year = year_
11.6212 + AND version = version_
11.6213 + AND scorecard_object = scorecard_object_;
11.6214 +BEGIN
11.6215 + OPEN get_record;
11.6216 + FETCH get_record INTO rec_;
11.6217 + CLOSE get_record;
11.6218 +
11.6219 + IF (rec_.p1_key IS NOT NULL) THEN
11.6220 + no_of_periods_ := no_of_periods_ + 1;
11.6221 + END IF;
11.6222 +
11.6223 + IF (rec_.p2_key IS NOT NULL) THEN
11.6224 + no_of_periods_ := no_of_periods_ + 1;
11.6225 + END IF;
11.6226 +
11.6227 + IF (rec_.p3_key IS NOT NULL) THEN
11.6228 + no_of_periods_ := no_of_periods_ + 1;
11.6229 + END IF;
11.6230 +
11.6231 + IF (rec_.p4_key IS NOT NULL) THEN
11.6232 + no_of_periods_ := no_of_periods_ + 1;
11.6233 + END IF;
11.6234 +
11.6235 + IF (rec_.p5_key IS NOT NULL) THEN
11.6236 + no_of_periods_ := no_of_periods_ + 1;
11.6237 + END IF;
11.6238 +
11.6239 + IF (rec_.p6_key IS NOT NULL) THEN
11.6240 + no_of_periods_ := no_of_periods_ + 1;
11.6241 + END IF;
11.6242 +
11.6243 + IF (rec_.p7_key IS NOT NULL) THEN
11.6244 + no_of_periods_ := no_of_periods_ + 1;
11.6245 + END IF;
11.6246 +
11.6247 + IF (rec_.p8_key IS NOT NULL) THEN
11.6248 + no_of_periods_ := no_of_periods_ + 1;
11.6249 + END IF;
11.6250 +
11.6251 + IF (rec_.p9_key IS NOT NULL) THEN
11.6252 + no_of_periods_ := no_of_periods_ + 1;
11.6253 + END IF;
11.6254 +
11.6255 + IF (rec_.p10_key IS NOT NULL) THEN
11.6256 + no_of_periods_ := no_of_periods_ + 1;
11.6257 + END IF;
11.6258 +
11.6259 + IF (rec_.p11_key IS NOT NULL) THEN
11.6260 + no_of_periods_ := no_of_periods_ + 1;
11.6261 + END IF;
11.6262 +
11.6263 + IF (rec_.p12_key IS NOT NULL) THEN
11.6264 + no_of_periods_ := no_of_periods_ + 1;
11.6265 + END IF;
11.6266 +
11.6267 + RETURN no_of_periods_;
11.6268 +END Get_No_Of_Periods;
11.6269 +
11.6270 +PROCEDURE Import_Fin_Values(
11.6271 + environment_ IN VARCHAR2,
11.6272 + scorecard_ IN VARCHAR2,
11.6273 + year_ IN VARCHAR2,
11.6274 + version_ IN VARCHAR2,
11.6275 + scorecard_object_ IN VARCHAR2)
11.6276 +IS
11.6277 + TYPE GetTemplateNode IS REF CURSOR;
11.6278 + get_budpro GetTemplateNode;
11.6279 + -- Bug 71089, Begin
11.6280 + get_measure_acc GetTemplateNode;
11.6281 + -- Bug 71089, End
11.6282 + TYPE BudTemplateRec IS RECORD (company VARCHAR2(60),
11.6283 + budget_process_id VARCHAR2(30),
11.6284 + budget_template_id VARCHAR2(60));
11.6285 + template_rec_ BudTemplateRec;
11.6286 + TYPE BudNodeRec IS RECORD (company VARCHAR2(60),
11.6287 + budget_process_id VARCHAR2(30),
11.6288 + budget_structure_id VARCHAR2(90),
11.6289 + budget_node_id VARCHAR2(90));
11.6290 + node_rec_ BudNodeRec;
11.6291 + TYPE Totals IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
11.6292 +
11.6293 + name_ VARCHAR2(30);
11.6294 + mea_name_ VARCHAR2(30);
11.6295 + value_ VARCHAR2(2000);
11.6296 + mea_value_ VARCHAR2(2000);
11.6297 + stmt_bp_call_ VARCHAR2(2000);
11.6298 + -- Bug 71089, Begin
11.6299 + stmt_bp_temp_call_ VARCHAR2(2000);
11.6300 + -- Bug 71089, End
11.6301 + attr_ VARCHAR2(2000);
11.6302 + current_ VARCHAR2(2000);
11.6303 + p_value_attr_ VARCHAR2(2000);
11.6304 + cum_val_attr_ VARCHAR2(4000);
11.6305 + info_ VARCHAR2(2000);
11.6306 + objversion_ VARCHAR2(2000);
11.6307 +
11.6308 + measure_attr_ VARCHAR2(32000);
11.6309 + ptr_ NUMBER;
11.6310 + mea_ptr_ NUMBER;
11.6311 + totals_tab Totals;
11.6312 +
11.6313 + rec_ &VIEW.%ROWTYPE;
11.6314 + temp_rec_ &VIEW.%ROWTYPE;
11.6315 +
11.6316 + -- Bug 68118, Begin
11.6317 + company_ VARCHAR2(20);
11.6318 + budget_process_id_ VARCHAR2(10) ;
11.6319 + budget_template_id_ VARCHAR2(20);
11.6320 + item_value_id_ VARCHAR2(20);
11.6321 + temp_measure_ VARCHAR2(10);
11.6322 + -- Bug 68118, End
11.6323 +
11.6324 + CURSOR get_keys IS
11.6325 + SELECT *
11.6326 + FROM &VIEW
11.6327 + WHERE environment = environment_
11.6328 + AND scorecard = scorecard_
11.6329 + AND year = year_
11.6330 + AND version = version_
11.6331 + AND 'AUTOFIN' = Scorecard_Measure_API.Get_Measure_Update_Type_Db(scorecard_object);
11.6332 + CURSOR get_measure_accounts IS
11.6333 + SELECT account
11.6334 + FROM bp_measure_accounts_tab
11.6335 + WHERE measure = current_;
11.6336 +
11.6337 + -- Bug 68118, Begin
11.6338 + -- Bug 71089, Begin
11.6339 + -- The cursor get_measure_acc was removed
11.6340 + -- Bug 71089, End
11.6341 + -- Bug 68118, End
11.6342 +
11.6343 +BEGIN
11.6344 + General_SYS.Init_Method(lu_name_, '&PKG', 'Import_Fin_Values');
11.6345 +
11.6346 + IF ( bp_installed_ ) THEN
11.6347 + Client_SYS.Clear_Attr(attr_);
11.6348 +
11.6349 + -- Bug 71089, Begin
11.6350 + stmt_bp_temp_call_ := 'SELECT item_value_id
11.6351 + FROM budget_template_row_tab
11.6352 + WHERE company = :company
11.6353 + AND budget_process_id = :budget_process_id
11.6354 + AND budget_template_id = :budget_template_id
11.6355 + AND item_value_id = :item_value_id';
11.6356 +
11.6357 + -- ifs_assert_safe makrlk 080205
11.6358 + -- Bug 71089, End
11.6359 +
11.6360 + OPEN get_keys;
11.6361 + FETCH get_keys INTO temp_rec_;
11.6362 + CLOSE get_keys;
11.6363 +
11.6364 + IF (temp_rec_.p1_key IS NOT NULL) THEN
11.6365 + temp_rec_.p1_key := Scorecard_Period_API.Get_Period_Match_Identity(environment_,
11.6366 + temp_rec_.p1_key);
11.6367 + Client_SYS.Add_To_Attr('P1_KEY',
11.6368 + temp_rec_.p1_key,
11.6369 + attr_);
11.6370 + END IF;
11.6371 +
11.6372 + IF (temp_rec_.p2_key IS NOT NULL) THEN
11.6373 + temp_rec_.p2_key := Scorecard_Period_API.Get_Period_Match_Identity(environment_,
11.6374 + temp_rec_.p2_key);
11.6375 + Client_SYS.Add_To_Attr('P2_KEY',
11.6376 + temp_rec_.p2_key,
11.6377 + attr_);
11.6378 + END IF;
11.6379 +
11.6380 + IF (temp_rec_.p3_key IS NOT NULL) THEN
11.6381 + temp_rec_.p3_key := Scorecard_Period_API.Get_Period_Match_Identity(environment_,
11.6382 + temp_rec_.p3_key);
11.6383 + Client_SYS.Add_To_Attr('P3_KEY',
11.6384 + temp_rec_.p3_key,
11.6385 + attr_);
11.6386 + END IF;
11.6387 +
11.6388 + IF (temp_rec_.p4_key IS NOT NULL) THEN
11.6389 + temp_rec_.p4_key := Scorecard_Period_API.Get_Period_Match_Identity(environment_,
11.6390 + temp_rec_.p4_key);
11.6391 + Client_SYS.Add_To_Attr('P4_KEY',
11.6392 + temp_rec_.p4_key,
11.6393 + attr_);
11.6394 + END IF;
11.6395 +
11.6396 + IF (temp_rec_.p5_key IS NOT NULL) THEN
11.6397 + temp_rec_.p5_key := Scorecard_Period_API.Get_Period_Match_Identity(environment_,
11.6398 + temp_rec_.p5_key);
11.6399 + Client_SYS.Add_To_Attr('P5_KEY',
11.6400 + temp_rec_.p5_key,
11.6401 + attr_);
11.6402 + END IF;
11.6403 +
11.6404 + IF (temp_rec_.p6_key IS NOT NULL) THEN
11.6405 + temp_rec_.p6_key := Scorecard_Period_API.Get_Period_Match_Identity(environment_,
11.6406 + temp_rec_.p6_key);
11.6407 + Client_SYS.Add_To_Attr('P6_KEY',
11.6408 + temp_rec_.p6_key,
11.6409 + attr_);
11.6410 + END IF;
11.6411 +
11.6412 + IF (temp_rec_.p7_key IS NOT NULL) THEN
11.6413 + temp_rec_.p7_key := Scorecard_Period_API.Get_Period_Match_Identity(environment_,
11.6414 + temp_rec_.p7_key);
11.6415 + Client_SYS.Add_To_Attr('P7_KEY',
11.6416 + temp_rec_.p7_key,
11.6417 + attr_);
11.6418 + END IF;
11.6419 +
11.6420 + IF (temp_rec_.p8_key IS NOT NULL) THEN
11.6421 + temp_rec_.p8_key := Scorecard_Period_API.Get_Period_Match_Identity(environment_,
11.6422 + temp_rec_.p8_key);
11.6423 + Client_SYS.Add_To_Attr('P8_KEY',
11.6424 + temp_rec_.p8_key,
11.6425 + attr_);
11.6426 + END IF;
11.6427 +
11.6428 + IF (temp_rec_.p9_key IS NOT NULL) THEN
11.6429 + temp_rec_.p9_key := Scorecard_Period_API.Get_Period_Match_Identity(environment_,
11.6430 + temp_rec_.p9_key);
11.6431 + Client_SYS.Add_To_Attr('P9_KEY',
11.6432 + temp_rec_.p9_key,
11.6433 + attr_);
11.6434 + END IF;
11.6435 +
11.6436 + IF (temp_rec_.p10_key IS NOT NULL) THEN
11.6437 + temp_rec_.p10_key := Scorecard_Period_API.Get_Period_Match_Identity(environment_,
11.6438 + temp_rec_.p10_key);
11.6439 + Client_SYS.Add_To_Attr('P10_KEY',
11.6440 + temp_rec_.p10_key,
11.6441 + attr_);
11.6442 + END IF;
11.6443 +
11.6444 + IF (temp_rec_.p11_key IS NOT NULL) THEN
11.6445 + temp_rec_.p11_key := Scorecard_Period_API.Get_Period_Match_Identity(environment_,
11.6446 + temp_rec_.p11_key);
11.6447 + Client_SYS.Add_To_Attr('P11_KEY',
11.6448 + temp_rec_.p11_key,
11.6449 + attr_);
11.6450 + END IF;
11.6451 +
11.6452 + IF (temp_rec_.p12_key IS NOT NULL) THEN
11.6453 + temp_rec_.p12_key := Scorecard_Period_API.Get_Period_Match_Identity(environment_,
11.6454 + temp_rec_.p12_key);
11.6455 + Client_SYS.Add_To_Attr('P12_KEY',
11.6456 + temp_rec_.p12_key,
11.6457 + attr_);
11.6458 + END IF;
11.6459 +
11.6460 + IF (attr_ IS NOT NULL) THEN
11.6461 +
11.6462 + stmt_bp_call_ := 'SELECT company, budget_process_id, budget_template_id
11.6463 + FROM budget_template_tab
11.6464 + WHERE scorecard = :scorecard
11.6465 + AND Budget_Process_API.Get_Environment(company,
11.6466 + budget_process_id) = :environment';
11.6467 +
11.6468 + -- ifs_assert_safe iswalk 060220
11.6469 + OPEN get_budpro FOR stmt_bp_call_ USING scorecard_, environment_;
11.6470 + FETCH get_budpro INTO template_rec_;
11.6471 + CLOSE get_budpro;
11.6472 +
11.6473 + Client_SYS.Clear_Attr(measure_attr_);
11.6474 + IF (template_rec_.company IS NOT NULL) THEN
11.6475 +
11.6476 + FOR rec_ IN get_keys LOOP
11.6477 + Client_SYS.Clear_Attr(cum_val_attr_);
11.6478 +
11.6479 + FOR i IN 0..11 LOOP
11.6480 + totals_tab(i) := 0;
11.6481 + END LOOP;
11.6482 +
11.6483 + current_ := rec_.scorecard_object;
11.6484 +
11.6485 + Client_SYS.Add_To_Attr('OBJECT_ID',current_,measure_attr_);
11.6486 + mea_ptr_ := NULL;
11.6487 +
11.6488 + --the call has been made from busper side which means only selected measures should be updated
11.6489 + WHILE (Client_SYS.Get_Next_From_Attr(scorecard_object_, mea_ptr_, mea_name_, mea_value_)) LOOP
11.6490 +
11.6491 + IF (current_ = mea_value_) THEN
11.6492 + --get the list of accounts connected to the current measure...
11.6493 + FOR acc_rec_ IN get_measure_accounts LOOP
11.6494 + -- Bug 68118, Begin
11.6495 + company_ := template_rec_.company;
11.6496 + budget_process_id_ := template_rec_.budget_process_id;
11.6497 + budget_template_id_ := template_rec_.budget_template_id;
11.6498 + item_value_id_ := acc_rec_.account;
11.6499 +
11.6500 + -- Bug 71089, Begin. change the OPEN line
11.6501 + -- ifs_assert_safe nsillk 20080318
11.6502 + OPEN get_measure_acc FOR stmt_bp_temp_call_ USING company_, budget_process_id_, budget_template_id_, item_value_id_;
11.6503 + FETCH get_measure_acc INTO temp_measure_;
11.6504 + CLOSE get_measure_acc;
11.6505 + -- Bug 71089, End
11.6506 + -- Bug 68118, End
11.6507 +
11.6508 + -- Bug 68118, Begin added IF condition
11.6509 +
11.6510 + IF (temp_measure_ = acc_rec_.account) THEN
11.6511 + stmt_bp_call_ := 'BEGIN
11.6512 + :p_value_attr := Budget_Template_API.Get_Period_Fin_Values(:company,
11.6513 + :budget_process_id,
11.6514 + :budget_template_id,
11.6515 + :account,
11.6516 + :attr);
11.6517 + END;';
11.6518 + -- ifs_assert_safe iswalk 060220
11.6519 + EXECUTE IMMEDIATE stmt_bp_call_ USING OUT p_value_attr_,
11.6520 + IN template_rec_.company,
11.6521 + IN template_rec_.budget_process_id,
11.6522 + IN template_rec_.budget_template_id,
11.6523 + IN acc_rec_.account,
11.6524 + IN attr_;
11.6525 + cum_val_attr_ := cum_val_attr_ || p_value_attr_;
11.6526 + END IF;
11.6527 + -- Bug 68118, End the IF condition
11.6528 + END LOOP;
11.6529 + END IF;
11.6530 +
11.6531 + END LOOP;
11.6532 +
11.6533 + --the call has been made from budpro side which means all measures should be updated
11.6534 + IF (scorecard_object_ IS NULL) THEN
11.6535 + --get the list of accounts connected to the current measure...
11.6536 + FOR acc_rec_ IN get_measure_accounts LOOP
11.6537 + -- Bug 68118, Begin
11.6538 + company_ := template_rec_.company;
11.6539 + budget_process_id_ := template_rec_.budget_process_id;
11.6540 + budget_template_id_ := template_rec_.budget_template_id;
11.6541 + item_value_id_ := acc_rec_.account;
11.6542 +
11.6543 + -- Bug 71089, Begin. change the OPEN line
11.6544 + -- ifs_assert_safe nsillk 20080318
11.6545 + OPEN get_measure_acc FOR stmt_bp_temp_call_ USING company_, budget_process_id_, budget_template_id_, item_value_id_;
11.6546 + FETCH get_measure_acc INTO temp_measure_;
11.6547 + CLOSE get_measure_acc;
11.6548 + -- Bug 71089, End
11.6549 + -- Bug 68118, End
11.6550 +
11.6551 + -- Bug 68118, Begin added IF condition
11.6552 + IF (temp_measure_ = acc_rec_.account) THEN
11.6553 + stmt_bp_call_ := 'BEGIN
11.6554 + :p_value_attr := Budget_Template_API.Get_Period_Fin_Values(:company,
11.6555 + :budget_process_id,
11.6556 + :budget_template_id,
11.6557 + :account,
11.6558 + :attr);
11.6559 + END;';
11.6560 + -- ifs_assert_safe iswalk 060220
11.6561 + EXECUTE IMMEDIATE stmt_bp_call_ USING OUT p_value_attr_,
11.6562 + IN template_rec_.company,
11.6563 + IN template_rec_.budget_process_id,
11.6564 + IN template_rec_.budget_template_id,
11.6565 + IN acc_rec_.account,
11.6566 + IN attr_;
11.6567 + cum_val_attr_ := cum_val_attr_ || p_value_attr_;
11.6568 + END IF;
11.6569 + -- Bug 68118, End the IF condition
11.6570 +
11.6571 + END LOOP;
11.6572 + END IF;
11.6573 +
11.6574 + IF (cum_val_attr_ IS NOT NULL) THEN
11.6575 +
11.6576 + ptr_ := NULL;
11.6577 +
11.6578 + WHILE (Client_SYS.Get_Next_From_Attr(cum_val_attr_, ptr_, name_, value_)) LOOP
11.6579 +
11.6580 + IF (temp_rec_.p1_key = name_) THEN
11.6581 + totals_tab(0) := totals_tab(0) + Client_SYS.Attr_Value_To_Number(value_);
11.6582 + END IF;
11.6583 +
11.6584 + IF (temp_rec_.p2_key = name_) THEN
11.6585 + totals_tab(1) := totals_tab(1) + Client_SYS.Attr_Value_To_Number(value_);
11.6586 + END IF;
11.6587 +
11.6588 + IF (temp_rec_.p3_key = name_) THEN
11.6589 + totals_tab(2) := totals_tab(2) + Client_SYS.Attr_Value_To_Number(value_);
11.6590 + END IF;
11.6591 +
11.6592 + IF (temp_rec_.p4_key = name_) THEN
11.6593 + totals_tab(3) := totals_tab(3) + Client_SYS.Attr_Value_To_Number(value_);
11.6594 + END IF;
11.6595 +
11.6596 + IF (temp_rec_.p5_key = name_) THEN
11.6597 + totals_tab(4) := totals_tab(4) + Client_SYS.Attr_Value_To_Number(value_);
11.6598 + END IF;
11.6599 +
11.6600 + IF (temp_rec_.p6_key = name_) THEN
11.6601 + totals_tab(5) := totals_tab(5) + Client_SYS.Attr_Value_To_Number(value_);
11.6602 + END IF;
11.6603 +
11.6604 + IF (temp_rec_.p7_key = name_) THEN
11.6605 + totals_tab(6) := totals_tab(6) + Client_SYS.Attr_Value_To_Number(value_);
11.6606 + END IF;
11.6607 +
11.6608 + IF (temp_rec_.p8_key = name_) THEN
11.6609 + totals_tab(7) := totals_tab(7) + Client_SYS.Attr_Value_To_Number(value_);
11.6610 + END IF;
11.6611 +
11.6612 + IF (temp_rec_.p9_key = name_) THEN
11.6613 + totals_tab(8) := totals_tab(8) + Client_SYS.Attr_Value_To_Number(value_);
11.6614 + END IF;
11.6615 +
11.6616 + IF (temp_rec_.p10_key = name_) THEN
11.6617 + totals_tab(9) := totals_tab(9) + Client_SYS.Attr_Value_To_Number(value_);
11.6618 + END IF;
11.6619 +
11.6620 + IF (temp_rec_.p11_key = name_) THEN
11.6621 + totals_tab(10) := totals_tab(10) + Client_SYS.Attr_Value_To_Number(value_);
11.6622 + END IF;
11.6623 +
11.6624 + IF (temp_rec_.p12_key = name_) THEN
11.6625 + totals_tab(11) := totals_tab(11) + Client_SYS.Attr_Value_To_Number(value_);
11.6626 + END IF;
11.6627 +
11.6628 + END LOOP;
11.6629 +
11.6630 + Client_SYS.Clear_Attr(cum_val_attr_);
11.6631 +
11.6632 + FOR i IN 0..11 LOOP
11.6633 +
11.6634 + -- Bug 68118, Begin remove the the IF condition
11.6635 + Client_SYS.Add_To_Attr('P'|| (i + 1) || '_VALUE', totals_tab(i), cum_val_attr_);
11.6636 + -- Bug 68118, End
11.6637 +
11.6638 + END LOOP;
11.6639 +
11.6640 + objversion_ := rec_.objversion;
11.6641 + Client_SYS.Add_To_Attr('FROM_BUDPRO', 'TRUE', cum_val_attr_);
11.6642 + Modify__(info_, rec_.objid, objversion_, cum_val_attr_, 'DO');
11.6643 + Calculate_Year_Value(environment_,
11.6644 + scorecard_,
11.6645 + year_,
11.6646 + version_,
11.6647 + rec_.scorecard_object);
11.6648 +
11.6649 + END IF;
11.6650 +
11.6651 + END LOOP;
11.6652 +
11.6653 + Calc_Measure_From_Budpro (environment_ ,scorecard_,measure_attr_);
11.6654 + END IF;
11.6655 +
11.6656 + END IF;
11.6657 +
11.6658 + END IF;
11.6659 +END Import_Fin_Values;
11.6660 +PROCEDURE Calc_Measure_From_Budpro (
11.6661 + environment_ IN VARCHAR2,
11.6662 + scorecard_ IN VARCHAR2,
11.6663 + comp_attr_ IN VARCHAR2 )
11.6664 +IS
11.6665 + ptr_ NUMBER;
11.6666 + count_ NUMBER;
11.6667 + period_count_ NUMBER;
11.6668 +
11.6669 + name_ VARCHAR2(30);
11.6670 + value_ VARCHAR2(2000);
11.6671 + level_type_val_ VARCHAR2(20);
11.6672 + measure_version_ VARCHAR2(30);
11.6673 +
11.6674 + object_id_ scorecard_measure_tab.measure%TYPE;
11.6675 + level_type_ scorecard_structure_tab.child_level_type%TYPE;
11.6676 + year_ scorecard_period_tab.year%TYPE;
11.6677 + budget_version_ measure_version_tab.version%TYPE;
11.6678 +
11.6679 + CURSOR get_level_type IS
11.6680 + SELECT child_level_type
11.6681 + FROM Scorecard_structure_tab
11.6682 + WHERE environment = environment_
11.6683 + AND scorecard = scorecard_
11.6684 + AND level_id = object_id_;
11.6685 +
11.6686 + CURSOR get_measures_planform IS
11.6687 + SELECT level_id,measure_calc_formula
11.6688 + FROM Scorecard_Structure_TAB
11.6689 + WHERE environment = environment_
11.6690 + AND scorecard = scorecard_
11.6691 + AND measure_calc_formula IS NOT NULL;
11.6692 +
11.6693 + CURSOR get_years IS
11.6694 + SELECT DISTINCT year
11.6695 + FROM Scorecard_Period_TAB
11.6696 + WHERE environment = environment_;
11.6697 +
11.6698 + CURSOR get_period_count IS
11.6699 + SELECT COUNT(period)
11.6700 + FROM Scorecard_Period_TAB
11.6701 + WHERE environment = environment_
11.6702 + AND year = year_;
11.6703 +
11.6704 + TYPE MeasuresTable IS TABLE OF VARCHAR2(2000) INDEX BY BINARY_INTEGER;
11.6705 + measures_tab MeasuresTable ;
11.6706 +
11.6707 +
11.6708 +
11.6709 +BEGIN
11.6710 + General_SYS.Init_Method(lu_name_, '&PKG', 'Calc_Measure_From_Budpro');
11.6711 + ptr_ := NULL;
11.6712 +
11.6713 + WHILE ( Client_SYS.Get_Next_From_Attr(comp_attr_, ptr_, name_, value_) ) LOOP
11.6714 + IF (name_ = 'OBJECT_ID') THEN
11.6715 + object_id_ := value_;
11.6716 + END IF;
11.6717 +
11.6718 + OPEN get_level_type;
11.6719 + FETCH get_level_type INTO level_type_;
11.6720 + CLOSE get_level_type;
11.6721 +
11.6722 + IF(level_type_ = 'COMPONENT') THEN
11.6723 + count_ := 0;
11.6724 + FOR get_measures_planform_ IN get_measures_planform LOOP
11.6725 + IF( INSTR(get_measures_planform_.measure_calc_formula,object_id_) > 0) THEN
11.6726 + measures_tab(count_) := get_measures_planform_.level_id;
11.6727 + END IF;
11.6728 + END LOOP;
11.6729 + budget_version_ := Scorecard_Environment_API.Get_Budget_Version(environment_);
11.6730 +
11.6731 + IF( measures_tab.COUNT > 0 ) THEN
11.6732 +
11.6733 + FOR x IN measures_tab.FIRST..measures_tab.LAST LOOP
11.6734 + FOR get_years_ IN get_years LOOP
11.6735 + year_ := get_years_.year;
11.6736 +
11.6737 + OPEN get_period_count;
11.6738 + FETCH get_period_count INTO period_count_;
11.6739 + CLOSE get_period_count;
11.6740 +
11.6741 + IF( Check_Exist___ (environment_,scorecard_,year_,budget_version_,measures_tab(x))) THEN
11.6742 + Calculate_Measures (environment_,
11.6743 + scorecard_,
11.6744 + year_,
11.6745 + budget_version_,
11.6746 + measures_tab(x),
11.6747 + period_count_,
11.6748 + 'TRUE' );
11.6749 + END IF;
11.6750 + END LOOP;
11.6751 + END LOOP;
11.6752 + END IF;
11.6753 + END IF;
11.6754 + END LOOP;
11.6755 +END Calc_Measure_From_Budpro;
11.6756 +
11.6757 +
11.6758 +FUNCTION Get (
11.6759 + environment_ IN VARCHAR2,
11.6760 + scorecard_ IN VARCHAR2,
11.6761 + year_ IN VARCHAR2,
11.6762 + version_ IN VARCHAR2,
11.6763 + scorecard_object_ IN VARCHAR2 ) RETURN Public_Rec
11.6764 +IS
11.6765 + temp_ Public_Rec;
11.6766 + CURSOR get_attr IS
11.6767 + SELECT action, mea_state_change_date
11.6768 + FROM &TABLE
11.6769 + WHERE environment = environment_
11.6770 + AND scorecard = scorecard_
11.6771 + AND year = year_
11.6772 + AND version = version_
11.6773 + AND scorecard_object = scorecard_object_;
11.6774 +BEGIN
11.6775 + OPEN get_attr;
11.6776 + FETCH get_attr INTO temp_;
11.6777 + CLOSE get_attr;
11.6778 + RETURN temp_;
11.6779 +END Get;
11.6780 +-----------------------------------------------------------------------------
11.6781 +-------------------- FOUNDATION1 METHODS ------------------------------------
11.6782 +-----------------------------------------------------------------------------
11.6783 +-- Init
11.6784 +-- Dummy procedure that can be called at database startup to ensure that
11.6785 +-- this package is loaded into memory for performance reasons only.
11.6786 +-----------------------------------------------------------------------------
11.6787 +
11.6788 +PROCEDURE Init
11.6789 +IS
11.6790 +BEGIN
11.6791 + NULL;
11.6792 +END Init;
11.6793 +
11.6794 +
11.6795 +END &PKG;
11.6796 +/
11.6797 +SHOW ERROR
11.6798 +
11.6799 +UNDEFINE MODULE
11.6800 +UNDEFINE LU
11.6801 +UNDEFINE TABLE
11.6802 +UNDEFINE VIEW
11.6803 +UNDEFINE VIEW2
11.6804 +UNDEFINE VIEW3
11.6805 +UNDEFINE VIEW4
11.6806 +UNDEFINE VIEW5
11.6807 +UNDEFINE PKG
11.6808 +UNDEFINE OBJID
11.6809 +UNDEFINE OBJVERSION
11.6810 +UNDEFINE OBJSTATE
11.6811 +UNDEFINE OBJEVENTS
11.6812 +UNDEFINE STATE
11.6813 +-----------------------------------------------------------------------------
12.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
12.2 +++ b/PLSQL/Lexer/test/unit/data/Trainer.apy Wed May 15 23:04:20 2013 +0200
12.3 @@ -0,0 +1,877 @@
12.4 +-----------------------------------------------------------------------------
12.5 +--
12.6 +-- Logical unit: Trainer
12.7 +--
12.8 +-- Purpose:
12.9 +--
12.10 +-- IFS/Design Template Version 2.2
12.11 +--
12.12 +-- Date Sign History
12.13 +-- ------ ---- -----------------------------------------------------------
12.14 +-- 040219 NIMULK made compatible with unicode. Substr
12.15 +-- 010509 UlPe Remove call to dbms
12.16 +-- 010509 UlPe Changes of General_Sys.Init_Method (technical directive)
12.17 +-- 990426 ELZ Changed to New Template (2.2.1)
12.18 +-- 981222 ELZ Created.
12.19 +-----------------------------------------------------------------------------
12.20 +
12.21 +DEFINE MODULE = TRNADM
12.22 +DEFINE LU = Trainer
12.23 +DEFINE TABLE = TRAINER_TAB
12.24 +DEFINE VIEW = TRAINER
12.25 +DEFINE VIEW_LOV1 = TRAINER_LOV1
12.26 +DEFINE VIEW_LOV2 = TRAINER_LOV2
12.27 +DEFINE PKG = TRAINER_API
12.28 +
12.29 +DEFINE OBJID = t.rowid
12.30 +DEFINE OBJVERSION = ltrim(lpad(to_char(t.rowversion),2000))
12.31 +
12.32 +-----------------------------------------------------------------------------
12.33 +-------------------- VIEWS FOR SELECTS --------------------------------------
12.34 +-----------------------------------------------------------------------------
12.35 +
12.36 +PROMPT Creating &VIEW view
12.37 +
12.38 +CREATE OR REPLACE FORCE VIEW &VIEW AS
12.39 +SELECT t.person_id person_id,
12.40 + internal internal,
12.41 + p.name1 fname,
12.42 + p.name4 lname,
12.43 + training_institution_no training_institution_no,
12.44 + Training_Institution_API.Decode(training_institution_no) training_institution_name,
12.45 + p.date_of_birth date_of_birth,
12.46 + Person_Sex_API.Decode(p.sex) sex,
12.47 + p.sex sex_db,
12.48 + remark remark,
12.49 + &OBJID objid,
12.50 + &OBJVERSION objversion
12.51 +FROM trainer_tab t, pers_tab p
12.52 +WHERE t.person_id = p.person_id
12.53 +WITH read only;
12.54 +
12.55 +COMMENT ON TABLE &VIEW
12.56 + IS 'LU=&LU^PROMPT=Trainer^MODULE=&MODULE^';
12.57 +
12.58 +COMMENT ON COLUMN &VIEW..person_id
12.59 + IS 'FLAGS=KMI-L^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Person Id^REF=Pers^';
12.60 +COMMENT ON COLUMN &VIEW..internal
12.61 + IS 'FLAGS=AMIUL^DATATYPE=STRING(1)^PROMPT=Internal^';
12.62 +COMMENT ON COLUMN &VIEW..fname
12.63 + IS 'FLAGS=A-IUL^DATATYPE=STRING(40)^PROMPT=First Name^';
12.64 +COMMENT ON COLUMN &VIEW..lname
12.65 + IS 'FLAGS=AMIUL^DATATYPE=STRING(40)^PROMPT=Last Name^';
12.66 +COMMENT ON COLUMN &VIEW..training_institution_no
12.67 + IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=Training Institution No^REF=TrainingInstitution^';
12.68 +COMMENT ON COLUMN &VIEW..training_institution_name
12.69 + IS 'FLAGS=A-IU-^DATATYPE=STRING(100)^PROMPT=Training Institution Name^';
12.70 +COMMENT ON COLUMN &VIEW..date_of_birth
12.71 + IS 'FLAGS=A-IU-^DATATYPE=DATE/DATE^PROMPT=Date of Birth^';
12.72 +COMMENT ON COLUMN &VIEW..sex
12.73 + IS 'FLAGS=A-IU-^DATATYPE=STRING(200)^PROMPT=Gender^REF=PersonSex^';
12.74 +COMMENT ON COLUMN &VIEW..remark
12.75 + IS 'FLAGS=A-IU-^DATATYPE=STRING(2000)^PROMPT=Remark^';
12.76 +
12.77 +
12.78 +PROMPT Creating &VIEW_LOV1 view
12.79 +
12.80 +CREATE OR REPLACE FORCE VIEW &VIEW_LOV1 AS
12.81 +SELECT person_id person_id,
12.82 + Trainer_API.Get_Name(person_id) name,
12.83 + Trainer_API.Get_Internal_External(internal) internal_external
12.84 +FROM trainer_tab
12.85 +WITH read only;
12.86 +
12.87 +COMMENT ON TABLE &VIEW_LOV1
12.88 + IS 'LU=&LU^PROMPT=Trainer^MODULE=&MODULE^SORT=Person_Id^';
12.89 +
12.90 +COMMENT ON COLUMN &VIEW_LOV1..person_id
12.91 + IS 'FLAGS=K---L^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Person Id^';
12.92 +COMMENT ON COLUMN &VIEW_LOV1..name
12.93 + IS 'FLAGS=A---L^DATATYPE=STRING(100)^PROMPT=Name^';
12.94 +COMMENT ON COLUMN &VIEW_LOV1..internal_external
12.95 + IS 'FLAGS=A---L^DATATYPE=STRING(100)^PROMPT=Internal/External^';
12.96 +
12.97 +-----------------------------------------------------------------------------
12.98 +-------------------- PACKAGES FOR METHODS -----------------------------------
12.99 +-----------------------------------------------------------------------------
12.100 +
12.101 +PROMPT Creating &PKG implementation
12.102 +
12.103 +CREATE OR REPLACE PACKAGE BODY &PKG IS
12.104 +
12.105 +-----------------------------------------------------------------------------
12.106 +-------------------- LU SPECIFIC IMPLEMENTATION METHOD DECLARATIONS ---------
12.107 +-----------------------------------------------------------------------------
12.108 +
12.109 +-----------------------------------------------------------------------------
12.110 +-------------------- IMPLEMENTATION BASE METHODS ----------------------------
12.111 +-----------------------------------------------------------------------------
12.112 +-- Lock_By_Id___
12.113 +-- Client-support to lock a specific instance of the logical unit.
12.114 +--
12.115 +-- Lock_By_Keys___
12.116 +-- Server support to lock a specific instance of the logical unit.
12.117 +--
12.118 +-- Get_Object_By_Id___
12.119 +-- Get LU-record from the database with a specified object identity.
12.120 +--
12.121 +-- Get_Object_By_Keys___
12.122 +-- Get LU-record from the database with specified key columns.
12.123 +--
12.124 +-- Check_Exist___
12.125 +-- Check if a specific LU-instance already exist in the database.
12.126 +--
12.127 +-- Get_Id_Version_By_Keys___
12.128 +-- Get the current OBJID and OBJVERSION for a specific LU-instance.
12.129 +-----------------------------------------------------------------------------
12.130 +FUNCTION Lock_By_Id___ (
12.131 + objid_ IN VARCHAR2,
12.132 + objversion_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
12.133 +IS
12.134 + row_changed EXCEPTION;
12.135 + row_deleted EXCEPTION;
12.136 + row_locked EXCEPTION;
12.137 + PRAGMA exception_init(row_locked, -0054);
12.138 + rec_ &TABLE%ROWTYPE;
12.139 + dummy_ NUMBER;
12.140 + CURSOR lock_control IS
12.141 + SELECT *
12.142 + FROM &TABLE t
12.143 + WHERE &OBJID = objid_
12.144 + AND &OBJVERSION = objversion_
12.145 + FOR UPDATE NOWAIT;
12.146 + CURSOR exist_control IS
12.147 + SELECT 1
12.148 + FROM &TABLE t
12.149 + WHERE &OBJID = objid_;
12.150 +BEGIN
12.151 + OPEN lock_control;
12.152 + FETCH lock_control INTO rec_;
12.153 + IF (lock_control%FOUND) THEN
12.154 + CLOSE lock_control;
12.155 + RETURN rec_;
12.156 + END IF;
12.157 + CLOSE lock_control;
12.158 + OPEN exist_control;
12.159 + FETCH exist_control INTO dummy_;
12.160 + IF (exist_control%FOUND) THEN
12.161 + CLOSE exist_control;
12.162 + RAISE row_changed;
12.163 + ELSE
12.164 + CLOSE exist_control;
12.165 + RAISE row_deleted;
12.166 + END IF;
12.167 +EXCEPTION
12.168 + WHEN row_locked THEN
12.169 + Error_SYS.Record_Locked(lu_name_);
12.170 + WHEN row_changed THEN
12.171 + Error_SYS.Record_Modified(lu_name_);
12.172 + WHEN row_deleted THEN
12.173 + Error_SYS.Record_Removed(lu_name_);
12.174 +END Lock_By_Id___;
12.175 +
12.176 +FUNCTION Lock_By_Keys___ (
12.177 + person_id_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
12.178 +IS
12.179 + row_deleted EXCEPTION;
12.180 + rec_ &TABLE%ROWTYPE;
12.181 + CURSOR lock_control IS
12.182 + SELECT *
12.183 + FROM &TABLE
12.184 + WHERE person_id = person_id_
12.185 + FOR UPDATE;
12.186 +BEGIN
12.187 + OPEN lock_control;
12.188 + FETCH lock_control INTO rec_;
12.189 + IF (lock_control%FOUND) THEN
12.190 + CLOSE lock_control;
12.191 + RETURN rec_;
12.192 + ELSE
12.193 + CLOSE lock_control;
12.194 + RAISE row_deleted;
12.195 + END IF;
12.196 +EXCEPTION
12.197 + WHEN row_deleted THEN
12.198 + Error_SYS.Record_Removed(lu_name_);
12.199 +END Lock_By_Keys___;
12.200 +
12.201 +FUNCTION Get_Object_By_Id___ (
12.202 + objid_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
12.203 +IS
12.204 + lu_rec_ &TABLE%ROWTYPE;
12.205 + CURSOR getrec IS
12.206 + SELECT *
12.207 + FROM &TABLE t
12.208 + WHERE &OBJID = objid_;
12.209 +BEGIN
12.210 + OPEN getrec;
12.211 + FETCH getrec INTO lu_rec_;
12.212 + IF (getrec%NOTFOUND) THEN
12.213 + CLOSE getrec;
12.214 + Error_SYS.Record_Removed(lu_name_);
12.215 + END IF;
12.216 + CLOSE getrec;
12.217 + RETURN(lu_rec_);
12.218 +END Get_Object_By_Id___;
12.219 +
12.220 +FUNCTION Get_Object_By_Keys___ (
12.221 + person_id_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
12.222 +IS
12.223 + lu_rec_ &TABLE%ROWTYPE;
12.224 + CURSOR getrec IS
12.225 + SELECT *
12.226 + FROM &TABLE
12.227 + WHERE person_id = person_id_;
12.228 +BEGIN
12.229 + OPEN getrec;
12.230 + FETCH getrec INTO lu_rec_;
12.231 + CLOSE getrec;
12.232 + RETURN(lu_rec_);
12.233 +END Get_Object_By_Keys___;
12.234 +
12.235 +FUNCTION Check_Exist___ (
12.236 + person_id_ IN VARCHAR2 ) RETURN BOOLEAN
12.237 +IS
12.238 + dummy_ NUMBER;
12.239 + CURSOR exist_control IS
12.240 + SELECT 1
12.241 + FROM &TABLE
12.242 + WHERE person_id = person_id_;
12.243 +BEGIN
12.244 + OPEN exist_control;
12.245 + FETCH exist_control INTO dummy_;
12.246 + IF (exist_control%FOUND) THEN
12.247 + CLOSE exist_control;
12.248 + RETURN(TRUE);
12.249 + END IF;
12.250 + CLOSE exist_control;
12.251 + RETURN(FALSE);
12.252 +END Check_Exist___;
12.253 +
12.254 +PROCEDURE Get_Id_Version_By_Keys___ (
12.255 + objid_ IN OUT VARCHAR2,
12.256 + objversion_ IN OUT VARCHAR2,
12.257 + person_id_ IN VARCHAR2)
12.258 +IS
12.259 + CURSOR get_version IS
12.260 + SELECT &OBJID, &OBJVERSION
12.261 + FROM &TABLE t
12.262 + WHERE person_id = person_id_;
12.263 +BEGIN
12.264 + OPEN get_version;
12.265 + FETCH get_version INTO objid_, objversion_;
12.266 + CLOSE get_version;
12.267 +END Get_Id_Version_By_Keys___;
12.268 +-----------------------------------------------------------------------------
12.269 +-------------------- IMPLEMENTATION BASE METHODS FOR INSERT -----------------
12.270 +-----------------------------------------------------------------------------
12.271 +-- Prepare_Insert___
12.272 +-- Set all default values for a new instance (ON-NEW-RECORD) of this
12.273 +-- logical unit by calling procedure Add_Attr.
12.274 +--
12.275 +-- Unpack_Check_Insert___
12.276 +-- Unpack the attribute list, check all attributes from the client
12.277 +-- and generate all default values before creation of the new object.
12.278 +--
12.279 +-- Insert___
12.280 +-- Insert a new LU-instance into the database and return the values
12.281 +-- for OBJID and OBJVERSION.
12.282 +-----------------------------------------------------------------------------
12.283 +
12.284 +PROCEDURE Prepare_Insert___ (
12.285 + attr_ IN OUT VARCHAR2 )
12.286 +IS
12.287 +BEGIN
12.288 + Client_SYS.Clear_Attr(attr_);
12.289 +END Prepare_Insert___;
12.290 +
12.291 +
12.292 +PROCEDURE Unpack_Check_Insert___ (
12.293 + attr_ IN OUT VARCHAR2,
12.294 + newrec_ IN OUT &TABLE%ROWTYPE,
12.295 + dummy_rec_ IN OUT Dummy_Rec )
12.296 +IS
12.297 + ptr_ NUMBER;
12.298 + name_ VARCHAR2(30);
12.299 + value_ VARCHAR2(2000);
12.300 + name1_ VARCHAR2(200);
12.301 + name4_ VARCHAR2(200);
12.302 +BEGIN
12.303 + ptr_ := NULL;
12.304 + WHILE (Client_SYS.Get_Next_From_Attr(attr_, ptr_, name_, value_)) LOOP
12.305 + IF (name_ = 'PERSON_ID') THEN
12.306 + newrec_.person_id := value_;
12.307 + ELSIF (name_ = 'INTERNAL') THEN
12.308 + newrec_.internal := value_;
12.309 + ELSIF (name_ = 'FNAME') THEN
12.310 + dummy_rec_.name1 := value_;
12.311 + ELSIF (name_ = 'LNAME') THEN
12.312 + dummy_rec_.name4 := value_;
12.313 + ELSIF (name_ = 'TRAINING_INSTITUTION_NAME') THEN
12.314 + newrec_.training_institution_no := Training_Institution_API.Encode(value_);
12.315 + IF (value_ IS NOT NULL) THEN
12.316 + Training_Institution_API.Exist(newrec_.training_institution_no);
12.317 + END IF;
12.318 + ELSIF (name_ = 'DATE_OF_BIRTH') THEN
12.319 + dummy_rec_.date_of_birth := Client_SYS.Attr_Value_To_Date(value_);
12.320 + ELSIF (name_ = 'SEX') THEN
12.321 + dummy_rec_.sex := Person_Sex_API.Encode(value_);
12.322 + IF (value_ IS NOT NULL) THEN
12.323 + Person_Sex_API.Exist(value_);
12.324 + END IF;
12.325 + ELSIF (name_ = 'REMARK') THEN
12.326 + newrec_.remark := value_;
12.327 + ELSE
12.328 + Error_SYS.Item_Not_Exist(lu_name_, name_, value_);
12.329 + END IF;
12.330 + END LOOP;
12.331 + Client_SYS.Clear_Attr(attr_);
12.332 + Error_SYS.Check_Not_Null(lu_name_, 'PERSON_ID', newrec_.person_id);
12.333 + IF (dummy_rec_.name1 IS NULL) OR (dummy_rec_.name4 IS NULL) THEN
12.334 + Pers_API.Get_Names(name1_, name4_, newrec_.person_id);
12.335 + IF (dummy_rec_.name1 IS NULL) THEN
12.336 + dummy_rec_.name1 := name1_;
12.337 + END IF;
12.338 + IF (dummy_rec_.name4 IS NULL) THEN
12.339 + dummy_rec_.name4 := name4_;
12.340 + END IF;
12.341 + END IF;
12.342 + Error_SYS.Check_Not_Null(lu_name_, 'LNAME', dummy_rec_.name4);
12.343 +
12.344 + IF (dummy_rec_.date_of_birth IS NULL) THEN
12.345 + dummy_rec_.date_of_birth := Pers_API.Get_Date_Of_Birth(newrec_.person_id);
12.346 + END IF;
12.347 + IF (dummy_rec_.sex IS NULL) THEN
12.348 + dummy_rec_.sex := Person_Sex_API.Encode(Pers_API.Get_Sex(newrec_.person_id));
12.349 + END IF;
12.350 + Error_SYS.Check_Not_Null(lu_name_, 'INTERNAL', newrec_.internal);
12.351 + IF (newrec_.internal = '1') THEN
12.352 + IF (Trainer_API.Check_Person_Internal(newrec_.person_id) = 0) THEN
12.353 + Error_SYS.Item_General(lu_name_, 'INTERNAL', 'EXTTYPE: Type of the trainer should be External. ');
12.354 + END IF;
12.355 + ELSE
12.356 + IF (Trainer_API.Check_Person_Internal(newrec_.person_id) = 1) THEN
12.357 + Error_SYS.Item_General(lu_name_, 'INTERNAL', 'INTTYPE: Type of the trainer should be Internal. ');
12.358 + END IF;
12.359 + END IF;
12.360 +
12.361 +EXCEPTION
12.362 + WHEN value_error THEN
12.363 + Error_SYS.Item_Format(lu_name_, name_, value_);
12.364 +END Unpack_Check_Insert___;
12.365 +
12.366 +
12.367 +PROCEDURE Insert___ (
12.368 + objid_ OUT VARCHAR2,
12.369 + objversion_ OUT VARCHAR2,
12.370 + newrec_ IN OUT &TABLE%ROWTYPE,
12.371 + attr_ IN OUT VARCHAR2,
12.372 + dummy_rec_ IN Dummy_Rec,
12.373 + get_objid_ IN BOOLEAN DEFAULT TRUE)
12.374 +IS
12.375 + temp_attr_ VARCHAR2(2000);
12.376 + CURSOR get_objid IS
12.377 + SELECT &OBJID
12.378 + FROM &TABLE t
12.379 + WHERE person_id = newrec_.person_id;
12.380 +BEGIN
12.381 + newrec_.rowversion := 1;
12.382 + objversion_ := to_char(newrec_.rowversion);
12.383 + INSERT
12.384 + INTO trainer_tab (
12.385 + person_id,
12.386 + internal,
12.387 + training_institution_no,
12.388 + remark,
12.389 + rowversion)
12.390 + VALUES (
12.391 + newrec_.person_id,
12.392 + newrec_.internal,
12.393 + newrec_.training_institution_no,
12.394 + newrec_.remark,
12.395 + newrec_.rowversion);
12.396 +--
12.397 +-- update person register
12.398 +--
12.399 + Client_SYS.Clear_Attr(temp_attr_);
12.400 + Client_SYS.Add_To_Attr('PERSON_ID', newrec_.person_id, temp_attr_);
12.401 + Client_SYS.Add_To_Attr('NAME1', dummy_rec_.name1, temp_attr_);
12.402 + Client_SYS.Add_To_Attr('NAME4', dummy_rec_.name4, temp_attr_);
12.403 + Client_SYS.Add_To_Attr('SEX', Person_Sex_API.Decode(dummy_rec_.sex), temp_attr_);
12.404 + Client_SYS.Add_To_Attr('DATE_OF_BIRTH', dummy_rec_.date_of_birth, temp_attr_);
12.405 + Pers_API.New_Modify(temp_attr_);
12.406 +
12.407 + IF (get_objid_) THEN
12.408 + OPEN get_objid;
12.409 + FETCH get_objid INTO objid_;
12.410 + CLOSE get_objid;
12.411 + END IF;
12.412 +EXCEPTION
12.413 + WHEN dup_val_on_index THEN
12.414 + Error_SYS.Record_Exist(lu_name_);
12.415 +END Insert___;
12.416 +
12.417 +-----------------------------------------------------------------------------
12.418 +-------------------- IMPLEMENTATION BASE METHODS FOR UPDATE -----------------
12.419 +-----------------------------------------------------------------------------
12.420 +-- Unpack_Check_Update___
12.421 +-- Unpack the attribute list, check all attributes from the client
12.422 +-- and generate all default values before modifying the object.
12.423 +--
12.424 +-- Update___
12.425 +-- Update an existing LU-instance in the database and return the
12.426 +-- the new OBJVERSION.
12.427 +-----------------------------------------------------------------------------
12.428 +
12.429 +PROCEDURE Unpack_Check_Update___ (
12.430 + attr_ IN OUT VARCHAR2,
12.431 + newrec_ IN OUT &TABLE%ROWTYPE,
12.432 + objid_ IN VARCHAR2,
12.433 + dummy_rec_ IN OUT Dummy_Rec )
12.434 +IS
12.435 + ptr_ NUMBER;
12.436 + name_ VARCHAR2(30);
12.437 + value_ VARCHAR2(2000);
12.438 + name1_ VARCHAR2(200);
12.439 + name4_ VARCHAR2(200);
12.440 +
12.441 +BEGIN
12.442 + ptr_ := NULL;
12.443 + WHILE (Client_SYS.Get_Next_From_Attr(attr_, ptr_, name_, value_)) LOOP
12.444 + IF (name_ = 'PERSON_ID') THEN
12.445 + Error_SYS.Item_Update(lu_name_, 'PERSON_ID');
12.446 + ELSIF (name_ = 'INTERNAL') THEN
12.447 + newrec_.internal := value_;
12.448 + ELSIF (name_ = 'FNAME') THEN
12.449 + dummy_rec_.name1 := value_;
12.450 + ELSIF (name_ = 'LNAME') THEN
12.451 + dummy_rec_.name4 := value_;
12.452 + ELSIF (name_ = 'TRAINING_INSTITUTION_NAME') THEN
12.453 + newrec_.training_institution_no := Training_institution_API.Encode(value_);
12.454 + IF (value_ IS NOT NULL) THEN
12.455 + Training_Institution_API.Exist(newrec_.training_institution_no);
12.456 + END IF;
12.457 + ELSIF (name_ = 'DATE_OF_BIRTH') THEN
12.458 + dummy_rec_.date_of_birth := Client_SYS.Attr_Value_To_Date(value_);
12.459 + ELSIF (name_ = 'SEX') THEN
12.460 + dummy_rec_.sex := Person_Sex_API.Encode(value_);
12.461 + IF (value_ IS NOT NULL) THEN
12.462 + Person_Sex_API.Exist(value_);
12.463 + END IF;
12.464 + ELSIF (name_ = 'REMARK') THEN
12.465 + newrec_.remark := value_;
12.466 + ELSE
12.467 + Error_SYS.Item_Not_Exist(lu_name_, name_, value_);
12.468 + END IF;
12.469 + END LOOP;
12.470 + Client_SYS.Clear_Attr(attr_);
12.471 + IF (dummy_rec_.name1 IS NULL) OR (dummy_rec_.name4 IS NULL) THEN
12.472 + Pers_API.Get_Names(name1_, name4_, newrec_.person_id);
12.473 + IF (dummy_rec_.name1 IS NULL) THEN
12.474 + dummy_rec_.name1 := name1_;
12.475 + END IF;
12.476 + IF (dummy_rec_.name4 IS NULL) THEN
12.477 + dummy_rec_.name4 := name4_;
12.478 + END IF;
12.479 + END IF;
12.480 + Error_SYS.Check_Not_Null(lu_name_, 'LNAME', dummy_rec_.name4);
12.481 +
12.482 + IF (dummy_rec_.date_of_birth IS NULL) THEN
12.483 + dummy_rec_.date_of_birth := Pers_API.Get_Date_Of_Birth(newrec_.person_id);
12.484 + END IF;
12.485 + IF (dummy_rec_.sex IS NULL) THEN
12.486 + dummy_rec_.sex := Person_Sex_API.Encode(Pers_API.Get_Sex(newrec_.person_id));
12.487 + END IF;
12.488 + Error_SYS.Check_Not_Null(lu_name_, 'INTERNAL', newrec_.internal);
12.489 + IF (newrec_.internal = '1') THEN
12.490 + IF (Trainer_API.Check_Person_Internal(newrec_.person_id) = 0) THEN
12.491 + Error_SYS.Item_General(lu_name_, 'INTERNAL', 'EXTTYPE: Type of the trainer should be External. ');
12.492 + END IF;
12.493 + ELSE
12.494 + IF (Trainer_API.Check_Person_Internal(newrec_.person_id) = 1) THEN
12.495 + Error_SYS.Item_General(lu_name_, 'INTERNAL', 'INTTYPE: Type of the trainer should be Internal. ');
12.496 + END IF;
12.497 + END IF;
12.498 +EXCEPTION
12.499 + WHEN value_error THEN
12.500 + Error_SYS.Item_Format(lu_name_, name_, value_);
12.501 +END Unpack_Check_Update___;
12.502 +
12.503 +
12.504 +PROCEDURE Update___ (
12.505 + objid_ IN VARCHAR2,
12.506 + oldrec_ IN &TABLE%ROWTYPE,
12.507 + newrec_ IN OUT &TABLE%ROWTYPE,
12.508 + attr_ IN OUT VARCHAR2,
12.509 + objversion_ IN OUT VARCHAR2,
12.510 + dummy_rec_ IN Dummy_Rec,
12.511 + by_keys_ IN BOOLEAN DEFAULT FALSE )
12.512 +IS
12.513 + temp_attr_ VARCHAR2(2000);
12.514 +BEGIN
12.515 + newrec_.rowversion := newrec_.rowversion + 1;
12.516 + objversion_ := to_char(newrec_.rowversion);
12.517 + IF by_keys_ THEN
12.518 + UPDATE trainer_tab t
12.519 + SET person_id = newrec_.person_id,
12.520 + internal = newrec_.internal,
12.521 + training_institution_no = newrec_.training_institution_no,
12.522 + remark = newrec_.remark,
12.523 + rowversion = newrec_.rowversion
12.524 + WHERE person_id = newrec_.person_id;
12.525 + ELSE
12.526 + UPDATE trainer_tab t
12.527 + SET person_id = newrec_.person_id,
12.528 + internal = newrec_.internal,
12.529 + training_institution_no = newrec_.training_institution_no,
12.530 + remark = newrec_.remark,
12.531 + rowversion = newrec_.rowversion
12.532 + WHERE &OBJID = objid_;
12.533 + END IF;
12.534 +
12.535 + --
12.536 + -- update person register
12.537 + --
12.538 + Client_SYS.Clear_Attr(temp_attr_);
12.539 + Client_SYS.Add_To_Attr('PERSON_ID', newrec_.person_id, temp_attr_);
12.540 + Client_SYS.Add_To_Attr('NAME1', dummy_rec_.name1, temp_attr_);
12.541 + Client_SYS.Add_To_Attr('NAME4', dummy_rec_.name4, temp_attr_);
12.542 + Client_SYS.Add_To_Attr('SEX', Person_Sex_API.Decode(dummy_rec_.sex), temp_attr_);
12.543 + Client_SYS.Add_To_Attr('DATE_OF_BIRTH', dummy_rec_.date_of_birth, temp_attr_);
12.544 + Pers_API.New_Modify(temp_attr_);
12.545 +
12.546 +EXCEPTION
12.547 + WHEN dup_val_on_index THEN
12.548 + Error_SYS.Record_Exist(lu_name_);
12.549 + END Update___;
12.550 +
12.551 +-----------------------------------------------------------------------------
12.552 +-------------------- IMPLEMENTATION BASE METHODS FOR DELETE -----------------
12.553 +-----------------------------------------------------------------------------
12.554 +-- Check_Delete___
12.555 +-- Checks whether a specific LU-record may be removed or not.
12.556 +-- The procedure should check business rules like attribute values
12.557 +-- as well as database constraints (defined or not).
12.558 +--
12.559 +-- Delete___
12.560 +-- Deletion of the specific LU-object from the database.
12.561 +-----------------------------------------------------------------------------
12.562 +
12.563 +PROCEDURE Check_Delete___ (
12.564 + remrec_ IN &TABLE%ROWTYPE )
12.565 +IS
12.566 + key_ VARCHAR2(2000);
12.567 +BEGIN
12.568 + key_ := remrec_.person_id || '^';
12.569 + Reference_SYS.Check_Restricted_Delete(lu_name_, key_);
12.570 +END Check_Delete___;
12.571 +
12.572 +
12.573 +PROCEDURE Delete___ (
12.574 + objid_ IN VARCHAR2,
12.575 + remrec_ IN &TABLE%ROWTYPE,
12.576 + by_keys_ IN BOOLEAN DEFAULT FALSE )
12.577 +IS
12.578 + key_ VARCHAR2(2000);
12.579 + newrec_ &TABLE%ROWTYPE;
12.580 +BEGIN
12.581 + key_ := remrec_.person_id || '^';
12.582 + Reference_SYS.Do_Cascade_Delete(lu_name_, key_);
12.583 + IF (by_keys_) THEN
12.584 + newrec_ := remrec_;
12.585 + DELETE FROM &TABLE
12.586 + WHERE person_id = newrec_.person_id;
12.587 + ELSE
12.588 + DELETE
12.589 + FROM trainer_tab t
12.590 + WHERE &OBJID = objid_;
12.591 + END IF;
12.592 +END Delete___;
12.593 +
12.594 +-----------------------------------------------------------------------------
12.595 +-------------------- PRIVATE BASE METHODS -----------------------------------
12.596 +-----------------------------------------------------------------------------
12.597 +-- Lock__
12.598 +-- Client-support to lock a specific instance of the logical unit.
12.599 +--
12.600 +-- New__
12.601 +-- Client-support interface to create LU instances.
12.602 +-- action_ = 'PREPARE'
12.603 +-- Default values and handle of information to client.
12.604 +-- The default values are set in procedure Prepare_Insert___.
12.605 +-- action_ = 'CHECK'
12.606 +-- Check all attributes before creating new object and handle of
12.607 +-- information to client. The attribute list is unpacked, checked
12.608 +-- and prepared (defaults) in procedure Unpack_Check_Insert___.
12.609 +-- action_ = 'DO'
12.610 +-- Creation of new instances of the logical unit and handle of
12.611 +-- information to client. The attribute list is unpacked, checked
12.612 +-- and prepared (defaults) in procedure Unpack_Check_Insert___
12.613 +-- before calling procedure Insert___.
12.614 +--
12.615 +-- Modify__
12.616 +-- Client-support interface to modify attributes for LU instances.
12.617 +-- action_ = 'CHECK'
12.618 +-- Check all attributes before modifying an existing object and
12.619 +-- handle of information to client. The attribute list is unpacked,
12.620 +-- checked and prepared(defaults) in procedure Unpack_Check_Update___.
12.621 +-- action_ = 'DO'
12.622 +-- Modification of an existing instance of the logical unit. The
12.623 +-- procedure unpacks the attributes, checks all values before
12.624 +-- procedure Update___ is called.
12.625 +--
12.626 +-- Remove__
12.627 +-- Client-support interface to remove LU instances.
12.628 +-- action_ = 'CHECK'
12.629 +-- Check whether a specific LU-instance may be removed or not.
12.630 +-- The procedure fetches the complete record by calling procedure
12.631 +-- Get_Record___. Then the check is made by calling procedure
12.632 +-- Check_Delete___.
12.633 +-- action_ = 'DO'
12.634 +-- Remove an existing instance of the logical unit. The procedure
12.635 +-- fetches the complete LU-record, checks for a delete and then
12.636 +-- deletes the record by calling procedure Delete___.
12.637 +-----------------------------------------------------------------------------
12.638 +
12.639 +PROCEDURE Lock__ (
12.640 + info_ OUT VARCHAR2,
12.641 + objid_ IN VARCHAR2,
12.642 + objversion_ IN VARCHAR2 )
12.643 +IS
12.644 + dummy_ &TABLE%ROWTYPE;
12.645 +BEGIN
12.646 + General_SYS.Init_Method(lu_name_, '&PKG', 'Lock__');
12.647 + dummy_ := Lock_By_Id___(objid_, objversion_);
12.648 + info_ := Client_SYS.Get_All_Info;
12.649 +END Lock__;
12.650 +
12.651 +
12.652 +PROCEDURE New__ (
12.653 + info_ OUT VARCHAR2,
12.654 + objid_ OUT VARCHAR2,
12.655 + objversion_ OUT VARCHAR2,
12.656 + attr_ IN OUT VARCHAR2,
12.657 + action_ IN VARCHAR2 )
12.658 +IS
12.659 + newrec_ &TABLE%ROWTYPE;
12.660 + dummy_rec_ Dummy_Rec;
12.661 +BEGIN
12.662 + General_SYS.Init_Method(lu_name_, '&PKG', 'New__');
12.663 + IF (action_ = 'PREPARE') THEN
12.664 + Prepare_Insert___(attr_);
12.665 + ELSIF (action_ = 'CHECK') THEN
12.666 + Unpack_Check_Insert___(attr_, newrec_,dummy_rec_);
12.667 + ELSIF (action_ = 'DO') THEN
12.668 + Unpack_Check_Insert___(attr_, newrec_,dummy_rec_);
12.669 + Insert___(objid_, objversion_, newrec_, attr_,dummy_rec_);
12.670 + END IF;
12.671 + info_ := Client_SYS.Get_All_Info;
12.672 +END New__;
12.673 +
12.674 +
12.675 +PROCEDURE Modify__ (
12.676 + info_ OUT VARCHAR2,
12.677 + objid_ IN VARCHAR2,
12.678 + objversion_ IN OUT VARCHAR2,
12.679 + attr_ IN OUT VARCHAR2,
12.680 + action_ IN VARCHAR2 )
12.681 +IS
12.682 + oldrec_ &TABLE%ROWTYPE;
12.683 + newrec_ &TABLE%ROWTYPE;
12.684 + dummy_rec_ Dummy_Rec;
12.685 +BEGIN
12.686 + General_SYS.Init_Method(lu_name_, '&PKG', 'Modify__');
12.687 + IF (action_ = 'CHECK') THEN
12.688 + newrec_ := Get_Object_By_Id___(objid_);
12.689 + Unpack_Check_Update___(attr_, newrec_, objid_,dummy_rec_);
12.690 + ELSIF (action_ = 'DO') THEN
12.691 + oldrec_ := Lock_By_Id___(objid_, objversion_);
12.692 + newrec_ := oldrec_;
12.693 + Unpack_Check_Update___(attr_, newrec_, objid_,dummy_rec_);
12.694 + Update___(objid_, oldrec_, newrec_, attr_, objversion_,dummy_rec_);
12.695 + END IF;
12.696 + info_ := Client_SYS.Get_All_Info;
12.697 +END Modify__;
12.698 +
12.699 +
12.700 +PROCEDURE Remove__ (
12.701 + info_ OUT VARCHAR2,
12.702 + objid_ IN VARCHAR2,
12.703 + objversion_ IN VARCHAR2,
12.704 + action_ IN VARCHAR2 )
12.705 +IS
12.706 + remrec_ &TABLE%ROWTYPE;
12.707 +BEGIN
12.708 + General_SYS.Init_Method(lu_name_, '&PKG', 'Remove__');
12.709 + IF (action_ = 'CHECK') THEN
12.710 + remrec_ := Get_Object_By_Id___(objid_);
12.711 + Check_Delete___(remrec_);
12.712 + ELSIF (action_ = 'DO') THEN
12.713 + remrec_ := Lock_By_Id___(objid_, objversion_);
12.714 + Check_Delete___(remrec_);
12.715 + Delete___(objid_, remrec_);
12.716 + END IF;
12.717 + info_ := Client_SYS.Get_All_Info;
12.718 +END Remove__;
12.719 +
12.720 +-----------------------------------------------------------------------------
12.721 +-------------------- PUBLIC BASE METHODS ------------------------------------
12.722 +-----------------------------------------------------------------------------
12.723 +-- Exist
12.724 +-- Checks if given pointer (e.g. primary key) to an instance of this
12.725 +-- logical unit exists. If not an exception will be raised.
12.726 +-----------------------------------------------------------------------------
12.727 +
12.728 +PROCEDURE Exist (
12.729 + person_id_ IN VARCHAR2 )
12.730 +IS
12.731 +BEGIN
12.732 + General_SYS.Init_Method(lu_name_, '&PKG', 'Exist', TRUE);
12.733 + IF (NOT Check_Exist___(person_id_)) THEN
12.734 + Error_SYS.Record_Not_Exist(lu_name_);
12.735 + END IF;
12.736 +END Exist;
12.737 +
12.738 +-----------------------------------------------------------------------------
12.739 +-------------------- LU SPECIFIC IMPLEMENTATION METHODS ---------------------
12.740 +-----------------------------------------------------------------------------
12.741 +
12.742 +-----------------------------------------------------------------------------
12.743 +-------------------- LU SPECIFIC PRIVATE METHODS ----------------------------
12.744 +-----------------------------------------------------------------------------
12.745 +
12.746 +
12.747 +-----------------------------------------------------------------------------
12.748 +-------------------- LU SPECIFIC PROTECTED METHODS --------------------------
12.749 +-----------------------------------------------------------------------------
12.750 +
12.751 +
12.752 +-----------------------------------------------------------------------------
12.753 +-------------------- LU SPECIFIC PUBLIC METHODS -----------------------------
12.754 +-----------------------------------------------------------------------------
12.755 +
12.756 +FUNCTION Get_Training_Institution_Name (
12.757 + person_id_ IN VARCHAR2 ) RETURN VARCHAR2
12.758 +IS
12.759 + temp_ &TABLE..training_institution_no%TYPE;
12.760 + CURSOR get_attr IS
12.761 + SELECT training_institution_no
12.762 + FROM &TABLE
12.763 + WHERE person_id = person_id_;
12.764 +BEGIN
12.765 + OPEN get_attr;
12.766 + FETCH get_attr INTO temp_;
12.767 + CLOSE get_attr;
12.768 + RETURN Training_Institution_API.Decode(temp_);
12.769 +END Get_Training_Institution_Name;
12.770 +
12.771 +
12.772 +FUNCTION Get_Fname (
12.773 + person_id_ IN VARCHAR2 ) RETURN VARCHAR2
12.774 +IS
12.775 +BEGIN
12.776 + RETURN Pers_Api.Get_Name1(person_id_);
12.777 +END Get_Fname;
12.778 +
12.779 +
12.780 +FUNCTION Get_Lname (
12.781 + person_id_ IN VARCHAR2 ) RETURN VARCHAR2
12.782 +IS
12.783 +BEGIN
12.784 + RETURN Pers_Api.Get_Name4(person_id_);
12.785 +END Get_Lname;
12.786 +
12.787 +FUNCTION Get_Name (
12.788 + person_id_ IN VARCHAR2 ) RETURN VARCHAR2
12.789 +IS
12.790 +BEGIN
12.791 + RETURN Pers_Api.Get_Name(person_id_,'FIRST');
12.792 +END Get_Name;
12.793 +
12.794 +FUNCTION Check_Person_Internal(
12.795 + person_id_ IN VARCHAR2 ) RETURN VARCHAR2
12.796 +IS
12.797 +BEGIN
12.798 + RETURN Company_Person_API.Check_Person_Internal(person_id_);
12.799 +END Check_Person_Internal;
12.800 +
12.801 +FUNCTION Get_Internal_External(
12.802 + internal_ IN VARCHAR2) RETURN VARCHAR2
12.803 +IS
12.804 +
12.805 +BEGIN
12.806 + IF (internal_ = '0') THEN
12.807 + RETURN Relationship_Type_API.Decode(internal_ + 2);
12.808 + ELSIF (internal_ = '1') THEN
12.809 + RETURN Relationship_Type_API.Decode(internal_);
12.810 + END IF;
12.811 + RETURN null;
12.812 +END Get_Internal_External;
12.813 +
12.814 +FUNCTION Replace_Person_Id (
12.815 + new_person_id_ IN VARCHAR2,
12.816 + old_person_id_ IN VARCHAR2 ) RETURN VARCHAR2
12.817 +IS
12.818 + CURSOR get_pers IS
12.819 + SELECT &OBJID, &OBJVERSION
12.820 + FROM &TABLE t
12.821 + WHERE person_id = old_person_id_;
12.822 + objid_ VARCHAR2(2000);
12.823 + objversion_ VARCHAR2(2000);
12.824 + oldrec_ &TABLE%ROWTYPE;
12.825 +BEGIN
12.826 + General_SYS.Init_Method(lu_name_, '&PKG', 'Replace_Person_Id');
12.827 + IF (new_person_id_ = old_person_id_) THEN
12.828 + RETURN 'TRUE';
12.829 + END IF;
12.830 + IF (Check_Exist___(new_person_id_) = TRUE) THEN
12.831 + RETURN 'FALSE';
12.832 + END IF;
12.833 + OPEN get_pers;
12.834 + FETCH get_pers INTO objid_, objversion_;
12.835 + WHILE (get_pers%FOUND) LOOP
12.836 + oldrec_ := Lock_By_Id___(objid_, objversion_);
12.837 + UPDATE trainer_tab t
12.838 + SET person_id = new_person_id_,
12.839 + rowversion = rowversion + 1
12.840 + WHERE &OBJID = objid_;
12.841 + FETCH get_pers INTO objid_, objversion_;
12.842 + END LOOP;
12.843 + CLOSE get_pers;
12.844 +
12.845 + RETURN 'TRUE';
12.846 +END Replace_Person_Id;
12.847 +-----------------------------------------------------------------------------
12.848 +-------------------- FOUNDATION1 METHODS ------------------------------------
12.849 +-----------------------------------------------------------------------------
12.850 +-- Init
12.851 +-- Dummy procedure that can be called at database startup to ensure that
12.852 +-- this package is loaded into memory for performance reasons only.
12.853 +-----------------------------------------------------------------------------
12.854 +
12.855 +PROCEDURE Init
12.856 +IS
12.857 +BEGIN
12.858 + NULL;
12.859 +END Init;
12.860 +
12.861 +
12.862 +END &PKG;
12.863 +/
12.864 +SHOW ERROR
12.865 +
12.866 +-----------------------------------------------------------------------------
12.867 +
12.868 +
12.869 +
12.870 +UNDEFINE MODULE
12.871 +UNDEFINE LU
12.872 +UNDEFINE TABLE
12.873 +UNDEFINE VIEW
12.874 +UNDEFINE VIEW_LOV1
12.875 +UNDEFINE VIEW_LOV2
12.876 +UNDEFINE PKG
12.877 +UNDEFINE OBJID
12.878 +UNDEFINE OBJVERSION
12.879 +
12.880 +
13.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
13.2 +++ b/PLSQL/Lexer/test/unit/data/expected/080617_75132_fndbas.cdb.structure Wed May 15 23:04:20 2013 +0200
13.3 @@ -0,0 +1,7 @@
13.4 +COMMENT
13.5 +BEGIN_END
13.6 +DECLARE_END
13.7 +IF
13.8 +DECLARE_END
13.9 +IF
13.10 +BEGIN_END
14.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
14.2 +++ b/PLSQL/Lexer/test/unit/data/expected/081114_78488_VMOSFA.cdb.structure Wed May 15 23:04:20 2013 +0200
14.3 @@ -0,0 +1,3 @@
14.4 +COMMENT
14.5 +COMMENT
14.6 +TABLE_COMMENT
15.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
15.2 +++ b/PLSQL/Lexer/test/unit/data/expected/Dictionary.apy.structure Wed May 15 23:04:20 2013 +0200
15.3 @@ -0,0 +1,657 @@
15.4 +COMMENT
15.5 +COMMENT
15.6 +PACKAGE_BODY
15.7 +COMMENT
15.8 +FUNCTION_DEF
15.9 +COMMENT
15.10 +FUNCTION_IMPL
15.11 +WHILE_LOOP
15.12 +IF
15.13 +FUNCTION_IMPL
15.14 +CURSOR
15.15 +COMMENT
15.16 +COMMENT
15.17 +COMMENT
15.18 +COMMENT
15.19 +COMMENT
15.20 +COMMENT
15.21 +COMMENT
15.22 +COMMENT
15.23 +COMMENT
15.24 +COMMENT
15.25 +COMMENT
15.26 +COMMENT
15.27 +COMMENT
15.28 +COMMENT
15.29 +COMMENT
15.30 +COMMENT
15.31 +COMMENT
15.32 +COMMENT
15.33 +COMMENT
15.34 +COMMENT
15.35 +CURSOR
15.36 +COMMENT
15.37 +CURSOR
15.38 +COMMENT
15.39 +CURSOR
15.40 +COMMENT
15.41 +CURSOR
15.42 +COMMENT
15.43 +CURSOR
15.44 +COMMENT
15.45 +CURSOR
15.46 +PROCEDURE_IMPL
15.47 +IF
15.48 +IF
15.49 +IF
15.50 +IF
15.51 +IF
15.52 +IF
15.53 +PROCEDURE_IMPL
15.54 +CURSOR
15.55 +PROCEDURE_IMPL
15.56 +CURSOR
15.57 +PROCEDURE_IMPL
15.58 +IF
15.59 +COMMENT
15.60 +COMMENT
15.61 +STATEMENT
15.62 +PROCEDURE_IMPL
15.63 +COMMENT
15.64 +IF
15.65 +IF
15.66 +COMMENT
15.67 +FOR_LOOP
15.68 +COMMENT
15.69 +COMMENT
15.70 +IF
15.71 +BEGIN_END
15.72 +COMMENT
15.73 +IF
15.74 +COMMENT
15.75 +IF
15.76 +COMMENT
15.77 +FOR_LOOP
15.78 +COMMENT
15.79 +COMMENT
15.80 +IF
15.81 +BEGIN_END
15.82 +COMMENT
15.83 +IF
15.84 +COMMENT
15.85 +COMMENT
15.86 +IF
15.87 +FOR_LOOP
15.88 +PROCEDURE_IMPL
15.89 +CURSOR
15.90 +FUNCTION_IMPL
15.91 +STATEMENT
15.92 +FUNCTION_IMPL
15.93 +IF
15.94 +IF
15.95 +STATEMENT
15.96 +WHILE_LOOP
15.97 +IF
15.98 +WHILE_LOOP
15.99 +IF
15.100 +IF
15.101 +IF
15.102 +IF
15.103 +COMMENT
15.104 +COMMENT
15.105 +STATEMENT
15.106 +FOR_LOOP
15.107 +COMMENT
15.108 +PROCEDURE_IMPL
15.109 +CURSOR
15.110 +FUNCTION_IMPL
15.111 +STATEMENT
15.112 +IF
15.113 +IF
15.114 +STATEMENT
15.115 +IF
15.116 +IF
15.117 +BEGIN_END
15.118 +COMMENT
15.119 +FOR_LOOP
15.120 +LOOP
15.121 +IF
15.122 +FOR_LOOP
15.123 +IF
15.124 +IF
15.125 +COMMENT
15.126 +STATEMENT
15.127 +FOR_LOOP
15.128 +COMMENT
15.129 +PROCEDURE_IMPL
15.130 +CURSOR
15.131 +FUNCTION_IMPL
15.132 +COMMENT
15.133 +IF
15.134 +IF
15.135 +STATEMENT
15.136 +IF
15.137 +IF
15.138 +BEGIN_END
15.139 +COMMENT
15.140 +FOR_LOOP
15.141 +LOOP
15.142 +STATEMENT
15.143 +FOR_LOOP
15.144 +COMMENT
15.145 +PROCEDURE_IMPL
15.146 +WHILE_LOOP
15.147 +PROCEDURE_IMPL
15.148 +STATEMENT
15.149 +IF
15.150 +STATEMENT
15.151 +COMMENT
15.152 +COMMENT
15.153 +STATEMENT
15.154 +COMMENT
15.155 +COMMENT
15.156 +COMMENT
15.157 +STATEMENT
15.158 +COMMENT
15.159 +STATEMENT
15.160 +PROCEDURE_IMPL
15.161 +COMMENT
15.162 +COMMENT
15.163 +IF
15.164 +IF
15.165 +COMMENT
15.166 +COMMENT
15.167 +IF
15.168 +STATEMENT
15.169 +IF
15.170 +STATEMENT
15.171 +IF
15.172 +STATEMENT
15.173 +IF
15.174 +STATEMENT
15.175 +COMMENT
15.176 +COMMENT
15.177 +COMMENT
15.178 +IF
15.179 +IF
15.180 +IF
15.181 +STATEMENT
15.182 +STATEMENT
15.183 +PROCEDURE_IMPL
15.184 +CURSOR
15.185 +CURSOR
15.186 +COMMENT
15.187 +COMMENT
15.188 +COMMENT
15.189 +IF
15.190 +COMMENT
15.191 +COMMENT
15.192 +IF
15.193 +COMMENT
15.194 +STATEMENT
15.195 +COMMENT
15.196 +IF
15.197 +FOR_LOOP
15.198 +COMMENT
15.199 +IF
15.200 +IF
15.201 +BEGIN_END
15.202 +COMMENT
15.203 +BEGIN_END
15.204 +STATEMENT
15.205 +FOR_LOOP
15.206 +COMMENT
15.207 +PROCEDURE_IMPL
15.208 +COMMENT
15.209 +CURSOR
15.210 +COMMENT
15.211 +CURSOR
15.212 +COMMENT
15.213 +COMMENT
15.214 +IF
15.215 +IF
15.216 +STATEMENT
15.217 +IF
15.218 +STATEMENT
15.219 +COMMENT
15.220 +IF
15.221 +FOR_LOOP
15.222 +FOR_LOOP
15.223 +IF
15.224 +FOR_LOOP
15.225 +COMMENT
15.226 +IF
15.227 +IF
15.228 +COMMENT
15.229 +COMMENT
15.230 +IF
15.231 +COMMENT
15.232 +COMMENT
15.233 +BEGIN_END
15.234 +IF
15.235 +STATEMENT
15.236 +IF
15.237 +STATEMENT
15.238 +FOR_LOOP
15.239 +COMMENT
15.240 +PROCEDURE_IMPL
15.241 +CURSOR
15.242 +CURSOR
15.243 +COMMENT
15.244 +COMMENT
15.245 +COMMENT
15.246 +IF
15.247 +COMMENT
15.248 +COMMENT
15.249 +IF
15.250 +COMMENT
15.251 +STATEMENT
15.252 +COMMENT
15.253 +COMMENT
15.254 +COMMENT
15.255 +IF
15.256 +FOR_LOOP
15.257 +COMMENT
15.258 +IF
15.259 +IF
15.260 +COMMENT
15.261 +COMMENT
15.262 +BEGIN_END
15.263 +STATEMENT
15.264 +FOR_LOOP
15.265 +PROCEDURE_IMPL
15.266 +CURSOR
15.267 +CURSOR
15.268 +CURSOR
15.269 +CURSOR
15.270 +COMMENT
15.271 +COMMENT
15.272 +COMMENT
15.273 +IF
15.274 +COMMENT
15.275 +COMMENT
15.276 +IF
15.277 +COMMENT
15.278 +STATEMENT
15.279 +COMMENT
15.280 +COMMENT
15.281 +COMMENT
15.282 +IF
15.283 +FOR_LOOP
15.284 +IF
15.285 +IF
15.286 +COMMENT
15.287 +COMMENT
15.288 +BEGIN_END
15.289 +STATEMENT
15.290 +FOR_LOOP
15.291 +COMMENT
15.292 +COMMENT
15.293 +COMMENT
15.294 +COMMENT
15.295 +IF
15.296 +IF
15.297 +COMMENT
15.298 +COMMENT
15.299 +COMMENT
15.300 +IF
15.301 +COMMENT
15.302 +FOR_LOOP
15.303 +COMMENT
15.304 +IF
15.305 +IF
15.306 +COMMENT
15.307 +BEGIN_END
15.308 +STATEMENT
15.309 +IF
15.310 +STATEMENT
15.311 +COMMENT
15.312 +COMMENT
15.313 +COMMENT
15.314 +IF
15.315 +IF
15.316 +COMMENT
15.317 +COMMENT
15.318 +COMMENT
15.319 +COMMENT
15.320 +STATEMENT
15.321 +COMMENT
15.322 +COMMENT
15.323 +COMMENT
15.324 +IF
15.325 +COMMENT
15.326 +COMMENT
15.327 +COMMENT
15.328 +COMMENT
15.329 +COMMENT
15.330 +COMMENT
15.331 +COMMENT
15.332 +IF
15.333 +IF
15.334 +COMMENT
15.335 +COMMENT
15.336 +IF
15.337 +IF
15.338 +COMMENT
15.339 +IF
15.340 +COMMENT
15.341 +IF
15.342 +IF
15.343 +IF
15.344 +COMMENT
15.345 +IF
15.346 +IF
15.347 +COMMENT
15.348 +COMMENT
15.349 +COMMENT
15.350 +IF
15.351 +COMMENT
15.352 +COMMENT
15.353 +IF
15.354 +COMMENT
15.355 +COMMENT
15.356 +COMMENT
15.357 +COMMENT
15.358 +COMMENT
15.359 +FOR_LOOP
15.360 +FOR_LOOP
15.361 +COMMENT
15.362 +IF
15.363 +IF
15.364 +IF
15.365 +IF
15.366 +COMMENT
15.367 +COMMENT
15.368 +IF
15.369 +COMMENT
15.370 +IF
15.371 +IF
15.372 +COMMENT
15.373 +COMMENT
15.374 +COMMENT
15.375 +COMMENT
15.376 +COMMENT
15.377 +COMMENT
15.378 +COMMENT
15.379 +COMMENT
15.380 +COMMENT
15.381 +COMMENT
15.382 +IF
15.383 +COMMENT
15.384 +COMMENT
15.385 +IF
15.386 +COMMENT
15.387 +IF
15.388 +STATEMENT
15.389 +FOR_LOOP
15.390 +IF
15.391 +IF
15.392 +IF
15.393 +IF
15.394 +IF
15.395 +IF
15.396 +COMMENT
15.397 +COMMENT
15.398 +COMMENT
15.399 +IF
15.400 +COMMENT
15.401 +COMMENT
15.402 +COMMENT
15.403 +STATEMENT
15.404 +STATEMENT
15.405 +STATEMENT
15.406 +STATEMENT
15.407 +STATEMENT
15.408 +COMMENT
15.409 +COMMENT
15.410 +COMMENT
15.411 +COMMENT
15.412 +COMMENT
15.413 +STATEMENT
15.414 +COMMENT
15.415 +COMMENT
15.416 +COMMENT
15.417 +COMMENT
15.418 +COMMENT
15.419 +STATEMENT
15.420 +COMMENT
15.421 +COMMENT
15.422 +COMMENT
15.423 +COMMENT
15.424 +STATEMENT
15.425 +COMMENT
15.426 +COMMENT
15.427 +COMMENT
15.428 +COMMENT
15.429 +COMMENT
15.430 +COMMENT
15.431 +PROCEDURE_IMPL
15.432 +CURSOR
15.433 +COMMENT
15.434 +COMMENT
15.435 +COMMENT
15.436 +COMMENT
15.437 +COMMENT
15.438 +COMMENT
15.439 +COMMENT
15.440 +FOR_LOOP
15.441 +IF
15.442 +COMMENT
15.443 +COMMENT
15.444 +COMMENT
15.445 +PROCEDURE_IMPL
15.446 +PROCEDURE_IMPL
15.447 +PROCEDURE_IMPL
15.448 +FUNCTION_IMPL
15.449 +CURSOR
15.450 +IF
15.451 +FOR_LOOP
15.452 +PROCEDURE_IMPL
15.453 +FUNCTION_IMPL
15.454 +CURSOR
15.455 +IF
15.456 +FOR_LOOP
15.457 +PROCEDURE_IMPL
15.458 +CURSOR
15.459 +CURSOR
15.460 +IF
15.461 +IF
15.462 +IF
15.463 +FOR_LOOP
15.464 +PROCEDURE_IMPL
15.465 +CURSOR
15.466 +IF
15.467 +FOR_LOOP
15.468 +FUNCTION_IMPL
15.469 +FUNCTION_IMPL
15.470 +COMMENT
15.471 +COMMENT
15.472 +FUNCTION_IMPL
15.473 +COMMENT
15.474 +COMMENT
15.475 +IF
15.476 +IF
15.477 +FUNCTION_IMPL
15.478 +COMMENT
15.479 +COMMENT
15.480 +FOR_LOOP
15.481 +IF
15.482 +IF
15.483 +COMMENT
15.484 +IF
15.485 +IF
15.486 +COMMENT
15.487 +FUNCTION_IMPL
15.488 +COMMENT
15.489 +COMMENT
15.490 +COMMENT
15.491 +IF
15.492 +IF
15.493 +COMMENT
15.494 +IF
15.495 +COMMENT
15.496 +FUNCTION_IMPL
15.497 +CURSOR
15.498 +FUNCTION_IMPL
15.499 +CURSOR
15.500 +COMMENT
15.501 +IF
15.502 +FUNCTION_IMPL
15.503 +CURSOR
15.504 +IF
15.505 +COMMENT
15.506 +PROCEDURE_IMPL
15.507 +COMMENT
15.508 +CURSOR
15.509 +CURSOR
15.510 +COMMENT
15.511 +COMMENT
15.512 +IF
15.513 +COMMENT
15.514 +FOR_LOOP
15.515 +IF
15.516 +COMMENT
15.517 +BEGIN_END
15.518 +COMMENT
15.519 +IF
15.520 +COMMENT
15.521 +PROCEDURE_IMPL
15.522 +CURSOR
15.523 +COMMENT
15.524 +IF
15.525 +FOR_LOOP
15.526 +COMMENT
15.527 +PROCEDURE_IMPL
15.528 +CURSOR
15.529 +FOR_LOOP
15.530 +PROCEDURE_IMPL
15.531 +CURSOR
15.532 +IF
15.533 +FOR_LOOP
15.534 +COMMENT
15.535 +PROCEDURE_IMPL
15.536 +CURSOR
15.537 +IF
15.538 +FOR_LOOP
15.539 +COMMENT
15.540 +PROCEDURE_IMPL
15.541 +CURSOR
15.542 +IF
15.543 +FOR_LOOP
15.544 +COMMENT
15.545 +PROCEDURE_IMPL
15.546 +CURSOR
15.547 +FOR_LOOP
15.548 +COMMENT
15.549 +COMMENT
15.550 +PROCEDURE_IMPL
15.551 +PROCEDURE_IMPL
15.552 +PROCEDURE_IMPL
15.553 +PROCEDURE_IMPL
15.554 +CURSOR
15.555 +CURSOR
15.556 +IF
15.557 +IF
15.558 +IF
15.559 +IF
15.560 +COMMENT
15.561 +COMMENT
15.562 +FUNCTION_IMPL
15.563 +CURSOR
15.564 +FUNCTION_IMPL
15.565 +CURSOR
15.566 +CURSOR
15.567 +IF
15.568 +IF
15.569 +IF
15.570 +FUNCTION_IMPL
15.571 +CURSOR
15.572 +CURSOR
15.573 +IF
15.574 +IF
15.575 +IF
15.576 +FUNCTION_IMPL
15.577 +CURSOR
15.578 +FUNCTION_IMPL
15.579 +CURSOR
15.580 +COMMENT
15.581 +IF
15.582 +IF
15.583 +IF
15.584 +IF
15.585 +FUNCTION_IMPL
15.586 +CURSOR
15.587 +COMMENT
15.588 +IF
15.589 +IF
15.590 +IF
15.591 +IF
15.592 +FUNCTION_IMPL
15.593 +CURSOR
15.594 +COMMENT
15.595 +IF
15.596 +IF
15.597 +IF
15.598 +IF
15.599 +FUNCTION_IMPL
15.600 +CURSOR
15.601 +COMMENT
15.602 +IF
15.603 +IF
15.604 +IF
15.605 +IF
15.606 +FUNCTION_IMPL
15.607 +CURSOR
15.608 +IF
15.609 +IF
15.610 +FUNCTION_IMPL
15.611 +IF
15.612 +IF
15.613 +FUNCTION_IMPL
15.614 +IF
15.615 +IF
15.616 +FUNCTION_IMPL
15.617 +IF
15.618 +IF
15.619 +FUNCTION_IMPL
15.620 +IF
15.621 +IF
15.622 +FUNCTION_IMPL
15.623 +IF
15.624 +IF
15.625 +FUNCTION_IMPL
15.626 +CURSOR
15.627 +IF
15.628 +COMMENT
15.629 +IF
15.630 +COMMENT
15.631 +FUNCTION_IMPL
15.632 +CURSOR
15.633 +IF
15.634 +COMMENT
15.635 +IF
15.636 +COMMENT
15.637 +FUNCTION_IMPL
15.638 +CURSOR
15.639 +IF
15.640 +COMMENT
15.641 +IF
15.642 +COMMENT
15.643 +FUNCTION_IMPL
15.644 +CURSOR
15.645 +IF
15.646 +COMMENT
15.647 +IF
15.648 +COMMENT
15.649 +FUNCTION_IMPL
15.650 +CURSOR
15.651 +IF
15.652 +COMMENT
15.653 +IF
15.654 +IF
15.655 +COMMENT
15.656 +PROCEDURE_IMPL
15.657 +FUNCTION_IMPL
15.658 +COMMENT
15.659 +PROCEDURE_IMPL
15.660 +COMMENT
16.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
16.2 +++ b/PLSQL/Lexer/test/unit/data/expected/FavoriteSchedules.apy.structure Wed May 15 23:04:20 2013 +0200
16.3 @@ -0,0 +1,88 @@
16.4 +COMMENT
16.5 +COMMENT
16.6 +VIEW
16.7 +TABLE_COMMENT
16.8 +COLUMN_COMMENT
16.9 +COMMENT
16.10 +PACKAGE_BODY
16.11 +COMMENT
16.12 +COMMENT
16.13 +FUNCTION_IMPL
16.14 +CURSOR
16.15 +CURSOR
16.16 +IF
16.17 +IF
16.18 +IF
16.19 +FUNCTION_IMPL
16.20 +CURSOR
16.21 +IF
16.22 +IF
16.23 +FUNCTION_IMPL
16.24 +CURSOR
16.25 +IF
16.26 +FUNCTION_IMPL
16.27 +CURSOR
16.28 +FUNCTION_IMPL
16.29 +CURSOR
16.30 +IF
16.31 +PROCEDURE_IMPL
16.32 +CURSOR
16.33 +COMMENT
16.34 +PROCEDURE_IMPL
16.35 +PROCEDURE_IMPL
16.36 +WHILE_LOOP
16.37 +IF
16.38 +IF
16.39 +IF
16.40 +IF
16.41 +IF
16.42 +IF
16.43 +PROCEDURE_IMPL
16.44 +STATEMENT
16.45 +COMMENT
16.46 +PROCEDURE_IMPL
16.47 +WHILE_LOOP
16.48 +IF
16.49 +IF
16.50 +IF
16.51 +IF
16.52 +IF
16.53 +IF
16.54 +PROCEDURE_IMPL
16.55 +IF
16.56 +STATEMENT
16.57 +IF
16.58 +STATEMENT
16.59 +COMMENT
16.60 +PROCEDURE_IMPL
16.61 +PROCEDURE_IMPL
16.62 +STATEMENT
16.63 +COMMENT
16.64 +PROCEDURE_IMPL
16.65 +PROCEDURE_IMPL
16.66 +IF
16.67 +IF
16.68 +IF
16.69 +PROCEDURE_IMPL
16.70 +IF
16.71 +IF
16.72 +PROCEDURE_IMPL
16.73 +IF
16.74 +IF
16.75 +COMMENT
16.76 +PROCEDURE_IMPL
16.77 +IF
16.78 +COMMENT
16.79 +COMMENT
16.80 +COMMENT
16.81 +COMMENT
16.82 +PROCEDURE_IMPL
16.83 +IF
16.84 +IF
16.85 +IF
16.86 +IF
16.87 +FUNCTION_IMPL
16.88 +IF
16.89 +COMMENT
16.90 +PROCEDURE_IMPL
16.91 +COMMENT
17.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
17.2 +++ b/PLSQL/Lexer/test/unit/data/expected/FndEvent.api.structure Wed May 15 23:04:20 2013 +0200
17.3 @@ -0,0 +1,23 @@
17.4 +COMMENT
17.5 +PACKAGE
17.6 +COMMENT
17.7 +PROCEDURE_DEF
17.8 +PROCEDURE_DEF
17.9 +PROCEDURE_DEF
17.10 +PROCEDURE_DEF
17.11 +COMMENT
17.12 +PROCEDURE_DEF
17.13 +COMMENT
17.14 +PROCEDURE_DEF
17.15 +COMMENT
17.16 +COMMENT
17.17 +FUNCTION_DEF
17.18 +FUNCTION_DEF
17.19 +PROCEDURE_DEF
17.20 +PROCEDURE_DEF
17.21 +PROCEDURE_DEF
17.22 +PROCEDURE_DEF
17.23 +FUNCTION_DEF
17.24 +COMMENT
17.25 +PROCEDURE_DEF
17.26 +COMMENT
18.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
18.2 +++ b/PLSQL/Lexer/test/unit/data/expected/FndEvent.apy.structure Wed May 15 23:04:20 2013 +0200
18.3 @@ -0,0 +1,255 @@
18.4 +COMMENT
18.5 +COMMENT
18.6 +VIEW
18.7 +TABLE_COMMENT
18.8 +COLUMN_COMMENT
18.9 +COMMENT
18.10 +PACKAGE_BODY
18.11 +COMMENT
18.12 +PROCEDURE_DEF
18.13 +PROCEDURE_DEF
18.14 +FUNCTION_DEF
18.15 +PROCEDURE_DEF
18.16 +PROCEDURE_DEF
18.17 +FUNCTION_DEF
18.18 +COMMENT
18.19 +FUNCTION_IMPL
18.20 +CURSOR
18.21 +CURSOR
18.22 +IF
18.23 +IF
18.24 +IF
18.25 +FUNCTION_IMPL
18.26 +CURSOR
18.27 +IF
18.28 +IF
18.29 +FUNCTION_IMPL
18.30 +CURSOR
18.31 +IF
18.32 +FUNCTION_IMPL
18.33 +CURSOR
18.34 +FUNCTION_IMPL
18.35 +CURSOR
18.36 +IF
18.37 +PROCEDURE_IMPL
18.38 +CURSOR
18.39 +COMMENT
18.40 +PROCEDURE_IMPL
18.41 +PROCEDURE_IMPL
18.42 +WHILE_LOOP
18.43 +IF
18.44 +IF
18.45 +IF
18.46 +IF
18.47 +IF
18.48 +IF
18.49 +IF
18.50 +IF
18.51 +IF
18.52 +IF
18.53 +IF
18.54 +IF
18.55 +IF
18.56 +IF
18.57 +IF
18.58 +IF
18.59 +IF
18.60 +IF
18.61 +IF
18.62 +IF
18.63 +IF
18.64 +IF
18.65 +IF
18.66 +PROCEDURE_IMPL
18.67 +COMMENT
18.68 +IF
18.69 +COMMENT
18.70 +STATEMENT
18.71 +COMMENT
18.72 +IF
18.73 +IF
18.74 +COMMENT
18.75 +PROCEDURE_IMPL
18.76 +WHILE_LOOP
18.77 +IF
18.78 +IF
18.79 +IF
18.80 +IF
18.81 +IF
18.82 +IF
18.83 +IF
18.84 +IF
18.85 +IF
18.86 +IF
18.87 +IF
18.88 +IF
18.89 +IF
18.90 +IF
18.91 +IF
18.92 +IF
18.93 +IF
18.94 +IF
18.95 +IF
18.96 +IF
18.97 +IF
18.98 +IF
18.99 +IF
18.100 +PROCEDURE_IMPL
18.101 +CURSOR
18.102 +IF
18.103 +IF
18.104 +COMMENT
18.105 +IF
18.106 +STATEMENT
18.107 +IF
18.108 +STATEMENT
18.109 +COMMENT
18.110 +IF
18.111 +IF
18.112 +IF
18.113 +COMMENT
18.114 +PROCEDURE_IMPL
18.115 +PROCEDURE_IMPL
18.116 +STATEMENT
18.117 +COMMENT
18.118 +IF
18.119 +COMMENT
18.120 +PROCEDURE_IMPL
18.121 +PROCEDURE_IMPL
18.122 +IF
18.123 +IF
18.124 +IF
18.125 +PROCEDURE_IMPL
18.126 +IF
18.127 +IF
18.128 +PROCEDURE_IMPL
18.129 +IF
18.130 +IF
18.131 +COMMENT
18.132 +PROCEDURE_IMPL
18.133 +IF
18.134 +COMMENT
18.135 +PROCEDURE_IMPL
18.136 +COMMENT
18.137 +IF
18.138 +IF
18.139 +IF
18.140 +PROCEDURE_IMPL
18.141 +COMMENT
18.142 +CURSOR
18.143 +COMMENT
18.144 +FUNCTION_IMPL
18.145 +COMMENT
18.146 +FUNCTION_IMPL
18.147 +CASE
18.148 +CASE
18.149 +CASE
18.150 +COMMENT
18.151 +FUNCTION_IMPL
18.152 +IF
18.153 +COMMENT
18.154 +LOOP
18.155 +COMMENT
18.156 +IF
18.157 +COMMENT
18.158 +IF
18.159 +COMMENT
18.160 +COMMENT
18.161 +FUNCTION_IMPL
18.162 +IF
18.163 +COMMENT
18.164 +IF
18.165 +LOOP
18.166 +IF
18.167 +COMMENT
18.168 +IF
18.169 +COMMENT
18.170 +IF
18.171 +IF
18.172 +COMMENT
18.173 +COMMENT
18.174 +FUNCTION_IMPL
18.175 +COMMENT
18.176 +CURSOR
18.177 +IF
18.178 +COMMENT
18.179 +FOR_LOOP
18.180 +IF
18.181 +IF
18.182 +IF
18.183 +CASE
18.184 +CASE
18.185 +COMMENT
18.186 +IF
18.187 +IF
18.188 +CASE
18.189 +COMMENT
18.190 +FOR_LOOP
18.191 +IF
18.192 +IF
18.193 +IF
18.194 +IF
18.195 +COMMENT
18.196 +IF
18.197 +IF
18.198 +IF
18.199 +IF
18.200 +COMMENT
18.201 +FUNCTION_IMPL
18.202 +CASE
18.203 +CASE
18.204 +CASE
18.205 +PROCEDURE_IMPL
18.206 +COMMENT
18.207 +IF
18.208 +IF
18.209 +IF
18.210 +PROCEDURE_IMPL
18.211 +COMMENT
18.212 +FUNCTION_IMPL
18.213 +COMMENT
18.214 +PROCEDURE_IMPL
18.215 +CURSOR
18.216 +COMMENT
18.217 +COMMENT
18.218 +IF
18.219 +COMMENT
18.220 +COMMENT
18.221 +COMMENT
18.222 +COMMENT
18.223 +COMMENT
18.224 +COMMENT
18.225 +FOR_LOOP
18.226 +COMMENT
18.227 +COMMENT
18.228 +FUNCTION_IMPL
18.229 +CURSOR
18.230 +FUNCTION_IMPL
18.231 +CURSOR
18.232 +IF
18.233 +IF
18.234 +PROCEDURE_IMPL
18.235 +IF
18.236 +STATEMENT
18.237 +IF
18.238 +IF
18.239 +PROCEDURE_IMPL
18.240 +IF
18.241 +STATEMENT
18.242 +IF
18.243 +STATEMENT
18.244 +IF
18.245 +STATEMENT
18.246 +PROCEDURE_IMPL
18.247 +IF
18.248 +STATEMENT
18.249 +STATEMENT
18.250 +PROCEDURE_IMPL
18.251 +STATEMENT
18.252 +IF
18.253 +STATEMENT
18.254 +FUNCTION_IMPL
18.255 +CURSOR
18.256 +COMMENT
18.257 +PROCEDURE_IMPL
18.258 +COMMENT
19.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
19.2 +++ b/PLSQL/Lexer/test/unit/data/expected/IdentityPayInfo.apy.structure Wed May 15 23:04:20 2013 +0200
19.3 @@ -0,0 +1,453 @@
19.4 +COMMENT
19.5 +COMMENT
19.6 +VIEW
19.7 +TABLE_COMMENT
19.8 +COLUMN_COMMENT
19.9 +COMMENT
19.10 +VIEW
19.11 +TABLE_COMMENT
19.12 +COLUMN_COMMENT
19.13 +COMMENT
19.14 +COMMENT
19.15 +VIEW
19.16 +TABLE_COMMENT
19.17 +COLUMN_COMMENT
19.18 +COMMENT
19.19 +COMMENT
19.20 +VIEW
19.21 +TABLE_COMMENT
19.22 +COLUMN_COMMENT
19.23 +COMMENT
19.24 +COMMENT
19.25 +VIEW
19.26 +TABLE_COMMENT
19.27 +COLUMN_COMMENT
19.28 +COMMENT
19.29 +COMMENT
19.30 +VIEW
19.31 +TABLE_COMMENT
19.32 +COLUMN_COMMENT
19.33 +COMMENT
19.34 +VIEW
19.35 +TABLE_COMMENT
19.36 +COLUMN_COMMENT
19.37 +VIEW
19.38 +TABLE_COMMENT
19.39 +COLUMN_COMMENT
19.40 +COMMENT
19.41 +VIEW
19.42 +TABLE_COMMENT
19.43 +COLUMN_COMMENT
19.44 +COMMENT
19.45 +VIEW
19.46 +TABLE_COMMENT
19.47 +COLUMN_COMMENT
19.48 +VIEW
19.49 +TABLE_COMMENT
19.50 +COLUMN_COMMENT
19.51 +VIEW
19.52 +TABLE_COMMENT
19.53 +COLUMN_COMMENT
19.54 +COMMENT
19.55 +PACKAGE_BODY
19.56 +COMMENT
19.57 +PROCEDURE_DEF
19.58 +FUNCTION_DEF
19.59 +PROCEDURE_DEF
19.60 +PROCEDURE_DEF
19.61 +PROCEDURE_DEF
19.62 +PROCEDURE_DEF
19.63 +PROCEDURE_DEF
19.64 +COMMENT
19.65 +FUNCTION_IMPL
19.66 +CURSOR
19.67 +CURSOR
19.68 +IF
19.69 +IF
19.70 +IF
19.71 +FUNCTION_IMPL
19.72 +CURSOR
19.73 +IF
19.74 +IF
19.75 +FUNCTION_IMPL
19.76 +CURSOR
19.77 +IF
19.78 +FUNCTION_IMPL
19.79 +CURSOR
19.80 +FUNCTION_IMPL
19.81 +CURSOR
19.82 +IF
19.83 +PROCEDURE_IMPL
19.84 +CURSOR
19.85 +COMMENT
19.86 +PROCEDURE_IMPL
19.87 +COMMENT
19.88 +IF
19.89 +IF
19.90 +PROCEDURE_IMPL
19.91 +WHILE_LOOP
19.92 +IF
19.93 +IF
19.94 +IF
19.95 +IF
19.96 +IF
19.97 +IF
19.98 +IF
19.99 +IF
19.100 +IF
19.101 +IF
19.102 +IF
19.103 +IF
19.104 +IF
19.105 +IF
19.106 +IF
19.107 +IF
19.108 +IF
19.109 +IF
19.110 +IF
19.111 +IF
19.112 +IF
19.113 +IF
19.114 +IF
19.115 +IF
19.116 +IF
19.117 +IF
19.118 +IF
19.119 +IF
19.120 +IF
19.121 +IF
19.122 +IF
19.123 +IF
19.124 +IF
19.125 +IF
19.126 +IF
19.127 +IF
19.128 +IF
19.129 +IF
19.130 +IF
19.131 +IF
19.132 +IF
19.133 +IF
19.134 +IF
19.135 +IF
19.136 +IF
19.137 +IF
19.138 +IF
19.139 +IF
19.140 +IF
19.141 +IF
19.142 +IF
19.143 +IF
19.144 +IF
19.145 +PROCEDURE_IMPL
19.146 +CURSOR
19.147 +STATEMENT
19.148 +COMMENT
19.149 +PROCEDURE_IMPL
19.150 +WHILE_LOOP
19.151 +IF
19.152 +IF
19.153 +IF
19.154 +IF
19.155 +IF
19.156 +IF
19.157 +IF
19.158 +IF
19.159 +IF
19.160 +IF
19.161 +IF
19.162 +IF
19.163 +IF
19.164 +IF
19.165 +IF
19.166 +IF
19.167 +IF
19.168 +IF
19.169 +IF
19.170 +IF
19.171 +IF
19.172 +IF
19.173 +IF
19.174 +IF
19.175 +IF
19.176 +IF
19.177 +IF
19.178 +IF
19.179 +IF
19.180 +IF
19.181 +IF
19.182 +IF
19.183 +IF
19.184 +IF
19.185 +IF
19.186 +IF
19.187 +IF
19.188 +IF
19.189 +IF
19.190 +IF
19.191 +IF
19.192 +IF
19.193 +IF
19.194 +IF
19.195 +IF
19.196 +IF
19.197 +IF
19.198 +IF
19.199 +IF
19.200 +IF
19.201 +IF
19.202 +IF
19.203 +IF
19.204 +PROCEDURE_IMPL
19.205 +IF
19.206 +STATEMENT
19.207 +IF
19.208 +STATEMENT
19.209 +COMMENT
19.210 +PROCEDURE_IMPL
19.211 +PROCEDURE_IMPL
19.212 +STATEMENT
19.213 +COMMENT
19.214 +PROCEDURE_IMPL
19.215 +PROCEDURE_IMPL
19.216 +IF
19.217 +IF
19.218 +IF
19.219 +PROCEDURE_IMPL
19.220 +IF
19.221 +IF
19.222 +PROCEDURE_IMPL
19.223 +IF
19.224 +IF
19.225 +COMMENT
19.226 +PROCEDURE_IMPL
19.227 +IF
19.228 +COMMENT
19.229 +IF
19.230 +COMMENT
19.231 +COMMENT
19.232 +IF
19.233 +COMMENT
19.234 +IF
19.235 +PROCEDURE_IMPL
19.236 +IF
19.237 +IF
19.238 +IF
19.239 +COMMENT
19.240 +PROCEDURE_IMPL
19.241 +IF
19.242 +FUNCTION_IMPL
19.243 +CURSOR
19.244 +IF
19.245 +PROCEDURE_IMPL
19.246 +CURSOR
19.247 +CURSOR
19.248 +CURSOR
19.249 +FOR_LOOP
19.250 +IF
19.251 +IF
19.252 +IF
19.253 +FOR_LOOP
19.254 +IF
19.255 +IF
19.256 +IF
19.257 +FOR_LOOP
19.258 +IF
19.259 +IF
19.260 +IF
19.261 +PROCEDURE_IMPL
19.262 +CURSOR
19.263 +COMMENT
19.264 +CURSOR
19.265 +COMMENT
19.266 +IF
19.267 +IF
19.268 +IF
19.269 +FOR_LOOP
19.270 +IF
19.271 +IF
19.272 +IF
19.273 +IF
19.274 +IF
19.275 +IF
19.276 +IF
19.277 +IF
19.278 +IF
19.279 +IF
19.280 +IF
19.281 +IF
19.282 +IF
19.283 +IF
19.284 +IF
19.285 +IF
19.286 +COMMENT
19.287 +COMMENT
19.288 +IF
19.289 +PROCEDURE_IMPL
19.290 +CURSOR
19.291 +CURSOR
19.292 +IF
19.293 +IF
19.294 +IF
19.295 +FOR_LOOP
19.296 +STATEMENT
19.297 +COMMENT
19.298 +COMMENT
19.299 +IF
19.300 +PROCEDURE_IMPL
19.301 +CURSOR
19.302 +FOR_LOOP
19.303 +COMMENT
19.304 +PROCEDURE_IMPL
19.305 +CURSOR
19.306 +FOR_LOOP
19.307 +PROCEDURE_IMPL
19.308 +CURSOR
19.309 +FOR_LOOP
19.310 +PROCEDURE_IMPL
19.311 +CURSOR
19.312 +FOR_LOOP
19.313 +PROCEDURE_IMPL
19.314 +CURSOR
19.315 +FOR_LOOP
19.316 +FUNCTION_IMPL
19.317 +CURSOR
19.318 +FOR_LOOP
19.319 +FUNCTION_IMPL
19.320 +CURSOR
19.321 +FOR_LOOP
19.322 +COMMENT
19.323 +COMMENT
19.324 +FUNCTION_IMPL
19.325 +FUNCTION_IMPL
19.326 +FUNCTION_IMPL
19.327 +FUNCTION_IMPL
19.328 +FUNCTION_IMPL
19.329 +FUNCTION_IMPL
19.330 +CURSOR
19.331 +FUNCTION_IMPL
19.332 +CURSOR
19.333 +IF
19.334 +FUNCTION_IMPL
19.335 +CURSOR
19.336 +FUNCTION_IMPL
19.337 +CURSOR
19.338 +FUNCTION_IMPL
19.339 +STATEMENT
19.340 +FUNCTION_IMPL
19.341 +CURSOR
19.342 +FUNCTION_IMPL
19.343 +CURSOR
19.344 +IF
19.345 +FUNCTION_IMPL
19.346 +IF
19.347 +FUNCTION_IMPL
19.348 +CURSOR
19.349 +IF
19.350 +FUNCTION_IMPL
19.351 +CURSOR
19.352 +FUNCTION_IMPL
19.353 +CURSOR
19.354 +IF
19.355 +FUNCTION_IMPL
19.356 +CURSOR
19.357 +IF
19.358 +FUNCTION_IMPL
19.359 +CURSOR
19.360 +IF
19.361 +FUNCTION_IMPL
19.362 +CURSOR
19.363 +IF
19.364 +FUNCTION_IMPL
19.365 +CURSOR
19.366 +IF
19.367 +FUNCTION_IMPL
19.368 +CURSOR
19.369 +IF
19.370 +FUNCTION_IMPL
19.371 +FUNCTION_IMPL
19.372 +FUNCTION_IMPL
19.373 +FUNCTION_IMPL
19.374 +CURSOR
19.375 +IF
19.376 +FUNCTION_IMPL
19.377 +CURSOR
19.378 +FUNCTION_IMPL
19.379 +CURSOR
19.380 +PROCEDURE_IMPL
19.381 +CURSOR
19.382 +IF
19.383 +IF
19.384 +PROCEDURE_IMPL
19.385 +PROCEDURE_IMPL
19.386 +IF
19.387 +IF
19.388 +IF
19.389 +IF
19.390 +IF
19.391 +IF
19.392 +IF
19.393 +IF
19.394 +FUNCTION_IMPL
19.395 +CURSOR
19.396 +IF
19.397 +PROCEDURE_IMPL
19.398 +CURSOR
19.399 +CURSOR
19.400 +IF
19.401 +COMMENT
19.402 +IF
19.403 +IF
19.404 +COMMENT
19.405 +IF
19.406 +IF
19.407 +IF
19.408 +IF
19.409 +PROCEDURE_IMPL
19.410 +CURSOR
19.411 +FOR_LOOP
19.412 +STATEMENT
19.413 +PROCEDURE_IMPL
19.414 +CURSOR
19.415 +FOR_LOOP
19.416 +COMMENT
19.417 +STATEMENT
19.418 +COMMENT
19.419 +PROCEDURE_IMPL
19.420 +CURSOR
19.421 +CURSOR
19.422 +FOR_LOOP
19.423 +COMMENT
19.424 +STATEMENT
19.425 +COMMENT
19.426 +FOR_LOOP
19.427 +STATEMENT
19.428 +PROCEDURE_IMPL
19.429 +CURSOR
19.430 +FOR_LOOP
19.431 +COMMENT
19.432 +STATEMENT
19.433 +COMMENT
19.434 +FUNCTION_IMPL
19.435 +CURSOR
19.436 +IF
19.437 +PROCEDURE_IMPL
19.438 +IF
19.439 +COMMENT
19.440 +FUNCTION_IMPL
19.441 +CURSOR
19.442 +IF
19.443 +PROCEDURE_IMPL
19.444 +IF
19.445 +IF
19.446 +IF
19.447 +IF
19.448 +FUNCTION_IMPL
19.449 +CURSOR
19.450 +IF
19.451 +FUNCTION_IMPL
19.452 +IF
19.453 +COMMENT
19.454 +PROCEDURE_IMPL
19.455 +COMMENT
19.456 +COMMENT
20.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
20.2 +++ b/PLSQL/Lexer/test/unit/data/expected/InstallationSite.apy.structure Wed May 15 23:04:20 2013 +0200
20.3 @@ -0,0 +1,106 @@
20.4 +COMMENT
20.5 +COMMENT
20.6 +VIEW
20.7 +TABLE_COMMENT
20.8 +COLUMN_COMMENT
20.9 +VIEW
20.10 +TABLE_COMMENT
20.11 +COLUMN_COMMENT
20.12 +COMMENT
20.13 +PACKAGE_BODY
20.14 +COMMENT
20.15 +COMMENT
20.16 +FUNCTION_IMPL
20.17 +CURSOR
20.18 +CURSOR
20.19 +IF
20.20 +IF
20.21 +IF
20.22 +FUNCTION_IMPL
20.23 +CURSOR
20.24 +IF
20.25 +IF
20.26 +FUNCTION_IMPL
20.27 +CURSOR
20.28 +IF
20.29 +FUNCTION_IMPL
20.30 +CURSOR
20.31 +FUNCTION_IMPL
20.32 +CURSOR
20.33 +IF
20.34 +PROCEDURE_IMPL
20.35 +CURSOR
20.36 +COMMENT
20.37 +PROCEDURE_IMPL
20.38 +PROCEDURE_IMPL
20.39 +IF
20.40 +WHILE_LOOP
20.41 +IF
20.42 +IF
20.43 +IF
20.44 +IF
20.45 +IF
20.46 +IF
20.47 +PROCEDURE_IMPL
20.48 +IF
20.49 +IF
20.50 +STATEMENT
20.51 +STATEMENT
20.52 +COMMENT
20.53 +COMMENT
20.54 +PROCEDURE_IMPL
20.55 +IF
20.56 +WHILE_LOOP
20.57 +IF
20.58 +IF
20.59 +IF
20.60 +IF
20.61 +IF
20.62 +IF
20.63 +PROCEDURE_IMPL
20.64 +IF
20.65 +IF
20.66 +IF
20.67 +STATEMENT
20.68 +IF
20.69 +STATEMENT
20.70 +COMMENT
20.71 +COMMENT
20.72 +PROCEDURE_IMPL
20.73 +PROCEDURE_IMPL
20.74 +STATEMENT
20.75 +COMMENT
20.76 +COMMENT
20.77 +PROCEDURE_IMPL
20.78 +PROCEDURE_IMPL
20.79 +IF
20.80 +IF
20.81 +IF
20.82 +PROCEDURE_IMPL
20.83 +IF
20.84 +IF
20.85 +PROCEDURE_IMPL
20.86 +IF
20.87 +IF
20.88 +COMMENT
20.89 +PROCEDURE_IMPL
20.90 +IF
20.91 +COMMENT
20.92 +COMMENT
20.93 +FUNCTION_IMPL
20.94 +CURSOR
20.95 +IF
20.96 +IF
20.97 +COMMENT
20.98 +FUNCTION_IMPL
20.99 +CURSOR
20.100 +CURSOR
20.101 +IF
20.102 +IF
20.103 +IF
20.104 +IF
20.105 +IF
20.106 +COMMENT
20.107 +COMMENT
20.108 +PROCEDURE_IMPL
20.109 +COMMENT
21.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
21.2 +++ b/PLSQL/Lexer/test/unit/data/expected/OpPersDiaryCalculation.apy.structure Wed May 15 23:04:20 2013 +0200
21.3 @@ -0,0 +1,203 @@
21.4 +COMMENT
21.5 +COMMENT
21.6 +PACKAGE_BODY
21.7 +COMMENT
21.8 +COMMENT
21.9 +COMMENT
21.10 +PROCEDURE_DEF
21.11 +PROCEDURE_DEF
21.12 +PROCEDURE_DEF
21.13 +PROCEDURE_DEF
21.14 +PROCEDURE_DEF
21.15 +PROCEDURE_DEF
21.16 +PROCEDURE_DEF
21.17 +PROCEDURE_DEF
21.18 +PROCEDURE_DEF
21.19 +PROCEDURE_DEF
21.20 +COMMENT
21.21 +PROCEDURE_IMPL
21.22 +COMMENT
21.23 +COMMENT
21.24 +COMMENT
21.25 +IF
21.26 +IF
21.27 +FOR_LOOP
21.28 +IF
21.29 +COMMENT
21.30 +COMMENT
21.31 +COMMENT
21.32 +WHILE_LOOP
21.33 +FOR_LOOP
21.34 +IF
21.35 +FOR_LOOP
21.36 +IF
21.37 +IF
21.38 +IF
21.39 +FOR_LOOP
21.40 +IF
21.41 +FOR_LOOP
21.42 +IF
21.43 +IF
21.44 +IF
21.45 +IF
21.46 +COMMENT
21.47 +IF
21.48 +FOR_LOOP
21.49 +IF
21.50 +COMMENT
21.51 +IF
21.52 +FOR_LOOP
21.53 +IF
21.54 +IF
21.55 +PROCEDURE_IMPL
21.56 +CURSOR
21.57 +FOR_LOOP
21.58 +IF
21.59 +FOR_LOOP
21.60 +IF
21.61 +COMMENT
21.62 +FOR_LOOP
21.63 +FOR_LOOP
21.64 +PROCEDURE_IMPL
21.65 +IF
21.66 +COMMENT
21.67 +COMMENT
21.68 +COMMENT
21.69 +FOR_LOOP
21.70 +IF
21.71 +FOR_LOOP
21.72 +IF
21.73 +FOR_LOOP
21.74 +IF
21.75 +COMMENT
21.76 +COMMENT
21.77 +COMMENT
21.78 +IF
21.79 +FOR_LOOP
21.80 +IF
21.81 +COMMENT
21.82 +COMMENT
21.83 +COMMENT
21.84 +FOR_LOOP
21.85 +IF
21.86 +COMMENT
21.87 +COMMENT
21.88 +COMMENT
21.89 +WHILE_LOOP
21.90 +FOR_LOOP
21.91 +IF
21.92 +IF
21.93 +IF
21.94 +IF
21.95 +WHILE_LOOP
21.96 +FOR_LOOP
21.97 +IF
21.98 +IF
21.99 +IF
21.100 +IF
21.101 +PROCEDURE_IMPL
21.102 +CURSOR
21.103 +CURSOR
21.104 +COMMENT
21.105 +CURSOR
21.106 +COMMENT
21.107 +COMMENT
21.108 +COMMENT
21.109 +IF
21.110 +IF
21.111 +IF
21.112 +IF
21.113 +IF
21.114 +COMMENT
21.115 +COMMENT
21.116 +COMMENT
21.117 +COMMENT
21.118 +COMMENT
21.119 +COMMENT
21.120 +FOR_LOOP
21.121 +IF
21.122 +FOR_LOOP
21.123 +IF
21.124 +IF
21.125 +IF
21.126 +COMMENT
21.127 +IF
21.128 +COMMENT
21.129 +IF
21.130 +IF
21.131 +IF
21.132 +IF
21.133 +IF
21.134 +IF
21.135 +IF
21.136 +PROCEDURE_IMPL
21.137 +CURSOR
21.138 +IF
21.139 +IF
21.140 +FOR_LOOP
21.141 +CASE
21.142 +CASE
21.143 +CASE
21.144 +FOR_LOOP
21.145 +IF
21.146 +IF
21.147 +IF
21.148 +IF
21.149 +PROCEDURE_IMPL
21.150 +IF
21.151 +STATEMENT
21.152 +PROCEDURE_IMPL
21.153 +IF
21.154 +STATEMENT
21.155 +PROCEDURE_IMPL
21.156 +IF
21.157 +COMMENT
21.158 +IF
21.159 +STATEMENT
21.160 +COMMENT
21.161 +PROCEDURE_IMPL
21.162 +IF
21.163 +COMMENT
21.164 +IF
21.165 +STATEMENT
21.166 +COMMENT
21.167 +PROCEDURE_IMPL
21.168 +FOR_LOOP
21.169 +IF
21.170 +IF
21.171 +STATEMENT
21.172 +COMMENT
21.173 +COMMENT
21.174 +COMMENT
21.175 +COMMENT
21.176 +IF
21.177 +COMMENT
21.178 +PROCEDURE_IMPL
21.179 +COMMENT
21.180 +COMMENT
21.181 +COMMENT
21.182 +COMMENT
21.183 +COMMENT
21.184 +COMMENT
21.185 +COMMENT
21.186 +COMMENT
21.187 +COMMENT
21.188 +COMMENT
21.189 +COMMENT
21.190 +COMMENT
21.191 +COMMENT
21.192 +COMMENT
21.193 +COMMENT
21.194 +IF
21.195 +IF
21.196 +IF
21.197 +IF
21.198 +IF
21.199 +IF
21.200 +FUNCTION_IMPL
21.201 +COMMENT
21.202 +COMMENT
21.203 +COMMENT
21.204 +PROCEDURE_IMPL
21.205 +COMMENT
21.206 +COMMENT
22.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
22.2 +++ b/PLSQL/Lexer/test/unit/data/expected/ScorecardInputValue.apy.structure Wed May 15 23:04:20 2013 +0200
22.3 @@ -0,0 +1,953 @@
22.4 +COMMENT
22.5 +COMMENT
22.6 +VIEW
22.7 +TABLE_COMMENT
22.8 +COLUMN_COMMENT
22.9 +VIEW
22.10 +TABLE_COMMENT
22.11 +COLUMN_COMMENT
22.12 +VIEW
22.13 +TABLE_COMMENT
22.14 +COLUMN_COMMENT
22.15 +COMMENT
22.16 +VIEW
22.17 +TABLE_COMMENT
22.18 +COMMENT
22.19 +COMMENT
22.20 +VIEW
22.21 +TABLE_COMMENT
22.22 +COLUMN_COMMENT
22.23 +COMMENT
22.24 +COMMENT
22.25 +COMMENT
22.26 +PACKAGE_BODY
22.27 +COMMENT
22.28 +COMMENT
22.29 +PROCEDURE_DEF
22.30 +COMMENT
22.31 +PROCEDURE_DEF
22.32 +FUNCTION_DEF
22.33 +COMMENT
22.34 +FUNCTION_IMPL
22.35 +CURSOR
22.36 +CURSOR
22.37 +IF
22.38 +IF
22.39 +IF
22.40 +FUNCTION_IMPL
22.41 +CURSOR
22.42 +IF
22.43 +IF
22.44 +FUNCTION_IMPL
22.45 +CURSOR
22.46 +IF
22.47 +FUNCTION_IMPL
22.48 +CURSOR
22.49 +FUNCTION_IMPL
22.50 +CURSOR
22.51 +IF
22.52 +PROCEDURE_IMPL
22.53 +CURSOR
22.54 +COMMENT
22.55 +PROCEDURE_IMPL
22.56 +STATEMENT
22.57 +PROCEDURE_IMPL
22.58 +IF
22.59 +IF
22.60 +IF
22.61 +IF
22.62 +IF
22.63 +IF
22.64 +IF
22.65 +IF
22.66 +IF
22.67 +IF
22.68 +PROCEDURE_IMPL
22.69 +PROCEDURE_IMPL
22.70 +COMMENT
22.71 +FUNCTION_IMPL
22.72 +FUNCTION_IMPL
22.73 +PROCEDURE_IMPL
22.74 +FUNCTION_IMPL
22.75 +IF
22.76 +IF
22.77 +IF
22.78 +IF
22.79 +PROCEDURE_IMPL
22.80 +COMMENT
22.81 +PROCEDURE_IMPL
22.82 +PROCEDURE_IMPL
22.83 +WHILE_LOOP
22.84 +IF
22.85 +IF
22.86 +IF
22.87 +IF
22.88 +IF
22.89 +IF
22.90 +IF
22.91 +IF
22.92 +IF
22.93 +IF
22.94 +IF
22.95 +IF
22.96 +IF
22.97 +IF
22.98 +IF
22.99 +IF
22.100 +IF
22.101 +IF
22.102 +IF
22.103 +IF
22.104 +IF
22.105 +IF
22.106 +IF
22.107 +IF
22.108 +IF
22.109 +IF
22.110 +IF
22.111 +IF
22.112 +IF
22.113 +IF
22.114 +IF
22.115 +IF
22.116 +IF
22.117 +IF
22.118 +IF
22.119 +IF
22.120 +PROCEDURE_IMPL
22.121 +STATEMENT
22.122 +COMMENT
22.123 +PROCEDURE_IMPL
22.124 +WHILE_LOOP
22.125 +IF
22.126 +IF
22.127 +IF
22.128 +IF
22.129 +IF
22.130 +IF
22.131 +IF
22.132 +IF
22.133 +IF
22.134 +IF
22.135 +IF
22.136 +IF
22.137 +IF
22.138 +IF
22.139 +IF
22.140 +IF
22.141 +IF
22.142 +IF
22.143 +IF
22.144 +IF
22.145 +IF
22.146 +IF
22.147 +IF
22.148 +IF
22.149 +IF
22.150 +IF
22.151 +IF
22.152 +IF
22.153 +IF
22.154 +IF
22.155 +IF
22.156 +IF
22.157 +IF
22.158 +IF
22.159 +IF
22.160 +IF
22.161 +IF
22.162 +IF
22.163 +IF
22.164 +IF
22.165 +IF
22.166 +IF
22.167 +IF
22.168 +IF
22.169 +IF
22.170 +IF
22.171 +IF
22.172 +IF
22.173 +IF
22.174 +IF
22.175 +PROCEDURE_IMPL
22.176 +IF
22.177 +STATEMENT
22.178 +IF
22.179 +STATEMENT
22.180 +COMMENT
22.181 +PROCEDURE_IMPL
22.182 +PROCEDURE_IMPL
22.183 +STATEMENT
22.184 +COMMENT
22.185 +PROCEDURE_IMPL
22.186 +PROCEDURE_IMPL
22.187 +IF
22.188 +IF
22.189 +IF
22.190 +PROCEDURE_IMPL
22.191 +IF
22.192 +IF
22.193 +PROCEDURE_IMPL
22.194 +IF
22.195 +IF
22.196 +COMMENT
22.197 +PROCEDURE_IMPL
22.198 +IF
22.199 +COMMENT
22.200 +PROCEDURE_IMPL
22.201 +COMMENT
22.202 +PROCEDURE_IMPL
22.203 +CURSOR
22.204 +CURSOR
22.205 +CURSOR
22.206 +CURSOR
22.207 +STATEMENT
22.208 +IF
22.209 +IF
22.210 +IF
22.211 +COMMENT
22.212 +FOR_LOOP
22.213 +IF
22.214 +FOR_LOOP
22.215 +IF
22.216 +IF
22.217 +IF
22.218 +IF
22.219 +IF
22.220 +FOR_LOOP
22.221 +IF
22.222 +IF
22.223 +IF
22.224 +IF
22.225 +FOR_LOOP
22.226 +IF
22.227 +IF
22.228 +IF
22.229 +IF
22.230 +IF
22.231 +IF
22.232 +BEGIN_END
22.233 +BEGIN_END
22.234 +IF
22.235 +FOR_LOOP
22.236 +IF
22.237 +IF
22.238 +FOR_LOOP
22.239 +IF
22.240 +IF
22.241 +IF
22.242 +IF
22.243 +FOR_LOOP
22.244 +IF
22.245 +IF
22.246 +IF
22.247 +IF
22.248 +IF
22.249 +IF
22.250 +BEGIN_END
22.251 +BEGIN_END
22.252 +IF
22.253 +FOR_LOOP
22.254 +PROCEDURE_IMPL
22.255 +FUNCTION_IMPL
22.256 +CURSOR
22.257 +FOR_LOOP
22.258 +IF
22.259 +IF
22.260 +IF
22.261 +IF
22.262 +IF
22.263 +IF
22.264 +IF
22.265 +IF
22.266 +IF
22.267 +IF
22.268 +IF
22.269 +IF
22.270 +COMMENT
22.271 +PROCEDURE_IMPL
22.272 +IF
22.273 +IF
22.274 +IF
22.275 +IF
22.276 +IF
22.277 +PROCEDURE_IMPL
22.278 +IF
22.279 +IF
22.280 +IF
22.281 +IF
22.282 +IF
22.283 +IF
22.284 +IF
22.285 +IF
22.286 +IF
22.287 +PROCEDURE_IMPL
22.288 +COMMENT
22.289 +CURSOR
22.290 +COMMENT
22.291 +CURSOR
22.292 +FOR_LOOP
22.293 +IF
22.294 +IF
22.295 +IF
22.296 +IF
22.297 +IF
22.298 +IF
22.299 +IF
22.300 +IF
22.301 +IF
22.302 +IF
22.303 +IF
22.304 +IF
22.305 +IF
22.306 +COMMENT
22.307 +IF
22.308 +IF
22.309 +PROCEDURE_IMPL
22.310 +PROCEDURE_IMPL
22.311 +PROCEDURE_IMPL
22.312 +PROCEDURE_IMPL
22.313 +PROCEDURE_IMPL
22.314 +IF
22.315 +IF
22.316 +COMMENT
22.317 +COMMENT
22.318 +FUNCTION_IMPL
22.319 +CURSOR
22.320 +FUNCTION_IMPL
22.321 +COMMENT
22.322 +CURSOR
22.323 +CURSOR
22.324 +IF
22.325 +COMMENT
22.326 +FOR_LOOP
22.327 +FUNCTION_IMPL
22.328 +CURSOR
22.329 +FUNCTION_IMPL
22.330 +CURSOR
22.331 +FUNCTION_IMPL
22.332 +CURSOR
22.333 +PROCEDURE_IMPL
22.334 +STATEMENT
22.335 +CURSOR
22.336 +CURSOR
22.337 +COMMENT
22.338 +COMMENT
22.339 +COMMENT
22.340 +IF
22.341 +IF
22.342 +IF
22.343 +IF
22.344 +LOOP
22.345 +IF
22.346 +IF
22.347 +IF
22.348 +IF
22.349 +IF
22.350 +IF
22.351 +IF
22.352 +IF
22.353 +IF
22.354 +IF
22.355 +IF
22.356 +IF
22.357 +IF
22.358 +IF
22.359 +IF
22.360 +IF
22.361 +IF
22.362 +IF
22.363 +COMMENT
22.364 +IF
22.365 +COMMENT
22.366 +FOR_LOOP
22.367 +IF
22.368 +IF
22.369 +IF
22.370 +IF
22.371 +IF
22.372 +IF
22.373 +IF
22.374 +IF
22.375 +IF
22.376 +IF
22.377 +IF
22.378 +IF
22.379 +FOR_LOOP
22.380 +IF
22.381 +STATEMENT
22.382 +IF
22.383 +STATEMENT
22.384 +IF
22.385 +STATEMENT
22.386 +IF
22.387 +STATEMENT
22.388 +IF
22.389 +STATEMENT
22.390 +IF
22.391 +STATEMENT
22.392 +IF
22.393 +STATEMENT
22.394 +IF
22.395 +STATEMENT
22.396 +IF
22.397 +STATEMENT
22.398 +IF
22.399 +STATEMENT
22.400 +IF
22.401 +STATEMENT
22.402 +IF
22.403 +STATEMENT
22.404 +PROCEDURE_IMPL
22.405 +IF
22.406 +IF
22.407 +IF
22.408 +IF
22.409 +IF
22.410 +IF
22.411 +IF
22.412 +STATEMENT
22.413 +IF
22.414 +IF
22.415 +IF
22.416 +STATEMENT
22.417 +IF
22.418 +STATEMENT
22.419 +IF
22.420 +STATEMENT
22.421 +IF
22.422 +STATEMENT
22.423 +IF
22.424 +STATEMENT
22.425 +IF
22.426 +STATEMENT
22.427 +IF
22.428 +STATEMENT
22.429 +IF
22.430 +STATEMENT
22.431 +IF
22.432 +STATEMENT
22.433 +IF
22.434 +STATEMENT
22.435 +IF
22.436 +STATEMENT
22.437 +IF
22.438 +STATEMENT
22.439 +IF
22.440 +IF
22.441 +STATEMENT
22.442 +IF
22.443 +STATEMENT
22.444 +IF
22.445 +STATEMENT
22.446 +IF
22.447 +STATEMENT
22.448 +IF
22.449 +STATEMENT
22.450 +IF
22.451 +STATEMENT
22.452 +IF
22.453 +STATEMENT
22.454 +IF
22.455 +STATEMENT
22.456 +IF
22.457 +STATEMENT
22.458 +IF
22.459 +STATEMENT
22.460 +IF
22.461 +STATEMENT
22.462 +IF
22.463 +STATEMENT
22.464 +IF
22.465 +IF
22.466 +STATEMENT
22.467 +PROCEDURE_IMPL
22.468 +IF
22.469 +PROCEDURE_IMPL
22.470 +CURSOR
22.471 +FOR_LOOP
22.472 +IF
22.473 +IF
22.474 +IF
22.475 +PROCEDURE_IMPL
22.476 +CURSOR
22.477 +CURSOR
22.478 +CURSOR
22.479 +IF
22.480 +FOR_LOOP
22.481 +IF
22.482 +IF
22.483 +IF
22.484 +IF
22.485 +IF
22.486 +IF
22.487 +IF
22.488 +IF
22.489 +IF
22.490 +IF
22.491 +IF
22.492 +IF
22.493 +IF
22.494 +IF
22.495 +IF
22.496 +COMMENT
22.497 +IF
22.498 +COMMENT
22.499 +IF
22.500 +COMMENT
22.501 +IF
22.502 +COMMENT
22.503 +IF
22.504 +COMMENT
22.505 +IF
22.506 +COMMENT
22.507 +IF
22.508 +COMMENT
22.509 +IF
22.510 +COMMENT
22.511 +IF
22.512 +COMMENT
22.513 +IF
22.514 +COMMENT
22.515 +IF
22.516 +COMMENT
22.517 +IF
22.518 +COMMENT
22.519 +STATEMENT
22.520 +COMMENT
22.521 +COMMENT
22.522 +IF
22.523 +PROCEDURE_IMPL
22.524 +CURSOR
22.525 +CURSOR
22.526 +FOR_LOOP
22.527 +FOR_LOOP
22.528 +STATEMENT
22.529 +PROCEDURE_IMPL
22.530 +COMMENT
22.531 +CURSOR
22.532 +FOR_LOOP
22.533 +COMMENT
22.534 +PROCEDURE_IMPL
22.535 +CURSOR
22.536 +FOR_LOOP
22.537 +PROCEDURE_IMPL
22.538 +CURSOR
22.539 +FOR_LOOP
22.540 +PROCEDURE_IMPL
22.541 +PROCEDURE_IMPL
22.542 +PROCEDURE_IMPL
22.543 +PROCEDURE_IMPL
22.544 +IF
22.545 +IF
22.546 +PROCEDURE_IMPL
22.547 +CURSOR
22.548 +CURSOR
22.549 +CURSOR
22.550 +CURSOR
22.551 +IF
22.552 +IF
22.553 +IF
22.554 +IF
22.555 +IF
22.556 +IF
22.557 +COMMENT
22.558 +FOR_LOOP
22.559 +FOR_LOOP
22.560 +COMMENT
22.561 +FOR_LOOP
22.562 +COMMENT
22.563 +FOR_LOOP
22.564 +IF
22.565 +IF
22.566 +IF
22.567 +IF
22.568 +IF
22.569 +IF
22.570 +IF
22.571 +IF
22.572 +IF
22.573 +IF
22.574 +IF
22.575 +IF
22.576 +FOR_LOOP
22.577 +FOR_LOOP
22.578 +COMMENT
22.579 +FOR_LOOP
22.580 +COMMENT
22.581 +FOR_LOOP
22.582 +IF
22.583 +IF
22.584 +IF
22.585 +IF
22.586 +IF
22.587 +IF
22.588 +IF
22.589 +IF
22.590 +IF
22.591 +IF
22.592 +IF
22.593 +IF
22.594 +PROCEDURE_IMPL
22.595 +PROCEDURE_IMPL
22.596 +CURSOR
22.597 +CURSOR
22.598 +CURSOR
22.599 +CURSOR
22.600 +STATEMENT
22.601 +IF
22.602 +COMMENT
22.603 +FOR_LOOP
22.604 +IF
22.605 +IF
22.606 +FOR_LOOP
22.607 +FOR_LOOP
22.608 +FOR_LOOP
22.609 +IF
22.610 +IF
22.611 +IF
22.612 +IF
22.613 +IF
22.614 +FOR_LOOP
22.615 +IF
22.616 +FOR_LOOP
22.617 +COMMENT
22.618 +IF
22.619 +FOR_LOOP
22.620 +PROCEDURE_IMPL
22.621 +COMMENT
22.622 +IF
22.623 +IF
22.624 +PROCEDURE_IMPL
22.625 +PROCEDURE_IMPL
22.626 +COMMENT
22.627 +IF
22.628 +IF
22.629 +PROCEDURE_IMPL
22.630 +CURSOR
22.631 +CURSOR
22.632 +CURSOR
22.633 +CURSOR
22.634 +CURSOR
22.635 +STATEMENT
22.636 +IF
22.637 +IF
22.638 +COMMENT
22.639 +FOR_LOOP
22.640 +IF
22.641 +IF
22.642 +FOR_LOOP
22.643 +FOR_LOOP
22.644 +FOR_LOOP
22.645 +IF
22.646 +IF
22.647 +IF
22.648 +IF
22.649 +IF
22.650 +FOR_LOOP
22.651 +COMMENT
22.652 +IF
22.653 +IF
22.654 +FOR_LOOP
22.655 +PROCEDURE_IMPL
22.656 +STATEMENT
22.657 +CURSOR
22.658 +CURSOR
22.659 +CURSOR
22.660 +CURSOR
22.661 +COMMENT
22.662 +IF
22.663 +IF
22.664 +IF
22.665 +FOR_LOOP
22.666 +IF
22.667 +IF
22.668 +FOR_LOOP
22.669 +LOOP
22.670 +IF
22.671 +IF
22.672 +FOR_LOOP
22.673 +IF
22.674 +FOR_LOOP
22.675 +PROCEDURE_IMPL
22.676 +CURSOR
22.677 +CURSOR
22.678 +CURSOR
22.679 +CURSOR
22.680 +CURSOR
22.681 +IF
22.682 +IF
22.683 +IF
22.684 +FOR_LOOP
22.685 +IF
22.686 +IF
22.687 +FOR_LOOP
22.688 +IF
22.689 +FOR_LOOP
22.690 +IF
22.691 +FOR_LOOP
22.692 +FOR_LOOP
22.693 +IF
22.694 +IF
22.695 +FOR_LOOP
22.696 +IF
22.697 +COMMENT
22.698 +IF
22.699 +IF
22.700 +FOR_LOOP
22.701 +IF
22.702 +PROCEDURE_IMPL
22.703 +PROCEDURE_IMPL
22.704 +PROCEDURE_IMPL
22.705 +IF
22.706 +IF
22.707 +PROCEDURE_IMPL
22.708 +CURSOR
22.709 +COMMENT
22.710 +COMMENT
22.711 +COMMENT
22.712 +FUNCTION_IMPL
22.713 +CURSOR
22.714 +PROCEDURE_IMPL
22.715 +STATEMENT
22.716 +CURSOR
22.717 +CURSOR
22.718 +CURSOR
22.719 +IF
22.720 +IF
22.721 +COMMENT
22.722 +COMMENT
22.723 +FOR_LOOP
22.724 +LOOP
22.725 +COMMENT
22.726 +COMMENT
22.727 +IF
22.728 +IF
22.729 +IF
22.730 +IF
22.731 +IF
22.732 +IF
22.733 +COMMENT
22.734 +COMMENT
22.735 +IF
22.736 +COMMENT
22.737 +IF
22.738 +COMMENT
22.739 +COMMENT
22.740 +FOR_LOOP
22.741 +FOR_LOOP
22.742 +IF
22.743 +CASE
22.744 +CASE
22.745 +CASE
22.746 +CASE
22.747 +CASE
22.748 +CASE
22.749 +CASE
22.750 +CASE
22.751 +CASE
22.752 +CASE
22.753 +CASE
22.754 +CASE
22.755 +CASE
22.756 +IF
22.757 +IF
22.758 +IF
22.759 +PROCEDURE_IMPL
22.760 +IF
22.761 +IF
22.762 +IF
22.763 +PROCEDURE_IMPL
22.764 +CURSOR
22.765 +CURSOR
22.766 +FOR_LOOP
22.767 +IF
22.768 +IF
22.769 +IF
22.770 +IF
22.771 +IF
22.772 +IF
22.773 +IF
22.774 +IF
22.775 +IF
22.776 +IF
22.777 +IF
22.778 +IF
22.779 +PROCEDURE_IMPL
22.780 +CURSOR
22.781 +LOOP
22.782 +WHILE_LOOP
22.783 +IF
22.784 +IF
22.785 +IF
22.786 +COMMENT
22.787 +PROCEDURE_IMPL
22.788 +CURSOR
22.789 +IF
22.790 +IF
22.791 +IF
22.792 +IF
22.793 +IF
22.794 +IF
22.795 +IF
22.796 +IF
22.797 +IF
22.798 +IF
22.799 +IF
22.800 +IF
22.801 +IF
22.802 +IF
22.803 +IF
22.804 +PROCEDURE_IMPL
22.805 +CURSOR
22.806 +IF
22.807 +COMMENT
22.808 +PROCEDURE_IMPL
22.809 +COMMENT
22.810 +COMMENT
22.811 +CURSOR
22.812 +IF
22.813 +IF
22.814 +IF
22.815 +IF
22.816 +IF
22.817 +IF
22.818 +IF
22.819 +IF
22.820 +IF
22.821 +IF
22.822 +IF
22.823 +IF
22.824 +IF
22.825 +IF
22.826 +COMMENT
22.827 +COMMENT
22.828 +COMMENT
22.829 +FOR_LOOP
22.830 +COMMENT
22.831 +IF
22.832 +IF
22.833 +COMMENT
22.834 +IF
22.835 +COMMENT
22.836 +COMMENT
22.837 +IF
22.838 +IF
22.839 +COMMENT
22.840 +COMMENT
22.841 +IF
22.842 +IF
22.843 +COMMENT
22.844 +COMMENT
22.845 +FUNCTION_IMPL
22.846 +CURSOR
22.847 +IF
22.848 +IF
22.849 +IF
22.850 +IF
22.851 +IF
22.852 +IF
22.853 +IF
22.854 +IF
22.855 +IF
22.856 +IF
22.857 +IF
22.858 +IF
22.859 +PROCEDURE_IMPL
22.860 +COMMENT
22.861 +COMMENT
22.862 +COMMENT
22.863 +COMMENT
22.864 +COMMENT
22.865 +COMMENT
22.866 +CURSOR
22.867 +CURSOR
22.868 +COMMENT
22.869 +COMMENT
22.870 +COMMENT
22.871 +COMMENT
22.872 +COMMENT
22.873 +IF
22.874 +COMMENT
22.875 +COMMENT
22.876 +COMMENT
22.877 +IF
22.878 +IF
22.879 +IF
22.880 +IF
22.881 +IF
22.882 +IF
22.883 +IF
22.884 +IF
22.885 +IF
22.886 +IF
22.887 +IF
22.888 +IF
22.889 +IF
22.890 +COMMENT
22.891 +IF
22.892 +FOR_LOOP
22.893 +FOR_LOOP
22.894 +COMMENT
22.895 +WHILE_LOOP
22.896 +IF
22.897 +COMMENT
22.898 +FOR_LOOP
22.899 +COMMENT
22.900 +COMMENT
22.901 +COMMENT
22.902 +COMMENT
22.903 +COMMENT
22.904 +COMMENT
22.905 +IF
22.906 +COMMENT
22.907 +COMMENT
22.908 +COMMENT
22.909 +IF
22.910 +COMMENT
22.911 +FOR_LOOP
22.912 +COMMENT
22.913 +COMMENT
22.914 +COMMENT
22.915 +COMMENT
22.916 +COMMENT
22.917 +COMMENT
22.918 +IF
22.919 +COMMENT
22.920 +COMMENT
22.921 +IF
22.922 +WHILE_LOOP
22.923 +IF
22.924 +IF
22.925 +IF
22.926 +IF
22.927 +IF
22.928 +IF
22.929 +IF
22.930 +IF
22.931 +IF
22.932 +IF
22.933 +IF
22.934 +IF
22.935 +FOR_LOOP
22.936 +COMMENT
22.937 +COMMENT
22.938 +PROCEDURE_IMPL
22.939 +CURSOR
22.940 +CURSOR
22.941 +CURSOR
22.942 +CURSOR
22.943 +WHILE_LOOP
22.944 +IF
22.945 +IF
22.946 +FOR_LOOP
22.947 +IF
22.948 +IF
22.949 +FOR_LOOP
22.950 +FOR_LOOP
22.951 +IF
22.952 +FUNCTION_IMPL
22.953 +CURSOR
22.954 +COMMENT
22.955 +PROCEDURE_IMPL
22.956 +COMMENT
23.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
23.2 +++ b/PLSQL/Lexer/test/unit/data/expected/Trainer.apy.structure Wed May 15 23:04:20 2013 +0200
23.3 @@ -0,0 +1,136 @@
23.4 +COMMENT
23.5 +COMMENT
23.6 +VIEW
23.7 +TABLE_COMMENT
23.8 +COLUMN_COMMENT
23.9 +VIEW
23.10 +TABLE_COMMENT
23.11 +COLUMN_COMMENT
23.12 +COMMENT
23.13 +PACKAGE_BODY
23.14 +COMMENT
23.15 +COMMENT
23.16 +FUNCTION_IMPL
23.17 +CURSOR
23.18 +CURSOR
23.19 +IF
23.20 +IF
23.21 +IF
23.22 +FUNCTION_IMPL
23.23 +CURSOR
23.24 +IF
23.25 +IF
23.26 +FUNCTION_IMPL
23.27 +CURSOR
23.28 +IF
23.29 +FUNCTION_IMPL
23.30 +CURSOR
23.31 +FUNCTION_IMPL
23.32 +CURSOR
23.33 +IF
23.34 +PROCEDURE_IMPL
23.35 +CURSOR
23.36 +COMMENT
23.37 +PROCEDURE_IMPL
23.38 +PROCEDURE_IMPL
23.39 +WHILE_LOOP
23.40 +IF
23.41 +IF
23.42 +IF
23.43 +IF
23.44 +IF
23.45 +IF
23.46 +IF
23.47 +IF
23.48 +IF
23.49 +IF
23.50 +IF
23.51 +IF
23.52 +IF
23.53 +IF
23.54 +IF
23.55 +IF
23.56 +IF
23.57 +IF
23.58 +IF
23.59 +IF
23.60 +PROCEDURE_IMPL
23.61 +CURSOR
23.62 +STATEMENT
23.63 +COMMENT
23.64 +IF
23.65 +COMMENT
23.66 +PROCEDURE_IMPL
23.67 +WHILE_LOOP
23.68 +IF
23.69 +IF
23.70 +IF
23.71 +IF
23.72 +IF
23.73 +IF
23.74 +IF
23.75 +IF
23.76 +IF
23.77 +IF
23.78 +IF
23.79 +IF
23.80 +IF
23.81 +IF
23.82 +IF
23.83 +IF
23.84 +IF
23.85 +IF
23.86 +IF
23.87 +IF
23.88 +PROCEDURE_IMPL
23.89 +IF
23.90 +STATEMENT
23.91 +IF
23.92 +STATEMENT
23.93 +COMMENT
23.94 +COMMENT
23.95 +COMMENT
23.96 +COMMENT
23.97 +PROCEDURE_IMPL
23.98 +PROCEDURE_IMPL
23.99 +IF
23.100 +STATEMENT
23.101 +IF
23.102 +STATEMENT
23.103 +COMMENT
23.104 +PROCEDURE_IMPL
23.105 +PROCEDURE_IMPL
23.106 +IF
23.107 +IF
23.108 +IF
23.109 +PROCEDURE_IMPL
23.110 +IF
23.111 +IF
23.112 +PROCEDURE_IMPL
23.113 +IF
23.114 +IF
23.115 +COMMENT
23.116 +PROCEDURE_IMPL
23.117 +IF
23.118 +COMMENT
23.119 +COMMENT
23.120 +COMMENT
23.121 +COMMENT
23.122 +FUNCTION_IMPL
23.123 +CURSOR
23.124 +FUNCTION_IMPL
23.125 +FUNCTION_IMPL
23.126 +FUNCTION_IMPL
23.127 +FUNCTION_IMPL
23.128 +FUNCTION_IMPL
23.129 +IF
23.130 +IF
23.131 +FUNCTION_IMPL
23.132 +CURSOR
23.133 +IF
23.134 +IF
23.135 +WHILE_LOOP
23.136 +STATEMENT
23.137 +COMMENT
23.138 +PROCEDURE_IMPL
23.139 +COMMENT
24.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
24.2 +++ b/PLSQL/Lexer/test/unit/data/expected/fndbas_ora.cre.structure Wed May 15 23:04:20 2013 +0200
24.3 @@ -0,0 +1,18 @@
24.4 +COMMENT
24.5 +COMMENT
24.6 +STATEMENT
24.7 +STATEMENT
24.8 +STATEMENT
24.9 +STATEMENT
24.10 +STATEMENT
24.11 +COMMENT
24.12 +STATEMENT
24.13 +COMMENT
24.14 +TRIGGER
24.15 +STATEMENT
24.16 +STATEMENT
24.17 +COMMENT
24.18 +BEGIN_END
24.19 +COMMENT
24.20 +IF
24.21 +IF
25.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
25.2 +++ b/PLSQL/Lexer/test/unit/data/expected/person.ins.structure Wed May 15 23:04:20 2013 +0200
25.3 @@ -0,0 +1,76 @@
25.4 +COMMENT
25.5 +BEGIN_END
25.6 +STATEMENT
25.7 +DECLARE_END
25.8 +IF
25.9 +COMMENT
25.10 +BEGIN_END
25.11 +STATEMENT
25.12 +DECLARE_END
25.13 +CURSOR
25.14 +STATEMENT
25.15 +IF
25.16 +STATEMENT
25.17 +LOOP
25.18 +STATEMENT
25.19 +STATEMENT
25.20 +IF
25.21 +STATEMENT
25.22 +BEGIN_END
25.23 +STATEMENT
25.24 +DECLARE_END
25.25 +COMMENT
25.26 +COMMENT
25.27 +COMMENT
25.28 +COMMENT
25.29 +COMMENT
25.30 +DECLARE_END
25.31 +COMMENT
25.32 +COMMENT
25.33 +COMMENT
25.34 +COMMENT
25.35 +COMMENT
25.36 +DECLARE_END
25.37 +COMMENT
25.38 +DECLARE_END
25.39 +CURSOR
25.40 +STATEMENT
25.41 +IF
25.42 +STATEMENT
25.43 +BEGIN_END
25.44 +PROCEDURE_IMPL
25.45 +CURSOR
25.46 +IF
25.47 +STATEMENT
25.48 +DECLARE_END
25.49 +STATEMENT
25.50 +BEGIN_END
25.51 +DECLARE_END
25.52 +CURSOR
25.53 +IF
25.54 +STATEMENT
25.55 +STATEMENT
25.56 +STATEMENT
25.57 +STATEMENT
25.58 +STATEMENT
25.59 +STATEMENT
25.60 +BEGIN_END
25.61 +DECLARE_END
25.62 +CURSOR
25.63 +IF
25.64 +STATEMENT
25.65 +STATEMENT
25.66 +STATEMENT
25.67 +STATEMENT
25.68 +STATEMENT
25.69 +STATEMENT
25.70 +STATEMENT
25.71 +STATEMENT
25.72 +STATEMENT
25.73 +STATEMENT
25.74 +STATEMENT
25.75 +COMMENT
25.76 +DECLARE_END
25.77 +COMMENT
25.78 +COMMENT
25.79 +COMMENT
26.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
26.2 +++ b/PLSQL/Lexer/test/unit/data/expected/sys_IalObjectSlave.api.structure Wed May 15 23:04:20 2013 +0200
26.3 @@ -0,0 +1,16 @@
26.4 +COMMENT
26.5 +PACKAGE
26.6 +COMMENT
26.7 +COMMENT
26.8 +COMMENT
26.9 +PROCEDURE_DEF
26.10 +PROCEDURE_DEF
26.11 +PROCEDURE_DEF
26.12 +PROCEDURE_DEF
26.13 +PROCEDURE_DEF
26.14 +PROCEDURE_DEF
26.15 +FUNCTION_DEF
26.16 +PROCEDURE_DEF
26.17 +COMMENT
26.18 +PROCEDURE_DEF
26.19 +COMMENT
27.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
27.2 +++ b/PLSQL/Lexer/test/unit/data/expected/sys_IalObjectSlave.apy.structure Wed May 15 23:04:20 2013 +0200
27.3 @@ -0,0 +1,69 @@
27.4 +COMMENT
27.5 +COMMENT
27.6 +PACKAGE_BODY
27.7 +COMMENT
27.8 +FUNCTION_DEF
27.9 +FUNCTION_DEF
27.10 +FUNCTION_DEF
27.11 +FUNCTION_DEF
27.12 +COMMENT
27.13 +FUNCTION_IMPL
27.14 +CURSOR
27.15 +FUNCTION_IMPL
27.16 +CURSOR
27.17 +IF
27.18 +IF
27.19 +FUNCTION_IMPL
27.20 +CURSOR
27.21 +FUNCTION_IMPL
27.22 +CURSOR
27.23 +IF
27.24 +COMMENT
27.25 +COMMENT
27.26 +COMMENT
27.27 +PROCEDURE_IMPL
27.28 +COMMENT
27.29 +COMMENT
27.30 +PROCEDURE_IMPL
27.31 +CURSOR
27.32 +IF
27.33 +FOR_LOOP
27.34 +IF
27.35 +FOR_LOOP
27.36 +PROCEDURE_IMPL
27.37 +CURSOR
27.38 +CURSOR
27.39 +FOR_LOOP
27.40 +IF
27.41 +IF
27.42 +FOR_LOOP
27.43 +IF
27.44 +COMMENT
27.45 +IF
27.46 +COMMENT
27.47 +PROCEDURE_IMPL
27.48 +PROCEDURE_IMPL
27.49 +PROCEDURE_IMPL
27.50 +CURSOR
27.51 +IF
27.52 +COMMENT
27.53 +COMMENT
27.54 +IF
27.55 +IF
27.56 +IF
27.57 +COMMENT
27.58 +FUNCTION_IMPL
27.59 +CURSOR
27.60 +CURSOR
27.61 +FOR_LOOP
27.62 +IF
27.63 +PROCEDURE_IMPL
27.64 +CURSOR
27.65 +FOR_LOOP
27.66 +COMMENT
27.67 +COMMENT
27.68 +IF
27.69 +COMMENT
27.70 +COMMENT
27.71 +PROCEDURE_IMPL
27.72 +COMMENT
28.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
28.2 +++ b/PLSQL/Lexer/test/unit/data/expected/test.api.structure Wed May 15 23:04:20 2013 +0200
28.3 @@ -0,0 +1,7 @@
28.4 +COMMENT
28.5 +BEGIN_END
28.6 +PACKAGE
28.7 +COMMENT
28.8 +FUNCTION_DEF
28.9 +PROCEDURE_DEF
28.10 +COMMENT
29.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
29.2 +++ b/PLSQL/Lexer/test/unit/data/expected/test.apy.structure Wed May 15 23:04:20 2013 +0200
29.3 @@ -0,0 +1,17 @@
29.4 +COMMENT
29.5 +VIEW
29.6 +TABLE_COMMENT
29.7 +COLUMN_COMMENT
29.8 +PACKAGE_BODY
29.9 +COMMENT
29.10 +PROCEDURE_DEF
29.11 +FUNCTION_DEF
29.12 +PROCEDURE_IMPL
29.13 +IF
29.14 +COMMENT
29.15 +FUNCTION_IMPL
29.16 +CURSOR
29.17 +COMMENT
29.18 +PROCEDURE_IMPL
29.19 +BEGIN_END
29.20 +COMMENT
30.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
30.2 +++ b/PLSQL/Lexer/test/unit/data/expected/test.upg.structure Wed May 15 23:04:20 2013 +0200
30.3 @@ -0,0 +1,17 @@
30.4 +JAVA_SOURCE
30.5 +DECLARE_END
30.6 +CURSOR
30.7 +STATEMENT
30.8 +IF
30.9 +STATEMENT
30.10 +STATEMENT
30.11 +CASE
30.12 +CASE
30.13 +CASE
30.14 +CASE
30.15 +CASE
30.16 +CASE
30.17 +CASE
30.18 +TRIGGER
30.19 +STATEMENT
30.20 +STATEMENT
31.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
31.2 +++ b/PLSQL/Lexer/test/unit/data/expected/test1.apy.structure Wed May 15 23:04:20 2013 +0200
31.3 @@ -0,0 +1,53 @@
31.4 +VIEW
31.5 +DECLARE_END
31.6 +CURSOR
31.7 +PROCEDURE_IMPL
31.8 +STATEMENT
31.9 +STATEMENT
31.10 +IF
31.11 +FOR_LOOP
31.12 +BEGIN_END
31.13 +DECLARE_END
31.14 +STATEMENT
31.15 +CASE
31.16 +STATEMENT
31.17 +STATEMENT
31.18 +STATEMENT
31.19 +STATEMENT
31.20 +CASE
31.21 +CASE
31.22 +CASE
31.23 +CASE
31.24 +VIEW
31.25 +TABLE_COMMENT
31.26 +DECLARE_END
31.27 +DECLARE_END
31.28 +CURSOR
31.29 +STATEMENT
31.30 +IF
31.31 +STATEMENT
31.32 +STATEMENT
31.33 +BEGIN_END
31.34 +STATEMENT
31.35 +VIEW
31.36 +VIEW
31.37 +TRIGGER
31.38 +STATEMENT
31.39 +STATEMENT
31.40 +BEGIN_END
31.41 +COMMENT
31.42 +IF
31.43 +IF
31.44 +TRIGGER
31.45 +STATEMENT
31.46 +COMMENT
31.47 +FUNCTION_IMPL
31.48 +STATEMENT
31.49 +STATEMENT
31.50 +CASE
31.51 +CASE
31.52 +CASE
31.53 +CASE
31.54 +CASE
31.55 +CASE
31.56 +CASE
32.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
32.2 +++ b/PLSQL/Lexer/test/unit/data/expected/test2.apy.structure Wed May 15 23:04:20 2013 +0200
32.3 @@ -0,0 +1,154 @@
32.4 +PROCEDURE_IMPL
32.5 +COMMENT
32.6 +CURSOR
32.7 +CURSOR
32.8 +COMMENT
32.9 +FOR_LOOP
32.10 +COMMENT
32.11 +COMMENT
32.12 +COMMENT
32.13 +COMMENT
32.14 +COMMENT
32.15 +IF
32.16 +IF
32.17 +COMMENT
32.18 +COMMENT
32.19 +IF
32.20 +COMMENT
32.21 +COMMENT
32.22 +IF
32.23 +COMMENT
32.24 +IF
32.25 +COMMENT
32.26 +IF
32.27 +COMMENT
32.28 +IF
32.29 +IF
32.30 +IF
32.31 +IF
32.32 +COMMENT
32.33 +IF
32.34 +IF
32.35 +IF
32.36 +FOR_LOOP
32.37 +COMMENT
32.38 +COMMENT
32.39 +IF
32.40 +COMMENT
32.41 +COMMENT
32.42 +COMMENT
32.43 +IF
32.44 +IF
32.45 +COMMENT
32.46 +COMMENT
32.47 +COMMENT
32.48 +IF
32.49 +COMMENT
32.50 +IF
32.51 +COMMENT
32.52 +COMMENT
32.53 +COMMENT
32.54 +IF
32.55 +IF
32.56 +IF
32.57 +IF
32.58 +IF
32.59 +IF
32.60 +COMMENT
32.61 +IF
32.62 +COMMENT
32.63 +IF
32.64 +COMMENT
32.65 +IF
32.66 +IF
32.67 +COMMENT
32.68 +COMMENT
32.69 +COMMENT
32.70 +COMMENT
32.71 +COMMENT
32.72 +IF
32.73 +IF
32.74 +FOR_LOOP
32.75 +IF
32.76 +IF
32.77 +IF
32.78 +COMMENT
32.79 +FOR_LOOP
32.80 +COMMENT
32.81 +IF
32.82 +WHILE_LOOP
32.83 +IF
32.84 +COMMENT
32.85 +IF
32.86 +COMMENT
32.87 +IF
32.88 +IF
32.89 +IF
32.90 +COMMENT
32.91 +IF
32.92 +IF
32.93 +IF
32.94 +IF
32.95 +IF
32.96 +IF
32.97 +COMMENT
32.98 +IF
32.99 +IF
32.100 +COMMENT
32.101 +IF
32.102 +COMMENT
32.103 +IF
32.104 +IF
32.105 +IF
32.106 +IF
32.107 +COMMENT
32.108 +IF
32.109 +IF
32.110 +IF
32.111 +IF
32.112 +IF
32.113 +IF
32.114 +IF
32.115 +IF
32.116 +COMMENT
32.117 +IF
32.118 +IF
32.119 +IF
32.120 +IF
32.121 +COMMENT
32.122 +COMMENT
32.123 +IF
32.124 +COMMENT
32.125 +COMMENT
32.126 +IF
32.127 +IF
32.128 +IF
32.129 +IF
32.130 +IF
32.131 +IF
32.132 +IF
32.133 +COMMENT
32.134 +COMMENT
32.135 +IF
32.136 +COMMENT
32.137 +COMMENT
32.138 +COMMENT
32.139 +FOR_LOOP
32.140 +IF
32.141 +IF
32.142 +IF
32.143 +COMMENT
32.144 +IF
32.145 +IF
32.146 +COMMENT
32.147 +COMMENT
32.148 +FOR_LOOP
32.149 +IF
32.150 +COMMENT
32.151 +COMMENT
32.152 +COMMENT
32.153 +COMMENT
32.154 +COMMENT
32.155 +COMMENT
32.156 +COMMENT
32.157 +COMMENT
33.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
33.2 +++ b/PLSQL/Lexer/test/unit/data/expected/txtser.ins.structure Wed May 15 23:04:20 2013 +0200
33.3 @@ -0,0 +1,13 @@
33.4 +COMMENT
33.5 +JAVA_SOURCE
33.6 +COMMENT
33.7 +DECLARE_END
33.8 +CURSOR
33.9 +COMMENT
33.10 +IF
33.11 +COMMENT
33.12 +IF
33.13 +COMMENT
33.14 +COMMENT
33.15 +COMMENT
33.16 +IF
34.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
34.2 +++ b/PLSQL/Lexer/test/unit/data/fndbas_ora.cre Wed May 15 23:04:20 2013 +0200
34.3 @@ -0,0 +1,83 @@
34.4 +--------------------------------------------------------------------------------------
34.5 +-- File : fndbas_ora.cre
34.6 +--
34.7 +--------------------------------------------------------------------------------------
34.8 +
34.9 +-- CREATE tables and indexes
34.10 +
34.11 +CREATE TABLE &AO..X_ACTIVITY_GRANT_FILTER_TAB
34.12 +(
34.13 + PERMISSION_SET_ID VARCHAR2(30) NOT NULL,
34.14 + ACTIVITY_NAME VARCHAR2(100) NOT NULL,
34.15 + FILTER_ID VARCHAR2(100) NOT NULL,
34.16 + GRANTED_FILTER_TYPE VARCHAR2(100) NOT NULL
34.17 +)
34.18 +TABLESPACE &fnd_data
34.19 +/
34.20 +ALTER TABLE &AO..X_ACTIVITY_GRANT_FILTER_TAB
34.21 + ADD (CONSTRAINT X_ACTIVITY_GRANT_FILTER_PK PRIMARY KEY (FILTER_ID, PERMISSION_SET_ID, ACTIVITY_NAME)
34.22 + USING INDEX
34.23 + TABLESPACE &fnd_index
34.24 + )
34.25 +/
34.26 +
34.27 +CREATE TABLE &AO..X_FNDDR_ACTIVITY_ENT_USAGE_TAB
34.28 +(
34.29 + USAGE VARCHAR2(100),
34.30 + ENTITY_ID VARCHAR2(100),
34.31 + ORDINAL NUMBER,
34.32 + ACTIVITY_ID VARCHAR2(100),
34.33 + WORKSPACE_ID VARCHAR2(100)
34.34 +)
34.35 +TABLESPACE &fnd_data
34.36 +/
34.37 +ALTER TABLE &AO..X_FNDDR_ACTIVITY_ENT_USAGE_TAB
34.38 + ADD (CONSTRAINT X_FNDDR_ACTIVITY_ENT_USEAGE_PK PRIMARY KEY (ACTIVITY_ID, ORDINAL, WORKSPACE_ID)
34.39 + USING INDEX
34.40 + TABLESPACE &fnd_index
34.41 + )
34.42 +/
34.43 +CREATE INDEX &AO..X_FNDDR_ACTIVITY_ENT_USEAGE_FK
34.44 + ON &AO..X_FNDDR_ACTIVITY_ENT_USAGE_TAB (ENTITY_ID, WORKSPACE_ID)
34.45 + TABLESPACE &fnd_index
34.46 +/
34.47 +
34.48 +-- CREATE sequence
34.49 +
34.50 +CREATE SEQUENCE &AO..X_Ext_File_Batch_Param_Seq;
34.51 +
34.52 +-- CREATE trigger
34.53 +
34.54 +create or replace trigger &AO..x_vmogss_base_usermap_change
34.55 + after insert or update or delete on &AO..vmo_base_gss_usermap_change
34.56 + referencing old as oldrec new as newrec
34.57 + for each row
34.58 +begin
34.59 + if updating or inserting then
34.60 + insert into &AO..vmo_base_gss_scope(gss_id, created, source_tbl, source_info) values(:newrec.gss_id, sysdate, 'VMO_BASE_GSS_USERMAP_CHANGE', :newrec.gss_id);
34.61 + end if;
34.62 +end x_vmogss_base_usermap_change;
34.63 +/
34.64 +
34.65 +-- CREATE trigger dynamically
34.66 +
34.67 +BEGIN
34.68 +EXECUTE IMMEDIATE('create or replace trigger &AO..x_vmogss_base_sync_scope
34.69 + after insert on &AO..vmo_base_sync_scope
34.70 + referencing old as oldrec new as newrec
34.71 + for each row
34.72 +begin
34.73 + if inserting then
34.74 + insert into &AO..vmo_base_gss_scope(gss_id, created, source_tbl, source_info) values(''ALL_GSS_ID'', sysdate, :newrec.tablename, :newrec.guid);
34.75 + end if;
34.76 +end x_vmogss_base_sync_scope;');
34.77 +EXCEPTION
34.78 + WHEN OTHERS THEN
34.79 + -- OK if ORA -00942: table or view does not exist
34.80 + IF INSTR(SQLERRM,'-00942') != 0 THEN NULL;
34.81 + ELSE raise_application_error ( -20000, SQLERRM );
34.82 + END IF;
34.83 +END;
34.84 +/
34.85 +
34.86 +
35.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
35.2 +++ b/PLSQL/Lexer/test/unit/data/person.ins Wed May 15 23:04:20 2013 +0200
35.3 @@ -0,0 +1,481 @@
35.4 +-----------------------------------------------------------------------------
35.5 +-- Module: PERSON
35.6 +--
35.7 +-- File: PERSON.INS
35.8 +--
35.9 +-- IFS/Design Template Version 2.0.0
35.10 +--
35.11 +-- Date Sign History
35.12 +-- ------ ---- -----------------------------------------------------------
35.13 +-- 080425 Deidlk Bug 73297, Added the property codes EMPPREFIX and EMPMASK to PROPERTY_RULE_TAB
35.14 +-- 070525 Cprilk B145522,Modified the DATA_TYPE_DB of property code 'EMPLOYEEID'.
35.15 +-- 070418 Cprilk B142452,Added data in to PROTECTED_INFORMATION_TAB.
35.16 +-- 070409 Cprilk Call 142241,Added property code 'EMPLOYEEID'
35.17 +-- 070320 Nueklk Insert data into Marital_Status_Tab
35.18 +-- 061003 ChBalk Bug 58601, Modified hardcoded date values to Database_SYS.get_first_calendar_date
35.19 +-- and Database_SYS.get_last_calendar_date.
35.20 +-- 040921 HiMa Made CompanyPerson LU DOCMAN aware.
35.21 +-- 030717 Lara Added property rule 'Allow Access to Myself'
35.22 +-- 030717 Rasi Added property rule 'Transfer Employee Information to Biz API'
35.23 +-- 000404 WaPe Added data insert to employee_name_configurator_tab
35.24 +-- 000222 Shir Removed batch job for User_Access_API.Generate_Access
35.25 +-- 000215 Shir Added code to update companies from finance to HR
35.26 +-- 000127 WaPe Corrected the methods OBJECT_PROPERTY_API.add_value and ATTRIBUTE_DEFINITION_API.Set_Length
35.27 +-- 000124 Ravi Called methods OBJECT_PROPERTY_API.add_value and ATTRIBUTE_DEFINITION_API.Set_Length
35.28 +-- 991201 Shir Added default value authority_time_tab
35.29 +-- 991201 Shir Created a batch job for User_Access_API.Generate_Access
35.30 +-- 991201 Shir Created
35.31 +-- ------ ---- -----------------------------------------------------------
35.32 +
35.33 +
35.34 +BEGIN
35.35 +INSERT
35.36 + INTO authority_time_tab
35.37 + (Time_stamp,
35.38 + rowversion)
35.39 + VALUES
35.40 + (sysdate,
35.41 + sysdate);
35.42 +END;
35.43 +/
35.44 +DECLARE
35.45 + val_ VARCHAR2(1000);
35.46 +BEGIN
35.47 + val_ := Object_Property_API.Get_Value('PersonCompany','*','All HR Modules 2001');
35.48 + IF (val_ is NULL or val_='Yes,No') THEN -- old bug Yes,No means Yes
35.49 + OBJECT_PROPERTY_API.Set_Value('PersonCompany','*','All HR Modules 2001','Yes');
35.50 + END IF;
35.51 +END;
35.52 +/
35.53 +-- Transfer companies from finance to hr
35.54 +PROMPT *******************************************************************
35.55 +PROMPT Insert companies defined in IFS Financials into IFS Human Resources
35.56 +PROMPT *******************************************************************
35.57 +
35.58 +BEGIN
35.59 +INSERT INTO person_company_tab (
35.60 + company_id, parent_company, create_cost_center, rowversion )
35.61 + SELECT DISTINCT
35.62 + company,'0','0',1
35.63 + FROM company_finance_tab
35.64 + WHERE company NOT IN
35.65 + (SELECT DISTINCT company_id
35.66 + FROM person_company_tab);
35.67 +END;
35.68 +/
35.69 +DECLARE
35.70 + CURSOR check_exits(company_id_ VARCHAR2,emp_no_ VARCHAR2)IS
35.71 + SELECT 1
35.72 + FROM company_person_tab
35.73 + WHERE company_id = company_id_
35.74 + AND emp_no = emp_no_;
35.75 + temp_ NUMBER;
35.76 +BEGIN
35.77 +FOR rec_ IN (SELECT * FROM company_emp_tab) LOOP
35.78 + OPEN check_exits(rec_.company,rec_.employee_id);
35.79 + FETCH check_exits INTO temp_;
35.80 + IF (check_exits%NOTFOUND) THEN
35.81 + INSERT INTO company_person_tab(company_id,emp_no,master_employment,operator,rowversion)
35.82 + VALUES (rec_.company,rec_.employee_id,'0',User,rec_.rowversion);
35.83 + END IF;
35.84 + CLOSE check_exits;
35.85 +END LOOP;
35.86 +END;
35.87 +/
35.88 +DECLARE
35.89 + CURSOR check_exits(person_id_ VARCHAR2) IS
35.90 + SELECT 1
35.91 + FROM pers_tab
35.92 + WHERE person_id = person_id_;
35.93 + temp_ NUMBER;
35.94 +
35.95 +BEGIN
35.96 + FOR rec_ IN (SELECT * FROM person_info_tab) LOOP
35.97 + OPEN check_exits(rec_.person_id);
35.98 + FETCH check_exits INTO temp_;
35.99 + IF (check_exits%NOTFOUND) THEN
35.100 + INSERT INTO pers_tab(person_id,have_child,external_display_name,rowversion)
35.101 + VALUES (rec_.person_id,'0',rec_.name,1);
35.102 + END IF;
35.103 + CLOSE check_exits;
35.104 + END LOOP;
35.105 +END;
35.106 +/
35.107 +BEGIN
35.108 +INSERT INTO employee_name_configurator_tab
35.109 + (first_name_int_seq_no,
35.110 + last_name_int_seq_no,
35.111 + first_name_ext_seq_no,
35.112 + last_name_ext_seq_no,
35.113 + rowversion)
35.114 +SELECT 1, 2,1, 2,1 FROM DUAL
35.115 +WHERE NOT EXISTS
35.116 +(SELECT 1 FROM employee_name_configurator_tab);
35.117 +END;
35.118 +/
35.119 +commit
35.120 +/
35.121 +DECLARE
35.122 + attr_ VARCHAR2(2000);
35.123 +BEGIN
35.124 + ---
35.125 + Client_SYS.Clear_Attr(attr_);
35.126 + Client_SYS.Add_To_Attr('PROPERTY_CODE', 'EMPBIZAPI', attr_);
35.127 + Client_SYS.Add_To_Attr('DATA_TYPE_DB', '1', attr_); -- String
35.128 + Client_SYS.Add_To_Attr('LENGTH', 3 , attr_);
35.129 + Client_SYS.Add_To_Attr('MULTIPLE_INSTANCES_ALLOWED', 'FALSE' , attr_);
35.130 + Client_SYS.Add_To_Attr('USE_LOV_FOR_VALIDATION', '1' , attr_);
35.131 + Client_SYS.Add_To_Attr('PROPERTY_OBJECT_DB', '1', attr_); -- Company
35.132 + Client_SYS.Add_To_Attr('DEFAULT_DESCRIPTION',
35.133 + 'Employee Details BizAPI', attr_);
35.134 + Property_Rule_API.New_Modify(attr_);
35.135 + Commit;
35.136 + ---
35.137 + Client_SYS.Clear_Attr(attr_);
35.138 + Client_SYS.Add_To_Attr('PROPERTY_CODE', 'EMPBIZAPI', attr_);
35.139 + Client_SYS.Add_To_Attr('PROPERTY_VALUE', 'YES', attr_);
35.140 + Client_SYS.Add_To_Attr('DESCRIPTION', 'Transfer employee information', attr_);
35.141 + -- Bug 58601, Modified hardcoded date values to Database_SYS.get_first_calendar_date and get_last_calendar_date.
35.142 + Client_SYS.Add_To_Attr('VALID_FROM', Database_SYS.get_first_calendar_date, attr_);
35.143 + Client_SYS.Add_To_Attr('VALID_TO', Database_SYS.get_last_calendar_date, attr_);
35.144 + Property_Value_API.New_Modify(attr_);
35.145 + Commit;
35.146 + ---
35.147 + Client_SYS.Clear_Attr(attr_);
35.148 + Client_SYS.Add_To_Attr('PROPERTY_CODE', 'EMPBIZAPI', attr_);
35.149 + Client_SYS.Add_To_Attr('PROPERTY_VALUE', 'NO', attr_);
35.150 + Client_SYS.Add_To_Attr('DESCRIPTION', 'Do not transfer employee information', attr_);
35.151 + -- Bug 58601, Modified hardcoded date values to Database_SYS.get_first_calendar_date and get_last_calendar_date.
35.152 + Client_SYS.Add_To_Attr('VALID_FROM', Database_SYS.get_first_calendar_date, attr_);
35.153 + Client_SYS.Add_To_Attr('VALID_TO', Database_SYS.get_last_calendar_date, attr_);
35.154 + Property_Value_API.New_Modify(attr_);
35.155 + Commit;
35.156 +END;
35.157 +/
35.158 +commit;
35.159 +
35.160 +DECLARE
35.161 + attr_ VARCHAR2(2000);
35.162 +BEGIN
35.163 + ---
35.164 + Client_SYS.Clear_Attr(attr_);
35.165 + Client_SYS.Add_To_Attr('PROPERTY_CODE', 'SELFACCESS', attr_);
35.166 + Client_SYS.Add_To_Attr('DATA_TYPE_DB', '1', attr_); -- String
35.167 + Client_SYS.Add_To_Attr('LENGTH', 3 , attr_);
35.168 + Client_SYS.Add_To_Attr('MULTIPLE_INSTANCES_ALLOWED', 'FALSE' , attr_);
35.169 + Client_SYS.Add_To_Attr('USE_LOV_FOR_VALIDATION', '1' , attr_);
35.170 + Client_SYS.Add_To_Attr('PROPERTY_OBJECT_DB', '1', attr_); -- Company
35.171 + Client_SYS.Add_To_Attr('DEFAULT_DESCRIPTION',
35.172 + 'Allow Access to Myself', attr_);
35.173 + Property_Rule_API.New_Modify(attr_);
35.174 + Commit;
35.175 + ---
35.176 + Client_SYS.Clear_Attr(attr_);
35.177 + Client_SYS.Add_To_Attr('PROPERTY_CODE', 'SELFACCESS', attr_);
35.178 + Client_SYS.Add_To_Attr('PROPERTY_VALUE', 'YES', attr_);
35.179 + Client_SYS.Add_To_Attr('DESCRIPTION', 'Access to Myself', attr_);
35.180 + -- Bug 58601, Modified hardcoded date values to Database_SYS.get_first_calendar_date and get_last_calendar_date.
35.181 + Client_SYS.Add_To_Attr('VALID_FROM', Database_SYS.get_first_calendar_date, attr_);
35.182 + Client_SYS.Add_To_Attr('VALID_TO', Database_SYS.get_last_calendar_date, attr_);
35.183 + Property_Value_API.New_Modify(attr_);
35.184 + Commit;
35.185 + ---
35.186 + Client_SYS.Clear_Attr(attr_);
35.187 + Client_SYS.Add_To_Attr('PROPERTY_CODE', 'SELFACCESS', attr_);
35.188 + Client_SYS.Add_To_Attr('PROPERTY_VALUE', 'NO', attr_);
35.189 + Client_SYS.Add_To_Attr('DESCRIPTION', 'No Access to Myself', attr_);
35.190 + -- Bug 58601, Modified hardcoded date values to Database_SYS.get_first_calendar_date and get_last_calendar_date.
35.191 + Client_SYS.Add_To_Attr('VALID_FROM', Database_SYS.get_first_calendar_date, attr_);
35.192 + Client_SYS.Add_To_Attr('VALID_TO', Database_SYS.get_last_calendar_date, attr_);
35.193 + Property_Value_API.New_Modify(attr_);
35.194 + Commit;
35.195 +END;
35.196 +/
35.197 +commit;
35.198 +
35.199 +DECLARE
35.200 + attr_ VARCHAR2(2000);
35.201 +BEGIN
35.202 + ---
35.203 + Client_SYS.Clear_Attr(attr_);
35.204 + Client_SYS.Add_To_Attr('PROPERTY_CODE', 'EMPLOYEEID', attr_);
35.205 + Client_SYS.Add_To_Attr('DATA_TYPE_DB', '2', attr_); -- Number
35.206 + Client_SYS.Add_To_Attr('LENGTH', 10 , attr_);
35.207 + Client_SYS.Add_To_Attr('MULTIPLE_INSTANCES_ALLOWED', 'FALSE' , attr_);
35.208 + Client_SYS.Add_To_Attr('USE_LOV_FOR_VALIDATION', '0' , attr_);
35.209 + Client_SYS.Add_To_Attr('PROPERTY_OBJECT_DB', '1', attr_); -- Company
35.210 + Client_SYS.Add_To_Attr('DEFAULT_DESCRIPTION',
35.211 + 'Next Employee ID', attr_);
35.212 + Property_Rule_API.New_Modify(attr_);
35.213 + Commit;
35.214 +END;
35.215 +/
35.216 +Commit;
35.217 +
35.218 +DECLARE
35.219 + CURSOR check_comp_exist(company_id_ VARCHAR2) IS
35.220 + SELECT 1
35.221 + FROM employee_status_tab
35.222 + WHERE company_id = company_id_
35.223 + AND seq_no = 1;
35.224 + chk_comp_exist_ NUMBER;
35.225 +BEGIN
35.226 + FOR get_company_ IN (SELECT DISTINCT company_id FROM person_company_tab) LOOP
35.227 + OPEN check_comp_exist(get_company_.company_id);
35.228 + FETCH check_comp_exist INTO chk_comp_exist_;
35.229 + IF (check_comp_exist%NOTFOUND) THEN
35.230 + INSERT INTO EMPLOYEE_STATUS_TAB(company_id, seq_no, employee_status, active, status_obsolete, rowversion)
35.231 + VALUES (get_company_.company_id, 1, '*', 'TRUE', 'FALSE', 1);
35.232 + END IF;
35.233 + CLOSE check_comp_exist;
35.234 + END LOOP;
35.235 +END;
35.236 +/
35.237 +BEGIN
35.238 + Module_Translate_Attr_Util_API.Insert_Prog_Translation( 'PERSON', 'EmployeeStatus', 'TRUE', 'True');
35.239 + Module_Translate_Attr_Util_API.Insert_Prog_Translation( 'PERSON', 'EmployeeStatus', 'FALSE', 'False');
35.240 +
35.241 + Module_Translate_Attr_Util_API.Insert_Prog_Translation( 'PERSON', 'WizardConfiguration', 'TRUE', 'True');
35.242 + Module_Translate_Attr_Util_API.Insert_Prog_Translation( 'PERSON', 'WizardConfiguration', 'FALSE', 'False');
35.243 +
35.244 + Module_Translate_Attr_Util_API.Insert_Prog_Translation( 'PERSON', 'CompanyPosition', 'TRUE', 'True');
35.245 + Module_Translate_Attr_Util_API.Insert_Prog_Translation( 'PERSON', 'CompanyPosition', 'FALSE', 'False');
35.246 +
35.247 +END;
35.248 +/
35.249 +commit
35.250 +/
35.251 +prompt Insert data into PERSON_DOCUMENT_TAB
35.252 +
35.253 +
35.254 +prompt creating temporary procedure for insert
35.255 +
35.256 +CREATE OR REPLACE procedure Temp_Person_Document_Default(document_ VARCHAR2,
35.257 + description_ VARCHAR2,
35.258 + active_ VARCHAR2,
35.259 + rcruit_document_type_ VARCHAR2)
35.260 +IS
35.261 + CURSOR existdoc(c_document_ IN VARCHAR2) IS
35.262 + SELECT 1
35.263 + FROM person_word_document_tab
35.264 + WHERE document = c_document_;
35.265 + exist_ NUMBER;
35.266 +BEGIN
35.267 + OPEN existdoc(document_);
35.268 + FETCH existdoc INTO exist_;
35.269 + IF existdoc%NOTFOUND THEN
35.270 + INSERT
35.271 + INTO person_word_document_tab(
35.272 + document,
35.273 + description,
35.274 + active,
35.275 + person_document_type,
35.276 + inc_comp_data,
35.277 + inc_emp_data,
35.278 + inc_salary_data,
35.279 + inc_free_field_data,
35.280 + rowversion)
35.281 + VALUES (
35.282 + document_,
35.283 + description_,
35.284 + 'TRUE',
35.285 + rcruit_document_type_,
35.286 + 'TRUE',
35.287 + 'TRUE',
35.288 + 'TRUE',
35.289 + 'TRUE',
35.290 + SYSDATE);
35.291 + Module_Translate_Attr_Util_API.Insert_Prog_Translation(
35.292 + 'PERSON',
35.293 + 'PersonWordDocument',
35.294 + document_,
35.295 + description_);
35.296 + END IF;
35.297 + CLOSE existdoc;
35.298 +END Temp_Person_Document_Default;
35.299 +/
35.300 +DECLARE
35.301 + document_type_ VARCHAR2(1) := '5';
35.302 +BEGIN
35.303 +
35.304 +Temp_Person_Document_Default('Certificate of Employmenten.doc' , 'Certificate of Employment - English', '1', document_type_);
35.305 +
35.306 +END;
35.307 +/
35.308 +COMMIT;
35.309 +
35.310 +
35.311 +prompt dropping temporary procedure
35.312 +
35.313 +DROP PROCEDURE Temp_Person_Document_Default;
35.314 +
35.315 +
35.316 +BEGIN
35.317 + Object_Connection_SYS.Disable_Logical_Unit('CompanyPerson');
35.318 + Object_Connection_SYS.Enable_Logical_Unit('CompanyPerson', 'DocReferenceObject^', 'COMPANY_PERSON_ALL', 'COMPANY_PERSON_API');
35.319 +END;
35.320 +/
35.321 +COMMIT;
35.322 +
35.323 +
35.324 +prompt ************************************************************************
35.325 +prompt Insert data into Marital_Status_Tab
35.326 +prompt ************************************************************************
35.327 +
35.328 +DECLARE
35.329 + CURSOR check_exits IS
35.330 + SELECT 1
35.331 + FROM marital_status_tab
35.332 + WHERE marital_status = 'MARRIED';
35.333 + temp_ NUMBER;
35.334 + married_seq_ NUMBER;
35.335 + unmarried_seq_ NUMBER;
35.336 + widower_seq_ NUMBER;
35.337 +BEGIN
35.338 + OPEN check_exits;
35.339 + FETCH check_exits INTO temp_;
35.340 + IF (check_exits%NOTFOUND) THEN
35.341 + SELECT MARITAL_STATUS_ID.NEXTVAL INTO married_seq_ FROM dual;
35.342 + INSERT
35.343 + INTO marital_status_tab (
35.344 + marital_status,
35.345 + marital_status_id,
35.346 + system_defined,
35.347 + rowversion)
35.348 + VALUES (
35.349 + 'MARRIED',
35.350 + married_seq_,
35.351 + 'TRUE',
35.352 + 1);
35.353 +
35.354 + Module_Translate_Attr_Util_API.Insert_Prog_Translation( 'PERSON',
35.355 + 'MaritalStatus',
35.356 + 'MARRIED',
35.357 + 'Married');
35.358 +
35.359 + SELECT MARITAL_STATUS_ID.NEXTVAL INTO unmarried_seq_ FROM dual;
35.360 + INSERT
35.361 + INTO marital_status_tab (
35.362 + marital_status,
35.363 + marital_status_id,
35.364 + system_defined,
35.365 + rowversion)
35.366 + VALUES (
35.367 + 'UNMARRIED',
35.368 + unmarried_seq_,
35.369 + 'TRUE',
35.370 + 1);
35.371 +
35.372 + Module_Translate_Attr_Util_API.Insert_Prog_Translation( 'PERSON',
35.373 + 'MaritalStatus',
35.374 + 'UNMARRIED',
35.375 + 'Unmarried');
35.376 +
35.377 + SELECT MARITAL_STATUS_ID.NEXTVAL INTO widower_seq_ FROM dual;
35.378 + INSERT
35.379 + INTO marital_status_tab (
35.380 + marital_status,
35.381 + marital_status_id,
35.382 + system_defined,
35.383 + rowversion)
35.384 + VALUES (
35.385 + 'WIDOW(ER)',
35.386 + widower_seq_,
35.387 + 'TRUE',
35.388 + 1);
35.389 +
35.390 + Module_Translate_Attr_Util_API.Insert_Prog_Translation( 'PERSON',
35.391 + 'MaritalStatus',
35.392 + 'WIDOW(ER)',
35.393 + 'Widow(er)');
35.394 + END IF;
35.395 + CLOSE check_exits;
35.396 +END;
35.397 +/
35.398 +COMMIT;
35.399 +
35.400 +PROMPT ADD Translations
35.401 +BEGIN
35.402 + Module_Translate_Attr_Util_API.Insert_Prog_Translation( 'PERSON', 'MaritalStatus', 'TRUE', 'True');
35.403 + Module_Translate_Attr_Util_API.Insert_Prog_Translation( 'PERSON', 'MaritalStatus', 'FALSE', 'False');
35.404 +END;
35.405 +/
35.406 +COMMIT;
35.407 +/
35.408 +prompt ************************************************************************
35.409 +prompt Insert data into PROTECTED_INFORMATION_TAB
35.410 +prompt ************************************************************************
35.411 +
35.412 +DECLARE
35.413 + CURSOR check_exits IS
35.414 + SELECT 1
35.415 + FROM protected_information_tab
35.416 + WHERE protected_field = 'Personal Communication Methods';
35.417 + temp_ NUMBER;
35.418 +BEGIN
35.419 + OPEN check_exits;
35.420 + FETCH check_exits INTO temp_;
35.421 + IF (check_exits%NOTFOUND) THEN
35.422 + INSERT INTO protected_information_tab(Protected_Field,Protected_Value,Rowversion)
35.423 + VALUES ('Personal Address','TRUE',SYSDATE);
35.424 + INSERT INTO protected_information_tab(Protected_Field,Protected_Value,Rowversion)
35.425 + VALUES ('Country','TRUE',SYSDATE);
35.426 + INSERT INTO protected_information_tab(Protected_Field,Protected_Value,Rowversion)
35.427 + VALUES ('Personal Communication Methods','TRUE',SYSDATE);
35.428 + INSERT INTO protected_information_tab(Protected_Field,Protected_Value,Rowversion)
35.429 + VALUES ('Date of Birth','FALSE',SYSDATE);
35.430 + INSERT INTO protected_information_tab(Protected_Field,Protected_Value,Rowversion)
35.431 + VALUES ('Place of Birth','FALSE',SYSDATE);
35.432 + INSERT INTO protected_information_tab(Protected_Field,Protected_Value,Rowversion)
35.433 + VALUES ('Citizen Of','FALSE',SYSDATE);
35.434 + INSERT INTO protected_information_tab(Protected_Field,Protected_Value,Rowversion)
35.435 + VALUES ('Insurance Id','FALSE',SYSDATE);
35.436 + INSERT INTO protected_information_tab(Protected_Field,Protected_Value,Rowversion)
35.437 + VALUES ('Gender','FALSE',SYSDATE);
35.438 + INSERT INTO protected_information_tab(Protected_Field,Protected_Value,Rowversion)
35.439 + VALUES ('Blood Type','FALSE',SYSDATE);
35.440 + INSERT INTO protected_information_tab(Protected_Field,Protected_Value,Rowversion)
35.441 + VALUES ('Marital Status','FALSE',SYSDATE);
35.442 + INSERT INTO protected_information_tab(Protected_Field,Protected_Value,Rowversion)
35.443 + VALUES ('Have Children','FALSE',SYSDATE);
35.444 + END IF;
35.445 + CLOSE check_exits;
35.446 +END;
35.447 +/
35.448 +COMMIT;
35.449 +
35.450 +--Bug 73297, Start
35.451 +PROMPT ************************************************************************
35.452 +PROMPT Insert data INTO PROPERTY_RULE_TAB - Enhanced Automatic Employee Numbering
35.453 +PROMPT ************************************************************************
35.454 +
35.455 +DECLARE
35.456 + attr_ VARCHAR2(2000);
35.457 +BEGIN
35.458 + ---
35.459 + Client_SYS.Clear_Attr(attr_);
35.460 + Client_SYS.Add_To_Attr('PROPERTY_CODE', 'EMPMASK', attr_);
35.461 + Client_SYS.Add_To_Attr('DATA_TYPE_DB', '1', attr_); -- String
35.462 + Client_SYS.Add_To_Attr('LENGTH', 15 , attr_);
35.463 + Client_SYS.Add_To_Attr('MULTIPLE_INSTANCES_ALLOWED', 'FALSE' , attr_);
35.464 + Client_SYS.Add_To_Attr('USE_LOV_FOR_VALIDATION', '0' , attr_);
35.465 + Client_SYS.Add_To_Attr('PROPERTY_OBJECT_DB', '1', attr_); -- Company
35.466 + Client_SYS.Add_To_Attr('DEFAULT_DESCRIPTION', 'Automatic Employee Numbering Mask', attr_);
35.467 + Property_Rule_API.New_Modify(attr_);
35.468 + COMMIT;
35.469 +
35.470 + ---
35.471 + Client_SYS.Clear_Attr(attr_);
35.472 + Client_SYS.Add_To_Attr('PROPERTY_CODE', 'EMPPREFIX', attr_);
35.473 + Client_SYS.Add_To_Attr('DATA_TYPE_DB', '1', attr_); -- String
35.474 + Client_SYS.Add_To_Attr('LENGTH', 10 , attr_);
35.475 + Client_SYS.Add_To_Attr('MULTIPLE_INSTANCES_ALLOWED', 'FALSE' , attr_);
35.476 + Client_SYS.Add_To_Attr('USE_LOV_FOR_VALIDATION', '0' , attr_);
35.477 + Client_SYS.Add_To_Attr('PROPERTY_OBJECT_DB', '1', attr_); -- Company
35.478 + Client_SYS.Add_To_Attr('DEFAULT_DESCRIPTION', 'Automatic Employee Numbering Prefix ', attr_);
35.479 + Property_Rule_API.New_Modify(attr_);
35.480 + COMMIT;
35.481 +END;
35.482 +/
35.483 +COMMIT;
35.484 +--Bug 73297, End
36.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
36.2 +++ b/PLSQL/Lexer/test/unit/data/sys_IalObjectSlave.api Wed May 15 23:04:20 2013 +0200
36.3 @@ -0,0 +1,82 @@
36.4 +-----------------------------------------------------------------------------
36.5 +--
36.6 +-- Logical unit: IalObjectSlave
36.7 +--
36.8 +-- IFS/Design Template Version 2.2
36.9 +--
36.10 +-- Date Sign History
36.11 +-- ------ ---- -----------------------------------------------------------
36.12 +-- 990301 MANY Project Invader for IAL (ToDo #3177).
36.13 +-- 030131 ROOD Removed unused public interfaces (Bug#35022).
36.14 +-- 030225 ROOD Changed module to FNDBAS (ToDo#4149).
36.15 +-----------------------------------------------------------------------------
36.16 +
36.17 +DEFINE MODULE = FNDBAS
36.18 +DEFINE LU = IalObjectSlave
36.19 +DEFINE PKG = IAL_OBJECT_SLAVE_API
36.20 +
36.21 +
36.22 +
36.23 +PROMPT Creating &INFO_OWNER..&PKG specification
36.24 +
36.25 +CREATE OR REPLACE PACKAGE &INFO_OWNER..&PKG IS
36.26 +
36.27 +module_ CONSTANT VARCHAR2(25) := '&MODULE';
36.28 +lu_name_ CONSTANT VARCHAR2(25) := '&LU';
36.29 +
36.30 +-----------------------------------------------------------------------------
36.31 +-------------------- LU SPECIFIC PRIVATE METHODS ----------------------------
36.32 +-----------------------------------------------------------------------------
36.33 +
36.34 +
36.35 +-----------------------------------------------------------------------------
36.36 +-------------------- LU SPECIFIC PROTECTED METHODS --------------------------
36.37 +-----------------------------------------------------------------------------
36.38 +
36.39 +
36.40 +-----------------------------------------------------------------------------
36.41 +-------------------- LU SPECIFIC PUBLIC METHODS -----------------------------
36.42 +-----------------------------------------------------------------------------
36.43 +
36.44 +PROCEDURE Exec_Ddl_Statement (
36.45 + stmt_ IN VARCHAR2 );
36.46 +
36.47 +PROCEDURE Enumerate_Column_Info (
36.48 + attr_ OUT VARCHAR2,
36.49 + name_ IN VARCHAR2 );
36.50 +
36.51 +PROCEDURE Enumerate_Index_Info (
36.52 + index_list_ OUT VARCHAR2,
36.53 + name_ IN VARCHAR2 );
36.54 +
36.55 +PROCEDURE Add_Index (
36.56 + name_ IN VARCHAR2,
36.57 + column_name_ IN VARCHAR2 );
36.58 +
36.59 +PROCEDURE Remove_Index (
36.60 + name_ IN VARCHAR2,
36.61 + column_name_ IN VARCHAR2 );
36.62 +
36.63 +PROCEDURE Get_Object_Info (
36.64 + attr_ OUT VARCHAR2,
36.65 + name_ IN VARCHAR2 );
36.66 +
36.67 +FUNCTION Check_Index (
36.68 + name_ IN VARCHAR2,
36.69 + column_name_ IN VARCHAR2 ) RETURN VARCHAR2;
36.70 +
36.71 +PROCEDURE Get_Table_Info (
36.72 + table_info_ OUT VARCHAR2,
36.73 + name_ IN VARCHAR2 );
36.74 +
36.75 +-----------------------------------------------------------------------------
36.76 +-------------------- FOUNDATION1 METHODS ------------------------------------
36.77 +-----------------------------------------------------------------------------
36.78 +
36.79 +PROCEDURE Init;
36.80 +
36.81 +END &PKG;
36.82 +/
36.83 +SHOW ERROR
36.84 +
36.85 +-----------------------------------------------------------------------------
37.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
37.2 +++ b/PLSQL/Lexer/test/unit/data/sys_IalObjectSlave.apy Wed May 15 23:04:20 2013 +0200
37.3 @@ -0,0 +1,376 @@
37.4 +-----------------------------------------------------------------------------
37.5 +--
37.6 +-- Logical unit: IalObjectSlave
37.7 +--
37.8 +-- Purpose:
37.9 +--
37.10 +-- IFS/Design Template Version 2.2
37.11 +--
37.12 +-- Date Sign History
37.13 +-- ------ ---- -----------------------------------------------------------
37.14 +-- 990301 MANY Project Invader for IAL (ToDo #3177).
37.15 +-- 990301 ERFO Corrected table name paramters for Add/Remove_Index.
37.16 +-- 990322 MANY Implemented partial replication (ToDo #3222).
37.17 +-- 030113 ROOD Made Get_Table_Info handle locally managed tablespaces (Bug#35022).
37.18 +-- 030130 ROOD Handling for locally managed tablespaces for indexes too (Bug#35022).
37.19 +-- Removed unused public interfaces. Added implementation help methods.
37.20 +-- Some other implementation modifications.
37.21 +-- 030225 ROOD Changed module to FNDBAS (ToDo#4149).
37.22 +-- 090107 HASP Increased length of indexes_ variable in Enumerate_Index_Info method (Bug#79640).
37.23 +-- 090817 NABA Certified the assert safe for dynamic SQLs (Bug#84218)
37.24 +-----------------------------------------------------------------------------
37.25 +
37.26 +DEFINE MODULE = FNDBAS
37.27 +DEFINE LU = IalObjectSlave
37.28 +DEFINE PKG = IAL_OBJECT_SLAVE_API
37.29 +
37.30 +-----------------------------------------------------------------------------
37.31 +-------------------- PACKAGES FOR METHODS -----------------------------------
37.32 +-----------------------------------------------------------------------------
37.33 +
37.34 +PROMPT Creating &INFO_OWNER..&PKG implementation
37.35 +
37.36 +CREATE OR REPLACE PACKAGE BODY &INFO_OWNER..&PKG IS
37.37 +
37.38 +-----------------------------------------------------------------------------
37.39 +-------------------- LU SPECIFIC IMPLEMENTATION METHOD DECLARATIONS ---------
37.40 +-----------------------------------------------------------------------------
37.41 +
37.42 +FUNCTION Is_Locally_Managed___ (
37.43 + tablespace_ IN VARCHAR2 ) RETURN BOOLEAN;
37.44 +
37.45 +FUNCTION Is_Column_Indexed___ (
37.46 + name_ IN VARCHAR2,
37.47 + column_name_ IN VARCHAR2 ) RETURN VARCHAR2;
37.48 +
37.49 +FUNCTION Get_Column_Id___ (
37.50 + table_name_ IN VARCHAR2,
37.51 + column_name_ IN VARCHAR2 ) RETURN VARCHAR2;
37.52 +
37.53 +FUNCTION Table_Exist___ (
37.54 + table_name_ IN VARCHAR2 ) RETURN BOOLEAN;
37.55 +
37.56 +-----------------------------------------------------------------------------
37.57 +-------------------- LU SPECIFIC IMPLEMENTATION METHODS ---------------------
37.58 +-----------------------------------------------------------------------------
37.59 +
37.60 +FUNCTION Is_Locally_Managed___ (
37.61 + tablespace_ IN VARCHAR2 ) RETURN BOOLEAN
37.62 +IS
37.63 + extent_management_ VARCHAR2(10);
37.64 +
37.65 + CURSOR get_extent_management IS
37.66 + SELECT extent_management
37.67 + FROM user_tablespaces
37.68 + WHERE tablespace_name = tablespace_;
37.69 +BEGIN
37.70 + OPEN get_extent_management;
37.71 + FETCH get_extent_management INTO extent_management_;
37.72 + CLOSE get_extent_management;
37.73 + RETURN extent_management_ = 'LOCAL';
37.74 +END Is_Locally_Managed___;
37.75 +
37.76 +FUNCTION Is_Column_Indexed___ (
37.77 + name_ IN VARCHAR2,
37.78 + column_name_ IN VARCHAR2 ) RETURN VARCHAR2
37.79 +IS
37.80 + column_id_ VARCHAR2(10) := Get_Column_Id___(name_||'_TAB', column_name_);
37.81 + dummy_ NUMBER;
37.82 + found_ VARCHAR2(5);
37.83 +
37.84 + CURSOR get_index(index_name_ IN VARCHAR2) IS
37.85 + SELECT 1
37.86 + FROM user_indexes
37.87 + WHERE index_name = index_name_;
37.88 +
37.89 +BEGIN
37.90 + OPEN get_index(name_||'_X'||column_id_);
37.91 + FETCH get_index INTO dummy_;
37.92 + IF get_index%FOUND THEN
37.93 + found_ := 'TRUE';
37.94 + ELSE
37.95 + found_ := 'FALSE';
37.96 + END IF;
37.97 + CLOSE get_index;
37.98 + RETURN found_;
37.99 +END Is_Column_Indexed___;
37.100 +
37.101 +FUNCTION Get_Column_Id___ (
37.102 + table_name_ IN VARCHAR2,
37.103 + column_name_ IN VARCHAR2 ) RETURN VARCHAR2
37.104 +IS
37.105 + id_ NUMBER;
37.106 +
37.107 + CURSOR get_id IS
37.108 + SELECT column_id
37.109 + FROM user_tab_columns
37.110 + WHERE table_name = table_name_
37.111 + AND column_name = column_name_;
37.112 +BEGIN
37.113 + OPEN get_id;
37.114 + FETCH get_id INTO id_;
37.115 + CLOSE get_id;
37.116 + RETURN to_char(id_);
37.117 +END Get_Column_Id___;
37.118 +
37.119 +FUNCTION Table_Exist___ (
37.120 + table_name_ IN VARCHAR2 ) RETURN BOOLEAN
37.121 +IS
37.122 + dummy_ NUMBER;
37.123 +
37.124 + CURSOR exist_control IS
37.125 + SELECT 1
37.126 + FROM user_tables
37.127 + WHERE table_name = table_name_;
37.128 +BEGIN
37.129 + OPEN exist_control;
37.130 + FETCH exist_control INTO dummy_;
37.131 + IF exist_control%FOUND THEN
37.132 + CLOSE exist_control;
37.133 + RETURN (TRUE);
37.134 + END IF;
37.135 + CLOSE exist_control;
37.136 + RETURN (FALSE);
37.137 +END Table_Exist___;
37.138 +
37.139 +-----------------------------------------------------------------------------
37.140 +-------------------- LU SPECIFIC PRIVATE METHODS ----------------------------
37.141 +-----------------------------------------------------------------------------
37.142 +
37.143 +
37.144 +-----------------------------------------------------------------------------
37.145 +-------------------- LU SPECIFIC PROTECTED METHODS --------------------------
37.146 +-----------------------------------------------------------------------------
37.147 +
37.148 +
37.149 +-----------------------------------------------------------------------------
37.150 +-------------------- LU SPECIFIC PUBLIC METHODS -----------------------------
37.151 +-----------------------------------------------------------------------------
37.152 +
37.153 +PROCEDURE Exec_Ddl_Statement (
37.154 + stmt_ IN VARCHAR2 )
37.155 +IS
37.156 +BEGIN
37.157 + -- Safe as package is in IAL Owner schema
37.158 + -- ifs_assert_safe nabalk 20090817
37.159 + EXECUTE IMMEDIATE stmt_;
37.160 +END Exec_Ddl_Statement;
37.161 +
37.162 +PROCEDURE Enumerate_Column_Info (
37.163 + attr_ OUT VARCHAR2,
37.164 + name_ IN VARCHAR2 )
37.165 +IS
37.166 + out_attr_ VARCHAR2(19000);
37.167 + tmp_attr_ VARCHAR2(32000);
37.168 + table_name_ VARCHAR2(30) := name_||'_TAB';
37.169 + view_name_ VARCHAR2(30) := name_||'_IAL';
37.170 +
37.171 + CURSOR get_column_info(table_or_view_name_ IN VARCHAR2) IS
37.172 + SELECT * FROM user_tab_columns
37.173 + WHERE table_name = table_or_view_name_;
37.174 +BEGIN
37.175 + IF Table_Exist___(table_name_) THEN
37.176 + FOR rec_ IN get_column_info(table_name_) LOOP
37.177 + tmp_attr_ := NULL;
37.178 + tmp_attr_ := tmp_attr_ || 'NAME' || chr(31) || rec_.column_name || chr(30);
37.179 + tmp_attr_ := tmp_attr_ || 'DATATYPE' || chr(31) || rec_.data_type || chr(30);
37.180 + tmp_attr_ := tmp_attr_ || 'INDEXED' || chr(31) || Is_Column_Indexed___(name_, rec_.column_name) || chr(30);
37.181 + out_attr_ := out_attr_ || tmp_attr_ ||chr(29);
37.182 + END LOOP;
37.183 + ELSE
37.184 + FOR rec_ IN get_column_info(view_name_) LOOP
37.185 + tmp_attr_ := NULL;
37.186 + tmp_attr_ := tmp_attr_ || 'NAME' || chr(31) || rec_.column_name || chr(30);
37.187 + tmp_attr_ := tmp_attr_ || 'DATATYPE' || chr(31) || rec_.data_type || chr(30);
37.188 + tmp_attr_ := tmp_attr_ || 'INDEXED' || chr(31) || 'FALSE' || chr(30);
37.189 + out_attr_ := out_attr_ || tmp_attr_ ||chr(29);
37.190 + END LOOP;
37.191 + END IF;
37.192 + attr_ := out_attr_;
37.193 +END Enumerate_Column_Info;
37.194 +
37.195 +PROCEDURE Enumerate_Index_Info (
37.196 + index_list_ OUT VARCHAR2,
37.197 + name_ IN VARCHAR2 )
37.198 +IS
37.199 + indexes_ VARCHAR2(32000);
37.200 + index_ VARCHAR2(2000);
37.201 + col_list_ VARCHAR2(400);
37.202 + delim_ VARCHAR2(1);
37.203 + table_name_ VARCHAR2(30) := name_ || '_TAB';
37.204 +
37.205 + CURSOR get_index_info IS
37.206 + SELECT *
37.207 + FROM user_indexes
37.208 + WHERE table_name = table_name_;
37.209 +
37.210 + CURSOR get_columns(index_name_ IN VARCHAR2) IS
37.211 + SELECT column_name
37.212 + FROM user_ind_columns
37.213 + WHERE index_name = index_name_
37.214 + ORDER BY column_position;
37.215 +BEGIN
37.216 + FOR ind_ IN get_index_info LOOP
37.217 + IF (ind_.uniqueness = 'UNIQUE') THEN
37.218 + index_ := 'CREATE UNIQUE INDEX ' || ind_.index_name || ' ON ' || ind_.table_name || '(';
37.219 + ELSE
37.220 + index_ := 'CREATE INDEX ' || ind_.index_name || ' ON ' || ind_.table_name || '(';
37.221 + END IF;
37.222 + col_list_ := NULL;
37.223 + delim_ := NULL;
37.224 + FOR col_ IN get_columns(ind_.index_name) LOOP
37.225 + col_list_ := col_list_ || delim_ || col_.column_name;
37.226 + delim_ := ',';
37.227 + END LOOP;
37.228 + IF (col_list_ IS NOT NULL) THEN -- Can a index have zero columns? Well, just in case...
37.229 + index_ := index_ || col_list_ || ') TABLESPACE ' || ind_.tablespace_name || ' ';
37.230 + -- Statements only necessary if not locally managed tablespace
37.231 + IF NOT Is_Locally_Managed___(ind_.tablespace_name) THEN
37.232 + index_ := index_ || 'INITRANS ' || ind_.ini_trans || ' ';
37.233 + index_ := index_ || 'MAXTRANS ' || ind_.max_trans || ' ';
37.234 + index_ := index_ || 'PCTFREE ' || ind_.pct_free || ' ';
37.235 + index_ := index_ || 'STORAGE (INITIAL ' || ind_.initial_extent || ' NEXT ' || ind_.next_extent || ' ';
37.236 + index_ := index_ || 'MINEXTENTS ' || ind_.min_extents || ' MAXEXTENTS ' || ind_.max_extents || ' ';
37.237 + index_ := index_ || 'PCTINCREASE ' || ind_.pct_increase || ' FREELISTS ' || ind_.freelists || ' ';
37.238 + index_ := index_ || 'FREELIST GROUPS ' || ind_.freelist_groups || ')';
37.239 + END IF;
37.240 + -- Add this index to the list for all indexes
37.241 + indexes_ := indexes_ || index_ || chr(31);
37.242 + END IF;
37.243 + END LOOP;
37.244 + index_list_ := indexes_;
37.245 +END Enumerate_Index_Info;
37.246 +
37.247 +PROCEDURE Add_Index (
37.248 + name_ IN VARCHAR2,
37.249 + column_name_ IN VARCHAR2 )
37.250 +IS
37.251 + column_id_ VARCHAR2(10) := Get_Column_Id___(name_||'_TAB', column_name_);
37.252 +BEGIN
37.253 + Exec_Ddl_Statement('CREATE INDEX '||name_||'_X'||column_id_||' ON '||name_||'_TAB ('||column_name_||')');
37.254 +END Add_Index;
37.255 +
37.256 +PROCEDURE Remove_Index (
37.257 + name_ IN VARCHAR2,
37.258 + column_name_ IN VARCHAR2 )
37.259 +IS
37.260 + column_id_ VARCHAR2(10) := Get_Column_Id___(name_||'_TAB', column_name_);
37.261 +BEGIN
37.262 + Exec_Ddl_Statement('DROP INDEX '||name_||'_X'||column_id_);
37.263 +END Remove_Index;
37.264 +
37.265 +PROCEDURE Get_Object_Info (
37.266 + attr_ OUT VARCHAR2,
37.267 + name_ IN VARCHAR2 )
37.268 +IS
37.269 + tmp_attr_ VARCHAR2(100) := NULL;
37.270 + dummy_ NUMBER;
37.271 + table_name_ VARCHAR2(30) := name_||'_TAB';
37.272 +
37.273 + CURSOR find_objdate_column IS
37.274 + SELECT 1
37.275 + FROM user_tab_columns
37.276 + WHERE table_name = table_name_
37.277 + AND column_name = 'OBJDATE';
37.278 +BEGIN
37.279 + IF Table_Exist___(table_name_) THEN
37.280 + -- Add table name
37.281 + tmp_attr_ := tmp_attr_ || 'TABLE_NAME' || chr(31) || table_name_ || chr(30);
37.282 +
37.283 + -- Add info about objdate column
37.284 + OPEN find_objdate_column;
37.285 + FETCH find_objdate_column INTO dummy_;
37.286 + IF find_objdate_column%FOUND THEN
37.287 + tmp_attr_ := tmp_attr_ || 'OBJDATE' || chr(31) || 'TRUE' || chr(30);
37.288 + ELSE
37.289 + tmp_attr_ := tmp_attr_ || 'OBJDATE' || chr(31) || 'FALSE' || chr(30);
37.290 + END IF;
37.291 + CLOSE find_objdate_column;
37.292 + ELSE
37.293 + -- If no table exist, then no objdate column will exist either...
37.294 + tmp_attr_ := tmp_attr_ || 'OBJDATE' || chr(31) || 'FALSE' || chr(30);
37.295 + END IF;
37.296 + attr_ := tmp_attr_;
37.297 +END Get_Object_Info;
37.298 +
37.299 +FUNCTION Check_Index (
37.300 + name_ IN VARCHAR2,
37.301 + column_name_ IN VARCHAR2 ) RETURN VARCHAR2
37.302 +IS
37.303 + dummy_ NUMBER;
37.304 + table_name_ VARCHAR2(30) := name_ || '_TAB';
37.305 +
37.306 + CURSOR get_indexes IS
37.307 + SELECT index_name
37.308 + FROM user_indexes
37.309 + WHERE table_name = table_name_;
37.310 +
37.311 + CURSOR find_index_column(index_name_ IN VARCHAR2) IS
37.312 + SELECT 1
37.313 + FROM user_ind_columns
37.314 + WHERE index_name = index_name_
37.315 + AND column_name = column_name_;
37.316 +BEGIN
37.317 + FOR rec_ IN get_indexes LOOP
37.318 + OPEN find_index_column(rec_.index_name);
37.319 + FETCH find_index_column INTO dummy_;
37.320 + IF find_index_column%FOUND THEN -- There is an index on this column that is probably better.
37.321 + CLOSE find_index_column;
37.322 + RETURN 'FALSE';
37.323 + END IF;
37.324 + CLOSE find_index_column;
37.325 + END LOOP;
37.326 + RETURN ('TRUE');
37.327 +END Check_Index;
37.328 +
37.329 +PROCEDURE Get_Table_Info (
37.330 + table_info_ OUT VARCHAR2,
37.331 + name_ IN VARCHAR2 )
37.332 +IS
37.333 + table_ VARCHAR2(2000);
37.334 +
37.335 + CURSOR get_table_information(table_name_ IN VARCHAR2) IS
37.336 + SELECT *
37.337 + FROM user_tables
37.338 + WHERE table_name = table_name_;
37.339 +BEGIN
37.340 + FOR tab_ IN get_table_information(name_ || '_TAB') LOOP
37.341 + -- Initial statement
37.342 + table_ := 'CREATE TABLE ' || tab_.table_name;
37.343 + table_ := table_ || ' TABLESPACE ' || tab_.tablespace_name;
37.344 + -- Statements only necessary if not locally managed tablespace
37.345 + IF NOT Is_Locally_Managed___(tab_.tablespace_name) THEN
37.346 + table_ := table_ || ' INITRANS ' || tab_.ini_trans;
37.347 + table_ := table_ || ' MAXTRANS ' || tab_.max_trans;
37.348 + table_ := table_ || ' PCTFREE ' || tab_.pct_free;
37.349 + table_ := table_ || ' STORAGE (INITIAL ' || tab_.initial_extent || ' NEXT ' || tab_.next_extent;
37.350 + table_ := table_ || ' MINEXTENTS ' || tab_.min_extents || ' MAXEXTENTS ' || tab_.max_extents;
37.351 + table_ := table_ || ' PCTINCREASE ' || tab_.pct_increase || ' FREELISTS ' || tab_.freelists;
37.352 + table_ := table_ || ' FREELIST GROUPS ' || tab_.freelist_groups || ')';
37.353 + END IF;
37.354 + -- Final statement
37.355 + table_ := table_ || ' AS (SELECT * FROM ' || name_ || '_IAL)';
37.356 + END LOOP;
37.357 + table_info_ := table_;
37.358 +END Get_Table_Info;
37.359 +
37.360 +-----------------------------------------------------------------------------
37.361 +-------------------- FOUNDATION1 METHODS ------------------------------------
37.362 +-----------------------------------------------------------------------------
37.363 +-- Init
37.364 +-- Dummy procedure that can be called at database startup to ensure that
37.365 +-- this package is loaded into memory for performance reasons only.
37.366 +-----------------------------------------------------------------------------
37.367 +
37.368 +PROCEDURE Init
37.369 +IS
37.370 +BEGIN
37.371 + NULL;
37.372 +END Init;
37.373 +
37.374 +
37.375 +END &PKG;
37.376 +/
37.377 +SHOW ERROR
37.378 +
37.379 +-----------------------------------------------------------------------------
38.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
38.2 +++ b/PLSQL/Lexer/test/unit/data/test.api Wed May 15 23:04:20 2013 +0200
38.3 @@ -0,0 +1,1 @@
38.4 +-----------------------------------------------------------------------------
38.5 --
38.6 -- Logical unit: Formula
38.7 --
38.8 -- IFS/Design Template Version 2.5
38.9 --
38.10 -- Date Sign History
38.11 -- ------ ------ ---------------------------------------------------------
38.12 -----------------------------------------------------------------------------
38.13
38.14 DEFINE MODULE = APPSRV
38.15 DEFINE LU = Formula
38.16 DEFINE PKG = FORMULA_API
38.17
38.18 PROMPT Creating &PKG context
38.19
38.20 BEGIN
38.21 Installation_SYS.Create_Context('&LU'||'_CTX', 'DOMAIN_SYS', NULL, 'GLOBALLY', TRUE);
38.22 END;
38.23 /
38.24
38.25 PROMPT Creating &PKG specification
38.26
38.27 CREATE OR REPLACE PACKAGE &PKG IS
38.28
38.29 TYPE Public_Rec IS RECORD
38.30 (description FORMULA_TAB.description%TYPE,
38.31 formula_uom FORMULA_TAB.formula_uom%TYPE,
38.32 uom_description FORMULA_TAB.uom_description%TYPE);
38.33
38.34 -----------------------------------------------------------------------------
38.35 -------------------- PRIVATE FINITE STATE MACHINE ---------------------------
38.36 -----------------------------------------------------------------------------
38.37
38.38 FUNCTION Finite_State_Decode__ (
38.39 db_state_ IN VARCHAR2 ) RETURN VARCHAR2;
38.40 PRAGMA restrict_references(Finite_State_Decode__, WNDS, TRUST);
38.41
38.42 PROCEDURE Enumerate_States_Db__ (
38.43 db_values_ OUT VARCHAR2);
38.44
38.45 -----------------------------------------------------------------------------
38.46 -------------------- LU SPECIFIC PUBLIC METHODS -----------------------------
38.47 -----------------------------------------------------------------------------
38.48
38.49 END &PKG;
38.50 /
38.51 SHOW ERROR
38.52
38.53 UNDEFINE MODULE
38.54 UNDEFINE LU
38.55 UNDEFINE PKG
38.56 \ No newline at end of file
39.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
39.2 +++ b/PLSQL/Lexer/test/unit/data/test.apy Wed May 15 23:04:20 2013 +0200
39.3 @@ -0,0 +1,129 @@
39.4 +-----------------------------------------------------------------------------
39.5 +--
39.6 +-- Logical unit: Formula
39.7 +--
39.8 +-- Purpose:
39.9 +--
39.10 +-- IFS/Design Template Version 2.5
39.11 +--
39.12 +-- Date Sign History
39.13 +-- ------ ------ ---------------------------------------------------------
39.14 +-----------------------------------------------------------------------------
39.15 +
39.16 +DEFINE MODULE = APPSRV
39.17 +DEFINE LU = Formula
39.18 +DEFINE TABLE = FORMULA_TAB
39.19 +DEFINE VIEW = FORMULA
39.20 +DEFINE PKG = FORMULA_API
39.21 +
39.22 +DEFINE OBJID = rowid
39.23 +DEFINE OBJVERSION = "ltrim(lpad(to_char(rowversion,'YYYYMMDDHH24MISS'),2000))"
39.24 +DEFINE OBJSTATE = rowstate
39.25 +DEFINE OBJEVENTS = &PKG..Finite_State_Events__(&OBJSTATE)
39.26 +DEFINE STATE = &PKG..Finite_State_Decode__(&OBJSTATE)
39.27 +
39.28 +PROMPT Creating &VIEW view
39.29 +
39.30 +CREATE OR REPLACE VIEW &VIEW AS
39.31 +SELECT formula_id formula_id,
39.32 + description description,
39.33 + formula_uom formula_uom,
39.34 + uom_description uom_description,
39.35 + &OBJID objid,
39.36 + &OBJVERSION objversion,
39.37 + &OBJSTATE objstate,
39.38 + &OBJEVENTS objevents,
39.39 + &STATE state
39.40 +FROM formula_tab
39.41 +WITH read only;
39.42 +
39.43 +COMMENT ON TABLE &VIEW
39.44 + IS 'LU=&LU^PROMPT=Formula^MODULE=&MODULE^';
39.45 +
39.46 +COMMENT ON COLUMN &VIEW..formula_id
39.47 + IS 'FLAGS=KMI-L^DATATYPE=STRING(30)/UPPERCASE^PROMPT=Formula Id^';
39.48 +COMMENT ON COLUMN &VIEW..description
39.49 + IS 'FLAGS=AMIUL^DATATYPE=STRING(100)^PROMPT=Description^';
39.50 +COMMENT ON COLUMN &VIEW..formula_uom
39.51 + IS 'FLAGS=AMIUL^DATATYPE=STRING(30)^PROMPT=Formula Uom^REF=IsoUnit/NOCHECK^';
39.52 +COMMENT ON COLUMN &VIEW..uom_description
39.53 + IS 'FLAGS=AMIUL^DATATYPE=STRING(200)^PROMPT=Uom Description^';
39.54 +
39.55 +PROMPT Creating &PKG implementation
39.56 +
39.57 +CREATE OR REPLACE PACKAGE BODY &PKG IS
39.58 +
39.59 +state_separator_ CONSTANT VARCHAR2(1) := Client_SYS.field_separator_;
39.60 +
39.61 +-----------------------------------------------------------------------------
39.62 +-------------------- LU SPECIFIC IMPLEMENTATION METHOD DECLARATIONS ---------
39.63 +-----------------------------------------------------------------------------
39.64 +
39.65 +PROCEDURE Check_Formula_State___ (
39.66 + rec_ IN OUT &TABLE%ROWTYPE,
39.67 + attr_ IN OUT VARCHAR2 );
39.68 +
39.69 +FUNCTION Get_Db_Values___ RETURN VARCHAR2 DETERMINISTIC;
39.70 +
39.71 +PROCEDURE Exist (
39.72 + formula_id_ IN VARCHAR2 )
39.73 +IS
39.74 +BEGIN
39.75 + General_SYS.Init_Method(lu_name_, '&PKG', 'Exist', TRUE);
39.76 + IF (NOT Check_Exist___(formula_id_)) THEN
39.77 + Error_SYS.Record_Not_Exist(lu_name_);
39.78 + END IF;
39.79 +END Exist;
39.80 +
39.81 +/**Example block comment inside a package spec**/
39.82 +
39.83 +FUNCTION Get (
39.84 + formula_id_ IN VARCHAR2 ) RETURN Public_Rec
39.85 +IS
39.86 + temp_ Public_Rec;
39.87 + CURSOR get_attr IS
39.88 + SELECT description, formula_uom, uom_description
39.89 + FROM &TABLE
39.90 + WHERE formula_id = formula_id_;
39.91 +BEGIN
39.92 + OPEN get_attr;
39.93 + FETCH get_attr INTO temp_;
39.94 + CLOSE get_attr;
39.95 + RETURN temp_;
39.96 +END Get;
39.97 +
39.98 +-----------------------------------------------------------------------------
39.99 +-------------------- FOUNDATION1 METHODS ------------------------------------
39.100 +-----------------------------------------------------------------------------
39.101 +-- Init
39.102 +-- Dummy procedure that can be called at database startup to ensure that
39.103 +-- this package is loaded into memory for performance reasons only.
39.104 +-----------------------------------------------------------------------------
39.105 +
39.106 +PROCEDURE Init
39.107 +IS
39.108 +BEGIN
39.109 + Domain_SYS.Load_State(lu_name_, Get_Client_Values___, Get_Db_Values___);
39.110 +END Init;
39.111 +
39.112 +END &PKG;
39.113 +/
39.114 +SHOW ERROR
39.115 +
39.116 +
39.117 +BEGIN
39.118 + FORMULA_API.Language_Refreshed;
39.119 +END;
39.120 +/
39.121 +
39.122 +UNDEFINE MODULE
39.123 +UNDEFINE LU
39.124 +UNDEFINE TABLE
39.125 +UNDEFINE VIEW
39.126 +UNDEFINE PKG
39.127 +UNDEFINE OBJID
39.128 +UNDEFINE OBJVERSION
39.129 +UNDEFINE OBJSTATE
39.130 +UNDEFINE OBJEVENTS
39.131 +UNDEFINE STATE
39.132 +-----------------------------------------------------------------------------
39.133 \ No newline at end of file
40.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
40.2 +++ b/PLSQL/Lexer/test/unit/data/test.upg Wed May 15 23:04:20 2013 +0200
40.3 @@ -0,0 +1,254 @@
40.4 +create or replace java source named "AvQuery" as
40.5 +
40.6 + import java.util.*;
40.7 +
40.8 + class WordData {
40.9 + String text;
40.10 + String fieldName;
40.11 + }
40.12 +
40.13 + public class AvQuery {
40.14 +
40.15 + static Vector reqWords = new Vector();
40.16 + static Vector optWords = new Vector();
40.17 + static Vector notWords = new Vector();
40.18 +
40.19 + public static final int required = 1;
40.20 + public static final int optional = 2;
40.21 + public static final int notwanted = 3;
40.22 +
40.23 + public static String translate (String input) {
40.24 + processString(input);
40.25 + return getQuery();
40.26 + }
40.27 +
40.28 + private static void addWord (String word, int wordType, String field) {
40.29 +
40.30 + WordData wd = new WordData();
40.31 +
40.32 + wd.text = word;
40.33 + wd.fieldName = field;
40.34 +
40.35 + switch (wordType) {
40.36 + case required:
40.37 + reqWords.addElement(wd);
40.38 + break;
40.39 + case optional:
40.40 + optWords.addElement(wd);
40.41 + break;
40.42 + case notwanted:
40.43 + notWords.addElement(wd);
40.44 + break;
40.45 + }
40.46 + }
40.47 +
40.48 + public static void processString (String input) {
40.49 + int p = 0;
40.50 + int pp;
40.51 + int startWord;
40.52 + int flag;
40.53 + String theWord;
40.54 + String fieldName;
40.55 +
40.56 +
40.57 + reqWords = new Vector();
40.58 + optWords = new Vector();
40.59 + notWords = new Vector();
40.60 +
40.61 + while (true) { // Loop over all words
40.62 +
40.63 + startWord = p;
40.64 + while (p < input.length() && input.charAt(p) != ' ') {
40.65 + // Check for quoted phrase
40.66 + if (input.charAt(p) == '"') { // Quote - skip to next or end
40.67 + p++; // skip the actual quote
40.68 + while (p < input.length() && input.charAt(p) != '"') {
40.69 + p++;
40.70 + }
40.71 + if (p < input.length()) p++; // Skip the final quote if found
40.72 + }
40.73 + else {
40.74 + p++;
40.75 + }
40.76 + }
40.77 +
40.78 + // Got a word. Check for required/not wanted flags (+-)
40.79 +
40.80 + theWord = input.substring(startWord, p);
40.81 +
40.82 + flag = optional;
40.83 + fieldName = "";
40.84 +
40.85 + if (theWord.charAt(0) == '+') {
40.86 + flag = required;
40.87 + theWord = theWord.substring(1);
40.88 + }
40.89 +
40.90 + else if (theWord.charAt(0) == '-') {
40.91 + flag = notwanted;
40.92 + theWord = theWord.substring(1);
40.93 + }
40.94 +
40.95 + // Replace * wild cards with %
40.96 +
40.97 + theWord = theWord.replace('*', '%');
40.98 +
40.99 + // Find field indicator ":"
40.100 +
40.101 + pp = theWord.indexOf(":");
40.102 + if (pp > 0) {
40.103 + fieldName = theWord.substring(0, pp);
40.104 + theWord = theWord.substring(pp+1, theWord.length());
40.105 + }
40.106 +
40.107 + addWord(theWord, flag, fieldName);
40.108 +
40.109 + p++;
40.110 + if (p >= input.length()) break;
40.111 + }
40.112 + }
40.113 +
40.114 + // Get word gets a single word from the "words" vector,
40.115 + // surrounds it in braces (to avoid reserved words)
40.116 + // and attaches a WITHIN clause if appropriate.
40.117 +
40.118 + private static String getWord (Vector words, int pos) {
40.119 +
40.120 + String ts = "{" + ((WordData) words.elementAt(pos)).text + "}";
40.121 + if (((WordData)words.elementAt(pos)).fieldName.length() > 0) {
40.122 + ts += " WITHIN " + ((WordData)words.elementAt(pos)).fieldName;
40.123 + }
40.124 + return ts;
40.125 + }
40.126 +
40.127 +
40.128 + // getQuery returns a formatted, ready-to-run ConText query.
40.129 + // In order to satisfy the altavista syntax, we have to generate
40.130 + // the following query:
40.131 +
40.132 + // ( req1 & req2 & ... reqN)
40.133 + // | ( (req1 & req2 & .. reqN)*10*10
40.134 + // & (req1, req2 , ... reqN , opt1 , opt2 , ... optN) )
40.135 + // NOT (not1 | not2 | ... notN)
40.136 +
40.137 + public static String getQuery () {
40.138 + String tempString = "";
40.139 +
40.140 + String boolOp = ""; // AND, OR, NOT operator
40.141 + int reqCount; // Count of required words
40.142 + int optCount; // Count of optional words
40.143 + int notCount; // Count of not wanted words
40.144 + int i; // Loop control
40.145 +
40.146 + boolOp = "";
40.147 + reqCount = reqWords.size();
40.148 + optCount = optWords.size();
40.149 + notCount = notWords.size();
40.150 +
40.151 + if (reqWords.size() > 0) {
40.152 + // Required words - first time
40.153 +
40.154 + tempString = "((";
40.155 + for (i = 0; i < reqCount; i++) {
40.156 + tempString += boolOp + getWord(reqWords,i);
40.157 + boolOp = " & ";
40.158 + }
40.159 +
40.160 + if (reqCount > 0 && optCount > 0) {
40.161 + tempString += ") | ";
40.162 + tempString += "((";
40.163 + // Required words - second time (anded with optional words)
40.164 + boolOp = "";
40.165 + for (i = 0; i < reqCount; i++) {
40.166 + tempString += boolOp + getWord(reqWords,i);
40.167 + boolOp = " & ";
40.168 + }
40.169 + tempString += ")*10*10";
40.170 +
40.171 + tempString += " & (";
40.172 +
40.173 + // Required words - third time as part of accumulate
40.174 + boolOp = "";
40.175 + for (i = 0; i < reqCount; i++) {
40.176 + tempString += boolOp + getWord(reqWords,i);
40.177 + // tempString += "*2";// Uncomment to double weight of required words
40.178 + boolOp = " , ";
40.179 + }
40.180 + }
40.181 + }
40.182 + else
40.183 + tempString = "(";
40.184 +
40.185 + // Optional words
40.186 + // Don't reset boolOp
40.187 + for (i = 0; i < optCount; i++) {
40.188 + tempString += boolOp + getWord(optWords,i);
40.189 + boolOp = " , "; // Accumulate
40.190 + }
40.191 +
40.192 + if (reqCount > 0)
40.193 + if (optCount > 0 )
40.194 + tempString += ")) )";
40.195 + else
40.196 + tempString += ")) ";
40.197 + else
40.198 + tempString += ")";
40.199 +
40.200 + if (tempString.length() > 0)
40.201 + boolOp = " NOT ";
40.202 + else
40.203 + boolOp = "";
40.204 +
40.205 + for (i = 0; i < notCount; i++) {
40.206 + tempString += boolOp + getWord(notWords,i);
40.207 + boolOp = " NOT ";
40.208 + }
40.209 + return tempString;
40.210 + }
40.211 +}
40.212 +/
40.213 +
40.214 +DECLARE
40.215 + CURSOR check_exits(company_id_ VARCHAR2,emp_no_ VARCHAR2)IS
40.216 + SELECT 1
40.217 + FROM company_person_tab
40.218 + WHERE company_id = company_id_
40.219 + AND emp_no = emp_no_;
40.220 + temp_ NUMBER;
40.221 +BEGIN
40.222 +FOR rec_ IN (SELECT * FROM company_emp_tab) LOOP
40.223 + OPEN check_exits(rec_.company,rec_.employee_id);
40.224 + FETCH check_exits INTO temp_;
40.225 + IF (check_exits%NOTFOUND) THEN
40.226 + INSERT INTO company_person_tab(company_id,emp_no,master_employment,operator,rowversion)
40.227 + VALUES (rec_.company,rec_.employee_id,'0',User,rec_.rowversion);
40.228 + END IF;
40.229 + CLOSE check_exits;
40.230 +END LOOP;
40.231 +END;
40.232 +/
40.233 +
40.234 +UPDATE search_domain_attribute_tab
40.235 +SET model_datatype = CASE datatype
40.236 + WHEN 'VARCHAR2' THEN 'TEXT'
40.237 + WHEN 'CHAR' THEN 'TEXT'
40.238 + WHEN 'NUMBER' THEN 'NUMBER'
40.239 + WHEN 'DATE' THEN 'DATE'
40.240 + WHEN 'CLOB' THEN 'LONG_TEXT'
40.241 + WHEN 'BLOB' THEN 'BINARY'
40.242 + ELSE 'TEXT'
40.243 + END
40.244 +WHERE model_datatype IS NULL
40.245 +/
40.246 +
40.247 +
40.248 +create or replace trigger vmogss_base_tablerestrict_tr
40.249 + after insert or update on vmo_base_tablerestriction
40.250 + referencing old as oldrec new as newrec
40.251 + for each row
40.252 +begin
40.253 + if updating or inserting then
40.254 + insert into vmo_base_gss_scope(gss_id, created, source_tbl, source_info) values('ALL_GSS_ID', sysdate, 'VMO_BASE_TABLERESTRICTION', :newrec.idrole);
40.255 + end if;
40.256 +end vmogss_base_tablerestrict_tr;
40.257 +/
40.258 \ No newline at end of file
41.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
41.2 +++ b/PLSQL/Lexer/test/unit/data/test1.apy Wed May 15 23:04:20 2013 +0200
41.3 @@ -0,0 +1,338 @@
41.4 +PROMPT Creating &VIEW view
41.5 +CREATE OR REPLACE VIEW &VIEW AS
41.6 +SELECT s.sid sid,
41.7 + s.audsid audsid,
41.8 + u.identity fnd_user,
41.9 + s.osuser os_user,
41.10 + s.username oracle_user,
41.11 + s.machine machine,
41.12 + s.program program,
41.13 + s.module package,
41.14 + s.action method,
41.15 + logon_time log_on_time,
41.16 + s.status status,
41.17 + decode(s.status, 'ACTIVE', SYSDATE, sysdate - last_call_et/(24*3600)) last_query,
41.18 + nvl(f.info, '!FNDBAS.SESSION.INFO') info,
41.19 + s.serial# serial_no,
41.20 + Fnd_Session_API.Get_Sql_Statement(s.sql_address, s.sql_hash_value, s.sql_id) sql_statement,
41.21 + Fnd_Session_API.Get_Sql_Statement(s.prev_sql_addr, s.prev_hash_value, s.prev_sql_id) previous_sql_statement
41.22 +FROM &TABLE1 s, &TABLE2 f, &TABLE3 u
41.23 + WHERE rtrim(substr(s.client_info, 1, 30)) = u.identity
41.24 + AND s.audsid = f.session_id (+)
41.25 + AND s.audsid != 0
41.26 +WITH read only;
41.27 +
41.28 +DECLARE
41.29 + CURSOR Insert_Module_Data IS
41.30 + SELECT *
41.31 + FROM MODULE_TAB;
41.32 +
41.33 +PROCEDURE Insert_data(module_ VARCHAR2,module_name_ VARCHAR2) IS
41.34 +
41.35 + tmp_attribute_key_ VARCHAR2(120);
41.36 + newrec_ LANGUAGE_SYS_TAB%ROWTYPE;
41.37 + lu_ VARCHAR2(120) :='Module';
41.38 + path_ VARCHAR2(500);
41.39 + base_module_ VARCHAR2(120) :='FNDBAS';
41.40 +
41.41 +BEGIN
41.42 + tmp_attribute_key_ := Replace (module_, '^','~');
41.43 + newrec_.main_type := 'LU';
41.44 + newrec_.type := 'Basic Data';
41.45 + newrec_.path := lu_||'_'||base_module_||'.'||module_;
41.46 + path_ := newrec_.path;
41.47 + newrec_.attribute := 'Text';
41.48 + DECLARE
41.49 + BEGIN
41.50 + INSERT
41.51 + INTO language_sys_tab (
41.52 + main_type,
41.53 + type,
41.54 + path,
41.55 + attribute,
41.56 + lang_code,
41.57 + module,
41.58 + text,
41.59 + installation_text,
41.60 + system_defined,
41.61 + term_usage_version_id,
41.62 + bulk,
41.63 + rowversion)
41.64 + VALUES (
41.65 + newrec_.main_type,
41.66 + newrec_.type,
41.67 + newrec_.path,
41.68 + newrec_.attribute,
41.69 + 'PROG',
41.70 + base_module_,
41.71 + module_name_,
41.72 + module_name_,
41.73 + 'FALSE',
41.74 + NULL,
41.75 + 0,
41.76 + SYSDATE);
41.77 + EXCEPTION
41.78 + WHEN dup_val_on_index THEN
41.79 + UPDATE language_sys_tab
41.80 + SET main_type = newrec_.main_type,
41.81 + type = newrec_.type,
41.82 + path = newrec_.path,
41.83 + attribute = newrec_.attribute,
41.84 + lang_code = 'PROG',
41.85 + module = base_module_,
41.86 + text = module_name_,
41.87 + installation_text = module_name_,
41.88 + system_defined = 'FALSE',
41.89 + rowversion = SYSDATE
41.90 + WHERE main_type = newrec_.main_type
41.91 + AND type = newrec_.type
41.92 + AND path = newrec_.path
41.93 + AND attribute = newrec_.attribute
41.94 + AND lang_code = 'PROG';
41.95 +
41.96 + WHEN OTHERS THEN
41.97 + NULL;
41.98 + END;
41.99 +
41.100 +
41.101 +END Insert_data;
41.102 +
41.103 +
41.104 +BEGIN
41.105 + IF NOT Installation_SYS.Is_Db_Patch_Registered('FNDBAS', '70745') THEN
41.106 + FOR rec_ IN Insert_Module_Data LOOP
41.107 + Insert_data(rec_.module,rec_.name);
41.108 + END LOOP;
41.109 + END IF;
41.110 + Installation_SYS.Register_Db_Patch('FNDBAS', '70745','Insert Basic Data Transations for Module Name');
41.111 + COMMIT;
41.112 +END;
41.113 +/
41.114 +
41.115 +EXEC Installation_SYS.Log_Detail_Time_Stamp('ORDER', '100512_90590_ORDER.cdb', 'Timestamp_2');
41.116 +PROMPT Updating the value of column SHIP_ADDR_NO in CUSTOMER_ORDER_DELIVERY_TAB
41.117 +BEGIN
41.118 + IF (NOT Database_SYS.Is_Db_Patch_Registered('ORDER', 90590)) THEN
41.119 + DECLARE
41.120 + column_ Database_SYS.ColRec;
41.121 + table_name_ VARCHAR2(30) := 'CUSTOMER_ORDER_DELIVERY_TAB';
41.122 +
41.123 + BEGIN
41.124 +
41.125 + UPDATE customer_order_delivery_tab cod
41.126 + SET cod.ship_addr_no = (CASE WHEN (cod.delnote_no IS NOT NULL) THEN
41.127 + (SELECT codn.ship_addr_no
41.128 + FROM customer_order_deliv_note_tab codn
41.129 + WHERE codn.delnote_no = cod.delnote_no)
41.130 + WHEN (cod.delnote_no IS NULL AND cod.shipment_id IS NOT NULL) THEN
41.131 + (SELECT ship.ship_addr_no
41.132 + FROM shipment_tab ship
41.133 + WHERE ship.shipment_id = cod.shipment_id)
41.134 + ELSE
41.135 + (SELECT col.ship_addr_no
41.136 + FROM customer_order_line_tab col
41.137 + WHERE col.order_no = cod.order_no
41.138 + AND col.line_no = cod.line_no
41.139 + AND col.rel_no = cod.rel_no
41.140 + AND col.line_item_no = cod.line_item_no)
41.141 + END)
41.142 + WHERE cod.ship_addr_no IS NULL;
41.143 + END;
41.144 + Database_SYS.Register_Db_Patch('ORDER', 90590, 'Adding column SHIP_ADDR_NO into CUSTOMER_ORDER_DELIVERY_TAB');
41.145 + END IF;
41.146 +END;
41.147 +/
41.148 +COMMIT;
41.149 +
41.150 +exec Installation_SYS.Log_Detail_Time_Stamp('ORDER','1340.upg','Timestamp_14');
41.151 +PROMPT Updating the value of D3, DELIVERY_DATE in INVOICE_TAB.
41.152 +UPDATE INVOICE_TAB
41.153 + SET D3 = CASE
41.154 + WHEN CREATOR = 'CUSTOMER_ORDER_INV_HEAD_API' THEN
41.155 + DELIVERY_DATE
41.156 + ELSE
41.157 + D3
41.158 + END,
41.159 + DELIVERY_DATE = CASE
41.160 + WHEN CREATOR = 'CUSTOMER_ORDER_INV_HEAD_API' AND INVOICE_TYPE NOT IN('CUSTORDDEB','CUSTCOLDEB','SELFBILLDEB','SELFBILLCRE','CUSTORDCRE','CUSTCOLCRE','CUSTCOLCOR','CUSTORDCOR') THEN
41.161 + NULL
41.162 + ELSE
41.163 + DELIVERY_DATE
41.164 + END;
41.165 +ROLLBACK;
41.166 +
41.167 +PROMPT Creating &VIEW._DEF view
41.168 +
41.169 +CREATE OR REPLACE VIEW &VIEW._DEF AS
41.170 +SELECT doc_class doc_class,
41.171 + Language_Text_API.Decode(doc_name) doc_name,
41.172 + doc_name db_doc_name,
41.173 + &OBJID objid,
41.174 + &OBJVERSION objversion
41.175 +FROM doc_class_tab
41.176 +WHERE DOC_CLASS > ' '
41.177 +WITH read only;
41.178 +
41.179 +COMMENT ON TABLE &VIEW._DEF
41.180 + IS 'LU=&LU^PROMPT=Document Class^MODULE=&MODULE^';
41.181 +
41.182 +DECLARE
41.183 + execution_date_ DATE := SYSDATE + 30/86400;
41.184 +BEGIN
41.185 + NULL;
41.186 +END;
41.187 +
41.188 +DECLARE
41.189 + CURSOR check_exits(company_id_ VARCHAR2,emp_no_ VARCHAR2)IS
41.190 + SELECT 1
41.191 + FROM company_person_tab
41.192 + WHERE company_id = company_id_
41.193 + AND emp_no = emp_no_;
41.194 + temp_ NUMBER;
41.195 +BEGIN
41.196 +FOR rec_ IN (SELECT * FROM company_emp_tab) LOOP
41.197 + OPEN check_exits(rec_.company,rec_.employee_id);
41.198 + FETCH check_exits INTO temp_;
41.199 + IF (check_exits%NOTFOUND) THEN
41.200 + INSERT INTO company_person_tab(company_id,emp_no,master_employment,operator,rowversion)
41.201 + VALUES (rec_.company,rec_.employee_id,'0',User,rec_.rowversion);
41.202 + END IF;
41.203 + CLOSE check_exits;
41.204 +END LOOP;
41.205 +END;
41.206 +/
41.207 +
41.208 +PROMPT dropping temporary procedure
41.209 +
41.210 +DROP PROCEDURE Temp_Person_Document_Default;
41.211 +
41.212 +BEGIN
41.213 + Object_Connection_SYS.Disable_Logical_Unit('CompanyPerson');
41.214 + Object_Connection_SYS.Enable_Logical_Unit('CompanyPerson', 'DocReferenceObject^', 'COMPANY_PERSON_ALL', 'COMPANY_PERSON_API');
41.215 +END;
41.216 +/
41.217 +
41.218 +CREATE UNIQUE INDEX Report_Grouping_Detail_Ux ON Report_Grouping_Detail_Tab
41.219 + ( company,
41.220 + internal_key )
41.221 + TABLESPACE &FINREP_INDEX
41.222 + STORAGE
41.223 + ( INITIAL &FINREP_LARGE_IX
41.224 +);
41.225 +
41.226 +CREATE VIEW &MODULE_VIEW1
41.227 +( ORDER_NO, RELEASE_NO, SEQUENCE_NO, LINE_ITEM_NO, PART_NO, CONTRACT, CONFIGURATION_ID ,
41.228 +LOCATION_NO, LOT_BATCH_NO, SERIAL_NO, WAIV_DEV_REJ_NO, ENG_CHG_LEVEL, ACTIVITY_SEQ,
41.229 +QTY_ASSIGNED, LAST_ACTIVITY_DATE)
41.230 +AS
41.231 +SELECT
41.232 + ' ', ' ', ' ', 0,' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 0, 0, SYSDATE
41.233 + FROM DUAL WHERE 1 = 2
41.234 +/
41.235 +
41.236 +CREATE OR REPLACE VIEW &VIEW3 AS
41.237 +SELECT contract contract,
41.238 + work_center_no work_center_no,
41.239 + work_day work_day,
41.240 + Work_Center_Int_API.Get_Work_Center_Prod_Line(contract,work_center_no) production_line,
41.241 + Work_Center_Int_API.Get_Department_No(contract,work_center_no) department,
41.242 + Shop_Order_Operation_Int_API.Planned_Load(work_day,contract,work_center_no) planned,
41.243 + Shop_Order_Operation_Int_API.Released_Load(work_day,contract,work_center_no) released,
41.244 + nvl(Crp_Mach_Op_Load_Util_API.Get_Work_Center_Load(contract,work_center_no, work_day, work_day),0) requisitioned,
41.245 + nvl(Crp_Mach_Op_Load_Util_API.Get_W_C_Dop_Load(contract,work_center_no, work_day, work_day),0) unreleased_dop,
41.246 + nvl(CRP_MACH_OP_LOAD_UTIL_API.Get_Crp_Capac_Workday(contract,work_center_no, work_day),0) wc_cap,
41.247 + nvl((nvl(Crp_Mach_Op_Load_Util_API.Get_Work_Center_Load(contract,work_center_no, work_day, work_day),0)
41.248 + + nvl(Crp_Mach_Op_Load_Util_API.Get_W_C_Dop_Load(contract,work_center_no, work_day, work_day),0)
41.249 + + Shop_Order_Operation_Int_API.Planned_Load(work_day,contract,work_center_no)
41.250 + + Shop_Order_Operation_Int_API.Released_Load(work_day,contract,work_center_no))
41.251 + / DECODE(Work_Center_Capacity_API.Get_Range_Avail_Capacity(contract,work_center_no, work_day, work_day), 0, .00001,
41.252 + CRP_MACH_OP_LOAD_UTIL_API.Get_Crp_Capac_Workday(contract,work_center_no, work_day)) * 100,0) load_pct,
41.253 + objid objid,
41.254 + objversion objversion
41.255 +FROM CRP_MACH_OP_LOAD2;
41.256 +
41.257 +CREATE TRIGGER VMOL_BASE_FIELDDEPVALUES_TIB BEFORE INSERT ON
41.258 + VMOL_BASE_FIELDDEPVALUES REFERENCING OLD AS OLDREC NEW AS NEWREC FOR EACH ROW
41.259 + BEGIN
41.260 + SELECT VMOL_ID_SEQ.NEXTVAL INTO :NEWREC.ID_ FROM DUAL;
41.261 + END;
41.262 +/
41.263 +
41.264 +BEGIN
41.265 +EXECUTE IMMEDIATE('
41.266 + create sequence vmo_gss_usermap_seq
41.267 + minvalue 1
41.268 + nomaxvalue
41.269 + start with 1
41.270 + increment by 1
41.271 + nocache
41.272 + order
41.273 +');
41.274 +EXCEPTION
41.275 + WHEN OTHERS THEN
41.276 + --OK if ORA -00955: name is already used by an existing object
41.277 + IF INSTR(SQLERRM,'-00955') != 0 THEN NULL;
41.278 + ELSE raise_application_error ( -20000, SQLERRM );
41.279 + END IF;
41.280 +END;
41.281 +/
41.282 +
41.283 +create or replace trigger VMO_BASE_GSS_SYNCED_RECORDS_TR before
41.284 +insert or update
41.285 +on VMO_BASE_GSS_SYNCED_RECORDS referencing old as oldrec new as newrec for each row
41.286 +
41.287 +--This trigger is only used to make sure that an old version of GSS still can be tested
41.288 +--against this database after this database has been upgraded to version 3.15.1.15
41.289 +--Reason is that GSS_USER is part of the primary key and is not set by previous versions.
41.290 +
41.291 +declare
41.292 +
41.293 + FUNCTION GET_GSS_USER (
41.294 + GSS_ID_ in VARCHAR2,
41.295 + VMO_TABLE_ in VARCHAR2,
41.296 + GSS_TABLE_ in VARCHAR2,
41.297 + VMO_USER_ in VARCHAR2
41.298 + ) RETURN VARCHAR2 IS
41.299 +
41.300 + GSS_USER_ VARCHAR2(32);
41.301 +
41.302 + BEGIN
41.303 + SELECT U.GSS_USER INTO GSS_USER_
41.304 + FROM VMO_BASE_GSS_USERMAP U
41.305 + WHERE U.GSS_ID = GSS_ID_
41.306 + AND U.VMO_TABLE = VMO_TABLE_
41.307 + AND U.GSS_TABLE = GSS_TABLE_
41.308 + AND U.VMO_USER = VMO_USER_
41.309 + AND U.ACTIVE = 1;
41.310 +
41.311 + RETURN GSS_USER_;
41.312 +
41.313 + EXCEPTION WHEN OTHERS THEN
41.314 + RETURN NULL; --Should not be happen in working configuration.
41.315 +
41.316 + END GET_GSS_USER;
41.317 +
41.318 +begin
41.319 +
41.320 + IF :newREC.GSS_USER IS NULL THEN
41.321 + :newREC.GSS_USER := GET_GSS_USER(:newREC.GSS_ID, :newREC.VMO_TABLE, :newREC.GSS_TABLE, :newREC.IDUSER);
41.322 + END IF;
41.323 +
41.324 +end;
41.325 +/
41.326 +
41.327 +
41.328 +UPDATE search_domain_attribute_tab
41.329 +SET model_datatype = CASE datatype
41.330 + WHEN 'VARCHAR2' THEN 'TEXT'
41.331 + WHEN 'CHAR' THEN 'TEXT'
41.332 + WHEN 'NUMBER' THEN 'NUMBER'
41.333 + WHEN 'DATE' THEN 'DATE'
41.334 + WHEN 'CLOB' THEN 'LONG_TEXT'
41.335 + WHEN 'BLOB' THEN 'BINARY'
41.336 + ELSE 'TEXT'
41.337 + END
41.338 +WHERE model_datatype IS NULL
41.339 +/
41.340 +
41.341 +
42.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
42.2 +++ b/PLSQL/Lexer/test/unit/data/test2.apy Wed May 15 23:04:20 2013 +0200
42.3 @@ -0,0 +1,916 @@
42.4 +
42.5 +PROCEDURE Evaluate_Level___ (
42.6 + evaluation_rec_ IN OUT evaluation_record,
42.7 + eval_log_rec_ IN OUT config_evaluation_api.evaluation_log_record,
42.8 + complete_eval_log_rec_ IN OUT config_evaluation_api.complete_evaluation_log_record,
42.9 + parent_part_ IN VARCHAR2 )
42.10 +IS
42.11 + operation_rec_ Routing_Int_API.operation_record;
42.12 + oper_work_guide_rec_ Routing_Int_API.oper_work_guide_record;
42.13 + oper_tool_rec_ Routing_Int_API.oper_tool_record;
42.14 + component_rec_ Manuf_Structure_Int_API.component_record;
42.15 + comp_work_guide_rec_ Manuf_Structure_Int_API.comp_work_guide_record;
42.16 + config_spec_rec_ Config_Evaluation_API.eval_config_spec_record;
42.17 + parent_supply_rec_ interim_order_tab%ROWTYPE;
42.18 + --
42.19 + oper_valid_ BOOLEAN;
42.20 + supply_interim_order_no_ interim_order_tab.interim_order_no%TYPE;
42.21 + configurable_ VARCHAR2(20);
42.22 + dop_part_ VARCHAR2(20);
42.23 + part_type_code_ VARCHAR2(20);
42.24 + comp_bom_type_db_ VARCHAR2(20);
42.25 + comp_bom_type_ VARCHAR2(200);
42.26 + comp_eng_chg_level_ manuf_structure_tab.eng_chg_level%TYPE;
42.27 + structure_alternative_no_ manuf_struct_alternate_tab.alternative_no%TYPE;
42.28 + comp_struct_alternative_no_ manuf_struct_alternate_tab.alternative_no%TYPE;
42.29 + comp_routing_revision_ routing_head_tab.routing_revision%TYPE;
42.30 + routing_alternative_no_ routing_alternate_tab.alternative_no%TYPE;
42.31 + comp_rout_alternative_no_ routing_alternate_tab.alternative_no%TYPE;
42.32 +
42.33 +
42.34 + e_row_ NUMBER;
42.35 + comp_alt_state_ manuf_struct_alternate_tab.rowstate%TYPE;
42.36 + comp_rout_alt_state_ routing_alternate_tab.rowstate%TYPE;
42.37 + get_comp_flag_ BOOLEAN;
42.38 + qty_avail_ NUMBER;
42.39 + primary_comp_qty_ NUMBER;
42.40 + phatom_part_exist_ BOOLEAN;
42.41 + parent_interim_order_no_ VARCHAR2(12);
42.42 + Parent_part_mrp_Code_ VARCHAR2(2);
42.43 +
42.44 +
42.45 + multi_site_part_exist_ BOOLEAN := FALSE;
42.46 + stmt_ VARCHAR2(2000);
42.47 + check_source_ VARCHAR2(5) := 'FALSE';
42.48 +
42.49 + interim_required_date_ Date;--interim_demand_head_tab.required_date%TYPE;
42.50 + interim_start_date_ interim_order_tab.start_date%TYPE;
42.51 + parent_supply_date_ interim_order_tab.supply_date%TYPE;
42.52 + parent_start_date_ interim_order_tab.start_date%TYPE;
42.53 + parent_order_no_ interim_order_tab.interim_order_no%TYPE;
42.54 + line_item_no_ interim_order_component_tab.line_item_no%TYPE;
42.55 + calendar_id_ work_time_calendar_tab.calendar_id%TYPE;
42.56 + leadtime_offset_ NUMBER;
42.57 + operation_no_ NUMBER;
42.58 + found_ BOOLEAN;
42.59 +
42.60 + CURSOR get_line_item_no(interim_header_ IN VARCHAR2,interim_order_no_ IN VARCHAR2) IS
42.61 + SELECT leadtime_offset,line_item_no, supply_interim_order_no
42.62 + FROM interim_order_component_tab
42.63 + WHERE interim_header_id = interim_header_
42.64 + AND interim_order_no = interim_order_no_;
42.65 + CURSOR get_parent_supply IS
42.66 + SELECT *
42.67 + FROM interim_order_tab
42.68 + WHERE interim_header_id = evaluation_rec_.interim_header_id
42.69 + AND interim_structure_level = evaluation_rec_.current_level;
42.70 +BEGIN
42.71 + General_SYS.Init_Method(lu_name_, '&PKG', 'Evaluate_Level___',TRUE);
42.72 +
42.73 +-- FOR-LOOP #1: Loop thru interim order records inserted by calling method.
42.74 + FOR parent_supply_ IN get_parent_supply LOOP
42.75 + -- Set parent_supply_rec_ as Parent_supply_
42.76 + parent_supply_rec_ := parent_supply_;
42.77 + --
42.78 + configurable_ := Part_Catalog_API.Get_Configurable_Db(parent_supply_.part_no);
42.79 + --
42.80 + dop_part_ := Inventory_Part_Planning_API.Get_Order_Requisition_Db(
42.81 + parent_supply_.contract,
42.82 + parent_supply_.part_no);
42.83 + --
42.84 + part_type_code_ := Inventory_Part_API.Get_type_code_Db(parent_supply_.contract,
42.85 + parent_supply_.part_no);
42.86 +
42.87 + dbms_output.put_line('-----> parent supply part no = ' ||parent_supply_.part_no );
42.88 + dbms_output.put_line('---> before ctp planned = .... '|| evaluation_rec_.ctp_planned);
42.89 + --
42.90 + IF (part_type_code_ IN ( '1','2')) THEN
42.91 + comp_bom_type_db_ := 'M';
42.92 + ELSIF (part_type_code_ IN ('3', '4')) THEN
42.93 + comp_bom_type_db_ := 'P';
42.94 + END IF;
42.95 + comp_bom_type_ := Shop_Ord_Code_API.Decode(comp_bom_type_db_);
42.96 + --
42.97 +-- begin CTP
42.98 + dbms_output.put_line('---> before ctp part struct level = .... '|| parent_supply_.interim_structure_level);
42.99 +
42.100 +-- If ctp planned, check multi-site and if true, create interim demand.
42.101 + multi_site_part_exist_ := FALSE;
42.102 + IF evaluation_rec_.ctp_planned = 1 AND
42.103 + --parent_supply_.interim_structure_level > 0 AND
42.104 + part_type_code_ IN ('3','4') THEN
42.105 +
42.106 + -- check for multi-site supplies...
42.107 + dbms_output.put_line('---> before check_source installed = .... ');
42.108 + check_source_ := 'FALSE';
42.109 + IF Dictionary_SYS.Logical_Unit_Is_Installed('SupplySourcePartManager') THEN
42.110 + stmt_ := 'BEGIN :check_source := Supply_Source_Part_Manager_API.Is_Part_Internally_Sourced(:contract, :part_no); END;';
42.111 + -- ifs_assert_safe pemase 20051221
42.112 + EXECUTE IMMEDIATE stmt_
42.113 + USING OUT check_source_,
42.114 + IN parent_supply_.contract,
42.115 + IN parent_supply_.part_no;
42.116 + END IF;
42.117 + dbms_output.put_line('---> check source = '|| check_source_);
42.118 +
42.119 + IF check_source_ = 'TRUE' THEN
42.120 + multi_site_part_exist_ := TRUE;
42.121 +
42.122 + Interim_Ctp_Manager_API.Create_Child_Interim_Demand(evaluation_rec_.interim_header_id,
42.123 + parent_supply_.interim_order_no,
42.124 + parent_supply_.part_no,
42.125 + parent_supply_.configuration_id,
42.126 + parent_supply_.supply_date,
42.127 + parent_supply_.supply_qty,
42.128 + evaluation_rec_.interim_demand_usage_type_db,
42.129 + evaluation_rec_.identity1,
42.130 + evaluation_rec_.identity2,
42.131 + evaluation_rec_.identity3,
42.132 + evaluation_rec_.identity4,
42.133 + NULL, -- lot_batch_no_
42.134 + NULL, -- serial_begin
42.135 + NULL, -- serial_end
42.136 + 'COMPANY OWNED', -- part_ownership
42.137 + NULL, -- owning_customer_no_
42.138 + parent_supply_.interim_structure_level,
42.139 + evaluation_rec_.ctp_level
42.140 + );
42.141 +
42.142 + END IF; -- check_source = TRUE
42.143 +
42.144 + END IF; -- IF evaluation_rec_.ctp_planned = 1 AND parent_supply_.interim_structure_level > 0 THEN
42.145 +
42.146 +-- No further evaluation if multisite part.
42.147 + IF NOT multi_site_part_exist_ THEN
42.148 + dbms_output.put_line('---> not multi site part = ');
42.149 +
42.150 +-- IF-ELSIF #1: If configured/manufactured or DOP requistion/manufactured,
42.151 +-- get buildable manuf structure revision.
42.152 + IF ((configurable_ = 'CONFIGURED') AND (part_type_code_ = '1')) OR
42.153 + ((dop_part_ = 'D') AND (part_type_code_ = '1')) THEN
42.154 + IF (evaluation_rec_.alternate_status = 'Buildable') THEN
42.155 + comp_eng_chg_level_ := NULL;
42.156 + comp_struct_alternative_no_ := NULL;
42.157 +
42.158 + IF Manuf_Part_Attribute_API.Get_Structure_Effectivity(parent_supply_.contract, parent_supply_.part_no)
42.159 + = Effectivity_Control_API.Decode('SERIAL') THEN
42.160 +
42.161 + Manuf_Structure_Util_API.Get_Buildable_Date_Alt (comp_eng_chg_level_,
42.162 + comp_struct_alternative_no_,
42.163 + parent_supply_.contract,
42.164 + parent_supply_.part_no,
42.165 + comp_bom_type_,
42.166 + parent_supply_.start_date );
42.167 +
42.168 +
42.169 + ELSE
42.170 + Manuf_Structure_Int_API.Get_Buildable_Alternative (comp_eng_chg_level_,
42.171 + comp_struct_alternative_no_,
42.172 + parent_supply_.contract,
42.173 + parent_supply_.part_no,
42.174 + comp_bom_type_,
42.175 + parent_supply_.start_date,
42.176 + evaluation_rec_.serial_begin,
42.177 + evaluation_rec_.serial_end );
42.178 + END IF;
42.179 +
42.180 + END IF;
42.181 + evaluation_rec_.configuration_id := parent_supply_.configuration_id;
42.182 + config_spec_rec_ := NULL;
42.183 + config_spec_rec_.spec_row_count := 0;
42.184 +
42.185 +-- Retrieve configured part routing if manufactured part.
42.186 + IF (comp_bom_type_db_ = 'M') THEN
42.187 + Config_Evaluation_API.Determine_Routing (routing_alternative_no_,
42.188 + parent_supply_.routing_revision,
42.189 + operation_rec_,
42.190 + oper_work_guide_rec_,
42.191 + oper_tool_rec_,
42.192 + config_spec_rec_,
42.193 + complete_eval_log_rec_,
42.194 + eval_log_rec_,
42.195 + parent_supply_.contract,
42.196 + parent_supply_.part_no,
42.197 + parent_supply_.start_date,
42.198 + parent_supply_.order_code,
42.199 + evaluation_rec_.alternate_status,
42.200 + evaluation_rec_.configuration_id );
42.201 + IF (NVL(operation_rec_.operation_row_count,0) > 0) THEN
42.202 + IF (routing_alternative_no_ IS NOT NULL) THEN
42.203 +
42.204 + FOR ops IN 1..operation_rec_.operation_row_count LOOP
42.205 + dbms_output.Put_Line('>>>>>> ' ||operation_rec_.operation_no_tab(ops) || operation_rec_.mach_run_factor_tab(ops));
42.206 + END LOOP;
42.207 + -- Note; Set Routing_alternative on InterimOrder After DetermineRouting
42.208 + Interim_Order_API.Set_Rout_Rev_Alternative__(evaluation_rec_.interim_header_id,
42.209 + parent_supply_.interim_order_no,
42.210 + parent_supply_.routing_revision,
42.211 + routing_alternative_no_ );
42.212 + --
42.213 + IF (NOT Routing_Int_API.Is_Routing_Buildable(parent_supply_.contract,
42.214 + parent_supply_.part_no,
42.215 + parent_supply_.routing_revision,
42.216 + comp_bom_type_,
42.217 + routing_alternative_no_)) THEN
42.218 + Set_Rout_Rev_Alt_Warning___ (complete_eval_log_rec_,
42.219 + parent_supply_.contract,
42.220 + parent_supply_.part_no,
42.221 + parent_supply_.routing_revision,
42.222 + routing_alternative_no_,
42.223 + comp_bom_type_db_);
42.224 + END IF;
42.225 + --
42.226 + END IF;
42.227 + END IF;
42.228 + -- Note; Create Operations that is evaluated
42.229 + Create_Interim_Routing___ (operation_rec_,
42.230 + oper_work_guide_rec_,
42.231 + oper_tool_rec_,
42.232 + evaluation_rec_.interim_header_id,
42.233 + parent_supply_.interim_order_no);
42.234 +
42.235 + END IF; -- of IF (comp_bom_type_db_ = 'M') THEN
42.236 + -- Correct the top order start date before determine the structure
42.237 + IF parent_supply_.interim_order_no ='1' THEN
42.238 + Interim_Order_API.Set_Interim_Order_Dates__ (evaluation_rec_.interim_header_id,
42.239 + parent_supply_.interim_order_no,
42.240 + parent_supply_.supply_date);
42.241 + parent_start_date_ := interim_order_api.get_start_date( evaluation_rec_.interim_header_id, parent_supply_.interim_order_no);
42.242 + ELSE
42.243 + parent_start_date_ := parent_supply_.start_date;
42.244 + END IF;
42.245 +
42.246 +-- Retrieve the components for configured part.
42.247 + Config_Evaluation_API.Determine_Structure (structure_alternative_no_,
42.248 + parent_supply_.eng_chg_level,
42.249 + component_rec_,
42.250 + comp_work_guide_rec_,
42.251 + config_spec_rec_,
42.252 + complete_eval_log_rec_,
42.253 + eval_log_rec_,
42.254 + evaluation_rec_.contract,
42.255 + parent_supply_.part_no,
42.256 + parent_start_date_,
42.257 + parent_supply_.supply_qty,
42.258 + parent_supply_.order_code,
42.259 + evaluation_rec_.alternate_status,
42.260 + evaluation_rec_.configuration_id );
42.261 + --
42.262 + -- Note; Set Structure_alternative on InterimOrder After DetermineStructure
42.263 + IF (structure_alternative_no_ IS NOT NULL) THEN
42.264 + Interim_Order_API.Set_Struct_Alternative_No__(evaluation_rec_.interim_header_id,
42.265 + parent_supply_.interim_order_no,
42.266 + structure_alternative_no_ );
42.267 + END IF;
42.268 +
42.269 +-- IF-ELSIF #1: Else if not configured part, get routing and manuf structure.
42.270 + ELSIF (Part_Catalog_API.Get_Configurable_Db(evaluation_rec_.part_no) = 'NOT CONFIGURED') THEN
42.271 + -- Note; If interim demand head part is not configured then do normal explosion
42.272 + -- Note; otherwise only explode Configured and manufactured Dop parts.
42.273 + evaluation_rec_.configuration_id := NULL;
42.274 + config_spec_rec_ := NULL;
42.275 + config_spec_rec_.spec_row_count := 0;
42.276 +
42.277 +-- Get routing revision and alternate for non-configured manufactured part.
42.278 + comp_routing_revision_ := NULL;
42.279 + comp_rout_alternative_no_ := NULL;
42.280 + IF (comp_bom_type_db_ = 'M') THEN
42.281 + IF (evaluation_rec_.alternate_status = 'Buildable') THEN
42.282 + Routing_Int_API.Get_Buildable_Alternative( comp_routing_revision_,
42.283 + comp_rout_alternative_no_,
42.284 + parent_supply_.contract,
42.285 + parent_supply_.part_no,
42.286 + comp_bom_type_,
42.287 + parent_supply_.start_date,
42.288 + evaluation_rec_.serial_begin,
42.289 + evaluation_rec_.serial_end );
42.290 +
42.291 + IF comp_routing_revision_ IS NULL THEN
42.292 + Error_Sys.Record_General(lu_name_, 'NOBUILDALTFOUND: No Buildable routing revision/alternative exists for part :P1 site :P2 on the date :P3.'
42.293 + ,parent_supply_.part_no,parent_supply_.contract,parent_supply_.start_date);
42.294 + END IF ;
42.295 + ELSE
42.296 +
42.297 + Routing_Int_API.Get_Any_Revision_Alternative( comp_routing_revision_,
42.298 + comp_rout_alternative_no_,
42.299 + comp_rout_alt_state_,
42.300 + parent_supply_.contract,
42.301 + parent_supply_.part_no,
42.302 + evaluation_rec_.mfg_order_code,
42.303 + parent_supply_.start_date,
42.304 + evaluation_rec_.serial_begin,
42.305 + evaluation_rec_.serial_end );
42.306 +
42.307 + IF comp_routing_revision_ IS NULL THEN
42.308 + Error_Sys.Record_General(lu_name_, 'NOREVALTFOUND: No Tentative/Plannable/Buildable structure revision/alternative exists for part :P1 site :P2 on the date :P3.'
42.309 + ,parent_supply_.part_no,parent_supply_.contract,parent_supply_.start_date);
42.310 + END IF ;
42.311 + END IF;
42.312 +
42.313 + Manuf_Structure_Int_API.Get_Buildable_Alternative(comp_eng_chg_level_,
42.314 + comp_struct_alternative_no_,
42.315 + parent_supply_.contract,
42.316 + parent_supply_.part_no,
42.317 + comp_bom_type_,
42.318 + parent_supply_.start_date,
42.319 + evaluation_rec_.serial_begin,
42.320 + evaluation_rec_.serial_end );
42.321 + IF comp_struct_alternative_no_ IS NULL THEN
42.322 + Error_Sys.Record_General(lu_name_, 'NOBUILDSTRUCTFOUND: No Buildable Structure/Alternate exists for part :P1 site :P2 on the date :P3 .',
42.323 + parent_supply_.part_no, parent_supply_.contract, parent_supply_.start_date);
42.324 + END IF;
42.325 + -- Get routing revision and alternate for non-configured purchased part.
42.326 + ELSIF (comp_bom_type_db_ = 'P') THEN
42.327 + comp_routing_revision_ := Routing_Int_API.Get_Revision_By_Date (parent_supply_.contract,
42.328 + parent_supply_.part_no,
42.329 + comp_bom_type_,
42.330 + parent_supply_.start_date );
42.331 + END IF; -- of IF (comp_bom_type_db_ = 'M') THEN
42.332 +
42.333 +-- If manufactured, retrieve routing operations for non-configured part.
42.334 + IF (comp_bom_type_db_ = 'M') THEN
42.335 + Routing_Int_API.Determine_Mfgstd_Routing (operation_rec_,
42.336 + oper_work_guide_rec_,
42.337 + oper_tool_rec_,
42.338 + parent_supply_.contract,
42.339 + parent_supply_.part_no,
42.340 + NVL(comp_routing_revision_,parent_supply_.routing_revision),
42.341 + Shop_Ord_Code_API.Decode(parent_supply_.order_code),
42.342 + NVL(comp_rout_alternative_no_,parent_supply_.routing_alternative_no));
42.343 + --
42.344 + IF (NVL(operation_rec_.operation_row_count,0) > 0) THEN
42.345 + IF (comp_rout_alternative_no_ IS NOT NULL) THEN
42.346 + -- Note; Set Routing_alternative on InterimOrder After DetermineRouting
42.347 + Interim_Order_API.Set_Rout_Rev_Alternative__(evaluation_rec_.interim_header_id,
42.348 + parent_supply_.interim_order_no,
42.349 + comp_routing_revision_,
42.350 + comp_rout_alternative_no_ );
42.351 + END IF;
42.352 + END IF;
42.353 +
42.354 + -- Note; Create Operations that is evaluated
42.355 + Create_Interim_Routing___ (operation_rec_,
42.356 + oper_work_guide_rec_,
42.357 + oper_tool_rec_,
42.358 + evaluation_rec_.interim_header_id,
42.359 + parent_supply_.interim_order_no);
42.360 + END IF;
42.361 +
42.362 +-- Retrieve components for non-configured part.
42.363 + Manuf_Structure_Int_API.Determine_Mfgstd_Structure (component_rec_,
42.364 + comp_work_guide_rec_,
42.365 + parent_supply_.contract,
42.366 + parent_supply_.part_no,
42.367 + parent_supply_.eng_chg_level,
42.368 + Shop_Ord_Code_API.Decode(parent_supply_.order_code),
42.369 + parent_supply_.structure_alternative_no,
42.370 + parent_supply_.start_date,
42.371 + parent_supply_.supply_qty);
42.372 + END IF; -- of IF ((configurable_ = 'CONFIGURED') AND (part_type_code_ = '1')) OR...
42.373 +-- End of IF-ELSIF #1
42.374 +
42.375 + calendar_id_ := Site_Api.Get_Manuf_Calendar_Id(evaluation_rec_.contract);
42.376 +
42.377 +-- If top-level order, set dates from there, else calculate from top-level order.
42.378 + IF parent_supply_.interim_order_no ='1' THEN
42.379 + Interim_Order_API.Set_Interim_Order_Dates__ ( evaluation_rec_.interim_header_id,
42.380 + parent_supply_.interim_order_no, parent_supply_.supply_date);
42.381 + parent_start_date_ := Interim_Order_API.Get_Start_Date( evaluation_rec_.interim_header_id, parent_supply_.interim_order_no);
42.382 + ELSE
42.383 + parent_order_no_ := interim_order_api.get_parent_interim_order_no( evaluation_rec_.interim_header_id, parent_supply_.interim_order_no);
42.384 + parent_supply_date_ := interim_order_api.get_supply_date( evaluation_rec_.interim_header_id, parent_order_no_);
42.385 + parent_start_date_ := interim_order_api.get_start_date( evaluation_rec_.interim_header_id, parent_order_no_);
42.386 +
42.387 + FOR component_line_item_rec_ IN get_line_item_no(evaluation_rec_.interim_header_id, parent_order_no_) LOOP
42.388 + IF (component_line_item_rec_.supply_interim_order_no = parent_supply_.interim_order_no) THEN
42.389 + line_item_no_ := component_line_item_rec_.line_item_no;
42.390 + leadtime_offset_ := component_line_item_rec_.leadtime_offset;
42.391 + END IF;
42.392 + END LOOP;
42.393 + IF (leadtime_offset_ > 0) THEN
42.394 + interim_required_date_ := work_time_calendar_api.get_next_work_day(calendar_id_, calculate_start_date__(evaluation_rec_.contract,parent_supply_date_ , leadtime_offset_));
42.395 + interim_required_date_ := Greatest(interim_required_date_, parent_start_date_);
42.396 + ELSE
42.397 + interim_required_date_ := parent_start_date_;
42.398 + END IF;
42.399 + Interim_Order_API.Set_Interim_Order_Dates__(evaluation_rec_.interim_header_id,
42.400 + parent_supply_.interim_order_no,
42.401 + Work_time_Calendar_API.Get_Previous_Work_Day(calendar_id_,interim_required_date_));
42.402 + END IF;
42.403 +
42.404 +-- FOR-LOOP #2: Loop thru retrieved component records.
42.405 + FOR i IN 1..NVL(component_rec_.comp_row_count,0) LOOP
42.406 + evaluation_rec_.interim_supply_date := parent_supply_.supply_date;
42.407 + part_type_code_ := Inventory_Part_API.Get_type_code_Db(component_rec_.contract_tab(i),
42.408 + component_rec_.component_part_tab(i));
42.409 +
42.410 + calendar_id_ := Site_Api.Get_Manuf_Calendar_Id(component_rec_.contract_tab(i));
42.411 +
42.412 + configurable_ := Part_Catalog_API.Get_Configurable_Db(component_rec_.component_part_tab(i));
42.413 +
42.414 + dop_part_ := Inventory_Part_Planning_API.Get_Order_Requisition_Db(
42.415 + component_rec_.contract_tab(i),
42.416 + component_rec_.component_part_tab(i));
42.417 +
42.418 + comp_routing_revision_ := NULL;
42.419 + comp_rout_alternative_no_ := NULL;
42.420 +
42.421 +-- If by-product component line, then create warning and ignore.
42.422 + IF (component_rec_.qty_per_assembly_tab(i) < 0) THEN
42.423 + e_row_ := NVL(complete_eval_log_rec_.warning.warning_row_count,0) + 1;
42.424 + complete_eval_log_rec_.warning.warning_row_count := e_row_;
42.425 +
42.426 + complete_eval_log_rec_.warning.explosion_row_type_db(e_row_) := 'PartRevision';
42.427 + complete_eval_log_rec_.warning.contract(e_row_) := component_rec_.contract_tab(i);
42.428 + complete_eval_log_rec_.warning.part_no(e_row_) := parent_part_;
42.429 + complete_eval_log_rec_.warning.eng_chg_level(e_row_) := NULL;
42.430 + complete_eval_log_rec_.warning.routing_revision(e_row_) := NULL;
42.431 + complete_eval_log_rec_.warning.bom_type_db(e_row_) := NULL;
42.432 + complete_eval_log_rec_.warning.routing_alternative_no(e_row_) := NULL;
42.433 + complete_eval_log_rec_.warning.operation_id(e_row_) := NULL;
42.434 + complete_eval_log_rec_.warning.routing_guideline_no(e_row_) := NULL;
42.435 + complete_eval_log_rec_.warning.tool_sequence(e_row_) := NULL;
42.436 + complete_eval_log_rec_.warning.structure_alternative_no(e_row_) := NULL;
42.437 + complete_eval_log_rec_.warning.line_item_no(e_row_) := NULL;
42.438 + complete_eval_log_rec_.warning.structure_guideline_no(e_row_) := NULL;
42.439 + complete_eval_log_rec_.warning.action_id(e_row_) := NULL;
42.440 + complete_eval_log_rec_.warning.action_line_no(e_row_) := NULL;
42.441 + complete_eval_log_rec_.warning.condition_id(e_row_) := NULL;
42.442 + complete_eval_log_rec_.warning.condition_line_no(e_row_) := NULL;
42.443 + complete_eval_log_rec_.warning.formula_id(e_row_) := NULL;
42.444 +
42.445 + complete_eval_log_rec_.warning.warning_message(e_row_) :=
42.446 + Language_SYS.Translate_Constant(lu_name_, 'IOMNOBYPRODUCTS: Component part :P1 as a by-product is not handled by DOP. Hence ignored.',
42.447 + Fnd_Session_API.Get_Language, component_rec_.component_part_tab(i));
42.448 + END IF; -- of IF (component_rec_.qty_per_assembly_tab(i) < 0) THEN...
42.449 +
42.450 + phatom_part_exist_ := FALSE;
42.451 + parent_interim_order_no_ := parent_supply_.interim_order_no;
42.452 + WHILE (parent_interim_order_no_ > 0) and (NOT phatom_part_exist_ ) LOOP
42.453 + parent_part_mrp_code_ := Inventory_Part_Planning_API.Get_Mrp_Order_Code(evaluation_rec_.contract,Interim_Order_Api.Get_Part_No(parent_supply_.interim_header_id,parent_interim_order_no_));
42.454 + IF parent_part_mrp_code_ = 'P' then
42.455 + phatom_part_exist_ := TRUE;
42.456 + END IF;
42.457 + parent_interim_order_no_ := Interim_Order_Api.Get_Parent_Interim_Order_No(parent_supply_.interim_header_id,parent_interim_order_no_);
42.458 + END LOOP;
42.459 +
42.460 +-- If expense component line, then create warning and ignore.
42.461 + IF (part_type_code_ = '6') THEN
42.462 + e_row_ := NVL(complete_eval_log_rec_.warning.warning_row_count,0) + 1;
42.463 + complete_eval_log_rec_.warning.warning_row_count := e_row_;
42.464 +
42.465 + complete_eval_log_rec_.warning.explosion_row_type_db(e_row_) := 'ExpensePart';
42.466 + complete_eval_log_rec_.warning.contract(e_row_) := component_rec_.contract_tab(i);
42.467 + complete_eval_log_rec_.warning.part_no(e_row_) := component_rec_.component_part_tab(i);
42.468 + complete_eval_log_rec_.warning.eng_chg_level(e_row_) := NULL;
42.469 + complete_eval_log_rec_.warning.routing_revision(e_row_) := NULL;
42.470 + complete_eval_log_rec_.warning.bom_type_db(e_row_) := NULL;
42.471 + complete_eval_log_rec_.warning.routing_alternative_no(e_row_) := NULL;
42.472 + complete_eval_log_rec_.warning.operation_id(e_row_) := NULL;
42.473 + complete_eval_log_rec_.warning.routing_guideline_no(e_row_) := NULL;
42.474 + complete_eval_log_rec_.warning.tool_sequence(e_row_) := NULL;
42.475 + complete_eval_log_rec_.warning.structure_alternative_no(e_row_) := NULL;
42.476 + complete_eval_log_rec_.warning.line_item_no(e_row_) := NULL;
42.477 + complete_eval_log_rec_.warning.structure_guideline_no(e_row_) := NULL;
42.478 + complete_eval_log_rec_.warning.action_id(e_row_) := NULL;
42.479 + complete_eval_log_rec_.warning.action_line_no(e_row_) := NULL;
42.480 + complete_eval_log_rec_.warning.condition_id(e_row_) := NULL;
42.481 + complete_eval_log_rec_.warning.condition_line_no(e_row_) := NULL;
42.482 + complete_eval_log_rec_.warning.formula_id(e_row_) := NULL;
42.483 +
42.484 + complete_eval_log_rec_.warning.warning_message(e_row_) :=
42.485 + Language_SYS.Translate_Constant(lu_name_, 'IOMINVPARTTYPE: Component part :P1 with part type Expense is not handled by DOP. Hence ignored.',
42.486 + Fnd_Session_API.Get_Language, component_rec_.component_part_tab(i));
42.487 +
42.488 +-- Else if not phantom parent part, process.
42.489 + ELSIF (parent_interim_order_no_ = 0) THEN
42.490 + IF (part_type_code_ IN ( '1','2')) THEN
42.491 + comp_bom_type_db_ := 'M';
42.492 + ELSIF (part_type_code_ IN ('3', '4')) THEN
42.493 + comp_bom_type_db_ := 'P';
42.494 + END IF;
42.495 + comp_bom_type_ := Shop_Ord_Code_API.Decode(comp_bom_type_db_);
42.496 +
42.497 +-- IF-ELSE #4 If phantom/blow-thru, process.
42.498 + IF (component_rec_.mrp_order_code_tab(i) IN ('P','K') AND
42.499 + (part_type_code_ = '1')) THEN
42.500 + operation_no_:=component_rec_.comp_operation_no_tab(i);
42.501 + get_comp_flag_ := TRUE;
42.502 + IF component_rec_.mrp_order_code_tab(i) = 'P' THEN
42.503 + qty_avail_ :=
42.504 + inventory_part_in_stock_api.Get_Inventory_Qty_Onhand( component_rec_.contract_tab(i), component_rec_.component_part_tab(i), NULL) -
42.505 + inventory_part_in_stock_api.Get_Inventory_Qty_Reserved( component_rec_.contract_tab(i),component_rec_.component_part_tab(i), NULL)-
42.506 + inventory_part_in_stock_api.Get_Inventory_Qty_Rejected( component_rec_.contract_tab(i), component_rec_.component_part_tab(i),NULL, NULL);
42.507 +
42.508 + primary_comp_qty_ := (((( component_rec_.qty_required_tab(i))
42.509 + / (1 - ( component_rec_.shrinkage_factor_tab(i) / 100)))
42.510 + + component_rec_.component_scrap_tab(i)));
42.511 + IF (qty_avail_ >= primary_comp_qty_ ) OR (component_rec_.consumption_item_db_tab(i) = 'Not Consumed') THEN
42.512 + get_comp_flag_ := FALSE;
42.513 + ELSE
42.514 + get_comp_flag_ := TRUE;
42.515 + END IF;
42.516 + END IF;
42.517 +
42.518 + IF get_comp_flag_ = TRUE THEN
42.519 + Process_Evaluate_Phantom___ (evaluation_rec_,
42.520 + parent_supply_rec_,
42.521 + config_spec_rec_,
42.522 + eval_log_rec_,
42.523 + complete_eval_log_rec_,
42.524 + component_rec_.contract_tab(i),
42.525 + component_rec_.component_part_tab(i),
42.526 + component_rec_.date_required_tab(i),
42.527 + component_rec_.qty_required_tab(i),
42.528 + comp_bom_type_db_,
42.529 + evaluation_rec_.alternate_status,
42.530 + component_rec_.configuration_id_tab(i),
42.531 + operation_no_);
42.532 + ELSIF get_comp_flag_ = FALSE THEN
42.533 + interim_required_date_ := Work_time_Calendar_API.Get_Previous_Work_Day(calendar_id_,interim_order_api.get_start_date(evaluation_rec_.interim_header_id,parent_supply_.interim_order_no));
42.534 + interim_start_date_ := Least( interim_required_date_,
42.535 + component_rec_.date_required_tab(i) );
42.536 + supply_interim_order_no_ := NULL;
42.537 + Interim_Order_API.New(supply_interim_order_no_,
42.538 + evaluation_rec_.interim_header_id,
42.539 + parent_supply_.interim_order_no,
42.540 + evaluation_rec_.next_level,
42.541 + component_rec_.contract_tab(i),
42.542 + component_rec_.component_part_tab(i),
42.543 + component_rec_.qty_required_tab(i),
42.544 + interim_required_date_,
42.545 + interim_start_date_,
42.546 + comp_eng_chg_level_,
42.547 + comp_bom_type_db_,
42.548 + comp_struct_alternative_no_,
42.549 + comp_routing_revision_,
42.550 + comp_rout_alternative_no_,
42.551 + component_rec_.promise_planned_db_tab(i),
42.552 + component_rec_.configuration_id_tab(i),
42.553 + NULL,
42.554 + evaluation_rec_.part_ownership,
42.555 + evaluation_rec_.owning_customer_no );
42.556 + Trace_SYS.Message('Supply created for : '||component_rec_.component_part_tab(i));
42.557 + evaluation_rec_.line_item_no := NVL(evaluation_rec_.line_item_no,0) + 1;
42.558 + -- Create InterimOrderComponent
42.559 + Interim_Order_Component_API.New(evaluation_rec_.line_item_no,
42.560 + evaluation_rec_.interim_header_id,
42.561 + parent_supply_.interim_order_no,
42.562 + evaluation_rec_.line_item_no,
42.563 + evaluation_rec_.contract,
42.564 + component_rec_.component_part_tab(i),
42.565 + supply_interim_order_no_,
42.566 + component_rec_.qty_required_tab(i),
42.567 + interim_required_date_,
42.568 + component_rec_.qty_per_assembly_tab(i),
42.569 + component_rec_.component_scrap_tab(i),
42.570 + component_rec_.shrinkage_factor_tab(i),
42.571 + component_rec_.comp_operation_no_tab(i),
42.572 + component_rec_.leadtime_offset_tab(i),
42.573 + component_rec_.consumption_item_db_tab(i),
42.574 + evaluation_rec_.line_item_no,
42.575 + component_rec_.issue_to_loc_tab(i),
42.576 + component_rec_.draw_pos_no_tab(i),
42.577 + component_rec_.note_text_tab(i),
42.578 + component_rec_.configuration_id_tab(i) );
42.579 + Trace_SYS.Message('Component created for : '||component_rec_.component_part_tab(i));
42.580 + END IF; -- of IF get_comp_flag_ = TRUE THEN
42.581 +
42.582 + IF (evaluation_rec_.single_level_explosion = 0) THEN
42.583 + evaluation_rec_.orders_exist_to_evaluate := TRUE;
42.584 + ELSE
42.585 + evaluation_rec_.orders_exist_to_evaluate := FALSE;
42.586 + END IF;
42.587 +
42.588 +-- IF-ELSE #4 Else process non-phantom/blow-thru part.
42.589 + ELSE
42.590 + -- If ctp planned record check for orders to evaluate.
42.591 + IF evaluation_rec_.ctp_planned = 1 THEN
42.592 + IF configurable_ = 'CONFIGURED' THEN
42.593 + IF part_type_code_ IN ('3','4') THEN
42.594 + IF Dictionary_SYS.Logical_Unit_Is_Installed('SupplySourcePartManager') THEN
42.595 + stmt_ := 'BEGIN
42.596 + :check_source := Supply_Source_Part_Manager_API.Is_Part_Internally_Sourced(:contract, :part_no);
42.597 + END;';
42.598 + -- ifs_assert_safe pemase 20051221
42.599 + EXECUTE IMMEDIATE stmt_
42.600 + USING OUT check_source_,
42.601 + IN evaluation_rec_.contract,
42.602 + IN component_rec_.component_part_tab(i);
42.603 + END IF;
42.604 +
42.605 + IF check_source_ = 'TRUE' THEN
42.606 + evaluation_rec_.orders_exist_to_evaluate := TRUE;
42.607 + ELSE
42.608 + evaluation_rec_.orders_exist_to_evaluate := FALSE;
42.609 + END IF;
42.610 + ELSE
42.611 + IF (evaluation_rec_.single_level_explosion = 0) THEN
42.612 + evaluation_rec_.orders_exist_to_evaluate := TRUE;
42.613 + ELSE
42.614 + evaluation_rec_.orders_exist_to_evaluate := FALSE;
42.615 + END IF;
42.616 + END IF;
42.617 + ELSE
42.618 + IF (evaluation_rec_.single_level_explosion = 0) THEN
42.619 + evaluation_rec_.orders_exist_to_evaluate := TRUE;
42.620 + ELSE
42.621 + evaluation_rec_.orders_exist_to_evaluate := FALSE;
42.622 + END IF;
42.623 + END IF;
42.624 + -- Not ctp planned, check for orders to evaluate.
42.625 + ELSE
42.626 + IF ((configurable_ = 'CONFIGURED') AND (part_type_code_ = '1')) OR
42.627 + ((dop_part_ = 'D') AND (part_type_code_ = '1')) THEN
42.628 +
42.629 + IF (evaluation_rec_.single_level_explosion = 0) THEN
42.630 + evaluation_rec_.orders_exist_to_evaluate := TRUE;
42.631 + ELSE
42.632 + evaluation_rec_.orders_exist_to_evaluate := FALSE;
42.633 + END IF;
42.634 +
42.635 + END IF;
42.636 + END IF; -- of IF evaluation_rec_.ctp_planned = 1 THEN..ELSE..
42.637 +
42.638 + interim_required_date_ := Work_time_Calendar_API.Get_Previous_Work_Day(calendar_id_,parent_start_date_);
42.639 +
42.640 + interim_start_date_ := Least( interim_required_date_,
42.641 + component_rec_.date_required_tab(i) );
42.642 +
42.643 + supply_interim_order_no_ := NULL;
42.644 +
42.645 + -- Note; Create InterimOrder
42.646 + -- Note; Get revision and alternate both for routing and structure
42.647 + comp_eng_chg_level_ := NULL;
42.648 + comp_struct_alternative_no_ := NULL;
42.649 +
42.650 + IF (comp_bom_type_db_ = 'M') THEN
42.651 + -- Note; For Component part even tentative alternative is allowed as a leaf.
42.652 + -- Note; Component as a leaf will always be 'Tentative'
42.653 +
42.654 + IF Manuf_Part_Attribute_API.Get_Structure_Effectivity(component_rec_.contract_tab(i), component_rec_.component_part_tab(i))
42.655 + = Effectivity_Control_API.Decode('SERIAL') THEN
42.656 + Manuf_Structure_Util_API.Get_Any_Date_Revision_Alt(comp_eng_chg_level_,
42.657 + comp_struct_alternative_no_,
42.658 + comp_alt_state_,
42.659 + component_rec_.contract_tab(i),
42.660 + component_rec_.component_part_tab(i),
42.661 + comp_bom_type_,
42.662 + interim_required_date_ );
42.663 +
42.664 + e_row_ := NVL(complete_eval_log_rec_.warning.warning_row_count,0) + 1;
42.665 + complete_eval_log_rec_.warning.warning_row_count := e_row_;
42.666 +
42.667 + complete_eval_log_rec_.warning.explosion_row_type_db(e_row_) := 'PartRevision';
42.668 + complete_eval_log_rec_.warning.contract(e_row_) := component_rec_.contract_tab(i);
42.669 + complete_eval_log_rec_.warning.part_no(e_row_) := component_rec_.component_part_tab(i);
42.670 + complete_eval_log_rec_.warning.eng_chg_level(e_row_) := NULL;
42.671 + complete_eval_log_rec_.warning.routing_revision(e_row_) := NULL;
42.672 + complete_eval_log_rec_.warning.bom_type_db(e_row_) := NULL;
42.673 + complete_eval_log_rec_.warning.routing_alternative_no(e_row_) := NULL;
42.674 + complete_eval_log_rec_.warning.operation_id(e_row_) := NULL;
42.675 + complete_eval_log_rec_.warning.routing_guideline_no(e_row_) := NULL;
42.676 + complete_eval_log_rec_.warning.tool_sequence(e_row_) := NULL;
42.677 + complete_eval_log_rec_.warning.structure_alternative_no(e_row_) := NULL;
42.678 + complete_eval_log_rec_.warning.line_item_no(e_row_) := NULL;
42.679 + complete_eval_log_rec_.warning.structure_guideline_no(e_row_) := NULL;
42.680 + complete_eval_log_rec_.warning.action_id(e_row_) := NULL;
42.681 + complete_eval_log_rec_.warning.action_line_no(e_row_) := NULL;
42.682 + complete_eval_log_rec_.warning.condition_id(e_row_) := NULL;
42.683 + complete_eval_log_rec_.warning.condition_line_no(e_row_) := NULL;
42.684 + complete_eval_log_rec_.warning.formula_id(e_row_) := NULL;
42.685 +
42.686 + complete_eval_log_rec_.warning.warning_message(e_row_) :=
42.687 + Language_SYS.Translate_Constant(lu_name_, 'STRUCTSERIALEFF: Component part :P1 uses serial structure effectivity which is not handled. Date effectivity is used instead.',
42.688 + Fnd_Session_API.Get_Language,
42.689 + component_rec_.component_part_tab(i));
42.690 +
42.691 +
42.692 + ELSE
42.693 + Manuf_Structure_Int_API.Get_Any_Revision_Alternative(comp_eng_chg_level_,
42.694 + comp_struct_alternative_no_,
42.695 + comp_alt_state_,
42.696 + component_rec_.contract_tab(i),
42.697 + component_rec_.component_part_tab(i),
42.698 + comp_bom_type_,
42.699 + interim_required_date_,
42.700 + evaluation_rec_.serial_begin,
42.701 + evaluation_rec_.serial_end );
42.702 +
42.703 + IF (evaluation_rec_.alternate_status = 'Buildable') THEN
42.704 + Routing_Int_API.Get_Buildable_Alternative( comp_routing_revision_,
42.705 + comp_rout_alternative_no_,
42.706 + component_rec_.contract_tab(i),
42.707 + component_rec_.component_part_tab(i),
42.708 + comp_bom_type_,
42.709 + interim_required_date_,
42.710 + evaluation_rec_.serial_begin,
42.711 + evaluation_rec_.serial_end );
42.712 +
42.713 + IF comp_routing_revision_ IS NULL THEN
42.714 + Error_Sys.Record_General(lu_name_, 'NOBUILDALTFOUND: No Buildable routing revision/alternative exists for part :P1 site :P2 on the date :P3.'
42.715 + ,component_rec_.component_part_tab(i),component_rec_.contract_tab(i),interim_required_date_);
42.716 + END IF ;
42.717 +
42.718 + ELSE
42.719 + Routing_Int_API.Get_Any_Revision_Alternative( comp_routing_revision_,
42.720 + comp_rout_alternative_no_,
42.721 + comp_rout_alt_state_,
42.722 + component_rec_.contract_tab(i),
42.723 + component_rec_.component_part_tab(i),
42.724 + comp_bom_type_,
42.725 + interim_required_date_,
42.726 + evaluation_rec_.serial_begin,
42.727 + evaluation_rec_.serial_end );
42.728 +
42.729 + IF comp_routing_revision_ IS NULL THEN
42.730 + Error_Sys.Record_General(lu_name_, 'NOREVALTFOUND: No Tentative/Plannable/Buildable structure revision/alternative exists for part :P1 site :P2 on the date :P3.'
42.731 + ,component_rec_.component_part_tab(i),component_rec_.contract_tab(i),interim_required_date_);
42.732 + END IF ;
42.733 +
42.734 + END IF;
42.735 + END IF; -- = Effectivity_Control_API.Decode('SERIAL') THEN
42.736 +
42.737 + ELSIF (comp_bom_type_db_ = 'P') THEN
42.738 +
42.739 + comp_eng_chg_level_ := Part_Revision_API.Get_Revision_By_Date (component_rec_.contract_tab(i),
42.740 + component_rec_.component_part_tab(i),
42.741 + interim_required_date_);
42.742 + -- Bug 77319, start
42.743 + Calculate_Purch_Dates___ (interim_required_date_,
42.744 + interim_start_date_,
42.745 + evaluation_rec_,
42.746 + component_rec_.contract_tab(i),
42.747 + component_rec_.component_part_tab(i),
42.748 + parent_supply_.interim_order_no,
42.749 + component_rec_.leadtime_offset_tab(i));
42.750 + -- Bug 77319, end
42.751 + END IF; --IF (comp_bom_type_db_ = 'M') THEN
42.752 +
42.753 + IF (comp_eng_chg_level_ IS NULL) THEN
42.754 + -- Note; Set a error message for part revision being null for component
42.755 + e_row_ := NVL(complete_eval_log_rec_.error.error_row_count,0) + 1;
42.756 + complete_eval_log_rec_.error.error_row_count := e_row_;
42.757 +
42.758 + complete_eval_log_rec_.error.explosion_row_type_db(e_row_) := 'PartRevision';
42.759 + complete_eval_log_rec_.error.contract(e_row_) := component_rec_.contract_tab(i);
42.760 + complete_eval_log_rec_.error.part_no(e_row_) := component_rec_.component_part_tab(i);
42.761 + complete_eval_log_rec_.error.eng_chg_level(e_row_) := NULL;
42.762 + complete_eval_log_rec_.error.routing_revision(e_row_) := NULL;
42.763 + complete_eval_log_rec_.error.bom_type_db(e_row_) := NULL;
42.764 + complete_eval_log_rec_.error.routing_alternative_no(e_row_) := NULL;
42.765 + complete_eval_log_rec_.error.operation_id(e_row_) := NULL;
42.766 + complete_eval_log_rec_.error.routing_guideline_no(e_row_) := NULL;
42.767 + complete_eval_log_rec_.error.tool_sequence(e_row_) := NULL;
42.768 + complete_eval_log_rec_.error.structure_alternative_no(e_row_) := NULL;
42.769 + complete_eval_log_rec_.error.line_item_no(e_row_) := NULL;
42.770 + complete_eval_log_rec_.error.structure_guideline_no(e_row_) := NULL;
42.771 + complete_eval_log_rec_.error.action_id(e_row_) := NULL;
42.772 + complete_eval_log_rec_.error.action_line_no(e_row_) := NULL;
42.773 + complete_eval_log_rec_.error.condition_id(e_row_) := NULL;
42.774 + complete_eval_log_rec_.error.condition_line_no(e_row_) := NULL;
42.775 + complete_eval_log_rec_.error.formula_id(e_row_) := NULL;
42.776 +
42.777 + complete_eval_log_rec_.error.error_message(e_row_) :=
42.778 + Language_SYS.Translate_Constant(lu_name_, 'IOMNOREV: Part revision does not exist for component part :P1 contract :P2 required date :P3',
42.779 + Fnd_Session_API.Get_Language,
42.780 + component_rec_.component_part_tab(i),
42.781 + component_rec_.contract_tab(i),
42.782 + interim_required_date_);
42.783 + END IF; -- of IF (comp_eng_chg_level_ IS NULL) THEN
42.784 + --
42.785 + --
42.786 + found_:=FALSE;
42.787 + FOR j IN 1..NVL(operation_rec_.operation_row_count,0) LOOP
42.788 + IF (component_rec_.comp_operation_no_tab(i)=operation_rec_.operation_no_tab(j)) THEN
42.789 + found_ := TRUE;
42.790 + EXIT;
42.791 + END IF;
42.792 + END LOOP;
42.793 + IF (NOT found_) THEN
42.794 + component_rec_.comp_operation_no_tab(i):=NULL;
42.795 + END IF;
42.796 +
42.797 + IF (component_rec_.comp_operation_no_tab(i) IS NOT NULL) THEN
42.798 + Validate_Oper_On_Comp___(oper_valid_,
42.799 + complete_eval_log_rec_,
42.800 + operation_rec_,
42.801 + component_rec_.contract_tab(i),
42.802 + component_rec_.component_part_tab(i),
42.803 + component_rec_.line_item_no_tab(i),
42.804 + component_rec_.comp_operation_no_tab(i),
42.805 + parent_supply_.eng_chg_level,
42.806 + parent_supply_.structure_alternative_no,
42.807 + parent_supply_.order_code,
42.808 + parent_supply_.routing_revision,
42.809 + parent_supply_.routing_alternative_no,
42.810 + parent_part_);
42.811 + END IF;
42.812 + --
42.813 + IF ( ( (component_rec_.comp_operation_no_tab(i) IS NULL) OR
42.814 + ( (component_rec_.comp_operation_no_tab(i) IS NOT NULL) AND
42.815 + (oper_valid_) ) ) AND
42.816 + ( (component_rec_.qty_per_assembly_tab(i) > 0) OR
42.817 + (component_rec_.consumption_item_db_tab(i) = 'Not Consumed') ) ) THEN
42.818 + IF component_rec_.consumption_item_db_tab(i) = 'Not Consumed' THEN
42.819 + component_rec_.qty_required_tab(i) := 0;
42.820 + END IF;
42.821 + Interim_Order_API.New(supply_interim_order_no_,
42.822 + evaluation_rec_.interim_header_id,
42.823 + parent_supply_.interim_order_no,
42.824 + evaluation_rec_.next_level,
42.825 + component_rec_.contract_tab(i),
42.826 + component_rec_.component_part_tab(i),
42.827 + component_rec_.qty_required_tab(i),
42.828 + interim_required_date_,
42.829 + interim_start_date_,
42.830 + comp_eng_chg_level_,
42.831 + comp_bom_type_db_,
42.832 + comp_struct_alternative_no_,
42.833 + comp_routing_revision_,
42.834 + comp_rout_alternative_no_,
42.835 + component_rec_.promise_planned_db_tab(i),
42.836 + component_rec_.configuration_id_tab(i),
42.837 + NULL,
42.838 + evaluation_rec_.part_ownership,
42.839 + evaluation_rec_.owning_customer_no );
42.840 +
42.841 + evaluation_rec_.line_item_no := NVL(evaluation_rec_.line_item_no,0) + 1;
42.842 +
42.843 + -- Note; Create InterimOrderComponent
42.844 + Interim_Order_Component_API.New(evaluation_rec_.line_item_no,
42.845 + evaluation_rec_.interim_header_id,
42.846 + parent_supply_.interim_order_no,
42.847 + evaluation_rec_.line_item_no,
42.848 + evaluation_rec_.contract,
42.849 + component_rec_.component_part_tab(i),
42.850 + supply_interim_order_no_,
42.851 + component_rec_.qty_required_tab(i),
42.852 + interim_required_date_,
42.853 + component_rec_.qty_per_assembly_tab(i),
42.854 + component_rec_.component_scrap_tab(i),
42.855 + component_rec_.shrinkage_factor_tab(i),
42.856 + component_rec_.comp_operation_no_tab(i),
42.857 + component_rec_.leadtime_offset_tab(i),
42.858 + component_rec_.consumption_item_db_tab(i),
42.859 + evaluation_rec_.line_item_no,
42.860 + component_rec_.issue_to_loc_tab(i),
42.861 + component_rec_.draw_pos_no_tab(i),
42.862 + component_rec_.note_text_tab(i),
42.863 + component_rec_.configuration_id_tab(i),
42.864 + NULL,
42.865 + evaluation_rec_.part_ownership,
42.866 + evaluation_rec_.owning_customer_no );
42.867 +
42.868 + -- Note; Create InterimCompWorkGuide
42.869 + FOR j IN 1..comp_work_guide_rec_.comp_work_guide_count LOOP
42.870 + IF (component_rec_.line_item_no_tab(i) = comp_work_guide_rec_.comp_line_item_no_tab(j)) THEN
42.871 + --
42.872 + Interim_Comp_Work_Guide_API.NEW(comp_work_guide_rec_.comp_guideline_no_tab(j),
42.873 + evaluation_rec_.interim_header_id,
42.874 + parent_supply_.interim_order_no,
42.875 + evaluation_rec_.line_item_no, -- component_rec_.line_item_no_tab(i),
42.876 + comp_work_guide_rec_.comp_guideline_seq_tab(j),
42.877 + comp_work_guide_rec_.comp_guideline_desc_tab(j),
42.878 + comp_work_guide_rec_.comp_guideline_text_tab(j),
42.879 + comp_work_guide_rec_.comp_guideline_type_tab(j),
42.880 + comp_work_guide_rec_.x_coordinate_tab(j),
42.881 + comp_work_guide_rec_.y_coordinate_tab(j),
42.882 + comp_work_guide_rec_.z_coordinate_tab(j),
42.883 + comp_work_guide_rec_.reference_qty_tab(j) );
42.884 + END IF;
42.885 + END LOOP; -- comp_work_guide_rec loop
42.886 + END IF; -- of IF ( ( (component_rec_.comp_operation_no_tab(i) IS NULL) OR
42.887 +
42.888 + END IF; -- of IF (component_rec_.mrp_order_code_tab(i) IN ('P','K') AND
42.889 +-- End IF-ELSE #4
42.890 +
42.891 + END IF; -- of IF (part_type_code_ = '6') THEN..ELSIF (NOT phatom_part_exist_) THEN..
42.892 +
42.893 + END LOOP;
42.894 +-- End FOR-LOOP #2: Loop thru retrieved component records.
42.895 +
42.896 + END IF; --of IF NOT multi_site_part_exist_ THEN
42.897 +
42.898 +-- Note; Initialize all records for the next interim order
42.899 + operation_rec_ := NULL;
42.900 + operation_rec_.operation_row_count := 0;
42.901 + oper_work_guide_rec_ := NULL;
42.902 + oper_work_guide_rec_.oper_work_guide_row_count := 0;
42.903 + oper_tool_rec_ := NULL;
42.904 + oper_tool_rec_.oper_tool_row_count := 0;
42.905 + component_rec_ := NULL;
42.906 + component_rec_.comp_row_count := 0;
42.907 + comp_work_guide_rec_ := NULL;
42.908 + comp_work_guide_rec_.comp_work_guide_count := 0;
42.909 + config_spec_rec_ := NULL;
42.910 + config_spec_rec_.spec_row_count := 0;
42.911 + --
42.912 + evaluation_rec_.line_item_no := 0;
42.913 + -- Bug 74483, start
42.914 + comp_eng_chg_level_ := NULL;
42.915 + comp_struct_alternative_no_ := NULL;
42.916 + -- Bug 74483, end
42.917 + END LOOP;
42.918 +-- End FOR-LOOP #1: Loop thru interim order records inserted by calling method.
42.919 +END Evaluate_Level___;
42.920 \ No newline at end of file
43.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
43.2 +++ b/PLSQL/Lexer/test/unit/data/txtser.ins Wed May 15 23:04:20 2013 +0200
43.3 @@ -0,0 +1,322 @@
43.4 +-----------------------------------------------------------------------------
43.5 +--
43.6 +-- File: txtser.ins
43.7 +--
43.8 +-- Purpose: Creates the Java Implementation of AltaVista Search. (The Source comes from Oracle).
43.9 +-- Creates Schedules for Index Synchronization AND Optimization.
43.10 +--
43.11 +-- Date Sign History
43.12 +-- ------ ---- -----------------------------------------------------------
43.13 +-- 040701 NiSilk Version 1.0.0 Created.
43.14 +-- 040713 ChCrlk Removed input values for parameter "parameters_" in method call to Batch_SYS.New_Batch_Schedule.
43.15 +-- 041203 ChCrlk Add statements to create datastore preferences and content indexes
43.16 +-- 050110 ChCrlk Modified creation of datastore preferences.
43.17 +-- 050125 Nifrse Moved the Oracle Text indexes from CALLKS to PCM and CALLC modules.
43.18 +-- 070410 NIJALK Bug 64641, Added check on scheduled tasks to avoid duplicates.
43.19 +-- 070621 ILSOLK Merged Bug Id 64641.
43.20 +-----------------------------------------------------------------------------
43.21 +
43.22 +set define off
43.23 +
43.24 +create or replace java source named "AvQuery" as
43.25 +
43.26 + import java.util.*;
43.27 +
43.28 + class WordData {
43.29 + String text;
43.30 + String fieldName;
43.31 + }
43.32 +
43.33 + public class AvQuery {
43.34 +
43.35 + static Vector reqWords = new Vector();
43.36 + static Vector optWords = new Vector();
43.37 + static Vector notWords = new Vector();
43.38 +
43.39 + public static final int required = 1;
43.40 + public static final int optional = 2;
43.41 + public static final int notwanted = 3;
43.42 +
43.43 + public static String translate (String input) {
43.44 + processString(input);
43.45 + return getQuery();
43.46 + }
43.47 +
43.48 + private static void addWord (String word, int wordType, String field) {
43.49 +
43.50 + WordData wd = new WordData();
43.51 +
43.52 + wd.text = word;
43.53 + wd.fieldName = field;
43.54 +
43.55 + switch (wordType) {
43.56 + case required:
43.57 + reqWords.addElement(wd);
43.58 + break;
43.59 + case optional:
43.60 + optWords.addElement(wd);
43.61 + break;
43.62 + case notwanted:
43.63 + notWords.addElement(wd);
43.64 + break;
43.65 + }
43.66 + }
43.67 +
43.68 + public static void processString (String input) {
43.69 + int p = 0;
43.70 + int pp;
43.71 + int startWord;
43.72 + int flag;
43.73 + String theWord;
43.74 + String fieldName;
43.75 +
43.76 +
43.77 + reqWords = new Vector();
43.78 + optWords = new Vector();
43.79 + notWords = new Vector();
43.80 +
43.81 + while (true) { // Loop over all words
43.82 +
43.83 + startWord = p;
43.84 + while (p < input.length() && input.charAt(p) != ' ') {
43.85 + // Check for quoted phrase
43.86 + if (input.charAt(p) == '"') { // Quote - skip to next or end
43.87 + p++; // skip the actual quote
43.88 + while (p < input.length() && input.charAt(p) != '"') {
43.89 + p++;
43.90 + }
43.91 + if (p < input.length()) p++; // Skip the final quote if found
43.92 + }
43.93 + else {
43.94 + p++;
43.95 + }
43.96 + }
43.97 +
43.98 + // Got a word. Check for required/not wanted flags (+-)
43.99 +
43.100 + theWord = input.substring(startWord, p);
43.101 +
43.102 + flag = optional;
43.103 + fieldName = "";
43.104 +
43.105 + if (theWord.charAt(0) == '+') {
43.106 + flag = required;
43.107 + theWord = theWord.substring(1);
43.108 + }
43.109 +
43.110 + else if (theWord.charAt(0) == '-') {
43.111 + flag = notwanted;
43.112 + theWord = theWord.substring(1);
43.113 + }
43.114 +
43.115 + // Replace * wild cards with %
43.116 +
43.117 + theWord = theWord.replace('*', '%');
43.118 +
43.119 + // Find field indicator ":"
43.120 +
43.121 + pp = theWord.indexOf(":");
43.122 + if (pp > 0) {
43.123 + fieldName = theWord.substring(0, pp);
43.124 + theWord = theWord.substring(pp+1, theWord.length());
43.125 + }
43.126 +
43.127 + addWord(theWord, flag, fieldName);
43.128 +
43.129 + p++;
43.130 + if (p >= input.length()) break;
43.131 + }
43.132 + }
43.133 +
43.134 + // Get word gets a single word from the "words" vector,
43.135 + // surrounds it in braces (to avoid reserved words)
43.136 + // and attaches a WITHIN clause if appropriate.
43.137 +
43.138 + private static String getWord (Vector words, int pos) {
43.139 +
43.140 + String ts = "{" + ((WordData) words.elementAt(pos)).text + "}";
43.141 + if (((WordData)words.elementAt(pos)).fieldName.length() > 0) {
43.142 + ts += " WITHIN " + ((WordData)words.elementAt(pos)).fieldName;
43.143 + }
43.144 + return ts;
43.145 + }
43.146 +
43.147 +
43.148 + // getQuery returns a formatted, ready-to-run ConText query.
43.149 + // In order to satisfy the altavista syntax, we have to generate
43.150 + // the following query:
43.151 +
43.152 + // ( req1 & req2 & ... reqN)
43.153 + // | ( (req1 & req2 & .. reqN)*10*10
43.154 + // & (req1, req2 , ... reqN , opt1 , opt2 , ... optN) )
43.155 + // NOT (not1 | not2 | ... notN)
43.156 +
43.157 + public static String getQuery () {
43.158 + String tempString = "";
43.159 +
43.160 + String boolOp = ""; // AND, OR, NOT operator
43.161 + int reqCount; // Count of required words
43.162 + int optCount; // Count of optional words
43.163 + int notCount; // Count of not wanted words
43.164 + int i; // Loop control
43.165 +
43.166 + boolOp = "";
43.167 + reqCount = reqWords.size();
43.168 + optCount = optWords.size();
43.169 + notCount = notWords.size();
43.170 +
43.171 + if (reqWords.size() > 0) {
43.172 + // Required words - first time
43.173 +
43.174 + tempString = "((";
43.175 + for (i = 0; i < reqCount; i++) {
43.176 + tempString += boolOp + getWord(reqWords,i);
43.177 + boolOp = " & ";
43.178 + }
43.179 +
43.180 + if (reqCount > 0 && optCount > 0) {
43.181 + tempString += ") | ";
43.182 + tempString += "((";
43.183 + // Required words - second time (anded with optional words)
43.184 + boolOp = "";
43.185 + for (i = 0; i < reqCount; i++) {
43.186 + tempString += boolOp + getWord(reqWords,i);
43.187 + boolOp = " & ";
43.188 + }
43.189 + tempString += ")*10*10";
43.190 +
43.191 + tempString += " & (";
43.192 +
43.193 + // Required words - third time as part of accumulate
43.194 + boolOp = "";
43.195 + for (i = 0; i < reqCount; i++) {
43.196 + tempString += boolOp + getWord(reqWords,i);
43.197 + // tempString += "*2";// Uncomment to double weight of required words
43.198 + boolOp = " , ";
43.199 + }
43.200 + }
43.201 + }
43.202 + else
43.203 + tempString = "(";
43.204 +
43.205 + // Optional words
43.206 + // Don't reset boolOp
43.207 + for (i = 0; i < optCount; i++) {
43.208 + tempString += boolOp + getWord(optWords,i);
43.209 + boolOp = " , "; // Accumulate
43.210 + }
43.211 +
43.212 + if (reqCount > 0)
43.213 + if (optCount > 0 )
43.214 + tempString += ")) )";
43.215 + else
43.216 + tempString += ")) ";
43.217 + else
43.218 + tempString += ")";
43.219 +
43.220 + if (tempString.length() > 0)
43.221 + boolOp = " NOT ";
43.222 + else
43.223 + boolOp = "";
43.224 +
43.225 + for (i = 0; i < notCount; i++) {
43.226 + tempString += boolOp + getWord(notWords,i);
43.227 + boolOp = " NOT ";
43.228 + }
43.229 + return tempString;
43.230 + }
43.231 +}
43.232 +/
43.233 +
43.234 +
43.235 +-- Creation of Schedules
43.236 +
43.237 +Prompt Creating Schedules for Index Synchronization AND Optimization
43.238 +DECLARE
43.239 + schedule_id_ NUMBER;
43.240 + action_ VARCHAR2(200);
43.241 + description_ VARCHAR2(200);
43.242 + execution_date_ DATE := SYSDATE + 30/86400;
43.243 + plan_ VARCHAR2(200);
43.244 + msg_ VARCHAR2(2000);
43.245 + schedule_method_id_ NUMBER;
43.246 + start_date_ DATE := SYSDATE;
43.247 + dummy_ NUMBER;
43.248 +
43.249 + CURSOR check_exist IS
43.250 + SELECT 1
43.251 + FROM BATCH_SCHEDULE_TAB
43.252 + WHERE SCHEDULE_NAME = description_;
43.253 +
43.254 +BEGIN
43.255 + --------------- Sync Index
43.256 + action_ := 'Text_Search_Indexer_API.Sync_Index';
43.257 + description_ := 'Synchronize Context Indexes';
43.258 + plan_ := 'EVERY 00:10';
43.259 +
43.260 + OPEN check_exist;
43.261 + FETCH check_exist INTO dummy_;
43.262 + IF (check_exist%NOTFOUND) THEN
43.263 + msg_ := Message_SYS.Construct('');
43.264 + Message_SYS.Add_Attribute (msg_, 'METHOD_NAME', 'Text_Search_Indexer_API.Sync_Index');
43.265 + Message_SYS.Add_Attribute (msg_, 'DESCRIPTION', 'Synchronize Context Indexes');
43.266 + Message_SYS.Add_Attribute (msg_, 'MODULE', 'TXTSER');
43.267 + Message_SYS.Add_Attribute (msg_, 'SINGLE_EXECUTION_DB', 'FALSE');
43.268 + Message_SYS.Add_Attribute (msg_, 'ARGUMENT_TYPE_DB', 'ATTRIBUTE');
43.269 + Batch_SYS.Register_Batch_Schedule_Method (schedule_method_id_, msg_);
43.270 + Batch_SYS.New_Batch_Schedule (schedule_id_, execution_date_, start_date_, NULL, description_, action_, 'TRUE', plan_);
43.271 + END IF;
43.272 + CLOSE check_exist;
43.273 +
43.274 +
43.275 +
43.276 + --------------- Optimize Index
43.277 + action_ := 'Text_Search_Indexer_API.Optimize_Index';
43.278 + description_ := 'Optimize Context Indexes';
43.279 + plan_ := 'WEEKLY ON sun AT 00:00';
43.280 + schedule_method_id_ := NULL;
43.281 +
43.282 + OPEN check_exist;
43.283 + FETCH check_exist INTO dummy_;
43.284 + IF (check_exist%NOTFOUND) THEN
43.285 + msg_ := Message_SYS.Construct('');
43.286 + Message_SYS.Add_Attribute (msg_, 'METHOD_NAME', 'Text_Search_Indexer_API.Optimize_Index');
43.287 + Message_SYS.Add_Attribute (msg_, 'DESCRIPTION', 'Optimize Context Indexes');
43.288 + Message_SYS.Add_Attribute (msg_, 'MODULE', 'TXTSER');
43.289 + Message_SYS.Add_Attribute (msg_, 'SINGLE_EXECUTION_DB', 'FALSE');
43.290 + Message_SYS.Add_Attribute (msg_, 'ARGUMENT_TYPE_DB', 'ATTRIBUTE');
43.291 + Batch_SYS.Register_Batch_Schedule_Method (schedule_method_id_, msg_);
43.292 + Batch_SYS.New_Batch_Schedule (schedule_id_, execution_date_, start_date_, NULL, description_, action_, 'TRUE', plan_);
43.293 + END IF;
43.294 + CLOSE check_exist;
43.295 +
43.296 + ---------------- Delete old Search Results
43.297 + -- To run Text_Search_API.Delete_Old_Results with a value for save_days that
43.298 + -- isn't default, create a parameters_ string to pass to New_Batch_Schedule.
43.299 + action_ := 'Text_Search_API.Delete_Old_Results';
43.300 + description_ := 'Delete old Text Search Results';
43.301 + plan_ := 'DAILY AT 00:00';
43.302 + schedule_method_id_ := NULL;
43.303 +
43.304 + OPEN check_exist;
43.305 + FETCH check_exist INTO dummy_;
43.306 + IF (check_exist%NOTFOUND) THEN
43.307 + msg_ := Message_SYS.Construct('');
43.308 + Message_SYS.Add_Attribute (msg_, 'METHOD_NAME', 'Text_Search_API.Delete_Old_Results');
43.309 + Message_SYS.Add_Attribute (msg_, 'DESCRIPTION', 'Delete old Text Search Results');
43.310 + Message_SYS.Add_Attribute (msg_, 'MODULE', 'TXTSER');
43.311 + Message_SYS.Add_Attribute (msg_, 'SINGLE_EXECUTION_DB', 'FALSE');
43.312 + Message_SYS.Add_Attribute (msg_, 'ARGUMENT_TYPE_DB', 'ATTRIBUTE');
43.313 + Batch_SYS.Register_Batch_Schedule_Method (schedule_method_id_, msg_);
43.314 + Batch_SYS.New_Batch_Schedule (schedule_id_,execution_date_, start_date_, NULL, description_, action_, 'TRUE', plan_);
43.315 + END IF;
43.316 + CLOSE check_exist;
43.317 +
43.318 + END;
43.319 +/
43.320 +
43.321 +COMMIT;
43.322 +/
43.323 +
43.324 +
43.325 +
44.1 --- a/PLSQL/Lexer/test/unit/src/org/netbeans/modules/plsql/lexer/080617_75132_fndbas.cdb Wed May 15 16:07:35 2013 +0200
44.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
44.3 @@ -1,70 +0,0 @@
44.4 --- --------------------------------------------------------------------------
44.5 --- File : 080617_75132_Fndbas.cdb
44.6 ---
44.7 --- Function: Adds performance indexes to tables related to BI services templates.
44.8 --- Old temporary template data is also removed.
44.9 ---
44.10 --- NOTE : Due to the fact the the customers might have sone or all these
44.11 --- indexes but with other names, the creation is done is separate blocks
44.12 --- and not in single one.
44.13 ---
44.14 --- --------------------------------------------------------------------------
44.15 --- DATE BY NOTES
44.16 --- ------ ----- ---------------------------------------------------------
44.17 --- 080617 LALISE Created.
44.18 --- --------------------------------------------------------------------------
44.19 -
44.20 -SET SERVEROUTPUT ON SIZE 32000;
44.21 -
44.22 -BEGIN
44.23 - &AO..Installation_SYS.Log_Detail_Time_Stamp('FNDBAS','080617_75132_FNDBAS.cdb','Timestamp_1');
44.24 -END;
44.25 -/
44.26 -
44.27 -
44.28 -PROMPT Add index on column template_id in table Dsod_Tab
44.29 -DECLARE
44.30 - columns_ &AO..Installation_SYS.ColumnTabType ;
44.31 - table_name_ VARCHAR2(30) := 'DSOD_TAB';
44.32 - index_name_ VARCHAR2(30) := 'DSOD_IX1';
44.33 -BEGIN
44.34 - IF NOT &AO..Installation_SYS.Is_Db_Patch_Registered('FNDBAS', 75132) THEN
44.35 - &AO..Installation_SYS.Set_Table_Column (columns_ , 'TEMPLATE_ID');
44.36 - &AO..Installation_SYS.Create_Index ( table_name_,
44.37 - index_name_,
44.38 - columns_,
44.39 - 'N',
44.40 - '&FND_INDEX');
44.41 - &AO..Installation_SYS.Reset_Column_Table(columns_);
44.42 - END IF;
44.43 -END;
44.44 -/
44.45 -
44.46 -PROMPT Add index on column template_id in table Dsod_Set_Tab
44.47 -DECLARE
44.48 - columns_ &AO..Installation_SYS.ColumnTabType ;
44.49 - table_name_ VARCHAR2(30) := 'DSOD_SET_TAB';
44.50 - index_name_ VARCHAR2(30) := 'DSOD_SET_IX1';
44.51 -BEGIN
44.52 - IF NOT &AO..Installation_SYS.Is_Db_Patch_Registered('FNDBAS', 75132) THEN
44.53 - &AO..Installation_SYS.Set_Table_Column (columns_ , 'TEMPLATE_ID');
44.54 - &AO..Installation_SYS.Create_Index ( table_name_,
44.55 - index_name_,
44.56 - columns_,
44.57 - 'N',
44.58 - '&FND_INDEX');
44.59 - &AO..Installation_SYS.Reset_Column_Table(columns_);
44.60 - END IF;
44.61 -END;
44.62 -/
44.63 -
44.64 -
44.65 -BEGIN
44.66 - &AO..Installation_SYS.Log_Detail_Time_Stamp('FNDBAS','080617_75132_FNDBAS.cdb','Done');
44.67 -END;
44.68 -/
44.69 -
44.70 -PROMPT SCRIPT 080617_75132_FNDBAS.cdb COMPLETED
44.71 -
44.72 -
44.73 -SET SERVEROUTPUT OFF
45.1 --- a/PLSQL/Lexer/test/unit/src/org/netbeans/modules/plsql/lexer/081114_78488_VMOSFA.cdb Wed May 15 16:07:35 2013 +0200
45.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
45.3 @@ -1,22 +0,0 @@
45.4 -------------------------------------------------------------------------------------
45.5 ---
45.6 --- Module : VMOSFA
45.7 ---
45.8 --- File : 081114_78488_VMOSFA.cdb
45.9 ---
45.10 --- Date Sign History
45.11 --- ------ ------ ---------------------------------------------------------------
45.12 --- 081114 maabse Bug 78488: Comment is missing on the views VMO_BASE_SYNC_PACKAGE_VIEW and VMO_BASE_SYNC_TRIGGER_VIEW
45.13 -------------------------------------------------------------------------------------
45.14 -
45.15 -PROMPT Starting 081114_78488_VMOSFA.cdb
45.16 -
45.17 -----------------------------------------------------------------------------------------------------------------------
45.18 -
45.19 -COMMENT ON TABLE VMO_BASE_SYNC_PACKAGE_VIEW IS 'LU=vmobaseview^PROMPT=Internal base view in Sales and Marketing^MODULE=VMOSFA^'
45.20 -/
45.21 -COMMENT ON TABLE VMO_BASE_SYNC_TRIGGER_VIEW IS 'LU=vmobaseview^PROMPT=Internal base view in Sales and Marketing^MODULE=VMOSFA^'
45.22 -/
45.23 -
45.24 -PROMPT Finished with 081114_78488_VMOSFA.cdb
45.25 -
46.1 --- a/PLSQL/Lexer/test/unit/src/org/netbeans/modules/plsql/lexer/Dictionary.apy Wed May 15 16:07:35 2013 +0200
46.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
46.3 @@ -1,3130 +0,0 @@
46.4 ------------------------------------------------------------------------------
46.5 ---
46.6 --- Package: Dictionary_SYS
46.7 ---
46.8 --- Purpose: This package creates system services for logical unit dictionary.
46.9 --- The services includes dictionary searches of various kinds and
46.10 --- decoding routines for comment strings.
46.11 ---
46.12 --- IFS/Design Template Version 2.3
46.13 ---
46.14 --- Date Sign History
46.15 --- ------ ---- -----------------------------------------------------------
46.16 --- 950823 STLA Created.
46.17 --- 950901 STLA Corrected fetch of enumerated lu list.
46.18 --- 950901 STLA Searches methods from user_source instead of sys.argument$.
46.19 --- 950904 ERFO Separator fetched from Client_SYS and standard changes.
46.20 --- 950905 ERFO Rearrangements in method orders, change headings...
46.21 --- 950905 ERFO Changed separator character in Enumerate_Logical_Units_
46.22 --- and Enumerate_Data_Items_.
46.23 --- 950911 STLA Removed last call to sys.argument$
46.24 --- 950912 STLA Added funtion to get item prompt
46.25 --- 950912 STLA Modified fetch of views and packages belonging to a LU
46.26 --- 950915 STLA Added funtion to get lu view for list of values
46.27 --- 950926 STLA Removed picture option from DATATYPE comments
46.28 --- 950927 STLA Added method to fetch list of system services
46.29 --- 950928 STLA Added method to fetch description for logical unit
46.30 --- 950928 STLA Added method to fetch list of domains (eg IIDs)
46.31 --- 951005 STLA Added backwards compatibility for Get_Lu_View_
46.32 --- Added method Get_Logical_Unit_Ref_Methods_
46.33 --- 951005 BOIS Corrected into variable length in Get_View_Logical_Unit_
46.34 --- 951006 ERFO Removed method Get_View_Logical_Unit_
46.35 --- 951006 STLA Made Generate_<_Comment_ generate dummy comment if
46.36 --- database column is not found.
46.37 --- 951006 STLA Added foreign key methods to Enumerate_Data_Items_
46.38 --- Removed reference to Client_SYS.field_separator_
46.39 --- 951030 STLA Corrected Get_Logical_Unit_Ref_Methods_ returning
46.40 --- incorrect enumerate syntax.
46.41 --- 951030 STLA Added pragma restict_references for att methods
46.42 --- 951030 STLA Corrected Enumerate_Domains_ uninitialized variable
46.43 --- 951030 STLA Added method Get_Logical_Unit_Method_
46.44 --- 951030 DAJO Added method Get_System_Service_Properties_ for
46.45 --- system service translation support.
46.46 --- 951101 ERFO Added work-around BIGCHAR2 for Enumerate_Data_Items_
46.47 --- and Enumerate_Logical_Units_.
46.48 --- 951208 STLA Corrected method Get_Data_Item_Properties_ (Bug #283).
46.49 --- 960110 STLA Added overloaded version of Get_Logical_Unit_Properties_
46.50 --- so that grant/revoke tool can operate efficiently.
46.51 --- 960111 STLA Use of 32730 as max length for long VARCHAR2 (Bug #325).
46.52 --- 960111 ERFO Added method Activate_Language_Refresh_ to support
46.53 --- language setting changes on the fly (Idea #326).
46.54 --- 960225 ERFO Added new module property methods to support the module
46.55 --- concept within the LU-dictionary (Idea #409).
46.56 --- 960319 ERFO Added extra method for logical unit properties to support
46.57 --- new features within system service Document_SYS (Idea #463).
46.58 --- 960325 ERFO Added methods for internal dictionary storage to support
46.59 --- performance needs from IFS/Security (Idea #452).
46.60 --- 960326 ERFO Added new parent/child property methods to support relations
46.61 --- between parent and children for logical units (Idea #410).
46.62 --- 960326 ERFO Add cache techniques in LU-dictionary by sending an extra
46.63 --- in parameter which tells if the cached value, stored in a
46.64 --- package global may be used or not (Idea #466).
46.65 --- 960401 ERFO Split this package into two for deployment reasons.
46.66 --- 960402 ERFO Changed cursor in method Get_Logical_Unit_Parent_ as a
46.67 --- work-around due to a PL/SQL bug in Oracle 7.1.
46.68 --- 960404 ERFO Two new facilities in method Comment_Value_ to support NULL-
46.69 --- values in a comment string and to support ambigous key names
46.70 --- in a comment sting to support IFS/Info Services.
46.71 --- 960404 ERFO Changes to be ORACLE 7.3 compliant (Bug #473).
46.72 --- 960415 ERFO Changes in method Enumerate_Data_Items to retrieve package
46.73 --- name information by using name conventions instead of using
46.74 --- the LU-dictionary for optimal performance in the dialog for
46.75 --- Foundation Properties (Idea #491).
46.76 --- 960429 ERFO Changes in old method Enumerate_System_Services_ and added
46.77 --- PRAGMA-option WNPS where possible.
46.78 --- 960503 STLA Make Get_Data_Item_Properties_ do exception when column
46.79 --- not found.
46.80 --- 960506 ERFO Added dummy parameter to method Rebuild_Dictionary_Storage.
46.81 --- Removed use of field separator in beginning of the package
46.82 --- and view list columns in Rebuild_Dictionary_Storage and
46.83 --- added a special filter for company styled global keys.
46.84 --- Added parent child relationship by name convention for
46.85 --- IID-domains and ordinary logical units.
46.86 --- 960508 ERFO Added implementation method Method_Security_Enabled__ to
46.87 --- ensure correct security handle of package methods.
46.88 --- 960517 ERFO Fixed BIGCHAR2 problem by changing to VARCHAR2 (Bug #607).
46.89 --- Changed representation and logic in dictionary help table
46.90 --- to support very big logical units (Bug #611).
46.91 --- Added method Init to the list of non-security methods.
46.92 --- 960528 ERFO Changed order of close cursor in help method.
46.93 --- 960610 ERFO Changes in method Enum_Modules_ not to be case-sensitive
46.94 --- in the short name of the module identity (Bug #663).
46.95 --- 960612 ERFO Rearrangements and performance improvements in method
46.96 --- Rebuild_Dictionary_Storage_ to support all kinds of PL/SQL
46.97 --- without depending on too much name conventions in the way of
46.98 --- using the language (Bug #664).
46.99 --- 960819 ERFO Changes in Activate_Language_Refresh_ to improve performance
46.100 --- when searching for translation candidates (Idea #746).
46.101 --- 960826 ERFO Increased size of method variable in the implementation
46.102 --- of Rebuild_Dictionary_Storage_ (Bug #768).
46.103 --- 960827 MANY Changes in Enumerate_System_Services_, now performs a distinct
46.104 --- list of services (Bug #769).
46.105 --- Changes in Get_System_Service_Properties_, now returns a list
46.106 --- of packages (Bug #769).
46.107 --- 960911 ERFO Added error handling for occasions when using illegal module
46.108 --- name in logical unit source code package header (Idea #790).
46.109 --- 960916 ERFO Decreased result set for all cursor against package globals
46.110 --- in the view USER_SOURCE for optimal performance (Idea #798).
46.111 --- 960919 ERFO Rearrangements in Rebuild_Dictionary_Storage concerning
46.112 --- methods without any parameters.
46.113 --- 961028 MANY Changes in several locations, including Rebuild_Dictionary_Storage
46.114 --- and Get_Logical_Unit_Properties to ensure that reports are treated
46.115 --- correctly within the dictionary.
46.116 --- 961029 ERFO Added method Get_Logical_Unit_Keys_ to retrieve key names and/or
46.117 --- values for a specific logical unit instance (Idea #845).
46.118 --- 961029 ERFO Even more performance improvements in LU-dictionary (Idea #798)
46.119 --- and adjustments in Rebuild_Dictionary_Storage_.
46.120 --- 961116 ERFO Ensure that the conversion methods between db and client
46.121 --- names does not result in any exception (Bug #859).
46.122 --- 961117 ERFO Removed method Lock__ from being security aware.
46.123 --- 961118 ERFO Solve problem with naming conflicts in IFS/Accounting Rules.
46.124 --- 961125 ERFO Language change on the fly for client state values and added
46.125 --- state methods in function Method_Security_Enabled___.
46.126 --- 961128 ERFO Add filter to remove Foundation1 modules from IFS/Security
46.127 --- and corrected view problem in Get_Logical_Unit_Ref_Methods.
46.128 --- 970122 ERFO Solved problem with timestamp on the security cache after
46.129 --- that the Foundation1-modules being removed (Bug #944).
46.130 --- 970127 ERFO Illegal OR-statement in Get_Lov_View_ corrected to avoid
46.131 --- returning view connected to IFS/Info Services (Bug #957).
46.132 --- 970212 ERFO Correction in Get_Lu_Prompt_ to choose the first view
46.133 --- found instead of choosing the last one (Bug #977).
46.134 --- 970213 ERFO Add refresh of document dictionary info (Bug #985).
46.135 --- 970403 ERFO Removed third parameter in method Comment_Value_.
46.136 --- 970424 ERFO Changes in method Enumerate_Data_Items_ to include
46.137 --- more functions in the pseudo column list (Bug #1035).
46.138 --- 970507 ERFO Removed unused methods from the package (ToDo #1107).
46.139 --- 970725 DOZE Added method Get_Logical_Unit_Tables_ for history (ToDo #1109).
46.140 --- 970825 ERFO Re-installed Foundation1 modules in dictionary cache.
46.141 --- 970826 ERFO Solved problem in Rebuild_Dictionary_Storage_ when having
46.142 --- LU reference definitions longer than 100 bytes (Bug #1610).
46.143 --- 971022 ERFO Refresh only be run as application owner (ToDo #1286).
46.144 --- Removed additional refresh of Document_SYS cache.
46.145 --- 971124 ERFO Changes in Generate_Function_Comment___ to get correct
46.146 --- function data type to Foundation1 Properties (Bug #718).
46.147 --- 971218 ERFO String length is changed from 20 to 200 in method
46.148 --- Generate_Default_Comment to solve IID limits.
46.149 --- 971218 ERFO Added method Get_Data_Source_Properties__ and method
46.150 --- Get_Data_Item_Properties__ supporting the new SORT-flag
46.151 --- for view order-by clauses (ToDo #1633).
46.152 --- 980211 DOZE Added method Enum_Table_Columns_ for IFS/Design (ToDo #1867).
46.153 --- 980418 ERFO Correction in Activate_Language_Refresh_ (Bug #2365).
46.154 --- 980504 ERFO Oracle8-compliance in exception handle (Bug #2412).
46.155 --- 980505 MANY Correction in Activate_Language_Refresh_ (Bug #2365), continue
46.156 --- looping when error in specific package until all are finished.
46.157 --- 980211 DOZE Changed Enum_Table_Columns_ (Bug #2569).
46.158 --- 980909 MANY Changed Activate_Language_Refresh_ to only refresh packages
46.159 --- that are actually initiated within the active session (Bug #2685)
46.160 --- 980915 ERFO Reinstalled old version of Activate_Language_Refresh (Bug #2685).
46.161 --- 981013 ERFO Added method Enumerate_Logical_Units__ and reorganization
46.162 --- in Rose-model and model properties (ToDo #2774).
46.163 --- 981207 DOZE Removed part of Enumerate_Data_Items_ (Bug #2918)
46.164 --- 990216 ERFO Correction in Method_Security_Enabled___ to ensure that no
46.165 --- methods will be removed from the security tool (Bug #3141).
46.166 --- 990222 ERFO Yoshimura: Changes in Rebuild_Dictionary_Storage_ (ToDo #3160).
46.167 --- 990428 ERFO Rebuild performance and logical bug fixes (Bug #3333).
46.168 --- 990605 ERFO Change cursor in Activate_Language_Refresh_ (Bug #3411).
46.169 --- 990805 ERFO Added column METHOD_LIST2 to include large LU:s (ToDo #3365).
46.170 --- 990922 ERFO Added method Exist_Db in cursor in Rebuild (Bug #3590).
46.171 --- 991005 DOZE Translation between "Ifs Currency" and "IFS Currency" (Bug #3575)
46.172 --- 000301 ERFO Added cursor for pragma-methods in Rebuild-logic (Todo #3846).
46.173 --- 000405 ERFO Added resolve-operation for Security 2001 (ToDo #3846).
46.174 --- 000522 ROOD Performance improvements in Rebuild_Dictionary_Storage_. (ToDo #3894).
46.175 --- 000823 ROOD Added condition for appowner in Get_Logical_Unit_Tables_ (ToDo #3919).
46.176 --- 001211 ERFO Added view FND_TAB_COMMENTS and use it in this package (Bug #18619).
46.177 --- 001214 ERFO Removed ACCRUL-specific code in Rebuild-procedure (ToDo #3973).
46.178 --- 010926 ROOD Added check not null on inparameters in most get-methods (Bug#22111).
46.179 --- 011014 ROOD Made Rebuild_Dictionary_Storage_ ignore case and comments (Bug#25453).
46.180 --- 011122 ROOD Added view FND_COL_COMMENTS and used it in this package (Bug #26328).
46.181 --- 020115 ROOD Moved views to api-file to avoid installation dependencies (Bug #26328).
46.182 --- 020527 ROOD Added group by statements to work around Oracle bug in
46.183 --- Rebuild_Dictionary_Storage_ (Bug#29242).
46.184 --- 020628 ROOD Corrected usage of General_SYS.Init_Method (ToDo#4087).
46.185 --- 030212 ROOD Changed module to FNDBAS (ToDo#4149).
46.186 --- 030317 ROOD Replaced General_SYS.Get_Database_Properties with
46.187 --- Database_SYS.Get_Database_Properties (ToDo#4143).
46.188 --- 030502 ROOD Enabled dictionary information for system services (ToD0#4259).
46.189 --- 030613 ROOD Rebuilt the Get_Logical_Unit_Properties_xx methods (ToDo#4162).
46.190 --- 030623 ROOD Added public methods for runtime dictionary information support.
46.191 --- These methods replace equivalents in Transaction_SYS (ToDo#4162)
46.192 --- 030819 ROOD Trimmed whitespaces to the right for methods with pragma
46.193 --- in method Rebuild_Dictionary_Storage_ (ToDo#4160).
46.194 --- 030931 HAAR Obsoleted method Activate_Language_Refresh_ (ToDo#4305).
46.195 --- 040407 HAAR Unicode bulk changes,
46.196 --- extended define variable length in Get_Logical_Unit_Keys_ (F1PR408B).
46.197 --- 040507 HAAR Added Get_Logical_Unit and Get_Logical_Unit_ (F1PR419).
46.198 --- 040607 ROOD Added views for dictionary information (F1PR413).
46.199 --- 040609 HAAR Changes in Rebuild_Dictionary_Storage_ due to changed behavior in Oracle10g (Bug#44668).
46.200 --- 040617 ROOD Removed obsolete interfaces and restructured the implementation.
46.201 --- Moved all methods needed in Design-time to new system service
46.202 --- Design_SYS (F1PR413).
46.203 --- 040907 ROOD Increased the amount of information stored in the dictionary cache, regarding
46.204 --- view comments etc. Used new information in implementation.
46.205 --- Changed interface Get_Item_Prompt_, renamed Get_Main_View to Get_Base_View,
46.206 --- removed Get_Lov_View_ (F1PR413).
46.207 --- 040908 ROOD Increased the length for column_reference and added exception handling
46.208 --- for extraction of view column comments (F1PR413).
46.209 --- 040910 ROOD Changed default values for when column prompts couldn't be evaluated (F1PR413).
46.210 --- 040916 ROOD Avoided partial delete of column values if not necessary and other
46.211 --- performance improvements (F1PR413).
46.212 --- 040923 ROOD Added refresh mode. Made Get_Base_View_ public (F1PR413).
46.213 --- 041025 ROOD Modified date comparison in Rebuild_Dictionary_Storage_ and
46.214 --- Check_Dictionary_Storage_ to workaround date problems with Unicode (Call#119047).
46.215 --- 041221 ROOD Rewrote major parts of Rebuild_Dictionary_Storage_ to add more information
46.216 --- into LU dictionary and to improve performance (F1PR413).
46.217 --- 041228 ROOD Moved all views to api-file to indicate that they are public (F1PR413).
46.218 --- 050105 ROOD Changed values for view type in dictionary_sys_view_tab (F1PR413).
46.219 --- 050111 JORA Added view (dictionary_sys_state_event) for states (F1PR413).
46.220 --- 050117 JORA Added view (dictionary_sys_state_trans) for states transitions (F1PR413).
46.221 --- 050128 JORA Moved lu_sub_type from dictionary_sys_tab
46.222 --- to dictionary_sys_package_tab (F1PR413).
46.223 --- 050310 HAAR Added printout for LU names longer than 25 characters (F1PR480).
46.224 --- 050408 JORA Added assertion for dynamic SQL. (F1PR481)
46.225 --- 050513 JORA Added Rebuild_State_Machine___. (F1PR413D)
46.226 --- 050520 JORA Added Get_No_Overloads, Get_No_Arguments, Get_Min_No_Arguments,
46.227 --- Get_Max_No_Arguments, Get_Argument_Type (ESCHND-F1).
46.228 --- 050706 HAAR Removed depricated functions moved to Design_SYS (Bug#52284).
46.229 --- Enum_Modules_, Get_Logical_Unit_Properties_, Get_Data_Source_Properties_
46.230 --- Get_Data_Item_Properties_, Get_Logical_Unit_Method_ and Enum_Table_Columns_.
46.231 --- 050818 JORA Improved error msg for Rebuild_State_Machine___.
46.232 --- 050830 JORA Improved performace of Rebuild_Dictionary_Storage.
46.233 --- 051003 HAAR Changed Enum_Module_Logical_Units_ to include system services (F1PR843).
46.234 --- 051110 HAAR Added new argument to Enumerate_Logical_Units__.
46.235 --- 051110 HAAR Enum_Module_All_Logical_Units_ and Get_Logical_Unit_Properties2__ added (F1PR843).
46.236 --- 051111 HAAR Changed so that the follwoing methods are treated as PRAGMA methods:
46.237 --- LOCK__, LANGUAGE_REFRESHED, INIT, FINITE_STATE_DECODE__, ENUMERATE_STATES__,
46.238 --- FINITE_STATE_EVENTS__, ENUMERATE_EVENTS__, 'ENUMERATE', 'EXIST', 'EXIST_DB' (F1PR483).
46.239 --- 051128 HAAR Removed duplicate state values.
46.240 --- 060105 UTGULK Annotated Sql injection.
46.241 --- 060130 HAAR Value error in Rebuild_Dictionary_Storage_ (Call 131508).
46.242 --- 060426 HAAR Added support for query against ROWSTATE instead of STATE when possible (Bug#57581).
46.243 --- 060428 HAAR Fixed problem in Rebuild_Dictionary_Storage_ when using Oracle 10.2.0.2 (Bug#57648).
46.244 --- 070111 HAAR Reroute xxx_Is_Installed methods to Database_SYS methods during Installation.
46.245 --- Added method Set_Installation_Mode (Bug#61829).
46.246 --- 080208 HAAR Added update of Cache Management when refreshing the cache (Bug#71136).
46.247 --- 080304 HAAR Some changes in refresh of cache (Bug#72156):
46.248 --- - Packages with errors or used for test can cause our tools to refresh all the time.
46.249 --- - Only consider packages with extension _API, _RPI and _SYS.
46.250 --- - Make error texts available in out parameter.
46.251 --- - Search Domain packages are not considered during the refresh of the Dictionary cache.
46.252 --- - Return errors in CLOB out variable.
46.253 --- 080901 HASPLK Correcetd method Clientnametodbname to work with 30 characters long View names.
46.254 --- 090309 HASPLK Added method Get_Installation_Mode (Bug#81092).
46.255 --- 090312 HAAR Changed so that Check_Method_From_View___ loops over all packages. (Bug#81246).
46.256 --- Changed so that ordering of packages in dictionary_sys_package_tab always is sorted in _API , _RPI, _SYS.
46.257 --- 100324 UsRa Changed Rebuild_Dictionary_Storage___ to include a new way to locate the base view of an LU (Bug#89730).
46.258 --- 100531 ChMu Changed Refresh_Domain_State_Info___ and Tokenize_Lists___.(Bug#90304-Correction not to Patched into Next Core)
46.259 --- 100531 GeGu Modified Rebuild_Dictionary_Storage___ clear the middle tire cache as well
46.260 --- 100603 ChMu Modified Tokenize_Lists___ to remove '||' from domain/state information
46.261 ------------------------------------------------------------------------------
46.262 ---
46.263 --- Contents: Property fetching routines for run-time use (private)
46.264 --- Naming conversions for client versus database object names
46.265 --- Comment decoding routines for LU-dictionary
46.266 --- Prompt fetching routines, mainly used for localization
46.267 --- Property fetching routines for run-time use (protected)
46.268 --- Runtime performance refreshment routines
46.269 --- Property fetching routines for design-time use (Depreciated)
46.270 --- Public runtime methods for dictionary information support
46.271 ---
46.272 ------------------------------------------------------------------------------
46.273 -
46.274 -DEFINE MODULE = FNDBAS
46.275 -DEFINE SERVICE = Dictionary
46.276 -DEFINE PKG = DICTIONARY_SYS
46.277 -
46.278 ------------------------------------------------------------------------------
46.279 --------------------- PACKAGES FOR METHODS -----------------------------------
46.280 ------------------------------------------------------------------------------
46.281 -
46.282 -PROMPT Creating &PKG implementation
46.283 -
46.284 -CREATE OR REPLACE PACKAGE BODY &PKG IS
46.285 -
46.286 -TYPE lu_struct_type IS TABLE OF VARCHAR2(32000) INDEX BY BINARY_INTEGER;
46.287 -TYPE object_array IS TABLE OF VARCHAR2(30) INDEX BY BINARY_INTEGER;
46.288 -
46.289 -field_separator_ CONSTANT VARCHAR2(1) := Client_SYS.field_separator_;
46.290 -record_separator_ CONSTANT VARCHAR2(1) := Client_SYS.record_separator_;
46.291 -text_separator_ CONSTANT VARCHAR2(1) := Client_SYS.text_separator_;
46.292 -
46.293 -installation_ BOOLEAN := FALSE;
46.294 -
46.295 ------------------------------------------------------------------------------
46.296 --------------------- SERVICE SPECIFIC IMPLEMENTATION METHOD DECLARATIONS ----
46.297 ------------------------------------------------------------------------------
46.298 -
46.299 -FUNCTION Check_Method_From_View___ (
46.300 - view_name_ IN VARCHAR2,
46.301 - method_name_ IN VARCHAR2 ) RETURN VARCHAR2;
46.302 -
46.303 ------------------------------------------------------------------------------
46.304 --------------------- SERVICE SPECIFIC IMPLEMENTATION METHODS ----------------
46.305 ------------------------------------------------------------------------------
46.306 -
46.307 -FUNCTION Check_Method_From_View___ (
46.308 - view_name_ IN VARCHAR2,
46.309 - method_name_ IN VARCHAR2 ) RETURN VARCHAR2
46.310 -IS
46.311 - lu_name_ VARCHAR2(30);
46.312 - package_list_ VARCHAR2(2000);
46.313 - package_name_ VARCHAR2(30);
46.314 - index_ NUMBER;
46.315 -BEGIN
46.316 - lu_name_ := Get_Logical_Unit(view_name_, 'VIEW');
46.317 - package_list_ := Get_Logical_Unit_Packages__(lu_name_);
46.318 - index_ := instr(package_list_, field_separator_);
46.319 - WHILE (index_ > 0) LOOP
46.320 - package_name_ := Substr(package_list_, 1, index_ - 1);
46.321 - package_list_ := Substr(package_list_, index_ + 1);
46.322 - IF (Method_Is_Installed(package_name_, method_name_)) THEN
46.323 - RETURN(package_name_||'.'||method_name_);
46.324 - END IF;
46.325 - index_ := instr(package_list_, field_separator_);
46.326 - END LOOP;
46.327 - RETURN(NULL);
46.328 -END Check_Method_From_View___;
46.329 -
46.330 -FUNCTION Rebuild_Dictionary_Storage___ (
46.331 - dummy_ IN NUMBER,
46.332 - refresh_mode_ IN VARCHAR2 DEFAULT 'PARTIAL',
46.333 - write_clob_ IN BOOLEAN DEFAULT FALSE ) RETURN CLOB
46.334 -IS
46.335 - refresh_all_ BOOLEAN := refresh_mode_ = 'FULL';
46.336 - refresh_views_ BOOLEAN := refresh_mode_ IN ('VIEWS', 'PARTIAL', 'LIGHT');
46.337 - refresh_pkgs_ BOOLEAN := refresh_mode_ IN ('PACKAGES', 'PARTIAL', 'LIGHT');
46.338 - rebuild_needed_ NUMBER;
46.339 - last_update_ DATE;
46.340 - start_time_ DATE;
46.341 - packages_ object_array;
46.342 - methods_ object_array;
46.343 - views_ object_array;
46.344 -
46.345 - pkg_lu_name_ VARCHAR2(30);
46.346 - pkg_module_ VARCHAR2(6);
46.347 - pkg_lu_type_ VARCHAR2(1);
46.348 - pkg_lu_sub_type_ VARCHAR2(1);
46.349 - pkg_index_ NUMBER;
46.350 -
46.351 - method_ VARCHAR2(100);
46.352 -
46.353 - view_lu_name_ VARCHAR2(30);
46.354 - view_module_ VARCHAR2(6);
46.355 - view_prompt_ VARCHAR2(200);
46.356 - view_comment_ VARCHAR2(2000);
46.357 - view_index_ NUMBER;
46.358 - base_view_ BOOLEAN;
46.359 -
46.360 - error_text_ CLOB;
46.361 -
46.362 - TYPE domain_states_array IS TABLE OF VARCHAR2(120) INDEX BY BINARY_INTEGER;
46.363 - db_values_ domain_states_array;
46.364 - client_values_ domain_states_array;
46.365 -
46.366 - TYPE complete_value_array IS TABLE OF dictionary_sys_domain_tab%ROWTYPE INDEX BY BINARY_INTEGER; -- same as dictionary_sys_state_tab...
46.367 - complete_values_ complete_value_array;
46.368 -
46.369 - TYPE state_event_array IS TABLE OF dictionary_sys_state_event_tab%ROWTYPE INDEX BY BINARY_INTEGER;
46.370 - state_event_values_ state_event_array;
46.371 -
46.372 - CURSOR get_last_update IS
46.373 - SELECT MAX(rowversion)
46.374 - FROM dictionary_sys_tab;
46.375 -
46.376 - --
46.377 - -- LAST_DDL_TIME:
46.378 - -- The timestamp for the last DDL change (including GRANT and REVOKE) to the object.
46.379 - -- Format is VARCHAR2(19)...
46.380 - --
46.381 - -- TIMESTAMP
46.382 - -- The timestamp for the specification of the object.
46.383 - -- Format is DATE.
46.384 - --
46.385 - -- VIEWS:
46.386 - -- TIMESTAMP for a view is not updated unless the code of the view is modified.
46.387 - --
46.388 - -- PACKAGES:
46.389 - -- TIMESTAMP for a packages is updated as soon as the package code is recompiled.
46.390 - --
46.391 - -- This is the reason why different criteria is used for views and for packages.
46.392 - -- It is necessary that views are refreshed after they have been recompiled,
46.393 - -- even if the code has not been modified, since the information is in the comments.
46.394 - --
46.395 -
46.396 - -- Packages to update (timestamp has changed since last update)
46.397 - CURSOR get_pkgs_to_update(last_cache_update_ IN DATE) IS
46.398 - SELECT object_name
46.399 - FROM user_objects
46.400 - WHERE object_type = 'PACKAGE BODY'
46.401 - AND substr(object_name, -4) IN ('_API', '_RPI', '_SYS')
46.402 - AND timestamp > to_char(last_cache_update_, 'YYYY-MM-DD:HH24:MI:SS')
46.403 - ORDER BY substr(object_name, -3); -- The ordering should be API, RPI, SYS
46.404 -
46.405 - -- Views to update (last_ddl_time has changed since last update)
46.406 - CURSOR get_views_to_update(last_cache_update_ IN DATE) IS
46.407 - SELECT object_name
46.408 - FROM user_objects
46.409 - WHERE object_type = 'VIEW'
46.410 - AND last_ddl_time > last_cache_update_
46.411 - ORDER BY created;
46.412 -
46.413 - -- All packages (used when doing a full refresh for performance reasons)
46.414 - CURSOR get_all_pkgs IS
46.415 - SELECT object_name
46.416 - FROM user_objects
46.417 - WHERE object_type = 'PACKAGE'
46.418 - AND substr(object_name, -4) IN ('_API', '_RPI', '_SYS')
46.419 - ORDER BY substr(object_name, -3); -- The ordering should be API, RPI, SYS
46.420 -
46.421 - -- All view (used when doing a full refresh for performance reasons)
46.422 - CURSOR get_all_views IS
46.423 - SELECT object_name
46.424 - FROM user_objects
46.425 - WHERE object_type = 'VIEW'
46.426 - ORDER BY created;
46.427 -
46.428 - -- Package information
46.429 - CURSOR get_package_info(package_name_ IN VARCHAR2) IS
46.430 - SELECT substr(text,
46.431 - instr(text,'''')+1,
46.432 - instr(text,'''',instr(text,'''')+1)-instr(text,'''')-1) global,
46.433 - upper(substr(ltrim(text), 1, 1)) gtype
46.434 - FROM user_source
46.435 - WHERE type = 'PACKAGE'
46.436 - AND name = package_name_
46.437 - AND (text LIKE '%lu_name_%:=%''%''%' OR text LIKE '%module_%:=%''%''%' OR text LIKE '%service_%:=%''%''%' OR text LIKE '%domain_%:=%''%''%')
46.438 - AND text NOT LIKE '--%'
46.439 - AND text NOT LIKE '%/%*%'
46.440 - AND text NOT LIKE '%*%/'
46.441 - AND line BETWEEN 2 AND 6
46.442 - ORDER BY line;
46.443 -
46.444 - -- View information
46.445 - CURSOR get_view_comments(view_name_ IN VARCHAR2) IS
46.446 - SELECT comments
46.447 - FROM fnd_tab_comments
46.448 - WHERE table_type = 'VIEW'
46.449 - AND table_name = view_name_;
46.450 -
46.451 - PROCEDURE Write_Error_Text___ (
46.452 - clob_ IN OUT NOCOPY CLOB,
46.453 - text_ IN VARCHAR2,
46.454 - new_line_ IN BOOLEAN DEFAULT TRUE )
46.455 - IS
46.456 - BEGIN
46.457 - IF write_clob_ THEN
46.458 - IF new_line_ THEN
46.459 - clob_ := clob_ || chr(10) || text_;
46.460 - ELSE
46.461 - clob_ := clob_ || text_;
46.462 - END IF;
46.463 - ELSE
46.464 - IF new_line_ THEN
46.465 - dbms_output.put_line(text_);
46.466 - ELSE
46.467 - dbms_output.put(text_);
46.468 - END IF;
46.469 - END IF;
46.470 - END Write_Error_Text___;
46.471 -
46.472 -
46.473 - PROCEDURE Get_Next_Pkg_Index___ (
46.474 - lu_name_ IN VARCHAR2,
46.475 - next_pkg_index_ OUT NUMBER )
46.476 - IS
46.477 - CURSOR next_index IS
46.478 - SELECT nvl(MAX(package_index), 0) + 1
46.479 - FROM dictionary_sys_package_tab
46.480 - WHERE lu_name = lu_name_;
46.481 - BEGIN
46.482 - OPEN next_index;
46.483 - FETCH next_index INTO next_pkg_index_;
46.484 - CLOSE next_index;
46.485 - END Get_Next_Pkg_Index___;
46.486 -
46.487 - PROCEDURE Get_Next_View_Index___ (
46.488 - lu_name_ IN VARCHAR2,
46.489 - next_view_index_ OUT NUMBER )
46.490 - IS
46.491 - CURSOR next_index IS
46.492 - SELECT nvl(MAX(view_index), 0) + 1
46.493 - FROM dictionary_sys_view_tab
46.494 - WHERE lu_name = lu_name_;
46.495 - BEGIN
46.496 - OPEN next_index;
46.497 - FETCH next_index INTO next_view_index_;
46.498 - CLOSE next_index;
46.499 - END Get_Next_View_Index___;
46.500 -
46.501 - PROCEDURE Handle_Possible_State_Pkg___(
46.502 - lu_name_ IN VARCHAR2,
46.503 - method_name_ IN VARCHAR2 )
46.504 - IS
46.505 - BEGIN
46.506 - IF method_name_ = 'Finite_State_Events__' THEN
46.507 - -- Set global variable
46.508 - pkg_lu_sub_type_ := 'S';
46.509 - -- Update main dictionary information
46.510 - UPDATE dictionary_sys_package_tab
46.511 - SET package_type = pkg_lu_sub_type_
46.512 - WHERE lu_name = lu_name_;
46.513 - END IF;
46.514 - END Handle_Possible_State_Pkg___;
46.515 -
46.516 - PROCEDURE Fill_List_Array___ (
46.517 - info_type_ IN VARCHAR2,
46.518 - lu_name_ IN VARCHAR2,
46.519 - package_name_ IN VARCHAR2,
46.520 - db_values_ IN OUT domain_states_array,
46.521 - client_values_ IN OUT domain_states_array,
46.522 - complete_values_ OUT complete_value_array )
46.523 - IS
46.524 - stmt_ VARCHAR2(200);
46.525 - error_ BOOLEAN := FALSE;
46.526 - domain_ BOOLEAN := info_type_ = 'domain';
46.527 - client_count_ NUMBER;
46.528 - db_count_ NUMBER;
46.529 - BEGIN
46.530 - -- Check for incorrectness in number of values and remove redundant information if it occurs
46.531 - IF db_values_.COUNT != client_values_.COUNT THEN
46.532 - client_count_ := client_values_.COUNT;
46.533 - db_count_ := db_values_.COUNT;
46.534 - IF db_count_ > client_count_ THEN
46.535 - -- Missing client values
46.536 - Assert_SYS.Assert_Is_Package(package_name_);
46.537 - stmt_ := 'BEGIN :client_value_ := '||package_name_||'.Decode(:db_value_); END;';
46.538 - FOR i IN Nvl(db_values_.FIRST, 0)..Nvl(db_values_.LAST, -1) LOOP
46.539 - -- Try to find more values by calling standard interfaces for domains,
46.540 - -- else fill out the array if it is still incomplete...
46.541 - IF domain_ THEN
46.542 - BEGIN
46.543 - -- ifs_assert_safe utgulk 20060105
46.544 - EXECUTE IMMEDIATE stmt_ USING OUT client_values_(i), IN db_values_(i);
46.545 - EXCEPTION
46.546 - WHEN OTHERS THEN
46.547 - client_values_(i) := 'Value not defined!';
46.548 - error_ := TRUE;
46.549 - END;
46.550 - ELSE
46.551 - -- Can't find the values for other types than domains...
46.552 - client_values_(i) := 'Value not defined!';
46.553 - error_ := TRUE;
46.554 - END IF;
46.555 -
46.556 - END LOOP;
46.557 - ELSE
46.558 - -- Missing db values
46.559 - Assert_SYS.Assert_Is_Package(package_name_);
46.560 - stmt_ := 'BEGIN :db_value_ := '||package_name_||'.Encode(:client_value_); END;';
46.561 - FOR i IN Nvl(client_values_.FIRST,0)..Nvl(client_values_.LAST,-1) LOOP
46.562 - -- Try to find more values by calling standard interfaces for domains,
46.563 - -- else fill out the array if it is still incomplete...
46.564 - IF domain_ THEN
46.565 - BEGIN
46.566 - -- ifs_assert_safe utgulk 20060105
46.567 - EXECUTE IMMEDIATE stmt_ USING OUT db_values_(i), IN client_values_(i);
46.568 - EXCEPTION
46.569 - WHEN OTHERS THEN
46.570 - db_values_(i) := 'VALUE NOT DEFINED!';
46.571 - error_ := TRUE;
46.572 - END;
46.573 - ELSE
46.574 - -- Can't find the values for other types than domains...
46.575 - db_values_(i) := 'VALUE NOT DEFINED!';
46.576 - error_ := TRUE;
46.577 - END IF;
46.578 - END LOOP;
46.579 - END IF;
46.580 - -- Log information if values could not be determined...
46.581 - IF error_ THEN
46.582 - Write_Error_Text___ (error_text_, ' '||Rpad(Get_Logical_Unit_Module(lu_name_),6)||':Inconsistency between client values and db values for '||info_type_||' package '||package_name_||'!', FALSE);
46.583 - Write_Error_Text___ (error_text_, ' '||to_char(db_count_)||' db values and '||to_char(client_count_)||' client values was found!');
46.584 - END IF;
46.585 - END IF;
46.586 - FOR i IN Nvl(db_values_.FIRST,0)..Nvl(db_values_.LAST,-1) LOOP
46.587 - complete_values_(i).lu_name := lu_name_;
46.588 - complete_values_(i).package_name := package_name_;
46.589 - complete_values_(i).db_value := db_values_(i);
46.590 - complete_values_(i).client_value := client_values_(i);
46.591 - complete_values_(i).rowversion := SYSDATE;
46.592 - END LOOP;
46.593 - END Fill_List_Array___;
46.594 -
46.595 - PROCEDURE Rebuild_State_Machine___(full_mode_ BOOLEAN DEFAULT TRUE) IS
46.596 -
46.597 - last_update_ DATE DEFAULT NULL;
46.598 -
46.599 - CURSOR state_mach IS
46.600 - SELECT decode(upper(regexp_substr(a.text,'[[:alpha:]]+_')) ,
46.601 - 'STATE_','START',
46.602 - 'EVENT_','EVENT',
46.603 - 'FINITE_','END',
46.604 - NULL) TYPE,
46.605 - regexp_substr(a.text,'''[[:alpha:]|[:space:]]+''') WHAT,
46.606 - a.NAME PACKAGE
46.607 - FROM USER_SOURCE A, USER_OBJECTS O
46.608 - WHERE EXISTS (SELECT 1 FROM DICTIONARY_SYS_STATE_TAB D WHERE D.PACKAGE_NAME = O.OBJECT_NAME)
46.609 - AND A.NAME = O.OBJECT_NAME
46.610 - AND A.TYPE = 'PACKAGE BODY'
46.611 - AND O.OBJECT_TYPE = 'PACKAGE'
46.612 - AND TO_DATE(timestamp,'RRRR-MM-DD:HH24:MI:SS') > last_update_
46.613 - AND regexp_like(a.text,'(state_[[:space:]]*(=|(IS)))|(event_[[:space:]]*(=|(IS)))|(Finite_State_Set___\(rec_,)','i')
46.614 - ORDER BY a.name, a.line ASC;
46.615 -
46.616 - TYPE state_machine_type IS TABLE OF state_mach%ROWTYPE INDEX BY PLS_INTEGER;
46.617 - TYPE dic_state_mach_type IS TABLE OF dictionary_sys_state_mach_tab%ROWTYPE INDEX BY BINARY_INTEGER;
46.618 -
46.619 - bulk_errors EXCEPTION;
46.620 - PRAGMA EXCEPTION_INIT(bulk_errors, -24381);
46.621 -
46.622 - state_machine state_machine_type;
46.623 - model dic_state_mach_type;
46.624 - start_mode VARCHAR2(30);
46.625 - in_state_transistion BOOLEAN := FALSE;
46.626 - error_count_ NUMBER;
46.627 - j PLS_INTEGER;
46.628 - i PLS_INTEGER;
46.629 - position_ NUMBER;
46.630 -
46.631 - FUNCTION Get_Lu_Name_(
46.632 - package_name_ VARCHAR2) RETURN VARCHAR2
46.633 - IS
46.634 - tmp_ VARCHAR2(60) DEFAULT NULL;
46.635 - BEGIN
46.636 - SELECT lu_name INTO tmp_
46.637 - FROM dictionary_sys_package_tab
46.638 - WHERE package_name= package_name_;
46.639 - RETURN tmp_;
46.640 - EXCEPTION
46.641 - WHEN OTHERS THEN
46.642 - Write_Error_Text___ (error_text_, ' Failed to find LU name for package '||package_name_);
46.643 - RETURN NULL;
46.644 - END get_lu_name_;
46.645 -
46.646 - FUNCTION trim_str(str_ VARCHAR2) RETURN VARCHAR2
46.647 - IS
46.648 - BEGIN
46.649 - RETURN SUBSTR(str_,2, length(str_)-2);
46.650 - END;
46.651 -
46.652 -
46.653 - BEGIN
46.654 - IF full_mode_ THEN
46.655 - last_update_:= SYSDATE-1000;
46.656 - ELSE
46.657 - SELECT NVL(MAX(updated),SYSDATE-1000) INTO last_update_ FROM dictionary_sys_state_mach_tab;
46.658 - END IF;
46.659 - OPEN state_mach;
46.660 - FETCH state_mach BULK COLLECT INTO state_machine;
46.661 - CLOSE state_mach;
46.662 - j := 1;
46.663 - i:=2;
46.664 - WHILE i < state_machine.LAST LOOP
46.665 - IF state_machine(i-1).type ='START' AND state_machine(i).type = 'EVENT' THEN
46.666 - in_state_transistion:= TRUE;
46.667 - start_mode:=trim_str(state_machine(i-1).what);
46.668 - WHILE in_state_transistion AND i+1 <= state_machine.LAST LOOP
46.669 - IF state_machine(i).type='EVENT' AND
46.670 - state_machine(i+1).type='END' AND
46.671 - trim_str(state_machine(i).what) IS NOT NULL THEN
46.672 - model(j).start_state:=start_mode;
46.673 - model(j).event:=trim_str(state_machine(i).what);
46.674 - model(j).end_state:=trim_str(state_machine(i+1).what);
46.675 - model(j).package_name:=state_machine(i).PACKAGE;
46.676 - model(j).lu_name:= get_lu_name_(state_machine(i).PACKAGE);
46.677 - model(j).updated:=SYSDATE;
46.678 - model(j).rowversion:=SYSDATE;
46.679 - i:=i+2;
46.680 - j:=j+1;
46.681 - ELSIF state_machine(i).type!='START' AND i < state_machine.LAST THEN
46.682 - i:=i+1;
46.683 - ELSE
46.684 - in_state_transistion:=FALSE;
46.685 - i:=i+1;
46.686 - END IF;
46.687 - END LOOP;
46.688 - ELSE
46.689 - i:=i+1;
46.690 - END IF;
46.691 - END LOOP;
46.692 --- This line only used when debugging
46.693 --- FOR k IN model.FIRST..model.LAST LOOP
46.694 --- Write_Error_Text___ (error_text_, model(k).package_name||':'||model(k).start_state||'->'||model(k).event||'->'||model(k).end_state);
46.695 --- END LOOP;
46.696 - BEGIN
46.697 - -- ifs_assert_safe pemase 20060215
46.698 - EXECUTE IMMEDIATE 'truncate table dictionary_sys_state_mach_tab';
46.699 - Write_Error_Text___ (error_text_, ' -------------------------------------------------------------');
46.700 - Write_Error_Text___ (error_text_, ' Dictionary Cache is being updated with '||model.count ||' state machine entrie(s).');
46.701 - Write_Error_Text___ (error_text_, ' -------------------------------------------------------------');
46.702 - FORALL k IN NVL(model.FIRST,0)..NVL(model.LAST,-1) SAVE EXCEPTIONS
46.703 - INSERT INTO dictionary_sys_state_mach_tab VALUES model(k);
46.704 - EXCEPTION
46.705 - WHEN bulk_errors THEN
46.706 - error_count_ := SQL%BULK_EXCEPTIONS.COUNT;
46.707 - Write_Error_Text___ (error_text_, ' '||to_char(error_count_)||' problem(s) when inserting dictionary state machine information.');
46.708 - FOR i IN 1..error_count_ LOOP
46.709 - position_ := SQL%BULK_EXCEPTIONS(i).ERROR_INDEX;
46.710 --- Write_Error_Text___ (error_text_, ' Position number '||to_char(position_));
46.711 - Write_Error_Text___ (error_text_, ' '||Rpad(Get_Logical_Unit_Module(model(position_).lu_name),6)||':Error ' || SQLERRM(-SQL%BULK_EXCEPTIONS(i).ERROR_CODE)||', ', FALSE);
46.712 - Write_Error_Text___ (error_text_, 'lu_name='||model(position_).lu_name||', ', FALSE);
46.713 - Write_Error_Text___ (error_text_, 'package_name='||model(position_).package_name||', ', FALSE);
46.714 - Write_Error_Text___ (error_text_, 'start_state='||model(position_).start_state||', ', FALSE);
46.715 - Write_Error_Text___ (error_text_, 'event='||model(position_).event||', ', FALSE);
46.716 - Write_Error_Text___ (error_text_, 'end_state='||model(position_).end_state);
46.717 - END LOOP;
46.718 - END;
46.719 - EXCEPTION
46.720 - WHEN OTHERS THEN
46.721 - Write_Error_Text___ (error_text_, ' '||dbms_utility.format_error_backtrace);
46.722 - END Rebuild_State_Machine___;
46.723 -
46.724 -
46.725 - PROCEDURE Rebuild_All_State_Event___(full_mode_ BOOLEAN DEFAULT TRUE) IS
46.726 -
46.727 - last_update_ DATE DEFAULT NULL;
46.728 -
46.729 - CURSOR get_events IS
46.730 - SELECT regexp_substr(text,'([[:alpha:]]+\^){1,}') event, name
46.731 - FROM USER_SOURCE A, USER_OBJECTS O
46.732 - WHERE EXISTS (SELECT 1 FROM DICTIONARY_SYS_STATE_TAB D WHERE D.PACKAGE_NAME = O.OBJECT_NAME)
46.733 - AND A.NAME = O.OBJECT_NAME
46.734 - AND A.TYPE = 'PACKAGE BODY'
46.735 - AND O.OBJECT_TYPE = 'PACKAGE'
46.736 - AND TO_DATE(timestamp,'RRRR-MM-DD:HH24:MI:SS') > last_update_
46.737 - AND regexp_like(text, '^[[:space:]]{0,}db_events_[[:space:]]{0,}:=');
46.738 -
46.739 - TYPE state_array IS TABLE OF get_events%ROWTYPE INDEX BY BINARY_INTEGER;
46.740 - TYPE event_array IS TABLE OF VARCHAR(40) INDEX BY PLS_INTEGER;
46.741 - state_events_ state_array ;
46.742 - state_event_values_ state_event_array;
46.743 - event_array_ event_array;
46.744 -
46.745 - stmt_ VARCHAR2(100);
46.746 - match_ INTEGER;
46.747 - counter_ INTEGER;
46.748 - event_idx_ INTEGER;
46.749 - event_ VARCHAR2(32);
46.750 - error_count_ NUMBER;
46.751 - position_ NUMBER;
46.752 - dup_event_val_ BOOLEAN;
46.753 -
46.754 -
46.755 - bulk_errors EXCEPTION;
46.756 - PRAGMA EXCEPTION_INIT(bulk_errors, -24381);
46.757 -
46.758 - FUNCTION Get_Lu_Name_(
46.759 - package_name_ VARCHAR2) RETURN VARCHAR2
46.760 - IS
46.761 - tmp_ VARCHAR2(60) DEFAULT NULL;
46.762 - BEGIN
46.763 - SELECT lu_name INTO tmp_
46.764 - FROM dictionary_sys_package_tab
46.765 - WHERE package_name= package_name_;
46.766 - RETURN tmp_;
46.767 - EXCEPTION
46.768 - WHEN OTHERS THEN
46.769 - Write_Error_Text___ (error_text_, ' Failed to find LU name for package '||package_name_);
46.770 - RETURN NULL;
46.771 - END get_lu_name_;
46.772 -
46.773 - BEGIN
46.774 -
46.775 - IF full_mode_ THEN
46.776 - last_update_:= SYSDATE-1000;
46.777 - ELSE
46.778 - SELECT NVL(MAX(updated),SYSDATE-1000) INTO last_update_ FROM dictionary_sys_state_mach_tab;
46.779 - END IF;
46.780 -
46.781 - OPEN get_events;
46.782 - FETCH get_events BULK COLLECT INTO state_events_;
46.783 - IF SQL%NOTFOUND THEN
46.784 - Write_Error_Text___ (error_text_, ' No state events found.');
46.785 - CLOSE get_events;
46.786 - RETURN;
46.787 - ELSE
46.788 - BEGIN
46.789 - -- ifs_assert_safe pemase 20060215
46.790 - EXECUTE IMMEDIATE 'TRUNCATE TABLE dictionary_sys_state_event_tab';
46.791 - EXCEPTION
46.792 - WHEN OTHERS THEN
46.793 - Write_Error_Text___ (error_text_, ' Failed to truncate dictionary_sys_state_event_tab.');
46.794 - Write_Error_Text___ (error_text_, ' '||dbms_utility.format_error_backtrace);
46.795 - RETURN;
46.796 - END;
46.797 - END IF;
46.798 - CLOSE get_events;
46.799 - Write_Error_Text___ (error_text_, ' -------------------------------------------------------------');
46.800 - Write_Error_Text___ (error_text_, ' Dictionary Cache is fetching State Events');
46.801 - Write_Error_Text___ (error_text_, ' -------------------------------------------------------------');
46.802 - counter_:=1;
46.803 - FOR i IN Nvl(state_events_.FIRST,0)..Nvl(state_events_.LAST,-1) LOOP
46.804 - match_:=1;
46.805 - event_idx_:=1;
46.806 - event_array_.DELETE;
46.807 - LOOP
46.808 - dup_event_val_:= FALSE;
46.809 - event_:=REGEXP_SUBSTR(state_events_(i).event,'([[:alpha:]|[:digit:]|[:blank:]]+\^)', 1, match_);
46.810 - EXIT WHEN event_ IS NULL;
46.811 - IF event_idx_!=1 THEN
46.812 - dup_event_val_:= FALSE;
46.813 - FOR j IN Nvl(event_array_.FIRST,0)..Nvl(event_array_.LAST,-1) LOOP
46.814 - IF event_array_(j)=event_ THEN
46.815 - dup_event_val_:= TRUE;
46.816 - EXIT;
46.817 - END IF;
46.818 - END LOOP;
46.819 - END IF;
46.820 - IF NOT dup_event_val_ THEN
46.821 - event_array_(event_idx_):=event_;
46.822 - state_event_values_(counter_).lu_name:=get_lu_name_(state_events_(i).name);
46.823 - state_event_values_(counter_).package_name:=state_events_(i).name;
46.824 - state_event_values_(counter_).event:=substr(event_,1,length(event_)-1);
46.825 - state_event_values_(counter_).rowversion:=SYSDATE;
46.826 - counter_:=counter_+1;
46.827 - event_idx_:=event_idx_+1;
46.828 --- ELSE
46.829 --- Write_Error_Text___ (error_text_, ' '||Rpad(Get_Logical_Unit_Module(get_lu_name_(state_events_(i).name)),6)||':Skipping duplicate event ('||substr(event_,1,length(event_)-1)||') for LU:'||get_lu_name_(state_events_(i).name));
46.830 - END IF;
46.831 - match_:=match_+1;
46.832 - END LOOP;
46.833 - END LOOP;
46.834 -
46.835 - BEGIN
46.836 - Write_Error_Text___ (error_text_, ' -------------------------------------------------------------');
46.837 - Write_Error_Text___ (error_text_, ' Dictionary Cache is being updated with '||state_event_values_.count ||' State Events');
46.838 - Write_Error_Text___ (error_text_, ' -------------------------------------------------------------');
46.839 - FORALL j IN Nvl(state_event_values_.FIRST, 0)..Nvl(state_event_values_.LAST, -1) SAVE EXCEPTIONS
46.840 - INSERT INTO dictionary_sys_state_event_tab VALUES state_event_values_(j);
46.841 - EXCEPTION
46.842 - WHEN bulk_errors THEN
46.843 - error_count_ := SQL%BULK_EXCEPTIONS.COUNT;
46.844 - Write_Error_Text___ (error_text_, ' '||to_char(error_count_)||' problem(s) when inserting dictionary state event information.');
46.845 - FOR i IN 1..error_count_ LOOP
46.846 - position_ := SQL%BULK_EXCEPTIONS(i).ERROR_INDEX;
46.847 --- Write_Error_Text___ (error_text_, ' Position number '||to_char(position_));
46.848 - Write_Error_Text___ (error_text_, ' '||Rpad(Get_Logical_Unit_Module(state_event_values_(position_).lu_name),6)||':Error ' || SQLERRM(-SQL%BULK_EXCEPTIONS(i).ERROR_CODE)||', ', FALSE);
46.849 - Write_Error_Text___ (error_text_, 'lu_name='||nvl(state_event_values_(position_).lu_name, 'NULL')||', ', FALSE);
46.850 - Write_Error_Text___ (error_text_, 'package_name='||nvl(state_event_values_(position_).package_name, 'NULL')||', ', FALSE);
46.851 - Write_Error_Text___ (error_text_, 'event='||nvl(state_event_values_(position_).event, 'NULL'));
46.852 - END LOOP;
46.853 - WHEN OTHERS THEN
46.854 - Write_Error_Text___ (error_text_, ' Failed to truncate dictionary_sys_state_event_tab.');
46.855 - Write_Error_Text___ (error_text_, ' '||dbms_utility.format_error_backtrace);
46.856 - END;
46.857 -
46.858 - EXCEPTION
46.859 - WHEN OTHERS THEN
46.860 - Write_Error_Text___ (error_text_, ' Failed to rebuild dictionary_sys_state_event_tab.');
46.861 - Write_Error_Text___ (error_text_, ' '||dbms_utility.format_error_backtrace);
46.862 - END Rebuild_All_State_Event___;
46.863 -
46.864 -
46.865 -
46.866 - PROCEDURE Rebuild_State_Transitions___(full_mode_ BOOLEAN DEFAULT TRUE) IS
46.867 -
46.868 - last_update_ DATE DEFAULT NULL;
46.869 -
46.870 - match_ INTEGER;
46.871 - counter_ INTEGER;
46.872 - allowed_event_ VARCHAR2(32);
46.873 - state_trans_ VARCHAR2(130);
46.874 - error_count_ NUMBER;
46.875 - position_ NUMBER;
46.876 -
46.877 - bulk_errors EXCEPTION;
46.878 - PRAGMA EXCEPTION_INIT(bulk_errors, -24381);
46.879 -
46.880 - CURSOR get_state_events_
46.881 - IS
46.882 - SELECT lu_name, package_name, db_state
46.883 - FROM dictionary_sys_state_tab d, user_objects o
46.884 - WHERE d.package_name = o.object_name
46.885 - AND o.object_type = 'PACKAGE BODY'
46.886 - AND TO_DATE(o.timestamp,'RRRR-MM-DD:HH24:MI:SS') > last_update_;
46.887 -
46.888 - TYPE state_array IS TABLE OF get_state_events_%ROWTYPE INDEX BY BINARY_INTEGER;
46.889 - state_list_ state_array;
46.890 -
46.891 - TYPE state_trans_array IS TABLE OF dictionary_sys_state_trans_tab%ROWTYPE INDEX BY BINARY_INTEGER;
46.892 - state_trans_values_ state_trans_array;
46.893 -
46.894 - FUNCTION Get_Allowed_State_Trans (
46.895 - pkg_name_ VARCHAR2,
46.896 - state_ VARCHAR2)
46.897 - RETURN VARCHAR2
46.898 - IS
46.899 - stmt_ VARCHAR2(200);
46.900 - events_ VARCHAR2(200);
46.901 - BEGIN
46.902 - Assert_SYS.Assert_Is_Package(pkg_name_);
46.903 - stmt_:='BEGIN :events:='||pkg_name_||'.Finite_State_Events__(:state); END;';
46.904 - -- ifs_assert_safe utgulk 20060105
46.905 - EXECUTE IMMEDIATE stmt_ USING IN OUT events_, state_ ;
46.906 - RETURN events_;
46.907 - EXCEPTION
46.908 - WHEN OTHERS THEN
46.909 - Write_Error_Text___ (error_text_, ' '||Rpad(Get_Logical_Unit_Module(Get_Logical_Unit(pkg_name_, 'PACKAGE')),6)||':Failed to fetch events for package '||pkg_name_||' and state '||state_);
46.910 - RETURN NULL;
46.911 - END Get_Allowed_State_Trans;
46.912 -
46.913 - BEGIN
46.914 -
46.915 - IF full_mode_ THEN
46.916 - last_update_:= SYSDATE-1000;
46.917 - ELSE
46.918 - SELECT NVL(MAX(to_date(timestamp, 'RRRR-MM-DD:HH24:MI:SS')),SYSDATE-1000) INTO last_update_
46.919 - FROM dictionary_sys_state_tab d, user_objects o
46.920 - WHERE d.package_name = o.object_name
46.921 - AND o.object_type = 'PACKAGE BODY';
46.922 - END IF;
46.923 -
46.924 - OPEN get_state_events_;
46.925 - FETCH get_state_events_ BULK COLLECT INTO state_list_;
46.926 - IF SQL%NOTFOUND THEN
46.927 - Write_Error_Text___ (error_text_, ' No state transitions found.');
46.928 - CLOSE get_state_events_;
46.929 - RETURN;
46.930 - ELSE
46.931 - BEGIN
46.932 - -- ifs_assert_safe pemase 20060215
46.933 - EXECUTE IMMEDIATE 'TRUNCATE TABLE dictionary_sys_state_trans_tab';
46.934 - EXCEPTION
46.935 - WHEN OTHERS THEN
46.936 - Write_Error_Text___ (error_text_, ' Failed to truncate dictionary_sys_state_trans_tab.');
46.937 - Write_Error_Text___ (error_text_, ' '||dbms_utility.format_error_backtrace);
46.938 - RETURN;
46.939 - END;
46.940 - END IF;
46.941 - CLOSE get_state_events_;
46.942 - counter_:=1;
46.943 - FOR i IN Nvl(state_list_.FIRST,0)..Nvl(state_list_.LAST,-1) LOOP
46.944 - state_trans_:=Get_Allowed_State_Trans(state_list_(i).package_name, state_list_(i).db_state);
46.945 - match_:=1;
46.946 - LOOP
46.947 - allowed_event_:=REGEXP_SUBSTR(state_trans_,'([[:alpha:]|[:digit:]|[:blank:]]+\^)', 1, match_);
46.948 - EXIT WHEN allowed_event_ IS NULL;
46.949 - state_trans_values_(counter_).lu_name:=state_list_(i).lu_name;
46.950 - state_trans_values_(counter_).package_name:=state_list_(i).package_name;
46.951 - state_trans_values_(counter_).state:=state_list_(i).db_state;
46.952 - state_trans_values_(counter_).allowed_event:=substr(allowed_event_,1,length(allowed_event_)-1);
46.953 - state_trans_values_(counter_).rowversion:=SYSDATE;
46.954 - match_:=match_+1;
46.955 - counter_:=counter_+1;
46.956 - END LOOP;
46.957 - END LOOP;
46.958 -
46.959 - BEGIN
46.960 - Write_Error_Text___ (error_text_, ' -------------------------------------------------------------');
46.961 - Write_Error_Text___ (error_text_, ' Dictionary Cache is being updated with '||state_trans_values_.count ||' State Transitions');
46.962 - Write_Error_Text___ (error_text_, ' -------------------------------------------------------------');
46.963 - FORALL j IN Nvl(state_trans_values_.FIRST,0)..Nvl(state_trans_values_.LAST,-1) SAVE EXCEPTIONS
46.964 - INSERT INTO dictionary_sys_state_trans_tab VALUES state_trans_values_(j);
46.965 - EXCEPTION
46.966 - WHEN bulk_errors THEN
46.967 - error_count_ := SQL%BULK_EXCEPTIONS.COUNT;
46.968 - Write_Error_Text___ (error_text_, ' '||to_char(error_count_)||' problem(s) when inserting dictionary state transition information.');
46.969 - FOR i IN 1..error_count_ LOOP
46.970 - position_ := SQL%BULK_EXCEPTIONS(i).ERROR_INDEX;
46.971 --- Write_Error_Text___ (error_text_, ' Position number '||to_char(position_));
46.972 - Write_Error_Text___ (error_text_, ' '||Rpad(Get_Logical_Unit_Module(state_trans_values_(position_).lu_name),6)||':Error ' || SQLERRM(-SQL%BULK_EXCEPTIONS(i).ERROR_CODE)||', ', FALSE);
46.973 - Write_Error_Text___ (error_text_, 'lu_name='||nvl(state_trans_values_(position_).lu_name, 'NULL')||', ', FALSE);
46.974 - Write_Error_Text___ (error_text_, 'package_name='||nvl(state_trans_values_(position_).package_name, 'NULL')||', ', FALSE);
46.975 - Write_Error_Text___ (error_text_, 'state='||nvl(state_trans_values_(position_).state, 'NULL')||', ', FALSE);
46.976 - Write_Error_Text___ (error_text_, 'allowed_event='||nvl(state_trans_values_(position_).allowed_event, 'NULL'));
46.977 - END LOOP;
46.978 - END;
46.979 -
46.980 - EXCEPTION
46.981 - WHEN OTHERS THEN
46.982 - Write_Error_Text___ (error_text_, ' Failed to rebuild dictionary_sys_state_trans_tab.');
46.983 - Write_Error_Text___ (error_text_, ' '||dbms_utility.format_error_backtrace);
46.984 - END Rebuild_State_Transitions___;
46.985 -
46.986 - PROCEDURE Tokenize_Lists___ (
46.987 - value_list_ IN VARCHAR2,
46.988 - values_ IN OUT domain_states_array )
46.989 - IS
46.990 - i_ NUMBER := 0;
46.991 - pos_ NUMBER := 1;
46.992 - end_pos_ NUMBER := 1;
46.993 - sep_ VARCHAR2(1) := Client_SYS.text_separator_;
46.994 - len_ NUMBER := length(value_list_);
46.995 - ind_ NUMBER := Nvl(values_.LAST+1,0);
46.996 - temp_ VARCHAR2(120);
46.997 - BEGIN
46.998 - end_pos_ := instr(value_list_, sep_, 1, i_ + 1);
46.999 - WHILE end_pos_ < len_ AND end_pos_ != 0 LOOP
46.1000 - BEGIN
46.1001 - temp_ := REPLACE(substr(value_list_, pos_, end_pos_ - pos_),'''||''','');
46.1002 - values_(ind_) := REPLACE(temp_,''' || ''','');
46.1003 - EXCEPTION
46.1004 - WHEN value_error THEN
46.1005 - values_(ind_) := 'ERROR!!!';
46.1006 - END;
46.1007 - pos_ := end_pos_ + 1;
46.1008 - i_ := i_ + 1;
46.1009 - ind_:=ind_+1;
46.1010 - end_pos_ := instr(value_list_, sep_, 1, i_ + 1);
46.1011 - END LOOP;
46.1012 - END Tokenize_Lists___;
46.1013 -
46.1014 - PROCEDURE Insert_Package_Information___ (
46.1015 - lu_name_ IN VARCHAR2,
46.1016 - module_ IN VARCHAR2,
46.1017 - package_name_ IN VARCHAR2,
46.1018 - lu_type_ IN VARCHAR2,
46.1019 - lu_sub_type_ IN VARCHAR2 )
46.1020 - IS
46.1021 - package_index_ NUMBER;
46.1022 - BEGIN
46.1023 - BEGIN
46.1024 - INSERT INTO dictionary_sys_tab
46.1025 - (lu_name, module, lu_type, rowversion)
46.1026 - VALUES
46.1027 - (lu_name_, module_, lu_type_, SYSDATE);
46.1028 - IF length(lu_name_) > 25 THEN
46.1029 - Write_Error_Text___ (error_text_, ' '||rpad(module_,6)||':LU Name '||nvl(lu_name_, 'NULL')||' is longer than 25 characters, this is not allowed.');
46.1030 - END IF;
46.1031 - EXCEPTION
46.1032 - WHEN dup_val_on_index THEN
46.1033 - UPDATE dictionary_sys_tab
46.1034 - SET rowversion = SYSDATE,
46.1035 - module = module_,
46.1036 - lu_type = lu_type_
46.1037 - WHERE lu_name = lu_name_;
46.1038 - WHEN OTHERS THEN
46.1039 - Write_Error_Text___ (error_text_, ' '||rpad(module_,6)||':Undefined problem when inserting LU dictionary information for package '||package_name_||', ', FALSE);
46.1040 - Write_Error_Text___ (error_text_, 'LU Name='||nvl(lu_name_, 'NULL')||', ', FALSE);
46.1041 - Write_Error_Text___ (error_text_, 'LU Type='||nvl(lu_type_, 'NULL'));
46.1042 - END;
46.1043 - -- Insert and if already existing then update.
46.1044 - -- This is more efficient when performing a full refresh!
46.1045 - BEGIN
46.1046 - Get_Next_Pkg_Index___(lu_name_, package_index_);
46.1047 - INSERT INTO dictionary_sys_package_tab
46.1048 - (lu_name, package_name, package_index, package_type, rowversion)
46.1049 - VALUES
46.1050 - (lu_name_, package_name_, package_index_, lu_sub_type_, SYSDATE);
46.1051 - --
46.1052 - -- Fix problems with LU that has more than one _API package (e.g. for state handling).
46.1053 - --
46.1054 - UPDATE Dictionary_Sys_Package_Tab
46.1055 - SET package_index = 0
46.1056 - WHERE lu_name IN (SELECT lu_name
46.1057 - FROM Dictionary_Sys_Package_Tab
46.1058 - WHERE package_name LIKE '%_API'
46.1059 - GROUP BY lu_name
46.1060 - HAVING count(*) > 1)
46.1061 - AND package_name = Upper(Regexp_Replace(lu_name,
46.1062 - '([a-z])([A-Z])',
46.1063 - '\1_\2',
46.1064 - 1,
46.1065 - 0,
46.1066 - 'c') || '_API')
46.1067 - AND package_index != 1;
46.1068 - --
46.1069 - EXCEPTION
46.1070 - WHEN dup_val_on_index THEN
46.1071 - UPDATE dictionary_sys_package_tab
46.1072 - SET rowversion = SYSDATE
46.1073 - WHERE lu_name = lu_name_
46.1074 - AND package_name = package_name_;
46.1075 - WHEN OTHERS THEN
46.1076 - Write_Error_Text___ (error_text_, ' '||Rpad(Get_Logical_Unit_Module(lu_name_),6)||':Undefined problem when inserting dictionary information for package '||package_name_||', ', FALSE);
46.1077 - Write_Error_Text___ (error_text_, 'LU Name='||nvl(lu_name_, 'NULL')||', ', FALSE);
46.1078 - Write_Error_Text___ (error_text_, 'Package Name='||nvl(package_name_, 'NULL')||', ', FALSE);
46.1079 - Write_Error_Text___ (error_text_, 'Package Index='||nvl(to_char(pkg_index_), 'NULL')||', ', FALSE);
46.1080 - Write_Error_Text___ (error_text_, 'Package Type='||nvl(lu_sub_type_, 'NULL'));
46.1081 - END;
46.1082 - END Insert_Package_Information___;
46.1083 -
46.1084 - PROCEDURE Insert_View_Information___(
46.1085 - lu_name_ IN VARCHAR2,
46.1086 - module_ IN VARCHAR2,
46.1087 - view_name_ IN VARCHAR2,
46.1088 - view_prompt_ IN VARCHAR2 )
46.1089 - IS
46.1090 - base_view_ BOOLEAN;
46.1091 - view_index_ NUMBER;
46.1092 - view_type_ VARCHAR2(1);
46.1093 - lu_prompt_ VARCHAR2(200);
46.1094 - BEGIN
46.1095 - -- Find the base view according to naming conventions...
46.1096 - -- (Other possible base views are handled at the end of the process)
46.1097 - IF view_name_ = Clientnametodbname_(lu_name_) THEN
46.1098 - lu_prompt_ := view_prompt_;
46.1099 - base_view_ := TRUE;
46.1100 - ELSE
46.1101 - lu_prompt_ := NULL;
46.1102 - base_view_ := FALSE;
46.1103 - END IF;
46.1104 - -- Insert into dictionary_sys_tab. It is likely this entry already exist (from package information),
46.1105 - -- then only updating the prompt and rowversion is more efficent.
46.1106 - IF base_view_ THEN
46.1107 - UPDATE dictionary_sys_tab
46.1108 - SET rowversion = SYSDATE,
46.1109 - lu_prompt = lu_prompt_
46.1110 - WHERE lu_name = lu_name_;
46.1111 - IF SQL%NOTFOUND THEN
46.1112 - INSERT INTO dictionary_sys_tab
46.1113 - (lu_name, module, lu_prompt, rowversion)
46.1114 - VALUES
46.1115 - (lu_name_, module_, lu_prompt_, SYSDATE);
46.1116 - END IF;
46.1117 - ELSE
46.1118 - UPDATE dictionary_sys_tab
46.1119 - SET rowversion = SYSDATE
46.1120 - WHERE lu_name = lu_name_;
46.1121 - IF SQL%NOTFOUND THEN
46.1122 - INSERT INTO dictionary_sys_tab
46.1123 - (lu_name, module, rowversion)
46.1124 - VALUES
46.1125 - (lu_name_, module_, SYSDATE);
46.1126 - END IF;
46.1127 - END IF;
46.1128 - -- Insert into dictionary_sys_view_tab
46.1129 - -- Insert and if already existing then update.
46.1130 - -- This is more efficient when performing a full refresh!
46.1131 - BEGIN
46.1132 - Get_Next_View_Index___(lu_name_, view_index_);
46.1133 - IF base_view_ THEN
46.1134 - view_type_ := 'B';
46.1135 - ELSIF substr(view_name_, -4) = '_REP' THEN
46.1136 - view_type_ := 'R';
46.1137 - ELSE
46.1138 - view_type_ := 'A';
46.1139 - END IF;
46.1140 - INSERT INTO dictionary_sys_view_tab
46.1141 - (lu_name, view_name, view_type, view_prompt, view_index, rowversion)
46.1142 - VALUES
46.1143 - (lu_name_, view_name_, view_type_, view_prompt_, view_index_, SYSDATE);
46.1144 - EXCEPTION
46.1145 - WHEN dup_val_on_index THEN
46.1146 - UPDATE dictionary_sys_view_tab
46.1147 - SET view_type = view_type_,
46.1148 - view_prompt = view_prompt_,
46.1149 - rowversion = SYSDATE
46.1150 - WHERE lu_name = lu_name_
46.1151 - AND view_name = view_name_;
46.1152 - WHEN OTHERS THEN
46.1153 - Write_Error_Text___ (error_text_, ' '||Rpad(module_,6)||':Undefined problem when inserting dictionary information for view '||view_name_||', ', FALSE);
46.1154 - Write_Error_Text___ (error_text_, 'LU Name='||nvl(lu_name_, 'NULL')||', ', FALSE);
46.1155 - Write_Error_Text___ (error_text_, 'View Name='||nvl(view_name_, 'NULL')||', ', FALSE);
46.1156 - Write_Error_Text___ (error_text_, 'View Prompt='||nvl(view_prompt_, 'NULL')||', ', FALSE);
46.1157 - Write_Error_Text___ (error_text_, 'View Index='||nvl(to_char(view_index_), 'NULL')||', ');
46.1158 - END;
46.1159 - END Insert_View_Information___;
46.1160 -
46.1161 - PROCEDURE Refresh_View_Columns___ (
46.1162 - all_views_ IN BOOLEAN,
46.1163 - start_time_ IN DATE )
46.1164 - IS
46.1165 - CURSOR get_view_columns IS
46.1166 - SELECT u.table_name view_name, u.column_name column_name, c.comments comments, u.column_id column_id
46.1167 - FROM user_tab_columns u, fnd_col_comments c
46.1168 - WHERE u.table_name = c.table_name
46.1169 - AND u.column_name = c.column_name
46.1170 - ORDER BY u.table_name, u.column_name;
46.1171 -
46.1172 - CURSOR get_new_view_columns IS
46.1173 - SELECT u.table_name view_name, u.column_name column_name, c.comments comments, u.column_id column_id
46.1174 - FROM user_tab_columns u, fnd_col_comments c, dictionary_sys_view_tab v
46.1175 - WHERE u.table_name = c.table_name
46.1176 - AND u.table_name = v.view_name
46.1177 - AND u.column_name = c.column_name
46.1178 - AND v.rowversion >= start_time_
46.1179 - ORDER BY u.table_name, u.column_name;
46.1180 -
46.1181 - column_flags_ VARCHAR2(5);
46.1182 - lu_name_ VARCHAR2(30);
46.1183 - prev_view_ VARCHAR2(30) := 'NIL';
46.1184 - n_ NUMBER := 0;
46.1185 - position_ NUMBER;
46.1186 - error_count_ NUMBER;
46.1187 - bulk_errors EXCEPTION;
46.1188 - PRAGMA EXCEPTION_INIT(bulk_errors, -24381);
46.1189 -
46.1190 - TYPE view_column_array IS TABLE OF get_view_columns%ROWTYPE INDEX BY BINARY_INTEGER;
46.1191 - view_columns_ view_column_array;
46.1192 -
46.1193 - TYPE complete_array IS TABLE OF dictionary_sys_view_column_tab%ROWTYPE INDEX BY BINARY_INTEGER;
46.1194 - complete_columns_ complete_array;
46.1195 - BEGIN
46.1196 - --
46.1197 - -- Fetch view column information and delete old information
46.1198 - --
46.1199 - IF all_views_ THEN
46.1200 - OPEN get_view_columns;
46.1201 - FETCH get_view_columns BULK COLLECT INTO view_columns_;
46.1202 - CLOSE get_view_columns;
46.1203 - -- Remove all old information
46.1204 - -- ifs_assert_safe pemase 20060215
46.1205 - EXECUTE IMMEDIATE 'TRUNCATE TABLE dictionary_sys_view_column_tab';
46.1206 - ELSE
46.1207 - OPEN get_new_view_columns;
46.1208 - FETCH get_new_view_columns BULK COLLECT INTO view_columns_;
46.1209 - CLOSE get_new_view_columns;
46.1210 - -- Remove old information for all of the methods that is being updated
46.1211 - DELETE FROM dictionary_sys_view_column_tab c
46.1212 - WHERE EXISTS (SELECT 1
46.1213 - FROM dictionary_sys_view_tab v
46.1214 - WHERE v.view_name = c.view_name
46.1215 - AND v.rowversion >= start_time_);
46.1216 - END IF;
46.1217 -
46.1218 - -- Process all of the view column information
46.1219 - IF view_columns_.COUNT > 0 THEN
46.1220 - FOR i IN Nvl(view_columns_.FIRST,0)..Nvl(view_columns_.LAST,-1) LOOP
46.1221 - -- Find the lu name for the view if view has changed
46.1222 - IF (prev_view_ <> view_columns_(i).view_name) THEN
46.1223 - lu_name_ := Get_Logical_Unit(view_columns_(i).view_name, 'VIEW');
46.1224 - prev_view_ := view_columns_(i).view_name;
46.1225 - END IF;
46.1226 - IF lu_name_ IS NOT NULL THEN
46.1227 - BEGIN
46.1228 - complete_columns_(n_).lu_name := lu_name_;
46.1229 - complete_columns_(n_).view_name := view_columns_(i).view_name;
46.1230 - complete_columns_(n_).column_name := view_columns_(i).column_name;
46.1231 - complete_columns_(n_).column_index := view_columns_(i).column_id;
46.1232 - complete_columns_(n_).rowversion := SYSDATE;
46.1233 - complete_columns_(n_).column_datatype := Comment_Value_('DATATYPE',view_columns_(i).comments);
46.1234 - complete_columns_(n_).column_prompt := Comment_Value_('PROMPT',view_columns_(i).comments);
46.1235 - complete_columns_(n_).column_reference := Comment_Value_('REF',view_columns_(i).comments);
46.1236 - column_flags_ := Comment_Value_('FLAGS',view_columns_(i).comments);
46.1237 - complete_columns_(n_).type_flag := substr(column_flags_,1,1);
46.1238 - complete_columns_(n_).required_flag := substr(column_flags_,2,1);
46.1239 - complete_columns_(n_).insert_flag := substr(column_flags_,3,1);
46.1240 - complete_columns_(n_).update_flag := substr(column_flags_,4,1);
46.1241 - complete_columns_(n_).lov_flag := substr(column_flags_,5,1);
46.1242 - EXCEPTION
46.1243 - WHEN OTHERS THEN
46.1244 - Write_Error_Text___ (error_text_, ' ??????:Incorrect comments for view column '||view_columns_(i).view_name||'.'||view_columns_(i).column_name);
46.1245 - complete_columns_(n_).column_datatype := NULL;
46.1246 - complete_columns_(n_).column_prompt := NULL;
46.1247 - complete_columns_(n_).column_reference := NULL;
46.1248 - complete_columns_(n_).type_flag := NULL;
46.1249 - complete_columns_(n_).required_flag := NULL;
46.1250 - complete_columns_(n_).insert_flag := NULL;
46.1251 - complete_columns_(n_).update_flag := NULL;
46.1252 - complete_columns_(n_).lov_flag := NULL;
46.1253 - END;
46.1254 - n_ := n_ + 1;
46.1255 - END IF;
46.1256 - END LOOP;
46.1257 -
46.1258 - -- Insert all the values into dictionary_sys_view_column_tab
46.1259 - BEGIN
46.1260 - FORALL j IN Nvl(complete_columns_.FIRST,0)..Nvl(complete_columns_.LAST,-1) SAVE EXCEPTIONS
46.1261 - INSERT INTO dictionary_sys_view_column_tab VALUES complete_columns_(j);
46.1262 - EXCEPTION
46.1263 - WHEN bulk_errors THEN
46.1264 - error_count_ := SQL%BULK_EXCEPTIONS.COUNT;
46.1265 - Write_Error_Text___ (error_text_, ' '||to_char(error_count_)||' problem(s) when inserting dictionary view column information!');
46.1266 - FOR i IN 1..error_count_ LOOP
46.1267 - position_ := SQL%BULK_EXCEPTIONS(i).ERROR_INDEX;
46.1268 - Write_Error_Text___ (error_text_, ' '||Rpad(Get_Logical_Unit_Module(complete_columns_(position_).lu_name),6)||':Error ' || SQLERRM(-SQL%BULK_EXCEPTIONS(i).ERROR_CODE)||', ', FALSE);
46.1269 - Write_Error_Text___ (error_text_, 'Lu Name='||nvl(complete_columns_(position_).lu_name, 'NULL')||', ', FALSE);
46.1270 - Write_Error_Text___ (error_text_, 'View Name='||nvl(complete_columns_(position_).view_name, 'NULL')||', ', FALSE);
46.1271 - Write_Error_Text___ (error_text_, 'Column Name='||nvl(complete_columns_(position_).column_name, 'NULL'));
46.1272 - END LOOP;
46.1273 - END;
46.1274 - END IF;
46.1275 - END Refresh_View_Columns___;
46.1276 -
46.1277 - -- Handles both domain and state information, behaves different depending on info_type
46.1278 - PROCEDURE Refresh_Domain_State_Info___ (
46.1279 - info_type_ IN VARCHAR2,
46.1280 - lu_name_ IN VARCHAR2,
46.1281 - package_name_ IN VARCHAR2 )
46.1282 - IS
46.1283 - -- Domain information
46.1284 - CURSOR get_domain_info(package_name_ IN VARCHAR2,list_type_ VARCHAR2) IS
46.1285 - SELECT ltrim(rtrim(substr(text, instr(text, '''')+ 1) )) list_values,line
46.1286 - FROM user_source t
46.1287 - WHERE type = 'PACKAGE BODY'
46.1288 - AND name = package_name_
46.1289 - AND text NOT LIKE '--%'
46.1290 - AND text NOT LIKE '%/%*%'
46.1291 - AND text NOT LIKE '%*%/'
46.1292 - AND line BETWEEN (SELECT MIN(line)
46.1293 - FROM user_source x
46.1294 - WHERE type = 'PACKAGE BODY'
46.1295 - AND name = package_name_
46.1296 - AND x.text LIKE '%'||list_type_||'%:=%''%''%')
46.1297 - AND
46.1298 - (SELECT MIN(line)
46.1299 - FROM user_source y
46.1300 - WHERE type = 'PACKAGE BODY'
46.1301 - AND y.name = package_name_
46.1302 - AND y.text LIKE '%;%'
46.1303 - AND y.line >= (SELECT min(line)
46.1304 - FROM user_source
46.1305 - WHERE type = 'PACKAGE BODY'
46.1306 - AND name = package_name_
46.1307 - AND text LIKE '%'||list_type_||'%:=%''%''%'));
46.1308 -
46.1309 -
46.1310 - -- State information
46.1311 - CURSOR get_state_info(package_name_ IN VARCHAR2) IS
46.1312 - SELECT ltrim(rtrim(substr(text, 1, instr(text, 'CONSTANT') - 1))) list_type, ltrim(rtrim(substr(text, instr(text, '''')+ 1) )) list_values
46.1313 - FROM user_source
46.1314 - WHERE type = 'PACKAGE BODY'
46.1315 - AND name = package_name_
46.1316 - AND (text LIKE '%db_state_list_%:=%''%''%' OR text LIKE '%client_state_list_%:=%''%''%')
46.1317 - AND text NOT LIKE '--%'
46.1318 - AND text NOT LIKE '%/%*%'
46.1319 - AND text NOT LIKE '%*%/';
46.1320 --- AND line BETWEEN 2 AND 11;
46.1321 -
46.1322 - refresh_domain_ BOOLEAN := info_type_ = 'domain';
46.1323 - position_ NUMBER;
46.1324 - error_count_ NUMBER;
46.1325 - bulk_errors EXCEPTION;
46.1326 - PRAGMA EXCEPTION_INIT(bulk_errors, -24381);
46.1327 - list_type_ VARCHAR2(100);
46.1328 -
46.1329 - TYPE domain_array IS TABLE OF get_domain_info%ROWTYPE INDEX BY BINARY_INTEGER;
46.1330 - list_ domain_array;
46.1331 - BEGIN
46.1332 - -- Delete old values (they can only exist if this is not a full refresh)
46.1333 - IF NOT refresh_all_ THEN
46.1334 - IF refresh_domain_ THEN
46.1335 - DELETE FROM dictionary_sys_domain_tab
46.1336 - WHERE lu_name = lu_name_
46.1337 - AND package_name = package_name_;
46.1338 - ELSE
46.1339 - DELETE FROM dictionary_sys_state_tab
46.1340 - WHERE lu_name = lu_name_
46.1341 - AND package_name = package_name_;
46.1342 - END IF;
46.1343 - END IF;
46.1344 -
46.1345 - -- Clear variables
46.1346 - db_values_.DELETE;
46.1347 - client_values_.DELETE;
46.1348 - complete_values_.DELETE;
46.1349 -
46.1350 - IF refresh_domain_ THEN
46.1351 -
46.1352 - OPEN get_domain_info(package_name_,'db_value_list_');
46.1353 - FETCH get_domain_info BULK COLLECT INTO list_;
46.1354 - CLOSE get_domain_info;
46.1355 -
46.1356 - FOR j_ IN Nvl(list_.FIRST,0)..Nvl(list_.LAST,-1) LOOP
46.1357 - Tokenize_Lists___(list_(j_).list_values, db_values_);
46.1358 - END LOOP;
46.1359 -
46.1360 - list_.DELETE;
46.1361 - OPEN get_domain_info(package_name_,'client_value_list_');
46.1362 - FETCH get_domain_info BULK COLLECT INTO list_;
46.1363 - CLOSE get_domain_info;
46.1364 -
46.1365 - FOR j_ IN Nvl(list_.FIRST,0)..Nvl(list_.LAST,-1) LOOP
46.1366 - Tokenize_Lists___(list_(j_).list_values, client_values_);
46.1367 - END LOOP;
46.1368 - ELSE
46.1369 - FOR list IN get_state_info(package_name_) LOOP
46.1370 - -- Break down the list into single values in an array
46.1371 - IF list.list_type = 'db_state_list_' THEN
46.1372 - Tokenize_Lists___(list.list_values, db_values_);
46.1373 - ELSIF list.list_type = 'client_state_list_' THEN
46.1374 - Tokenize_Lists___(list.list_values, client_values_);
46.1375 - END IF;
46.1376 - END LOOP;
46.1377 - -- Get state events
46.1378 - -- translate db values to an PL/SQL collection
46.1379 -
46.1380 - END IF;
46.1381 -
46.1382 - IF db_values_.count > 0 THEN
46.1383 - -- Fill the result array with the rest of the necessary information
46.1384 - Fill_List_Array___(info_type_, lu_name_, package_name_, db_values_, client_values_, complete_values_);
46.1385 -
46.1386 - -- Insert all of the values into dictionary_sys_domain_tab
46.1387 - BEGIN
46.1388 - IF refresh_domain_ THEN
46.1389 - FORALL j IN Nvl(complete_values_.FIRST,0)..Nvl(complete_values_.LAST,-1) SAVE EXCEPTIONS
46.1390 - INSERT INTO dictionary_sys_domain_tab VALUES complete_values_(j);
46.1391 - ELSE
46.1392 - FORALL j IN Nvl(complete_values_.FIRST,0)..Nvl(complete_values_.LAST,-1) SAVE EXCEPTIONS
46.1393 - INSERT INTO dictionary_sys_state_tab VALUES complete_values_(j);
46.1394 - END IF;
46.1395 - EXCEPTION
46.1396 - WHEN bulk_errors THEN
46.1397 - error_count_ := SQL%BULK_EXCEPTIONS.COUNT;
46.1398 - Write_Error_Text___ (error_text_, ' '||to_char(error_count_)||' problem(s) when inserting dictionary information for '||info_type_||' package '||package_name_||'!');
46.1399 - FOR i IN 1..error_count_ LOOP
46.1400 - position_ := SQL%BULK_EXCEPTIONS(i).ERROR_INDEX - 1;
46.1401 --- Write_Error_Text___ (error_text_, ' Position number '||to_char(position_));
46.1402 - Write_Error_Text___ (error_text_, ' '||Rpad(Get_Logical_Unit_Module(lu_name_),6)||':Error ' || SQLERRM(-SQL%BULK_EXCEPTIONS(i).ERROR_CODE)||', ', FALSE);
46.1403 - Write_Error_Text___ (error_text_, 'Db Value='||nvl(complete_values_(position_).db_value, 'NULL')||', ', FALSE);
46.1404 - Write_Error_Text___ (error_text_, 'Client Value='||nvl(complete_values_(position_).client_value, 'NULL'));
46.1405 - END LOOP;
46.1406 - END;
46.1407 - END IF;
46.1408 - END Refresh_Domain_State_Info___;
46.1409 -
46.1410 - PROCEDURE Refresh_Method_Arguments___ (
46.1411 - all_methods_ IN BOOLEAN,
46.1412 - start_time_ IN DATE )
46.1413 - IS
46.1414 - CURSOR get_met_arguments IS
46.1415 - SELECT package_name, object_name method_name, argument_name, position, data_type, in_out, nvl(to_number(overload), 0) overload
46.1416 - FROM user_arguments
46.1417 - WHERE package_name IS NOT NULL
46.1418 - AND argument_name IS NOT NULL
46.1419 - AND data_type IS NOT NULL
46.1420 - AND data_level = 0
46.1421 - ORDER BY package_name, object_name;
46.1422 -
46.1423 - CURSOR get_new_met_arguments IS
46.1424 - SELECT ua.package_name, ua.object_name method_name, ua.argument_name, ua.position, ua.data_type, ua.in_out, nvl(to_number(ua.overload), 0) overload
46.1425 - FROM user_arguments ua, dictionary_sys_package_tab p
46.1426 - WHERE ua.package_name IS NOT NULL
46.1427 - AND ua.argument_name IS NOT NULL
46.1428 - AND ua.data_type IS NOT NULL
46.1429 - AND ua.data_level = 0
46.1430 - AND ua.package_name = p.package_name
46.1431 - AND p.rowversion >= start_time_
46.1432 - ORDER BY ua.package_name, ua.object_name;
46.1433 -
46.1434 - lu_name_ VARCHAR2(30);
46.1435 - prev_pkg_ VARCHAR2(30) := 'NIL';
46.1436 - n_ NUMBER := 0;
46.1437 - position_ NUMBER;
46.1438 - error_count_ NUMBER;
46.1439 - bulk_errors EXCEPTION;
46.1440 - PRAGMA EXCEPTION_INIT(bulk_errors, -24381);
46.1441 -
46.1442 - TYPE met_argument_array IS TABLE OF get_met_arguments%ROWTYPE INDEX BY BINARY_INTEGER;
46.1443 - met_arguments met_argument_array;
46.1444 -
46.1445 - TYPE complete_array IS TABLE OF dictionary_sys_argument_tab%ROWTYPE INDEX BY BINARY_INTEGER;
46.1446 - all_arguments_ complete_array;
46.1447 - BEGIN
46.1448 - --
46.1449 - -- Fetch method argument information and delete old information
46.1450 - --
46.1451 - IF all_methods_ THEN
46.1452 - OPEN get_met_arguments;
46.1453 - FETCH get_met_arguments BULK COLLECT INTO met_arguments;
46.1454 - CLOSE get_met_arguments;
46.1455 - -- Remove all old information
46.1456 - -- ifs_assert_safe pemase 20060215
46.1457 - EXECUTE IMMEDIATE 'TRUNCATE TABLE dictionary_sys_argument_tab';
46.1458 - ELSE
46.1459 - OPEN get_new_met_arguments;
46.1460 - FETCH get_new_met_arguments BULK COLLECT INTO met_arguments;
46.1461 - CLOSE get_new_met_arguments;
46.1462 - -- Remove old information for all of the methods that is being updated
46.1463 - DELETE FROM dictionary_sys_argument_tab a
46.1464 - WHERE EXISTS (SELECT 1
46.1465 - FROM dictionary_sys_package_tab p
46.1466 - WHERE a.package_name = p.package_name
46.1467 - AND p.rowversion >= start_time_);
46.1468 - END IF;
46.1469 - --
46.1470 - -- Process method argument information
46.1471 - --
46.1472 - IF met_arguments.COUNT > 0 THEN
46.1473 - FOR i IN Nvl(met_arguments.FIRST,0)..Nvl(met_arguments.LAST,-1) LOOP
46.1474 - -- Find the lu name for the package if package has changed
46.1475 - IF (prev_pkg_ <> met_arguments(i).package_name) THEN
46.1476 - lu_name_ := Get_Logical_Unit(met_arguments(i).package_name, 'PACKAGE');
46.1477 - prev_pkg_ := met_arguments(i).package_name;
46.1478 - END IF;
46.1479 - IF lu_name_ IS NOT NULL THEN
46.1480 - -- Insert the values into the complete array
46.1481 - all_arguments_(n_).lu_name := lu_name_;
46.1482 - all_arguments_(n_).package_name := met_arguments(i).package_name;
46.1483 - all_arguments_(n_).method_name := met_arguments(i).method_name;
46.1484 - all_arguments_(n_).argument_name := met_arguments(i).argument_name;
46.1485 - all_arguments_(n_).argument_index := met_arguments(i).position;
46.1486 - all_arguments_(n_).argument_datatype := met_arguments(i).data_type;
46.1487 - all_arguments_(n_).argument_type := met_arguments(i).in_out;
46.1488 - all_arguments_(n_).overload := met_arguments(i).overload;
46.1489 - all_arguments_(n_).rowversion := SYSDATE;
46.1490 - n_ := n_ + 1;
46.1491 - END IF;
46.1492 - END LOOP;
46.1493 -
46.1494 - -- Insert all the values into dictionary_sys_argument_tab
46.1495 - BEGIN
46.1496 - FORALL j IN Nvl(all_arguments_.FIRST,0)..Nvl(all_arguments_.LAST,-1) SAVE EXCEPTIONS
46.1497 - INSERT INTO dictionary_sys_argument_tab VALUES all_arguments_(j);
46.1498 - EXCEPTION
46.1499 - WHEN bulk_errors THEN
46.1500 - error_count_ := SQL%BULK_EXCEPTIONS.COUNT;
46.1501 - Write_Error_Text___ (error_text_, ' '||to_char(error_count_)||' problem(s) when inserting dictionary method argument information!');
46.1502 - FOR i IN 1..error_count_ LOOP
46.1503 - position_ := SQL%BULK_EXCEPTIONS(i).ERROR_INDEX;
46.1504 - Write_Error_Text___ (error_text_, ' '||Rpad(Get_Logical_Unit_Module(all_arguments_(position_).lu_name),6)||':Error ' || SQLERRM(-SQL%BULK_EXCEPTIONS(i).ERROR_CODE)||', ', FALSE);
46.1505 - Write_Error_Text___ (error_text_, 'Lu Name='||nvl(all_arguments_(position_).lu_name, 'NULL')||', ', FALSE);
46.1506 - Write_Error_Text___ (error_text_, 'Package Name='||nvl(all_arguments_(position_).package_name, 'NULL')||', ', FALSE);
46.1507 - Write_Error_Text___ (error_text_, 'Method Name='||nvl(all_arguments_(position_).method_name, 'NULL')||', ', FALSE);
46.1508 - Write_Error_Text___ (error_text_, 'Argument Name='||nvl(all_arguments_(position_).argument_name, 'NULL'));
46.1509 - END LOOP;
46.1510 - END;
46.1511 -
46.1512 - END IF;
46.1513 - END Refresh_Method_Arguments___;
46.1514 -
46.1515 - PROCEDURE Refresh_Methods___ (
46.1516 - all_methods_ IN BOOLEAN,
46.1517 - start_time_ IN DATE )
46.1518 - IS
46.1519 - CURSOR get_methods IS
46.1520 - SELECT p.object_name pkg, procedure_name met
46.1521 - FROM user_procedures p
46.1522 - WHERE substr(object_name, -4) IN ('_API', '_RPI', '_SYS')
46.1523 - AND procedure_name IS NOT NULL
46.1524 - GROUP BY procedure_name, object_name
46.1525 - ORDER BY object_name;
46.1526 -
46.1527 - CURSOR get_pragma_methods IS
46.1528 - SELECT name pkg,
46.1529 - rtrim(ltrim(replace(replace(replace(
46.1530 - upper(substr(text,1,instr(text,',') - 1 ))
46.1531 - ,'(',''),'PRAGMA',''),'RESTRICT_REFERENCES',''))) met
46.1532 - FROM user_source
46.1533 - WHERE type = 'PACKAGE'
46.1534 - AND upper(text) LIKE '%PRAGMA%(%,%WNDS%'
46.1535 - AND text NOT LIKE '--%'
46.1536 - ORDER BY name;
46.1537 -
46.1538 - CURSOR get_new_methods IS
46.1539 - SELECT ua.object_name pkg, ua.procedure_name met
46.1540 - FROM user_procedures ua, dictionary_sys_package_tab p
46.1541 - WHERE substr(object_name, -4) IN ('_API', '_RPI', '_SYS')
46.1542 - AND p.package_name = ua.object_name
46.1543 - AND procedure_name IS NOT NULL
46.1544 - AND p.rowversion >= start_time_
46.1545 - GROUP BY ua.object_name, ua.procedure_name
46.1546 - ORDER BY ua.object_name;
46.1547 -
46.1548 - CURSOR get_new_pragma_methods IS
46.1549 - SELECT u.name pkg,
46.1550 - rtrim(ltrim(replace(replace(replace(
46.1551 - upper(substr(u.text,1,instr(u.text,',') - 1 ))
46.1552 - ,'(',''),'PRAGMA',''),'RESTRICT_REFERENCES',''))) met
46.1553 - FROM user_source u, dictionary_sys_package_tab p
46.1554 - WHERE u.type = 'PACKAGE'
46.1555 - AND upper(u.text) LIKE '%PRAGMA%(%,%WNDS%'
46.1556 - AND u.text NOT LIKE '--%'
46.1557 - AND u.name = p.package_name
46.1558 - AND p.rowversion >= start_time_
46.1559 - ORDER BY name;
46.1560 -
46.1561 - lu_name_ VARCHAR2(30);
46.1562 - prev_pkg_ VARCHAR2(30) := 'NIL';
46.1563 - n_ NUMBER := 0;
46.1564 - position_ NUMBER;
46.1565 - error_count_ NUMBER;
46.1566 - bulk_errors EXCEPTION;
46.1567 - PRAGMA EXCEPTION_INIT(bulk_errors, -24381);
46.1568 -
46.1569 - TYPE method_array IS TABLE OF get_methods%ROWTYPE INDEX BY BINARY_INTEGER;
46.1570 - methods_ method_array;
46.1571 -
46.1572 - TYPE complete_array IS TABLE OF dictionary_sys_method_tab%ROWTYPE INDEX BY BINARY_INTEGER;
46.1573 - complete_methods_ complete_array;
46.1574 - BEGIN
46.1575 - --
46.1576 - -- Fetch method information and delete old information
46.1577 - --
46.1578 - IF all_methods_ THEN
46.1579 - OPEN get_methods;
46.1580 - FETCH get_methods BULK COLLECT INTO methods_;
46.1581 - CLOSE get_methods;
46.1582 - -- Remove all old information for methods
46.1583 - -- ifs_assert_safe pemase 20060215
46.1584 - EXECUTE IMMEDIATE 'TRUNCATE TABLE dictionary_sys_method_tab';
46.1585 - ELSE
46.1586 - OPEN get_new_methods;
46.1587 - FETCH get_new_methods BULK COLLECT INTO methods_;
46.1588 - CLOSE get_new_methods;
46.1589 - -- Remove old information for all of the methods that is being updated
46.1590 - DELETE FROM dictionary_sys_method_tab m
46.1591 - WHERE EXISTS (SELECT 1
46.1592 - FROM dictionary_sys_package_tab p
46.1593 - WHERE p.package_name = m.package_name
46.1594 - AND p.rowversion >= start_time_);
46.1595 - END IF;
46.1596 - --
46.1597 - -- Process method information
46.1598 - --
46.1599 - IF methods_.COUNT > 0 THEN
46.1600 - FOR i IN Nvl(methods_.FIRST,0)..Nvl(methods_.LAST,-1) LOOP
46.1601 - IF (prev_pkg_ <> methods_(i).pkg) THEN
46.1602 - lu_name_ := Get_Logical_Unit(methods_(i).pkg, 'PACKAGE');
46.1603 - prev_pkg_ := methods_(i).pkg;
46.1604 - END IF;
46.1605 - IF lu_name_ IS NOT NULL THEN
46.1606 - method_ := replace(initcap(replace(methods_(i).met,'_',' ')),' ','_');
46.1607 - -- Insert the values into the complete array
46.1608 - complete_methods_(n_).lu_name := lu_name_;
46.1609 - complete_methods_(n_).package_name := methods_(i).pkg;
46.1610 - complete_methods_(n_).method_name := method_;
46.1611 - complete_methods_(n_).method_type := 'N';
46.1612 - complete_methods_(n_).rowversion := SYSDATE;
46.1613 - n_ := n_ + 1;
46.1614 - END IF;
46.1615 - END LOOP;
46.1616 -
46.1617 - -- Insert all the values into dictionary_sys_method_tab
46.1618 - BEGIN
46.1619 - FORALL j IN Nvl(complete_methods_.FIRST,0)..Nvl(complete_methods_.LAST,-1) SAVE EXCEPTIONS
46.1620 - INSERT INTO dictionary_sys_method_tab VALUES complete_methods_(j);
46.1621 - EXCEPTION
46.1622 - WHEN bulk_errors THEN
46.1623 - error_count_ := SQL%BULK_EXCEPTIONS.COUNT;
46.1624 - Write_Error_Text___ (error_text_, ' '||to_char(error_count_)||' problem(s) when inserting dictionary method information!');
46.1625 - FOR i IN 1..error_count_ LOOP
46.1626 - position_ := SQL%BULK_EXCEPTIONS(i).ERROR_INDEX;
46.1627 - Write_Error_Text___ (error_text_, ' '||Rpad(Get_Logical_Unit_Module(complete_methods_(position_).lu_name),6)||':Error ' || SQLERRM(-SQL%BULK_EXCEPTIONS(i).ERROR_CODE)||', ', FALSE);
46.1628 - Write_Error_Text___ (error_text_, 'Lu Name='||nvl(complete_methods_(position_).lu_name, 'NULL')||', ', FALSE);
46.1629 - Write_Error_Text___ (error_text_, 'Package Name='||nvl(complete_methods_(position_).package_name, 'NULL')||', ', FALSE);
46.1630 - Write_Error_Text___ (error_text_, 'Method Name='||nvl(complete_methods_(position_).method_name, 'NULL'));
46.1631 - END LOOP;
46.1632 - END;
46.1633 - END IF;
46.1634 -
46.1635 - -- Clear arrays
46.1636 - methods_.DELETE;
46.1637 - complete_methods_.DELETE;
46.1638 -
46.1639 - --
46.1640 - -- Fetch pragma method information
46.1641 - --
46.1642 - IF all_methods_ THEN
46.1643 - OPEN get_pragma_methods;
46.1644 - FETCH get_pragma_methods BULK COLLECT INTO methods_;
46.1645 - CLOSE get_pragma_methods;
46.1646 - ELSE
46.1647 - OPEN get_new_pragma_methods;
46.1648 - FETCH get_new_pragma_methods BULK COLLECT INTO methods_;
46.1649 - CLOSE get_new_pragma_methods;
46.1650 - END IF;
46.1651 - --
46.1652 - -- Process pragma method information
46.1653 - --
46.1654 - IF methods_.COUNT > 0 THEN
46.1655 - -- Initiate sub type
46.1656 - pkg_lu_sub_type_ := 'N';
46.1657 - FOR i IN Nvl(methods_.FIRST,0)..Nvl(methods_.LAST,-1) LOOP
46.1658 - -- Find the name of the LU for every new package
46.1659 - IF (prev_pkg_ <> methods_(i).pkg) THEN
46.1660 - lu_name_ := Get_Logical_Unit(methods_(i).pkg, 'PACKAGE');
46.1661 - prev_pkg_ := methods_(i).pkg;
46.1662 - END IF;
46.1663 - IF lu_name_ IS NOT NULL THEN
46.1664 - method_ := replace(initcap(replace(methods_(i).met,'_',' ')),' ','_');
46.1665 - -- Update the record in dictionary_sys_method_tab
46.1666 - BEGIN
46.1667 - UPDATE dictionary_sys_method_tab
46.1668 - SET method_type = 'P',
46.1669 - rowversion = SYSDATE
46.1670 - WHERE lu_name = lu_name_
46.1671 - AND package_name = methods_(i).pkg
46.1672 - AND method_name = method_;
46.1673 - IF SQL%NOTFOUND THEN
46.1674 - INSERT INTO dictionary_sys_method_tab
46.1675 - (lu_name, package_name, method_name, method_type, rowversion)
46.1676 - VALUES
46.1677 - (lu_name_, methods_(i).pkg, method_, 'P', SYSDATE);
46.1678 - END IF;
46.1679 - EXCEPTION
46.1680 - WHEN OTHERS THEN
46.1681 - Write_Error_Text___ (error_text_, ' '||Rpad(Get_Logical_Unit_Module(lu_name_),6)||':Undefined problem when inserting dictionary information for PRAGMA-method '||method_||' in package '||methods_(i).pkg||', ', FALSE);
46.1682 - Write_Error_Text___ (error_text_, 'Lu Name='||nvl(lu_name_, 'NULL')||', ', FALSE);
46.1683 - Write_Error_Text___ (error_text_, 'Package Name='||nvl(methods_(i).pkg, 'NULL')||', ', FALSE);
46.1684 - Write_Error_Text___ (error_text_, 'Method Name='||nvl(method_, 'NULL'));
46.1685 - END;
46.1686 - -- Handle if current package contains a state machine (identified by a specific PRAGMA method)
46.1687 - -- This call set the global variable pkg_lu_sub_type
46.1688 - Handle_Possible_State_Pkg___(lu_name_, method_);
46.1689 - -- Fetch and insert state information if current package contains a state machine
46.1690 - IF pkg_lu_sub_type_ = 'S' THEN
46.1691 - IF (refresh_mode_ != 'LIGHT') THEN
46.1692 - Refresh_Domain_State_Info___('state', lu_name_, methods_(i).pkg);
46.1693 - END IF;
46.1694 - -- Reset the sub_type to avoid multiple unnecessary searches
46.1695 - pkg_lu_sub_type_ := 'N';
46.1696 - END IF;
46.1697 - END IF;
46.1698 - END LOOP;
46.1699 - END IF;
46.1700 - --
46.1701 - -- Update special handled methods to PRAGMA (Read-only) methods
46.1702 - --
46.1703 - UPDATE dictionary_sys_method_tab t
46.1704 - SET method_type = 'P'
46.1705 - WHERE upper(t.method_name)
46.1706 - IN ('ENUMERATE',
46.1707 - 'EXIST',
46.1708 - 'EXIST_DB',
46.1709 - 'LOCK__',
46.1710 - 'LANGUAGE_REFRESHED',
46.1711 - 'INIT',
46.1712 - 'FINITE_STATE_DECODE__',
46.1713 - 'FINITE_STATE_ENCODE__',
46.1714 - 'ENUMERATE_STATES__',
46.1715 - 'FINITE_STATE_EVENTS__',
46.1716 - 'ENUMERATE_EVENTS__');
46.1717 - END Refresh_Methods___;
46.1718 -
46.1719 -BEGIN
46.1720 - General_SYS.Init_Method(service_, '&PKG', 'Rebuild_Dictionary_Storage_');
46.1721 - Write_Error_Text___ (error_text_, '-------------------------------------------------------------');
46.1722 - Write_Error_Text___ (error_text_, 'Dictionary Cache started');
46.1723 - Write_Error_Text___ (error_text_, '-------------------------------------------------------------');
46.1724 - --
46.1725 - -- Validate refresh mode before proceeding
46.1726 - --
46.1727 - IF refresh_mode_ IS NULL OR refresh_mode_ NOT IN ('FULL', 'PARTIAL', 'VIEWS', 'PACKAGES', 'LIGHT') THEN
46.1728 - Error_SYS.Appl_General(service_, 'INVALIDMODE: Invalid Refresh Mode! Mode should be one of the values [:P1]', 'FULL, PARTIAL, VIEWS, PACKAGES');
46.1729 - END IF;
46.1730 - --
46.1731 - -- If a refresh is not necessary and a full refresh is not ordered, abort immediately...
46.1732 - -- This is more effecient than doing a complete search for packages and views.
46.1733 - --
46.1734 - -- In this procedure Dbms_Output should be used instead of Trace_SYS to enable
46.1735 - -- traces during installation time.
46.1736 - --
46.1737 - IF NOT refresh_all_ THEN
46.1738 - Check_Dictionary_Storage_(rebuild_needed_);
46.1739 - IF rebuild_needed_ = 0 THEN
46.1740 - Write_Error_Text___ (error_text_, 'Dictionary Cache is already up-to-date.');
46.1741 - RETURN(error_text_);
46.1742 - END IF;
46.1743 -
46.1744 - -- Find last update time
46.1745 - OPEN get_last_update;
46.1746 - FETCH get_last_update INTO last_update_;
46.1747 - CLOSE get_last_update;
46.1748 -
46.1749 - -- Set full refresh mode if no dictionary data exist
46.1750 - IF last_update_ IS NULL THEN
46.1751 - refresh_all_ := TRUE;
46.1752 - END IF;
46.1753 - END IF;
46.1754 -
46.1755 - IF refresh_all_ THEN
46.1756 - Write_Error_Text___ (error_text_, 'Full Refresh of Dictionary Cache!');
46.1757 -
46.1758 - -- Fetch the objects to update
46.1759 - OPEN get_all_pkgs;
46.1760 - FETCH get_all_pkgs BULK COLLECT INTO packages_;
46.1761 - CLOSE get_all_pkgs;
46.1762 -
46.1763 - OPEN get_all_views;
46.1764 - FETCH get_all_views BULK COLLECT INTO views_;
46.1765 - CLOSE get_all_views;
46.1766 - ELSE
46.1767 - -- Spool information about what "mode" is used
46.1768 - IF refresh_views_ AND refresh_pkgs_ THEN
46.1769 - Write_Error_Text___ (error_text_, 'Partial Refresh of Dictionary Cache!');
46.1770 - ELSIF refresh_pkgs_ THEN
46.1771 - Write_Error_Text___ (error_text_, 'Partial Refresh of Dictionary Cache only for packages!');
46.1772 - ELSIF refresh_views_ THEN
46.1773 - Write_Error_Text___ (error_text_, 'Partial Refresh of Dictionary Cache only for views!');
46.1774 - END IF;
46.1775 - Write_Error_Text___ (error_text_, 'Last Update of Dictionary Cache occured at '||to_char(last_update_, 'YYYY-MM-DD HH24:MI:SS'));
46.1776 -
46.1777 - -- Fetch the objects to update
46.1778 - IF refresh_pkgs_ THEN
46.1779 - OPEN get_pkgs_to_update(last_update_);
46.1780 - FETCH get_pkgs_to_update BULK COLLECT INTO packages_;
46.1781 - CLOSE get_pkgs_to_update;
46.1782 - END IF;
46.1783 -
46.1784 - IF refresh_views_ THEN
46.1785 - OPEN get_views_to_update(last_update_);
46.1786 - FETCH get_views_to_update BULK COLLECT INTO views_;
46.1787 - CLOSE get_views_to_update;
46.1788 - END IF;
46.1789 - END IF;
46.1790 - --
46.1791 - -- Refresh package and method information
46.1792 - --
46.1793 - Write_Error_Text___ (error_text_, ' -------------------------------------------------------------');
46.1794 - Write_Error_Text___ (error_text_, ' Dictionary Cache is being updated for '||to_char(packages_.count)||' Packages');
46.1795 - Write_Error_Text___ (error_text_, ' -------------------------------------------------------------');
46.1796 - IF packages_.COUNT > 0 THEN
46.1797 - -- Save start date for package refresh
46.1798 - start_time_ := SYSDATE;
46.1799 - -- Remove old information if full refresh
46.1800 - IF refresh_all_ THEN
46.1801 - -- ifs_assert_safe pemase 20060215
46.1802 - EXECUTE IMMEDIATE 'TRUNCATE TABLE dictionary_sys_tab';
46.1803 - -- ifs_assert_safe pemase 20060215
46.1804 - EXECUTE IMMEDIATE 'TRUNCATE TABLE dictionary_sys_package_tab';
46.1805 - -- ifs_assert_safe pemase 20060215
46.1806 - EXECUTE IMMEDIATE 'TRUNCATE TABLE dictionary_sys_domain_tab';
46.1807 - -- ifs_assert_safe pemase 20060215
46.1808 - EXECUTE IMMEDIATE 'TRUNCATE TABLE dictionary_sys_state_tab';
46.1809 - -- ifs_assert_safe pemase 20060215
46.1810 - EXECUTE IMMEDIATE 'TRUNCATE TABLE dictionary_sys_state_event_tab';
46.1811 - END IF;
46.1812 -
46.1813 - FOR i IN Nvl(packages_.FIRST,0)..Nvl(packages_.LAST,-1) LOOP
46.1814 - pkg_module_ := NULL;
46.1815 - pkg_lu_name_ := NULL;
46.1816 - pkg_lu_type_ := NULL;
46.1817 - pkg_lu_sub_type_ := 'N';
46.1818 - FOR pkg_info IN get_package_info(packages_(i)) LOOP
46.1819 - -- Investigate module, lu name and sub type of the lu
46.1820 - IF (pkg_info.gtype = 'M') THEN
46.1821 - pkg_module_ := substr(pkg_info.global, 1, 6);
46.1822 - ELSIF pkg_info.gtype IN ('L', 'S') THEN
46.1823 - pkg_lu_name_ := pkg_info.global;
46.1824 - pkg_lu_type_ := pkg_info.gtype;
46.1825 - ELSIF pkg_info.gtype = 'D' THEN
46.1826 - pkg_lu_sub_type_ := pkg_info.gtype;
46.1827 - END IF;
46.1828 - END LOOP;
46.1829 - IF pkg_lu_name_ IS NOT NULL AND pkg_module_ IS NOT NULL THEN
46.1830 - -- Insert the information into the dictionary
46.1831 - Insert_Package_Information___(pkg_lu_name_,
46.1832 - pkg_module_,
46.1833 - packages_(i),
46.1834 - pkg_lu_type_,
46.1835 - pkg_lu_sub_type_);
46.1836 -
46.1837 - -- Refresh domain or state information depending on sub type of the LU (stored in global variable)
46.1838 - IF pkg_lu_sub_type_ = 'D' THEN
46.1839 - -- Refresh domain information if this is identified as an IID package
46.1840 - IF (refresh_mode_ != 'LIGHT') THEN
46.1841 - Refresh_Domain_State_Info___('domain', pkg_lu_name_, packages_(i));
46.1842 - END IF;
46.1843 - END IF;
46.1844 - ELSE
46.1845 - Write_Error_Text___ (error_text_, ' ??????:Missing Module- or LU-information for package '||packages_(i)||'! Make sure that correct package globals exist for '||packages_(i));
46.1846 - END IF;
46.1847 - END LOOP;
46.1848 - --
46.1849 - -- Refresh methods once all packages are updated
46.1850 - --
46.1851 - Refresh_Methods___(refresh_all_, start_time_);
46.1852 - --
46.1853 - -- Refresh arguments for methods once all methods are updated
46.1854 - --
46.1855 - Refresh_Method_Arguments___(refresh_all_, start_time_);
46.1856 -
46.1857 -/* Commented for now, since the code has several bugs. Maybe corrected in future Service Pack
46.1858 - IF (refresh_mode_ != 'LIGHT') THEN
46.1859 - IF refresh_all_ THEN
46.1860 - Rebuild_All_State_Event___(TRUE);
46.1861 - Rebuild_State_Transitions___(TRUE);
46.1862 - Rebuild_State_Machine___(TRUE);
46.1863 - ELSE
46.1864 - Rebuild_All_State_Event___(FALSE);
46.1865 - Rebuild_State_Transitions___(FALSE);
46.1866 - Rebuild_State_Machine___(FALSE);
46.1867 - END IF;
46.1868 - END IF;
46.1869 -*/
46.1870 - END IF;
46.1871 - --
46.1872 - -- Refresh view information
46.1873 - --
46.1874 - Write_Error_Text___ (error_text_, ' -------------------------------------------------------------');
46.1875 - Write_Error_Text___ (error_text_, ' Dictionary Cache is being updated for '||to_char(views_.count)||' Views');
46.1876 - Write_Error_Text___ (error_text_, ' -------------------------------------------------------------');
46.1877 - IF views_.COUNT > 0 THEN
46.1878 - -- Save start date for view refresh
46.1879 - start_time_ := SYSDATE;
46.1880 - -- Remove old information if full refresh
46.1881 - IF refresh_all_ THEN
46.1882 - -- ifs_assert_safe pemase 20060215
46.1883 - EXECUTE IMMEDIATE 'TRUNCATE TABLE dictionary_sys_view_tab';
46.1884 - ELSE
46.1885 - FORALL j IN Nvl(views_.FIRST,0)..Nvl(views_.LAST,-1)
46.1886 - DELETE FROM dictionary_sys_view_tab
46.1887 - WHERE view_name = views_(j);
46.1888 - END IF;
46.1889 -
46.1890 - FOR i IN Nvl(views_.FIRST,0)..Nvl(views_.LAST,-1) LOOP
46.1891 - OPEN get_view_comments(views_(i));
46.1892 - FETCH get_view_comments INTO view_comment_;
46.1893 - CLOSE get_view_comments;
46.1894 - view_module_ := NULL;
46.1895 - view_lu_name_ := NULL;
46.1896 - view_module_ := upper(substr(Dictionary_SYS.Comment_Value_('MODULE', view_comment_), 1, 6));
46.1897 - IF view_module_ = 'IGNORE' THEN
46.1898 - view_lu_name_ := 'IGNORE';
46.1899 - END IF;
46.1900 - IF view_lu_name_ IS NULL THEN
46.1901 - view_lu_name_ := Dictionary_SYS.Comment_Value_('LU', view_comment_);
46.1902 - IF view_lu_name_ IS NULL THEN
46.1903 - view_lu_name_ := Dictionary_SYS.Comment_Value_('SERVICE', view_comment_);
46.1904 - END IF;
46.1905 - END IF;
46.1906 - view_prompt_ := Dictionary_SYS.Comment_Value_('PROMPT', view_comment_);
46.1907 - IF view_module_ IS NOT NULL AND view_lu_name_ IS NOT NULL THEN
46.1908 - IF view_module_ != 'IGNORE' THEN
46.1909 - Insert_View_Information___(view_lu_name_,
46.1910 - view_module_,
46.1911 - views_(i),
46.1912 - view_prompt_);
46.1913 - END IF;
46.1914 - ELSE
46.1915 - Write_Error_Text___ (error_text_, ' ??????:Missing Module- or LU-information for view '||views_(i)||'! Make sure that correct view comments exist for '||views_(i));
46.1916 - END IF;
46.1917 - END LOOP;
46.1918 - --
46.1919 - -- Refresh view columns once all view are updated
46.1920 - --
46.1921 - Refresh_View_Columns___(refresh_all_, start_time_);
46.1922 -
46.1923 - END IF;
46.1924 -
46.1925 - IF NOT refresh_all_ THEN
46.1926 - --
46.1927 - -- Delete information for objects no longer in the database
46.1928 - --
46.1929 - DELETE FROM dictionary_sys_package_tab p
46.1930 - WHERE NOT EXISTS (SELECT 1
46.1931 - FROM user_objects o
46.1932 - WHERE o.object_type = 'PACKAGE'
46.1933 - AND p.package_name = o.object_name);
46.1934 -
46.1935 - DELETE FROM dictionary_sys_method_tab m
46.1936 - WHERE NOT EXISTS (SELECT 1
46.1937 - FROM dictionary_sys_package_tab p
46.1938 - WHERE m.package_name = p.package_name);
46.1939 -
46.1940 - DELETE FROM dictionary_sys_view_tab v
46.1941 - WHERE NOT EXISTS (SELECT 1
46.1942 - FROM user_objects o
46.1943 - WHERE o.object_type = 'VIEW'
46.1944 - AND v.view_name = o.object_name);
46.1945 -
46.1946 - DELETE FROM dictionary_sys_view_column_tab c
46.1947 - WHERE NOT EXISTS (SELECT 1
46.1948 - FROM dictionary_sys_view_tab v
46.1949 - WHERE v.lu_name = c.lu_name
46.1950 - AND v.view_name = c.view_name);
46.1951 -
46.1952 - DELETE FROM dictionary_sys_tab l
46.1953 - WHERE NOT EXISTS (SELECT 1
46.1954 - FROM dictionary_sys_package_tab p
46.1955 - WHERE p.lu_name = l.lu_name
46.1956 - UNION
46.1957 - SELECT 1
46.1958 - FROM dictionary_sys_view_tab v
46.1959 - WHERE v.lu_name = l.lu_name);
46.1960 - END IF;
46.1961 -
46.1962 - --
46.1963 - -- Attempt 1:
46.1964 - -- At this point we have the basic information about the dictionary
46.1965 - -- but some base views are missing. This is the first method to fix it.
46.1966 - --
46.1967 - UPDATE dictionary_sys_view_tab
46.1968 - SET view_type = 'B'
46.1969 - WHERE lu_name NOT IN ( SELECT lu_name
46.1970 - FROM dictionary_sys_view_tab
46.1971 - WHERE view_type = 'B' )
46.1972 - AND view_name IN ( SELECT view_name
46.1973 - FROM dictionary_sys_view_tab dv,
46.1974 - dictionary_sys_package_tab dp
46.1975 - WHERE dv.lu_name = dp.lu_name
46.1976 - AND ( dv.view_name || '_API') = dp.package_name );
46.1977 -
46.1978 - --
46.1979 - -- Attempt 2:
46.1980 - -- Set the first view as base view for Logical Units that does not yet have been
46.1981 - -- assigned any base view according to naming standard rules.
46.1982 - --
46.1983 - UPDATE dictionary_sys_view_tab
46.1984 - SET view_type = 'B'
46.1985 - WHERE lu_name NOT IN (SELECT lu_name
46.1986 - FROM dictionary_sys_view_tab
46.1987 - WHERE view_type = 'B')
46.1988 - AND view_index = 1;
46.1989 - --
46.1990 - -- Set prompts for all Logical Units that didn't have a clearly defined view with a prompt.
46.1991 - -- Create the prompt from the Logical Unit name.
46.1992 - --
46.1993 - UPDATE dictionary_sys_tab
46.1994 - SET lu_prompt = replace(initcap(Dictionary_SYS.Clientnametodbname_(lu_name)),'_',' ')
46.1995 - WHERE lu_prompt IS NULL;
46.1996 -
46.1997 - Cache_Management_API.Refresh_Cache('Dictionary');
46.1998 -
46.1999 - --
46.2000 - -- Call activity ManageApplicationServerCache.ClearDataDictionaryCache
46.2001 - --
46.2002 - DECLARE
46.2003 - record_ PLSQLAP_Record_API.type_record_;
46.2004 - BEGIN
46.2005 - record_ := PLSQLAP_Record_API.New_Record('');
46.2006 - PLSQLAP_Server_API.Invoke_Record_('ManageApplicationServerCache', 'ClearDataDictionaryCache', record_);
46.2007 - PLSQLAP_Record_API.Clear_Record(record_);
46.2008 - EXCEPTION
46.2009 - WHEN OTHERS THEN
46.2010 - NULL; -- Don't stop if error occurs
46.2011 - PLSQLAP_Record_API.Clear_Record(record_);
46.2012 - END;
46.2013 -
46.2014 - Write_Error_Text___ (error_text_, '-------------------------------------------------------------');
46.2015 - Write_Error_Text___ (error_text_, 'Dictionary Cache finished');
46.2016 - Write_Error_Text___ (error_text_, '-------------------------------------------------------------');
46.2017 - RETURN(error_text_);
46.2018 -
46.2019 -END Rebuild_Dictionary_Storage___;
46.2020 -
46.2021 -
46.2022 ------------------------------------------------------------------------------
46.2023 --------------------- SERVICE SPECIFIC PRIVATE METHODS -----------------------
46.2024 ------------------------------------------------------------------------------
46.2025 -
46.2026 ------------------------------------------------------------------------------
46.2027 --- Property fetching routines for run-time use (private)
46.2028 ------------------------------------------------------------------------------
46.2029 -
46.2030 --- Modified implementation to use dictionary cache. Designtime version moved to Design_SYS
46.2031 -PROCEDURE Enumerate_Logical_Units__ (
46.2032 - lu_list1_ OUT VARCHAR2,
46.2033 - lu_list2_ OUT VARCHAR2,
46.2034 - lu_list3_ OUT VARCHAR2,
46.2035 - lu_list4_ OUT VARCHAR2 )
46.2036 -IS
46.2037 - temp_ lu_struct_type;
46.2038 - limit_ NUMBER := 31000;
46.2039 - n_ NUMBER := 1;
46.2040 -
46.2041 - CURSOR units IS
46.2042 - SELECT lu_name
46.2043 - FROM dictionary_sys_tab
46.2044 - WHERE lu_type = 'L'
46.2045 - ORDER BY lu_name;
46.2046 -BEGIN
46.2047 - --
46.2048 - -- Init used elements
46.2049 - --
46.2050 - temp_(1) := NULL;
46.2051 - temp_(2) := NULL;
46.2052 - temp_(3) := NULL;
46.2053 - temp_(4) := NULL;
46.2054 - --
46.2055 - -- Fetch all packages and views associated with a logical unit
46.2056 - -- Convert to client naming and append to list
46.2057 - --
46.2058 - FOR unit IN units LOOP
46.2059 - temp_(n_) := temp_(n_)||unit.lu_name||field_separator_;
46.2060 - IF (length(temp_(n_)) > limit_) THEN
46.2061 - n_ := n_ + 1;
46.2062 - END IF;
46.2063 - END LOOP;
46.2064 - --
46.2065 - -- Return complete lists
46.2066 - --
46.2067 - lu_list1_ := temp_(1);
46.2068 - lu_list2_ := temp_(2);
46.2069 - lu_list3_ := temp_(3);
46.2070 - lu_list4_ := temp_(4);
46.2071 -END Enumerate_Logical_Units__;
46.2072 -
46.2073 -PROCEDURE Get_Logical_Unit_Properties__ (
46.2074 - lu_name_ IN VARCHAR2,
46.2075 - view_list_ OUT VARCHAR2,
46.2076 - package_list_ OUT VARCHAR2,
46.2077 - method_list_ OUT VARCHAR2,
46.2078 - all_methods_ IN VARCHAR2 DEFAULT 'TRUE' )
46.2079 -IS
46.2080 -BEGIN
46.2081 - Get_Logical_Unit_Views__(lu_name_, view_list_);
46.2082 - Get_Logical_Unit_Packages__(lu_name_, package_list_);
46.2083 - Get_Logical_Unit_Methods__(lu_name_, method_list_, all_methods_);
46.2084 -END Get_Logical_Unit_Properties__;
46.2085 -
46.2086 -PROCEDURE Get_Logical_Unit_Properties2__ (
46.2087 - lu_name_ IN VARCHAR2,
46.2088 - view_list_ OUT VARCHAR2,
46.2089 - package_list_ OUT VARCHAR2,
46.2090 - method_list_ OUT VARCHAR2,
46.2091 - all_methods_ IN VARCHAR2 DEFAULT 'TRUE' )
46.2092 -IS
46.2093 -BEGIN
46.2094 - Get_Logical_Unit_Views__(lu_name_, view_list_);
46.2095 - Get_Logical_Unit_Packages__(lu_name_, package_list_);
46.2096 - Get_LU_Method_Types__(lu_name_, method_list_);
46.2097 -END Get_Logical_Unit_Properties2__;
46.2098 -
46.2099 -PROCEDURE Get_Logical_Unit_Views__ (
46.2100 - lu_name_ IN VARCHAR2,
46.2101 - view_list_ OUT VARCHAR2 )
46.2102 -IS
46.2103 -BEGIN
46.2104 - view_list_ := Get_Logical_Unit_Views__(lu_name_);
46.2105 -END Get_Logical_Unit_Views__;
46.2106 -
46.2107 -FUNCTION Get_Logical_Unit_Views__ (
46.2108 - lu_name_ IN VARCHAR2) RETURN VARCHAR2
46.2109 -IS
46.2110 - view_array_ object_array;
46.2111 - view_list_ VARCHAR2(4000);
46.2112 -
46.2113 - CURSOR get_lu_views IS
46.2114 - SELECT view_name
46.2115 - FROM dictionary_sys_view_tab
46.2116 - WHERE lu_name = lu_name_
46.2117 - ORDER BY view_index;
46.2118 -BEGIN
46.2119 - OPEN get_lu_views;
46.2120 - FETCH get_lu_views BULK COLLECT INTO view_array_;
46.2121 - CLOSE get_lu_views;
46.2122 - IF view_array_.count > 0 THEN
46.2123 - FOR i IN Nvl(view_array_.first, 0)..Nvl(view_array_.last, -1) LOOP
46.2124 - view_list_ := view_list_||view_array_(i)||field_separator_;
46.2125 - END LOOP;
46.2126 - END IF;
46.2127 - RETURN view_list_;
46.2128 -END Get_Logical_Unit_Views__;
46.2129 -
46.2130 -PROCEDURE Get_Logical_Unit_Packages__ (
46.2131 - lu_name_ IN VARCHAR2,
46.2132 - package_list_ OUT VARCHAR2 )
46.2133 -IS
46.2134 -BEGIN
46.2135 - package_list_ := Get_Logical_Unit_Packages__(lu_name_);
46.2136 -END Get_Logical_Unit_Packages__;
46.2137 -
46.2138 -
46.2139 -FUNCTION Get_Logical_Unit_Packages__ (
46.2140 - lu_name_ IN VARCHAR2 ) RETURN VARCHAR2
46.2141 -IS
46.2142 - package_array_ object_array;
46.2143 - package_list_ VARCHAR2(4000);
46.2144 -
46.2145 - CURSOR get_lu_packages IS
46.2146 - SELECT package_name
46.2147 - FROM dictionary_sys_package_tab
46.2148 - WHERE lu_name = lu_name_
46.2149 - ORDER BY package_index;
46.2150 -BEGIN
46.2151 - OPEN get_lu_packages;
46.2152 - FETCH get_lu_packages BULK COLLECT INTO package_array_;
46.2153 - CLOSE get_lu_packages;
46.2154 - IF package_array_.count > 0 THEN
46.2155 - FOR i IN Nvl(package_array_.first, 0)..Nvl(package_array_.last, -1) LOOP
46.2156 - package_list_ := package_list_||package_array_(i)||field_separator_;
46.2157 - END LOOP;
46.2158 - END IF;
46.2159 - RETURN package_list_;
46.2160 -END Get_Logical_Unit_Packages__;
46.2161 -
46.2162 -PROCEDURE Get_Logical_Unit_Methods__ (
46.2163 - lu_name_ IN VARCHAR2,
46.2164 - method_list_ OUT VARCHAR2,
46.2165 - all_methods_ IN VARCHAR2 DEFAULT 'TRUE' )
46.2166 -IS
46.2167 - method_array_ object_array;
46.2168 - package_array_ object_array;
46.2169 -
46.2170 - CURSOR get_all_lu_methods IS
46.2171 - SELECT package_name, method_name
46.2172 - FROM dictionary_sys_method_tab
46.2173 - WHERE lu_name = lu_name_
46.2174 - ORDER BY package_name;
46.2175 -
46.2176 - CURSOR get_lu_methods IS
46.2177 - SELECT package_name, method_name
46.2178 - FROM dictionary_sys_method_tab
46.2179 - WHERE lu_name = lu_name_
46.2180 - AND method_type = 'N'
46.2181 - ORDER BY package_name;
46.2182 -
46.2183 -BEGIN
46.2184 - IF all_methods_ = 'TRUE' THEN
46.2185 - OPEN get_all_lu_methods;
46.2186 - FETCH get_all_lu_methods BULK COLLECT INTO package_array_, method_array_;
46.2187 - CLOSE get_all_lu_methods;
46.2188 - ELSE
46.2189 - OPEN get_lu_methods;
46.2190 - FETCH get_lu_methods BULK COLLECT INTO package_array_, method_array_;
46.2191 - CLOSE get_lu_methods;
46.2192 - END IF;
46.2193 -
46.2194 - IF method_array_.count > 0 THEN
46.2195 - FOR lu_methods IN Nvl(method_array_.first, 0)..Nvl(method_array_.last, -1) LOOP
46.2196 - method_list_ := method_list_||package_array_(lu_methods)||'.'||method_array_(lu_methods)||field_separator_;
46.2197 - END LOOP;
46.2198 - END IF;
46.2199 -END Get_Logical_Unit_Methods__;
46.2200 -
46.2201 -PROCEDURE Get_LU_Method_Types__ (
46.2202 - lu_name_ IN VARCHAR2,
46.2203 - method_list_ OUT VARCHAR2 )
46.2204 -IS
46.2205 - method_array_ object_array;
46.2206 - package_array_ object_array;
46.2207 - type_array_ object_array;
46.2208 -
46.2209 - CURSOR get_all_lu_methods IS
46.2210 - SELECT package_name, method_name, method_type
46.2211 - FROM dictionary_sys_method_tab
46.2212 - WHERE lu_name = lu_name_
46.2213 - ORDER BY package_name;
46.2214 -
46.2215 -BEGIN
46.2216 - OPEN get_all_lu_methods;
46.2217 - FETCH get_all_lu_methods BULK COLLECT INTO package_array_, method_array_, type_array_;
46.2218 - CLOSE get_all_lu_methods;
46.2219 -
46.2220 - IF method_array_.count > 0 THEN
46.2221 - FOR lu_methods IN Nvl(method_array_.first, 0)..Nvl(method_array_.last, -1) LOOP
46.2222 - method_list_ := method_list_||package_array_(lu_methods)||'.'||method_array_(lu_methods)||field_separator_||type_array_(lu_methods)||record_separator_;
46.2223 - END LOOP;
46.2224 - END IF;
46.2225 -END Get_LU_Method_Types__;
46.2226 -
46.2227 -FUNCTION Get_State_Encode_Method__ (
46.2228 - view_name_ IN VARCHAR2 ) RETURN VARCHAR2
46.2229 -IS
46.2230 -BEGIN
46.2231 - RETURN(Check_Method_From_View___(view_name_, 'FINITE_STATE_ENCODE__'));
46.2232 -END Get_State_Encode_Method__;
46.2233 -
46.2234 -FUNCTION Get_State_Enumerate_Method__ (
46.2235 - view_name_ IN VARCHAR2 ) RETURN VARCHAR2
46.2236 -IS
46.2237 -BEGIN
46.2238 - RETURN(Check_Method_From_View___(view_name_, 'ENUMERATE_STATES__'));
46.2239 -END Get_State_Enumerate_Method__;
46.2240 -
46.2241 ------------------------------------------------------------------------------
46.2242 --------------------- SERVICE SPECIFIC PROTECTED METHODS ---------------------
46.2243 ------------------------------------------------------------------------------
46.2244 -
46.2245 ------------------------------------------------------------------------------
46.2246 --- Naming conversions for client versus database object names
46.2247 ------------------------------------------------------------------------------
46.2248 -
46.2249 -FUNCTION Dbnametoclientname_ (
46.2250 - db_name_ IN VARCHAR2 ) RETURN VARCHAR2
46.2251 -IS
46.2252 - cnt_ NUMBER;
46.2253 -BEGIN
46.2254 - -- Find number of trailing underscores
46.2255 - cnt_ := length(db_name_) - length(rtrim(db_name_,'_'));
46.2256 - -- Return client name with leading underscores
46.2257 - IF (cnt_ = 1) THEN
46.2258 - RETURN('_'||replace(initcap(db_name_),'_',''));
46.2259 - ELSIF (cnt_ = 2) THEN
46.2260 - RETURN('__'||replace(initcap(db_name_),'_',''));
46.2261 - END IF;
46.2262 - RETURN(replace(initcap(db_name_),'_',''));
46.2263 -EXCEPTION
46.2264 - WHEN OTHERS THEN
46.2265 - RETURN(NULL);
46.2266 -END DbNameToClientName_;
46.2267 -
46.2268 -
46.2269 -FUNCTION Clientnametodbname_ (
46.2270 - client_name_ IN VARCHAR2 ) RETURN VARCHAR2
46.2271 -IS
46.2272 - cnt_ NUMBER;
46.2273 - index_ NUMBER;
46.2274 - temp_ VARCHAR2(30);
46.2275 - char_ VARCHAR2(1);
46.2276 -BEGIN
46.2277 - -- Find number of leading underscores
46.2278 - cnt_ := length(client_name_) - length(ltrim(client_name_,'_'));
46.2279 - -- Add intermediate underscores where needed
46.2280 - FOR index_ IN cnt_+1..length(client_name_) LOOP
46.2281 - char_ := substr(client_name_,index_,1);
46.2282 - IF (char_ between 'A' and 'Z') AND (temp_ IS NOT NULL) THEN
46.2283 - temp_ := temp_||'_'||char_;
46.2284 - ELSE
46.2285 - temp_ := temp_||char_;
46.2286 - END IF;
46.2287 - END LOOP;
46.2288 - -- Return database name with trailing underscores
46.2289 - IF (cnt_ = 1) THEN
46.2290 - RETURN(ltrim(upper(temp_),'_')||'__');
46.2291 - ELSIF (cnt_ = 2) THEN
46.2292 - RETURN(ltrim(upper(temp_),'_')||'__');
46.2293 - END IF;
46.2294 - RETURN(ltrim(upper(temp_),'_'));
46.2295 -EXCEPTION
46.2296 - WHEN OTHERS THEN
46.2297 - RETURN(NULL);
46.2298 -END ClientNameToDbName_;
46.2299 -
46.2300 ------------------------------------------------------------------------------
46.2301 --- Comment decoding routines for LU-dictionary
46.2302 ------------------------------------------------------------------------------
46.2303 -
46.2304 -FUNCTION Comment_Value_ (
46.2305 - name_ IN VARCHAR2,
46.2306 - comment_ IN VARCHAR2 ) RETURN VARCHAR2
46.2307 -IS
46.2308 - nlen_ NUMBER;
46.2309 - from_ NUMBER;
46.2310 - to_ NUMBER;
46.2311 -BEGIN
46.2312 - -- Find keyword name position within comment
46.2313 - nlen_ := length(name_);
46.2314 - -- New fix to support ambigous names in report definitions in IFS/Info Services
46.2315 - from_ := instr(upper('^'||comment_), '^'||name_||'=');
46.2316 - -- If found, return value from comment
46.2317 - IF (from_ > 0) THEN
46.2318 - to_ := instr(comment_, '^', from_);
46.2319 - IF ( to_ = 0 ) THEN
46.2320 - to_ := length(comment_) + 1;
46.2321 - END IF;
46.2322 - RETURN(substr(comment_, from_+nlen_+1, to_-from_-nlen_-1));
46.2323 - -- If not found, return null value
46.2324 - ELSE
46.2325 - RETURN(NULL);
46.2326 - END IF;
46.2327 -END Comment_Value_;
46.2328 -
46.2329 ------------------------------------------------------------------------------
46.2330 --- Prompt fetching routines, mainly used for localization
46.2331 ------------------------------------------------------------------------------
46.2332 -
46.2333 -FUNCTION Get_View_Prompt_ (
46.2334 - view_name_ IN VARCHAR2 ) RETURN VARCHAR2
46.2335 -IS
46.2336 - prompt_ VARCHAR2(200);
46.2337 - CURSOR get_prompt IS
46.2338 - SELECT view_prompt
46.2339 - FROM dictionary_sys_view_tab
46.2340 - WHERE view_name = view_name_;
46.2341 -BEGIN
46.2342 - OPEN get_prompt;
46.2343 - FETCH get_prompt INTO prompt_;
46.2344 - CLOSE get_prompt;
46.2345 - RETURN prompt_;
46.2346 -END Get_View_Prompt_;
46.2347 -
46.2348 -FUNCTION Get_Lu_Prompt_ (
46.2349 - lu_name_ IN VARCHAR2 ) RETURN VARCHAR2
46.2350 -IS
46.2351 - prompt_ VARCHAR2(200);
46.2352 - CURSOR get_prompt IS
46.2353 - SELECT lu_prompt
46.2354 - FROM dictionary_sys_tab
46.2355 - WHERE lu_name = lu_name_;
46.2356 -BEGIN
46.2357 - -- Check that inparameters make sense before proceeding.
46.2358 - IF lu_name_ IS NULL THEN
46.2359 - RETURN NULL;
46.2360 - END IF;
46.2361 -
46.2362 - OPEN get_prompt;
46.2363 - FETCH get_prompt INTO prompt_;
46.2364 - CLOSE get_prompt;
46.2365 - RETURN prompt_;
46.2366 -END Get_Lu_Prompt_;
46.2367 -
46.2368 -FUNCTION Get_Item_Prompt_ (
46.2369 - lu_name_ IN VARCHAR2,
46.2370 - view_name_ IN VARCHAR2,
46.2371 - item_name_ IN VARCHAR2 ) RETURN VARCHAR2
46.2372 -IS
46.2373 - view_ VARCHAR2(30) := view_name_;
46.2374 - prompt_ dictionary_sys_view_column_tab.column_prompt%TYPE;
46.2375 -
46.2376 - CURSOR get_prompt IS
46.2377 - SELECT column_prompt
46.2378 - FROM dictionary_sys_view_column_tab
46.2379 - WHERE lu_name = lu_name_
46.2380 - AND view_name = view_
46.2381 - AND column_name = item_name_;
46.2382 -BEGIN
46.2383 - IF (view_ IS NULL) THEN
46.2384 - view_ := ClientNameToDbName_(lu_name_);
46.2385 - END IF;
46.2386 - OPEN get_prompt;
46.2387 - FETCH get_prompt INTO prompt_;
46.2388 - CLOSE get_prompt;
46.2389 - RETURN prompt_;
46.2390 -END Get_Item_Prompt_;
46.2391 -
46.2392 ------------------------------------------------------------------------------
46.2393 --- Property fetching routines for run-time use (protected)
46.2394 ------------------------------------------------------------------------------
46.2395 -
46.2396 -PROCEDURE Get_Logical_Unit_Keys_ (
46.2397 - name_list_ OUT VARCHAR2,
46.2398 - value_list_ OUT VARCHAR2,
46.2399 - lu_name_ IN VARCHAR2,
46.2400 - objid_ IN VARCHAR2 DEFAULT NULL )
46.2401 -IS
46.2402 - dummy_ NUMBER;
46.2403 - stmt_ VARCHAR2(2000);
46.2404 - view_ VARCHAR2(30);
46.2405 - temp_list_ VARCHAR2(32000);
46.2406 -
46.2407 - -- To check that the suggested base view actually contain an objid...
46.2408 - CURSOR find_objid (lu_name_ IN VARCHAR2, view_name_ IN VARCHAR2) IS
46.2409 - SELECT 1
46.2410 - FROM dictionary_sys_view_column_tab
46.2411 - WHERE lu_name = lu_name_
46.2412 - AND view_name = view_name_
46.2413 - AND column_name = 'OBJID';
46.2414 -
46.2415 - CURSOR get_keys (view_name_ IN VARCHAR2) IS
46.2416 - SELECT column_name
46.2417 - FROM dictionary_sys_view_column_tab
46.2418 - WHERE lu_name = lu_name_
46.2419 - AND view_name = view_name_
46.2420 - AND type_flag IN ('P','K')
46.2421 - ORDER BY column_index;
46.2422 -BEGIN
46.2423 - General_SYS.Init_Method(service_, '&PKG', 'Get_Logical_Unit_Keys_');
46.2424 -
46.2425 - name_list_ := NULL;
46.2426 - value_list_ := NULL;
46.2427 - -- Fetch the view name from LU-dictionary
46.2428 - view_ := Get_Base_View(lu_name_);
46.2429 - -- Verify that this view contains an objid
46.2430 - OPEN find_objid(lu_name_, view_);
46.2431 - FETCH find_objid INTO dummy_;
46.2432 - IF find_objid%FOUND THEN
46.2433 - CLOSE find_objid;
46.2434 - -- View found, fetch the keys!
46.2435 - FOR keyrec IN get_keys(view_) LOOP
46.2436 - temp_list_ := temp_list_||keyrec.column_name||text_separator_;
46.2437 - END LOOP;
46.2438 - name_list_ := temp_list_;
46.2439 - IF (objid_ IS NOT NULL) THEN
46.2440 - -- Fetch instance key information by using dynamic SQL
46.2441 - BEGIN
46.2442 - temp_list_ := substr(temp_list_, 1, length(temp_list_) - 1);
46.2443 - temp_list_ := REPLACE(temp_list_, text_separator_, '||''^''||')||'||''^''';
46.2444 - stmt_ := 'SELECT '|| temp_list_ ||' FROM '||view_||' WHERE OBJID = :objid_';
46.2445 - Assert_SYS.Assert_Is_View(view_);
46.2446 - -- ifs_assert_safe utgulk 20060105
46.2447 - EXECUTE IMMEDIATE stmt_ INTO value_list_ USING objid_;
46.2448 - EXCEPTION
46.2449 - WHEN OTHERS THEN
46.2450 - value_list_ := NULL;
46.2451 - END;
46.2452 - END IF;
46.2453 - ELSE
46.2454 - CLOSE find_objid;
46.2455 - END IF;
46.2456 -END Get_Logical_Unit_Keys_;
46.2457 -
46.2458 --- Could not completely rely on cached information, since table information is not extracted to the cache
46.2459 -PROCEDURE Get_Logical_Unit_Tables_ (
46.2460 - table_list_ OUT VARCHAR2,
46.2461 - lu_name_ IN VARCHAR2 )
46.2462 -IS
46.2463 - view_name_ VARCHAR2(30);
46.2464 - app_owner_ VARCHAR2(30);
46.2465 - CURSOR view_tables IS
46.2466 - SELECT nvl(referenced_name,'') name
46.2467 - FROM user_dependencies
46.2468 - WHERE referenced_owner = app_owner_
46.2469 - AND referenced_type = 'TABLE'
46.2470 - AND name = view_name_
46.2471 - AND type = 'VIEW'
46.2472 - UNION
46.2473 - SELECT nvl(referenced_name,'') name
46.2474 - FROM user_dependencies
46.2475 - WHERE referenced_owner = app_owner_
46.2476 - AND referenced_type = 'TABLE'
46.2477 - AND name = view_name_||'_API'
46.2478 - AND type = 'PACKAGE BODY'
46.2479 - UNION
46.2480 - SELECT nvl(table_name,'') name
46.2481 - FROM user_tables
46.2482 - WHERE table_name = view_name_||'_TAB';
46.2483 -BEGIN
46.2484 - -- Check that inparameters make sense before proceeding.
46.2485 - IF lu_name_ IS NULL THEN
46.2486 - RETURN;
46.2487 - END IF;
46.2488 -
46.2489 - app_owner_ := Fnd_Session_API.Get_App_Owner;
46.2490 - view_name_ := Get_Base_View(lu_name_);
46.2491 - FOR t IN view_tables LOOP
46.2492 - table_list_ := table_list_||t.name||field_separator_;
46.2493 - END LOOP;
46.2494 -END Get_Logical_Unit_Tables_;
46.2495 -
46.2496 --- Introduced new method and implemented to use dictionary cache.
46.2497 -PROCEDURE Enum_Modules_ (
46.2498 - module_list_ OUT VARCHAR2 )
46.2499 -IS
46.2500 - CURSOR modules IS
46.2501 - SELECT DISTINCT module
46.2502 - FROM dictionary_sys_tab
46.2503 - ORDER BY module;
46.2504 -BEGIN
46.2505 - FOR module IN modules LOOP
46.2506 - module_list_ := module_list_||module.module||field_separator_;
46.2507 - END LOOP;
46.2508 -END Enum_Modules_;
46.2509 -
46.2510 -PROCEDURE Enum_Module_Names_ (
46.2511 - module_list_ OUT VARCHAR2,
46.2512 - name_list_ OUT VARCHAR2 )
46.2513 -IS
46.2514 - module_array_ object_array;
46.2515 - name_array_ lu_struct_type;
46.2516 -
46.2517 - CURSOR modules IS
46.2518 - SELECT module, name
46.2519 - FROM module_tab
46.2520 - ORDER BY name;
46.2521 -BEGIN
46.2522 - OPEN modules;
46.2523 - FETCH modules BULK COLLECT INTO module_array_, name_array_;
46.2524 - CLOSE modules;
46.2525 - IF module_array_.count > 0 THEN
46.2526 - FOR i IN Nvl(module_array_.first, 0)..Nvl(module_array_.last, -1) LOOP
46.2527 - module_list_ := module_list_||module_array_(i)||field_separator_;
46.2528 - name_list_ := name_list_||name_array_(i)||field_separator_;
46.2529 - END LOOP;
46.2530 - END IF;
46.2531 -END Enum_Module_Names_;
46.2532 -
46.2533 --- Modified implementation to use dictionary cache. Designtime version moved to Design_SYS
46.2534 -PROCEDURE Enum_Module_All_Logical_Units_ (
46.2535 - lu_list_ OUT VARCHAR2,
46.2536 - module_ IN VARCHAR2 )
46.2537 -IS
46.2538 - lu_array_ object_array;
46.2539 -
46.2540 - CURSOR units IS
46.2541 - SELECT lu_name
46.2542 - FROM dictionary_sys_tab
46.2543 - WHERE module = module_
46.2544 - AND lu_type IN ('L', 'S')
46.2545 - ORDER BY lu_name;
46.2546 -BEGIN
46.2547 - OPEN units;
46.2548 - FETCH units BULK COLLECT INTO lu_array_;
46.2549 - CLOSE units;
46.2550 - IF lu_array_.count > 0 THEN
46.2551 - FOR i IN Nvl(lu_array_.first, 0)..Nvl(lu_array_.last, -1) LOOP
46.2552 - lu_list_ := lu_list_||lu_array_(i)||field_separator_;
46.2553 - END LOOP;
46.2554 - END IF;
46.2555 -END Enum_Module_All_Logical_Units_;
46.2556 -
46.2557 --- Modified implementation to use dictionary cache. Designtime version moved to Design_SYS
46.2558 -PROCEDURE Enum_Module_Logical_Units_ (
46.2559 - lu_list_ OUT VARCHAR2,
46.2560 - module_ IN VARCHAR2 )
46.2561 -IS
46.2562 - lu_array_ object_array;
46.2563 -
46.2564 - CURSOR units IS
46.2565 - SELECT lu_name
46.2566 - FROM dictionary_sys_tab
46.2567 - WHERE module = module_
46.2568 - AND lu_type = 'L'
46.2569 - ORDER BY lu_name;
46.2570 -BEGIN
46.2571 - OPEN units;
46.2572 - FETCH units BULK COLLECT INTO lu_array_;
46.2573 - CLOSE units;
46.2574 - IF lu_array_.count > 0 THEN
46.2575 - FOR i IN Nvl(lu_array_.first, 0)..Nvl(lu_array_.last, -1) LOOP
46.2576 - lu_list_ := lu_list_||lu_array_(i)||field_separator_;
46.2577 - END LOOP;
46.2578 - END IF;
46.2579 -END Enum_Module_Logical_Units_;
46.2580 -
46.2581 --- Modified implementation using dictionary cache.
46.2582 -PROCEDURE Enum_Module_System_Services_ (
46.2583 - sys_list_ OUT VARCHAR2,
46.2584 - module_ IN VARCHAR2 )
46.2585 -IS
46.2586 - CURSOR units IS
46.2587 - SELECT lu_name
46.2588 - FROM dictionary_sys_tab
46.2589 - WHERE module = module_
46.2590 - AND lu_type = 'S'
46.2591 - ORDER BY lu_name;
46.2592 -BEGIN
46.2593 - FOR unit IN units LOOP
46.2594 - sys_list_ := sys_list_||unit.lu_name||field_separator_;
46.2595 - END LOOP;
46.2596 -END Enum_Module_System_Services_;
46.2597 -
46.2598 ------------------------------------------------------------------------------
46.2599 --- Runtime performance refreshment routines
46.2600 ------------------------------------------------------------------------------
46.2601 -
46.2602 --- Obsolete!
46.2603 -PROCEDURE Activate_Language_Refresh_
46.2604 -IS
46.2605 -BEGIN
46.2606 - General_SYS.Init_Method(service_, '&PKG', 'Activate_Language_Refresh_');
46.2607 - Error_SYS.Appl_General(service_, 'LANGERR: The method Activate_Language_Refresh_ (Change Server Language) is obsolete. Please log on again to change language.');
46.2608 -END Activate_Language_Refresh_;
46.2609 -
46.2610 -PROCEDURE Rebuild_Dictionary_Storage_ (
46.2611 - dummy_ IN NUMBER,
46.2612 - refresh_mode_ IN VARCHAR2 DEFAULT 'PARTIAL' )
46.2613 -IS
46.2614 - error_text_ CLOB;
46.2615 -BEGIN
46.2616 - error_text_ := Rebuild_Dictionary_Storage___(dummy_, refresh_mode_, FALSE);
46.2617 -END Rebuild_Dictionary_Storage_;
46.2618 -
46.2619 -PROCEDURE Rebuild_Dictionary_Storage_ (
46.2620 - error_text_ IN OUT NOCOPY CLOB,
46.2621 - dummy_ IN NUMBER,
46.2622 - refresh_mode_ IN VARCHAR2 DEFAULT 'PARTIAL' )
46.2623 -IS
46.2624 -BEGIN
46.2625 - error_text_ := Rebuild_Dictionary_Storage___(dummy_, refresh_mode_, TRUE);
46.2626 -END Rebuild_Dictionary_Storage_;
46.2627 -
46.2628 -PROCEDURE Check_Dictionary_Storage_ (
46.2629 - rebuild_needed_ OUT NUMBER )
46.2630 -IS
46.2631 - dummy_ NUMBER;
46.2632 - last_update_ DATE;
46.2633 -
46.2634 - CURSOR get_last_update IS
46.2635 - SELECT max(rowversion)
46.2636 - FROM dictionary_sys_tab;
46.2637 -
46.2638 - CURSOR get_objects(last_cache_update_ IN DATE) IS
46.2639 - SELECT 1
46.2640 - FROM user_objects
46.2641 - WHERE (object_type LIKE 'PACKAGE%'
46.2642 - AND timestamp > to_char(last_cache_update_, 'RRRR-MM-DD:HH24:MI:SS')
46.2643 - AND substr(object_name, -4) IN ('_API', '_RPI', '_SYS'))
46.2644 - OR (object_type IN ('VIEW')
46.2645 - AND last_ddl_time > last_cache_update_);
46.2646 -BEGIN
46.2647 - OPEN get_last_update;
46.2648 - FETCH get_last_update INTO last_update_;
46.2649 - IF (last_update_ IS NULL) THEN
46.2650 - rebuild_needed_ := 1; -- Return TRUE
46.2651 - ELSE
46.2652 - OPEN get_objects(last_update_);
46.2653 - FETCH get_objects INTO dummy_;
46.2654 - IF (get_objects%NOTFOUND) THEN
46.2655 - rebuild_needed_ := 0; -- Return FALSE
46.2656 - ELSE
46.2657 - rebuild_needed_ := 1; -- Return TRUE
46.2658 - END IF;
46.2659 - CLOSE get_objects;
46.2660 - END IF;
46.2661 - CLOSE get_last_update;
46.2662 -END Check_Dictionary_Storage_;
46.2663 -
46.2664 ------------------------------------------------------------------------------
46.2665 --------------------- SERVICE SPECIFIC PUBLIC METHODS ------------------------
46.2666 ------------------------------------------------------------------------------
46.2667 -
46.2668 ------------------------------------------------------------------------------
46.2669 --- Public runtime methods for dictionary information support
46.2670 ------------------------------------------------------------------------------
46.2671 -
46.2672 -FUNCTION Get_Base_View (
46.2673 - lu_name_ IN VARCHAR2 ) RETURN VARCHAR2
46.2674 -IS
46.2675 - temp_ VARCHAR2(30);
46.2676 - CURSOR get_view IS
46.2677 - SELECT view_name
46.2678 - FROM dictionary_sys_view_tab
46.2679 - WHERE lu_name = lu_name_
46.2680 - AND view_type = 'B';
46.2681 -BEGIN
46.2682 - OPEN get_view;
46.2683 - FETCH get_view INTO temp_;
46.2684 - CLOSE get_view;
46.2685 - RETURN temp_;
46.2686 -END Get_Base_View;
46.2687 -
46.2688 -FUNCTION Get_Component (
46.2689 - object_name_ IN VARCHAR2,
46.2690 - object_type_ IN VARCHAR2 ) RETURN VARCHAR2
46.2691 -IS
46.2692 - component_ VARCHAR2(6);
46.2693 - CURSOR get_pkg_component IS
46.2694 - SELECT d.module
46.2695 - FROM dictionary_sys_tab d, dictionary_sys_package_tab p
46.2696 - WHERE p.package_name = upper(object_name_)
46.2697 - AND p.lu_name = d.lu_name;
46.2698 -
46.2699 - CURSOR get_view_component IS
46.2700 - SELECT d.module
46.2701 - FROM dictionary_sys_tab d, dictionary_sys_view_tab v
46.2702 - WHERE v.view_name = upper(object_name_)
46.2703 - AND v.lu_name = d.lu_name;
46.2704 -BEGIN
46.2705 - IF upper(object_type_) = 'PACKAGE' THEN
46.2706 - OPEN get_pkg_component;
46.2707 - FETCH get_pkg_component INTO component_;
46.2708 - CLOSE get_pkg_component;
46.2709 - ELSIF upper(object_type_) = 'VIEW' THEN
46.2710 - OPEN get_view_component;
46.2711 - FETCH get_view_component INTO component_;
46.2712 - CLOSE get_view_component;
46.2713 - ELSE
46.2714 - component_ := NULL;
46.2715 - END IF;
46.2716 - RETURN component_;
46.2717 -END Get_Component;
46.2718 -
46.2719 -FUNCTION Get_Logical_Unit (
46.2720 - object_name_ IN VARCHAR2,
46.2721 - object_type_ IN VARCHAR2 ) RETURN VARCHAR2
46.2722 -IS
46.2723 - lu_name_ VARCHAR2(30);
46.2724 - CURSOR get_pkg_lu IS
46.2725 - SELECT lu_name
46.2726 - FROM dictionary_sys_package_tab
46.2727 - WHERE package_name = upper(object_name_);
46.2728 -
46.2729 - CURSOR get_view_lu IS
46.2730 - SELECT lu_name
46.2731 - FROM dictionary_sys_view_tab
46.2732 - WHERE view_name = upper(object_name_);
46.2733 -BEGIN
46.2734 - IF upper(object_type_) = 'PACKAGE' THEN
46.2735 - OPEN get_pkg_lu;
46.2736 - FETCH get_pkg_lu INTO lu_name_;
46.2737 - CLOSE get_pkg_lu;
46.2738 - ELSIF upper(object_type_) = 'VIEW' THEN
46.2739 - OPEN get_view_lu;
46.2740 - FETCH get_view_lu INTO lu_name_;
46.2741 - CLOSE get_view_lu;
46.2742 - ELSE
46.2743 - lu_name_ := NULL;
46.2744 - END IF;
46.2745 - RETURN lu_name_;
46.2746 -END Get_Logical_Unit;
46.2747 -
46.2748 -FUNCTION Get_Logical_Unit_Module (
46.2749 - lu_name_ IN VARCHAR2 ) RETURN VARCHAR2
46.2750 -IS
46.2751 - module_ VARCHAR2(6);
46.2752 - CURSOR get_module IS
46.2753 - SELECT module
46.2754 - FROM dictionary_sys_lu
46.2755 - WHERE lu_name = lu_name_;
46.2756 -BEGIN
46.2757 - OPEN get_module;
46.2758 - FETCH get_module INTO module_;
46.2759 - CLOSE get_module;
46.2760 - RETURN module_;
46.2761 -END Get_Logical_Unit_Module;
46.2762 -
46.2763 -FUNCTION Package_Is_Installed (
46.2764 - package_name_ IN VARCHAR2 ) RETURN BOOLEAN
46.2765 -IS
46.2766 - dummy_ NUMBER;
46.2767 - CURSOR get_pkg IS
46.2768 - SELECT 1
46.2769 - FROM dictionary_sys_package_tab
46.2770 - WHERE package_name = upper(package_name_);
46.2771 -BEGIN
46.2772 - -- Reroute to Database_SYS during installation
46.2773 - IF installation_ THEN
46.2774 - RETURN(Database_SYS.Package_Exist(package_name_));
46.2775 - ELSE
46.2776 - OPEN get_pkg;
46.2777 - FETCH get_pkg INTO dummy_;
46.2778 - IF (get_pkg%FOUND) THEN
46.2779 - CLOSE get_pkg;
46.2780 - RETURN TRUE;
46.2781 - ELSE
46.2782 - CLOSE get_pkg;
46.2783 - RETURN FALSE;
46.2784 - END IF;
46.2785 - END IF;
46.2786 -END Package_Is_Installed;
46.2787 -
46.2788 -FUNCTION Method_Is_Installed (
46.2789 - package_name_ IN VARCHAR2,
46.2790 - method_name_ IN VARCHAR2 ) RETURN BOOLEAN
46.2791 -IS
46.2792 - dummy_ NUMBER;
46.2793 - CURSOR get_method IS
46.2794 - SELECT 1
46.2795 - FROM dictionary_sys_method_tab
46.2796 - WHERE package_name = upper(package_name_)
46.2797 - AND method_name = initcap(method_name_);
46.2798 -BEGIN
46.2799 - -- Reroute to Database_SYS during installation
46.2800 - IF installation_ THEN
46.2801 - RETURN(Database_SYS.Method_Exist(package_name_, method_name_));
46.2802 - ELSE
46.2803 - OPEN get_method;
46.2804 - FETCH get_method INTO dummy_;
46.2805 - IF (get_method%FOUND) THEN
46.2806 - CLOSE get_method;
46.2807 - RETURN TRUE;
46.2808 - ELSE
46.2809 - CLOSE get_method;
46.2810 - RETURN FALSE;
46.2811 - END IF;
46.2812 - END IF;
46.2813 -END Method_Is_Installed;
46.2814 -
46.2815 -FUNCTION View_Is_Installed (
46.2816 - view_name_ IN VARCHAR2 ) RETURN BOOLEAN
46.2817 -IS
46.2818 - dummy_ NUMBER;
46.2819 - CURSOR get_view IS
46.2820 - SELECT 1
46.2821 - FROM dictionary_sys_view_tab
46.2822 - WHERE view_name = upper(view_name_);
46.2823 -BEGIN
46.2824 - -- Reroute to Database_SYS during installation
46.2825 - IF installation_ THEN
46.2826 - RETURN(Database_SYS.View_Exist(view_name_));
46.2827 - ELSE
46.2828 - OPEN get_view;
46.2829 - FETCH get_view INTO dummy_;
46.2830 - IF (get_view%FOUND) THEN
46.2831 - CLOSE get_view;
46.2832 - RETURN TRUE;
46.2833 - ELSE
46.2834 - CLOSE get_view;
46.2835 - RETURN FALSE;
46.2836 - END IF;
46.2837 - END IF;
46.2838 -END View_Is_Installed;
46.2839 -
46.2840 -FUNCTION Logical_Unit_Is_Installed (
46.2841 - lu_name_ IN VARCHAR2 ) RETURN BOOLEAN
46.2842 -IS
46.2843 - dummy_ NUMBER;
46.2844 - CURSOR get_lu IS
46.2845 - SELECT 1
46.2846 - FROM dictionary_sys_tab
46.2847 - WHERE lu_name = lu_name_;
46.2848 -BEGIN
46.2849 - -- Reroute to Database_SYS during installation
46.2850 - IF installation_ THEN
46.2851 - RETURN(Database_SYS.Package_Exist(Clientnametodbname_(lu_name_)||'_API'));
46.2852 - ELSE
46.2853 - OPEN get_lu;
46.2854 - FETCH get_lu INTO dummy_;
46.2855 - IF (get_lu%FOUND) THEN
46.2856 - CLOSE get_lu;
46.2857 - RETURN TRUE;
46.2858 - ELSE
46.2859 - CLOSE get_lu;
46.2860 - RETURN FALSE;
46.2861 - END IF;
46.2862 - END IF;
46.2863 -END Logical_Unit_Is_Installed;
46.2864 -
46.2865 -FUNCTION Component_Is_Installed (
46.2866 - component_ IN VARCHAR2,
46.2867 - version_ IN VARCHAR2 DEFAULT NULL ) RETURN BOOLEAN
46.2868 -IS
46.2869 - dummy_ NUMBER;
46.2870 - CURSOR get_component IS
46.2871 - SELECT 1
46.2872 - FROM module
46.2873 - WHERE module = upper(component_)
46.2874 - AND upper(version) LIKE nvl(upper(version_), '%');
46.2875 -BEGIN
46.2876 - OPEN get_component;
46.2877 - FETCH get_component INTO dummy_;
46.2878 - IF (get_component%FOUND) THEN
46.2879 - CLOSE get_component;
46.2880 - RETURN TRUE;
46.2881 - ELSE
46.2882 - CLOSE get_component;
46.2883 - RETURN FALSE;
46.2884 - END IF;
46.2885 -END Component_Is_Installed;
46.2886 -
46.2887 -FUNCTION Package_Is_Installed_Num (
46.2888 - package_name_ IN VARCHAR2 ) RETURN NUMBER
46.2889 -IS
46.2890 -BEGIN
46.2891 - IF Package_Is_Installed(package_name_) THEN
46.2892 - RETURN (1);
46.2893 - ELSE
46.2894 - RETURN (0);
46.2895 - END IF;
46.2896 -END Package_Is_Installed_Num;
46.2897 -
46.2898 -FUNCTION Method_Is_Installed_Num (
46.2899 - package_name_ IN VARCHAR2,
46.2900 - method_name_ IN VARCHAR2 ) RETURN NUMBER
46.2901 -IS
46.2902 -BEGIN
46.2903 - IF Method_Is_Installed(package_name_, method_name_) THEN
46.2904 - RETURN (1);
46.2905 - ELSE
46.2906 - RETURN (0);
46.2907 - END IF;
46.2908 -END Method_Is_Installed_Num;
46.2909 -
46.2910 -FUNCTION View_Is_Installed_Num (
46.2911 - view_name_ IN VARCHAR2 ) RETURN NUMBER
46.2912 -IS
46.2913 -BEGIN
46.2914 - IF View_Is_Installed(view_name_) THEN
46.2915 - RETURN (1);
46.2916 - ELSE
46.2917 - RETURN (0);
46.2918 - END IF;
46.2919 -END View_Is_Installed_Num;
46.2920 -
46.2921 -FUNCTION Logical_Unit_Is_Installed_Num (
46.2922 - lu_name_ IN VARCHAR2 ) RETURN NUMBER
46.2923 -IS
46.2924 -BEGIN
46.2925 - IF Logical_Unit_Is_Installed(lu_name_) THEN
46.2926 - RETURN (1);
46.2927 - ELSE
46.2928 - RETURN (0);
46.2929 - END IF;
46.2930 -END Logical_Unit_Is_Installed_Num;
46.2931 -
46.2932 -FUNCTION Component_Is_Installed_Num (
46.2933 - component_ IN VARCHAR2,
46.2934 - version_ IN VARCHAR2 DEFAULT NULL ) RETURN NUMBER
46.2935 -IS
46.2936 -BEGIN
46.2937 - IF Component_Is_Installed(component_, version_) THEN
46.2938 - RETURN (1);
46.2939 - ELSE
46.2940 - RETURN (0);
46.2941 - END IF;
46.2942 -END Component_Is_Installed_Num;
46.2943 -
46.2944 -FUNCTION Get_No_Overloads(package_name_ VARCHAR2,
46.2945 - method_name_ VARCHAR2) RETURN NUMBER
46.2946 -IS
46.2947 - CURSOR get_no_overloads_ IS
46.2948 - SELECT MAX(overload)
46.2949 - FROM dictionary_sys_argument_tab
46.2950 - WHERE package_name = package_name_
46.2951 - AND method_name = method_name_;
46.2952 -
46.2953 - count_ NUMBER;
46.2954 -BEGIN
46.2955 - count_:=NULL;
46.2956 - IF package_name_ IS NULL OR method_name_ IS NULL THEN
46.2957 --- Error_SYS.Appl_General(service_, 'NON_EXISTING_METHOD: [:P1,:P2] method is non existing method', package_name_, method_name_);
46.2958 - RETURN NULL;
46.2959 - END IF;
46.2960 - OPEN get_no_overloads_;
46.2961 - FETCH get_no_overloads_ INTO count_;
46.2962 - IF get_no_overloads_%NOTFOUND THEN
46.2963 --- Error_SYS.Appl_General(service_, 'NON_EXISTING_METHOD: [:P1,:P2] method is non existing method', package_name_, method_name_);
46.2964 - RETURN NULL;
46.2965 - END IF;
46.2966 - CLOSE get_no_overloads_;
46.2967 - RETURN count_;
46.2968 -END Get_No_Overloads;
46.2969 -
46.2970 -FUNCTION Get_No_Arguments(package_name_ VARCHAR2,
46.2971 - method_name_ VARCHAR2) RETURN NUMBER
46.2972 -IS
46.2973 - CURSOR get_no_args_ IS
46.2974 - SELECT count(*) no_args
46.2975 - FROM dictionary_sys_argument_tab
46.2976 - WHERE package_name = package_name_
46.2977 - AND method_name = method_name_
46.2978 - GROUP BY package_name, method_name,overload;
46.2979 -
46.2980 - count_ NUMBER;
46.2981 -BEGIN
46.2982 - count_:=NULL;
46.2983 - IF package_name_ IS NULL OR method_name_ IS NULL THEN
46.2984 --- Error_SYS.Appl_General(service_, 'NON_EXISTING_METHOD: [:P1,:P2] method is non existing method', package_name_, method_name_);
46.2985 - RETURN NULL;
46.2986 - END IF;
46.2987 - OPEN get_no_args_;
46.2988 - FETCH get_no_args_ INTO count_;
46.2989 - IF get_no_args_%NOTFOUND THEN
46.2990 --- Error_SYS.Appl_General(service_, 'NON_EXISTING_METHOD: [:P1,:P2] method is non existing method', package_name_, method_name_);
46.2991 - RETURN NULL;
46.2992 - END IF;
46.2993 - CLOSE get_no_args_;
46.2994 - RETURN count_;
46.2995 -END Get_No_Arguments;
46.2996 -
46.2997 -FUNCTION Get_Min_No_Arguments(package_name_ VARCHAR2,
46.2998 - method_name_ VARCHAR2) RETURN NUMBER
46.2999 -IS
46.3000 - CURSOR get_min_no_args_ IS
46.3001 - SELECT MIN(no_args)
46.3002 - FROM (SELECT package_name, method_name, count(*) no_args
46.3003 - FROM dictionary_sys_argument_tab
46.3004 - GROUP BY package_name, method_name)
46.3005 - WHERE package_name = package_name_
46.3006 - AND method_name = method_name_;
46.3007 -
46.3008 - count_ NUMBER;
46.3009 -BEGIN
46.3010 - count_:=NULL;
46.3011 - IF package_name_ IS NULL OR method_name_ IS NULL THEN
46.3012 --- Error_SYS.Appl_General(service_, 'NON_EXISTING_METHOD: [:P1,:P2] method is non existing method', package_name_, method_name_);
46.3013 - RETURN NULL;
46.3014 - END IF;
46.3015 - OPEN get_min_no_args_;
46.3016 - FETCH get_min_no_args_ INTO count_;
46.3017 - IF get_min_no_args_%NOTFOUND THEN
46.3018 --- Error_SYS.Appl_General(service_, 'NON_EXISTING_METHOD: [:P1,:P2] method is non existing method', package_name_, method_name_);
46.3019 - RETURN NULL;
46.3020 - END IF;
46.3021 - CLOSE get_min_no_args_;
46.3022 - RETURN count_;
46.3023 -END Get_Min_No_Arguments;
46.3024 -
46.3025 -FUNCTION Get_Max_No_Arguments(package_name_ VARCHAR2,
46.3026 - method_name_ VARCHAR2) RETURN NUMBER
46.3027 -IS
46.3028 - CURSOR get_max_no_args_ IS
46.3029 - SELECT MAX(no_args)
46.3030 - FROM (SELECT package_name, method_name, count(*) no_args
46.3031 - FROM dictionary_sys_argument_tab
46.3032 - GROUP BY package_name, method_name)
46.3033 - WHERE package_name = package_name_
46.3034 - AND method_name = method_name_;
46.3035 -
46.3036 - count_ NUMBER;
46.3037 -BEGIN
46.3038 - count_:=NULL;
46.3039 - IF package_name_ IS NULL OR method_name_ IS NULL THEN
46.3040 - --Error_SYS.Appl_General(service_, 'NON_EXISTING_METHOD: [:P1,:P2] method is non existing method', package_name_, method_name_);
46.3041 - RETURN NULL;
46.3042 - END IF;
46.3043 - OPEN get_max_no_args_;
46.3044 - FETCH get_max_no_args_ INTO count_;
46.3045 - IF get_max_no_args_%NOTFOUND THEN
46.3046 - --Error_SYS.Appl_General(service_, 'NON_EXISTING_METHOD: [:P1,:P2] method is non existing method', package_name_, method_name_);
46.3047 - RETURN NULL;
46.3048 - END IF;
46.3049 - CLOSE get_max_no_args_;
46.3050 - RETURN count_;
46.3051 -END Get_Max_No_Arguments;
46.3052 -
46.3053 -FUNCTION Get_Argument_Type(package_name_ VARCHAR2,
46.3054 - method_name_ VARCHAR2,
46.3055 - arg_pos_ NUMBER) RETURN VARCHAR2
46.3056 -IS
46.3057 - CURSOR get_arg_type_ IS
46.3058 - SELECT argument_datatype
46.3059 - FROM dictionary_sys_argument_tab
46.3060 - WHERE package_name = package_name_
46.3061 - AND method_name = method_name_
46.3062 - AND argument_index = arg_pos_;
46.3063 -
46.3064 - type_ dictionary_sys_argument_tab.argument_datatype%TYPE;
46.3065 -BEGIN
46.3066 - type_:=NULL;
46.3067 - IF package_name_ IS NULL OR method_name_ IS NULL THEN
46.3068 - --Error_SYS.Appl_General(service_, 'NON_EXISTING_METHOD: [:P1,:P2] method is non existing method', package_name_, method_name_);
46.3069 - RETURN NULL;
46.3070 - END IF;
46.3071 - IF Get_No_Overloads(package_name_, method_name_) > 1 THEN
46.3072 - RETURN NULL;
46.3073 - END IF;
46.3074 - OPEN get_arg_type_;
46.3075 - FETCH get_arg_type_ INTO type_;
46.3076 - IF get_arg_type_%NOTFOUND THEN
46.3077 - --Error_SYS.Appl_General(service_, 'NON_EXISTING_METHOD: [:P1,:P2] method is non existing method', package_name_, method_name_);
46.3078 - RETURN NULL;
46.3079 - END IF;
46.3080 - CLOSE get_arg_type_;
46.3081 - RETURN type_;
46.3082 -END Get_Argument_Type;
46.3083 -
46.3084 -PROCEDURE Set_Installation_Mode (
46.3085 - installation_mode_ IN BOOLEAN DEFAULT FALSE )
46.3086 -IS
46.3087 -BEGIN
46.3088 - General_SYS.Init_Method(service_, '&PKG', 'Set_Installation_Mode');
46.3089 - installation_ := installation_mode_;
46.3090 -END Set_Installation_Mode;
46.3091 -
46.3092 -FUNCTION Get_Installation_Mode RETURN BOOLEAN
46.3093 -IS
46.3094 -BEGIN
46.3095 - General_SYS.Init_Method(service_, '&PKG', 'Get_Installation_Mode');
46.3096 - RETURN(installation_);
46.3097 -END Get_Installation_Mode;
46.3098 -
46.3099 ------------------------------------------------------------------------------
46.3100 --------------------- FOUNDATION1 METHODS ------------------------------------
46.3101 ------------------------------------------------------------------------------
46.3102 --- Init
46.3103 --- Dummy procedure that can be called at database startup to ensure that
46.3104 --- this package is loaded into memory for performance reasons only.
46.3105 ------------------------------------------------------------------------------
46.3106 -
46.3107 -PROCEDURE Init
46.3108 -IS
46.3109 -BEGIN
46.3110 - NULL;
46.3111 -END Init;
46.3112 -
46.3113 -
46.3114 -END &PKG;
46.3115 -/
46.3116 -SHOW ERROR
46.3117 -
46.3118 -UNDEFINE MODULE
46.3119 -UNDEFINE SERVICE
46.3120 -UNDEFINE PKG
46.3121 -UNDEFINE VIEW
46.3122 -UNDEFINE VIEW2
46.3123 -UNDEFINE VIEW3
46.3124 -UNDEFINE VIEW4
46.3125 -UNDEFINE VIEW5
46.3126 -UNDEFINE VIEW6
46.3127 -UNDEFINE VIEW7
46.3128 -UNDEFINE VIEW8
46.3129 -UNDEFINE VIEW9
46.3130 -UNDEFINE OBJID
46.3131 ------------------------------------------------------------------------------
46.3132 -
46.3133 -
47.1 --- a/PLSQL/Lexer/test/unit/src/org/netbeans/modules/plsql/lexer/FavoriteSchedules.apy Wed May 15 16:07:35 2013 +0200
47.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
47.3 @@ -1,712 +0,0 @@
47.4 ------------------------------------------------------------------------------
47.5 ---
47.6 --- Logical unit: FavoriteSchedules
47.7 ---
47.8 --- Purpose:
47.9 ---
47.10 --- IFS/Design Template Version 2.3
47.11 ---
47.12 --- Date Sign History
47.13 --- ------ ------ ---------------------------------------------------------
47.14 --- 050224 VYPELK Created
47.15 ------------------------------------------------------------------------------
47.16 -
47.17 -DEFINE MODULE = WRKSCH
47.18 -DEFINE LU = FavoriteSchedules
47.19 -DEFINE TABLE = FAVORITE_SCHEDULES_TAB
47.20 -DEFINE VIEW = FAVORITE_SCHEDULES
47.21 -DEFINE PKG = FAVORITE_SCHEDULES_API
47.22 -
47.23 -DEFINE OBJID = rowid
47.24 -DEFINE OBJVERSION = to_char(rowversion)
47.25 -
47.26 ------------------------------------------------------------------------------
47.27 --------------------- VIEWS FOR SELECTS --------------------------------------
47.28 ------------------------------------------------------------------------------
47.29 -
47.30 -PROMPT Creating &VIEW view
47.31 -
47.32 -CREATE OR REPLACE FORCE VIEW &VIEW AS
47.33 -SELECT identity identity,
47.34 - schedule_type schedule_type,
47.35 - schedule_code schedule_code,
47.36 - company_id company_id,
47.37 - wage_class wage_class,
47.38 - &OBJID objid,
47.39 - &OBJVERSION objversion
47.40 -FROM favorite_schedules_tab
47.41 -WITH read only;
47.42 -
47.43 -COMMENT ON TABLE &VIEW
47.44 - IS 'LU=&LU^PROMPT=Favorite Schedules^MODULE=&MODULE^';
47.45 -
47.46 -COMMENT ON COLUMN &VIEW..identity
47.47 - IS 'FLAGS=PMI--^DATATYPE=STRING(30)/UPPERCASE^PROMPT=Identity^REF=ApplicationUser^';
47.48 -COMMENT ON COLUMN &VIEW..schedule_type
47.49 - IS 'FLAGS=KMI-L^DATATYPE=STRING(10)^PROMPT=Schedule Type^';
47.50 -COMMENT ON COLUMN &VIEW..schedule_code
47.51 - IS 'FLAGS=KMI--^DATATYPE=STRING(10)^PROMPT=Schedule Code^';
47.52 -COMMENT ON COLUMN &VIEW..company_id
47.53 - IS 'FLAGS=KMI-L^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Company ID^';
47.54 -COMMENT ON COLUMN &VIEW..wage_class
47.55 - IS 'FLAGS=KMI-L^DATATYPE=STRING(10)/UPPERCASE^PROMPT=Wage Class^REF=WageClass(company_id)^';
47.56 -
47.57 ------------------------------------------------------------------------------
47.58 --------------------- PACKAGES FOR METHODS -----------------------------------
47.59 ------------------------------------------------------------------------------
47.60 -
47.61 -PROMPT Creating &PKG implementation
47.62 -
47.63 -CREATE OR REPLACE PACKAGE BODY &PKG IS
47.64 -
47.65 ------------------------------------------------------------------------------
47.66 --------------------- LU SPECIFIC IMPLEMENTATION METHOD DECLARATIONS ---------
47.67 ------------------------------------------------------------------------------
47.68 -
47.69 -
47.70 ------------------------------------------------------------------------------
47.71 --------------------- IMPLEMENTATION BASE METHODS ----------------------------
47.72 ------------------------------------------------------------------------------
47.73 --- Lock_By_Id___
47.74 --- Client-support to lock a specific instance of the logical unit.
47.75 ---
47.76 --- Lock_By_Keys___
47.77 --- Server support to lock a specific instance of the logical unit.
47.78 ---
47.79 --- Get_Object_By_Id___
47.80 --- Get LU-record from the database with a specified object identity.
47.81 ---
47.82 --- Get_Object_By_Keys___
47.83 --- Get LU-record from the database with specified key columns.
47.84 ---
47.85 --- Check_Exist___
47.86 --- Check if a specific LU-instance already exist in the database.
47.87 ---
47.88 --- Get_Id_Version_By_Keys___
47.89 --- Get the current OBJID and OBJVERSION for a specific LU-instance.
47.90 ------------------------------------------------------------------------------
47.91 -
47.92 -FUNCTION Lock_By_Id___ (
47.93 - objid_ IN VARCHAR2,
47.94 - objversion_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
47.95 -IS
47.96 - row_changed EXCEPTION;
47.97 - row_deleted EXCEPTION;
47.98 - row_locked EXCEPTION;
47.99 - PRAGMA exception_init(row_locked, -0054);
47.100 - rec_ &TABLE%ROWTYPE;
47.101 - dummy_ NUMBER;
47.102 - CURSOR lock_control IS
47.103 - SELECT *
47.104 - FROM &TABLE
47.105 - WHERE &OBJID = objid_
47.106 - AND &OBJVERSION = objversion_
47.107 - FOR UPDATE NOWAIT;
47.108 - CURSOR exist_control IS
47.109 - SELECT 1
47.110 - FROM &TABLE
47.111 - WHERE &OBJID = objid_;
47.112 -BEGIN
47.113 - OPEN lock_control;
47.114 - FETCH lock_control INTO rec_;
47.115 - IF (lock_control%FOUND) THEN
47.116 - CLOSE lock_control;
47.117 - RETURN rec_;
47.118 - END IF;
47.119 - CLOSE lock_control;
47.120 - OPEN exist_control;
47.121 - FETCH exist_control INTO dummy_;
47.122 - IF (exist_control%FOUND) THEN
47.123 - CLOSE exist_control;
47.124 - RAISE row_changed;
47.125 - ELSE
47.126 - CLOSE exist_control;
47.127 - RAISE row_deleted;
47.128 - END IF;
47.129 -EXCEPTION
47.130 - WHEN row_locked THEN
47.131 - Error_SYS.Record_Locked(lu_name_);
47.132 - WHEN row_changed THEN
47.133 - Error_SYS.Record_Modified(lu_name_);
47.134 - WHEN row_deleted THEN
47.135 - Error_SYS.Record_Removed(lu_name_);
47.136 -END Lock_By_Id___;
47.137 -
47.138 -FUNCTION Lock_By_Keys___ (
47.139 - identity_ IN VARCHAR2,
47.140 - schedule_type_ IN VARCHAR2,
47.141 - schedule_code_ IN VARCHAR2,
47.142 - company_id_ IN VARCHAR2,
47.143 - wage_class_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
47.144 -IS
47.145 - row_deleted EXCEPTION;
47.146 - rec_ &TABLE%ROWTYPE;
47.147 - CURSOR lock_control IS
47.148 - SELECT *
47.149 - FROM &TABLE
47.150 - WHERE identity = identity_
47.151 - AND schedule_type = schedule_type_
47.152 - AND schedule_code = schedule_code_
47.153 - AND company_id = company_id_
47.154 - AND wage_class = wage_class_
47.155 - FOR UPDATE;
47.156 -BEGIN
47.157 - OPEN lock_control;
47.158 - FETCH lock_control INTO rec_;
47.159 - IF (lock_control%FOUND) THEN
47.160 - CLOSE lock_control;
47.161 - RETURN rec_;
47.162 - ELSE
47.163 - CLOSE lock_control;
47.164 - RAISE row_deleted;
47.165 - END IF;
47.166 -EXCEPTION
47.167 - WHEN row_deleted THEN
47.168 - Error_SYS.Record_Removed(lu_name_);
47.169 -END Lock_By_Keys___;
47.170 -
47.171 -FUNCTION Get_Object_By_Id___ (
47.172 - objid_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
47.173 -IS
47.174 - lu_rec_ &TABLE%ROWTYPE;
47.175 - CURSOR getrec IS
47.176 - SELECT *
47.177 - FROM &TABLE
47.178 - WHERE &OBJID = objid_;
47.179 -BEGIN
47.180 - OPEN getrec;
47.181 - FETCH getrec INTO lu_rec_;
47.182 - IF (getrec%NOTFOUND) THEN
47.183 - CLOSE getrec;
47.184 - Error_SYS.Record_Removed(lu_name_);
47.185 - END IF;
47.186 - CLOSE getrec;
47.187 - RETURN(lu_rec_);
47.188 -END Get_Object_By_Id___;
47.189 -
47.190 -
47.191 -FUNCTION Get_Object_By_Keys___ (
47.192 - identity_ IN VARCHAR2,
47.193 - schedule_type_ IN VARCHAR2,
47.194 - schedule_code_ IN VARCHAR2,
47.195 - company_id_ IN VARCHAR2,
47.196 - wage_class_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
47.197 -IS
47.198 - lu_rec_ &TABLE%ROWTYPE;
47.199 - CURSOR getrec IS
47.200 - SELECT *
47.201 - FROM &TABLE
47.202 - WHERE identity = identity_
47.203 - AND schedule_type = schedule_type_
47.204 - AND schedule_code = schedule_code_
47.205 - AND company_id = company_id_
47.206 - AND wage_class = wage_class_;
47.207 -BEGIN
47.208 - OPEN getrec;
47.209 - FETCH getrec INTO lu_rec_;
47.210 - CLOSE getrec;
47.211 - RETURN(lu_rec_);
47.212 -END Get_Object_By_Keys___;
47.213 -
47.214 -FUNCTION Check_Exist___ (
47.215 - identity_ IN VARCHAR2,
47.216 - schedule_type_ IN VARCHAR2,
47.217 - schedule_code_ IN VARCHAR2,
47.218 - company_id_ IN VARCHAR2,
47.219 - wage_class_ IN VARCHAR2 ) RETURN BOOLEAN
47.220 -IS
47.221 - dummy_ NUMBER;
47.222 - CURSOR exist_control IS
47.223 - SELECT 1
47.224 - FROM &TABLE
47.225 - WHERE identity = identity_
47.226 - AND schedule_type = schedule_type_
47.227 - AND schedule_code = schedule_code_
47.228 - AND company_id = company_id_
47.229 - AND wage_class = wage_class_;
47.230 -BEGIN
47.231 - OPEN exist_control;
47.232 - FETCH exist_control INTO dummy_;
47.233 - IF (exist_control%FOUND) THEN
47.234 - CLOSE exist_control;
47.235 - RETURN(TRUE);
47.236 - END IF;
47.237 - CLOSE exist_control;
47.238 - RETURN(FALSE);
47.239 -END Check_Exist___;
47.240 -
47.241 -PROCEDURE Get_Id_Version_By_Keys___ (
47.242 - objid_ IN OUT VARCHAR2,
47.243 - objversion_ IN OUT VARCHAR2,
47.244 - identity_ IN VARCHAR2,
47.245 - schedule_type_ IN VARCHAR2,
47.246 - schedule_code_ IN VARCHAR2,
47.247 - company_id_ IN VARCHAR2,
47.248 - wage_class_ IN VARCHAR2)
47.249 -IS
47.250 - CURSOR get_version IS
47.251 - SELECT &OBJID, &OBJVERSION
47.252 - FROM &TABLE
47.253 - WHERE identity = identity_
47.254 - AND schedule_type = schedule_type_
47.255 - AND schedule_code = schedule_code_
47.256 - AND company_id = company_id_
47.257 - AND wage_class = wage_class_;
47.258 -BEGIN
47.259 - OPEN get_version;
47.260 - FETCH get_version INTO objid_, objversion_;
47.261 - CLOSE get_version;
47.262 -END Get_Id_Version_By_Keys___;
47.263 -
47.264 ------------------------------------------------------------------------------
47.265 --------------------- IMPLEMENTATION BASE METHODS FOR INSERT -----------------
47.266 ------------------------------------------------------------------------------
47.267 --- Prepare_Insert___
47.268 --- Set all default values for a new instance (ON-NEW-RECORD) of this
47.269 --- logical unit by calling procedure Add_Attr.
47.270 ---
47.271 --- Unpack_Check_Insert___
47.272 --- Unpack the attribute list, check all attributes from the client
47.273 --- and generate all default values before creation of the new object.
47.274 ---
47.275 --- Insert___
47.276 --- Insert a new LU-instance into the database and return the values
47.277 --- for OBJID and OBJVERSION.
47.278 ------------------------------------------------------------------------------
47.279 -
47.280 -PROCEDURE Prepare_Insert___ (
47.281 - attr_ IN OUT VARCHAR2 )
47.282 -IS
47.283 -BEGIN
47.284 - Client_SYS.Clear_Attr(attr_);
47.285 -END Prepare_Insert___;
47.286 -
47.287 -
47.288 -PROCEDURE Unpack_Check_Insert___ (
47.289 - attr_ IN OUT VARCHAR2,
47.290 - newrec_ IN OUT &TABLE%ROWTYPE )
47.291 -IS
47.292 - ptr_ NUMBER;
47.293 - name_ VARCHAR2(30);
47.294 - value_ VARCHAR2(2000);
47.295 -BEGIN
47.296 - ptr_ := NULL;
47.297 - WHILE (Client_SYS.Get_Next_From_Attr(attr_, ptr_, name_, value_)) LOOP
47.298 - IF (name_ = 'IDENTITY') THEN
47.299 - newrec_.identity := value_;
47.300 - Application_User_API.Exist(newrec_.identity);
47.301 - ELSIF (name_ = 'SCHEDULE_TYPE') THEN
47.302 - newrec_.schedule_type := value_;
47.303 - ELSIF (name_ = 'SCHEDULE_CODE') THEN
47.304 - newrec_.schedule_code := value_;
47.305 - ELSIF (name_ = 'COMPANY_ID') THEN
47.306 - newrec_.company_id := value_;
47.307 - ELSIF (name_ = 'WAGE_CLASS') THEN
47.308 - newrec_.wage_class := value_;
47.309 - Wage_Class_API.Exist(newrec_.company_id, newrec_.wage_class);
47.310 - ELSE
47.311 - Error_SYS.Item_Not_Exist(lu_name_, name_, value_);
47.312 - END IF;
47.313 - END LOOP;
47.314 - Client_SYS.Clear_Attr(attr_);
47.315 - Error_SYS.Check_Not_Null(lu_name_, 'IDENTITY', newrec_.identity);
47.316 - Error_SYS.Check_Not_Null(lu_name_, 'SCHEDULE_TYPE', newrec_.schedule_type);
47.317 - Error_SYS.Check_Not_Null(lu_name_, 'SCHEDULE_CODE', newrec_.schedule_code);
47.318 - Error_SYS.Check_Not_Null(lu_name_, 'COMPANY_ID', newrec_.company_id);
47.319 - Error_SYS.Check_Not_Null(lu_name_, 'WAGE_CLASS', newrec_.wage_class);
47.320 -EXCEPTION
47.321 - WHEN value_error THEN
47.322 - Error_SYS.Item_Format(lu_name_, name_, value_);
47.323 -END Unpack_Check_Insert___;
47.324 -
47.325 -
47.326 -PROCEDURE Insert___ (
47.327 - objid_ OUT VARCHAR2,
47.328 - objversion_ OUT VARCHAR2,
47.329 - newrec_ IN OUT &TABLE%ROWTYPE,
47.330 - attr_ IN OUT VARCHAR2 )
47.331 -IS
47.332 -BEGIN
47.333 - newrec_.rowversion := 1;
47.334 - objversion_ := to_char(newrec_.rowversion);
47.335 - INSERT
47.336 - INTO favorite_schedules_tab (
47.337 - identity,
47.338 - schedule_type,
47.339 - schedule_code,
47.340 - company_id,
47.341 - wage_class,
47.342 - rowversion)
47.343 - VALUES (
47.344 - newrec_.identity,
47.345 - newrec_.schedule_type,
47.346 - newrec_.schedule_code,
47.347 - newrec_.company_id,
47.348 - newrec_.wage_class,
47.349 - newrec_.rowversion)
47.350 - RETURNING &OBJID INTO objid_;
47.351 -EXCEPTION
47.352 - WHEN dup_val_on_index THEN
47.353 - Error_SYS.Record_Exist(lu_name_);
47.354 -END Insert___;
47.355 -
47.356 ------------------------------------------------------------------------------
47.357 --------------------- IMPLEMENTATION BASE METHODS FOR UPDATE -----------------
47.358 ------------------------------------------------------------------------------
47.359 --- Unpack_Check_Update___
47.360 --- Unpack the attribute list, check all attributes from the client
47.361 --- and generate all default values before modifying the object.
47.362 ---
47.363 --- Update___
47.364 --- Update an existing LU-instance in the database and return the
47.365 --- the new OBJVERSION.
47.366 ------------------------------------------------------------------------------
47.367 -
47.368 -PROCEDURE Unpack_Check_Update___ (
47.369 - attr_ IN OUT VARCHAR2,
47.370 - newrec_ IN OUT &TABLE%ROWTYPE,
47.371 - objid_ IN VARCHAR2 )
47.372 -IS
47.373 - ptr_ NUMBER;
47.374 - name_ VARCHAR2(30);
47.375 - value_ VARCHAR2(2000);
47.376 -BEGIN
47.377 - ptr_ := NULL;
47.378 - WHILE (Client_SYS.Get_Next_From_Attr(attr_, ptr_, name_, value_)) LOOP
47.379 - IF (name_ = 'IDENTITY') THEN
47.380 - Error_SYS.Item_Update(lu_name_, 'IDENTITY');
47.381 - ELSIF (name_ = 'SCHEDULE_TYPE') THEN
47.382 - Error_SYS.Item_Update(lu_name_, 'SCHEDULE_TYPE');
47.383 - ELSIF (name_ = 'SCHEDULE_CODE') THEN
47.384 - Error_SYS.Item_Update(lu_name_, 'SCHEDULE_CODE');
47.385 - ELSIF (name_ = 'COMPANY_ID') THEN
47.386 - Error_SYS.Item_Update(lu_name_, 'COMPANY_ID');
47.387 - ELSIF (name_ = 'WAGE_CLASS') THEN
47.388 - Error_SYS.Item_Update(lu_name_, 'WAGE_CLASS');
47.389 - ELSE
47.390 - Error_SYS.Item_Not_Exist(lu_name_, name_, value_);
47.391 - END IF;
47.392 - END LOOP;
47.393 - Client_SYS.Clear_Attr(attr_);
47.394 -EXCEPTION
47.395 - WHEN value_error THEN
47.396 - Error_SYS.Item_Format(lu_name_, name_, value_);
47.397 -END Unpack_Check_Update___;
47.398 -
47.399 -
47.400 -PROCEDURE Update___ (
47.401 - objid_ IN VARCHAR2,
47.402 - oldrec_ IN &TABLE%ROWTYPE,
47.403 - newrec_ IN OUT &TABLE%ROWTYPE,
47.404 - attr_ IN OUT VARCHAR2,
47.405 - objversion_ IN OUT VARCHAR2,
47.406 - by_keys_ IN BOOLEAN DEFAULT FALSE )
47.407 -IS
47.408 -BEGIN
47.409 - newrec_.rowversion := newrec_.rowversion + 1;
47.410 - objversion_ := to_char(newrec_.rowversion);
47.411 - IF by_keys_ THEN
47.412 - UPDATE favorite_schedules_tab
47.413 - SET identity = newrec_.identity,
47.414 - schedule_type = newrec_.schedule_type,
47.415 - schedule_code = newrec_.schedule_code,
47.416 - company_id = newrec_.company_id,
47.417 - wage_class = newrec_.wage_class,
47.418 - rowversion = newrec_.rowversion
47.419 - WHERE identity = newrec_.identity
47.420 - AND schedule_type = newrec_.schedule_type
47.421 - AND schedule_code = newrec_.schedule_code
47.422 - AND company_id = newrec_.company_id
47.423 - AND wage_class = newrec_.wage_class;
47.424 - ELSE
47.425 - UPDATE favorite_schedules_tab
47.426 - SET identity = newrec_.identity,
47.427 - schedule_type = newrec_.schedule_type,
47.428 - schedule_code = newrec_.schedule_code,
47.429 - company_id = newrec_.company_id,
47.430 - wage_class = newrec_.wage_class,
47.431 - rowversion = newrec_.rowversion
47.432 - WHERE &OBJID = objid_;
47.433 - END IF;
47.434 -EXCEPTION
47.435 - WHEN dup_val_on_index THEN
47.436 - Error_SYS.Record_Exist(lu_name_);
47.437 -END Update___;
47.438 -
47.439 ------------------------------------------------------------------------------
47.440 --------------------- IMPLEMENTATION BASE METHODS FOR DELETE -----------------
47.441 ------------------------------------------------------------------------------
47.442 --- Check_Delete___
47.443 --- Checks whether a specific LU-record may be removed or not.
47.444 --- The procedure should check business rules like attribute values
47.445 --- as well as database constraints (defined or not).
47.446 ---
47.447 --- Delete___
47.448 --- Deletion of the specific LU-object from the database.
47.449 ------------------------------------------------------------------------------
47.450 -
47.451 -PROCEDURE Check_Delete___ (
47.452 - remrec_ IN &TABLE%ROWTYPE )
47.453 -IS
47.454 - key_ VARCHAR2(2000);
47.455 -BEGIN
47.456 - key_ := remrec_.identity || '^' || remrec_.schedule_type || '^' || remrec_.schedule_code || '^' || remrec_.company_id || '^' || remrec_.wage_class || '^';
47.457 - Reference_SYS.Check_Restricted_Delete(lu_name_, key_);
47.458 -END Check_Delete___;
47.459 -
47.460 -
47.461 -PROCEDURE Delete___ (
47.462 - objid_ IN VARCHAR2,
47.463 - remrec_ IN &TABLE%ROWTYPE )
47.464 -IS
47.465 - key_ VARCHAR2(2000);
47.466 -BEGIN
47.467 - key_ := remrec_.identity || '^' || remrec_.schedule_type || '^' || remrec_.schedule_code || '^' || remrec_.company_id || '^' || remrec_.wage_class || '^';
47.468 - Reference_SYS.Do_Cascade_Delete(lu_name_, key_);
47.469 - DELETE
47.470 - FROM favorite_schedules_tab
47.471 - WHERE &OBJID = objid_;
47.472 -END Delete___;
47.473 -
47.474 ------------------------------------------------------------------------------
47.475 --------------------- PRIVATE BASE METHODS -----------------------------------
47.476 ------------------------------------------------------------------------------
47.477 --- Lock__
47.478 --- Client-support to lock a specific instance of the logical unit.
47.479 ---
47.480 --- New__
47.481 --- Client-support interface to create LU instances.
47.482 --- action_ = 'PREPARE'
47.483 --- Default values and handle of information to client.
47.484 --- The default values are set in procedure Prepare_Insert___.
47.485 --- action_ = 'CHECK'
47.486 --- Check all attributes before creating new object and handle of
47.487 --- information to client. The attribute list is unpacked, checked
47.488 --- and prepared (defaults) in procedure Unpack_Check_Insert___.
47.489 --- action_ = 'DO'
47.490 --- Creation of new instances of the logical unit and handle of
47.491 --- information to client. The attribute list is unpacked, checked
47.492 --- and prepared (defaults) in procedure Unpack_Check_Insert___
47.493 --- before calling procedure Insert___.
47.494 ---
47.495 --- Modify__
47.496 --- Client-support interface to modify attributes for LU instances.
47.497 --- action_ = 'CHECK'
47.498 --- Check all attributes before modifying an existing object and
47.499 --- handle of information to client. The attribute list is unpacked,
47.500 --- checked and prepared(defaults) in procedure Unpack_Check_Update___.
47.501 --- action_ = 'DO'
47.502 --- Modification of an existing instance of the logical unit. The
47.503 --- procedure unpacks the attributes, checks all values before
47.504 --- procedure Update___ is called.
47.505 ---
47.506 --- Remove__
47.507 --- Client-support interface to remove LU instances.
47.508 --- action_ = 'CHECK'
47.509 --- Check whether a specific LU-instance may be removed or not.
47.510 --- The procedure fetches the complete record by calling procedure
47.511 --- Get_Object_By_Id___. Then the check is made by calling procedure
47.512 --- Check_Delete___.
47.513 --- action_ = 'DO'
47.514 --- Remove an existing instance of the logical unit. The procedure
47.515 --- fetches the complete LU-record, checks for a delete and then
47.516 --- deletes the record by calling procedure Delete___.
47.517 ------------------------------------------------------------------------------
47.518 -
47.519 -PROCEDURE Lock__ (
47.520 - info_ OUT VARCHAR2,
47.521 - objid_ IN VARCHAR2,
47.522 - objversion_ IN VARCHAR2 )
47.523 -IS
47.524 - dummy_ &TABLE%ROWTYPE;
47.525 -BEGIN
47.526 - General_SYS.Init_Method(lu_name_, '&PKG', 'Lock__');
47.527 - dummy_ := Lock_By_Id___(objid_, objversion_);
47.528 - info_ := Client_SYS.Get_All_Info;
47.529 -END Lock__;
47.530 -
47.531 -
47.532 -PROCEDURE New__ (
47.533 - info_ OUT VARCHAR2,
47.534 - objid_ OUT VARCHAR2,
47.535 - objversion_ OUT VARCHAR2,
47.536 - attr_ IN OUT VARCHAR2,
47.537 - action_ IN VARCHAR2 )
47.538 -IS
47.539 - newrec_ &TABLE%ROWTYPE;
47.540 -BEGIN
47.541 - General_SYS.Init_Method(lu_name_, '&PKG', 'New__');
47.542 - IF (action_ = 'PREPARE') THEN
47.543 - Prepare_Insert___(attr_);
47.544 - ELSIF (action_ = 'CHECK') THEN
47.545 - Unpack_Check_Insert___(attr_, newrec_);
47.546 - ELSIF (action_ = 'DO') THEN
47.547 - Unpack_Check_Insert___(attr_, newrec_);
47.548 - Insert___(objid_, objversion_, newrec_, attr_);
47.549 - END IF;
47.550 - info_ := Client_SYS.Get_All_Info;
47.551 -END New__;
47.552 -
47.553 -
47.554 -PROCEDURE Modify__ (
47.555 - info_ OUT VARCHAR2,
47.556 - objid_ IN VARCHAR2,
47.557 - objversion_ IN OUT VARCHAR2,
47.558 - attr_ IN OUT VARCHAR2,
47.559 - action_ IN VARCHAR2 )
47.560 -IS
47.561 - oldrec_ &TABLE%ROWTYPE;
47.562 - newrec_ &TABLE%ROWTYPE;
47.563 -BEGIN
47.564 - General_SYS.Init_Method(lu_name_, '&PKG', 'Modify__');
47.565 - IF (action_ = 'CHECK') THEN
47.566 - newrec_ := Get_Object_By_Id___(objid_);
47.567 - Unpack_Check_Update___(attr_, newrec_, objid_);
47.568 - ELSIF (action_ = 'DO') THEN
47.569 - oldrec_ := Lock_By_Id___(objid_, objversion_);
47.570 - newrec_ := oldrec_;
47.571 - Unpack_Check_Update___(attr_, newrec_, objid_);
47.572 - Update___(objid_, oldrec_, newrec_, attr_, objversion_);
47.573 - END IF;
47.574 - info_ := Client_SYS.Get_All_Info;
47.575 -END Modify__;
47.576 -
47.577 -
47.578 -PROCEDURE Remove__ (
47.579 - info_ OUT VARCHAR2,
47.580 - objid_ IN VARCHAR2,
47.581 - objversion_ IN VARCHAR2,
47.582 - action_ IN VARCHAR2 )
47.583 -IS
47.584 - remrec_ &TABLE%ROWTYPE;
47.585 -BEGIN
47.586 - General_SYS.Init_Method(lu_name_, '&PKG', 'Remove__');
47.587 - IF (action_ = 'CHECK') THEN
47.588 - remrec_ := Get_Object_By_Id___(objid_);
47.589 - Check_Delete___(remrec_);
47.590 - ELSIF (action_ = 'DO') THEN
47.591 - remrec_ := Lock_By_Id___(objid_, objversion_);
47.592 - Check_Delete___(remrec_);
47.593 - Delete___(objid_, remrec_);
47.594 - END IF;
47.595 - info_ := Client_SYS.Get_All_Info;
47.596 -END Remove__;
47.597 -
47.598 ------------------------------------------------------------------------------
47.599 --------------------- PUBLIC BASE METHODS ------------------------------------
47.600 ------------------------------------------------------------------------------
47.601 --- Exist
47.602 --- Checks if given pointer (e.g. primary key) to an instance of this
47.603 --- logical unit exists. If not an exception will be raised.
47.604 ------------------------------------------------------------------------------
47.605 -
47.606 -PROCEDURE Exist (
47.607 - identity_ IN VARCHAR2,
47.608 - schedule_type_ IN VARCHAR2,
47.609 - schedule_code_ IN VARCHAR2,
47.610 - company_id_ IN VARCHAR2,
47.611 - wage_class_ IN VARCHAR2 )
47.612 -IS
47.613 -BEGIN
47.614 - General_SYS.Init_Method(lu_name_, '&PKG', 'Exist', TRUE);
47.615 - IF (NOT Check_Exist___(identity_, schedule_type_, schedule_code_, company_id_, wage_class_)) THEN
47.616 - Error_SYS.Record_Not_Exist(lu_name_);
47.617 - END IF;
47.618 -END Exist;
47.619 -
47.620 ------------------------------------------------------------------------------
47.621 --------------------- LU SPECIFIC IMPLEMENTATION METHODS ---------------------
47.622 ------------------------------------------------------------------------------
47.623 -
47.624 -
47.625 ------------------------------------------------------------------------------
47.626 --------------------- LU SPECIFIC PRIVATE METHODS ----------------------------
47.627 ------------------------------------------------------------------------------
47.628 -
47.629 -
47.630 ------------------------------------------------------------------------------
47.631 --------------------- LU SPECIFIC PROTECTED METHODS --------------------------
47.632 ------------------------------------------------------------------------------
47.633 -
47.634 -
47.635 ------------------------------------------------------------------------------
47.636 --------------------- LU SPECIFIC PUBLIC METHODS -----------------------------
47.637 ------------------------------------------------------------------------------
47.638 -
47.639 -PROCEDURE Add_Remove (
47.640 - identity_ IN VARCHAR2,
47.641 - schedule_type_ IN VARCHAR2,
47.642 - schedule_code_ IN VARCHAR2,
47.643 - company_id_ IN VARCHAR2,
47.644 - wage_class_ IN VARCHAR2,
47.645 - favorite_ IN NUMBER )
47.646 -IS
47.647 - info_ VARCHAR2(1000);
47.648 - objid_ FAVORITE_SCHEDULES.objid%TYPE;
47.649 - objversion_ FAVORITE_SCHEDULES.objversion%TYPE;
47.650 - attr_ VARCHAR2(1000);
47.651 -BEGIN
47.652 - General_SYS.Init_Method(lu_name_, '&PKG', 'Add_Remove');
47.653 - IF favorite_ = 1 THEN
47.654 - IF (NOT Check_Exist___(identity_, schedule_type_, schedule_code_, company_id_, wage_class_)) THEN
47.655 - Client_SYS.Clear_Attr(attr_);
47.656 - Client_SYS.Add_To_Attr('COMPANY_ID', company_id_, attr_);
47.657 - Client_SYS.Add_To_Attr('WAGE_CLASS', wage_class_, attr_);
47.658 - Client_SYS.Add_To_Attr('IDENTITY', identity_, attr_);
47.659 - Client_SYS.Add_To_Attr('SCHEDULE_TYPE', schedule_type_, attr_);
47.660 - Client_SYS.Add_To_Attr('SCHEDULE_CODE', schedule_code_, attr_);
47.661 - New__( info_, objid_, objversion_, attr_, 'DO');
47.662 - END IF;
47.663 - ELSE
47.664 - IF (Check_Exist___(identity_, schedule_type_, schedule_code_, company_id_, wage_class_)) THEN
47.665 - Get_Id_Version_By_Keys___(objid_, objversion_, identity_, schedule_type_, schedule_code_, company_id_, wage_class_);
47.666 - Remove__(info_, objid_, objversion_, 'DO');
47.667 - END IF;
47.668 - END IF;
47.669 -
47.670 -END Add_Remove;
47.671 -
47.672 -
47.673 -FUNCTION Get_Favorite (
47.674 - identity_ IN VARCHAR2,
47.675 - schedule_type_ IN VARCHAR2,
47.676 - schedule_code_ IN VARCHAR2,
47.677 - company_id_ IN VARCHAR2,
47.678 - wage_class_ IN VARCHAR2 ) RETURN NUMBER
47.679 -IS
47.680 -BEGIN
47.681 - IF (Check_Exist___(identity_, schedule_type_, schedule_code_, company_id_, wage_class_)) THEN
47.682 - RETURN 1;
47.683 - END IF;
47.684 - RETURN 0;
47.685 -END Get_Favorite;
47.686 -
47.687 ------------------------------------------------------------------------------
47.688 --------------------- FOUNDATION1 METHODS ------------------------------------
47.689 ------------------------------------------------------------------------------
47.690 --- Init
47.691 --- Dummy procedure that can be called at database startup to ensure that
47.692 --- this package is loaded into memory for performance reasons only.
47.693 ------------------------------------------------------------------------------
47.694 -
47.695 -PROCEDURE Init
47.696 -IS
47.697 -BEGIN
47.698 - NULL;
47.699 -END Init;
47.700 -
47.701 -
47.702 -END &PKG;
47.703 -/
47.704 -SHOW ERROR
47.705 -
47.706 -UNDEFINE MODULE
47.707 -UNDEFINE LU
47.708 -UNDEFINE TABLE
47.709 -UNDEFINE VIEW
47.710 -UNDEFINE PKG
47.711 -
47.712 -UNDEFINE OBJID
47.713 -UNDEFINE OBJVERSION
47.714 -
47.715 ------------------------------------------------------------------------------
48.1 --- a/PLSQL/Lexer/test/unit/src/org/netbeans/modules/plsql/lexer/FndEvent.api Wed May 15 16:07:35 2013 +0200
48.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
48.3 @@ -1,147 +0,0 @@
48.4 ------------------------------------------------------------------------------
48.5 ---
48.6 --- Logical unit: FndEvent
48.7 ---
48.8 --- IFS/Design Template Version 2.3
48.9 ---
48.10 --- Date Sign History
48.11 --- ------ ---- -----------------------------------------------------------
48.12 --- 971009 ERFO Reviewed for Foundation1 Release 2.0.0 (ToDo #1676).
48.13 --- 030212 ROOD Changed module to FNDBAS (ToDo#4149).
48.14 --- 070212 HAAR Added support for Custom Defined Events (Bugg#61780).
48.15 --- 090114 HAAR Added methods for Export/Import Export__ and Register_Custom_Event (Bug#79673).
48.16 ------------------------------------------------------------------------------
48.17 -
48.18 -DEFINE MODULE = FNDBAS
48.19 -DEFINE LU = FndEvent
48.20 -DEFINE PKG = FND_EVENT_API
48.21 -
48.22 -
48.23 -PROMPT Creating &AO..&PKG specification
48.24 -
48.25 -CREATE OR REPLACE PACKAGE &AO..&PKG IS
48.26 -
48.27 -module_ CONSTANT VARCHAR2(25) := '&MODULE';
48.28 -lu_name_ CONSTANT VARCHAR2(25) := '&LU';
48.29 -
48.30 -TYPE Public_Rec IS RECORD
48.31 - (event_description FND_EVENT_TAB.event_description%TYPE,
48.32 - event_enable FND_EVENT_TAB.event_enable%TYPE);
48.33 -
48.34 ------------------------------------------------------------------------------
48.35 --------------------- PRIVATE BASE METHODS -----------------------------------
48.36 ------------------------------------------------------------------------------
48.37 -
48.38 -PROCEDURE Lock__ (
48.39 - info_ OUT VARCHAR2,
48.40 - objid_ IN VARCHAR2,
48.41 - objversion_ IN VARCHAR2 );
48.42 -
48.43 -PROCEDURE New__ (
48.44 - info_ OUT VARCHAR2,
48.45 - objid_ OUT VARCHAR2,
48.46 - objversion_ OUT VARCHAR2,
48.47 - attr_ IN OUT VARCHAR2,
48.48 - action_ IN VARCHAR2 );
48.49 -
48.50 -PROCEDURE Modify__ (
48.51 - info_ OUT VARCHAR2,
48.52 - objid_ IN VARCHAR2,
48.53 - objversion_ IN OUT VARCHAR2,
48.54 - attr_ IN OUT VARCHAR2,
48.55 - action_ IN VARCHAR2 );
48.56 -
48.57 -PROCEDURE Remove__ (
48.58 - info_ OUT VARCHAR2,
48.59 - objid_ IN VARCHAR2,
48.60 - objversion_ IN VARCHAR2,
48.61 - action_ IN VARCHAR2 );
48.62 -
48.63 ------------------------------------------------------------------------------
48.64 --------------------- PUBLIC BASE METHODS ------------------------------------
48.65 ------------------------------------------------------------------------------
48.66 -
48.67 -PROCEDURE Exist (
48.68 - event_lu_name_ IN VARCHAR2,
48.69 - event_id_ IN VARCHAR2 );
48.70 -
48.71 ------------------------------------------------------------------------------
48.72 --------------------- LU SPECIFIC PRIVATE METHODS ----------------------------
48.73 ------------------------------------------------------------------------------
48.74 -
48.75 -PROCEDURE Export__ (
48.76 - string_ OUT VARCHAR2,
48.77 - event_lu_name_ IN VARCHAR2,
48.78 - event_id_ IN VARCHAR2 );
48.79 -
48.80 ------------------------------------------------------------------------------
48.81 --------------------- LU SPECIFIC PROTECTED METHODS --------------------------
48.82 ------------------------------------------------------------------------------
48.83 -
48.84 -
48.85 ------------------------------------------------------------------------------
48.86 --------------------- LU SPECIFIC PUBLIC METHODS -----------------------------
48.87 ------------------------------------------------------------------------------
48.88 -
48.89 -FUNCTION Get_Event_Description (
48.90 - event_lu_name_ IN VARCHAR2,
48.91 - event_id_ IN VARCHAR2 ) RETURN VARCHAR2;
48.92 -PRAGMA restrict_references(Get_Event_Description, WNDS);
48.93 -
48.94 -
48.95 -FUNCTION Get_Event_Enable (
48.96 - event_lu_name_ IN VARCHAR2,
48.97 - event_id_ IN VARCHAR2 ) RETURN VARCHAR2;
48.98 -PRAGMA restrict_references(Get_Event_Enable, WNDS);
48.99 -
48.100 -
48.101 -PROCEDURE Set_Event_Enable (
48.102 - event_lu_name_ IN VARCHAR2,
48.103 - event_id_ IN VARCHAR2 );
48.104 -
48.105 -
48.106 -PROCEDURE Refresh (
48.107 - event_lu_name_ IN VARCHAR2,
48.108 - event_id_ IN VARCHAR2,
48.109 - event_desc_ IN VARCHAR2,
48.110 - event_type_db_ IN VARCHAR2 DEFAULT 'APPLICATION',
48.111 - event_table_name_ IN VARCHAR2 DEFAULT NULL,
48.112 - modified_attributes_ IN VARCHAR2 DEFAULT NULL,
48.113 - new_row_ IN VARCHAR2 DEFAULT 'FALSE',
48.114 - modify_row_ IN VARCHAR2 DEFAULT 'FALSE',
48.115 - remove_row_ IN VARCHAR2 DEFAULT 'FALSE');
48.116 -
48.117 -PROCEDURE Register_Custom_Event (
48.118 - event_lu_name_ IN VARCHAR2,
48.119 - event_id_ IN VARCHAR2,
48.120 - info_msg_ IN VARCHAR2 );
48.121 -
48.122 -
48.123 -PROCEDURE Unfresh (
48.124 - event_lu_name_ IN VARCHAR2,
48.125 - event_id_ IN VARCHAR2 );
48.126 -
48.127 -
48.128 -FUNCTION Get (
48.129 - event_lu_name_ IN VARCHAR2,
48.130 - event_id_ IN VARCHAR2 ) RETURN Public_Rec;
48.131 -PRAGMA restrict_references(Get, WNDS);
48.132 -
48.133 -
48.134 -
48.135 ------------------------------------------------------------------------------
48.136 --------------------- FOUNDATION1 METHODS ------------------------------------
48.137 ------------------------------------------------------------------------------
48.138 -
48.139 -PROCEDURE Init;
48.140 -
48.141 -
48.142 -END &PKG;
48.143 -/
48.144 -SHOW ERROR
48.145 -
48.146 -UNDEFINE MODULE
48.147 -UNDEFINE LU
48.148 -UNDEFINE PKG
48.149 -
48.150 ------------------------------------------------------------------------------
49.1 --- a/PLSQL/Lexer/test/unit/src/org/netbeans/modules/plsql/lexer/FndEvent.apy Wed May 15 16:07:35 2013 +0200
49.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
49.3 @@ -1,1422 +0,0 @@
49.4 ------------------------------------------------------------------------------
49.5 ---
49.6 --- Logical unit: FndEvent
49.7 ---
49.8 --- Purpose:
49.9 ---
49.10 --- IFS/Design Template Version 2.3
49.11 ---
49.12 --- Date Sign History
49.13 --- ------ ---- -----------------------------------------------------------
49.14 --- 971009 ERFO Reviewed for Foundation1 Release 2.0.0 (ToDo #1676).
49.15 --- 971013 ERFO Made attribute EVENT_ID uppercase.
49.16 --- 980223 ERFO Removed Set_Event_Enabled in method Refresh and added
49.17 --- validation when setting event enabled (ToDo #2144).
49.18 --- 980310 ERFO Set event_enable to FALSE in method Refresh and
49.19 --- ensure a correct error message in method Update___.
49.20 --- 030212 ROOD Changed module to FNDBAS (ToDo#4149).
49.21 --- 030214 ROOD Replaced usage of fnd_event_action_tab with the view (ToDo#4149).
49.22 --- 060623 RARU Moved the select statement into a cursor in Update__.
49.23 --- 070212 HAAR Added support for Custom Defined Events (Bugg#61780).
49.24 --- 080101 SUMA Changed the :new to old when inserting new recs.(Bug#70269).
49.25 --- 080228 SUMA Added Create_Trigger_Name function to aviod special chars(Bug#71099)
49.26 --- 080925 HAAR Renamed parameters for Custom Defined Events (Bug#77334).
49.27 --- New value: NEW:COLUMN_NAME => NEW:IDENTITY
49.28 --- Old value: OLD:COLUMN_NAME => OLD:IDENTITY
49.29 --- 090114 HAAR Added methods for Export/Import Export__ and Register_Custom_Event (Bug#79673).
49.30 --- 091109 NABA Added the check for event_id as a valid identifier (Bug#86681)
49.31 ------------------------------------------------------------------------------
49.32 -
49.33 -DEFINE MODULE = FNDBAS
49.34 -DEFINE LU = FndEvent
49.35 -DEFINE TABLE = FND_EVENT_TAB
49.36 -DEFINE VIEW = FND_EVENT
49.37 -DEFINE PKG = FND_EVENT_API
49.38 -
49.39 -DEFINE OBJID = rowid
49.40 -DEFINE OBJVERSION = "ltrim(lpad(to_char(rowversion,'YYYYMMDDHH24MISS'),2000))"
49.41 -
49.42 ------------------------------------------------------------------------------
49.43 --------------------- VIEWS FOR SELECTS --------------------------------------
49.44 ------------------------------------------------------------------------------
49.45 -
49.46 -PROMPT Creating &AO..&VIEW view
49.47 -
49.48 -CREATE OR REPLACE VIEW &AO..&VIEW AS
49.49 -SELECT event_lu_name event_lu_name,
49.50 - event_id event_id,
49.51 - event_description event_description,
49.52 - event_enable event_enable,
49.53 - event_table_name event_table_name,
49.54 - Fnd_Event_Type_API.Decode(event_type) event_type,
49.55 - event_type event_type_db,
49.56 - modified_attributes modified_attributes,
49.57 - Fnd_Boolean_API.Decode(new_row) new_row,
49.58 - new_row new_row_db,
49.59 - Fnd_Boolean_API.Decode(modify_row) modify_row,
49.60 - modify_row modify_row_db,
49.61 - Fnd_Boolean_API.Decode(remove_row) remove_row,
49.62 - remove_row remove_row_db,
49.63 - &OBJID objid,
49.64 - &OBJVERSION objversion
49.65 -FROM fnd_event_tab
49.66 -WITH read only;
49.67 -
49.68 -COMMENT ON TABLE &AO..&VIEW
49.69 - IS 'LU=&LU^PROMPT=Fnd Event^MODULE=&MODULE^';
49.70 -
49.71 -COMMENT ON COLUMN &AO..&VIEW..event_lu_name
49.72 - IS 'FLAGS=KMI-L^DATATYPE=STRING(25)^PROMPT=Event Lu Name^';
49.73 -COMMENT ON COLUMN &AO..&VIEW..event_id
49.74 - IS 'FLAGS=KMI-L^DATATYPE=STRING(32)/UPPERCASE^PROMPT=Event Id^';
49.75 -COMMENT ON COLUMN &AO..&VIEW..event_description
49.76 - IS 'FLAGS=A-IU-^DATATYPE=STRING(256)^PROMPT=Event Description^';
49.77 -COMMENT ON COLUMN &AO..&VIEW..event_enable
49.78 - IS 'FLAGS=A-IU-^DATATYPE=BOOLEAN^PROMPT=Event Enable^';
49.79 -COMMENT ON COLUMN &AO..&VIEW..event_table_name
49.80 - IS 'FLAGS=A-IU-^DATATYPE=STRING(30)^PROMPT=Event Table Name^';
49.81 -COMMENT ON COLUMN &AO..&VIEW..event_type
49.82 - IS 'FLAGS=AMIU-^DATATYPE=STRING(200)^PROMPT=Event Type^REF=FndEventType^';
49.83 -COMMENT ON COLUMN &AO..&VIEW..event_type_db
49.84 - IS 'FLAGS=A----^DATATYPE=STRING(20)^PROMPT=Event Type^';
49.85 -COMMENT ON COLUMN &AO..&VIEW..modified_attributes
49.86 - IS 'FLAGS=A-IU-^DATATYPE=STRING(4000)^PROMPT=Modified Attributes^';
49.87 -COMMENT ON COLUMN &AO..&VIEW..new_row
49.88 - IS 'FLAGS=AMIU-^DATATYPE=STRING(200)^PROMPT=New Row^REF=FndBoolean^';
49.89 -COMMENT ON COLUMN &AO..&VIEW..new_row_db
49.90 - IS 'FLAGS=A----^DATATYPE=STRING(20)^PROMPT=New Row^';
49.91 -COMMENT ON COLUMN &AO..&VIEW..modify_row
49.92 - IS 'FLAGS=AMIU-^DATATYPE=STRING(200)^PROMPT=Modify Row^REF=FndBoolean^';
49.93 -COMMENT ON COLUMN &AO..&VIEW..modify_row_db
49.94 - IS 'FLAGS=A----^DATATYPE=STRING(20)^PROMPT=Modify Row^';
49.95 -COMMENT ON COLUMN &AO..&VIEW..remove_row
49.96 - IS 'FLAGS=AMIUL^DATATYPE=STRING(200)^PROMPT=Remove Row^REF=FndBoolean^';
49.97 -COMMENT ON COLUMN &AO..&VIEW..remove_row_db
49.98 - IS 'FLAGS=A----^DATATYPE=STRING(20)^PROMPT=Remove Row^';
49.99 -
49.100 ------------------------------------------------------------------------------
49.101 --------------------- PACKAGES FOR METHODS -----------------------------------
49.102 ------------------------------------------------------------------------------
49.103 -
49.104 -PROMPT Creating &AO..&PKG implementation
49.105 -
49.106 -CREATE OR REPLACE PACKAGE BODY &AO..&PKG IS
49.107 -
49.108 -datetime_format_ VARCHAR2(40) := Fnd_Setting_API.Get_Value('EVENT_REG_DATETIME');
49.109 -date_format_ VARCHAR2(40) := Fnd_Setting_API.Get_Value('EVENT_REG_DATE');
49.110 -time_format_ VARCHAR2(40) := Fnd_Setting_API.Get_Value('EVENT_REG_TIME');
49.111 -
49.112 ------------------------------------------------------------------------------
49.113 --------------------- LU SPECIFIC IMPLEMENTATION METHOD DECLARATIONS ---------
49.114 ------------------------------------------------------------------------------
49.115 -
49.116 -PROCEDURE Create_Custom_Trigger___(
49.117 - rec_ IN Fnd_Event_Tab%ROWTYPE,
49.118 - trigger_type_ IN VARCHAR2 );
49.119 -
49.120 -PROCEDURE Create_Custom_Triggers___(
49.121 - rec_ IN Fnd_Event_Tab%ROWTYPE );
49.122 -
49.123 -FUNCTION Get_Trigger_Name___(
49.124 - event_id_ IN VARCHAR2,
49.125 - trigger_type_ IN VARCHAR2 ) RETURN VARCHAR2;
49.126 -
49.127 -PROCEDURE Remove_Custom_Trigger___(
49.128 - rec_ IN Fnd_Event_Tab%ROWTYPE,
49.129 - trigger_type_ IN VARCHAR2 );
49.130 -
49.131 -PROCEDURE Remove_Custom_Triggers___(
49.132 - rec_ IN Fnd_Event_Tab%ROWTYPE );
49.133 -
49.134 -FUNCTION Create_Trigger_Name___ (
49.135 - event_id_ IN VARCHAR2 ) RETURN VARCHAR2;
49.136 ------------------------------------------------------------------------------
49.137 --------------------- IMPLEMENTATION BASE METHODS ----------------------------
49.138 ------------------------------------------------------------------------------
49.139 --- Lock_By_Id___
49.140 --- Client-support to lock a specific instance of the logical unit.
49.141 ---
49.142 --- Lock_By_Keys___
49.143 --- Server support to lock a specific instance of the logical unit.
49.144 ---
49.145 --- Get_Object_By_Id___
49.146 --- Get LU-record from the database with a specified object identity.
49.147 ---
49.148 --- Get_Object_By_Keys___
49.149 --- Get LU-record from the database with specified key columns.
49.150 ---
49.151 --- Check_Exist___
49.152 --- Check if a specific LU-instance already exist in the database.
49.153 ---
49.154 --- Get_Id_Version_By_Keys___
49.155 --- Get the current OBJID and OBJVERSION for a specific LU-instance.
49.156 ------------------------------------------------------------------------------
49.157 -
49.158 -FUNCTION Lock_By_Id___ (
49.159 - objid_ IN VARCHAR2,
49.160 - objversion_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
49.161 -IS
49.162 - row_changed EXCEPTION;
49.163 - row_deleted EXCEPTION;
49.164 - row_locked EXCEPTION;
49.165 - PRAGMA exception_init(row_locked, -0054);
49.166 - rec_ &TABLE%ROWTYPE;
49.167 - dummy_ NUMBER;
49.168 - CURSOR lock_control IS
49.169 - SELECT *
49.170 - FROM &TABLE
49.171 - WHERE &OBJID = objid_
49.172 - AND &OBJVERSION = objversion_
49.173 - FOR UPDATE NOWAIT;
49.174 - CURSOR exist_control IS
49.175 - SELECT 1
49.176 - FROM &TABLE
49.177 - WHERE &OBJID = objid_;
49.178 -BEGIN
49.179 - OPEN lock_control;
49.180 - FETCH lock_control INTO rec_;
49.181 - IF (lock_control%FOUND) THEN
49.182 - CLOSE lock_control;
49.183 - RETURN rec_;
49.184 - END IF;
49.185 - CLOSE lock_control;
49.186 - OPEN exist_control;
49.187 - FETCH exist_control INTO dummy_;
49.188 - IF (exist_control%FOUND) THEN
49.189 - CLOSE exist_control;
49.190 - RAISE row_changed;
49.191 - ELSE
49.192 - CLOSE exist_control;
49.193 - RAISE row_deleted;
49.194 - END IF;
49.195 -EXCEPTION
49.196 - WHEN row_locked THEN
49.197 - Error_SYS.Record_Locked(lu_name_);
49.198 - WHEN row_changed THEN
49.199 - Error_SYS.Record_Modified(lu_name_);
49.200 - WHEN row_deleted THEN
49.201 - Error_SYS.Record_Removed(lu_name_);
49.202 -END Lock_By_Id___;
49.203 -
49.204 -FUNCTION Lock_By_Keys___ (
49.205 - event_lu_name_ IN VARCHAR2,
49.206 - event_id_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
49.207 -IS
49.208 - row_deleted EXCEPTION;
49.209 - rec_ &TABLE%ROWTYPE;
49.210 - CURSOR lock_control IS
49.211 - SELECT *
49.212 - FROM &TABLE
49.213 - WHERE event_lu_name = event_lu_name_
49.214 - AND event_id = event_id_
49.215 - FOR UPDATE;
49.216 -BEGIN
49.217 - OPEN lock_control;
49.218 - FETCH lock_control INTO rec_;
49.219 - IF (lock_control%FOUND) THEN
49.220 - CLOSE lock_control;
49.221 - RETURN rec_;
49.222 - ELSE
49.223 - CLOSE lock_control;
49.224 - RAISE row_deleted;
49.225 - END IF;
49.226 -EXCEPTION
49.227 - WHEN row_deleted THEN
49.228 - Error_SYS.Record_Removed(lu_name_);
49.229 -END Lock_By_Keys___;
49.230 -
49.231 -FUNCTION Get_Object_By_Id___ (
49.232 - objid_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
49.233 -IS
49.234 - lu_rec_ &TABLE%ROWTYPE;
49.235 - CURSOR getrec IS
49.236 - SELECT *
49.237 - FROM &TABLE
49.238 - WHERE &OBJID = objid_;
49.239 -BEGIN
49.240 - OPEN getrec;
49.241 - FETCH getrec INTO lu_rec_;
49.242 - IF (getrec%NOTFOUND) THEN
49.243 - CLOSE getrec;
49.244 - Error_SYS.Record_Removed(lu_name_);
49.245 - END IF;
49.246 - CLOSE getrec;
49.247 - RETURN(lu_rec_);
49.248 -END Get_Object_By_Id___;
49.249 -
49.250 -
49.251 -FUNCTION Get_Object_By_Keys___ (
49.252 - event_lu_name_ IN VARCHAR2,
49.253 - event_id_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
49.254 -IS
49.255 - lu_rec_ &TABLE%ROWTYPE;
49.256 - CURSOR getrec IS
49.257 - SELECT *
49.258 - FROM &TABLE
49.259 - WHERE event_lu_name = event_lu_name_
49.260 - AND event_id = event_id_;
49.261 -BEGIN
49.262 - OPEN getrec;
49.263 - FETCH getrec INTO lu_rec_;
49.264 - CLOSE getrec;
49.265 - RETURN(lu_rec_);
49.266 -END Get_Object_By_Keys___;
49.267 -
49.268 -FUNCTION Check_Exist___ (
49.269 - event_lu_name_ IN VARCHAR2,
49.270 - event_id_ IN VARCHAR2 ) RETURN BOOLEAN
49.271 -IS
49.272 - dummy_ NUMBER;
49.273 - CURSOR exist_control IS
49.274 - SELECT 1
49.275 - FROM &TABLE
49.276 - WHERE event_lu_name = event_lu_name_
49.277 - AND event_id = event_id_;
49.278 -BEGIN
49.279 - OPEN exist_control;
49.280 - FETCH exist_control INTO dummy_;
49.281 - IF (exist_control%FOUND) THEN
49.282 - CLOSE exist_control;
49.283 - RETURN(TRUE);
49.284 - END IF;
49.285 - CLOSE exist_control;
49.286 - RETURN(FALSE);
49.287 -END Check_Exist___;
49.288 -
49.289 -PROCEDURE Get_Id_Version_By_Keys___ (
49.290 - objid_ IN OUT VARCHAR2,
49.291 - objversion_ IN OUT VARCHAR2,
49.292 - event_lu_name_ IN VARCHAR2,
49.293 - event_id_ IN VARCHAR2)
49.294 -IS
49.295 - CURSOR get_version IS
49.296 - SELECT &OBJID, &OBJVERSION
49.297 - FROM &TABLE
49.298 - WHERE event_lu_name = event_lu_name_
49.299 - AND event_id = event_id_;
49.300 -BEGIN
49.301 - OPEN get_version;
49.302 - FETCH get_version INTO objid_, objversion_;
49.303 - CLOSE get_version;
49.304 -END Get_Id_Version_By_Keys___;
49.305 -
49.306 ------------------------------------------------------------------------------
49.307 --------------------- IMPLEMENTATION BASE METHODS FOR INSERT -----------------
49.308 ------------------------------------------------------------------------------
49.309 --- Prepare_Insert___
49.310 --- Set all default values for a new instance (ON-NEW-RECORD) of this
49.311 --- logical unit by calling procedure Add_Attr.
49.312 ---
49.313 --- Unpack_Check_Insert___
49.314 --- Unpack the attribute list, check all attributes from the client
49.315 --- and generate all default values before creation of the new object.
49.316 ---
49.317 --- Insert___
49.318 --- Insert a new LU-instance into the database and return the values
49.319 --- for OBJID and OBJVERSION.
49.320 ------------------------------------------------------------------------------
49.321 -
49.322 -PROCEDURE Prepare_Insert___ (
49.323 - attr_ IN OUT VARCHAR2 )
49.324 -IS
49.325 -BEGIN
49.326 - Client_SYS.Clear_Attr(attr_);
49.327 - Client_SYS.Add_To_Attr('EVENT_TYPE_DB', 'CUSTOM', attr_);
49.328 - Client_SYS.Add_To_Attr('EVENT_TYPE', Fnd_Event_Type_API.Decode('CUSTOM'), attr_);
49.329 - Client_SYS.Add_To_Attr('NEW_ROW_DB', 'FALSE', attr_);
49.330 - Client_SYS.Add_To_Attr('NEW_ROW', Fnd_Boolean_API.Decode('FALSE'), attr_);
49.331 - Client_SYS.Add_To_Attr('MODIFY_ROW_DB', 'FALSE', attr_);
49.332 - Client_SYS.Add_To_Attr('MODIFY_ROW', Fnd_Boolean_API.Decode('FALSE'), attr_);
49.333 - Client_SYS.Add_To_Attr('REMOVE_ROW_DB', 'FALSE', attr_);
49.334 - Client_SYS.Add_To_Attr('REMOVE_ROW', Fnd_Boolean_API.Decode('FALSE'), attr_);
49.335 -END Prepare_Insert___;
49.336 -
49.337 -
49.338 -PROCEDURE Unpack_Check_Insert___ (
49.339 - attr_ IN OUT VARCHAR2,
49.340 - newrec_ IN OUT &TABLE%ROWTYPE )
49.341 -IS
49.342 - ptr_ NUMBER;
49.343 - name_ VARCHAR2(30);
49.344 - value_ VARCHAR2(2000);
49.345 -BEGIN
49.346 - ptr_ := NULL;
49.347 - WHILE (Client_SYS.Get_Next_From_Attr(attr_, ptr_, name_, value_)) LOOP
49.348 - IF (name_ = 'EVENT_LU_NAME') THEN
49.349 - newrec_.event_lu_name := value_;
49.350 - ELSIF (name_ = 'EVENT_ID') THEN
49.351 - newrec_.event_id := Upper(value_);
49.352 - ELSIF (name_ = 'EVENT_DESCRIPTION') THEN
49.353 - newrec_.event_description := value_;
49.354 - ELSIF (name_ = 'EVENT_ENABLE') THEN
49.355 - newrec_.event_enable := value_;
49.356 - ELSIF (name_ = 'EVENT_TABLE_NAME') THEN
49.357 - newrec_.event_table_name := value_;
49.358 - ELSIF (name_ = 'EVENT_TYPE') THEN
49.359 - newrec_.event_type := Fnd_Event_Type_API.Encode(value_);
49.360 - IF (value_ IS NOT NULL) THEN
49.361 - Fnd_Event_Type_API.Exist(value_);
49.362 - END IF;
49.363 - ELSIF (name_ = 'EVENT_TYPE_DB') THEN
49.364 - newrec_.event_type := value_;
49.365 - IF (value_ IS NOT NULL) THEN
49.366 - Fnd_Event_Type_API.Exist_Db(value_);
49.367 - END IF;
49.368 - ELSIF (name_ = 'MODIFIED_ATTRIBUTES') THEN
49.369 - newrec_.modified_attributes := value_;
49.370 - ELSIF (name_ = 'NEW_ROW') THEN
49.371 - newrec_.new_row := Fnd_Boolean_API.Encode(value_);
49.372 - IF (value_ IS NOT NULL) THEN
49.373 - Fnd_Boolean_API.Exist(value_);
49.374 - END IF;
49.375 - ELSIF (name_ = 'NEW_ROW_DB') THEN
49.376 - newrec_.new_row := value_;
49.377 - IF (value_ IS NOT NULL) THEN
49.378 - Fnd_Boolean_API.Exist_Db(value_);
49.379 - END IF;
49.380 - ELSIF (name_ = 'MODIFY_ROW') THEN
49.381 - newrec_.modify_row := Fnd_Boolean_API.Encode(value_);
49.382 - IF (value_ IS NOT NULL) THEN
49.383 - Fnd_Boolean_API.Exist(value_);
49.384 - END IF;
49.385 - ELSIF (name_ = 'MODIFY_ROW_DB') THEN
49.386 - newrec_.modify_row := value_;
49.387 - IF (value_ IS NOT NULL) THEN
49.388 - Fnd_Boolean_API.Exist_Db(value_);
49.389 - END IF;
49.390 - ELSIF (name_ = 'REMOVE_ROW') THEN
49.391 - newrec_.remove_row := Fnd_Boolean_API.Encode(value_);
49.392 - IF (value_ IS NOT NULL) THEN
49.393 - Fnd_Boolean_API.Exist(value_);
49.394 - END IF;
49.395 - ELSIF (name_ = 'REMOVE_ROW_DB') THEN
49.396 - newrec_.remove_row := value_;
49.397 - IF (value_ IS NOT NULL) THEN
49.398 - Fnd_Boolean_API.Exist_Db(value_);
49.399 - END IF;
49.400 - ELSE
49.401 - Error_SYS.Item_Not_Exist(lu_name_, name_, value_);
49.402 - END IF;
49.403 - END LOOP;
49.404 - Client_SYS.Clear_Attr(attr_);
49.405 - Error_SYS.Check_Not_Null(lu_name_, 'EVENT_LU_NAME', newrec_.event_lu_name);
49.406 - Error_SYS.Check_Not_Null(lu_name_, 'EVENT_ID', newrec_.event_id);
49.407 - Error_SYS.Check_Valid_Identifier('EVENT_ID', newrec_.event_id);
49.408 - Error_SYS.Check_Not_Null(lu_name_, 'EVENT_TYPE', newrec_.event_type);
49.409 - Error_SYS.Check_Not_Null(lu_name_, 'NEW_ROW', newrec_.new_row);
49.410 - Error_SYS.Check_Not_Null(lu_name_, 'MODIFY_ROW', newrec_.modify_row);
49.411 - Error_SYS.Check_Not_Null(lu_name_, 'REMOVE_ROW', newrec_.remove_row);
49.412 -EXCEPTION
49.413 - WHEN value_error THEN
49.414 - Error_SYS.Item_Format(lu_name_, name_, value_);
49.415 -END Unpack_Check_Insert___;
49.416 -
49.417 -
49.418 -PROCEDURE Insert___ (
49.419 - objid_ OUT VARCHAR2,
49.420 - objversion_ OUT VARCHAR2,
49.421 - newrec_ IN OUT &TABLE%ROWTYPE,
49.422 - attr_ IN OUT VARCHAR2 )
49.423 -IS
49.424 -BEGIN
49.425 - newrec_.rowversion := sysdate;
49.426 - objversion_ := to_char(newrec_.rowversion,'YYYYMMDDHH24MISS');
49.427 - --
49.428 - IF (nvl(newrec_.event_enable, 'FALSE') = 'TRUE') THEN
49.429 - Error_SYS.Appl_General(lu_name_, 'ENERR_I: Can not enable event with no actions enabled.');
49.430 - END IF;
49.431 - --
49.432 - INSERT
49.433 - INTO fnd_event_tab (
49.434 - event_lu_name,
49.435 - event_id,
49.436 - event_description,
49.437 - event_enable,
49.438 - event_table_name,
49.439 - event_type,
49.440 - modified_attributes,
49.441 - new_row,
49.442 - modify_row,
49.443 - remove_row,
49.444 - rowversion)
49.445 - VALUES (
49.446 - newrec_.event_lu_name,
49.447 - newrec_.event_id,
49.448 - newrec_.event_description,
49.449 - newrec_.event_enable,
49.450 - newrec_.event_table_name,
49.451 - newrec_.event_type,
49.452 - newrec_.modified_attributes,
49.453 - newrec_.new_row,
49.454 - newrec_.modify_row,
49.455 - newrec_.remove_row,
49.456 - newrec_.rowversion)
49.457 - RETURNING &OBJID INTO objid_;
49.458 - -- Create Custom Defined triggers
49.459 - IF (newrec_.event_type = 'CUSTOM') THEN
49.460 - IF (newrec_.event_enable = 'TRUE') THEN
49.461 - Create_Custom_Triggers___(newrec_);
49.462 - END IF;
49.463 - END IF;
49.464 -EXCEPTION
49.465 - WHEN dup_val_on_index THEN
49.466 - Error_SYS.Record_Exist(lu_name_);
49.467 -END Insert___;
49.468 -
49.469 ------------------------------------------------------------------------------
49.470 --------------------- IMPLEMENTATION BASE METHODS FOR UPDATE -----------------
49.471 ------------------------------------------------------------------------------
49.472 --- Unpack_Check_Update___
49.473 --- Unpack the attribute list, check all attributes from the client
49.474 --- and generate all default values before modifying the object.
49.475 ---
49.476 --- Update___
49.477 --- Update an existing LU-instance in the database and return the
49.478 --- the new OBJVERSION.
49.479 ------------------------------------------------------------------------------
49.480 -
49.481 -PROCEDURE Unpack_Check_Update___ (
49.482 - attr_ IN OUT VARCHAR2,
49.483 - newrec_ IN OUT &TABLE%ROWTYPE,
49.484 - objid_ IN VARCHAR2 )
49.485 -IS
49.486 - ptr_ NUMBER;
49.487 - name_ VARCHAR2(30);
49.488 - value_ VARCHAR2(2000);
49.489 -BEGIN
49.490 - ptr_ := NULL;
49.491 - WHILE (Client_SYS.Get_Next_From_Attr(attr_, ptr_, name_, value_)) LOOP
49.492 - IF (name_ = 'EVENT_LU_NAME') THEN
49.493 - Error_SYS.Item_Update(lu_name_, 'EVENT_LU_NAME');
49.494 - ELSIF (name_ = 'EVENT_ID') THEN
49.495 - Error_SYS.Item_Update(lu_name_, 'EVENT_ID');
49.496 - ELSIF (name_ = 'EVENT_DESCRIPTION') THEN
49.497 - newrec_.event_description := value_;
49.498 - ELSIF (name_ = 'EVENT_ENABLE') THEN
49.499 - newrec_.event_enable := value_;
49.500 - ELSIF (name_ = 'EVENT_TABLE_NAME') THEN
49.501 - newrec_.event_table_name := value_;
49.502 - ELSIF (name_ = 'EVENT_TYPE') THEN
49.503 - newrec_.event_type := Fnd_Event_Type_API.Encode(value_);
49.504 - IF (value_ IS NOT NULL) THEN
49.505 - Fnd_Event_Type_API.Exist(value_);
49.506 - END IF;
49.507 - ELSIF (name_ = 'EVENT_TYPE_DB') THEN
49.508 - newrec_.event_type := value_;
49.509 - IF (value_ IS NOT NULL) THEN
49.510 - Fnd_Event_Type_API.Exist_Db(value_);
49.511 - END IF;
49.512 - ELSIF (name_ = 'MODIFIED_ATTRIBUTES') THEN
49.513 - newrec_.modified_attributes := value_;
49.514 - ELSIF (name_ = 'NEW_ROW') THEN
49.515 - newrec_.new_row := Fnd_Boolean_API.Encode(value_);
49.516 - IF (value_ IS NOT NULL) THEN
49.517 - Fnd_Boolean_API.Exist(value_);
49.518 - END IF;
49.519 - ELSIF (name_ = 'NEW_ROW_DB') THEN
49.520 - newrec_.new_row := value_;
49.521 - IF (value_ IS NOT NULL) THEN
49.522 - Fnd_Boolean_API.Exist_Db(value_);
49.523 - END IF;
49.524 - ELSIF (name_ = 'MODIFY_ROW') THEN
49.525 - newrec_.modify_row := Fnd_Boolean_API.Encode(value_);
49.526 - IF (value_ IS NOT NULL) THEN
49.527 - Fnd_Boolean_API.Exist(value_);
49.528 - END IF;
49.529 - ELSIF (name_ = 'MODIFY_ROW_DB') THEN
49.530 - newrec_.modify_row := value_;
49.531 - IF (value_ IS NOT NULL) THEN
49.532 - Fnd_Boolean_API.Exist_Db(value_);
49.533 - END IF;
49.534 - ELSIF (name_ = 'REMOVE_ROW') THEN
49.535 - newrec_.remove_row := Fnd_Boolean_API.Encode(value_);
49.536 - IF (value_ IS NOT NULL) THEN
49.537 - Fnd_Boolean_API.Exist(value_);
49.538 - END IF;
49.539 - ELSIF (name_ = 'REMOVE_ROW_DB') THEN
49.540 - newrec_.remove_row := value_;
49.541 - IF (value_ IS NOT NULL) THEN
49.542 - Fnd_Boolean_API.Exist_Db(value_);
49.543 - END IF;
49.544 - ELSE
49.545 - Error_SYS.Item_Not_Exist(lu_name_, name_, value_);
49.546 - END IF;
49.547 - END LOOP;
49.548 - Client_SYS.Clear_Attr(attr_);
49.549 - Error_SYS.Check_Not_Null(lu_name_, 'EVENT_TYPE', newrec_.event_type);
49.550 - Error_SYS.Check_Not_Null(lu_name_, 'NEW_ROW', newrec_.new_row);
49.551 - Error_SYS.Check_Not_Null(lu_name_, 'MODIFY_ROW', newrec_.modify_row);
49.552 - Error_SYS.Check_Not_Null(lu_name_, 'REMOVE_ROW', newrec_.remove_row);
49.553 -EXCEPTION
49.554 - WHEN value_error THEN
49.555 - Error_SYS.Item_Format(lu_name_, name_, value_);
49.556 -END Unpack_Check_Update___;
49.557 -
49.558 -
49.559 -PROCEDURE Update___ (
49.560 - objid_ IN VARCHAR2,
49.561 - oldrec_ IN &TABLE%ROWTYPE,
49.562 - newrec_ IN OUT &TABLE%ROWTYPE,
49.563 - attr_ IN OUT VARCHAR2,
49.564 - objversion_ IN OUT VARCHAR2,
49.565 - by_keys_ IN BOOLEAN DEFAULT FALSE )
49.566 -IS
49.567 - dummy_ NUMBER;
49.568 -
49.569 - CURSOR get_event_count IS
49.570 - SELECT COUNT(*)
49.571 - FROM fnd_event_action_tab
49.572 - WHERE event_lu_name = newrec_.event_lu_name
49.573 - AND event_id = newrec_.event_id
49.574 - AND action_enable = 'TRUE';
49.575 -BEGIN
49.576 - IF (nvl(oldrec_.event_enable, 'FALSE') = 'FALSE' AND newrec_.event_enable = 'TRUE') THEN
49.577 - OPEN get_event_count;
49.578 - FETCH get_event_count INTO dummy_;
49.579 - CLOSE get_event_count;
49.580 - IF (dummy_ = 0) THEN
49.581 - Error_SYS.Appl_General(lu_name_, 'ENERR_U: Can not enable event with no actions enabled.');
49.582 - END IF;
49.583 - END IF;
49.584 - --
49.585 - newrec_.rowversion := sysdate;
49.586 - objversion_ := to_char(newrec_.rowversion,'YYYYMMDDHH24MISS');
49.587 - IF by_keys_ THEN
49.588 - UPDATE fnd_event_tab
49.589 - SET event_lu_name = newrec_.event_lu_name,
49.590 - event_id = newrec_.event_id,
49.591 - event_description = newrec_.event_description,
49.592 - event_enable = newrec_.event_enable,
49.593 - event_table_name = newrec_.event_table_name,
49.594 - event_type = newrec_.event_type,
49.595 - modified_attributes = newrec_.modified_attributes,
49.596 - new_row = newrec_.new_row,
49.597 - modify_row = newrec_.modify_row,
49.598 - remove_row = newrec_.remove_row,
49.599 - rowversion = newrec_.rowversion
49.600 - WHERE event_lu_name = newrec_.event_lu_name
49.601 - AND event_id = newrec_.event_id;
49.602 - ELSE
49.603 - UPDATE fnd_event_tab
49.604 - SET event_lu_name = newrec_.event_lu_name,
49.605 - event_id = newrec_.event_id,
49.606 - event_description = newrec_.event_description,
49.607 - event_enable = newrec_.event_enable,
49.608 - event_table_name = newrec_.event_table_name,
49.609 - event_type = newrec_.event_type,
49.610 - modified_attributes = newrec_.modified_attributes,
49.611 - new_row = newrec_.new_row,
49.612 - modify_row = newrec_.modify_row,
49.613 - remove_row = newrec_.remove_row,
49.614 - rowversion = newrec_.rowversion
49.615 - WHERE &OBJID = objid_;
49.616 - END IF;
49.617 - -- Create/remove Custom Defined triggers
49.618 - IF (newrec_.event_type = 'CUSTOM') THEN
49.619 - IF (newrec_.event_enable = 'TRUE') THEN
49.620 - Remove_Custom_Triggers___(oldrec_);
49.621 - Create_Custom_Triggers___(newrec_);
49.622 - ELSE
49.623 - Remove_Custom_Triggers___(oldrec_);
49.624 - END IF;
49.625 - END IF;
49.626 -EXCEPTION
49.627 - WHEN dup_val_on_index THEN
49.628 - Error_SYS.Record_Exist(lu_name_);
49.629 -END Update___;
49.630 -
49.631 ------------------------------------------------------------------------------
49.632 --------------------- IMPLEMENTATION BASE METHODS FOR DELETE -----------------
49.633 ------------------------------------------------------------------------------
49.634 --- Check_Delete___
49.635 --- Checks whether a specific LU-record may be removed or not.
49.636 --- The procedure should check business rules like attribute values
49.637 --- as well as database constraints (defined or not).
49.638 ---
49.639 --- Delete___
49.640 --- Deletion of the specific LU-object from the database.
49.641 ------------------------------------------------------------------------------
49.642 -
49.643 -PROCEDURE Check_Delete___ (
49.644 - remrec_ IN &TABLE%ROWTYPE )
49.645 -IS
49.646 - key_ VARCHAR2(2000);
49.647 -BEGIN
49.648 - key_ := remrec_.event_lu_name || '^' || remrec_.event_id || '^';
49.649 - Reference_SYS.Check_Restricted_Delete(lu_name_, key_);
49.650 -END Check_Delete___;
49.651 -
49.652 -
49.653 -PROCEDURE Delete___ (
49.654 - objid_ IN VARCHAR2,
49.655 - remrec_ IN &TABLE%ROWTYPE )
49.656 -IS
49.657 - key_ VARCHAR2(2000);
49.658 -BEGIN
49.659 - key_ := remrec_.event_lu_name || '^' || remrec_.event_id || '^';
49.660 - Reference_SYS.Do_Cascade_Delete(lu_name_, key_);
49.661 - DELETE
49.662 - FROM fnd_event_tab
49.663 - WHERE &OBJID = objid_;
49.664 - -- Remove Custom Defined triggers
49.665 - IF (remrec_.event_type = 'CUSTOM') THEN
49.666 - Remove_Custom_Triggers___(remrec_);
49.667 - END IF;
49.668 -END Delete___;
49.669 -
49.670 ------------------------------------------------------------------------------
49.671 --------------------- PRIVATE BASE METHODS -----------------------------------
49.672 ------------------------------------------------------------------------------
49.673 --- Lock__
49.674 --- Client-support to lock a specific instance of the logical unit.
49.675 ---
49.676 --- New__
49.677 --- Client-support interface to create LU instances.
49.678 --- action_ = 'PREPARE'
49.679 --- Default values and handle of information to client.
49.680 --- The default values are set in procedure Prepare_Insert___.
49.681 --- action_ = 'CHECK'
49.682 --- Check all attributes before creating new object and handle of
49.683 --- information to client. The attribute list is unpacked, checked
49.684 --- and prepared (defaults) in procedure Unpack_Check_Insert___.
49.685 --- action_ = 'DO'
49.686 --- Creation of new instances of the logical unit and handle of
49.687 --- information to client. The attribute list is unpacked, checked
49.688 --- and prepared (defaults) in procedure Unpack_Check_Insert___
49.689 --- before calling procedure Insert___.
49.690 ---
49.691 --- Modify__
49.692 --- Client-support interface to modify attributes for LU instances.
49.693 --- action_ = 'CHECK'
49.694 --- Check all attributes before modifying an existing object and
49.695 --- handle of information to client. The attribute list is unpacked,
49.696 --- checked and prepared(defaults) in procedure Unpack_Check_Update___.
49.697 --- action_ = 'DO'
49.698 --- Modification of an existing instance of the logical unit. The
49.699 --- procedure unpacks the attributes, checks all values before
49.700 --- procedure Update___ is called.
49.701 ---
49.702 --- Remove__
49.703 --- Client-support interface to remove LU instances.
49.704 --- action_ = 'CHECK'
49.705 --- Check whether a specific LU-instance may be removed or not.
49.706 --- The procedure fetches the complete record by calling procedure
49.707 --- Get_Object_By_Id___. Then the check is made by calling procedure
49.708 --- Check_Delete___.
49.709 --- action_ = 'DO'
49.710 --- Remove an existing instance of the logical unit. The procedure
49.711 --- fetches the complete LU-record, checks for a delete and then
49.712 --- deletes the record by calling procedure Delete___.
49.713 ------------------------------------------------------------------------------
49.714 -
49.715 -PROCEDURE Lock__ (
49.716 - info_ OUT VARCHAR2,
49.717 - objid_ IN VARCHAR2,
49.718 - objversion_ IN VARCHAR2 )
49.719 -IS
49.720 - dummy_ &TABLE%ROWTYPE;
49.721 -BEGIN
49.722 - General_SYS.Init_Method(lu_name_, '&PKG', 'Lock__');
49.723 - dummy_ := Lock_By_Id___(objid_, objversion_);
49.724 - info_ := Client_SYS.Get_All_Info;
49.725 -END Lock__;
49.726 -
49.727 -
49.728 -PROCEDURE New__ (
49.729 - info_ OUT VARCHAR2,
49.730 - objid_ OUT VARCHAR2,
49.731 - objversion_ OUT VARCHAR2,
49.732 - attr_ IN OUT VARCHAR2,
49.733 - action_ IN VARCHAR2 )
49.734 -IS
49.735 - newrec_ &TABLE%ROWTYPE;
49.736 -BEGIN
49.737 - General_SYS.Init_Method(lu_name_, '&PKG', 'New__');
49.738 - IF (action_ = 'PREPARE') THEN
49.739 - Prepare_Insert___(attr_);
49.740 - ELSIF (action_ = 'CHECK') THEN
49.741 - Unpack_Check_Insert___(attr_, newrec_);
49.742 - ELSIF (action_ = 'DO') THEN
49.743 - Unpack_Check_Insert___(attr_, newrec_);
49.744 - Insert___(objid_, objversion_, newrec_, attr_);
49.745 - END IF;
49.746 - info_ := Client_SYS.Get_All_Info;
49.747 -END New__;
49.748 -
49.749 -
49.750 -PROCEDURE Modify__ (
49.751 - info_ OUT VARCHAR2,
49.752 - objid_ IN VARCHAR2,
49.753 - objversion_ IN OUT VARCHAR2,
49.754 - attr_ IN OUT VARCHAR2,
49.755 - action_ IN VARCHAR2 )
49.756 -IS
49.757 - oldrec_ &TABLE%ROWTYPE;
49.758 - newrec_ &TABLE%ROWTYPE;
49.759 -BEGIN
49.760 - General_SYS.Init_Method(lu_name_, '&PKG', 'Modify__');
49.761 - IF (action_ = 'CHECK') THEN
49.762 - newrec_ := Get_Object_By_Id___(objid_);
49.763 - Unpack_Check_Update___(attr_, newrec_, objid_);
49.764 - ELSIF (action_ = 'DO') THEN
49.765 - oldrec_ := Lock_By_Id___(objid_, objversion_);
49.766 - newrec_ := oldrec_;
49.767 - Unpack_Check_Update___(attr_, newrec_, objid_);
49.768 - Update___(objid_, oldrec_, newrec_, attr_, objversion_);
49.769 - END IF;
49.770 - info_ := Client_SYS.Get_All_Info;
49.771 -END Modify__;
49.772 -
49.773 -
49.774 -PROCEDURE Remove__ (
49.775 - info_ OUT VARCHAR2,
49.776 - objid_ IN VARCHAR2,
49.777 - objversion_ IN VARCHAR2,
49.778 - action_ IN VARCHAR2 )
49.779 -IS
49.780 - remrec_ &TABLE%ROWTYPE;
49.781 -BEGIN
49.782 - General_SYS.Init_Method(lu_name_, '&PKG', 'Remove__');
49.783 - IF (action_ = 'CHECK') THEN
49.784 - remrec_ := Get_Object_By_Id___(objid_);
49.785 - Check_Delete___(remrec_);
49.786 - ELSIF (action_ = 'DO') THEN
49.787 - remrec_ := Lock_By_Id___(objid_, objversion_);
49.788 - Check_Delete___(remrec_);
49.789 - Delete___(objid_, remrec_);
49.790 - END IF;
49.791 - info_ := Client_SYS.Get_All_Info;
49.792 -END Remove__;
49.793 -
49.794 ------------------------------------------------------------------------------
49.795 --------------------- PUBLIC BASE METHODS ------------------------------------
49.796 ------------------------------------------------------------------------------
49.797 --- Exist
49.798 --- Checks if given pointer (e.g. primary key) to an instance of this
49.799 --- logical unit exists. If not an exception will be raised.
49.800 ------------------------------------------------------------------------------
49.801 -
49.802 -PROCEDURE Exist (
49.803 - event_lu_name_ IN VARCHAR2,
49.804 - event_id_ IN VARCHAR2 )
49.805 -IS
49.806 -BEGIN
49.807 - General_SYS.Init_Method(lu_name_, '&PKG', 'Exist', TRUE);
49.808 - IF (NOT Check_Exist___(event_lu_name_, event_id_)) THEN
49.809 - Error_SYS.Record_Not_Exist(lu_name_);
49.810 - END IF;
49.811 -END Exist;
49.812 -
49.813 ------------------------------------------------------------------------------
49.814 --------------------- LU SPECIFIC IMPLEMENTATION METHODS ---------------------
49.815 ------------------------------------------------------------------------------
49.816 -
49.817 -PROCEDURE Create_Custom_Triggers___(
49.818 - rec_ IN Fnd_Event_Tab%ROWTYPE )
49.819 -IS
49.820 -BEGIN
49.821 - General_SYS.Init_Method(lu_name_, '&PKG', 'Create_Custom_Triggers___', TRUE);
49.822 - -- Create triggers per type (New, Modify, Remove)
49.823 - IF (rec_.new_row = 'TRUE') THEN
49.824 - Create_Custom_Trigger___(rec_, 'NEW');
49.825 - END IF;
49.826 - IF (rec_.modify_row = 'TRUE') THEN
49.827 - Create_Custom_Trigger___(rec_, 'MODIFY');
49.828 - END IF;
49.829 - IF (rec_.remove_row = 'TRUE') THEN
49.830 - Create_Custom_Trigger___(rec_, 'REMOVE');
49.831 - END IF;
49.832 -END Create_Custom_Triggers___;
49.833 -
49.834 -PROCEDURE Create_Custom_Trigger___(
49.835 - rec_ IN Fnd_Event_Tab%ROWTYPE,
49.836 - trigger_type_ IN VARCHAR2 )
49.837 -IS
49.838 - columns_ Installation_SYS.ColumnTabType;
49.839 - stmt_ VARCHAR2(32000);
49.840 - old_param_prefix_ VARCHAR2(10);
49.841 - new_param_prefix_ VARCHAR2(10);
49.842 - format_prefix_ VARCHAR2(30);
49.843 - format_postfix_ VARCHAR2(30);
49.844 - if_stmt_start_ VARCHAR2(32000);
49.845 - if_stmt_end_ VARCHAR2(32000);
49.846 - indent_ NUMBER;
49.847 - --
49.848 - CURSOR get_param IS
49.849 - SELECT *
49.850 - FROM fnd_event_parameter_tab
49.851 - WHERE event_lu_name = rec_.event_lu_name
49.852 - AND event_id = rec_.event_id;
49.853 - --
49.854 - FUNCTION space___ (
49.855 - indent_ IN NUMBER ) RETURN VARCHAR2
49.856 - IS
49.857 - string_ VARCHAR2(100);
49.858 - BEGIN
49.859 - RETURN(lpad(string_, indent_ * 3));
49.860 - END space___;
49.861 - --
49.862 - FUNCTION Get_Dml_Event___(
49.863 - trigger_type_ IN VARCHAR2 ) RETURN VARCHAR2
49.864 - IS
49.865 - BEGIN
49.866 - CASE trigger_type_
49.867 - WHEN 'NEW' THEN
49.868 - RETURN('INSERT');
49.869 - WHEN 'MODIFY' THEN
49.870 - RETURN('UPDATE');
49.871 - WHEN 'REMOVE' THEN
49.872 - RETURN('DELETE');
49.873 - END CASE;
49.874 - END Get_Dml_Event___;
49.875 - --
49.876 - FUNCTION Get_Columns___ (
49.877 - column_list_ IN VARCHAR2 ) RETURN Installation_SYS.ColumnTabType
49.878 - IS
49.879 - pos_ BINARY_INTEGER := 1;
49.880 - start_ BINARY_INTEGER := 1;
49.881 - tmp_column_list_ VARCHAR2(32000) := column_list_;
49.882 - separator_ CONSTANT VARCHAR2(2) := ';';
49.883 - column_name_ VARCHAR2(30);
49.884 - columns_ Installation_SYS.ColumnTabType;
49.885 - BEGIN
49.886 - IF column_list_ IS NULL THEN
49.887 - RETURN(columns_);
49.888 - END IF;
49.889 - -- Find all attributes in Search Domain Title
49.890 - pos_ := Instr(tmp_column_list_, separator_, pos_);
49.891 - LOOP
49.892 - -- Find column name
49.893 - column_name_ := Substr(tmp_column_list_, start_, pos_ - start_);
49.894 - IF column_name_ IS NOT NULL THEN
49.895 - Installation_SYS.Set_Table_Column(columns_, column_name_);
49.896 - END IF;
49.897 - -- Find new attribute
49.898 - start_ := pos_ + 1;
49.899 - pos_ := Instr(tmp_column_list_, separator_, start_);
49.900 - IF pos_ = 0 THEN
49.901 - pos_ := length(tmp_column_list_);
49.902 - -- Find column name
49.903 - column_name_ := Substr(tmp_column_list_, start_);
49.904 - Installation_SYS.Set_Table_Column(columns_, column_name_);
49.905 - EXIT;
49.906 - END IF;
49.907 - END LOOP;
49.908 - RETURN(columns_);
49.909 - END Get_Columns___;
49.910 - --
49.911 - FUNCTION Create_If_Stmt___ (
49.912 - column_list_ IN VARCHAR2 ) RETURN VARCHAR2
49.913 - IS
49.914 - found_ BOOLEAN := FALSE;
49.915 - i_ BINARY_INTEGER := 0;
49.916 - pos_ BINARY_INTEGER := 1;
49.917 - start_ BINARY_INTEGER := 1;
49.918 - tmp_column_list_ VARCHAR2(32000) := column_list_;
49.919 - stmt_ VARCHAR2(32000);
49.920 - separator_ CONSTANT VARCHAR2(2) := ';';
49.921 - column_name_ VARCHAR2(30);
49.922 - BEGIN
49.923 - IF column_list_ IS NULL THEN
49.924 - RETURN(NULL);
49.925 - END IF;
49.926 - -- Find all attributes in Search Domain Title
49.927 - pos_ := Instr(tmp_column_list_, separator_, pos_);
49.928 - i_ := i_ + 1;
49.929 - IF (tmp_column_list_ IS NOT NULL) THEN
49.930 - stmt_ := stmt_ || 'IF ';
49.931 - END IF;
49.932 - LOOP
49.933 - IF (i_ > 1) THEN
49.934 - stmt_ := stmt_||space___(indent_)||' OR ';
49.935 - END IF;
49.936 - -- Find column name
49.937 - column_name_ := Substr(tmp_column_list_, start_, pos_ - start_);
49.938 - IF column_name_ IS NOT NULL THEN
49.939 - found_ := TRUE;
49.940 - indent_ := indent_ + 1;
49.941 - stmt_ := stmt_ ||space___(indent_)||'(:NEW.'||column_name_||' != '||':OLD.'||column_name_||') OR ((:NEW.'||column_name_||' IS NULL) AND ('||':old.'||column_name_||' IS NOT NULL)) OR ((:new.'||column_name_||' IS NOT NULL) AND ('||':OLD.'||column_name_||' IS NULL))';
49.942 - END IF;
49.943 - -- Find new attribute
49.944 - start_ := pos_ + 1;
49.945 - pos_ := Instr(tmp_column_list_, separator_, start_);
49.946 - i_ := i_ + 1;
49.947 - IF pos_ = 0 THEN
49.948 - IF (i_ > 1 AND found_) THEN
49.949 - stmt_ := stmt_||space___(indent_)||' OR ';
49.950 - END IF;
49.951 - pos_ := length(tmp_column_list_);
49.952 - -- Find column name
49.953 - column_name_ := Substr(tmp_column_list_, start_);
49.954 - stmt_ := stmt_ ||space___(indent_)||'(:NEW.'||column_name_||' != '||':OLD.'||column_name_||') OR ((:NEW.'||column_name_||' IS NULL) AND ('||':OLD.'||column_name_||' IS NOT NULL)) OR ((:NEW.'||column_name_||' IS NOT NULL) AND ('||':OLD.'||column_name_||' IS NULL))';
49.955 - stmt_ := stmt_||space___(indent_)||' THEN ';
49.956 - EXIT;
49.957 - END IF;
49.958 - END LOOP;
49.959 - RETURN(stmt_);
49.960 - END Create_If_Stmt___;
49.961 - --
49.962 - FUNCTION Replace_Parameter___ (
49.963 - plsql_method_ IN VARCHAR2 ) RETURN VARCHAR2
49.964 - IS
49.965 - pos_ BINARY_INTEGER := 1;
49.966 - method_ VARCHAR2(32000) := plsql_method_;
49.967 - param_marker_ CONSTANT VARCHAR2(2) := chr(38);
49.968 - --
49.969 - CURSOR get_param IS
49.970 - SELECT *
49.971 - FROM fnd_event_parameter_tab
49.972 - WHERE event_lu_name = rec_.event_lu_name
49.973 - AND event_id = rec_.event_id;
49.974 - BEGIN
49.975 - pos_ := Instr(method_, param_marker_);
49.976 - IF (pos_ = 0) THEN
49.977 - RETURN(method_);
49.978 - END IF;
49.979 - -- Replace all parameters used as parameters to PL/SQL method
49.980 - FOR par IN get_param LOOP
49.981 - IF par.current_value = 'TRUE' THEN
49.982 - method_ := replace(method_, param_marker_||'OLD:'||par.id, old_param_prefix_||par.id);
49.983 - END IF;
49.984 - IF par.new_value = 'TRUE' THEN
49.985 - method_ := replace(method_, param_marker_||'NEW:'||par.id, new_param_prefix_||par.id);
49.986 - END IF;
49.987 - pos_ := Instr(method_, param_marker_);
49.988 - IF pos_ = 0 THEN
49.989 - RETURN(method_);
49.990 - END IF;
49.991 - END LOOP;
49.992 - RETURN(method_);
49.993 - END Replace_Parameter___;
49.994 -BEGIN
49.995 - General_SYS.Init_Method(lu_name_, '&PKG', 'Create_Custom_Trigger___', TRUE);
49.996 - indent_ := 1;
49.997 - CASE trigger_type_
49.998 - WHEN 'NEW' THEN
49.999 - new_param_prefix_ := ':NEW.';
49.1000 - old_param_prefix_ := ':OLD.';
49.1001 - WHEN 'MODIFY' THEN
49.1002 - new_param_prefix_ := ':NEW.';
49.1003 - old_param_prefix_ := ':OLD.';
49.1004 - -- Build If statement for modify
49.1005 - if_stmt_start_ := Create_If_Stmt___(rec_.modified_attributes);
49.1006 - IF (if_stmt_start_ IS NOT NULL) THEN
49.1007 - indent_ := 1;
49.1008 - if_stmt_end_ := 'END IF; ';
49.1009 - ELSE
49.1010 - indent_ := 0;
49.1011 - if_stmt_end_ := NULL;
49.1012 - END IF;
49.1013 - stmt_ := if_stmt_start_;
49.1014 - WHEN 'REMOVE' THEN
49.1015 - new_param_prefix_ := ':OLD.';
49.1016 - old_param_prefix_ := ':OLD.';
49.1017 - END CASE;
49.1018 - -- Build PL/SQL statement
49.1019 - stmt_ := stmt_ ||space___(indent_)||'DECLARE ';
49.1020 - indent_ := indent_ + 1;
49.1021 - stmt_ := stmt_ ||space___(indent_)||'msg_ VARCHAR2(32000);';
49.1022 - indent_ := indent_ - 1;
49.1023 - stmt_ := stmt_ ||space___(indent_)||'BEGIN ';
49.1024 - indent_ := indent_ + 1;
49.1025 - stmt_ := stmt_ ||space___(indent_)||'IF (Event_SYS.Event_Enabled('''||rec_.event_lu_name||''', '''||rec_.event_id||''')) THEN ';
49.1026 - indent_ := indent_ + 1;
49.1027 - stmt_ := stmt_ ||space___(indent_)||'msg_ := Message_SYS.Construct('''||rec_.event_id||''');';
49.1028 - FOR par_ IN get_param LOOP
49.1029 - IF (par_.id_type = 'DATETIME') THEN
49.1030 - format_prefix_ := 'to_char(';
49.1031 - format_postfix_ := ', '''||datetime_format_||''')';
49.1032 - ELSIF (par_.id_type = 'DATE') THEN
49.1033 - format_prefix_ := 'to_char(';
49.1034 - format_postfix_ := ', '''||date_format_||''')';
49.1035 - ELSIF (par_.id_type = 'TIME') THEN
49.1036 - format_prefix_ := 'to_char(';
49.1037 - format_postfix_ := ', '''||time_format_||''')';
49.1038 - ELSE
49.1039 - format_prefix_ := NULL;
49.1040 - format_postfix_ := NULL;
49.1041 - END IF;
49.1042 - --
49.1043 - IF par_.plsql_method IS NOT NULL THEN
49.1044 - stmt_ := stmt_ ||space___(indent_)||'Message_SYS.Add_Attribute(msg_, '''||par_.id||''', '||
49.1045 - format_prefix_||Replace_Parameter___(par_.plsql_method)||format_postfix_||');';
49.1046 - ELSE
49.1047 - IF par_.current_value = 'TRUE' THEN
49.1048 - stmt_ := stmt_ ||space___(indent_)||'Message_SYS.Add_Attribute(msg_, ''OLD:'||par_.id||''', '||format_prefix_||old_param_prefix_||par_.id||format_postfix_||');';
49.1049 - END IF;
49.1050 - IF par_.new_value = 'TRUE' THEN
49.1051 - stmt_ := stmt_ ||space___(indent_)||'Message_SYS.Add_Attribute(msg_, ''NEW:'||par_.id||''', '||format_prefix_||new_param_prefix_||par_.id||format_postfix_||');';
49.1052 - END IF;
49.1053 - END IF;
49.1054 - END LOOP;
49.1055 - stmt_ := stmt_ ||space___(indent_)||'Event_SYS.Event_Execute('''||rec_.event_lu_name||''', '''||rec_.event_id||''', msg_);';
49.1056 - indent_ := indent_ - 1;
49.1057 - stmt_ := stmt_ ||space___(indent_)||'END IF; ';
49.1058 - indent_ := indent_ - 1;
49.1059 - stmt_ := stmt_ ||space___(indent_)||'END; ';
49.1060 - indent_ := indent_ - 1;
49.1061 - stmt_ := stmt_ ||space___(indent_)||if_stmt_end_;
49.1062 -dbms_output.put_line(stmt_);
49.1063 - --
49.1064 - Installation_SYS.Create_Trigger (
49.1065 - Get_Trigger_Name___(rec_.event_id, trigger_type_),
49.1066 - 'AFTER',
49.1067 - Get_Dml_Event___(trigger_type_),
49.1068 - Get_Columns___(rec_.modified_attributes),
49.1069 - rec_.event_table_name,
49.1070 - NULL,
49.1071 - stmt_,
49.1072 - TRUE);
49.1073 -END Create_Custom_Trigger___;
49.1074 -
49.1075 -FUNCTION Get_Trigger_Name___(
49.1076 - event_id_ IN VARCHAR2,
49.1077 - trigger_type_ IN VARCHAR2 ) RETURN VARCHAR2
49.1078 -IS
49.1079 -BEGIN
49.1080 - CASE trigger_type_
49.1081 - WHEN 'NEW' THEN
49.1082 - RETURN(Upper(Create_Trigger_Name___(event_id_)||'_EVI'));
49.1083 - WHEN 'MODIFY' THEN
49.1084 - RETURN(Upper(Create_Trigger_Name___(event_id_)||'_EVU'));
49.1085 - WHEN 'REMOVE' THEN
49.1086 - RETURN(Upper(Create_Trigger_Name___(event_id_)||'_EVD'));
49.1087 - END CASE;
49.1088 -END Get_Trigger_Name___;
49.1089 -
49.1090 -PROCEDURE Remove_Custom_Triggers___(
49.1091 - rec_ IN Fnd_Event_Tab%ROWTYPE )
49.1092 -IS
49.1093 -BEGIN
49.1094 - General_SYS.Init_Method(lu_name_, '&PKG', 'Create_Custom_Triggers___', TRUE);
49.1095 - -- Create triggers per type (New, Modify, Remove)
49.1096 - IF (rec_.new_row = 'TRUE') THEN
49.1097 - Remove_Custom_Trigger___(rec_, 'NEW');
49.1098 - END IF;
49.1099 - IF (rec_.modify_row = 'TRUE') THEN
49.1100 - Remove_Custom_Trigger___(rec_, 'MODIFY');
49.1101 - END IF;
49.1102 - IF (rec_.remove_row = 'TRUE') THEN
49.1103 - Remove_Custom_Trigger___(rec_, 'REMOVE');
49.1104 - END IF;
49.1105 -END Remove_Custom_Triggers___;
49.1106 -
49.1107 -PROCEDURE Remove_Custom_Trigger___(
49.1108 - rec_ IN Fnd_Event_Tab%ROWTYPE,
49.1109 - trigger_type_ IN VARCHAR2 )
49.1110 -IS
49.1111 - stmt_ VARCHAR2(32000);
49.1112 - --
49.1113 -BEGIN
49.1114 - General_SYS.Init_Method(lu_name_, '&PKG', 'Remove_Custom_Trigger___', TRUE);
49.1115 - Installation_SYS.Remove_Trigger(Get_Trigger_Name___(rec_.event_id, trigger_type_), TRUE);
49.1116 -END Remove_Custom_Trigger___;
49.1117 -
49.1118 -FUNCTION Create_Trigger_Name___ (
49.1119 - event_id_ IN VARCHAR2 ) RETURN VARCHAR2
49.1120 -IS
49.1121 - new_event_id_ VARCHAR2(100);
49.1122 -BEGIN
49.1123 - new_event_id_ := Replace(event_id_, ' ', '_');
49.1124 - new_event_id_ := Replace(new_event_id_, '/', '_');
49.1125 - new_event_id_ := Replace(new_event_id_, '\', '_');
49.1126 - new_event_id_ := Replace(new_event_id_, '-', '_');
49.1127 - RETURN new_event_id_;
49.1128 -END Create_Trigger_Name___;
49.1129 ------------------------------------------------------------------------------
49.1130 --------------------- LU SPECIFIC PRIVATE METHODS ----------------------------
49.1131 ------------------------------------------------------------------------------
49.1132 -
49.1133 -PROCEDURE Export__ (
49.1134 - string_ OUT VARCHAR2,
49.1135 - event_lu_name_ IN VARCHAR2,
49.1136 - event_id_ IN VARCHAR2 )
49.1137 -IS
49.1138 - newline_ CONSTANT VARCHAR2(2) := chr(13)||chr(10);
49.1139 - rec &TABLE%ROWTYPE;
49.1140 - id_ VARCHAR2(100);
49.1141 - CURSOR get_param IS
49.1142 - SELECT id, id_type, plsql_method, current_value, new_value
49.1143 - FROM fnd_event_parameter_tab
49.1144 - WHERE event_lu_name = event_lu_name_
49.1145 - AND event_id = event_id_;
49.1146 -BEGIN
49.1147 - General_SYS.Init_Method(lu_name_, '&PKG', 'Export__');
49.1148 - -- Fetch the event details
49.1149 - rec := Get_Object_By_Keys___(event_lu_name_, event_id_);
49.1150 - -- Only allowed to export Custom Events
49.1151 - IF (nvl(rec.event_type, 'APPLICATION') != 'CUSTOM') THEN
49.1152 - Error_SYS.Appl_General(lu_name_, 'EXP_TYPE: Only Custom Events are allowed to be exported.');
49.1153 - END IF;
49.1154 - --
49.1155 - -- Create Export file
49.1156 - --
49.1157 - string_ := '-------------------------------------------------------------------------------------------- ' || newline_;
49.1158 - string_ := string_ || '-- Export file for Custom Events ' || rec.event_id || '.' || newline_;
49.1159 - string_ := string_ || '-- ' || newline_;
49.1160 - string_ := string_ || '-- Date Sign History' || newline_;
49.1161 - string_ := string_ || '-- ------ ------ -----------------------------------------------------------' || newline_;
49.1162 - string_ := string_ || '-- ' || to_char(sysdate, 'YYMMDD') || ' ' || rpad(Fnd_Session_API.Get_Fnd_User, 6, ' ') || ' ' ||
49.1163 - 'Export file for task ' || rec.event_id || '.' || newline_;
49.1164 - string_ := string_ || '-------------------------------------------------------------------------------------------- ' || newline_;
49.1165 - string_ := string_ || newline_;
49.1166 - string_ := string_ || 'SET DEFINE ~' || newline_;
49.1167 - string_ := string_ || 'PROMPT Register Custom Event "' || rec.event_id || '"' || newline_;
49.1168 - string_ := string_ || 'DECLARE' || newline_;
49.1169 - string_ := string_ || ' event_lu_name_ VARCHAR2(30) := ''' || event_lu_name_ || ''';' || newline_;
49.1170 - string_ := string_ || ' event_id_ VARCHAR2(30) := ''' || event_id_ || ''';' || newline_;
49.1171 - string_ := string_ || ' id_ VARCHAR2(100);' || newline_;
49.1172 - string_ := string_ || ' info_msg_ VARCHAR2(32000) := NULL;' || newline_;
49.1173 - string_ := string_ || 'BEGIN' || newline_;
49.1174 - --
49.1175 - -- Create Main Message
49.1176 - --
49.1177 - string_ := string_ || '-- Construct Main Message' || newline_;
49.1178 - string_ := string_ || ' info_msg_ := Message_SYS.Construct('''');' || newline_;
49.1179 - string_ := string_ || ' Message_SYS.Add_Attribute(info_msg_, ''EVENT_DESCRIPTION'', ''' || rec.event_description || ''');' || newline_;
49.1180 - string_ := string_ || ' Message_SYS.Add_Attribute(info_msg_, ''EVENT_ENABLE'', ''FALSE'');' || newline_;
49.1181 - string_ := string_ || ' Message_SYS.Add_Attribute(info_msg_, ''EVENT_TYPE_DB'', ''' || rec.event_type || ''');' || newline_;
49.1182 - string_ := string_ || ' Message_SYS.Add_Attribute(info_msg_, ''EVENT_TABLE_NAME'', ''' || rec.event_table_name || ''');' || newline_;
49.1183 - string_ := string_ || ' Message_SYS.Add_Attribute(info_msg_, ''MODIFIED_ATTRIBUTES'', ''' || rec.modified_attributes || ''');' || newline_;
49.1184 - string_ := string_ || ' Message_SYS.Add_Attribute(info_msg_, ''NEW_ROW_DB'', ''' || rec.new_row || ''');' || newline_;
49.1185 - string_ := string_ || ' Message_SYS.Add_Attribute(info_msg_, ''MODIFY_ROW_DB'', ''' || rec.modify_row || ''');' || newline_;
49.1186 - string_ := string_ || ' Message_SYS.Add_Attribute(info_msg_, ''REMOVE_ROW_DB'', ''' || rec.remove_row || ''');' || newline_;
49.1187 - string_ := string_ || '-- Register Custom Event' || newline_;
49.1188 - string_ := string_ || ' Fnd_Event_API.Register_Custom_Event(event_lu_name_, event_id_, info_msg_);' || newline_;
49.1189 - FOR rec2 IN get_param LOOP
49.1190 - string_ := string_ || ' -- Register Event Parameter' || newline_;
49.1191 - string_ := string_ || ' info_msg_ := Message_SYS.Construct('''');' || newline_;
49.1192 - string_ := string_ || ' id_ := ''' || rec2.id || ''';' || newline_;
49.1193 - string_ := string_ || ' Message_SYS.Add_Attribute(info_msg_, ''ID_TYPE'', ''' || rec2.id_type || ''');' || newline_;
49.1194 - string_ := string_ || ' Message_SYS.Add_Attribute(info_msg_, ''PLSQL_METHOD'', ''' || rec2.plsql_method || ''');' || newline_;
49.1195 - string_ := string_ || ' Message_SYS.Add_Attribute(info_msg_, ''CURRENT_VALUE_DB'', ''' || rec2.current_value || ''');' || newline_;
49.1196 - string_ := string_ || ' Message_SYS.Add_Attribute(info_msg_, ''NEW_VALUE_DB'', ''' || rec2.new_value || ''');' || newline_;
49.1197 - string_ := string_ || ' Fnd_Event_Parameter_API.Register(event_lu_name_, event_id_, id_, info_msg_);' || newline_;
49.1198 - END LOOP;
49.1199 - string_ := string_ || 'END;' || newline_;
49.1200 - string_ := string_ || '/' || newline_;
49.1201 - string_ := string_ || 'SET DEFINE &' || newline_;
49.1202 -END Export__;
49.1203 -
49.1204 ------------------------------------------------------------------------------
49.1205 --------------------- LU SPECIFIC PROTECTED METHODS --------------------------
49.1206 ------------------------------------------------------------------------------
49.1207 -
49.1208 -
49.1209 ------------------------------------------------------------------------------
49.1210 --------------------- LU SPECIFIC PUBLIC METHODS -----------------------------
49.1211 ------------------------------------------------------------------------------
49.1212 -
49.1213 -FUNCTION Get_Event_Description (
49.1214 - event_lu_name_ IN VARCHAR2,
49.1215 - event_id_ IN VARCHAR2 ) RETURN VARCHAR2
49.1216 -IS
49.1217 - temp_ &TABLE..event_description%TYPE;
49.1218 - CURSOR get_attr IS
49.1219 - SELECT event_description
49.1220 - FROM &TABLE
49.1221 - WHERE event_lu_name = event_lu_name_
49.1222 - AND event_id = event_id_;
49.1223 -BEGIN
49.1224 - OPEN get_attr;
49.1225 - FETCH get_attr INTO temp_;
49.1226 - CLOSE get_attr;
49.1227 - RETURN temp_;
49.1228 -END Get_Event_Description;
49.1229 -
49.1230 -
49.1231 -FUNCTION Get_Event_Enable (
49.1232 - event_lu_name_ IN VARCHAR2,
49.1233 - event_id_ IN VARCHAR2 ) RETURN VARCHAR2
49.1234 -IS
49.1235 - temp_ &TABLE..event_enable%TYPE;
49.1236 - CURSOR get_attr IS
49.1237 - SELECT event_enable
49.1238 - FROM &TABLE
49.1239 - WHERE event_lu_name = event_lu_name_
49.1240 - AND event_id = event_id_;
49.1241 -BEGIN
49.1242 - OPEN get_attr;
49.1243 - FETCH get_attr INTO temp_;
49.1244 - CLOSE get_attr;
49.1245 - IF temp_ IS NULL THEN
49.1246 - RETURN 'FALSE';
49.1247 - ELSE
49.1248 - RETURN temp_;
49.1249 - END IF;
49.1250 -END Get_Event_Enable;
49.1251 -
49.1252 -
49.1253 -PROCEDURE Set_Event_Enable (
49.1254 - event_lu_name_ IN VARCHAR2,
49.1255 - event_id_ IN VARCHAR2 )
49.1256 -IS
49.1257 - temp_ NUMBER;
49.1258 - attr_ VARCHAR2(32000);
49.1259 - oldrec_ &TABLE%ROWTYPE;
49.1260 - newrec_ &TABLE%ROWTYPE;
49.1261 - objid_ &VIEW..objid%TYPE;
49.1262 - objversion_ &VIEW..objversion%TYPE;
49.1263 -BEGIN
49.1264 - General_SYS.Init_Method(lu_name_, '&PKG', 'Set_Event_Enable');
49.1265 - IF (event_id_ <> upper(event_id_)) THEN
49.1266 - Error_SYS.Appl_General(lu_name_, 'UPPCASE: The event identity ":P1" must be in upper case.', event_id_);
49.1267 - END IF;
49.1268 - SELECT COUNT(*)
49.1269 - INTO temp_
49.1270 - FROM fnd_event_action
49.1271 - WHERE event_id = event_id_
49.1272 - AND event_lu_name = event_lu_name_
49.1273 - AND action_enable = 'TRUE';
49.1274 - Get_Id_Version_By_Keys___ (objid_, objversion_, event_lu_name_, event_id_);
49.1275 - IF (temp_ > 0) THEN
49.1276 - Client_SYS.Add_To_Attr('EVENT_ENABLE', 'TRUE', attr_);
49.1277 - oldrec_ := Get_Object_By_Keys___(event_lu_name_, event_id_);
49.1278 - newrec_ := oldrec_;
49.1279 - Unpack_Check_Update___(attr_, newrec_, objid_);
49.1280 - Update___(objid_, oldrec_, newrec_, attr_, objversion_);
49.1281 - ELSE
49.1282 - Client_SYS.Add_To_Attr('EVENT_ENABLE', 'FALSE', attr_);
49.1283 - oldrec_ := Get_Object_By_Keys___(event_lu_name_, event_id_);
49.1284 - newrec_ := oldrec_;
49.1285 - Unpack_Check_Update___(attr_, newrec_, objid_);
49.1286 - Update___(objid_, oldrec_, newrec_, attr_, objversion_);
49.1287 - END IF;
49.1288 -END Set_Event_Enable;
49.1289 -
49.1290 -
49.1291 -PROCEDURE Refresh (
49.1292 - event_lu_name_ IN VARCHAR2,
49.1293 - event_id_ IN VARCHAR2,
49.1294 - event_desc_ IN VARCHAR2,
49.1295 - event_type_db_ IN VARCHAR2 DEFAULT 'APPLICATION',
49.1296 - event_table_name_ IN VARCHAR2 DEFAULT NULL,
49.1297 - modified_attributes_ IN VARCHAR2 DEFAULT NULL,
49.1298 - new_row_ IN VARCHAR2 DEFAULT 'FALSE',
49.1299 - modify_row_ IN VARCHAR2 DEFAULT 'FALSE',
49.1300 - remove_row_ IN VARCHAR2 DEFAULT 'FALSE')
49.1301 -IS
49.1302 - temp_ NUMBER;
49.1303 -BEGIN
49.1304 - General_SYS.Init_Method(lu_name_, '&PKG', 'Refresh');
49.1305 - IF (event_id_ <> upper(event_id_)) THEN
49.1306 - Error_SYS.Appl_General(lu_name_, 'UPPCASE: The event identity ":P1" must be in upper case.', event_id_);
49.1307 - END IF;
49.1308 - SELECT COUNT(*)
49.1309 - INTO temp_
49.1310 - FROM &VIEW
49.1311 - WHERE event_id = event_id_
49.1312 - AND event_lu_name = event_lu_name_;
49.1313 - IF (temp_ = 0) THEN
49.1314 - INSERT INTO fnd_event_tab
49.1315 - (event_lu_name, event_id, event_description, event_enable, rowversion,
49.1316 - event_type, event_table_name, modified_attributes,
49.1317 - new_row, modify_row, remove_row)
49.1318 - VALUES
49.1319 - (event_lu_name_, event_id_, event_desc_, 'FALSE', SYSDATE,
49.1320 - event_type_db_, event_table_name_, modified_attributes_,
49.1321 - new_row_, modify_row_, remove_row_);
49.1322 - ELSE
49.1323 - UPDATE fnd_event_tab
49.1324 - SET event_description = event_desc_
49.1325 - WHERE event_lu_name = event_lu_name_
49.1326 - AND event_id = event_id_;
49.1327 - END IF;
49.1328 -END Refresh;
49.1329 -
49.1330 -PROCEDURE Register_Custom_Event (
49.1331 - event_lu_name_ IN VARCHAR2,
49.1332 - event_id_ IN VARCHAR2,
49.1333 - info_msg_ IN VARCHAR2 )
49.1334 -IS
49.1335 - info_ VARCHAR2(32000);
49.1336 - objid_ VARCHAR2(100);
49.1337 - objversion_ VARCHAR2(100);
49.1338 - attr_ VARCHAR2(2000);
49.1339 -BEGIN
49.1340 - General_SYS.Init_Method(lu_name_, '&PKG', 'Register_Custom_Event');
49.1341 - Client_SYS.Add_To_Attr('EVENT_LU_NAME', event_lu_name_, attr_);
49.1342 - Client_SYS.Add_To_Attr('EVENT_ID', event_id_, attr_);
49.1343 - Client_SYS.Add_To_Attr('EVENT_DESCRIPTION', Message_SYS.Find_Attribute(info_msg_, 'EVENT_DESCRIPTION', ''), attr_);
49.1344 - Client_SYS.Add_To_Attr('EVENT_ENABLE', Message_SYS.Find_Attribute(info_msg_, 'EVENT_ENABLE', 'FALSE'), attr_);
49.1345 - Client_SYS.Add_To_Attr('EVENT_TABLE_NAME', Message_SYS.Find_Attribute(info_msg_, 'EVENT_TABLE_NAME', ''), attr_);
49.1346 - Client_SYS.Add_To_Attr('EVENT_TYPE_DB', Message_SYS.Find_Attribute(info_msg_, 'EVENT_TYPE_DB', ''), attr_);
49.1347 - Client_SYS.Add_To_Attr('NEW_ROW_DB', Message_SYS.Find_Attribute(info_msg_, 'NEW_ROW_DB', 'FALSE'), attr_);
49.1348 - Client_SYS.Add_To_Attr('MODIFY_ROW_DB', Message_SYS.Find_Attribute(info_msg_, 'MODIFY_ROW_DB', 'FALSE'), attr_);
49.1349 - Client_SYS.Add_To_Attr('REMOVE_ROW_DB', Message_SYS.Find_Attribute(info_msg_, 'REMOVE_ROW_DB', 'FALSE'), attr_);
49.1350 - Client_SYS.Add_To_Attr('MODIFIED_ATTRIBUTES', Message_SYS.Find_Attribute(info_msg_, 'MODIFIED_ATTRIBUTES', ''), attr_);
49.1351 - IF (Check_Exist___(event_lu_name_, event_id_)) THEN
49.1352 - DELETE FROM fnd_event_tab WHERE event_lu_name = event_lu_name_ AND event_id = event_id_;
49.1353 - DELETE FROM fnd_event_parameter_tab WHERE event_lu_name = event_lu_name_ AND event_id = event_id_;
49.1354 - END IF;
49.1355 - New__(info_, objid_, objversion_, attr_, 'DO');
49.1356 -END Register_Custom_Event;
49.1357 -
49.1358 -PROCEDURE Unfresh (
49.1359 - event_lu_name_ IN VARCHAR2,
49.1360 - event_id_ IN VARCHAR2 )
49.1361 -IS
49.1362 - temp_ NUMBER;
49.1363 -BEGIN
49.1364 - General_SYS.Init_Method(lu_name_, '&PKG', 'Unfresh');
49.1365 - SELECT COUNT(*)
49.1366 - INTO temp_
49.1367 - FROM &VIEW
49.1368 - WHERE event_id = event_id_
49.1369 - AND event_lu_name = event_lu_name_;
49.1370 - IF (temp_ > 0) THEN
49.1371 - DELETE FROM fnd_event_tab
49.1372 - WHERE event_lu_name = event_lu_name_
49.1373 - AND event_id = event_id_;
49.1374 - END IF;
49.1375 -END Unfresh;
49.1376 -
49.1377 -
49.1378 -FUNCTION Get (
49.1379 - event_lu_name_ IN VARCHAR2,
49.1380 - event_id_ IN VARCHAR2 ) RETURN Public_Rec
49.1381 -IS
49.1382 - temp_ Public_Rec;
49.1383 - CURSOR get_attr IS
49.1384 - SELECT event_description, event_enable
49.1385 - FROM &TABLE
49.1386 - WHERE event_lu_name = event_lu_name_
49.1387 - AND event_id = event_id_;
49.1388 -BEGIN
49.1389 - OPEN get_attr;
49.1390 - FETCH get_attr INTO temp_;
49.1391 - CLOSE get_attr;
49.1392 - RETURN temp_;
49.1393 -END Get;
49.1394 -
49.1395 -
49.1396 -
49.1397 ------------------------------------------------------------------------------
49.1398 --------------------- FOUNDATION1 METHODS ------------------------------------
49.1399 ------------------------------------------------------------------------------
49.1400 --- Init
49.1401 --- Dummy procedure that can be called at database startup to ensure that
49.1402 --- this package is loaded into memory for performance reasons only.
49.1403 ------------------------------------------------------------------------------
49.1404 -
49.1405 -PROCEDURE Init
49.1406 -IS
49.1407 -BEGIN
49.1408 - NULL;
49.1409 -END Init;
49.1410 -
49.1411 -
49.1412 -END &PKG;
49.1413 -/
49.1414 -SHOW ERROR
49.1415 -
49.1416 -UNDEFINE MODULE
49.1417 -UNDEFINE LU
49.1418 -UNDEFINE TABLE
49.1419 -UNDEFINE VIEW
49.1420 -UNDEFINE PKG
49.1421 -
49.1422 -UNDEFINE OBJID
49.1423 -UNDEFINE OBJVERSION
49.1424 -
49.1425 ------------------------------------------------------------------------------
50.1 --- a/PLSQL/Lexer/test/unit/src/org/netbeans/modules/plsql/lexer/IdentityPayInfo.apy Wed May 15 16:07:35 2013 +0200
50.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
50.3 @@ -1,3557 +0,0 @@
50.4 ------------------------------------------------------------------------------
50.5 ---
50.6 --- Logical unit: IdentityPayInfo
50.7 ---
50.8 --- Purpose: Handles Party Type Id Payment Information
50.9 ---
50.10 --- IFS/Design Template Version 2.2
50.11 ---
50.12 --- Date Sign History
50.13 --- ------ ---- -----------------------------------------------------------
50.14 --- 960730 DAKA Created
50.15 --- 960731 DAKA View definition corrected.
50.16 --- 960802 MABE Added procedure Remove_Set. Modified Check_Delete.
50.17 --- 960821 MABE Removed procedure Remove_Set. Added procedure Instance_Exists.
50.18 --- 960927 MABE Removed call to reference by Bank Account in Check_Delete.
50.19 --- 961011 MABE Changes to fit Enterprise module.
50.20 --- 961129 DAKA Columns Priority,Blocked_For_Parked_Payment,Other_Payee.
50.21 --- 961205 MABE Changed error message for Exist changed.
50.22 --- Added procedure Create_Party_Type_Id.
50.23 --- 961205 Yohe Added view PARTY_TYPE_ID_PAY_INFO_SU_QRY and
50.24 --- PARTY_TYPE_ID_PAY_INFO_CU_QRY.
50.25 --- 961209 MABE Corrected type return by function Get_Blocked_For_Payment
50.26 --- to VARCHAR2.
50.27 --- 961213 MABE VIEW2 and VIEW3 changed to VIEW4 and VIEW5.
50.28 --- 970102 MABE Changes to fit Domain concept.
50.29 --- 970106 MABE Added function Get_Netting_Allowed.
50.30 --- Column DUMMY deleted.
50.31 --- 970114 MABE Developing of query forms.
50.32 --- 970121 MABE Added columns is_note and note to Query views. (not finished)
50.33 --- 970219 DAKA Columns INTEREST_TEMPLATE , REMINDER_TEMPLATE added.
50.34 --- 970220 MABE Added default templates when creating customer
50.35 --- by Create_Party_Type_Id.
50.36 --- 970303 MABE Added functions Get_Reminder_Template and Get_Interest_Template.
50.37 --- 970306 MABE Handling of notes added to views for query.
50.38 --- 970306 DAKA Call to party_type_id_invoice_info_api.exist added
50.39 --- 970318 MABE Checking if PartyTypeIdInvoiceInfo exists excluded
50.40 --- for party type 'COMPANY'.
50.41 --- 970512 SLKO Some performance improvement.
50.42 --- 970908 MABE Added function Get_Payment_Delay.
50.43 --- 970916 MABE Corrected Get_Payment_Delay.
50.44 --- 971029 MABE Joins with company_tab and party_type_identity_tab instead
50.45 --- of function calls.
50.46 --- 980415 DAKA Function Get_Name created
50.47 --- 980512 MABE Updated to fit IFS/Design 2.1.1A
50.48 --- 980515 MABE Added missing columns PARTY_TYPE_DB.
50.49 --- 980519 MARK Modified to use party_type_db values
50.50 --- 980522 MABE Corrected usage of party_type_db.
50.51 --- 980602 DAKA Identity added to LU
50.52 --- 980602 PICZ 'SELECT *' replaced with 'SELECT '1'' in Instance_Exists
50.53 --- 980629 WOBL Added comments to _db columns
50.54 --- 981103 KATH Bug # 4399 Fixed - add new function called Validate_Identity() to validate
50.55 --- supplies & customers
50.56 --- 981118 MABE Added missing comments to _db columns.
50.57 --- 981130 MABE Changed to fit Enterp 1.3.0.
50.58 --- 981208 MABE Removed VIEW PARTY_TYPE_ID_PAY_INFO_REF
50.59 --- 981214 PICZ Changes to Prepare_Insert___
50.60 --- 981222 DAKA US Localization code added
50.61 --- 990201 DAKA Connection with ENTERP improved
50.62 --- 990208 MarK Changes with regards to the Get_Currency_Rate.
50.63 --- 990209 DAKA Synchronized witch model
50.64 --- 990406 MABE Corrected problem with customer in not default company.
50.65 --- 990419 MABE Template modification to increase performance.
50.66 --- 990625 MABE Copied from PartyPayInfo and PartyTypeIdPayInfo due
50.67 --- to replace of party with identity.
50.68 --- 990811 MABE substr -> substr_b.
50.69 --- 990920 FRPO Added IID PaymentAdvice
50.70 --- 990928 FRPO Added default value for Payment Advice (No Advice) in Prepare_Insert___
50.71 --- for use in Create_Identity_Pay_Info for party_type = company
50.72 --- 991012 FRPO Other Payer made available for customers FIN123
50.73 --- 990914 REANPL Fetch_Tolerance modified to support payment tolerance for Supplier
50.74 --- 991214 PICZ Copy_Customer and Copy_Supplier added
50.75 --- 000224 WITOPL Removing DBMS_Output
50.76 --- 000304 PICZ Call #32631 corrected
50.77 --- 000410 PICZ Function Get_Group_For_Identity added
50.78 --- 000412 PICZ Function Get_Payment_Advice_Db added
50.79 --- 000825 REANPL Added new columns to VIEW:
50.80 --- deduction_group,corporation_id,member_id,send_reminder_to_payer,send_interest_inv_to_payer
50.81 --- 000829 REANPL Added new columns to Prepare_Insert___, Copy_Customer
50.82 --- 000929 PICZ Call #49661 (procedure Save_Identity_Notes___ added)
50.83 --- 001006 PICZ Call #49721 (function Get_Other_Payee_Ded_Group_Desc added)
50.84 --- 010220 LiSv For new Create Company concept added new view identity_pay__etc and _pct.
50.85 --- Added procedures Make_Company, Copy___, Import___ and Export___.
50.86 --- 010305 MAMIPL Bug #20283. Amount and Percent tolerance only positive value allowed.
50.87 --- 010503 visuus Bug Fix 20212: D&B number not copied when copying a customer.
50.88 --- 010611 MACHSE Bug# 15677 Fixed. Call to General_SYS.Init_Method.
50.89 --- 010816 OVJOSE Added Create Company translation method Create_Company_Translations___
50.90 --- 011009 RAFA Bug #23834 Added function Cust_Open_Items_Exist
50.91 --- 020304 RAFA IID 10998/10999 Call 77665 corrected Copy_Payment_Address___
50.92 --- 020308 LISV Call 78225 Corrected.
50.93 --- 020319 PPer Bug # 28324. Changed "PAYMENTSONACCOUNTEXIST" To "PAYMENTONACCNTEXIST".
50.94 --- 021008 Nimalk Removed usage of the view Company_Finance_Auth in viewes
50.95 --- and replaced by view Company_Finance_Auth1 using EXISTS caluse instead of joins
50.96 --- 021224 MACHLK SP3 Merge Bug ID 34081, 34083.
50.97 --- 030418 JAKALK DEFI165N Added column disc_days_tolerance.
50.98 --- 030506 NiKaLK Added new views Multi_Customer_Info and Multi_Supplier_Info
50.99 --- 030609 Kupelk FRFI154. Added column next_payment_matching_id.
50.100 --- Added Get_Next_Pay_Matching_Id, Get_Payment_Matching_Id .
50.101 --- 030729 Gepelk SP4 Merge. Bug # 35316. Modified 'Check_Cascade___'.
50.102 --- 030827 KuPelk Added next_payment_matching_id column to the method Copy___.
50.103 --- 040325 Thsrlk SP1 Merge
50.104 --- 040629 anpelk FIPR338A2: Unicode Changes
50.105 --- 040924 nalslk FITH354 - Modified calls to Payment_Library_API.Get_Currency_Rate
50.106 --- and removed retrieving default_currency_type from Currency_Type_API directly.
50.107 --- 041001 TsYolk FIPR360, Added column Group_ID to IDENTITY_PAY_INFO_SU_QRY and IDENTITY_PAY_INFO_CU_QRY.
50.108 --- 041104 GRRO FIJP345 Payment Method Plan added rule_id to IDENTITY_PAY_INFO
50.109 --- 041104 TsYolk Call B119368, Modified the WHERE clause of IDENTITY_PAY_INFO_CU_QRY.
50.110 --- 041124 AnGiSe FITH352, Added column tax_withholding to view IDENTITY_PAY_INFO_CU_QRY.
50.111 --- 041203 AnGiSe FITH352, Added column balance_excl_withheld to view IDENTITY_PAY_INFO_SU_QRY.
50.112 --- 050105 reanpl FITH351 Added payment_receipt_type
50.113 --- 050309 Samclk FIPR360 - New Notes dialog functionality - Changed IDENTITY_PAY_INFO_CU_QRY.
50.114 --- 050310 Samclk FIPR360 - New Notes dialog functionality - Changed IDENTITY_PAY_INFO_SU_QRY.
50.115 --- 050323 Jeguse Moved MULTI_CUS_DETAILS_QRY, MULTI_SUP_DETAILS_QRY and MULTI_SUP_ADDRESS_QRY from Ledgitem.apy
50.116 --- 051011 NiFelk FIPR360, Notes code clean up.
50.117 --- 060215 NiFelk LCS Merge 48619. Added new method Create_Cus_Other_Payee_Attr__.
50.118 --- 060728 Vohelk FIPL617A - Added Template_id to the IDENTITY_PAY_INFO view
50.119 --- 060829 Chhulk FIBR620A - Modified Prepare_Insert___
50.120 --- 060831 Shsalk LCS Merge 56765. Increased the variable lenghth.
50.121 --- 060919 RUFELK B139515 - Added the parameter 'company' to the Get_Template_Id() Function.
50.122 --- 061106 Lisvse FIBR621A - Added check_recipient.
50.123 --- 061121 RUFELK FIPL612A - Renamed the status_id column into ledger_status_type.
50.124 --- 061222 Kagalk LCS Merge 61779, Modified Check_Cascade___
50.125 --- 070109 Shsalk LCS Merge 62571, Modified cursor to fetch member id in the method Get_Member_Id.
50.126 --- 070327 RAFA LCS Merge Bug 51783
50.127 --- 070508 Surmlk Removed the use of SUBSTRB from the view PAYER_INFO_QRY
50.128 --- 070627 Shsalk LCS Merge 65361, Insert cursor selected value to payment_delay column in Copy_Customer method.
50.129 --- 070816 Shsalk B146601 Corrected accoding to a request from SDMAN module.
50.130 --- 070827 Naadlk LCS Merge 61494, Added advanced invoice column to views IDENTITY_PAY_INFO_SU_QRY,IDENTITY_PAY_INFO_CU_QRY,PAYER_INFO_QRY.
50.131 --- 070906 Paralk B148391 Modified Copy_Customer()
50.132 --- 071114 Paralk Bug 69035, Added reminder_template_id,interest_template_id and their descriptions to VIEW_CU_QRY
50.133 --- 071127 Shsalk Bug 68653, Added new columns to IDENTITY LOV views.
50.134 --- 080108 Paralk Bug 69035, Added reminder_template_id,interest_template_id and their descriptions to VIEW_PAYER_QRY
50.135 --- 080322 Shsalk Bug 72177 Corrected. Added bic_code to the copy identity functionality.
50.136 --- 080417 Paralk Bug 73125, Added template_id to Copy_Customer() and Copy_Supplier().
50.137 --- 080429 Nudilk Bug 72612, Modified procedure Exist()
50.138 --- 080528 DiUdlk Bug 74138, Modified cursor exist_company in Import__ function.
50.139 --- 081003 Hawalk Bug 77136, Table join with customer_info_tab and supplier_info_tab for VIEW_CU_QRY and VIEW_SU_QRY respectively,
50.140 --- 081003 to get name and association no directly.
50.141 ----------------------------------------------------------------------------------
50.142 -
50.143 -DEFINE MODULE = PAYLED
50.144 -DEFINE LU = IdentityPayInfo
50.145 -DEFINE TABLE = IDENTITY_PAY_INFO_TAB
50.146 -DEFINE VIEW = IDENTITY_PAY_INFO
50.147 -DEFINE VIEWPCT = IDENTITY_PAY_INFO_PCT
50.148 -DEFINE VIEW_SU_QRY = IDENTITY_PAY_INFO_SU_QRY
50.149 -DEFINE VIEW_CU_QRY = IDENTITY_PAY_INFO_CU_QRY
50.150 -DEFINE VIEW_SUPP = IDENTITY_PAY_INFO_SUPP
50.151 -DEFINE VIEW_CUST = IDENTITY_PAY_INFO_CUST
50.152 -DEFINE VIEW_LOV = IDENTITY_PAY_INFO_LOV
50.153 -DEFINE VIEW_ALL = IDENTITY_PAY_INFO_ALL
50.154 -DEFINE VIEW_PAYER_QRY = PAYER_INFO_QRY
50.155 -
50.156 -DEFINE VIEW_MULTI_CUS = MULTI_CUS_DETAILS_QRY
50.157 -DEFINE VIEW_MULTI_SUP = MULTI_SUP_DETAILS_QRY
50.158 -DEFINE VIEW_MULTI_ADD = MULTI_SUP_ADDRESS_QRY
50.159 -
50.160 -DEFINE PKG = IDENTITY_PAY_INFO_API
50.161 -
50.162 -DEFINE OBJID = rowid
50.163 -DEFINE OBJVERSION = ltrim(lpad(to_char(rowversion),2000))
50.164 -
50.165 -DEFINE OBJID_ptipi = ptipi.rowid
50.166 -DEFINE OBJVERSION_ptipi = ltrim(lpad(to_char(ptipi.rowversion),2000))
50.167 -
50.168 -DEFINE OBJID_p = p.rowid
50.169 -DEFINE OBJVERSION_p = ltrim(lpad(to_char(p.rowversion),2000))
50.170 -
50.171 -
50.172 ------------------------------------------------------------------------------
50.173 --------------------- VIEWS FOR SELECTS --------------------------------------
50.174 ------------------------------------------------------------------------------
50.175 -
50.176 -PROMPT Creating &VIEW view
50.177 -
50.178 -CREATE OR REPLACE FORCE VIEW &VIEW AS
50.179 -SELECT p.company company,
50.180 - identity identity,
50.181 - Party_Type_API.Decode(party_type) party_type,
50.182 - party_type party_type_db,
50.183 - priority priority,
50.184 - blocked_for_payment blocked_for_payment,
50.185 - other_payee_identity other_payee_identity,
50.186 - interest_template interest_template,
50.187 - reminder_template reminder_template,
50.188 - payment_delay payment_delay,
50.189 - amount_tolerance amount_tolerance,
50.190 - percent_tolerance percent_tolerance,
50.191 - disc_days_tolerance disc_days_tolerance,
50.192 - netting_allowed netting_allowed,
50.193 - format_no format_no,
50.194 - Payment_Advice_API.Decode(payment_advice) payment_advice,
50.195 - payment_advice payment_advice_db,
50.196 - deduction_group deduction_group,
50.197 - corporation_id corporation_id,
50.198 - member_id member_id,
50.199 - send_reminder_to_payer send_reminder_to_payer,
50.200 - send_interest_inv_to_payer send_interest_inv_to_payer,
50.201 - rule_id rule_id,
50.202 - Payment_Receipt_Type_API.Decode(payment_receipt_type) payment_receipt_type,
50.203 - payment_receipt_type payment_receipt_type_db,
50.204 - template_id template_id,
50.205 - Check_Recipient_API.Decode(check_recipient) check_recipient,
50.206 - check_recipient check_recipient_db,
50.207 - send_statement_of_acc_to_payer send_statement_of_acc_to_payer,
50.208 - p.&OBJID objid,
50.209 - &OBJVERSION objversion
50.210 -FROM identity_pay_info_tab p
50.211 -WHERE EXISTS (SELECT * FROM company_finance_auth1 c WHERE p.company = c.company)
50.212 -WITH read only;
50.213 -
50.214 -COMMENT ON TABLE &VIEW
50.215 - IS 'LU=&LU^PROMPT=Identity Pay Info^MODULE=&MODULE^';
50.216 -
50.217 -COMMENT ON COLUMN &VIEW..company
50.218 - IS 'FLAGS=PMI--^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Company^REF=CompanyPayInfo^';
50.219 -COMMENT ON COLUMN &VIEW..identity
50.220 - IS 'FLAGS=KMI--^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Identity^';
50.221 -COMMENT ON COLUMN &VIEW..party_type
50.222 - IS 'FLAGS=KMI-L^DATATYPE=STRING(200)^PROMPT=Party Type^REF=PartyType^';
50.223 -COMMENT ON COLUMN &VIEW..party_type_db
50.224 - IS 'FLAGS=A----^DATATYPE=STRING(20)^PROMPT=Party Type^';
50.225 -COMMENT ON COLUMN &VIEW..priority
50.226 - IS 'FLAGS=A-IUL^DATATYPE=NUMBER^PROMPT=Priority^';
50.227 -COMMENT ON COLUMN &VIEW..blocked_for_payment
50.228 - IS 'FLAGS=A-IUL^DATATYPE=BOOLEAN^PROMPT=Blocked For Payment^';
50.229 -COMMENT ON COLUMN &VIEW..other_payee_identity
50.230 - IS 'FLAGS=A-IUL^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Other Payee Identity^REF=IdentityPayInfo(company)^';
50.231 -COMMENT ON COLUMN &VIEW..interest_template
50.232 - IS 'FLAGS=A-IU-^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Interest Template^REF=InterestTemplate(company)^';
50.233 -COMMENT ON COLUMN &VIEW..reminder_template
50.234 - IS 'FLAGS=A-IU-^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Reminder Template^REF=ReminderTemplate(company)^';
50.235 -COMMENT ON COLUMN &VIEW..payment_delay
50.236 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=Number of Days Usual Payment Delay^';
50.237 -COMMENT ON COLUMN &VIEW..amount_tolerance
50.238 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=Amount Tolerance^';
50.239 -COMMENT ON COLUMN &VIEW..percent_tolerance
50.240 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=Percent Tolerance^';
50.241 -COMMENT ON COLUMN &VIEW..disc_days_tolerance
50.242 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=Tolerance Days for Discount^';
50.243 -COMMENT ON COLUMN &VIEW..netting_allowed
50.244 - IS 'FLAGS=AMIUL^DATATYPE=BOOLEAN^PROMPT=Netting Allowed^';
50.245 -COMMENT ON COLUMN &VIEW..format_no
50.246 - IS 'FLAGS=AMI--^DATATYPE=NUMBER^PROMPT=Format No^';
50.247 -COMMENT ON COLUMN &VIEW..payment_advice
50.248 - IS 'FLAGS=AMIUL^DATATYPE=STRING(200)^PROMPT=Payment Advice^REF=PaymentAdvice^';
50.249 -COMMENT ON COLUMN &VIEW..payment_advice_db
50.250 - IS 'FLAGS=A----^DATATYPE=STRING(20)^PROMPT=Payment Advice^';
50.251 -COMMENT ON COLUMN &VIEW..deduction_group
50.252 - IS 'FLAGS=A-IUL^DATATYPE=STRING(20)^PROMPT=Deduction Group^REF=DeductionGroup^';
50.253 -COMMENT ON COLUMN &VIEW..corporation_id
50.254 - IS 'FLAGS=A-IU-^DATATYPE=STRING(20)^PROMPT=Corporation Id^';
50.255 -COMMENT ON COLUMN &VIEW..member_id
50.256 - IS 'FLAGS=A-IU-^DATATYPE=STRING(20)^PROMPT=Member Id^';
50.257 -COMMENT ON COLUMN &VIEW..send_reminder_to_payer
50.258 - IS 'FLAGS=A-IU-^DATATYPE=STRING(5)^PROMPT=Send Reminder To Payer^';
50.259 -COMMENT ON COLUMN &VIEW..send_interest_inv_to_payer
50.260 - IS 'FLAGS=A-IU-^DATATYPE=STRING(5)^PROMPT=Send Interest Inv To Payer^';
50.261 -COMMENT ON COLUMN &VIEW..rule_id
50.262 - IS 'FLAGS=A-IUL^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Rule Id^REF=PayMethodRule(company)^';
50.263 -COMMENT ON COLUMN &VIEW..payment_receipt_type
50.264 - IS 'FLAGS=AMIUL^DATATYPE=STRING(200)^PROMPT=Payment Receipt^REF=PaymentReceiptType^';
50.265 -COMMENT ON COLUMN &VIEW..payment_receipt_type_db
50.266 - IS 'FLAGS=A----^DATATYPE=STRING(20)^PROMPT=Payment Receipt^';
50.267 -COMMENT ON COLUMN &VIEW..template_id
50.268 - IS 'FLAGS=A-IU-^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Template Id^REF=ConfirmationStmntTempl(company)^';
50.269 -COMMENT ON COLUMN &VIEW..check_recipient
50.270 - IS 'FLAGS=AMIUL^DATATYPE=STRING(200)^PROMPT=Check Recipient^REF=CheckRecipient^';
50.271 -COMMENT ON COLUMN &VIEW..check_recipient_db
50.272 - IS 'FLAGS=A----^DATATYPE=STRING(20)^PROMPT=Check Recipient^';
50.273 -COMMENT ON COLUMN &VIEW..send_statement_of_acc_to_payer
50.274 - IS 'FLAGS=A-IU-^DATATYPE=STRING(5)^PROMPT=Send Statement Of Account To Payer^';
50.275 -
50.276 --- Bug 77136, begin, Table join with supplier_info_tab, in order to get name and association no directly.
50.277 -PROMPT Creating &VIEW_SU_QRY VIEW
50.278 -CREATE OR REPLACE FORCE VIEW &VIEW_SU_QRY AS
50.279 -SELECT p.company company,
50.280 - p.identity identity,
50.281 - Party_Type_API.Decode(p.party_type) party_type,
50.282 - p.party_type party_type_db,
50.283 - si.name name,
50.284 - si.association_no association_no,
50.285 - NVL(Ledger_Item_Util_API.Get_Dom_Balance(
50.286 - p.company,
50.287 - p.identity,
50.288 - Party_Type_API.Decode(p.party_type),
50.289 - Company_Pay_Info_API.Get_Query_Voucher_Date), 0)
50.290 - balance,
50.291 - NVL(Ledger_Item_Util_API.Get_Dom_Balance(
50.292 - p.company,
50.293 - p.identity,
50.294 - Party_Type_API.Decode(p.party_type)), 0) pay_doc_balance,
50.295 - NVL(Ledger_Item_Util_API.Get_Adv_Inv_Dom_Balance(
50.296 - p.company,
50.297 - p.identity,
50.298 - Party_Type_API.Decode(p.party_type)), 0) adv_inv_balance,
50.299 - NVL(Ledger_Item_Util_API.Get_Dom_Amount_Due(
50.300 - p.company,
50.301 - p.identity,
50.302 - Party_Type_API.Decode(p.party_type),
50.303 - Company_Pay_Info_API.Get_Query_Voucher_Date), 0)
50.304 - amount_due,
50.305 - NVL(Ledger_Item_Util_API.Get_Dom_Amount_Due(
50.306 - p.company,
50.307 - p.identity,
50.308 - Party_Type_API.Decode(p.party_type),
50.309 - Company_Pay_Info_API.Get_Query_Voucher_Date,
50.310 - 'TRUE'), 0)
50.311 - pay_doc_amount_due,
50.312 - NVL(Ledger_Item_Util_API.Get_Dom_Pre_Payment_Balance(
50.313 - p.company,
50.314 - p.identity,
50.315 - Party_Type_API.Decode(p.party_type),
50.316 - Company_Pay_Info_API.Get_Query_Voucher_Date), 0)
50.317 - pre_payment_balance,
50.318 - NVL(Ledger_Item_Util_API.Get_Dom_Bal_Excl_Withh(
50.319 - p.company,
50.320 - p.identity,
50.321 - Party_Type_API.Decode(p.party_type),
50.322 - Company_Pay_Info_API.Get_Query_Voucher_Date), 0)
50.323 - balance_excl_withheld,
50.324 - decode(p.other_payee_identity,NULL,'FALSE','TRUE') other_party_type_exists,
50.325 - Identity_Note_API.Check_Note_Exist(p.company,
50.326 - p.identity,
50.327 - p.party_type) is_note,
50.328 - i.group_id group_id,
50.329 - &OBJID_p objid,
50.330 - &OBJVERSION_p objversion
50.331 -FROM identity_pay_info_tab p,
50.332 - identity_invoice_info_tab i,
50.333 - supplier_info_tab si
50.334 -WHERE EXISTS (SELECT * FROM company_finance_auth1 c WHERE p.company = c.company)
50.335 -AND p.party_type = 'SUPPLIER'
50.336 -AND p.company = i.company
50.337 -AND p.identity = i.identity
50.338 -AND p.party_type = i.party_type
50.339 -AND p.identity = si.supplier_id
50.340 -WITH read only;
50.341 -
50.342 -COMMENT ON TABLE &VIEW_SU_QRY
50.343 - IS 'LU=&LU^PROMPT=Identity Pay Info^MODULE=&MODULE^';
50.344 -
50.345 -COMMENT ON COLUMN &VIEW_SU_QRY..company
50.346 - IS 'FLAGS=PM---^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Company^REF=Company/NOCHECK^';
50.347 -COMMENT ON COLUMN &VIEW_SU_QRY..identity
50.348 - IS 'FLAGS=PM---^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Identity^';
50.349 -COMMENT ON COLUMN &VIEW_SU_QRY..party_type
50.350 - IS 'FLAGS=KM--L^DATATYPE=STRING(200)^PROMPT=Party Type^REF=PartyType^';
50.351 -COMMENT ON COLUMN &VIEW_SU_QRY..party_type_db
50.352 - IS 'FLAGS=A----^DATATYPE=STRING(20)^PROMPT=Party Type^';
50.353 -COMMENT ON COLUMN &VIEW_SU_QRY..name
50.354 - IS 'FLAGS=AM--L^DATATYPE=STRING(100)^PROMPT=Supplier Name^';
50.355 -COMMENT ON COLUMN &VIEW_SU_QRY..balance
50.356 - IS 'FLAGS=AM--L^DATATYPE=NUMBER^PROMPT=Balance^';
50.357 -COMMENT ON COLUMN &VIEW_SU_QRY..adv_inv_balance
50.358 - IS 'FLAGS=AM--L^DATATYPE=NUMBER^PROMPT=Adv Inv Balance^';
50.359 -COMMENT ON COLUMN &VIEW_SU_QRY..amount_due
50.360 - IS 'FLAGS=AM--L^DATATYPE=NUMBER^PROMPT=Amount Due^';
50.361 -COMMENT ON COLUMN &VIEW_SU_QRY..pre_payment_balance
50.362 - IS 'FLAGS=AM--L^DATATYPE=NUMBER^PROMPT=Open Pre-Payments^';
50.363 -COMMENT ON COLUMN &VIEW_SU_QRY..balance_excl_withheld
50.364 - IS 'FLAGS=AM--L^DATATYPE=NUMBER^PROMPT=Balance Excl Withheld^';
50.365 -COMMENT ON COLUMN &VIEW_SU_QRY..other_party_type_exists
50.366 - IS 'FLAGS=AM--L^DATATYPE=BOOLEAN^PROMPT=Other Party Type Exist^';
50.367 -COMMENT ON COLUMN &VIEW_SU_QRY..is_note
50.368 - IS 'FLAGS=AM--L^DATATYPE=BOOLEAN^PROMPT=Notes^';
50.369 -COMMENT ON COLUMN &VIEW_SU_QRY..group_id
50.370 - IS 'FLAGS=A----^DATATYPE=STRING(20)^PROMPT=Group ID^';
50.371 --- Bug 77136, end
50.372 -
50.373 --- Bug 77136, begin, Table join with customer_info_tab, in order to get name and association no directly.
50.374 --- Bug 69035, Begin, Added reminder_template_id,interest_template_id and their descriptions to VIEW_CU_QRY
50.375 -PROMPT Creating &VIEW_CU_QRY view
50.376 -CREATE OR REPLACE FORCE VIEW &VIEW_CU_QRY AS
50.377 -SELECT p.company company,
50.378 - p.identity identity,
50.379 - Party_Type_API.Decode(p.party_type) party_type,
50.380 - p.party_type party_type_db,
50.381 - ci.name name,
50.382 - ci.association_no association_no,
50.383 - NVL(Ledger_Item_Util_API.Get_Dom_Balance(
50.384 - p.company,
50.385 - p.identity,
50.386 - Party_Type_API.Decode(p.party_type),
50.387 - Company_Pay_Info_API.Get_Query_Voucher_Date), 0)
50.388 - balance,
50.389 - NVL(Ledger_Item_Util_API.Get_Dom_Balance(
50.390 - p.company,
50.391 - p.identity,
50.392 - Party_Type_API.Decode(p.party_type),
50.393 - Company_Pay_Info_API.Get_Query_Voucher_Date,
50.394 - 'TRUE'), 0) pay_doc_balance,
50.395 - NVL(Ledger_Item_Util_API.Get_Adv_Inv_Dom_Balance(
50.396 - p.company,
50.397 - p.identity,
50.398 - Party_Type_API.Decode(p.party_type)), 0) adv_inv_balance,
50.399 - NVL(Ledger_Item_Util_API.Get_Dom_Amount_Due(
50.400 - p.company,
50.401 - p.identity,
50.402 - Party_Type_API.Decode(p.party_type),
50.403 - Company_Pay_Info_API.Get_Query_Voucher_Date), 0)
50.404 - amount_due,
50.405 - NVL(Ledger_Item_Util_API.Get_Dom_Amount_Due(
50.406 - p.company,
50.407 - p.identity,
50.408 - Party_Type_API.Decode(p.party_type),
50.409 - Company_Pay_Info_API.Get_Query_Voucher_Date,
50.410 - 'TRUE'), 0) pay_doc_amount_due,
50.411 - NVL(Ledger_Item_Util_API.Get_Dom_Pre_Payment_Balance(
50.412 - p.company,
50.413 - p.identity,
50.414 - Party_Type_API.Decode(p.party_type),
50.415 - Company_Pay_Info_API.Get_Query_Voucher_Date), 0)
50.416 - pre_payment_balance,
50.417 - 'FALSE' other_party_type_exists,
50.418 - Identity_Note_API.Check_Note_Exist(p.company,
50.419 - p.identity,
50.420 - p.party_type) is_note,
50.421 - i.group_id group_id,
50.422 - cci.credit_analyst_code ca_code,
50.423 - Credit_Analyst_API.Get_Description(p.company,
50.424 - cci.credit_analyst_code ) ca_desc,
50.425 - Credit_Analyst_API.Get_Manager(p.company,
50.426 - cci.credit_analyst_code) ca_manager,
50.427 - Credit_Analyst_API.Get_Manager_Description(p.company,
50.428 - cci.credit_analyst_code) manager_desc,
50.429 - cci.corp_credit_relation_exist credit_relation_exist,
50.430 - cci.credit_relationship_type credit_relation_type,
50.431 - cci.parent_company parent_company,
50.432 - cci.parent_identity parent_party,
50.433 - Customer_Info_API.Get_Name(cci.parent_identity) parent_name,
50.434 - Customer_Info_Vat_API.Get_Tax_Withholding(p.identity,
50.435 - Customer_Info_Address_API.Get_Default_Address(p.identity,
50.436 - Address_Type_Code_API.Decode('DELIVERY')), p.company) tax_withholding,
50.437 - p.reminder_template reminder_template_id,
50.438 - Reminder_Template_Api.Get_Template_Description(p.company ,
50.439 - p.reminder_template) reminder_template_des,
50.440 - p.interest_template interest_template_id,
50.441 - Interest_Template_API.Get_Template_Description(p.company,
50.442 - p.interest_template) interest_template_des,
50.443 - &OBJID_p objid,
50.444 - &OBJVERSION_p objversion
50.445 -FROM identity_pay_info_tab p,
50.446 - identity_invoice_info_tab i,
50.447 - customer_credit_info_tab cci,
50.448 - customer_info_tab ci
50.449 -WHERE EXISTS (SELECT * FROM company_finance_auth1 c WHERE p.company = c.company)
50.450 -AND p.party_type = 'CUSTOMER'
50.451 -AND p.company = cci.company(+)
50.452 -AND p.identity = cci.identity(+)
50.453 -AND p.company = i.company
50.454 -AND p.identity = i.identity
50.455 -AND p.party_type = i.party_type
50.456 -AND p.identity = ci.customer_id
50.457 -WITH read only;
50.458 -
50.459 -COMMENT ON TABLE &VIEW_CU_QRY
50.460 - IS 'LU=&LU^PROMPT=Identity Pay Info^MODULE=&MODULE^';
50.461 -
50.462 -COMMENT ON COLUMN &VIEW_CU_QRY..company
50.463 - IS 'FLAGS=PM---^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Company^REF=Company/NOCHECK^';
50.464 -COMMENT ON COLUMN &VIEW_CU_QRY..identity
50.465 - IS 'FLAGS=PM---^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Identity^';
50.466 -COMMENT ON COLUMN &VIEW_CU_QRY..party_type
50.467 - IS 'FLAGS=KM--L^DATATYPE=STRING(200)^PROMPT=Party Type^REF=PartyType^';
50.468 -COMMENT ON COLUMN &VIEW_CU_QRY..party_type_db
50.469 - IS 'FLAGS=A----^DATATYPE=STRING(20)^PROMPT=Party Type^';
50.470 -COMMENT ON COLUMN &VIEW_CU_QRY..name
50.471 - IS 'FLAGS=AM--L^DATATYPE=STRING(100)^PROMPT=Customer Name^';
50.472 -COMMENT ON COLUMN &VIEW_CU_QRY..balance
50.473 - IS 'FLAGS=AM--L^DATATYPE=NUMBER^PROMPT=Balance^';
50.474 -COMMENT ON COLUMN &VIEW_CU_QRY..adv_inv_balance
50.475 - IS 'FLAGS=AM--L^DATATYPE=NUMBER^PROMPT=Adv Inv Balance^';
50.476 -COMMENT ON COLUMN &VIEW_CU_QRY..amount_due
50.477 - IS 'FLAGS=AM--L^DATATYPE=NUMBER^PROMPT=Amount Due^';
50.478 -COMMENT ON COLUMN &VIEW_CU_QRY..pre_payment_balance
50.479 - IS 'FLAGS=AM--L^DATATYPE=NUMBER^PROMPT=Open Pre-Payments^';
50.480 -COMMENT ON COLUMN &VIEW_CU_QRY..other_party_type_exists
50.481 - IS 'FLAGS=AM--L^DATATYPE=BOOLEAN^PROMPT=Other Party Type Exist^';
50.482 -COMMENT ON COLUMN &VIEW_CU_QRY..is_note
50.483 - IS 'FLAGS=AM--L^DATATYPE=BOOLEAN^PROMPT=Notes^';
50.484 -COMMENT ON COLUMN &VIEW_CU_QRY..group_id
50.485 - IS 'FLAGS=A----^DATATYPE=STRING(20)^PROMPT=Group ID^';
50.486 -COMMENT ON COLUMN &VIEW_CU_QRY..ca_code
50.487 - IS 'FLAGS=A---L^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Credit Analyst Code^';
50.488 -COMMENT ON COLUMN &VIEW_CU_QRY..ca_desc
50.489 - IS 'FLAGS=A---L^DATATYPE=STRING(100)^PROMPT=Credit Analyst Description^';
50.490 -COMMENT ON COLUMN &VIEW_CU_QRY..ca_manager
50.491 - IS 'FLAGS=A---L^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Credit Analyst Manager^';
50.492 -COMMENT ON COLUMN &VIEW_CU_QRY..manager_desc
50.493 - IS 'FLAGS=A---L^DATATYPE=STRING(100)^PROMPT=Manager Description^';
50.494 -COMMENT ON COLUMN &VIEW_CU_QRY..credit_relation_exist
50.495 - IS 'FLAGS=A---L^DATATYPE=BOOLEAN^PROMPT=Credit Relation Exist^';
50.496 -COMMENT ON COLUMN &VIEW_CU_QRY..credit_relation_type
50.497 - IS 'FLAGS=A---L^DATATYPE=STRING(100)^PROMPT=Credit Relation Type^';
50.498 -COMMENT ON COLUMN &VIEW_CU_QRY..parent_company
50.499 - IS 'FLAGS=A---L^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Parent Company^';
50.500 -COMMENT ON COLUMN &VIEW_CU_QRY..parent_party
50.501 - IS 'FLAGS=A---L^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Parent Party^';
50.502 -COMMENT ON COLUMN &VIEW_CU_QRY..parent_name
50.503 - IS 'FLAGS=A---L^DATATYPE=STRING(100)^PROMPT=Parent Name^';
50.504 -COMMENT ON COLUMN &VIEW_CU_QRY..tax_withholding
50.505 - IS 'FLAGS=A---L^DATATYPE=STRING(20)^PROMPT=Tax Withholding^';
50.506 -COMMENT ON COLUMN &VIEW_CU_QRY..reminder_template_id
50.507 - IS 'FLAGS=A---L^DATATYPE=STRING(20)^PROMPT=Reminder Template Id^';
50.508 -COMMENT ON COLUMN &VIEW_CU_QRY..reminder_template_des
50.509 - IS 'FLAGS=A---L^DATATYPE=STRING(200)^PROMPT=Reminder Template Description^';
50.510 -COMMENT ON COLUMN &VIEW_CU_QRY..interest_template_id
50.511 - IS 'FLAGS=A---L^DATATYPE=STRING(20)^PROMPT=Interest Template Id^';
50.512 -COMMENT ON COLUMN &VIEW_CU_QRY..interest_template_des
50.513 - IS 'FLAGS=A---L^DATATYPE=STRING(200)^PROMPT=Interest Template Description^';
50.514 --- Bug 69035, End;
50.515 --- Bug 77136, end
50.516 -
50.517 -PROMPT Creating &VIEW_SUPP view
50.518 -
50.519 --- Bug 68653, Begin, Added new columns address and city
50.520 -CREATE OR REPLACE FORCE VIEW &VIEW_SUPP AS
50.521 -SELECT ipi.company company,
50.522 - identity identity,
50.523 - Supplier_Info_API.Get_Name(identity) party_name,
50.524 - Supplier_Info_Address_API.Get_City(identity,
50.525 - Supplier_Info_Address_API.Get_Default_Address(identity,
50.526 - Address_Type_Code_API.Decode('PAY'))) city,
50.527 - RTRIM(Supplier_Info_Address_API.Get_Address1(identity,
50.528 - Supplier_Info_Address_API.Get_Default_Address(identity,
50.529 - Address_Type_Code_API.Decode('PAY')))||','||
50.530 - Supplier_Info_Address_API.Get_Address2(identity,
50.531 - Supplier_Info_Address_API.Get_Default_Address(identity,
50.532 - Address_Type_Code_API.Decode('PAY'))),',') address,
50.533 - priority priority,
50.534 - blocked_for_payment blocked_for_payment,
50.535 - other_payee_identity other_payee_identity,
50.536 - Payment_Advice_API.Decode(payment_advice) payment_advice,
50.537 - ipi.&OBJID objid,
50.538 - &OBJVERSION objversion
50.539 -FROM identity_pay_info_tab ipi
50.540 -WHERE EXISTS (SELECT * FROM company_finance_auth1 c WHERE ipi.company = c.company)
50.541 -AND party_type = 'SUPPLIER'
50.542 -WITH read only;
50.543 -
50.544 -COMMENT ON TABLE &VIEW_SUPP
50.545 - IS 'LU=&LU^PROMPT=Supplier Pay Info^MODULE=&MODULE^';
50.546 -
50.547 -COMMENT ON COLUMN &VIEW_SUPP..company
50.548 - IS 'FLAGS=PMI--^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Company^REF=Company/NOCHECK^';
50.549 -COMMENT ON COLUMN &VIEW_SUPP..identity
50.550 - IS 'FLAGS=KMI-L^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Supplier Id^REF=SupplierInfo/CUSTOM=(Check_Cascade_Supplier__,Cascade_Delete_Supplier__)^';
50.551 -COMMENT ON COLUMN &VIEW_SUPP..party_name
50.552 - IS 'FLAGS=AMI-L^DATATYPE=STRING(100)^PROMPT=Supplier Name^';
50.553 -COMMENT ON COLUMN &VIEW_SUPP..city
50.554 - IS 'FLAGS=A---L^DATATYPE=STRING(35)^PROMPT=City^';
50.555 -COMMENT ON COLUMN &VIEW_SUPP..address
50.556 - IS 'FLAGS=A---L^DATATYPE=STRING(2000)^PROMPT=Address^';
50.557 -COMMENT ON COLUMN &VIEW_SUPP..priority
50.558 - IS 'FLAGS=A-IUL^DATATYPE=NUMBER^PROMPT=Priority^';
50.559 -COMMENT ON COLUMN &VIEW_SUPP..blocked_for_payment
50.560 - IS 'FLAGS=A-IUL^DATATYPE=BOOLEAN^PROMPT=Blocked For Payment^';
50.561 -COMMENT ON COLUMN &VIEW_SUPP..other_payee_identity
50.562 - IS 'FLAGS=A-IUL^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Other Payee^';
50.563 -COMMENT ON COLUMN &VIEW_SUPP..payment_advice
50.564 - IS 'FLAGS=A-IU-^DATATYPE=STRING(200)^PROMPT=Payment Advice^REF=PaymentAdvice^';
50.565 --- Bug 68653, End
50.566 -
50.567 -
50.568 -PROMPT Creating &VIEW_CUST view
50.569 -
50.570 --- Bug 68653, Begin, Added new columns address and city
50.571 -CREATE OR REPLACE FORCE VIEW &VIEW_CUST AS
50.572 -SELECT ipi.company company,
50.573 - identity identity,
50.574 - Customer_Info_API.Get_Name(identity) party_name,
50.575 - Customer_Info_Address_API.Get_City(identity,
50.576 - Customer_Info_Address_API.Get_Default_Address(identity,
50.577 - Address_Type_Code_API.Decode('PAY'))) city,
50.578 - RTRIM(Customer_Info_Address_API.Get_Address1(identity,
50.579 - Customer_Info_Address_API.Get_Default_Address(identity,
50.580 - Address_Type_Code_API.Decode('PAY')))||','||
50.581 - Customer_Info_Address_API.Get_Address2(identity,
50.582 - Customer_Info_Address_API.Get_Default_Address(identity,
50.583 - Address_Type_Code_API.Decode('PAY'))),',') address,
50.584 - interest_template interest_template,
50.585 - reminder_template reminder_template,
50.586 - Payment_Advice_API.Decode(payment_advice) payment_advice,
50.587 - ipi.&OBJID objid,
50.588 - &OBJVERSION objversion
50.589 -FROM identity_pay_info_tab ipi
50.590 -WHERE EXISTS (SELECT * FROM company_finance_auth1 c WHERE ipi.company = c.company)
50.591 -AND party_type = 'CUSTOMER'
50.592 -WITH read only;
50.593 -
50.594 -COMMENT ON TABLE &VIEW_CUST
50.595 - IS 'LU=&LU^PROMPT=Customer Pay Info^MODULE=&MODULE^';
50.596 -
50.597 -COMMENT ON COLUMN &VIEW_CUST..company
50.598 - IS 'FLAGS=PMI--^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Company^REF=Company/NOCHECK^';
50.599 -COMMENT ON COLUMN &VIEW_CUST..identity
50.600 - IS 'FLAGS=KMI-L^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Customer Id^REF=CustomerInfo/CUSTOM=(Check_Cascade_Customer__,Cascade_Delete_Customer__)^';
50.601 -COMMENT ON COLUMN &VIEW_CUST..party_name
50.602 - IS 'FLAGS=AMI-L^DATATYPE=STRING(100)^PROMPT=Customer Name^';
50.603 -COMMENT ON COLUMN &VIEW_CUST..city
50.604 - IS 'FLAGS=A---L^DATATYPE=STRING(35)^PROMPT=City^';
50.605 -COMMENT ON COLUMN &VIEW_CUST..address
50.606 - IS 'FLAGS=A---L^DATATYPE=STRING(2000)^PROMPT=Address^';
50.607 -COMMENT ON COLUMN &VIEW_CUST..interest_template
50.608 - IS 'FLAGS=A-IUL^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Interest Template^REF=InterestTemplate(company)/NOCHECK^';
50.609 -COMMENT ON COLUMN &VIEW_CUST..reminder_template
50.610 - IS 'FLAGS=A-IUL^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Reminder Template^REF=ReminderTemplate(company)/NOCHECK^';
50.611 -COMMENT ON COLUMN &VIEW_CUST..payment_advice
50.612 - IS 'FLAGS=A-IU-^DATATYPE=STRING(200)^PROMPT=Payment Advice^REF=PaymentAdvice^';
50.613 --- Bug 68653, End
50.614 -
50.615 -PROMPT Creating &VIEW_LOV view
50.616 -
50.617 --- Bug 68653, Begin, Added new columns address and city
50.618 -CREATE OR REPLACE FORCE VIEW &VIEW_LOV AS
50.619 -SELECT ipi.company company,
50.620 - party_type party_type_db,
50.621 - identity identity,
50.622 - Payment_Library_API.Get_Identity_Name(ipi.company,
50.623 - identity,
50.624 - Party_Type_API.Decode(party_type)) party_name,
50.625 - Payment_Library_API.Get_City(ipi.company,
50.626 - identity,
50.627 - party_type) city,
50.628 - Payment_Library_API.Get_Address(ipi.company,
50.629 - identity,
50.630 - party_type) address,
50.631 - ipi.&OBJID objid,
50.632 - &OBJVERSION objversion
50.633 -FROM identity_pay_info_tab ipi
50.634 -WHERE EXISTS (SELECT * FROM company_finance_auth1 c WHERE ipi.company = c.company)
50.635 -WITH read only;
50.636 -
50.637 -COMMENT ON TABLE &VIEW_LOV
50.638 - IS 'LU=&LU^PROMPT=Customer/Supplier Pay Info^MODULE=&MODULE^';
50.639 -
50.640 -COMMENT ON COLUMN &VIEW_LOV..company
50.641 - IS 'FLAGS=PMI--^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Company^REF=Company/NOCHECK^';
50.642 -COMMENT ON COLUMN &VIEW_LOV..party_type_db
50.643 - IS 'FLAGS=PMI--^DATATYPE=STRING(20)^PROMPT=Party Type^';
50.644 -COMMENT ON COLUMN &VIEW_LOV..identity
50.645 - IS 'FLAGS=KMI-L^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Identity^';
50.646 -COMMENT ON COLUMN &VIEW_LOV..party_name
50.647 - IS 'FLAGS=AMI-L^DATATYPE=STRING(100)^PROMPT=Name^';
50.648 -COMMENT ON COLUMN &VIEW_LOV..city
50.649 - IS 'FLAGS=A---L^DATATYPE=STRING(35)^PROMPT=City^';
50.650 -COMMENT ON COLUMN &VIEW_LOV..address
50.651 - IS 'FLAGS=A---L^DATATYPE=STRING(2000)^PROMPT=Address^';
50.652 --- Bug 68653, End
50.653 -
50.654 -
50.655 -PROMPT Creating &VIEW_ALL view
50.656 -
50.657 -CREATE OR REPLACE FORCE VIEW &VIEW_ALL AS
50.658 -SELECT ipi.company company,
50.659 - identity identity,
50.660 - Party_Type_API.Decode(party_type) party_type,
50.661 - Payment_Library_API.Get_Identity_Name(ipi.company,
50.662 - identity,
50.663 - Party_Type_API.Decode(party_type)) party_name,
50.664 - ipi.&OBJID objid,
50.665 - &OBJVERSION objversion
50.666 -FROM identity_pay_info_tab ipi
50.667 -WHERE EXISTS (SELECT * FROM company_finance_auth1 c WHERE ipi.company = c.company)
50.668 -WITH read only;
50.669 -
50.670 -COMMENT ON TABLE &VIEW_ALL
50.671 - IS 'LU=&LU^PROMPT=Identity Pay Info^MODULE=&MODULE^';
50.672 -
50.673 -COMMENT ON COLUMN &VIEW_ALL..company
50.674 - IS 'FLAGS=PMI--^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Company^REF=Company/NOCHECK^';
50.675 -COMMENT ON COLUMN &VIEW_ALL..identity
50.676 - IS 'FLAGS=KMI-L^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Identity^';
50.677 -COMMENT ON COLUMN &VIEW_ALL..party_type
50.678 - IS 'FLAGS=AMI-L^DATATYPE=STRING(200)^PROMPT=Party Type^REF=PartyType';
50.679 -COMMENT ON COLUMN &VIEW_ALL..party_name
50.680 - IS 'FLAGS=AMI-L^DATATYPE=STRING(100)^PROMPT=Name^';
50.681 -
50.682 -PROMPT Creating &VIEWPCT view
50.683 -
50.684 -CREATE OR REPLACE FORCE VIEW &VIEWPCT AS
50.685 -SELECT company company,
50.686 - identity identity,
50.687 - party_type party_type_db,
50.688 - priority priority,
50.689 - blocked_for_payment blocked_for_payment,
50.690 - other_payee_identity other_payee_identity,
50.691 - interest_template interest_template,
50.692 - reminder_template reminder_template,
50.693 - payment_delay payment_delay,
50.694 - amount_tolerance amount_tolerance,
50.695 - percent_tolerance percent_tolerance,
50.696 - disc_days_tolerance disc_days_tolerance,
50.697 - netting_allowed netting_allowed,
50.698 - format_no format_no,
50.699 - payment_advice payment_advice_db,
50.700 - deduction_group deduction_group,
50.701 - corporation_id corporation_id,
50.702 - member_id member_id,
50.703 - send_reminder_to_payer send_reminder_to_payer,
50.704 - send_interest_inv_to_payer send_interest_inv_to_payer,
50.705 - payment_receipt_type payment_receipt_type_db,
50.706 - send_statement_of_acc_to_payer send_statement_of_acc_to_payer
50.707 -FROM identity_pay_info_tab
50.708 -WITH read only;
50.709 -
50.710 -COMMENT ON TABLE &VIEWPCT
50.711 - IS 'LU=&LU^PROMPT=Identity Pay Info^MODULE=&MODULE^';
50.712 -
50.713 -COMMENT ON COLUMN &VIEWPCT..company
50.714 - IS 'FLAGS=PMI--^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Company^REF=CompanyPayInfo/NOCHECK^';
50.715 -COMMENT ON COLUMN &VIEWPCT..identity
50.716 - IS 'FLAGS=KMI--^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Identity^';
50.717 -COMMENT ON COLUMN &VIEWPCT..party_type_db
50.718 - IS 'FLAGS=A----^DATATYPE=STRING(20)^PROMPT=Party Type^';
50.719 -COMMENT ON COLUMN &VIEWPCT..priority
50.720 - IS 'FLAGS=A-IUL^DATATYPE=NUMBER^PROMPT=Priority^';
50.721 -COMMENT ON COLUMN &VIEWPCT..blocked_for_payment
50.722 - IS 'FLAGS=A-IUL^DATATYPE=BOOLEAN^PROMPT=Blocked For Payment^';
50.723 -COMMENT ON COLUMN &VIEWPCT..other_payee_identity
50.724 - IS 'FLAGS=A-IUL^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Other Payee Identity^REF=IdentityPayInfo(company)/NOCHECK^';
50.725 -COMMENT ON COLUMN &VIEWPCT..interest_template
50.726 - IS 'FLAGS=A-IU-^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Interest Template^REF=InterestTemplate(company)/NOCHECK^';
50.727 -COMMENT ON COLUMN &VIEWPCT..reminder_template
50.728 - IS 'FLAGS=A-IU-^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Reminder Template^REF=ReminderTemplate(company)/NOCHECK^';
50.729 -COMMENT ON COLUMN &VIEWPCT..payment_delay
50.730 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=Number of Days Usual Payment Delay^';
50.731 -COMMENT ON COLUMN &VIEWPCT..amount_tolerance
50.732 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=Amount Tolerance^';
50.733 -COMMENT ON COLUMN &VIEWPCT..percent_tolerance
50.734 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=Percent Tolerance^';
50.735 -COMMENT ON COLUMN &VIEWPCT..disc_days_tolerance
50.736 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=Tolerance Days for Discount^';
50.737 -COMMENT ON COLUMN &VIEWPCT..netting_allowed
50.738 - IS 'FLAGS=AMIUL^DATATYPE=BOOLEAN^PROMPT=Netting Allowed^';
50.739 -COMMENT ON COLUMN &VIEWPCT..format_no
50.740 - IS 'FLAGS=AMI--^DATATYPE=NUMBER^PROMPT=Format No^';
50.741 -COMMENT ON COLUMN &VIEWPCT..payment_advice_db
50.742 - IS 'FLAGS=A----^DATATYPE=STRING(20)^PROMPT=Payment Advice^';
50.743 -COMMENT ON COLUMN &VIEWPCT..deduction_group
50.744 - IS 'FLAGS=A-IUL^DATATYPE=STRING(20)^PROMPT=Deduction Group^REF=DeductionGroup/NOCHECK^';
50.745 -COMMENT ON COLUMN &VIEWPCT..corporation_id
50.746 - IS 'FLAGS=A-IU-^DATATYPE=STRING(20)^PROMPT=Corporation Id^';
50.747 -COMMENT ON COLUMN &VIEWPCT..member_id
50.748 - IS 'FLAGS=A-IU-^DATATYPE=STRING(20)^PROMPT=Member Id^';
50.749 -COMMENT ON COLUMN &VIEWPCT..send_reminder_to_payer
50.750 - IS 'FLAGS=A-IU-^DATATYPE=STRING(5)^PROMPT=Send Reminder To Payer^';
50.751 -COMMENT ON COLUMN &VIEWPCT..send_interest_inv_to_payer
50.752 - IS 'FLAGS=A-IU-^DATATYPE=STRING(5)^PROMPT=Send Interest Inv To Payer^';
50.753 -COMMENT ON COLUMN &VIEWPCT..payment_receipt_type_db
50.754 - IS 'FLAGS=A----^DATATYPE=STRING(20)^PROMPT=Payment Receipt^';
50.755 -COMMENT ON COLUMN &VIEWPCT..send_statement_of_acc_to_payer
50.756 - IS 'FLAGS=A-IU-^DATATYPE=STRING(5)^PROMPT=Send Statement Of Account To Payer^';
50.757 -
50.758 -
50.759 -PROMPT Creating &VIEW_PAYER_QRY view
50.760 --- Bug 69035, Begin, Added reminder_template_id,interest_template_id and their descriptions
50.761 -CREATE OR REPLACE FORCE VIEW &VIEW_PAYER_QRY AS
50.762 -SELECT p.company company,
50.763 - identity identity,
50.764 - Party_Type_API.Decode(party_type) party_type,
50.765 - party_type party_type_db,
50.766 - Customer_Info_API.Get_Name(identity) name,
50.767 - NVL(Ledger_Item_Util_API.Get_Payer_Dom_Balance(
50.768 - p.company,
50.769 - identity,
50.770 - Party_Type_API.Decode(party_type)), 0)
50.771 - balance,
50.772 - NVL(Ledger_Item_Util_API.Get_Payer_Adv_Inv_Dom_Balance(
50.773 - p.company,
50.774 - identity,
50.775 - Party_Type_API.Decode(party_type)), 0)
50.776 - payer_adv_inv_balance,
50.777 - NVL(Ledger_Item_Util_API.Get_Payer_Dom_Bal_of_other_cus(
50.778 - p.company,
50.779 - identity,
50.780 - Party_Type_API.Decode(party_type)), 0)
50.781 - other_cust_bal,
50.782 - NVL(Ledger_Item_Util_API.Get_Payer_Dom_Amount_Due(
50.783 - p.company,
50.784 - identity,
50.785 - Party_Type_API.Decode(party_type)), 0)
50.786 - amount_due,
50.787 - NVL(Ledger_Item_Util_API.Get_Payer_Dom_Pre_Pay_Bal(
50.788 - p.company,
50.789 - identity,
50.790 - Party_Type_API.Decode(party_type)), 0)
50.791 - pre_payment_balance,
50.792 - Identity_Note_API.Check_Note_Exist(p.company,
50.793 - p.identity,
50.794 - p.party_type)
50.795 - is_note,
50.796 - p.reminder_template reminder_template_id,
50.797 - Reminder_Template_Api.Get_Template_Description(p.company ,
50.798 - p.reminder_template)
50.799 - reminder_template_des,
50.800 - p.interest_template interest_template_id,
50.801 - Interest_Template_API.Get_Template_Description(p.company,
50.802 - p.interest_template)
50.803 - interest_template_des,
50.804 - p.&OBJID objid,
50.805 - &OBJVERSION objversion
50.806 -FROM identity_pay_info_tab p
50.807 -WHERE EXISTS (SELECT * FROM company_finance_auth1 c WHERE p.company = c.company)
50.808 -AND party_type = 'CUSTOMER'
50.809 -WITH read only;
50.810 -
50.811 -COMMENT ON TABLE &VIEW_PAYER_QRY
50.812 - IS 'LU=&LU^PROMPT=Identity Pay Info^MODULE=&MODULE^';
50.813 -
50.814 -COMMENT ON COLUMN &VIEW_PAYER_QRY..company
50.815 - IS 'FLAGS=PM---^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Company^REF=Company/NOCHECK^';
50.816 -COMMENT ON COLUMN &VIEW_PAYER_QRY..identity
50.817 - IS 'FLAGS=PM---^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Payer^';
50.818 -COMMENT ON COLUMN &VIEW_PAYER_QRY..party_type
50.819 - IS 'FLAGS=KM--L^DATATYPE=STRING(200)^PROMPT=Party Type^REF=PartyType^';
50.820 -COMMENT ON COLUMN &VIEW_PAYER_QRY..party_type_db
50.821 - IS 'FLAGS=A----^DATATYPE=STRING(20)^PROMPT=Party Type^';
50.822 -COMMENT ON COLUMN &VIEW_PAYER_QRY..name
50.823 - IS 'FLAGS=AM--L^DATATYPE=STRING(100)^PROMPT=Name^';
50.824 -COMMENT ON COLUMN &VIEW_PAYER_QRY..balance
50.825 - IS 'FLAGS=AM--L^DATATYPE=NUMBER^PROMPT=Payer Balance^';
50.826 -COMMENT ON COLUMN &VIEW_PAYER_QRY..payer_adv_inv_balance
50.827 - IS 'FLAGS=AM--L^DATATYPE=NUMBER^PROMPT=Payer Adv Inv Balance^';
50.828 -COMMENT ON COLUMN &VIEW_PAYER_QRY..other_cust_bal
50.829 - IS 'FLAGS=AM--L^DATATYPE=NUMBER^PROMPT=Other Customres Balance^';
50.830 -COMMENT ON COLUMN &VIEW_PAYER_QRY..amount_due
50.831 - IS 'FLAGS=AM--L^DATATYPE=NUMBER^PROMPT=Amount Due^';
50.832 -COMMENT ON COLUMN &VIEW_PAYER_QRY..pre_payment_balance
50.833 - IS 'FLAGS=AM--L^DATATYPE=NUMBER^PROMPT=Open Pre-Payments^';
50.834 -COMMENT ON COLUMN &VIEW_PAYER_QRY..is_note
50.835 - IS 'FLAGS=AM--L^DATATYPE=BOOLEAN^PROMPT=Notes^';
50.836 -COMMENT ON COLUMN &VIEW_PAYER_QRY..reminder_template_id
50.837 - IS 'FLAGS=AM--L^DATATYPE=STRING(20)^PROMPT=Reminder Template Id^';
50.838 -COMMENT ON COLUMN &VIEW_PAYER_QRY..reminder_template_des
50.839 - IS 'FLAGS=AM--L^DATATYPE=STRING(200)^PROMPT=Reminder Template Description^';
50.840 -COMMENT ON COLUMN &VIEW_PAYER_QRY..interest_template_id
50.841 - IS 'FLAGS=AM--L^DATATYPE=STRING(20)^PROMPT=Interest Template Id^';
50.842 -COMMENT ON COLUMN &VIEW_PAYER_QRY..interest_template_des
50.843 - IS 'FLAGS=AM--L^DATATYPE=STRING(200)^PROMPT=Interest Template Description^';
50.844 --- Bug 69035, End
50.845 -
50.846 -PROMPT Creating &VIEW_MULTI_CUS view
50.847 -
50.848 -CREATE OR REPLACE FORCE VIEW &VIEW_MULTI_CUS AS
50.849 -SELECT c.customer_id customer_id,
50.850 - c.name name,
50.851 - c.association_no association_no,
50.852 - c.customer_id identity,
50.853 - c.party_type party_type_db,
50.854 - c.rowid objid,
50.855 - LTRIM(LPAD(TO_CHAR(c.rowversion),2000)) objversion
50.856 -FROM customer_info_tab c
50.857 -WHERE EXISTS
50.858 - (SELECT 1
50.859 - FROM identity_pay_info_tab p,
50.860 - identity_invoice_info_tab i
50.861 - WHERE p.identity = c.customer_id
50.862 - AND p.party_type = 'CUSTOMER'
50.863 - AND EXISTS
50.864 - (SELECT * FROM company_finance_auth1 a WHERE p.company = a.company)
50.865 - AND i.company = p.company
50.866 - AND i.identity = p.identity
50.867 - AND i.party_type = p.party_type)
50.868 -WITH read only;
50.869 -
50.870 -COMMENT ON TABLE &VIEW_MULTI_CUS
50.871 - IS 'LU=&LU^PROMPT=Invoice Ledger Item^MODULE=&MODULE^';
50.872 -
50.873 -COMMENT ON COLUMN &VIEW_MULTI_CUS..customer_id
50.874 - IS 'FLAGS=KMI-L^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Customer Id^';
50.875 -COMMENT ON COLUMN &VIEW_MULTI_CUS..name
50.876 - IS 'FLAGS=AMIUL^DATATYPE=STRING(100)^PROMPT=Name^';
50.877 -COMMENT ON COLUMN &VIEW_MULTI_CUS..association_no
50.878 - IS 'FLAGS=A-IUL^DATATYPE=STRING(50)^PROMPT=Association No^';
50.879 -COMMENT ON COLUMN &VIEW_MULTI_CUS..identity
50.880 - IS 'FLAGS=A-IUL^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Identity^';
50.881 -COMMENT ON COLUMN &VIEW_MULTI_CUS..party_type_db
50.882 - IS 'FLAGS=A-IUL^DATATYPE=STRING(20)^PROMPT=Party Type^';
50.883 -
50.884 -
50.885 -PROMPT Creating &VIEW_MULTI_SUP VIEW
50.886 -
50.887 -CREATE OR REPLACE FORCE VIEW &VIEW_MULTI_SUP AS
50.888 -SELECT s.supplier_id supplier_id,
50.889 - s.name name,
50.890 - s.association_no association_no,
50.891 - s.suppliers_own_id suppliers_own_id,
50.892 - s.rowid objid,
50.893 - LTRIM(LPAD(TO_CHAR(s.rowversion),2000)) objversion
50.894 -FROM supplier_info_tab s
50.895 -WHERE EXISTS
50.896 - (SELECT 1
50.897 - FROM identity_pay_info_tab p,
50.898 - identity_invoice_info_tab i
50.899 - WHERE p.identity = s.supplier_id
50.900 - AND p.party_type = 'SUPPLIER'
50.901 - AND EXISTS
50.902 - (SELECT * FROM company_finance_auth1 a WHERE p.company = a.company)
50.903 - AND i.company = p.company
50.904 - AND i.identity = p.identity
50.905 - AND i.party_type = p.party_type)
50.906 -WITH read only;
50.907 -
50.908 -COMMENT ON TABLE &VIEW_MULTI_SUP
50.909 - IS 'LU=&LU^PROMPT=Invoice Ledger Item^MODULE=&MODULE^';
50.910 -
50.911 -COMMENT ON COLUMN &VIEW_MULTI_SUP..supplier_id
50.912 - IS 'FLAGS=KMI-L^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Supplier Id^';
50.913 -COMMENT ON COLUMN &VIEW_MULTI_SUP..name
50.914 - IS 'FLAGS=AMIUL^DATATYPE=STRING(100)^PROMPT=Name^';
50.915 -COMMENT ON COLUMN &VIEW_MULTI_SUP..association_no
50.916 - IS 'FLAGS=A-IUL^DATATYPE=STRING(50)^PROMPT=Association No^';
50.917 -COMMENT ON COLUMN &VIEW_MULTI_SUP..suppliers_own_id
50.918 - IS 'FLAGS=A-IUL^DATATYPE=STRING(20)^PROMPT=Suppliers Own Id^';
50.919 -
50.920 -
50.921 -PROMPT Creating &VIEW_MULTI_ADD VIEW
50.922 -CREATE OR REPLACE FORCE VIEW &VIEW_MULTI_ADD AS
50.923 -SELECT s.supplier_id supplier_id,
50.924 - s.address_id address_id,
50.925 - s.valid_from valid_from,
50.926 - s.valid_to valid_to
50.927 -FROM supplier_info_address_tab s
50.928 -WHERE EXISTS
50.929 - (SELECT 1
50.930 - FROM identity_pay_info_tab p,
50.931 - identity_invoice_info_tab i
50.932 - WHERE p.identity = s.supplier_id
50.933 - AND p.party_type = 'SUPPLIER'
50.934 - AND EXISTS
50.935 - (SELECT * FROM company_finance_auth1 a WHERE p.company = a.company)
50.936 - AND i.company = p.company
50.937 - AND i.identity = p.identity
50.938 - AND i.party_type = p.party_type)
50.939 -WITH read only;
50.940 -
50.941 -COMMENT ON TABLE &VIEW_MULTI_ADD
50.942 - IS 'LU=&LU^PROMPT=Invoice Ledger Item^MODULE=&MODULE^';
50.943 -
50.944 -COMMENT ON COLUMN &VIEW_MULTI_ADD..supplier_id
50.945 - IS 'FLAGS=PMI-L^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Supplier Id^';
50.946 -COMMENT ON COLUMN &VIEW_MULTI_ADD..address_id
50.947 - IS 'FLAGS=KMI-L^DATATYPE=STRING(50)/UPPERCASE^PROMPT=Address Id^';
50.948 -COMMENT ON COLUMN &VIEW_MULTI_ADD..valid_from
50.949 - IS 'FLAGS=A-IUL^DATATYPE=DATE/DATE^PROMPT=Valid From^';
50.950 -COMMENT ON COLUMN &VIEW_MULTI_ADD..valid_to
50.951 - IS 'FLAGS=A-IUL^DATATYPE=DATE/DATE^PROMPT=Valid To^';
50.952 -
50.953 ------------------------------------------------------------------------------
50.954 --------------------- PACKAGES FOR METHODS -----------------------------------
50.955 ------------------------------------------------------------------------------
50.956 -
50.957 -PROMPT Creating &PKG implementation
50.958 -
50.959 -CREATE OR REPLACE PACKAGE BODY &PKG IS
50.960 -
50.961 ------------------------------------------------------------------------------
50.962 --------------------- LU SPECIFIC IMPLEMENTATION METHOD DECLARATIONS ---------
50.963 ------------------------------------------------------------------------------
50.964 -PROCEDURE Save_Identity_Notes___ (
50.965 - attr_ IN VARCHAR2,
50.966 - newrec_ IN &TABLE%ROWTYPE );
50.967 -
50.968 -FUNCTION Get_Next_Format_No___ (
50.969 - company_ IN VARCHAR2 ) RETURN NUMBER;
50.970 -
50.971 -PROCEDURE Check_Cascade___ (
50.972 - company_ IN VARCHAR2,
50.973 - identity_ IN VARCHAR2,
50.974 - party_type_db_ IN VARCHAR2 );
50.975 -
50.976 -PROCEDURE Import___ (
50.977 - crecomp_rec_ IN ENTERP_COMP_CONNECT_V160_API.Crecomp_Lu_Public_Rec );
50.978 -
50.979 -PROCEDURE Copy___ (
50.980 - crecomp_rec_ IN ENTERP_COMP_CONNECT_V160_API.Crecomp_Lu_Public_Rec );
50.981 -
50.982 -PROCEDURE Export___ (
50.983 - crecomp_rec_ IN ENTERP_COMP_CONNECT_V160_API.Crecomp_Lu_Public_Rec );
50.984 -
50.985 -PROCEDURE User_Allowed___(
50.986 - company_ IN VARCHAR2);
50.987 -
50.988 -
50.989 -
50.990 -
50.991 -
50.992 ------------------------------------------------------------------------------
50.993 --------------------- IMPLEMENTATION BASE METHODS ----------------------------
50.994 ------------------------------------------------------------------------------
50.995 --- Lock_By_Id___
50.996 --- Client-support to lock a specific instance of the logical unit.
50.997 ---
50.998 --- Lock_By_Keys___
50.999 --- Server support to lock a specific instance of the logical unit.
50.1000 ---
50.1001 --- Get_Object_By_Id___
50.1002 --- Get LU-record from the database with a specified object identity.
50.1003 ---
50.1004 --- Get_Object_By_Keys___
50.1005 --- Get LU-record from the database with specified key columns.
50.1006 ---
50.1007 --- Check_Exist___
50.1008 --- Check if a specific LU-instance already exist in the database.
50.1009 ---
50.1010 --- Get_Id_Version_By_Keys___
50.1011 --- Get the current OBJID and OBJVERSION for a specific LU-instance.
50.1012 ------------------------------------------------------------------------------
50.1013 -
50.1014 -FUNCTION Lock_By_Id___ (
50.1015 - objid_ IN VARCHAR2,
50.1016 - objversion_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
50.1017 -IS
50.1018 - row_changed EXCEPTION;
50.1019 - row_deleted EXCEPTION;
50.1020 - row_locked EXCEPTION;
50.1021 - PRAGMA exception_init(row_locked, -0054);
50.1022 - rec_ &TABLE%ROWTYPE;
50.1023 - dummy_ NUMBER;
50.1024 - CURSOR lock_control IS
50.1025 - SELECT *
50.1026 - FROM &TABLE
50.1027 - WHERE &OBJID = objid_
50.1028 - AND &OBJVERSION = objversion_
50.1029 - FOR UPDATE NOWAIT;
50.1030 - CURSOR exist_control IS
50.1031 - SELECT 1
50.1032 - FROM &TABLE
50.1033 - WHERE &OBJID = objid_;
50.1034 -BEGIN
50.1035 - OPEN lock_control;
50.1036 - FETCH lock_control INTO rec_;
50.1037 - IF (lock_control%FOUND) THEN
50.1038 - CLOSE lock_control;
50.1039 - RETURN rec_;
50.1040 - END IF;
50.1041 - CLOSE lock_control;
50.1042 - OPEN exist_control;
50.1043 - FETCH exist_control INTO dummy_;
50.1044 - IF (exist_control%FOUND) THEN
50.1045 - CLOSE exist_control;
50.1046 - RAISE row_changed;
50.1047 - ELSE
50.1048 - CLOSE exist_control;
50.1049 - RAISE row_deleted;
50.1050 - END IF;
50.1051 -EXCEPTION
50.1052 - WHEN row_locked THEN
50.1053 - Error_SYS.Record_Locked(lu_name_);
50.1054 - WHEN row_changed THEN
50.1055 - Error_SYS.Record_Modified(lu_name_);
50.1056 - WHEN row_deleted THEN
50.1057 - Error_SYS.Record_Removed(lu_name_);
50.1058 -END Lock_By_Id___;
50.1059 -
50.1060 -FUNCTION Lock_By_Keys___ (
50.1061 - company_ IN VARCHAR2,
50.1062 - identity_ IN VARCHAR2,
50.1063 - party_type_db_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
50.1064 -IS
50.1065 - row_deleted EXCEPTION;
50.1066 - rec_ &TABLE%ROWTYPE;
50.1067 - CURSOR lock_control IS
50.1068 - SELECT *
50.1069 - FROM &TABLE
50.1070 - WHERE company = company_
50.1071 - AND identity = identity_
50.1072 - AND party_type = party_type_db_
50.1073 - FOR UPDATE;
50.1074 -BEGIN
50.1075 - OPEN lock_control;
50.1076 - FETCH lock_control INTO rec_;
50.1077 - IF (lock_control%FOUND) THEN
50.1078 - CLOSE lock_control;
50.1079 - RETURN rec_;
50.1080 - ELSE
50.1081 - CLOSE lock_control;
50.1082 - RAISE row_deleted;
50.1083 - END IF;
50.1084 -EXCEPTION
50.1085 - WHEN row_deleted THEN
50.1086 - Error_SYS.Record_Removed(lu_name_);
50.1087 -END Lock_By_Keys___;
50.1088 -
50.1089 -FUNCTION Get_Object_By_Id___ (
50.1090 - objid_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
50.1091 -IS
50.1092 - lu_rec_ &TABLE%ROWTYPE;
50.1093 - CURSOR getrec IS
50.1094 - SELECT *
50.1095 - FROM &TABLE
50.1096 - WHERE &OBJID = objid_;
50.1097 -BEGIN
50.1098 - OPEN getrec;
50.1099 - FETCH getrec INTO lu_rec_;
50.1100 - IF (getrec%NOTFOUND) THEN
50.1101 - CLOSE getrec;
50.1102 - Error_SYS.Record_Removed(lu_name_);
50.1103 - END IF;
50.1104 - CLOSE getrec;
50.1105 - RETURN(lu_rec_);
50.1106 -END Get_Object_By_Id___;
50.1107 -
50.1108 -FUNCTION Get_Object_By_Keys___ (
50.1109 - company_ IN VARCHAR2,
50.1110 - identity_ IN VARCHAR2,
50.1111 - party_type_db_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
50.1112 -IS
50.1113 - lu_rec_ &TABLE%ROWTYPE;
50.1114 - CURSOR getrec IS
50.1115 - SELECT *
50.1116 - FROM &TABLE
50.1117 - WHERE company = company_
50.1118 - AND identity = identity_
50.1119 - AND party_type = party_type_db_;
50.1120 -BEGIN
50.1121 - OPEN getrec;
50.1122 - FETCH getrec INTO lu_rec_;
50.1123 - CLOSE getrec;
50.1124 - RETURN(lu_rec_);
50.1125 -END Get_Object_By_Keys___;
50.1126 -
50.1127 -FUNCTION Check_Exist___ (
50.1128 - company_ IN VARCHAR2,
50.1129 - identity_ IN VARCHAR2,
50.1130 - party_type_db_ IN VARCHAR2 ) RETURN BOOLEAN
50.1131 -IS
50.1132 - dummy_ NUMBER;
50.1133 - CURSOR exist_control IS
50.1134 - SELECT 1
50.1135 - FROM &TABLE
50.1136 - WHERE company = company_
50.1137 - AND identity = identity_
50.1138 - AND party_type = party_type_db_;
50.1139 -BEGIN
50.1140 - OPEN exist_control;
50.1141 - FETCH exist_control INTO dummy_;
50.1142 - IF (exist_control%FOUND) THEN
50.1143 - CLOSE exist_control;
50.1144 - RETURN(TRUE);
50.1145 - END IF;
50.1146 - CLOSE exist_control;
50.1147 - RETURN(FALSE);
50.1148 -END Check_Exist___;
50.1149 -
50.1150 -PROCEDURE Get_Id_Version_By_Keys___ (
50.1151 - objid_ IN OUT VARCHAR2,
50.1152 - objversion_ IN OUT VARCHAR2,
50.1153 - company_ IN VARCHAR2,
50.1154 - identity_ IN VARCHAR2,
50.1155 - party_type_db_ IN VARCHAR2)
50.1156 -IS
50.1157 - CURSOR get_version IS
50.1158 - SELECT &OBJID, &OBJVERSION
50.1159 - FROM &TABLE
50.1160 - WHERE company = company_
50.1161 - AND identity = identity_
50.1162 - AND party_type = party_type_db_;
50.1163 -BEGIN
50.1164 - OPEN get_version;
50.1165 - FETCH get_version INTO objid_, objversion_;
50.1166 - CLOSE get_version;
50.1167 -END Get_Id_Version_By_Keys___;
50.1168 -
50.1169 ------------------------------------------------------------------------------
50.1170 --------------------- IMPLEMENTATION BASE METHODS FOR INSERT -----------------
50.1171 ------------------------------------------------------------------------------
50.1172 --- Prepare_Insert___
50.1173 --- Set all default values for a new instance (ON-NEW-RECORD) of this
50.1174 --- logical unit by calling procedure Add_Attr.
50.1175 ---
50.1176 --- Unpack_Check_Insert___
50.1177 --- Unpack the attribute list, check all attributes from the client
50.1178 --- and generate all default values before creation of the new object.
50.1179 ---
50.1180 --- Insert___
50.1181 --- Insert a new LU-instance into the database and return the values
50.1182 --- for OBJID and OBJVERSION.
50.1183 ------------------------------------------------------------------------------
50.1184 -
50.1185 -PROCEDURE Prepare_Insert___ (
50.1186 - attr_ IN OUT VARCHAR2 )
50.1187 -IS
50.1188 - company_ &TABLE..company%TYPE;
50.1189 - identity_ &TABLE..identity%TYPE;
50.1190 - party_type_ &VIEW..party_type%TYPE;
50.1191 - template_id_ &VIEW..template_id%TYPE;
50.1192 -BEGIN
50.1193 -
50.1194 - company_ := Client_SYS.Get_Item_Value('COMPANY',attr_);
50.1195 - identity_ := Client_SYS.Get_Item_Value('IDENTITY',attr_);
50.1196 - party_type_ := Client_SYS.Get_Item_Value('PARTY_TYPE',attr_);
50.1197 - template_id_ := Confirmation_Stmnt_Templ_API.Get_Default_Template(company_);
50.1198 -
50.1199 - Client_SYS.Clear_Attr(attr_);
50.1200 -
50.1201 --- Default value 'No Advice'
50.1202 - Client_SYS.Add_To_Attr('PAYMENT_ADVICE', PAYMENT_ADVICE_API.DECODE('1'),attr_);
50.1203 -
50.1204 - IF (party_type_ = Party_Type_API.Decode('CUSTOMER')) THEN
50.1205 - Client_SYS.Add_To_Attr('REMINDER_TEMPLATE', Reminder_Template_API.Get_Default_Template(company_), attr_);
50.1206 - Client_SYS.Add_To_Attr('SEND_REMINDER_TO_PAYER', 'FALSE', attr_);
50.1207 - Client_SYS.Add_To_Attr('SEND_INTEREST_INV_TO_PAYER', 'FALSE', attr_);
50.1208 - Client_SYS.Add_To_Attr('PAYMENT_RECEIPT_TYPE', Payment_Receipt_Type_API.Decode('NO_RECEIPT'), attr_);
50.1209 - ELSIF (party_type_ = Party_Type_API.Decode('SUPPLIER') ) THEN
50.1210 - Client_SYS.Add_To_Attr('BLOCKED_FOR_PAYMENT', 'FALSE', attr_);
50.1211 - Client_SYS.Add_To_Attr('CHECK_RECIPIENT', Check_Recipient_API.Decode('PAYEE'), attr_);
50.1212 - END IF;
50.1213 - Client_SYS.Add_To_Attr('INTEREST_TEMPLATE', Interest_Template_API.Get_Default_Template(company_), attr_);
50.1214 - Client_SYS.Add_To_Attr('NETTING_ALLOWED', 'FALSE', attr_);
50.1215 - Client_SYS.Add_To_Attr('TEMPLATE_ID', template_id_, attr_);
50.1216 - Client_SYS.Add_To_Attr('SEND_STATEMENT_OF_ACC_TO_PAYER', 'FALSE', attr_);
50.1217 -END Prepare_Insert___;
50.1218 -
50.1219 -
50.1220 -PROCEDURE Unpack_Check_Insert___ (
50.1221 - attr_ IN OUT VARCHAR2,
50.1222 - newrec_ IN OUT &TABLE%ROWTYPE )
50.1223 -IS
50.1224 - ptr_ NUMBER;
50.1225 - name_ VARCHAR2(30);
50.1226 - value_ VARCHAR2(2000);
50.1227 -BEGIN
50.1228 - ptr_ := NULL;
50.1229 - WHILE (Client_SYS.Get_Next_From_Attr(attr_, ptr_, name_, value_)) LOOP
50.1230 - IF (name_ = 'COMPANY') THEN
50.1231 - newrec_.company := value_;
50.1232 - Company_API.Exist(newrec_.company);
50.1233 - User_Allowed___(newrec_.company);
50.1234 - ELSIF (name_ = 'IDENTITY') THEN
50.1235 - newrec_.identity := value_;
50.1236 - ELSIF (name_ = 'PARTY_TYPE') THEN
50.1237 - newrec_.party_type := Party_Type_API.Encode(value_);
50.1238 - Payment_Library_API.Exist_In_Enterp(newrec_.company, newrec_.identity, value_);
50.1239 - IF (newrec_.party_type <> 'COMPANY') THEN
50.1240 - Identity_Invoice_Info_API.Exist(newrec_.company, newrec_.identity, value_);
50.1241 - END IF;
50.1242 - ELSIF (name_ = 'PARTY_TYPE_DB') THEN
50.1243 - newrec_.party_type := value_;
50.1244 - Payment_Library_API.Exist_In_Enterp(newrec_.company, newrec_.identity, Party_Type_API.Decode(newrec_.party_type));
50.1245 - IF (newrec_.party_type <> Party_Type_API.Decode('COMPANY')) THEN
50.1246 - Identity_Invoice_Info_API.Exist_Db(newrec_.company, newrec_.identity, value_);
50.1247 - END IF;
50.1248 - ELSIF (name_ = 'PRIORITY') THEN
50.1249 - newrec_.priority := Client_SYS.Attr_Value_To_Number(value_);
50.1250 - ELSIF (name_ = 'BLOCKED_FOR_PAYMENT') THEN
50.1251 - newrec_.blocked_for_payment := value_;
50.1252 - IF (value_ IS NOT NULL AND newrec_.blocked_for_payment NOT IN ('TRUE', 'FALSE')) THEN
50.1253 - RAISE value_error;
50.1254 - END IF;
50.1255 - ELSIF (name_ = 'OTHER_PAYEE_IDENTITY') THEN
50.1256 - newrec_.other_payee_identity := value_;
50.1257 - IF (value_ IS NOT NULL) THEN
50.1258 - Identity_Pay_Info_API.Exist(newrec_.company, newrec_.other_payee_identity, Party_Type_API.Decode(newrec_.party_type));
50.1259 - END IF;
50.1260 - ELSIF (name_ = 'INTEREST_TEMPLATE') THEN
50.1261 - newrec_.interest_template := value_;
50.1262 - IF (value_ IS NOT NULL) THEN
50.1263 - Interest_Template_API.Exist(newrec_.company, newrec_.interest_template);
50.1264 - END IF;
50.1265 - ELSIF (name_ = 'REMINDER_TEMPLATE') THEN
50.1266 - newrec_.reminder_template := value_;
50.1267 - IF (value_ IS NOT NULL) THEN
50.1268 - Reminder_Template_API.Exist(newrec_.company, newrec_.reminder_template);
50.1269 - END IF;
50.1270 - ELSIF (name_ = 'PAYMENT_DELAY') THEN
50.1271 - newrec_.payment_delay := Client_SYS.Attr_Value_To_Number(value_);
50.1272 - IF (TRUNC(newrec_.payment_delay) <> newrec_.payment_delay) THEN
50.1273 - Error_SYS.Record_General(lu_name_, 'NOTWHOLENUM: A whole number must be specified for the payment delay.');
50.1274 - END IF;
50.1275 - ELSIF (name_ = 'AMOUNT_TOLERANCE') THEN
50.1276 - newrec_.amount_tolerance := Client_SYS.Attr_Value_To_Number(value_);
50.1277 - ELSIF (name_ = 'PERCENT_TOLERANCE') THEN
50.1278 - newrec_.percent_tolerance := Client_SYS.Attr_Value_To_Number(value_);
50.1279 - ELSIF (name_ = 'DISC_DAYS_TOLERANCE') THEN
50.1280 - newrec_.disc_days_tolerance := Client_SYS.Attr_Value_To_Number(value_);
50.1281 - ELSIF (name_ = 'NETTING_ALLOWED') THEN
50.1282 - newrec_.netting_allowed := value_;
50.1283 - IF (newrec_.netting_allowed NOT IN ('TRUE', 'FALSE')) THEN
50.1284 - RAISE value_error;
50.1285 - END IF;
50.1286 - ELSIF (name_ = 'FORMAT_NO') THEN
50.1287 - newrec_.format_no := Client_SYS.Attr_Value_To_Number(value_);
50.1288 - ELSIF (name_ = 'PAYMENT_ADVICE') THEN
50.1289 - newrec_.payment_advice := Payment_Advice_API.Encode(value_);
50.1290 - IF (value_ IS NOT NULL) THEN
50.1291 - Payment_Advice_API.Exist(value_);
50.1292 - END IF;
50.1293 - ELSIF (name_ = 'PAYMENT_ADVICE_DB') THEN
50.1294 - newrec_.payment_advice := value_;
50.1295 - IF (value_ IS NOT NULL) THEN
50.1296 - Payment_Advice_API.Exist_Db(value_);
50.1297 - END IF;
50.1298 - ELSIF (name_ = 'DEDUCTION_GROUP') THEN
50.1299 - newrec_.deduction_group := value_;
50.1300 - IF (value_ IS NOT NULL) THEN
50.1301 - Deduction_Group_API.Exist(newrec_.company, newrec_.deduction_group);
50.1302 - END IF;
50.1303 - ELSIF (name_ = 'CORPORATION_ID') THEN
50.1304 - newrec_.corporation_id := value_;
50.1305 - ELSIF (name_ = 'MEMBER_ID') THEN
50.1306 - newrec_.member_id := value_;
50.1307 - ELSIF (name_ = 'SEND_REMINDER_TO_PAYER') THEN
50.1308 - newrec_.send_reminder_to_payer := value_;
50.1309 - ELSIF (name_ = 'SEND_INTEREST_INV_TO_PAYER') THEN
50.1310 - newrec_.send_interest_inv_to_payer := value_;
50.1311 - ELSIF (name_ = 'RULE_ID') THEN
50.1312 - newrec_.rule_id := value_;
50.1313 - IF (value_ IS NOT NULL) THEN
50.1314 - Pay_Method_Rule_API.Exist(newrec_.company, newrec_.rule_id);
50.1315 - END IF;
50.1316 - ELSIF (name_ = 'PAYMENT_RECEIPT_TYPE') THEN
50.1317 - newrec_.payment_receipt_type := Payment_Receipt_Type_API.Encode(value_);
50.1318 - IF (value_ IS NOT NULL) THEN
50.1319 - Payment_Receipt_Type_API.Exist(value_);
50.1320 - END IF;
50.1321 - ELSIF (name_ = 'PAYMENT_RECEIPT_TYPE_DB') THEN
50.1322 - newrec_.payment_receipt_type := value_;
50.1323 - IF (value_ IS NOT NULL) THEN
50.1324 - Payment_Receipt_Type_API.Exist_Db(value_);
50.1325 - END IF;
50.1326 - ELSIF (name_ = 'TEMPLATE_ID') THEN
50.1327 - newrec_.template_id := value_;
50.1328 - IF (value_ IS NOT NULL) THEN
50.1329 - Confirmation_Stmnt_Templ_API.Exist(newrec_.company, newrec_.template_id);
50.1330 - END IF;
50.1331 - ELSIF (name_ = 'CHECK_RECIPIENT') THEN
50.1332 - newrec_.check_recipient := Check_Recipient_API.Encode(value_);
50.1333 - IF (value_ IS NOT NULL) THEN
50.1334 - Check_Recipient_API.Exist(value_);
50.1335 - END IF;
50.1336 - ELSIF (name_ = 'CHECK_RECIPIENT_DB') THEN
50.1337 - newrec_.check_recipient := value_;
50.1338 - IF (value_ IS NOT NULL) THEN
50.1339 - Check_Recipient_API.Exist_Db(value_);
50.1340 - END IF;
50.1341 - ELSIF (name_ = 'SEND_STATEMENT_OF_ACC_TO_PAYER') THEN
50.1342 - newrec_.send_statement_of_acc_to_payer := value_;
50.1343 - ELSE
50.1344 - Error_SYS.Item_Not_Exist(lu_name_, name_, value_);
50.1345 - END IF;
50.1346 - END LOOP;
50.1347 -
50.1348 -
50.1349 - IF (newrec_.amount_tolerance < 0) OR (newrec_.percent_tolerance < 0) OR (newrec_.disc_days_tolerance < 0) THEN
50.1350 - Error_SYS.Appl_General(lu_name_, 'NEGTOLERANCE: Tolerance should be positive value.');
50.1351 - END IF;
50.1352 -
50.1353 -
50.1354 - Client_SYS.Clear_Attr(attr_);
50.1355 -
50.1356 - Error_SYS.Check_Not_Null(lu_name_, 'COMPANY', newrec_.company);
50.1357 - Error_SYS.Check_Not_Null(lu_name_, 'IDENTITY', newrec_.identity);
50.1358 - Error_SYS.Check_Not_Null(lu_name_, 'PARTY_TYPE', newrec_.party_type);
50.1359 - Error_SYS.Check_Not_Null(lu_name_, 'NETTING_ALLOWED', newrec_.netting_allowed);
50.1360 -
50.1361 - IF (newrec_.interest_template IS NULL) THEN
50.1362 - newrec_.interest_template := Interest_Template_API.Get_Default_Template(newrec_.company);
50.1363 - END IF;
50.1364 -
50.1365 - IF (newrec_.party_type = 'SUPPLIER') THEN
50.1366 - Error_SYS.Check_Not_Null(lu_name_, 'PRIORITY', newrec_.priority);
50.1367 - Error_SYS.Check_Not_Null(lu_name_, 'BLOCKED_FOR_PAYMENT', newrec_.blocked_for_payment);
50.1368 - Error_SYS.Check_Not_Null(lu_name_, 'CHECK_RECIPIENT', newrec_.check_recipient);
50.1369 - END IF;
50.1370 - IF (newrec_.party_type = 'CUSTOMER') THEN
50.1371 - Error_SYS.Check_Not_Null(lu_name_, 'INTEREST_TEMPLATE', newrec_.interest_template);
50.1372 - Error_SYS.Check_Not_Null(lu_name_, 'REMINDER_TEMPLATE', newrec_.reminder_template);
50.1373 - Error_SYS.Check_Not_Null(lu_name_, 'PAYMENT_RECEIPT_TYPE', newrec_.payment_receipt_type);
50.1374 - IF Company_Invoice_Info_API.Get_Use_Tax_Invoice(newrec_.company)='TRUE' AND newrec_.payment_receipt_type != 'AT_MATCHING' THEN
50.1375 - Error_SYS.Record_General(lu_name_, 'WRONGPAYRECTYPE: Only Receipt At Matching is allowed when Tax Invoice for company is used.');
50.1376 - END IF;
50.1377 - END IF;
50.1378 -
50.1379 - Error_SYS.Check_Not_Null(lu_name_, 'IDENTITY', newrec_.identity);
50.1380 -
50.1381 - IF (newrec_.identity = newrec_.other_payee_identity) THEN
50.1382 - Error_SYS.Record_General(lu_name_, 'SAMEPARTY: Other Payee cannot refer to itself.');
50.1383 - END IF;
50.1384 -
50.1385 -EXCEPTION
50.1386 - WHEN value_error THEN
50.1387 - Error_SYS.Item_Format(lu_name_, name_, value_);
50.1388 -END Unpack_Check_Insert___;
50.1389 -
50.1390 -
50.1391 -PROCEDURE Insert___ (
50.1392 - objid_ OUT VARCHAR2,
50.1393 - objversion_ OUT VARCHAR2,
50.1394 - newrec_ IN OUT &TABLE%ROWTYPE,
50.1395 - attr_ IN OUT VARCHAR2 )
50.1396 -IS
50.1397 - CURSOR get_objid IS
50.1398 - SELECT &OBJID
50.1399 - FROM &TABLE
50.1400 - WHERE company = newrec_.company
50.1401 - AND identity = newrec_.identity
50.1402 - AND party_type = newrec_.party_type;
50.1403 -BEGIN
50.1404 - newrec_.format_no := Get_Next_Format_No___ (newrec_.company);
50.1405 - newrec_.rowversion := 1;
50.1406 - objversion_ := to_char(newrec_.rowversion);
50.1407 - INSERT
50.1408 - INTO identity_pay_info_tab (
50.1409 - company,
50.1410 - identity,
50.1411 - party_type,
50.1412 - priority,
50.1413 - blocked_for_payment,
50.1414 - other_payee_identity,
50.1415 - interest_template,
50.1416 - reminder_template,
50.1417 - payment_delay,
50.1418 - amount_tolerance,
50.1419 - percent_tolerance,
50.1420 - disc_days_tolerance,
50.1421 - netting_allowed,
50.1422 - format_no,
50.1423 - payment_advice,
50.1424 - deduction_group,
50.1425 - corporation_id,
50.1426 - member_id,
50.1427 - send_reminder_to_payer,
50.1428 - send_interest_inv_to_payer,
50.1429 - rule_id,
50.1430 - next_payment_matching_id,
50.1431 - payment_receipt_type,
50.1432 - template_id,
50.1433 - check_recipient,
50.1434 - send_statement_of_acc_to_payer,
50.1435 - rowversion)
50.1436 - VALUES (
50.1437 - newrec_.company,
50.1438 - newrec_.identity,
50.1439 - newrec_.party_type,
50.1440 - newrec_.priority,
50.1441 - newrec_.blocked_for_payment,
50.1442 - newrec_.other_payee_identity,
50.1443 - newrec_.interest_template,
50.1444 - newrec_.reminder_template,
50.1445 - newrec_.payment_delay,
50.1446 - newrec_.amount_tolerance,
50.1447 - newrec_.percent_tolerance,
50.1448 - newrec_.disc_days_tolerance,
50.1449 - newrec_.netting_allowed,
50.1450 - newrec_.format_no,
50.1451 - newrec_.payment_advice,
50.1452 - newrec_.deduction_group,
50.1453 - newrec_.corporation_id,
50.1454 - newrec_.member_id,
50.1455 - newrec_.send_reminder_to_payer,
50.1456 - newrec_.send_interest_inv_to_payer,
50.1457 - newrec_.rule_id,
50.1458 - 0,
50.1459 - newrec_.payment_receipt_type,
50.1460 - newrec_.template_id,
50.1461 - newrec_.check_recipient,
50.1462 - newrec_.send_statement_of_acc_to_payer,
50.1463 - newrec_.rowversion)
50.1464 - RETURNING &OBJID INTO objid_;
50.1465 -EXCEPTION
50.1466 - WHEN dup_val_on_index THEN
50.1467 - Error_SYS.Record_General(lu_name_, 'PARTYTYPEIDNOTEXIST: :P1 already exists in the Payment module.',
50.1468 - Party_Type_API.Decode(newrec_.party_type));
50.1469 -END Insert___;
50.1470 -
50.1471 ------------------------------------------------------------------------------
50.1472 --------------------- IMPLEMENTATION BASE METHODS FOR UPDATE -----------------
50.1473 ------------------------------------------------------------------------------
50.1474 --- Unpack_Check_Update___
50.1475 --- Unpack the attribute list, check all attributes from the client
50.1476 --- and generate all default values before modifying the object.
50.1477 ---
50.1478 --- Update___
50.1479 --- Update an existing LU-instance in the database and return the
50.1480 --- the new OBJVERSION.
50.1481 ------------------------------------------------------------------------------
50.1482 -
50.1483 -PROCEDURE Unpack_Check_Update___ (
50.1484 - attr_ IN OUT VARCHAR2,
50.1485 - newrec_ IN OUT &TABLE%ROWTYPE,
50.1486 - objid_ IN VARCHAR2 )
50.1487 -IS
50.1488 - ptr_ NUMBER;
50.1489 - name_ VARCHAR2(30);
50.1490 - value_ VARCHAR2(2000);
50.1491 -BEGIN
50.1492 - ptr_ := NULL;
50.1493 - WHILE (Client_SYS.Get_Next_From_Attr(attr_, ptr_, name_, value_)) LOOP
50.1494 - IF (name_ = 'COMPANY') THEN
50.1495 - Error_SYS.Item_Update(lu_name_, 'COMPANY');
50.1496 - ELSIF (name_ = 'IDENTITY') THEN
50.1497 - Error_SYS.Item_Update(lu_name_, 'IDENTITY');
50.1498 - ELSIF (name_ = 'PARTY_TYPE') THEN
50.1499 - Error_SYS.Item_Update(lu_name_, 'PARTY_TYPE');
50.1500 - ELSIF (name_ = 'PARTY_TYPE_DB') THEN
50.1501 - Error_SYS.Item_Update(lu_name_, 'PARTY_TYPE');
50.1502 - ELSIF (name_ = 'PRIORITY') THEN
50.1503 - newrec_.priority := Client_SYS.Attr_Value_To_Number(value_);
50.1504 - ELSIF (name_ = 'BLOCKED_FOR_PAYMENT') THEN
50.1505 - newrec_.blocked_for_payment := value_;
50.1506 - IF (value_ IS NOT NULL AND newrec_.blocked_for_payment NOT IN ('TRUE', 'FALSE')) THEN
50.1507 - RAISE value_error;
50.1508 - END IF;
50.1509 - ELSIF (name_ = 'OTHER_PAYEE_IDENTITY') THEN
50.1510 - newrec_.other_payee_identity := value_;
50.1511 - IF (value_ IS NOT NULL) THEN
50.1512 - Identity_Pay_Info_API.Exist(newrec_.company, newrec_.other_payee_identity ,Party_Type_API.Decode(newrec_.party_type));
50.1513 - END IF;
50.1514 - ELSIF (name_ = 'INTEREST_TEMPLATE') THEN
50.1515 - newrec_.interest_template := value_;
50.1516 - IF (value_ IS NOT NULL) THEN
50.1517 - Interest_Template_API.Exist(newrec_.company, newrec_.interest_template);
50.1518 - END IF;
50.1519 - ELSIF (name_ = 'REMINDER_TEMPLATE') THEN
50.1520 - newrec_.reminder_template := value_;
50.1521 - IF (value_ IS NOT NULL) THEN
50.1522 - Reminder_Template_API.Exist(newrec_.company, newrec_.reminder_template);
50.1523 - END IF;
50.1524 - ELSIF (name_ = 'PAYMENT_DELAY') THEN
50.1525 - newrec_.payment_delay := Client_SYS.Attr_Value_To_Number(value_);
50.1526 - IF (TRUNC(newrec_.payment_delay) <> newrec_.payment_delay) THEN
50.1527 - Error_SYS.Record_General(lu_name_, 'NOTWHOLENUM: A whole number must be specified for the payment delay.');
50.1528 - END IF;
50.1529 - ELSIF (name_ = 'AMOUNT_TOLERANCE') THEN
50.1530 - newrec_.amount_tolerance := Client_SYS.Attr_Value_To_Number(value_);
50.1531 - ELSIF (name_ = 'PERCENT_TOLERANCE') THEN
50.1532 - newrec_.percent_tolerance := Client_SYS.Attr_Value_To_Number(value_);
50.1533 - ELSIF (name_ = 'DISC_DAYS_TOLERANCE') THEN
50.1534 - newrec_.disc_days_tolerance := Client_SYS.Attr_Value_To_Number(value_);
50.1535 - ELSIF (name_ = 'NETTING_ALLOWED') THEN
50.1536 - newrec_.netting_allowed := value_;
50.1537 - IF (newrec_.netting_allowed NOT IN ('TRUE', 'FALSE')) THEN
50.1538 - RAISE value_error;
50.1539 - END IF;
50.1540 - ELSIF (name_ = 'FORMAT_NO') THEN
50.1541 - Error_SYS.Item_Update(lu_name_, 'FORMAT_NO');
50.1542 - ELSIF (name_ = 'PAYMENT_ADVICE') THEN
50.1543 - newrec_.payment_advice := Payment_Advice_API.Encode(value_);
50.1544 - IF (value_ IS NOT NULL) THEN
50.1545 - Payment_Advice_API.Exist(value_);
50.1546 - END IF;
50.1547 - ELSIF (name_ = 'PAYMENT_ADVICE_DB') THEN
50.1548 - newrec_.payment_advice := value_;
50.1549 - IF (value_ IS NOT NULL) THEN
50.1550 - Payment_Advice_API.Exist_Db(value_);
50.1551 - END IF;
50.1552 - ELSIF (name_ = 'DEDUCTION_GROUP') THEN
50.1553 - newrec_.deduction_group := value_;
50.1554 - IF (value_ IS NOT NULL) THEN
50.1555 - Deduction_Group_API.Exist(newrec_.company, newrec_.deduction_group);
50.1556 - END IF;
50.1557 - ELSIF (name_ = 'CORPORATION_ID') THEN
50.1558 - newrec_.corporation_id := value_;
50.1559 - ELSIF (name_ = 'MEMBER_ID') THEN
50.1560 - newrec_.member_id := value_;
50.1561 - ELSIF (name_ = 'SEND_REMINDER_TO_PAYER') THEN
50.1562 - newrec_.send_reminder_to_payer := value_;
50.1563 - ELSIF (name_ = 'SEND_INTEREST_INV_TO_PAYER') THEN
50.1564 - newrec_.send_interest_inv_to_payer := value_;
50.1565 - ELSIF (name_ = 'NOTE') THEN
50.1566 - NULL;
50.1567 - ELSIF (name_ = 'NOTE_UPDATE') THEN
50.1568 - NULL;
50.1569 - ELSIF (name_ = 'RULE_ID') THEN
50.1570 - newrec_.rule_id := value_;
50.1571 - IF (value_ IS NOT NULL) THEN
50.1572 - Pay_Method_Rule_API.Exist(newrec_.company, newrec_.rule_id);
50.1573 - END IF;
50.1574 - ELSIF (name_ = 'PAYMENT_RECEIPT_TYPE') THEN
50.1575 - newrec_.payment_receipt_type := Payment_Receipt_Type_API.Encode(value_);
50.1576 - IF (value_ IS NOT NULL) THEN
50.1577 - Payment_Receipt_Type_API.Exist(value_);
50.1578 - END IF;
50.1579 - ELSIF (name_ = 'PAYMENT_RECEIPT_TYPE_DB') THEN
50.1580 - newrec_.payment_receipt_type := value_;
50.1581 - IF (value_ IS NOT NULL) THEN
50.1582 - Payment_Receipt_Type_API.Exist_Db(value_);
50.1583 - END IF;
50.1584 - ELSIF (name_ = 'TEMPLATE_ID') THEN
50.1585 - newrec_.template_id := value_;
50.1586 - IF (value_ IS NOT NULL) THEN
50.1587 - Confirmation_Stmnt_Templ_API.Exist(newrec_.company, newrec_.template_id);
50.1588 - END IF;
50.1589 - ELSIF (name_ = 'CHECK_RECIPIENT') THEN
50.1590 - newrec_.check_recipient := Check_Recipient_API.Encode(value_);
50.1591 - IF (value_ IS NOT NULL) THEN
50.1592 - Check_Recipient_API.Exist(value_);
50.1593 - END IF;
50.1594 - ELSIF (name_ = 'CHECK_RECIPIENT_DB') THEN
50.1595 - newrec_.check_recipient := value_;
50.1596 - IF (value_ IS NOT NULL) THEN
50.1597 - Check_Recipient_API.Exist_Db(value_);
50.1598 - END IF;
50.1599 - ELSIF (name_ = 'SEND_STATEMENT_OF_ACC_TO_PAYER') THEN
50.1600 - newrec_.send_statement_of_acc_to_payer := value_;
50.1601 - ELSE
50.1602 - Error_SYS.Item_Not_Exist(lu_name_, name_, value_);
50.1603 - END IF;
50.1604 - END LOOP;
50.1605 -
50.1606 -
50.1607 - IF (newrec_.amount_tolerance < 0) OR (newrec_.percent_tolerance < 0) OR (newrec_.disc_days_tolerance < 0) THEN
50.1608 - Error_SYS.Appl_General(lu_name_, 'NEGTOLERANCE: Tolerance should be positive value.');
50.1609 - END IF;
50.1610 -
50.1611 - Client_SYS.Clear_Attr(attr_);
50.1612 -
50.1613 - Error_SYS.Check_Not_Null(lu_name_, 'NETTING_ALLOWED', newrec_.netting_allowed);
50.1614 - IF (newrec_.interest_template IS NULL) THEN
50.1615 - newrec_.interest_template := Interest_Template_API.Get_Default_Template(newrec_.company);
50.1616 - END IF;
50.1617 -
50.1618 - IF (newrec_.party_type = 'SUPPLIER') THEN
50.1619 - Error_SYS.Check_Not_Null(lu_name_, 'PRIORITY', newrec_.priority);
50.1620 - Error_SYS.Check_Not_Null(lu_name_, 'BLOCKED_FOR_PAYMENT', newrec_.blocked_for_payment);
50.1621 - Error_SYS.Check_Not_Null(lu_name_, 'CHECK_RECIPIENT', newrec_.check_recipient);
50.1622 - END IF;
50.1623 - IF (newrec_.party_type = 'CUSTOMER') THEN
50.1624 - Error_SYS.Check_Not_Null(lu_name_, 'INTEREST_TEMPLATE', newrec_.interest_template);
50.1625 - Error_SYS.Check_Not_Null(lu_name_, 'REMINDER_TEMPLATE', newrec_.reminder_template);
50.1626 - Error_SYS.Check_Not_Null(lu_name_, 'PAYMENT_RECEIPT_TYPE', newrec_.payment_receipt_type);
50.1627 - IF Company_Invoice_Info_API.Get_Use_Tax_Invoice(newrec_.company)='TRUE' AND newrec_.payment_receipt_type != 'AT_MATCHING' THEN
50.1628 - Error_SYS.Record_General(lu_name_, 'WRONGPAYRECTYPE: Only Receipt At Matching is allowed when Tax Invoice for company is used.');
50.1629 - END IF;
50.1630 - END IF;
50.1631 - IF (newrec_.identity = newrec_.other_payee_identity) THEN
50.1632 - Error_SYS.Record_General(lu_name_, 'SAMEPARTY: Other Payee cannot refer to itself.');
50.1633 - END IF;
50.1634 -EXCEPTION
50.1635 - WHEN value_error THEN
50.1636 - Error_SYS.Item_Format(lu_name_, name_, value_);
50.1637 -END Unpack_Check_Update___;
50.1638 -
50.1639 -
50.1640 -PROCEDURE Update___ (
50.1641 - objid_ IN VARCHAR2,
50.1642 - oldrec_ IN &TABLE%ROWTYPE,
50.1643 - newrec_ IN OUT &TABLE%ROWTYPE,
50.1644 - attr_ IN OUT VARCHAR2,
50.1645 - objversion_ IN OUT VARCHAR2,
50.1646 - by_keys_ IN BOOLEAN DEFAULT FALSE )
50.1647 -IS
50.1648 -BEGIN
50.1649 - newrec_.rowversion := newrec_.rowversion + 1;
50.1650 - objversion_ := to_char(newrec_.rowversion);
50.1651 - IF by_keys_ THEN
50.1652 - UPDATE identity_pay_info_tab
50.1653 - SET company = newrec_.company,
50.1654 - identity = newrec_.identity,
50.1655 - party_type = newrec_.party_type,
50.1656 - priority = newrec_.priority,
50.1657 - blocked_for_payment = newrec_.blocked_for_payment,
50.1658 - other_payee_identity = newrec_.other_payee_identity,
50.1659 - interest_template = newrec_.interest_template,
50.1660 - reminder_template = newrec_.reminder_template,
50.1661 - payment_delay = newrec_.payment_delay,
50.1662 - amount_tolerance = newrec_.amount_tolerance,
50.1663 - percent_tolerance = newrec_.percent_tolerance,
50.1664 - disc_days_tolerance = newrec_.disc_days_tolerance,
50.1665 - netting_allowed = newrec_.netting_allowed,
50.1666 - format_no = newrec_.format_no,
50.1667 - payment_advice = newrec_.payment_advice,
50.1668 - deduction_group = newrec_.deduction_group,
50.1669 - corporation_id = newrec_.corporation_id,
50.1670 - member_id = newrec_.member_id,
50.1671 - send_reminder_to_payer = newrec_.send_reminder_to_payer,
50.1672 - send_interest_inv_to_payer = newrec_.send_interest_inv_to_payer,
50.1673 - rule_id = newrec_.rule_id,
50.1674 - payment_receipt_type = newrec_.payment_receipt_type,
50.1675 - template_id = newrec_.template_id,
50.1676 - check_recipient = newrec_.check_recipient,
50.1677 - send_statement_of_acc_to_payer = newrec_.send_statement_of_acc_to_payer,
50.1678 - rowversion = newrec_.rowversion
50.1679 - WHERE company = newrec_.company
50.1680 - AND identity = newrec_.identity
50.1681 - AND party_type = newrec_.party_type;
50.1682 - ELSE
50.1683 - UPDATE identity_pay_info_tab
50.1684 - SET company = newrec_.company,
50.1685 - identity = newrec_.identity,
50.1686 - party_type = newrec_.party_type,
50.1687 - priority = newrec_.priority,
50.1688 - blocked_for_payment = newrec_.blocked_for_payment,
50.1689 - other_payee_identity = newrec_.other_payee_identity,
50.1690 - interest_template = newrec_.interest_template,
50.1691 - reminder_template = newrec_.reminder_template,
50.1692 - payment_delay = newrec_.payment_delay,
50.1693 - amount_tolerance = newrec_.amount_tolerance,
50.1694 - percent_tolerance = newrec_.percent_tolerance,
50.1695 - disc_days_tolerance = newrec_.disc_days_tolerance,
50.1696 - netting_allowed = newrec_.netting_allowed,
50.1697 - format_no = newrec_.format_no,
50.1698 - payment_advice = newrec_.payment_advice,
50.1699 - deduction_group = newrec_.deduction_group,
50.1700 - corporation_id = newrec_.corporation_id,
50.1701 - member_id = newrec_.member_id,
50.1702 - send_reminder_to_payer = newrec_.send_reminder_to_payer,
50.1703 - send_interest_inv_to_payer = newrec_.send_interest_inv_to_payer,
50.1704 - rule_id = newrec_.rule_id,
50.1705 - payment_receipt_type = newrec_.payment_receipt_type,
50.1706 - template_id = newrec_.template_id,
50.1707 - check_recipient = newrec_.check_recipient,
50.1708 - send_statement_of_acc_to_payer = newrec_.send_statement_of_acc_to_payer,
50.1709 - rowversion = newrec_.rowversion
50.1710 - WHERE &OBJID = objid_;
50.1711 - END IF;
50.1712 -EXCEPTION
50.1713 - WHEN dup_val_on_index THEN
50.1714 - Error_SYS.Record_Exist(lu_name_);
50.1715 -END Update___;
50.1716 -
50.1717 ------------------------------------------------------------------------------
50.1718 --------------------- IMPLEMENTATION BASE METHODS FOR DELETE -----------------
50.1719 ------------------------------------------------------------------------------
50.1720 --- Check_Delete___
50.1721 --- Checks whether a specific LU-record may be removed or not.
50.1722 --- The procedure should check business rules like attribute values
50.1723 --- as well as database constraints (defined or not).
50.1724 ---
50.1725 --- Delete___
50.1726 --- Deletion of the specific LU-object from the database.
50.1727 ------------------------------------------------------------------------------
50.1728 -
50.1729 -PROCEDURE Check_Delete___ (
50.1730 - remrec_ IN &TABLE%ROWTYPE )
50.1731 -IS
50.1732 - key_ VARCHAR2(2000);
50.1733 -BEGIN
50.1734 - key_ := remrec_.company || '^' || remrec_.identity || '^' || Party_Type_API.Decode(remrec_.party_type) || '^';
50.1735 - Reference_SYS.Check_Restricted_Delete(lu_name_, key_);
50.1736 -END Check_Delete___;
50.1737 -
50.1738 -
50.1739 -PROCEDURE Delete___ (
50.1740 - objid_ IN VARCHAR2,
50.1741 - remrec_ IN &TABLE%ROWTYPE )
50.1742 -IS
50.1743 - key_ VARCHAR2(2000);
50.1744 -BEGIN
50.1745 - key_ := remrec_.company || '^' || remrec_.identity || '^' || Party_Type_API.Decode(remrec_.party_type) || '^';
50.1746 - Reference_SYS.Do_Cascade_Delete(lu_name_, key_);
50.1747 - DELETE
50.1748 - FROM identity_pay_info_tab
50.1749 - WHERE &OBJID = objid_;
50.1750 -END Delete___;
50.1751 -
50.1752 ------------------------------------------------------------------------------
50.1753 --------------------- PRIVATE BASE METHODS -----------------------------------
50.1754 ------------------------------------------------------------------------------
50.1755 --- Lock__
50.1756 --- Client-support to lock a specific instance of the logical unit.
50.1757 ---
50.1758 --- New__
50.1759 --- Client-support interface to create LU instances.
50.1760 --- action_ = 'PREPARE'
50.1761 --- Default values and handle of information to client.
50.1762 --- The default values are set in procedure Prepare_Insert___.
50.1763 --- action_ = 'CHECK'
50.1764 --- Check all attributes before creating new object and handle of
50.1765 --- information to client. The attribute list is unpacked, checked
50.1766 --- and prepared (defaults) in procedure Unpack_Check_Insert___.
50.1767 --- action_ = 'DO'
50.1768 --- Creation of new instances of the logical unit and handle of
50.1769 --- information to client. The attribute list is unpacked, checked
50.1770 --- and prepared (defaults) in procedure Unpack_Check_Insert___
50.1771 --- before calling procedure Insert___.
50.1772 ---
50.1773 --- Modify__
50.1774 --- Client-support interface to modify attributes for LU instances.
50.1775 --- action_ = 'CHECK'
50.1776 --- Check all attributes before modifying an existing object and
50.1777 --- handle of information to client. The attribute list is unpacked,
50.1778 --- checked and prepared(defaults) in procedure Unpack_Check_Update___.
50.1779 --- action_ = 'DO'
50.1780 --- Modification of an existing instance of the logical unit. The
50.1781 --- procedure unpacks the attributes, checks all values before
50.1782 --- procedure Update___ is called.
50.1783 ---
50.1784 --- Remove__
50.1785 --- Client-support interface to remove LU instances.
50.1786 --- action_ = 'CHECK'
50.1787 --- Check whether a specific LU-instance may be removed or not.
50.1788 --- The procedure fetches the complete record by calling procedure
50.1789 --- Get_Object_By_Id___. Then the check is made by calling procedure
50.1790 --- Check_Delete___.
50.1791 --- action_ = 'DO'
50.1792 --- Remove an existing instance of the logical unit. The procedure
50.1793 --- fetches the complete LU-record, checks for a delete and then
50.1794 --- deletes the record by calling procedure Delete___.
50.1795 ------------------------------------------------------------------------------
50.1796 -
50.1797 -PROCEDURE Lock__ (
50.1798 - info_ OUT VARCHAR2,
50.1799 - objid_ IN VARCHAR2,
50.1800 - objversion_ IN VARCHAR2 )
50.1801 -IS
50.1802 - dummy_ &TABLE%ROWTYPE;
50.1803 -BEGIN
50.1804 - General_SYS.Init_Method(lu_name_, '&PKG', 'Lock__');
50.1805 - dummy_ := Lock_By_Id___(objid_, objversion_);
50.1806 - info_ := Client_SYS.Get_All_Info;
50.1807 -END Lock__;
50.1808 -
50.1809 -
50.1810 -PROCEDURE New__ (
50.1811 - info_ OUT VARCHAR2,
50.1812 - objid_ OUT VARCHAR2,
50.1813 - objversion_ OUT VARCHAR2,
50.1814 - attr_ IN OUT VARCHAR2,
50.1815 - action_ IN VARCHAR2 )
50.1816 -IS
50.1817 - newrec_ &TABLE%ROWTYPE;
50.1818 -BEGIN
50.1819 - General_SYS.Init_Method(lu_name_, '&PKG', 'New__');
50.1820 - IF (action_ = 'PREPARE') THEN
50.1821 - Prepare_Insert___(attr_);
50.1822 - ELSIF (action_ = 'CHECK') THEN
50.1823 - Unpack_Check_Insert___(attr_, newrec_);
50.1824 - ELSIF (action_ = 'DO') THEN
50.1825 - Unpack_Check_Insert___(attr_, newrec_);
50.1826 - Insert___(objid_, objversion_, newrec_, attr_);
50.1827 - END IF;
50.1828 - info_ := Client_SYS.Get_All_Info;
50.1829 -END New__;
50.1830 -
50.1831 -PROCEDURE Modify__ (
50.1832 - info_ OUT VARCHAR2,
50.1833 - objid_ IN VARCHAR2,
50.1834 - objversion_ IN OUT VARCHAR2,
50.1835 - attr_ IN OUT VARCHAR2,
50.1836 - action_ IN VARCHAR2 )
50.1837 -IS
50.1838 - oldrec_ &TABLE%ROWTYPE;
50.1839 - newrec_ &TABLE%ROWTYPE;
50.1840 -BEGIN
50.1841 - General_SYS.Init_Method(lu_name_, '&PKG', 'Modify__');
50.1842 - IF (action_ = 'CHECK') THEN
50.1843 - newrec_ := Get_Object_By_Id___(objid_);
50.1844 - Unpack_Check_Update___(attr_, newrec_, objid_);
50.1845 - ELSIF (action_ = 'DO') THEN
50.1846 - oldrec_ := Lock_By_Id___(objid_, objversion_);
50.1847 - newrec_ := oldrec_;
50.1848 -
50.1849 - Save_Identity_Notes___(attr_, newrec_ );
50.1850 -
50.1851 - Unpack_Check_Update___(attr_, newrec_, objid_);
50.1852 - Update___(objid_, oldrec_, newrec_, attr_, objversion_);
50.1853 - END IF;
50.1854 - info_ := Client_SYS.Get_All_Info;
50.1855 -END Modify__;
50.1856 -
50.1857 -
50.1858 -PROCEDURE Remove__ (
50.1859 - info_ OUT VARCHAR2,
50.1860 - objid_ IN VARCHAR2,
50.1861 - objversion_ IN VARCHAR2,
50.1862 - action_ IN VARCHAR2 )
50.1863 -IS
50.1864 - remrec_ &TABLE%ROWTYPE;
50.1865 -BEGIN
50.1866 - General_SYS.Init_Method(lu_name_, '&PKG', 'Remove__');
50.1867 - IF (action_ = 'CHECK') THEN
50.1868 - remrec_ := Get_Object_By_Id___(objid_);
50.1869 - Check_Delete___(remrec_);
50.1870 - ELSIF (action_ = 'DO') THEN
50.1871 - remrec_ := Lock_By_Id___(objid_, objversion_);
50.1872 - Check_Delete___(remrec_);
50.1873 - Delete___(objid_, remrec_);
50.1874 - END IF;
50.1875 - info_ := Client_SYS.Get_All_Info;
50.1876 -END Remove__;
50.1877 -
50.1878 ------------------------------------------------------------------------------
50.1879 --------------------- PUBLIC BASE METHODS ------------------------------------
50.1880 ------------------------------------------------------------------------------
50.1881 --- Exist
50.1882 --- Checks if given pointer (e.g. primary key) to an instance of this
50.1883 --- logical unit exists. If not an exception will be raised.
50.1884 ------------------------------------------------------------------------------
50.1885 -
50.1886 -PROCEDURE Exist (
50.1887 - company_ IN VARCHAR2,
50.1888 - identity_ IN VARCHAR2,
50.1889 - party_type_ IN VARCHAR2 )
50.1890 -IS
50.1891 -BEGIN
50.1892 - General_SYS.Init_Method(lu_name_, '&PKG', 'Exist', TRUE);
50.1893 - IF (NOT Check_Exist___(company_, identity_, Party_Type_API.Encode(party_type_))) THEN
50.1894 - -- Bug 72612, Begin, Modified IF condition
50.1895 - IF Party_Type_API.Encode(party_type_) IN ('CUSTOMER', 'SUPPLIER') THEN
50.1896 - Error_SYS.Record_General(lu_name_, 'IDENTITYPAYEXIST: :P1 :P2 does not exist in company :P3 in Payment module.', party_type_, identity_, company_);
50.1897 - -- Bug 72612, End.
50.1898 - -- Bug 71612, Begin, Added IF condition, IF Party type 'COMPANY' display an error message
50.1899 - ELSIF (Party_Type_API.Encode(party_type_) = 'COMPANY') THEN
50.1900 - Error_SYS.Record_General(lu_name_, 'NOTPAYCOMPANY: Parked payments are allowed only against the payment company.');
50.1901 - -- Bug 72612, End.
50.1902 - ELSE
50.1903 - Error_SYS.Record_Not_Exist(lu_name_);
50.1904 - END IF;
50.1905 - END IF;
50.1906 -END Exist;
50.1907 -
50.1908 -
50.1909 -PROCEDURE Exist_Db (
50.1910 - company_ IN VARCHAR2,
50.1911 - identity_ IN VARCHAR2,
50.1912 - party_type_db_ IN VARCHAR2 )
50.1913 -IS
50.1914 -BEGIN
50.1915 - General_SYS.Init_Method(lu_name_, '&PKG', 'Exist', TRUE);
50.1916 - IF (NOT Check_Exist___(company_, identity_, party_type_db_)) THEN
50.1917 - IF party_type_db_ IN ('CUSTOMER', 'SUPPLIER', 'COMPANY') THEN
50.1918 - Error_SYS.Record_General(lu_name_, 'IDENTITYPAYEXIST2: :P1 :P2 does not exist in company :P3 in Payment module.', Party_Type_API.Decode(party_type_db_), identity_, company_);
50.1919 - ELSE
50.1920 - Error_SYS.Record_Not_Exist(lu_name_);
50.1921 - END IF;
50.1922 - END IF;
50.1923 -END Exist_Db;
50.1924 -
50.1925 ------------------------------------------------------------------------------
50.1926 --------------------- LU SPECIFIC IMPLEMENTATION METHODS ---------------------
50.1927 ------------------------------------------------------------------------------
50.1928 -PROCEDURE Save_Identity_Notes___ (
50.1929 - attr_ IN VARCHAR2,
50.1930 - newrec_ IN &TABLE%ROWTYPE )
50.1931 -IS
50.1932 - note_ VARCHAR2(2000);
50.1933 - note_update_ VARCHAR2(20);
50.1934 -
50.1935 -BEGIN
50.1936 - note_ := Client_SYS.Get_Item_Value('NOTE',attr_);
50.1937 - note_update_ := Client_SYS.Get_Item_Value('NOTE_UPDATE',attr_);
50.1938 -
50.1939 - IF ((note_ IS NULL) AND (note_update_ IS NULL)) THEN
50.1940 - RETURN;
50.1941 - END IF;
50.1942 -
50.1943 - Identity_Invoice_Info_API.Set_Notes(newrec_.company,
50.1944 - newrec_.identity,
50.1945 - Party_Type_Api.Decode(newrec_.party_type),
50.1946 - note_ );
50.1947 -END Save_Identity_Notes___;
50.1948 -
50.1949 -FUNCTION Get_Next_Format_No___ (
50.1950 - company_ IN VARCHAR2 ) RETURN NUMBER
50.1951 -IS
50.1952 - CURSOR rec IS
50.1953 - SELECT MAX( format_no )
50.1954 - FROM &TABLE
50.1955 - WHERE company = company_;
50.1956 -
50.1957 - max_format_ NUMBER;
50.1958 -BEGIN
50.1959 - OPEN rec;
50.1960 - FETCH rec INTO max_format_;
50.1961 - IF ( rec%NOTFOUND ) THEN
50.1962 - CLOSE rec;
50.1963 - RETURN 1;
50.1964 - END IF;
50.1965 - CLOSE rec;
50.1966 -
50.1967 - RETURN ( NVL(max_format_,0) + 1 );
50.1968 -END Get_Next_Format_No___;
50.1969 -
50.1970 -PROCEDURE Check_Cascade___ (
50.1971 - company_ IN VARCHAR2,
50.1972 - identity_ IN VARCHAR2,
50.1973 - party_type_db_ IN VARCHAR2 )
50.1974 -IS
50.1975 - CURSOR get_ledger_item1 IS
50.1976 - SELECT rowtype
50.1977 - FROM ledger_item_tab
50.1978 - WHERE company = company_
50.1979 - AND party_type = party_type_db_
50.1980 - AND identity = identity_;
50.1981 -
50.1982 - CURSOR get_ledger_item2 IS
50.1983 - SELECT rowtype
50.1984 - FROM ledger_item_tab
50.1985 - WHERE company = company_
50.1986 - AND party_type = party_type_db_
50.1987 - AND payer_identity = identity_;
50.1988 -
50.1989 - CURSOR get_ledger_item3 IS
50.1990 - SELECT rowtype
50.1991 - FROM ledger_item_tab
50.1992 - WHERE company = company_
50.1993 - AND party_type = party_type_db_
50.1994 - AND payee_identity = identity_;
50.1995 -BEGIN
50.1996 - FOR ledger_item_ IN get_ledger_item1 LOOP
50.1997 - IF (ledger_item_.rowtype = 'InvoiceLedgerItem') THEN
50.1998 - Error_SYS.Appl_General(lu_name_, 'INVOICESEXIST: Invoices exist for :P1 :P2', Party_Type_API.Decode(party_type_db_), identity_);
50.1999 - ELSIF (ledger_item_.rowtype = 'OnAccountLedgerItem') THEN
50.2000 - Error_SYS.Appl_General(lu_name_, 'PAYMENTONACCNTEXIST: Payments on account exist for :P1 :P2', Party_Type_API.Decode(party_type_db_), identity_);
50.2001 - ELSE
50.2002 - Error_SYS.Appl_General(lu_name_, 'LEDGERITEMSEXIST: Ledger items exist for :P1 :P2', Party_Type_API.Decode(party_type_db_), identity_);
50.2003 - END IF;
50.2004 - END LOOP;
50.2005 -
50.2006 - FOR ledger_item_ IN get_ledger_item2 LOOP
50.2007 - IF (ledger_item_.rowtype = 'InvoiceLedgerItem') THEN
50.2008 - Error_SYS.Appl_General(lu_name_, 'INVOICESEXIST: Invoices exist for :P1 :P2', Party_Type_API.Decode(party_type_db_), identity_);
50.2009 - ELSIF (ledger_item_.rowtype = 'OnAccountLedgerItem') THEN
50.2010 - Error_SYS.Appl_General(lu_name_, 'PAYMENTONACCNTEXIST: Payments on account exist for :P1 :P2', Party_Type_API.Decode(party_type_db_), identity_);
50.2011 - ELSE
50.2012 - Error_SYS.Appl_General(lu_name_, 'LEDGERITEMSEXIST: Ledger items exist for :P1 :P2', Party_Type_API.Decode(party_type_db_), identity_);
50.2013 - END IF;
50.2014 - END LOOP;
50.2015 -
50.2016 - FOR ledger_item_ IN get_ledger_item3 LOOP
50.2017 - IF (ledger_item_.rowtype = 'InvoiceLedgerItem') THEN
50.2018 - Error_SYS.Appl_General(lu_name_, 'INVOICESEXIST: Invoices exist for :P1 :P2', Party_Type_API.Decode(party_type_db_), identity_);
50.2019 - ELSIF (ledger_item_.rowtype = 'OnAccountLedgerItem') THEN
50.2020 - Error_SYS.Appl_General(lu_name_, 'PAYMENTONACCNTEXIST: Payments on account exist for :P1 :P2', Party_Type_API.Decode(party_type_db_), identity_);
50.2021 - ELSE
50.2022 - Error_SYS.Appl_General(lu_name_, 'LEDGERITEMSEXIST: Ledger items exist for :P1 :P2', Party_Type_API.Decode(party_type_db_), identity_);
50.2023 - END IF;
50.2024 - END LOOP;
50.2025 -END Check_Cascade___;
50.2026 -
50.2027 -PROCEDURE Import___ (
50.2028 - crecomp_rec_ IN ENTERP_COMP_CONNECT_V160_API.Crecomp_Lu_Public_Rec )
50.2029 -IS
50.2030 - CURSOR get_data IS
50.2031 - SELECT C1,C2,N1,C3,C4,C5,C6,N2,N3,N4,C7,N5,C8,C9,C10,C11,C12,C13,C14,C15
50.2032 - FROM Create_Company_Tem_Detail src
50.2033 - WHERE component = '&MODULE'
50.2034 - AND lu = lu_name_
50.2035 - AND template_id = crecomp_rec_.template_id
50.2036 - AND version = crecomp_rec_.version
50.2037 - AND NOT EXISTS (SELECT 1
50.2038 - FROM &TABLE dest
50.2039 - WHERE dest.company = crecomp_rec_.company
50.2040 - AND dest.identity = crecomp_rec_.company
50.2041 - AND dest.party_type = src.c2);
50.2042 -
50.2043 - -- Bug 74138, Begin, Added condition to fetch data when party_type = 'COMPANY'
50.2044 - CURSOR exist_company IS
50.2045 - SELECT 'X'
50.2046 - FROM &TABLE
50.2047 - WHERE company = crecomp_rec_.company
50.2048 - AND party_type = 'COMPANY';
50.2049 - -- Bug 74138, End
50.2050 -
50.2051 - dummy_ VARCHAR2(1);
50.2052 - attr_ VARCHAR2(2000);
50.2053 - objid_ VARCHAR2(2000);
50.2054 - objversion_ VARCHAR2(2000);
50.2055 - newrec_ &TABLE%ROWTYPE;
50.2056 - msg_ VARCHAR2(2000);
50.2057 - i_ NUMBER := 0;
50.2058 - update_by_key_ BOOLEAN DEFAULT FALSE;
50.2059 - empty_lu_ BOOLEAN := FALSE;
50.2060 -BEGIN
50.2061 - General_SYS.Init_Method(lu_name_, '&PKG', 'Import___', TRUE);
50.2062 -
50.2063 - update_by_key_ := Enterp_Comp_Connect_V160_API.Use_Keys(module_, lu_name_, crecomp_rec_);
50.2064 -
50.2065 - IF (NOT update_by_key_) THEN
50.2066 - empty_lu_ := FALSE;
50.2067 - OPEN exist_company;
50.2068 - FETCH exist_company INTO dummy_;
50.2069 - IF ( exist_company%NOTFOUND ) THEN
50.2070 - CLOSE exist_company;
50.2071 - empty_lu_ := TRUE;
50.2072 - END IF;
50.2073 - END IF;
50.2074 -
50.2075 - IF ( update_by_key_ OR empty_lu_ ) THEN
50.2076 - FOR rec_ IN get_data LOOP
50.2077 - i_ := i_ + 1;
50.2078 - BEGIN
50.2079 - newrec_.company := crecomp_rec_.company;
50.2080 - newrec_.identity := crecomp_rec_.company;
50.2081 - newrec_.party_type := rec_.c2;
50.2082 - newrec_.priority := rec_.n1;
50.2083 - newrec_.blocked_for_payment := rec_.c3;
50.2084 - newrec_.other_payee_identity := rec_.c4;
50.2085 - newrec_.interest_template := rec_.c5;
50.2086 - newrec_.reminder_template := rec_.c6;
50.2087 - newrec_.payment_delay := rec_.n2;
50.2088 - newrec_.amount_tolerance := rec_.n3;
50.2089 - newrec_.percent_tolerance := rec_.n4;
50.2090 - newrec_.disc_days_tolerance := rec_.n5;
50.2091 - newrec_.netting_allowed := rec_.c7;
50.2092 - newrec_.format_no := rec_.n5;
50.2093 - newrec_.payment_advice := rec_.c8;
50.2094 - newrec_.deduction_group := rec_.c9;
50.2095 - newrec_.corporation_id := rec_.c10;
50.2096 - newrec_.member_id := rec_.c11;
50.2097 - newrec_.send_reminder_to_payer := rec_.c12;
50.2098 - newrec_.send_interest_inv_to_payer := rec_.c13;
50.2099 - newrec_.payment_receipt_type := rec_.c14;
50.2100 - newrec_.send_statement_of_acc_to_payer := rec_.c15;
50.2101 -
50.2102 - Company_API.Exist(newrec_.company);
50.2103 - Payment_Library_API.Exist_In_Enterp(newrec_.company, newrec_.company, Party_Type_API.Decode(newrec_.party_type));
50.2104 - IF (newrec_.blocked_for_payment IS NOT NULL AND newrec_.blocked_for_payment NOT IN ('TRUE', 'FALSE')) THEN
50.2105 - Error_SYS.Record_General(lu_name_,'TRUEORFALSE: The value must be TRUE or FALSE');
50.2106 - END IF;
50.2107 - IF (newrec_.other_payee_identity IS NOT NULL) THEN
50.2108 - Identity_Pay_Info_API.Exist(newrec_.company, newrec_.other_payee_identity, Party_Type_API.Decode(newrec_.party_type));
50.2109 - END IF;
50.2110 - IF (newrec_.interest_template IS NOT NULL) THEN
50.2111 - Interest_Template_API.Exist(newrec_.company, newrec_.interest_template);
50.2112 - END IF;
50.2113 - IF (newrec_.reminder_template IS NOT NULL) THEN
50.2114 - Reminder_Template_API.Exist(newrec_.company, newrec_.reminder_template);
50.2115 - END IF;
50.2116 - IF (TRUNC(newrec_.payment_delay) <> newrec_.payment_delay) THEN
50.2117 - Error_SYS.Record_General(lu_name_, 'NOTWHOLENUM: A whole number must be specified for the payment delay.');
50.2118 - END IF;
50.2119 - IF (newrec_.netting_allowed NOT IN ('TRUE', 'FALSE')) THEN
50.2120 - Error_SYS.Record_General(lu_name_,'TRUEORFALSE: The value must be TRUE or FALSE');
50.2121 - END IF;
50.2122 - IF (newrec_.payment_advice IS NOT NULL) THEN
50.2123 - Payment_Advice_API.Exist_Db(newrec_.payment_advice);
50.2124 - END IF;
50.2125 - IF (newrec_.deduction_group IS NOT NULL) THEN
50.2126 - Deduction_Group_API.Exist(newrec_.company, newrec_.deduction_group);
50.2127 - END IF;
50.2128 - IF (newrec_.payment_receipt_type IS NOT NULL) THEN
50.2129 - Payment_Receipt_Type_API.Exist_Db(newrec_.payment_receipt_type);
50.2130 - END IF;
50.2131 -
50.2132 - Error_SYS.Check_Not_Null(lu_name_, 'COMPANY', newrec_.company);
50.2133 - Error_SYS.Check_Not_Null(lu_name_, 'IDENTITY', newrec_.identity);
50.2134 - Error_SYS.Check_Not_Null(lu_name_, 'PARTY_TYPE', newrec_.party_type);
50.2135 - Error_SYS.Check_Not_Null(lu_name_, 'NETTING_ALLOWED', newrec_.netting_allowed);
50.2136 -
50.2137 - IF (newrec_.party_type = 'SUPPLIER') THEN
50.2138 - Error_SYS.Check_Not_Null(lu_name_, 'PRIORITY', newrec_.priority);
50.2139 - Error_SYS.Check_Not_Null(lu_name_, 'BLOCKED_FOR_PAYMENT', newrec_.blocked_for_payment);
50.2140 - END IF;
50.2141 - IF (newrec_.party_type = 'CUSTOMER') THEN
50.2142 - Error_SYS.Check_Not_Null(lu_name_, 'INTEREST_TEMPLATE', newrec_.interest_template);
50.2143 - Error_SYS.Check_Not_Null(lu_name_, 'REMINDER_TEMPLATE', newrec_.reminder_template);
50.2144 - Error_SYS.Check_Not_Null(lu_name_, 'PAYMENT_RECEIPT_TYPE', newrec_.payment_receipt_type);
50.2145 - END IF;
50.2146 -
50.2147 - Error_SYS.Check_Not_Null(lu_name_, 'IDENTITY', newrec_.identity);
50.2148 -
50.2149 - IF (newrec_.identity = newrec_.other_payee_identity) THEN
50.2150 - Error_SYS.Record_General(lu_name_, 'SAMEPARTY: Other Payee cannot refer to itself.');
50.2151 - END IF;
50.2152 -
50.2153 - Insert___(objid_, objversion_, newrec_, attr_);
50.2154 - EXCEPTION
50.2155 - WHEN OTHERS THEN
50.2156 - msg_ := SQLERRM;
50.2157 - Enterp_Comp_Connect_V160_API.Log_Logging(crecomp_rec_.company, module_, '&PKG', 'Error', msg_);
50.2158 - END;
50.2159 - END LOOP;
50.2160 - IF ( i_ = 0 ) THEN
50.2161 - msg_ := language_sys.translate_constant(lu_name_, 'NODATAFOUND:No Data Found');
50.2162 - Enterp_Comp_Connect_V160_API.Log_Logging(crecomp_rec_.company, module_, '&PKG', 'CreatedSuccessfully', msg_);
50.2163 - ELSE
50.2164 - IF msg_ IS NULL THEN
50.2165 - Enterp_Comp_Connect_V160_API.Log_Logging(crecomp_rec_.company, module_, '&PKG', 'CreatedSuccessfully');
50.2166 - ELSE
50.2167 - Enterp_Comp_Connect_V160_API.Log_Logging(crecomp_rec_.company, module_, '&PKG', 'CreatedWithErrors');
50.2168 - END IF;
50.2169 - END IF;
50.2170 - END IF;
50.2171 - -- This statement is to add to the log that the Create company process for LUs is finished if
50.2172 - -- update_by_key_ and empty_lu are FALSE
50.2173 - IF ( NOT update_by_key_ AND NOT empty_lu_ ) THEN
50.2174 - Enterp_Comp_Connect_V160_API.Log_Logging(crecomp_rec_.company, module_, '&PKG', 'CreatedSuccessfully');
50.2175 - END IF;
50.2176 -EXCEPTION
50.2177 - WHEN OTHERS THEN
50.2178 - msg_ := SQLERRM;
50.2179 - Enterp_Comp_Connect_V160_API.Log_Logging(crecomp_rec_.company, module_, '&PKG', 'Error', msg_);
50.2180 - Enterp_Comp_Connect_V160_API.Log_Logging(crecomp_rec_.company, module_, '&PKG', 'CreatedWithErrors');
50.2181 -END Import___;
50.2182 -
50.2183 -
50.2184 -PROCEDURE Copy___ (
50.2185 - crecomp_rec_ IN ENTERP_COMP_CONNECT_V160_API.Crecomp_Lu_Public_Rec )
50.2186 -IS
50.2187 - dummy_ VARCHAR2(1);
50.2188 - msg_ VARCHAR2(2000);
50.2189 - update_by_key_ BOOLEAN DEFAULT FALSE;
50.2190 - empty_lu_ BOOLEAN := FALSE;
50.2191 -
50.2192 - CURSOR exist_company IS
50.2193 - SELECT 'X'
50.2194 - FROM &TABLE
50.2195 - WHERE company = crecomp_rec_.company;
50.2196 -
50.2197 - CURSOR get_data IS
50.2198 - SELECT *
50.2199 - FROM &TABLE src
50.2200 - WHERE company = crecomp_rec_.old_company
50.2201 - AND identity = crecomp_rec_.old_company
50.2202 - AND party_type = 'COMPANY'
50.2203 - AND NOT EXISTS (SELECT 1
50.2204 - FROM &TABLE dest
50.2205 - WHERE dest.company = crecomp_rec_.company
50.2206 - AND dest.identity = src.identity
50.2207 - AND dest.party_type = src.party_type);
50.2208 -BEGIN
50.2209 - General_SYS.Init_Method(lu_name_, '&PKG', 'Copy___', TRUE);
50.2210 -
50.2211 - update_by_key_ := Enterp_Comp_Connect_V160_API.Use_Keys(module_, lu_name_, crecomp_rec_);
50.2212 -
50.2213 - IF (NOT update_by_key_) THEN
50.2214 - empty_lu_ := FALSE;
50.2215 - OPEN exist_company;
50.2216 - FETCH exist_company INTO dummy_;
50.2217 - IF ( exist_company%NOTFOUND ) THEN
50.2218 - CLOSE exist_company;
50.2219 - empty_lu_ := TRUE;
50.2220 - END IF;
50.2221 - END IF;
50.2222 -
50.2223 - IF ( update_by_key_ OR empty_lu_ ) THEN
50.2224 - FOR rec_ IN get_data LOOP
50.2225 - BEGIN
50.2226 - INSERT
50.2227 - INTO identity_pay_info_tab (
50.2228 - company,
50.2229 - identity,
50.2230 - party_type,
50.2231 - priority,
50.2232 - blocked_for_payment,
50.2233 - other_payee_identity,
50.2234 - interest_template,
50.2235 - reminder_template,
50.2236 - payment_delay,
50.2237 - amount_tolerance,
50.2238 - percent_tolerance,
50.2239 - disc_days_tolerance,
50.2240 - netting_allowed,
50.2241 - format_no,
50.2242 - payment_advice,
50.2243 - deduction_group,
50.2244 - corporation_id,
50.2245 - member_id,
50.2246 - send_reminder_to_payer,
50.2247 - send_interest_inv_to_payer,
50.2248 - next_payment_matching_id,
50.2249 - payment_receipt_type,
50.2250 - send_statement_of_acc_to_payer,
50.2251 - rowversion)
50.2252 - VALUES (
50.2253 - crecomp_rec_.company,
50.2254 - crecomp_rec_.company,
50.2255 - rec_.party_type,
50.2256 - rec_.priority,
50.2257 - rec_.blocked_for_payment,
50.2258 - rec_.other_payee_identity,
50.2259 - rec_.interest_template,
50.2260 - rec_.reminder_template,
50.2261 - rec_.payment_delay,
50.2262 - rec_.amount_tolerance,
50.2263 - rec_.percent_tolerance,
50.2264 - rec_.disc_days_tolerance,
50.2265 - rec_.netting_allowed,
50.2266 - rec_.format_no,
50.2267 - rec_.payment_advice,
50.2268 - rec_.deduction_group,
50.2269 - rec_.corporation_id,
50.2270 - rec_.member_id,
50.2271 - rec_.send_reminder_to_payer,
50.2272 - rec_.send_interest_inv_to_payer,
50.2273 - 0,
50.2274 - rec_.payment_receipt_type,
50.2275 - rec_.send_statement_of_acc_to_payer,
50.2276 - 1);
50.2277 - END;
50.2278 - END LOOP;
50.2279 - Enterp_Comp_Connect_V160_API.Log_Logging(crecomp_rec_.company, module_, '&PKG', 'CreatedSuccessfully');
50.2280 - END IF;
50.2281 - -- This statement is to add to the log that the Create company process for LUs is finished if
50.2282 - -- update_by_key_ and empty_lu are FALSE
50.2283 - IF ( NOT update_by_key_ AND NOT empty_lu_ ) THEN
50.2284 - Enterp_Comp_Connect_V160_API.Log_Logging(crecomp_rec_.company, module_, '&PKG', 'CreatedSuccessfully');
50.2285 - END IF;
50.2286 -EXCEPTION
50.2287 - WHEN OTHERS THEN
50.2288 - msg_ := SQLERRM;
50.2289 - Enterp_Comp_Connect_V160_API.Log_Logging(crecomp_rec_.company, module_, '&PKG', 'Error', msg_);
50.2290 - Enterp_Comp_Connect_V160_API.Log_Logging(crecomp_rec_.company, module_, '&PKG', 'CreatedWithErrors');
50.2291 -END Copy___;
50.2292 -
50.2293 -
50.2294 -
50.2295 -PROCEDURE Export___ (
50.2296 - crecomp_rec_ IN ENTERP_COMP_CONNECT_V160_API.Crecomp_Lu_Public_Rec )
50.2297 -IS
50.2298 - pub_rec_ Enterp_Comp_Connect_V160_API.Tem_Public_Rec;
50.2299 - i_ NUMBER := 1;
50.2300 -
50.2301 - CURSOR get_data IS
50.2302 - SELECT *
50.2303 - FROM &VIEWPCT
50.2304 - WHERE company = crecomp_rec_.company
50.2305 - AND party_type_db = 'COMPANY';
50.2306 -BEGIN
50.2307 - General_SYS.Init_Method(lu_name_, '&PKG', 'Export___', TRUE);
50.2308 - FOR pctrec_ IN get_data LOOP
50.2309 - pub_rec_.template_id := crecomp_rec_.template_id;
50.2310 - pub_rec_.component := '&MODULE';
50.2311 - pub_rec_.version := crecomp_rec_.version;
50.2312 - pub_rec_.lu := lu_name_;
50.2313 - pub_rec_.item_id := i_;
50.2314 - pub_rec_.c1 := '<NEW COMPANY>';
50.2315 - pub_rec_.c2 := pctrec_.party_type_db;
50.2316 - pub_rec_.n1 := pctrec_.priority;
50.2317 - pub_rec_.c3 := pctrec_.blocked_for_payment;
50.2318 - pub_rec_.c4 := pctrec_.other_payee_identity;
50.2319 - pub_rec_.c5 := pctrec_.interest_template;
50.2320 - pub_rec_.c6 := pctrec_.reminder_template;
50.2321 - pub_rec_.n2 := pctrec_.payment_delay;
50.2322 - pub_rec_.n3 := pctrec_.amount_tolerance;
50.2323 - pub_rec_.n4 := pctrec_.percent_tolerance;
50.2324 - pub_rec_.n5 := pctrec_.disc_days_tolerance;
50.2325 - pub_rec_.c7 := pctrec_.netting_allowed;
50.2326 - pub_rec_.n5 := pctrec_.format_no;
50.2327 - pub_rec_.c8 := pctrec_.payment_advice_db;
50.2328 - pub_rec_.c9 := pctrec_.deduction_group;
50.2329 - pub_rec_.c10 := pctrec_.corporation_id;
50.2330 - pub_rec_.c11 := pctrec_.member_id;
50.2331 - pub_rec_.c12 := pctrec_.send_reminder_to_payer;
50.2332 - pub_rec_.c13 := pctrec_.send_interest_inv_to_payer;
50.2333 - pub_rec_.c14 := pctrec_.payment_receipt_type_db;
50.2334 - pub_rec_.c15 := pctrec_.send_statement_of_acc_to_payer;
50.2335 - Enterp_Comp_Connect_V160_API.Tem_Insert_Detail_Data(pub_rec_);
50.2336 - i_ := i_ + 1;
50.2337 - END LOOP;
50.2338 -END Export___;
50.2339 -
50.2340 ------------------------------------------------------------------------------
50.2341 --------------------- LU SPECIFIC PRIVATE METHODS ----------------------------
50.2342 ------------------------------------------------------------------------------
50.2343 -
50.2344 -PROCEDURE Check_Cascade_Customer__ (
50.2345 - attr_ IN VARCHAR2 )
50.2346 -IS
50.2347 - CURSOR customer_in_company (identity_ IN VARCHAR2,
50.2348 - party_type_db_ IN VARCHAR2 ) IS
50.2349 - SELECT company
50.2350 - FROM &TABLE
50.2351 - WHERE identity = identity_
50.2352 - AND party_type = party_type_db_;
50.2353 -
50.2354 - identity_ VARCHAR2(20);
50.2355 - party_type_db_ VARCHAR2(20);
50.2356 -BEGIN
50.2357 - General_SYS.Init_Method(lu_name_, '&PKG', 'Check_Cascade_Customer__');
50.2358 -
50.2359 - identity_ := substr(attr_,1,instr(attr_,'^',1,1)-1);
50.2360 - party_type_db_ := 'CUSTOMER';
50.2361 - FOR comp_ IN customer_in_company (identity_, party_type_db_) LOOP
50.2362 - Check_Cascade___(comp_.company, identity_, party_type_db_);
50.2363 - END LOOP;
50.2364 -END Check_Cascade_Customer__;
50.2365 -
50.2366 -PROCEDURE Check_Cascade_Supplier__ (
50.2367 - attr_ IN VARCHAR2 )
50.2368 -IS
50.2369 - CURSOR supplier_in_company (identity_ IN VARCHAR2,
50.2370 - party_type_db_ IN VARCHAR2 ) IS
50.2371 - SELECT company
50.2372 - FROM &TABLE
50.2373 - WHERE identity = identity_
50.2374 - AND party_type = party_type_db_;
50.2375 -
50.2376 - identity_ VARCHAR2(20);
50.2377 - party_type_db_ VARCHAR2(20);
50.2378 -BEGIN
50.2379 - General_SYS.Init_Method(lu_name_, '&PKG', 'Check_Cascade_Supplier__');
50.2380 -
50.2381 - identity_ := substr(attr_,1,instr(attr_,'^',1,1)-1);
50.2382 - party_type_db_ := 'SUPPLIER';
50.2383 - FOR comp_ IN supplier_in_company (identity_, party_type_db_) LOOP
50.2384 - Check_Cascade___(comp_.company, identity_, party_type_db_);
50.2385 - END LOOP;
50.2386 -END Check_Cascade_Supplier__;
50.2387 -
50.2388 -PROCEDURE Cascade_Delete_Customer__ (
50.2389 - attr_ IN VARCHAR2 )
50.2390 -IS
50.2391 - identity_ VARCHAR2(20);
50.2392 - party_type_db_ VARCHAR2(20);
50.2393 - info_ VARCHAR2(2000);
50.2394 -
50.2395 - CURSOR customer_in_company (identity_ IN VARCHAR2,
50.2396 - party_type_db_ IN VARCHAR2 ) IS
50.2397 - SELECT &OBJID objid,
50.2398 - &OBJVERSION objversion
50.2399 - FROM &TABLE
50.2400 - WHERE identity = identity_
50.2401 - AND party_type = party_type_db_;
50.2402 -BEGIN
50.2403 - General_SYS.Init_Method(lu_name_, '&PKG', 'Cascade_Delete_Customer__');
50.2404 -
50.2405 - Check_Cascade_Customer__(attr_);
50.2406 - identity_ := substr(attr_,1,instr(attr_,'^',1,1)-1);
50.2407 - party_type_db_ := 'CUSTOMER';
50.2408 -
50.2409 - FOR comp_ IN customer_in_company (identity_, party_type_db_) LOOP
50.2410 - Remove__(info_, comp_.objid, comp_.objversion, 'DO');
50.2411 - END LOOP;
50.2412 -
50.2413 -END Cascade_Delete_Customer__;
50.2414 -
50.2415 -PROCEDURE Cascade_Delete_Supplier__ (
50.2416 - attr_ IN VARCHAR2 )
50.2417 -IS
50.2418 - identity_ VARCHAR2(20);
50.2419 - party_type_db_ VARCHAR2(20);
50.2420 - info_ VARCHAR2(2000);
50.2421 -
50.2422 - CURSOR supplier_in_company (identity_ IN VARCHAR2,
50.2423 - party_type_db_ IN VARCHAR2 ) IS
50.2424 - SELECT &OBJID objid,
50.2425 - &OBJVERSION objversion
50.2426 - FROM &TABLE
50.2427 - WHERE identity = identity_
50.2428 - AND party_type = party_type_db_;
50.2429 -BEGIN
50.2430 - General_SYS.Init_Method(lu_name_, '&PKG', 'Cascade_Delete_Supplier__');
50.2431 -
50.2432 - Check_Cascade_Supplier__(attr_);
50.2433 - identity_ := substr(attr_,1,instr(attr_,'^',1,1)-1);
50.2434 - party_type_db_ := 'SUPPLIER';
50.2435 -
50.2436 - FOR comp_ IN supplier_in_company (identity_, party_type_db_) LOOP
50.2437 - Remove__(info_, comp_.objid, comp_.objversion, 'DO');
50.2438 - END LOOP;
50.2439 -
50.2440 -END Cascade_Delete_Supplier__;
50.2441 -
50.2442 -FUNCTION Create_Other_Payee_Attr__ (
50.2443 - company_ IN VARCHAR2,
50.2444 - payer_id_ IN VARCHAR2 ) RETURN VARCHAR2
50.2445 -IS
50.2446 - value_attr_ VARCHAR2(32000);
50.2447 -
50.2448 - CURSOR get_supplier IS
50.2449 - SELECT identity
50.2450 - FROM &TABLE
50.2451 - WHERE company = company_
50.2452 - AND other_payee_identity = payer_id_
50.2453 - AND party_type = 'SUPPLIER';
50.2454 -BEGIN
50.2455 - General_SYS.Init_Method(lu_name_, '&PKG', 'Create_Other_Payee_Attr__');
50.2456 -
50.2457 - value_attr_ := payer_id_;
50.2458 - FOR supplier_info_ IN get_supplier LOOP
50.2459 - value_attr_ := value_attr_ || CHR(39) || ',' || CHR(39) || supplier_info_.identity;
50.2460 - END LOOP;
50.2461 -
50.2462 - RETURN value_attr_;
50.2463 -END Create_Other_Payee_Attr__;
50.2464 -
50.2465 -FUNCTION Create_Cus_Other_Payee_Attr__ (
50.2466 - company_ IN VARCHAR2,
50.2467 - payer_id_ IN VARCHAR2 ) RETURN VARCHAR2
50.2468 -IS
50.2469 - value_attr_ VARCHAR2(32000);
50.2470 -
50.2471 - CURSOR get_customer IS
50.2472 - SELECT identity
50.2473 - FROM &TABLE
50.2474 - WHERE company = company_
50.2475 - AND other_payee_identity = payer_id_
50.2476 - AND party_type = 'CUSTOMER';
50.2477 -BEGIN
50.2478 - General_SYS.Init_Method(lu_name_, '&PKG', 'Create_Cus_Other_Payee_Attr__');
50.2479 -
50.2480 - value_attr_ := payer_id_;
50.2481 - FOR customer_info_ IN get_customer LOOP
50.2482 - value_attr_ := value_attr_ || CHR(39) || ',' || CHR(39) || customer_info_.identity;
50.2483 - END LOOP;
50.2484 -
50.2485 - RETURN value_attr_;
50.2486 -END Create_Cus_Other_Payee_Attr__;
50.2487 ------------------------------------------------------------------------------
50.2488 --------------------- LU SPECIFIC PROTECTED METHODS --------------------------
50.2489 ------------------------------------------------------------------------------
50.2490 -
50.2491 -
50.2492 ------------------------------------------------------------------------------
50.2493 --------------------- LU SPECIFIC PUBLIC METHODS -----------------------------
50.2494 ------------------------------------------------------------------------------
50.2495 -
50.2496 -FUNCTION Get_Priority (
50.2497 - company_ IN VARCHAR2,
50.2498 - identity_ IN VARCHAR2,
50.2499 - party_type_ IN VARCHAR2 ) RETURN NUMBER
50.2500 -IS
50.2501 - temp_ Public_Rec;
50.2502 -BEGIN
50.2503 - temp_ := Get(company_, identity_, Party_Type_API.Encode(party_type_));
50.2504 - RETURN temp_.priority;
50.2505 -END Get_Priority;
50.2506 -
50.2507 -FUNCTION Get_Blocked_For_Payment (
50.2508 - company_ IN VARCHAR2,
50.2509 - identity_ IN VARCHAR2,
50.2510 - party_type_ IN VARCHAR2 ) RETURN VARCHAR2
50.2511 -IS
50.2512 - temp_ Public_Rec;
50.2513 -BEGIN
50.2514 - temp_ := Get(company_, identity_, Party_Type_API.Encode(party_type_));
50.2515 - RETURN temp_.blocked_for_payment;
50.2516 -END Get_Blocked_For_Payment;
50.2517 -
50.2518 -FUNCTION Get_Payment_Delay (
50.2519 - company_ IN VARCHAR2,
50.2520 - identity_ IN VARCHAR2,
50.2521 - party_type_ IN VARCHAR2 ) RETURN NUMBER
50.2522 -IS
50.2523 - temp_ Public_Rec;
50.2524 -BEGIN
50.2525 - temp_ := Get(company_, identity_, Party_Type_API.Encode(party_type_));
50.2526 - RETURN NVL(temp_.payment_delay, 0);
50.2527 -END Get_Payment_Delay;
50.2528 -
50.2529 -FUNCTION Get_Amount_Tolerance (
50.2530 - company_ IN VARCHAR2,
50.2531 - identity_ IN VARCHAR2,
50.2532 - party_type_ IN VARCHAR2 ) RETURN NUMBER
50.2533 -IS
50.2534 - temp_ Public_Rec;
50.2535 -BEGIN
50.2536 - temp_ := Get(company_, identity_, Party_Type_API.Encode(party_type_));
50.2537 - RETURN temp_.amount_tolerance;
50.2538 -END Get_Amount_Tolerance;
50.2539 -
50.2540 -FUNCTION Get_Percent_Tolerance (
50.2541 - company_ IN VARCHAR2,
50.2542 - identity_ IN VARCHAR2,
50.2543 - party_type_ IN VARCHAR2 ) RETURN NUMBER
50.2544 -IS
50.2545 - temp_ Public_Rec;
50.2546 -BEGIN
50.2547 - temp_ := Get(company_, identity_, Party_Type_API.Encode(party_type_));
50.2548 - RETURN temp_.percent_tolerance;
50.2549 -END Get_Percent_Tolerance;
50.2550 -
50.2551 -FUNCTION Get_Disc_Days_Tolerance (
50.2552 - company_ IN VARCHAR2,
50.2553 - identity_ IN VARCHAR2,
50.2554 - party_type_ IN VARCHAR2 ) RETURN NUMBER
50.2555 -IS
50.2556 - temp_ &TABLE..disc_days_tolerance%TYPE;
50.2557 - CURSOR get_attr IS
50.2558 - SELECT disc_days_tolerance
50.2559 - FROM &TABLE
50.2560 - WHERE company = company_
50.2561 - AND identity = identity_
50.2562 - AND party_type = party_type_;
50.2563 -BEGIN
50.2564 - OPEN get_attr;
50.2565 - FETCH get_attr INTO temp_;
50.2566 - CLOSE get_attr;
50.2567 - RETURN temp_;
50.2568 -END Get_Disc_Days_Tolerance;
50.2569 -
50.2570 -FUNCTION Get_Netting_Allowed (
50.2571 - company_ IN VARCHAR2,
50.2572 - identity_ IN VARCHAR2,
50.2573 - party_type_ IN VARCHAR2 ) RETURN VARCHAR2
50.2574 -IS
50.2575 - temp_ &TABLE..netting_allowed%TYPE;
50.2576 - CURSOR get_attr (party_type_db_ IN VARCHAR2) IS
50.2577 - SELECT netting_allowed
50.2578 - FROM &TABLE
50.2579 - WHERE company = company_
50.2580 - AND identity = identity_
50.2581 - AND party_type = party_type_db_;
50.2582 -BEGIN
50.2583 - IF (NOT Company_Finance_API.Is_User_Authorized(company_)) THEN
50.2584 - RETURN temp_;
50.2585 - END IF;
50.2586 - OPEN get_attr(Party_Type_API.Encode(party_type_));
50.2587 - FETCH get_attr INTO temp_;
50.2588 - CLOSE get_attr;
50.2589 - RETURN temp_;
50.2590 -END Get_Netting_Allowed;
50.2591 -
50.2592 -FUNCTION Get_Check_Recipient (
50.2593 - company_ IN VARCHAR2,
50.2594 - identity_ IN VARCHAR2,
50.2595 - party_type_ IN VARCHAR2 ) RETURN VARCHAR2
50.2596 -IS
50.2597 - temp_ &TABLE..check_recipient%TYPE;
50.2598 - CURSOR get_attr (party_type_db_ IN VARCHAR2) IS
50.2599 - SELECT check_recipient
50.2600 - FROM &TABLE
50.2601 - WHERE company = company_
50.2602 - AND identity = identity_
50.2603 - AND party_type = party_type_db_;
50.2604 -BEGIN
50.2605 - OPEN get_attr(Party_Type_API.Encode(party_type_));
50.2606 - FETCH get_attr INTO temp_;
50.2607 - CLOSE get_attr;
50.2608 - RETURN Check_Recipient_API.Decode(temp_);
50.2609 -END Get_Check_Recipient;
50.2610 -
50.2611 -FUNCTION Get_Check_Recipient_Db (
50.2612 - company_ IN VARCHAR2,
50.2613 - identity_ IN VARCHAR2,
50.2614 - party_type_ IN VARCHAR2 ) RETURN VARCHAR2
50.2615 -IS
50.2616 - temp_ &TABLE..check_recipient%TYPE;
50.2617 - CURSOR get_attr (party_type_db_ IN VARCHAR2) IS
50.2618 - SELECT check_recipient
50.2619 - FROM &TABLE
50.2620 - WHERE company = company_
50.2621 - AND identity = identity_
50.2622 - AND party_type = party_type_db_;
50.2623 -BEGIN
50.2624 - OPEN get_attr(Party_Type_API.Encode(party_type_));
50.2625 - FETCH get_attr INTO temp_;
50.2626 - CLOSE get_attr;
50.2627 - RETURN temp_;
50.2628 -END Get_Check_Recipient_Db;
50.2629 -
50.2630 -FUNCTION Get_Next_Pay_Matching_Id (
50.2631 - company_ IN VARCHAR2,
50.2632 - identity_ IN VARCHAR2,
50.2633 - party_type_ IN VARCHAR2 ) RETURN VARCHAR2
50.2634 -IS
50.2635 - dummy_ NUMBER;
50.2636 -BEGIN
50.2637 - General_SYS.Init_Method(lu_name_, '&PKG', 'Get_Next_Pay_Matching_Id');
50.2638 - dummy_ := Get_Payment_Matching_Id ( company_,
50.2639 - identity_,
50.2640 - party_type_ ) + 1;
50.2641 - UPDATE identity_pay_info_tab
50.2642 - SET next_payment_matching_id = dummy_
50.2643 - WHERE company = company_
50.2644 - AND identity = identity_
50.2645 - AND party_type = party_type_ ;
50.2646 - RETURN dummy_ ;
50.2647 -END Get_Next_Pay_Matching_Id;
50.2648 -
50.2649 -FUNCTION Get_Payment_Matching_Id (
50.2650 - company_ IN VARCHAR2,
50.2651 - identity_ IN VARCHAR2,
50.2652 - party_type_ IN VARCHAR2 ) RETURN VARCHAR2
50.2653 -IS
50.2654 - CURSOR get_matching_id IS
50.2655 - SELECT next_payment_matching_id
50.2656 - FROM &TABLE
50.2657 - WHERE company = company_
50.2658 - AND identity = identity_
50.2659 - AND party_type = party_type_ ;
50.2660 -
50.2661 - dummy_ NUMBER;
50.2662 -BEGIN
50.2663 - General_SYS.Init_Method(lu_name_, '&PKG', 'Get_Payment_Matching_Id');
50.2664 - OPEN get_matching_id;
50.2665 - FETCH get_matching_id INTO dummy_;
50.2666 - CLOSE get_matching_id;
50.2667 -
50.2668 - RETURN dummy_ ;
50.2669 -END Get_Payment_Matching_Id;
50.2670 -
50.2671 -FUNCTION Get_Format_No (
50.2672 - company_ IN VARCHAR2,
50.2673 - identity_ IN VARCHAR2,
50.2674 - party_type_ IN VARCHAR2 ) RETURN NUMBER
50.2675 -IS
50.2676 - temp_ &TABLE..format_no%TYPE;
50.2677 - CURSOR get_attr (party_type_db_ IN VARCHAR2) IS
50.2678 - SELECT format_no
50.2679 - FROM &TABLE
50.2680 - WHERE company = company_
50.2681 - AND identity = identity_
50.2682 - AND party_type = party_type_db_;
50.2683 -BEGIN
50.2684 - IF (NOT Company_Finance_API.Is_User_Authorized(company_)) THEN
50.2685 - RETURN temp_;
50.2686 - END IF;
50.2687 - OPEN get_attr(Party_Type_API.Encode(party_type_));
50.2688 - FETCH get_attr INTO temp_;
50.2689 - CLOSE get_attr;
50.2690 - RETURN temp_;
50.2691 -END Get_Format_No;
50.2692 -
50.2693 -FUNCTION Get_Other_Payee_Ded_Group_Desc (
50.2694 - company_ IN VARCHAR2,
50.2695 - payee_identity_ IN VARCHAR2,
50.2696 - party_type_ IN VARCHAR2 ) RETURN VARCHAR2
50.2697 -IS
50.2698 - deduction_group_ VARCHAR2(20);
50.2699 -BEGIN
50.2700 - deduction_group_ := Get_Deduction_Group(company_,
50.2701 - payee_identity_,
50.2702 - party_type_ );
50.2703 - IF (deduction_group_ IS NULL) THEN
50.2704 - RETURN NULL;
50.2705 - END IF;
50.2706 -
50.2707 - RETURN Deduction_Group_API.Get_Description(company_,deduction_group_);
50.2708 -END Get_Other_Payee_Ded_Group_Desc;
50.2709 -
50.2710 -FUNCTION Get_Deduction_Group (
50.2711 - company_ IN VARCHAR2,
50.2712 - identity_ IN VARCHAR2,
50.2713 - party_type_ IN VARCHAR2 ) RETURN VARCHAR2
50.2714 -IS
50.2715 - temp_ &TABLE..deduction_group%TYPE;
50.2716 - CURSOR get_attr (party_type_db_ IN VARCHAR2) IS
50.2717 - SELECT deduction_group
50.2718 - FROM &TABLE
50.2719 - WHERE company = company_
50.2720 - AND identity = identity_
50.2721 - AND party_type = party_type_db_;
50.2722 -BEGIN
50.2723 - IF (NOT Company_Finance_API.Is_User_Authorized(company_)) THEN
50.2724 - RETURN temp_;
50.2725 - END IF;
50.2726 - OPEN get_attr(Party_Type_API.Encode(party_type_));
50.2727 - FETCH get_attr INTO temp_;
50.2728 - CLOSE get_attr;
50.2729 - RETURN temp_;
50.2730 -END Get_Deduction_Group;
50.2731 -
50.2732 -FUNCTION Get_Template_Id (
50.2733 - company_ IN VARCHAR2,
50.2734 - identity_ IN VARCHAR2,
50.2735 - party_type_ IN VARCHAR2 ) RETURN VARCHAR2
50.2736 -IS
50.2737 - temp_ &TABLE..template_id%TYPE;
50.2738 - CURSOR get_attr IS
50.2739 - SELECT template_id
50.2740 - FROM &TABLE
50.2741 - WHERE company = company_
50.2742 - AND identity = identity_
50.2743 - AND party_type = party_type_;
50.2744 -BEGIN
50.2745 - OPEN get_attr;
50.2746 - FETCH get_attr INTO temp_;
50.2747 - CLOSE get_attr;
50.2748 - RETURN temp_;
50.2749 -END Get_Template_Id;
50.2750 -
50.2751 -FUNCTION Get_Corporation_Id (
50.2752 - company_ IN VARCHAR2,
50.2753 - identity_ IN VARCHAR2,
50.2754 - party_type_ IN VARCHAR2 ) RETURN VARCHAR2
50.2755 -IS
50.2756 - temp_ &TABLE..corporation_id%TYPE;
50.2757 - CURSOR get_attr (party_type_db_ IN VARCHAR2) IS
50.2758 - SELECT corporation_id
50.2759 - FROM &TABLE
50.2760 - WHERE company = company_
50.2761 - AND identity = identity_
50.2762 - AND party_type = party_type_db_;
50.2763 -BEGIN
50.2764 - IF (NOT Company_Finance_API.Is_User_Authorized(company_)) THEN
50.2765 - RETURN temp_;
50.2766 - END IF;
50.2767 - OPEN get_attr(Party_Type_API.Encode(party_type_));
50.2768 - FETCH get_attr INTO temp_;
50.2769 - CLOSE get_attr;
50.2770 - RETURN temp_;
50.2771 -END Get_Corporation_Id;
50.2772 -
50.2773 -FUNCTION Get_Member_Id (
50.2774 - company_ IN VARCHAR2,
50.2775 - identity_ IN VARCHAR2,
50.2776 - party_type_ IN VARCHAR2 ) RETURN VARCHAR2
50.2777 -IS
50.2778 - temp_ &TABLE..member_id%TYPE;
50.2779 - CURSOR get_attr (party_type_db_ IN VARCHAR2) IS
50.2780 - SELECT member_id
50.2781 - FROM &TABLE
50.2782 - WHERE company = company_
50.2783 - AND identity = identity_
50.2784 - AND party_type = party_type_db_;
50.2785 -BEGIN
50.2786 - IF (NOT Company_Finance_API.Is_User_Authorized(company_)) THEN
50.2787 - RETURN temp_;
50.2788 - END IF;
50.2789 - OPEN get_attr(Party_Type_API.Encode(party_type_));
50.2790 - FETCH get_attr INTO temp_;
50.2791 - CLOSE get_attr;
50.2792 - RETURN temp_;
50.2793 -END Get_Member_Id;
50.2794 -
50.2795 -FUNCTION Get_Send_Reminder_To_Payer (
50.2796 - company_ IN VARCHAR2,
50.2797 - identity_ IN VARCHAR2,
50.2798 - party_type_ IN VARCHAR2 ) RETURN VARCHAR2
50.2799 -IS
50.2800 - temp_ &TABLE..send_reminder_to_payer%TYPE;
50.2801 - CURSOR get_attr (party_type_db_ IN VARCHAR2) IS
50.2802 - SELECT send_reminder_to_payer
50.2803 - FROM &TABLE
50.2804 - WHERE company = company_
50.2805 - AND identity = identity_
50.2806 - AND party_type = party_type_db_;
50.2807 -BEGIN
50.2808 - IF (NOT Company_Finance_API.Is_User_Authorized(company_)) THEN
50.2809 - RETURN temp_;
50.2810 - END IF;
50.2811 - OPEN get_attr(Party_Type_API.Encode(party_type_));
50.2812 - FETCH get_attr INTO temp_;
50.2813 - CLOSE get_attr;
50.2814 - RETURN temp_;
50.2815 -END Get_Send_Reminder_To_Payer;
50.2816 -
50.2817 -FUNCTION Get_Send_Interest_Inv_To_Payer (
50.2818 - company_ IN VARCHAR2,
50.2819 - identity_ IN VARCHAR2,
50.2820 - party_type_ IN VARCHAR2 ) RETURN VARCHAR2
50.2821 -IS
50.2822 - temp_ &TABLE..send_interest_inv_to_payer%TYPE;
50.2823 - CURSOR get_attr (party_type_db_ IN VARCHAR2) IS
50.2824 - SELECT send_interest_inv_to_payer
50.2825 - FROM &TABLE
50.2826 - WHERE company = company_
50.2827 - AND identity = identity_
50.2828 - AND party_type = party_type_db_;
50.2829 -BEGIN
50.2830 - IF (NOT Company_Finance_API.Is_User_Authorized(company_)) THEN
50.2831 - RETURN temp_;
50.2832 - END IF;
50.2833 - OPEN get_attr(Party_Type_API.Encode(party_type_));
50.2834 - FETCH get_attr INTO temp_;
50.2835 - CLOSE get_attr;
50.2836 - RETURN temp_;
50.2837 -END Get_Send_Interest_Inv_To_Payer;
50.2838 -
50.2839 -FUNCTION Get_Payment_Advice (
50.2840 - company_ IN VARCHAR2,
50.2841 - identity_ IN VARCHAR2,
50.2842 - party_type_ IN VARCHAR2 ) RETURN VARCHAR2
50.2843 -IS
50.2844 - temp_ &TABLE..payment_advice%TYPE;
50.2845 - CURSOR get_attr (party_type_db_ IN VARCHAR2) IS
50.2846 - SELECT payment_advice
50.2847 - FROM &TABLE
50.2848 - WHERE company = company_
50.2849 - AND identity = identity_
50.2850 - AND party_type = party_type_db_;
50.2851 -BEGIN
50.2852 - IF (NOT Company_Finance_API.Is_User_Authorized(company_)) THEN
50.2853 - RETURN temp_;
50.2854 - END IF;
50.2855 - OPEN get_attr(Party_Type_API.Encode(party_type_));
50.2856 - FETCH get_attr INTO temp_;
50.2857 - CLOSE get_attr;
50.2858 - RETURN Payment_Advice_API.Decode(temp_);
50.2859 -END Get_Payment_Advice;
50.2860 -
50.2861 -FUNCTION Get_Payment_Advice_Db (
50.2862 - company_ IN VARCHAR2,
50.2863 - identity_ IN VARCHAR2,
50.2864 - party_type_ IN VARCHAR2 ) RETURN VARCHAR2
50.2865 -IS
50.2866 - temp_ &TABLE..payment_advice%TYPE;
50.2867 - CURSOR get_attr (party_type_db_ IN VARCHAR2) IS
50.2868 - SELECT payment_advice
50.2869 - FROM &TABLE
50.2870 - WHERE company = company_
50.2871 - AND identity = identity_
50.2872 - AND party_type = party_type_db_;
50.2873 -BEGIN
50.2874 - IF (NOT Company_Finance_API.Is_User_Authorized(company_)) THEN
50.2875 - RETURN temp_;
50.2876 - END IF;
50.2877 - OPEN get_attr(Party_Type_API.Encode(party_type_));
50.2878 - FETCH get_attr INTO temp_;
50.2879 - CLOSE get_attr;
50.2880 - RETURN temp_;
50.2881 -END Get_Payment_Advice_Db;
50.2882 -
50.2883 -
50.2884 -FUNCTION Get_Other_Payee_Identity (
50.2885 - company_ IN VARCHAR2,
50.2886 - identity_ IN VARCHAR2,
50.2887 - party_type_ IN VARCHAR2 ) RETURN VARCHAR2
50.2888 -IS
50.2889 - temp_ Public_Rec;
50.2890 -BEGIN
50.2891 - temp_ := Get(company_, identity_, Party_Type_API.Encode(party_type_));
50.2892 - RETURN temp_.other_payee_identity;
50.2893 -END Get_Other_Payee_Identity;
50.2894 -
50.2895 -FUNCTION Get_Interest_Template (
50.2896 - company_ IN VARCHAR2,
50.2897 - identity_ IN VARCHAR2,
50.2898 - party_type_ IN VARCHAR2 ) RETURN VARCHAR2
50.2899 -IS
50.2900 - temp_ Public_Rec;
50.2901 -BEGIN
50.2902 - temp_ := Get(company_, identity_, Party_Type_API.Encode(party_type_));
50.2903 - RETURN temp_.interest_template;
50.2904 -END Get_Interest_Template;
50.2905 -
50.2906 -FUNCTION Get_Reminder_Template (
50.2907 - company_ IN VARCHAR2,
50.2908 - identity_ IN VARCHAR2,
50.2909 - party_type_ IN VARCHAR2 ) RETURN VARCHAR2
50.2910 -IS
50.2911 - temp_ Public_Rec;
50.2912 -BEGIN
50.2913 - temp_ := Get(company_, identity_, Party_Type_API.Encode(party_type_));
50.2914 - RETURN temp_.reminder_template;
50.2915 -END Get_Reminder_Template;
50.2916 -
50.2917 -FUNCTION Get_Rule_Id (
50.2918 - company_ IN VARCHAR2,
50.2919 - identity_ IN VARCHAR2,
50.2920 - party_type_ IN VARCHAR2 ) RETURN VARCHAR2
50.2921 -IS
50.2922 - temp_ &TABLE..rule_id%TYPE;
50.2923 - CURSOR get_attr (party_type_db_ IN VARCHAR2) IS
50.2924 - SELECT rule_id
50.2925 - FROM &TABLE
50.2926 - WHERE company = company_
50.2927 - AND identity = identity_
50.2928 - AND party_type = party_type_db_;
50.2929 -BEGIN
50.2930 - IF (NOT Company_Finance_API.Is_User_Authorized(company_)) THEN
50.2931 - RETURN temp_;
50.2932 - END IF;
50.2933 - OPEN get_attr(Party_Type_API.Encode(party_type_));
50.2934 - FETCH get_attr INTO temp_;
50.2935 - CLOSE get_attr;
50.2936 - RETURN temp_;
50.2937 -END Get_Rule_Id;
50.2938 -
50.2939 -FUNCTION Get_Payment_Receipt_Type (
50.2940 - company_ IN VARCHAR2,
50.2941 - identity_ IN VARCHAR2,
50.2942 - party_type_ IN VARCHAR2 ) RETURN VARCHAR2
50.2943 -IS
50.2944 - temp_ &TABLE..payment_receipt_type%TYPE;
50.2945 - CURSOR get_attr (party_type_db_ IN VARCHAR2) IS
50.2946 - SELECT payment_receipt_type
50.2947 - FROM &TABLE
50.2948 - WHERE company = company_
50.2949 - AND identity = identity_
50.2950 - AND party_type = party_type_db_;
50.2951 -BEGIN
50.2952 - OPEN get_attr(Party_Type_API.Encode(party_type_));
50.2953 - FETCH get_attr INTO temp_;
50.2954 - CLOSE get_attr;
50.2955 - RETURN Payment_Receipt_Type_API.Decode(temp_);
50.2956 -END Get_Payment_Receipt_Type;
50.2957 -
50.2958 -FUNCTION Get_Payment_Receipt_Type_Db (
50.2959 - company_ IN VARCHAR2,
50.2960 - identity_ IN VARCHAR2,
50.2961 - party_type_ IN VARCHAR2 ) RETURN VARCHAR2
50.2962 -IS
50.2963 - temp_ &TABLE..payment_receipt_type%TYPE;
50.2964 - CURSOR get_attr (party_type_db_ IN VARCHAR2) IS
50.2965 - SELECT payment_receipt_type
50.2966 - FROM &TABLE
50.2967 - WHERE company = company_
50.2968 - AND identity = identity_
50.2969 - AND party_type = party_type_db_;
50.2970 -BEGIN
50.2971 - OPEN get_attr(Party_Type_API.Encode(party_type_));
50.2972 - FETCH get_attr INTO temp_;
50.2973 - CLOSE get_attr;
50.2974 - RETURN temp_;
50.2975 -END Get_Payment_Receipt_Type_Db;
50.2976 -
50.2977 -PROCEDURE Instance_Exists (
50.2978 - info_ OUT VARCHAR2,
50.2979 - company_ IN VARCHAR2,
50.2980 - identity_ IN VARCHAR2,
50.2981 - party_type_ IN VARCHAR2 )
50.2982 -IS
50.2983 - CURSOR getrec (party_type_db_ IN VARCHAR2) IS
50.2984 - SELECT '1'
50.2985 - FROM &TABLE
50.2986 - WHERE company = company_
50.2987 - AND identity = identity_
50.2988 - AND party_type = party_type_db_;
50.2989 - lu_rec_ getrec%ROWTYPE;
50.2990 -BEGIN
50.2991 - General_SYS.Init_Method(lu_name_, '&PKG', 'Instance_Exists');
50.2992 - OPEN getrec(Party_Type_API.Encode(party_type_));
50.2993 - FETCH getrec INTO lu_rec_;
50.2994 - IF (getrec%FOUND) THEN
50.2995 - info_ := 'TRUE';
50.2996 - ELSE
50.2997 - info_ := 'FALSE';
50.2998 - END IF;
50.2999 - CLOSE getrec;
50.3000 -END Instance_Exists;
50.3001 -
50.3002 -PROCEDURE Create_Party_Type_Id (
50.3003 - company_ IN VARCHAR2,
50.3004 - identity_ IN VARCHAR2,
50.3005 - party_type_ IN VARCHAR2 )
50.3006 -IS
50.3007 -BEGIN
50.3008 - General_SYS.Init_Method(lu_name_, '&PKG', 'Create_Party_Type_Id');
50.3009 - Create_Identity_Pay_Info(company_, identity_, party_type_);
50.3010 -END Create_Party_Type_Id;
50.3011 -
50.3012 -PROCEDURE Create_Identity_Pay_Info (
50.3013 - company_ IN VARCHAR2,
50.3014 - identity_ IN VARCHAR2,
50.3015 - party_type_ IN VARCHAR2 )
50.3016 -IS
50.3017 - info_ VARCHAR2(2000);
50.3018 - objid_ &VIEW..objid%TYPE;
50.3019 - objversion_ &VIEW..objversion%TYPE;
50.3020 - attr_ VARCHAR2(2000);
50.3021 - def_template_ VARCHAR2(20);
50.3022 - nodefinteresttemp EXCEPTION;
50.3023 - nodefremindertemp EXCEPTION;
50.3024 - party_type_db_ &TABLE..party_type%TYPE;
50.3025 -BEGIN
50.3026 - General_SYS.Init_Method(lu_name_, '&PKG', 'Create_Identity_Pay_Info');
50.3027 -
50.3028 - party_type_db_ := Party_Type_API.Encode(party_type_);
50.3029 -
50.3030 - New__(info_, objid_, objversion_, attr_, 'PREPARE');
50.3031 - Client_SYS.Add_To_Attr('COMPANY', company_, attr_);
50.3032 - Client_SYS.Add_To_Attr('IDENTITY', identity_, attr_);
50.3033 - Client_SYS.Add_To_Attr('PARTY_TYPE', party_type_, attr_);
50.3034 - IF (party_type_db_ = 'SUPPLIER') THEN
50.3035 - Client_SYS.Add_To_Attr('BLOCKED_FOR_PAYMENT', 'FALSE', attr_);
50.3036 - Client_SYS.Add_To_Attr('PRIORITY', 1, attr_);
50.3037 - Client_SYS.Add_To_Attr('CHECK_RECIPIENT', 'PAYEE', attr_);
50.3038 - ELSIF (party_type_db_ = 'CUSTOMER') THEN
50.3039 - def_template_ := Interest_Template_API.Get_Default_Template(company_);
50.3040 - IF (def_template_ IS NULL) THEN
50.3041 - RAISE nodefinteresttemp;
50.3042 - ELSE
50.3043 - Client_SYS.Add_To_Attr('INTEREST_TEMPLATE', def_template_, attr_);
50.3044 - END IF;
50.3045 - def_template_ := Reminder_Template_API.Get_Default_Template(company_);
50.3046 - IF (def_template_ IS NULL) THEN
50.3047 - RAISE nodefremindertemp;
50.3048 - ELSE
50.3049 - Client_SYS.Add_To_Attr('REMINDER_TEMPLATE', def_template_, attr_);
50.3050 - END IF;
50.3051 - IF Company_Invoice_Info_API.Get_Use_Tax_Invoice(company_) = 'TRUE' THEN
50.3052 - Client_SYS.Add_To_Attr('PAYMENT_RECEIPT_TYPE_DB', 'AT_MATCHING', attr_);
50.3053 - ELSE
50.3054 - Client_SYS.Add_To_Attr('PAYMENT_RECEIPT_TYPE_DB', 'NO_RECEIPT', attr_);
50.3055 - END IF;
50.3056 - END IF;
50.3057 - New__(info_, objid_, objversion_, attr_, 'DO');
50.3058 -EXCEPTION
50.3059 - WHEN nodefremindertemp THEN
50.3060 - Error_SYS.Record_General(lu_name_, 'NODEFREMINDERTEMP: There is no default reminder template defined');
50.3061 - WHEN nodefinteresttemp THEN
50.3062 - Error_SYS.Record_General(lu_name_, 'NODEFINTERESTTEMP: There is no default interest template defined');
50.3063 -END Create_Identity_Pay_Info;
50.3064 -
50.3065 -FUNCTION Validate_Identity (
50.3066 - company_ IN VARCHAR2,
50.3067 - party_type_ IN VARCHAR2,
50.3068 - identity_ IN VARCHAR2 ) RETURN VARCHAR2
50.3069 -IS
50.3070 - dummy_ NUMBER;
50.3071 - CURSOR exist_identity (party_type_db_ IN VARCHAR2) IS
50.3072 - SELECT 1
50.3073 - FROM &TABLE
50.3074 - WHERE company = company_
50.3075 - AND party_type = party_type_db_
50.3076 - AND identity = identity_ ;
50.3077 -BEGIN
50.3078 - OPEN exist_identity(Party_Type_API.Encode(party_type_));
50.3079 - FETCH exist_identity INTO dummy_;
50.3080 - IF (exist_identity %FOUND) THEN
50.3081 - CLOSE exist_identity ;
50.3082 - RETURN('TRUE');
50.3083 - END IF;
50.3084 - CLOSE exist_identity ;
50.3085 - RETURN('FALSE');
50.3086 -END Validate_Identity;
50.3087 -
50.3088 -PROCEDURE Fetch_Tolerance (
50.3089 - amount_tolerance_ OUT NUMBER,
50.3090 - percent_tolerance_ OUT NUMBER,
50.3091 - company_ IN VARCHAR2,
50.3092 - identity_ IN VARCHAR2,
50.3093 - party_type_ IN VARCHAR2,
50.3094 - currency_ IN VARCHAR2,
50.3095 - curr_rate_ IN NUMBER,
50.3096 - conv_factor_ IN NUMBER,
50.3097 - date_ IN DATE,
50.3098 - action_ IN VARCHAR2 )
50.3099 -IS
50.3100 - acc_currency_ VARCHAR2(20);
50.3101 - div_factor_ NUMBER;
50.3102 - amount_tolerance_acc_curr_ NUMBER;
50.3103 - currency_rate_ NUMBER;
50.3104 - dummy_ VARCHAR2(5);
50.3105 - party_type_db_ VARCHAR2(20);
50.3106 -
50.3107 - CURSOR get_identity_tolerance_ IS
50.3108 - SELECT percent_tolerance, amount_tolerance
50.3109 - FROM &TABLE
50.3110 - WHERE company = company_
50.3111 - AND identity = identity_
50.3112 - AND party_type = party_type_db_;
50.3113 -
50.3114 - CURSOR get_company_tolerance_ IS
50.3115 - SELECT percent_tolerance, amount_tolerance
50.3116 - FROM COMPANY_PAY_INFO_TAB
50.3117 - WHERE company = company_;
50.3118 -
50.3119 -BEGIN
50.3120 - General_SYS.Init_Method(lu_name_, '&PKG', 'Fetch_Tolerance');
50.3121 -
50.3122 - party_type_db_ := Party_Type_API.Encode(party_type_);
50.3123 -
50.3124 - IF party_type_db_ = 'CUSTOMER' THEN
50.3125 - OPEN get_identity_tolerance_;
50.3126 - FETCH get_identity_tolerance_ INTO percent_tolerance_, amount_tolerance_acc_curr_;
50.3127 - CLOSE get_identity_tolerance_;
50.3128 -
50.3129 - -- general payment tolerance
50.3130 - IF percent_tolerance_ IS NULL AND amount_tolerance_acc_curr_ IS NULL THEN
50.3131 - OPEN get_company_tolerance_;
50.3132 - FETCH get_company_tolerance_ INTO percent_tolerance_, amount_tolerance_acc_curr_;
50.3133 - CLOSE get_company_tolerance_;
50.3134 - END IF;
50.3135 -
50.3136 - ELSIF party_type_db_ = 'SUPPLIER' THEN
50.3137 - -- general payment tolerance
50.3138 - OPEN get_company_tolerance_;
50.3139 - FETCH get_company_tolerance_ INTO percent_tolerance_, amount_tolerance_acc_curr_;
50.3140 - CLOSE get_company_tolerance_;
50.3141 - END IF;
50.3142 -
50.3143 - IF action_ = 'NOCALCULATE' THEN
50.3144 - amount_tolerance_ := amount_tolerance_acc_curr_;
50.3145 - RETURN;
50.3146 - END IF;
50.3147 -
50.3148 - acc_currency_ := Company_Finance_API.Get_Currency_Code(company_);
50.3149 -
50.3150 - IF acc_currency_ = currency_ THEN
50.3151 - amount_tolerance_ := amount_tolerance_acc_curr_;
50.3152 - RETURN;
50.3153 - END IF;
50.3154 - div_factor_:= conv_factor_;
50.3155 - currency_rate_ := curr_rate_;
50.3156 - IF ( (div_factor_ IS NULL) OR (currency_rate_ IS NULL)) THEN
50.3157 - Payment_Library_API.Get_Currency_Rate(
50.3158 - currency_rate_,
50.3159 - div_factor_,
50.3160 - dummy_,
50.3161 - dummy_,
50.3162 - company_,
50.3163 - currency_,
50.3164 - NVL( date_, sysdate),
50.3165 - NULL,
50.3166 - party_type_db_,
50.3167 - identity_
50.3168 - );
50.3169 - END IF;
50.3170 - IF (date_ IS NOT NULL) AND ((div_factor_ IS NULL) OR (currency_rate_ IS NULL)) THEN
50.3171 - Payment_Library_API.Get_Currency_Rate(
50.3172 - currency_rate_,
50.3173 - div_factor_,
50.3174 - dummy_,
50.3175 - dummy_,
50.3176 - company_,
50.3177 - currency_,
50.3178 - sysdate,
50.3179 - NULL,
50.3180 - party_type_db_,
50.3181 - identity_
50.3182 - );
50.3183 - END IF;
50.3184 -
50.3185 - Payment_Library_API.Recalculate_To_Curr_Round(
50.3186 - amount_tolerance_,
50.3187 - company_,
50.3188 - amount_tolerance_acc_curr_,
50.3189 - curr_rate_,
50.3190 - div_factor_,
50.3191 - currency_);
50.3192 -END Fetch_Tolerance;
50.3193 -
50.3194 -PROCEDURE Copy_Payway_Per_Identity___ (
50.3195 - company_ IN VARCHAR2,
50.3196 - identity_ IN VARCHAR2,
50.3197 - party_type_db_ IN VARCHAR2,
50.3198 - new_identity_ IN VARCHAR2 )
50.3199 -IS
50.3200 - CURSOR get_pay_way IS
50.3201 - SELECT *
50.3202 - FROM PAYMENT_WAY_PER_IDENTITY_TAB
50.3203 - WHERE company = company_
50.3204 - AND identity = identity_
50.3205 - AND party_type = party_type_db_;
50.3206 -BEGIN
50.3207 - FOR pay_way_ IN get_pay_way LOOP
50.3208 - INSERT INTO PAYMENT_WAY_PER_IDENTITY_TAB (company, identity, party_type,
50.3209 - way_id, default_payment_way, rowversion )
50.3210 - VALUES (pay_way_.company, new_identity_, pay_way_.party_type,
50.3211 - pay_way_.way_id, pay_way_.default_payment_way, 1 );
50.3212 - END LOOP;
50.3213 -END Copy_Payway_Per_Identity___;
50.3214 -
50.3215 -PROCEDURE Copy_Payment_Address___ (
50.3216 - company_ IN VARCHAR2,
50.3217 - identity_ IN VARCHAR2,
50.3218 - party_type_db_ IN VARCHAR2,
50.3219 - new_identity_ IN VARCHAR2 )
50.3220 -IS
50.3221 - CURSOR get_pay_addr IS
50.3222 - SELECT *
50.3223 - FROM PAYMENT_ADDRESS_TAB
50.3224 - WHERE company = company_
50.3225 - AND identity = identity_
50.3226 - AND party_type = party_type_db_;
50.3227 -BEGIN
50.3228 - FOR pay_addr_ IN get_pay_addr LOOP
50.3229 - -- Bug 72177, Begin, Added bic_code
50.3230 - INSERT INTO PAYMENT_ADDRESS_TAB (company, identity, party_type, way_id,
50.3231 - address_id,description, default_address,
50.3232 - data1, data2, data3, data4, data5, data6,
50.3233 - data7, data8, data9, data10, data11, data12,
50.3234 - data13, data14, data15, data16, data17, data18,
50.3235 - data19, data20, data21, data22,
50.3236 - account, bic_code, rowversion, rowtype )
50.3237 - VALUES (pay_addr_.company, new_identity_, pay_addr_.party_type, pay_addr_.way_id,
50.3238 - pay_addr_.address_id,
50.3239 - pay_addr_.description, pay_addr_.default_address,
50.3240 - pay_addr_.data1, pay_addr_.data2, pay_addr_.data3,
50.3241 - pay_addr_.data4, pay_addr_.data5, pay_addr_.data6,
50.3242 - pay_addr_.data7, pay_addr_.data8, pay_addr_.data9,
50.3243 - pay_addr_.data10, pay_addr_.data11, pay_addr_.data12,
50.3244 - pay_addr_.data13, pay_addr_.data14, pay_addr_.data15,
50.3245 - pay_addr_.data16, pay_addr_.data17, pay_addr_.data18,
50.3246 - pay_addr_.data19, pay_addr_.data20, pay_addr_.data21,
50.3247 - pay_addr_.data22,pay_addr_.account, pay_addr_.bic_code, 1, pay_addr_.rowtype );
50.3248 - -- Bug 72177, End
50.3249 -
50.3250 - END LOOP;
50.3251 -END Copy_Payment_Address___;
50.3252 -
50.3253 -PROCEDURE Copy_Customer (
50.3254 - customer_identity_old_ IN VARCHAR2,
50.3255 - customer_identity_new_ IN VARCHAR2,
50.3256 - company_ IN VARCHAR2 )
50.3257 -IS
50.3258 - CURSOR get_customer IS
50.3259 - SELECT *
50.3260 - FROM IDENTITY_PAY_INFO_TAB
50.3261 - WHERE identity = customer_identity_old_
50.3262 - AND company = company_
50.3263 - AND party_type = 'CUSTOMER';
50.3264 -
50.3265 - CURSOR get_credit_info IS
50.3266 - SELECT *
50.3267 - FROM CUSTOMER_CREDIT_INFO_TAB
50.3268 - WHERE identity = customer_identity_old_
50.3269 - AND company = company_;
50.3270 -
50.3271 - format_no_ NUMBER;
50.3272 -BEGIN
50.3273 - General_SYS.Init_Method(lu_name_, '&PKG', 'Copy_Customer');
50.3274 - FOR customer_ IN get_customer LOOP
50.3275 - format_no_ := Get_Next_Format_No___ (company_);
50.3276 - -- Bug 73125, Begin, Added template_id
50.3277 - INSERT INTO IDENTITY_PAY_INFO_TAB (company, identity, party_type,
50.3278 - reminder_template, interest_template, payment_delay,
50.3279 - amount_tolerance, percent_tolerance, disc_days_tolerance,
50.3280 - netting_allowed, format_no, payment_advice,
50.3281 - deduction_group, corporation_id,
50.3282 - other_payee_identity, member_id,
50.3283 - send_reminder_to_payer, send_interest_inv_to_payer,
50.3284 - payment_receipt_type,send_statement_of_acc_to_payer ,
50.3285 - next_payment_matching_id,
50.3286 - template_id,rowversion )
50.3287 - VALUES (customer_.company, customer_identity_new_, 'CUSTOMER',
50.3288 - customer_.reminder_template, customer_.interest_template, customer_.payment_delay,
50.3289 - customer_.amount_tolerance, customer_.percent_tolerance, customer_.disc_days_tolerance,
50.3290 - customer_.netting_allowed, format_no_, customer_.payment_advice,
50.3291 - customer_.deduction_group, customer_.corporation_id,
50.3292 - customer_.other_payee_identity, customer_.member_id,
50.3293 - customer_.send_reminder_to_payer, customer_.send_interest_inv_to_payer,
50.3294 - customer_.payment_receipt_type,
50.3295 - customer_.send_statement_of_acc_to_payer, 1,
50.3296 - customer_.template_id,1 );
50.3297 - -- Bug 73125, End
50.3298 -
50.3299 -
50.3300 - Copy_Payway_Per_Identity___( customer_.company,
50.3301 - customer_identity_old_,
50.3302 - 'CUSTOMER',
50.3303 - customer_identity_new_ );
50.3304 - Copy_Payment_Address___( customer_.company,
50.3305 - customer_identity_old_,
50.3306 - 'CUSTOMER',
50.3307 - customer_identity_new_ );
50.3308 - END LOOP;
50.3309 -
50.3310 - FOR credit_ IN get_credit_info LOOP
50.3311 - INSERT INTO CUSTOMER_CREDIT_INFO_TAB (company, identity, last4q_sales,
50.3312 - note_text, credit_number, credit_rating, avg_days_for_payment,
50.3313 - credit_comments,credit_limit,credit_block,
50.3314 - next_review_date,corp_credit_relation_exist,
50.3315 - credit_relationship_type,message_type,
50.3316 - party_type,parent_identity,parent_company,
50.3317 - credit_analyst_code,rowversion )
50.3318 - VALUES (credit_.company, customer_identity_new_, credit_.last4q_sales,
50.3319 - credit_.note_text, credit_.credit_number, credit_.credit_rating, credit_.avg_days_for_payment,
50.3320 - credit_.credit_comments,credit_.credit_limit,credit_.credit_block,
50.3321 - credit_.next_review_date,'FALSE',
50.3322 - NULL,credit_.message_type,
50.3323 - credit_.party_type,NULL,NULL,
50.3324 - credit_.credit_analyst_code, sysdate );
50.3325 - END LOOP;
50.3326 -END Copy_Customer;
50.3327 -
50.3328 -PROCEDURE Copy_Supplier (
50.3329 - supplier_identity_old_ IN VARCHAR2,
50.3330 - supplier_identity_new_ IN VARCHAR2,
50.3331 - company_ IN VARCHAR2 )
50.3332 -IS
50.3333 - CURSOR get_supplier IS
50.3334 - SELECT *
50.3335 - FROM IDENTITY_PAY_INFO_TAB
50.3336 - WHERE identity = supplier_identity_old_
50.3337 - AND company = company_
50.3338 - AND party_type = 'SUPPLIER';
50.3339 -
50.3340 - attr_ VARCHAR2(2000);
50.3341 - info_ VARCHAR2(2000);
50.3342 - objid_ VARCHAR2(2000);
50.3343 - objversion_ VARCHAR2(2000);
50.3344 - format_no_ NUMBER;
50.3345 -BEGIN
50.3346 - General_SYS.Init_Method(lu_name_, '&PKG', 'Copy_Supplier');
50.3347 - FOR supplier_ IN get_supplier LOOP
50.3348 - format_no_ := Get_Next_Format_No___ (company_);
50.3349 - -- Bug 73125, Begin, Added template_id
50.3350 - INSERT INTO IDENTITY_PAY_INFO_TAB (company, identity, party_type,
50.3351 - priority, blocked_for_payment,
50.3352 - reminder_template, interest_template,
50.3353 - amount_tolerance, percent_tolerance,
50.3354 - netting_allowed, format_no,
50.3355 - payment_advice, next_payment_matching_id,check_recipient,
50.3356 - template_id, rowversion )
50.3357 - VALUES (supplier_.company, supplier_identity_new_, 'SUPPLIER',
50.3358 - supplier_.priority, supplier_.blocked_for_payment,
50.3359 - supplier_.reminder_template, supplier_.interest_template,
50.3360 - supplier_.amount_tolerance, supplier_.percent_tolerance,
50.3361 - supplier_.netting_allowed, format_no_,
50.3362 - supplier_.payment_advice, 1, supplier_.check_recipient,
50.3363 - supplier_.template_id,1 );
50.3364 - -- Bug 73125, End
50.3365 - Copy_Payway_Per_Identity___( supplier_.company,
50.3366 - supplier_identity_old_,
50.3367 - 'SUPPLIER',
50.3368 - supplier_identity_new_ );
50.3369 - Copy_Payment_Address___( supplier_.company,
50.3370 - supplier_identity_old_,
50.3371 - 'SUPPLIER',
50.3372 - supplier_identity_new_ );
50.3373 - END LOOP;
50.3374 -END Copy_Supplier;
50.3375 -
50.3376 -FUNCTION Get (
50.3377 - company_ IN VARCHAR2,
50.3378 - identity_ IN VARCHAR2,
50.3379 - party_type_db_ IN VARCHAR2 ) RETURN Public_Rec
50.3380 -IS
50.3381 - temp_ Public_Rec;
50.3382 - CURSOR get_attr IS
50.3383 - SELECT priority, blocked_for_payment, other_payee_identity, interest_template, reminder_template,payment_delay,
50.3384 - amount_tolerance, percent_tolerance, disc_days_tolerance, netting_allowed, format_no, payment_advice,
50.3385 - deduction_group,corporation_id,member_id,send_reminder_to_payer,send_interest_inv_to_payer,payment_receipt_type,
50.3386 - template_id, check_recipient, send_statement_of_acc_to_payer
50.3387 - FROM &TABLE
50.3388 - WHERE company = company_
50.3389 - AND identity = identity_
50.3390 - AND party_type = party_type_db_;
50.3391 -BEGIN
50.3392 - IF (NOT Company_Finance_API.Is_User_Authorized(company_)) THEN
50.3393 - RETURN temp_;
50.3394 - END IF;
50.3395 -
50.3396 - OPEN get_attr;
50.3397 - FETCH get_attr INTO temp_;
50.3398 - CLOSE get_attr;
50.3399 - RETURN temp_;
50.3400 -END Get;
50.3401 -
50.3402 -PROCEDURE User_Allowed___(
50.3403 - company_ IN VARCHAR2)
50.3404 -IS
50.3405 - fnd_user_ VARCHAR2(2000);
50.3406 -
50.3407 -BEGIN
50.3408 -
50.3409 - fnd_user_ := Fnd_Session_API.Get_Fnd_User;
50.3410 -
50.3411 - IF NOT (company_finance_api.Is_User_Authorized(company_)) then
50.3412 - Error_SYS.Appl_General(lu_name_,'NOTUSERALLOWED: User :P1 is not allowed to use Company :P2',fnd_user_,company_);
50.3413 - END IF;
50.3414 -
50.3415 -END User_Allowed___;
50.3416 -
50.3417 -
50.3418 --- --------------------------------------------------------------------------
50.3419 --- Server-side functions used by new report (Output Servicese)
50.3420 --- --------------------------------------------------------------------------
50.3421 -FUNCTION Get_Group_For_Identity (
50.3422 - company_ IN VARCHAR2,
50.3423 - identity_ IN VARCHAR2,
50.3424 - party_type_db_ IN VARCHAR2 ) RETURN VARCHAR2
50.3425 -IS
50.3426 - CURSOR get_group IS
50.3427 - SELECT group_id
50.3428 - FROM IDENTITY_INVOICE_INFO
50.3429 - WHERE company = company_
50.3430 - AND identity = identity_
50.3431 - AND party_type_db = party_type_db_ ;
50.3432 - group_id_ VARCHAR2(20);
50.3433 -BEGIN
50.3434 - OPEN get_group;
50.3435 - FETCH get_group INTO group_id_;
50.3436 - IF (get_group%NOTFOUND) THEN
50.3437 - CLOSE get_group;
50.3438 - RETURN NULL;
50.3439 - END IF;
50.3440 - CLOSE get_group;
50.3441 -
50.3442 - RETURN group_id_;
50.3443 -END Get_Group_For_Identity;
50.3444 -
50.3445 -PROCEDURE Make_Company (
50.3446 - attr_ IN VARCHAR2 )
50.3447 -IS
50.3448 - rec_ Enterp_Comp_Connect_V160_API.Crecomp_Lu_Public_Rec;
50.3449 -BEGIN
50.3450 - General_SYS.Init_Method(lu_name_, '&PKG', 'Make_Company');
50.3451 -
50.3452 - rec_ := Enterp_Comp_Connect_V160_API.Get_Crecomp_Lu_Rec('&MODULE', attr_);
50.3453 -
50.3454 - IF (rec_.make_company = 'EXPORT') THEN
50.3455 - Export___(rec_);
50.3456 - ELSIF (rec_.make_company = 'IMPORT') THEN
50.3457 - IF (rec_.action = 'NEW') THEN
50.3458 - Import___(rec_);
50.3459 - ELSIF (rec_.action = 'DUPLICATE') THEN
50.3460 - Copy___(rec_);
50.3461 - END IF;
50.3462 - END IF;
50.3463 -END Make_Company;
50.3464 -
50.3465 -FUNCTION Cust_Open_Items_Exist (
50.3466 - company_ IN VARCHAR2,
50.3467 - identity_ IN VARCHAR2 ) RETURN VARCHAR2
50.3468 -IS
50.3469 - dummy_ NUMBER;
50.3470 - CURSOR exist_control IS
50.3471 - SELECT 1
50.3472 - FROM LEDGER_ITEM_TAB
50.3473 - WHERE company = company_
50.3474 - AND identity = identity_
50.3475 - AND (payer_identity IS NOT NULL AND payer_identity != identity)
50.3476 - AND ledger_status_type = 'NORMAL'
50.3477 - AND ((fully_paid_voucher_date IS NULL) OR
50.3478 - (rowstate in ('Unpaid', 'PartlyPaid'))
50.3479 - OR (rowstate in ('Created', 'BeforeDueDate', 'SentForCashing')))
50.3480 - AND (party_type = 'CUSTOMER' OR (party_type = 'COMPANY' AND parked_pay_type = 'CUSTOMER'));
50.3481 -
50.3482 -BEGIN
50.3483 - General_SYS.Init_Method(lu_name_, '&PKG', 'Cust_Open_Items_Exist');
50.3484 - OPEN exist_control;
50.3485 - FETCH exist_control INTO dummy_;
50.3486 - IF (exist_control%FOUND) THEN
50.3487 - CLOSE exist_control;
50.3488 - RETURN('TRUE');
50.3489 - END IF;
50.3490 - CLOSE exist_control;
50.3491 - RETURN('FALSE');
50.3492 -END Cust_Open_Items_Exist;
50.3493 -
50.3494 -FUNCTION Get_Send_Stmt_Of_Acc_To_Payer (
50.3495 - company_ IN VARCHAR2,
50.3496 - identity_ IN VARCHAR2,
50.3497 - party_type_ IN VARCHAR2 ) RETURN VARCHAR2
50.3498 -IS
50.3499 - temp_ Public_Rec;
50.3500 -BEGIN
50.3501 - IF (NOT Company_Finance_API.Is_User_Authorized(company_)) THEN
50.3502 - RETURN NULL;
50.3503 - END IF;
50.3504 - temp_ := Get(company_, identity_, Party_Type_API.Encode(party_type_));
50.3505 - RETURN temp_.send_statement_of_acc_to_payer;
50.3506 -END Get_Send_Stmt_Of_Acc_To_Payer;
50.3507 ------------------------------------------------------------------------------
50.3508 --------------------- FOUNDATION1 METHODS ------------------------------------
50.3509 ------------------------------------------------------------------------------
50.3510 --- Init
50.3511 --- Dummy procedure that can be called at database startup to ensure that
50.3512 --- this package is loaded into memory for performance reasons only.
50.3513 ------------------------------------------------------------------------------
50.3514 -
50.3515 -PROCEDURE Init
50.3516 -IS
50.3517 -BEGIN
50.3518 - NULL;
50.3519 -END Init;
50.3520 -
50.3521 -
50.3522 -END &PKG;
50.3523 -/
50.3524 -SHOW ERROR
50.3525 -
50.3526 ------------------------------------------------------------------------------
50.3527 -
50.3528 -----------------------------------------------------------
50.3529 --- <UNDEFINE_SECTION>
50.3530 -----------------------------------------------------------
50.3531 --- This section is reserved for undefine statements
50.3532 --- nothing should be manually written below because
50.3533 --- that would be overwritten everytime the IFS / Undefine
50.3534 --- tool is run.
50.3535 --- Also do NOT make any changes to the above tag because
50.3536 --- this will result in duplicated code
50.3537 -----------------------------------------------------------
50.3538 -UNDEFINE MODULE
50.3539 -UNDEFINE LU
50.3540 -UNDEFINE TABLE
50.3541 -
50.3542 -UNDEFINE VIEW
50.3543 -UNDEFINE VIEWPCT
50.3544 -UNDEFINE VIEW_SU_QRY
50.3545 -UNDEFINE VIEW_CU_QRY
50.3546 -UNDEFINE VIEW_SUPP
50.3547 -UNDEFINE VIEW_CUST
50.3548 -UNDEFINE VIEW_MULTI_CUST
50.3549 -UNDEFINE VIEW_MULTI_SUP
50.3550 -UNDEFINE VIEW_LOV
50.3551 -UNDEFINE VIEW_ALL
50.3552 -UNDEFINE VIEW_MULTI_CUS
50.3553 -UNDEFINE VIEW_MULTI_SUP
50.3554 -UNDEFINE VIEW_MULTI_ADD
50.3555 -
50.3556 -UNDEFINE PKG
50.3557 -UNDEFINE OBJID
50.3558 -UNDEFINE OBJVERSION
50.3559 -UNDEFINE OBJID_PTIPI
50.3560 -UNDEFINE OBJVERSION_PTIPI
51.1 --- a/PLSQL/Lexer/test/unit/src/org/netbeans/modules/plsql/lexer/InstallationSite.apy Wed May 15 16:07:35 2013 +0200
51.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
51.3 @@ -1,739 +0,0 @@
51.4 ------------------------------------------------------------------------------
51.5 ---
51.6 --- Logical unit: InstallationSite
51.7 ---
51.8 --- Purpose:
51.9 ---
51.10 --- IFS/Design Template Version 2.2
51.11 ---
51.12 --- Date Sign History
51.13 --- ------ ---- -----------------------------------------------------------
51.14 --- 000101 JhMa Created.
51.15 --- 000621 ROOD Modified parameters in Get_Timezone_Difference_.
51.16 --- 000628 ROOD Changes in error handling.
51.17 --- 000808 ROOD Completed the upgrade to Yoshimura template (Bug#15811).
51.18 --- 020128 ROOD Modified view and business logic to handle
51.19 --- attribute translations (ToDo#4070).
51.20 --- 020702 ROOD Corrected usage of General_SYS.Init_Method (ToDo#4087).
51.21 --- 030212 ROOD Changed module to FNDBAS (ToDo#4149).
51.22 --- 040408 HAAR Unicode bulk changes, removed extensive use of Substr and/or Substrb (F1PR408B).
51.23 ------------------------------------------------------------------------------
51.24 -
51.25 -DEFINE MODULE = FNDBAS
51.26 -DEFINE LU = InstallationSite
51.27 -DEFINE TABLE = INSTALLATION_SITE_TAB
51.28 -DEFINE VIEW = INSTALLATION_SITE
51.29 -DEFINE PKG = INSTALLATION_SITE_API
51.30 -DEFINE LOV_VIEW = USER_DB_LINKS_LOV
51.31 -
51.32 -DEFINE OBJID = rowid
51.33 -DEFINE OBJVERSION = "ltrim(lpad(to_char(rowversion,'YYYYMMDDHH24MISS'),2000))"
51.34 -
51.35 ------------------------------------------------------------------------------
51.36 --------------------- VIEWS FOR SELECTS --------------------------------------
51.37 ------------------------------------------------------------------------------
51.38 -
51.39 -PROMPT Creating &LOV_VIEW view
51.40 -
51.41 -CREATE OR REPLACE FORCE VIEW &LOV_VIEW AS
51.42 -SELECT Db_Link Db_Link
51.43 -FROM user_db_links
51.44 -WITH read only;
51.45 -
51.46 -COMMENT ON TABLE &LOV_VIEW
51.47 - IS 'LU=&LU^PROMPT=Installation Site^MODULE=&MODULE^';
51.48 -
51.49 -COMMENT ON COLUMN &LOV_VIEW..Db_Link
51.50 - IS 'FLAGS=K---L^DATATYPE=STRING(128)/UPPERCASE^PROMPT=Db Link^';
51.51 -
51.52 -
51.53 -PROMPT Creating &VIEW view
51.54 -
51.55 -CREATE OR REPLACE FORCE VIEW &VIEW AS
51.56 -SELECT site_id site_id,
51.57 - timezone_difference timezone_difference,
51.58 - nvl(Module_Translate_Attr_Util_API.Get_Attribute_Translation('&MODULE', '&LU', site_id ),description) description,
51.59 - this_site this_site,
51.60 - database_link database_link,
51.61 - &OBJID objid,
51.62 - &OBJVERSION objversion
51.63 -FROM installation_site_tab
51.64 -WITH read only;
51.65 -
51.66 -COMMENT ON TABLE &VIEW
51.67 - IS 'LU=&LU^PROMPT=Installation Site^MODULE=&MODULE^';
51.68 -
51.69 -COMMENT ON COLUMN &VIEW..site_id
51.70 - IS 'FLAGS=KMI-L^DATATYPE=STRING(30)/UPPERCASE^PROMPT=Site Id^';
51.71 -COMMENT ON COLUMN &VIEW..timezone_difference
51.72 - IS 'FLAGS=AMIU-^DATATYPE=NUMBER^PROMPT=Timezone Difference^';
51.73 -COMMENT ON COLUMN &VIEW..description
51.74 - IS 'FLAGS=A-IUL^DATATYPE=STRING(255)^PROMPT=Description^';
51.75 -COMMENT ON COLUMN &VIEW..this_site
51.76 - IS 'FLAGS=AMIU-^DATATYPE=STRING(5)/UPPERCASE^PROMPT=This Site^';
51.77 -COMMENT ON COLUMN &VIEW..database_link
51.78 - IS 'FLAGS=A-IU-^DATATYPE=STRING(128)/UPPERCASE^PROMPT=Database Link^';
51.79 -
51.80 ------------------------------------------------------------------------------
51.81 --------------------- PACKAGES FOR METHODS -----------------------------------
51.82 ------------------------------------------------------------------------------
51.83 -
51.84 -PROMPT Creating &PKG implementation
51.85 -
51.86 -CREATE OR REPLACE PACKAGE BODY &PKG IS
51.87 -
51.88 ------------------------------------------------------------------------------
51.89 --------------------- LU SPECIFIC IMPLEMENTATION METHOD DECLARATIONS ---------
51.90 ------------------------------------------------------------------------------
51.91 -
51.92 -
51.93 ------------------------------------------------------------------------------
51.94 --------------------- IMPLEMENTATION BASE METHODS ----------------------------
51.95 ------------------------------------------------------------------------------
51.96 --- Lock_By_Id___
51.97 --- Client-support to lock a specific instance of the logical unit.
51.98 ---
51.99 --- Lock_By_Keys___
51.100 --- Server support to lock a specific instance of the logical unit.
51.101 ---
51.102 --- Get_Object_By_Id___
51.103 --- Get LU-record from the database with a specified object identity.
51.104 ---
51.105 --- Get_Object_By_Keys___
51.106 --- Get LU-record from the database with specified key columns.
51.107 ---
51.108 --- Check_Exist___
51.109 --- Check if a specific LU-instance already exist in the database.
51.110 ---
51.111 --- Get_Id_Version_By_Keys___
51.112 --- Get the current OBJID and OBJVERSION for a specific LU-instance.
51.113 ------------------------------------------------------------------------------
51.114 -
51.115 -FUNCTION Lock_By_Id___ (
51.116 - objid_ IN VARCHAR2,
51.117 - objversion_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
51.118 -IS
51.119 - row_changed EXCEPTION;
51.120 - row_deleted EXCEPTION;
51.121 - row_locked EXCEPTION;
51.122 - PRAGMA exception_init(row_locked, -0054);
51.123 - rec_ &TABLE%ROWTYPE;
51.124 - dummy_ NUMBER;
51.125 - CURSOR lock_control IS
51.126 - SELECT *
51.127 - FROM &TABLE
51.128 - WHERE &OBJID = objid_
51.129 - AND &OBJVERSION = objversion_
51.130 - FOR UPDATE NOWAIT;
51.131 - CURSOR exist_control IS
51.132 - SELECT 1
51.133 - FROM &TABLE
51.134 - WHERE &OBJID = objid_;
51.135 -BEGIN
51.136 - OPEN lock_control;
51.137 - FETCH lock_control INTO rec_;
51.138 - IF (lock_control%FOUND) THEN
51.139 - CLOSE lock_control;
51.140 - RETURN rec_;
51.141 - END IF;
51.142 - CLOSE lock_control;
51.143 - OPEN exist_control;
51.144 - FETCH exist_control INTO dummy_;
51.145 - IF (exist_control%FOUND) THEN
51.146 - CLOSE exist_control;
51.147 - RAISE row_changed;
51.148 - ELSE
51.149 - CLOSE exist_control;
51.150 - RAISE row_deleted;
51.151 - END IF;
51.152 -EXCEPTION
51.153 - WHEN row_locked THEN
51.154 - Error_SYS.Record_Locked(lu_name_);
51.155 - WHEN row_changed THEN
51.156 - Error_SYS.Record_Modified(lu_name_);
51.157 - WHEN row_deleted THEN
51.158 - Error_SYS.Record_Removed(lu_name_);
51.159 -END Lock_By_Id___;
51.160 -
51.161 -FUNCTION Lock_By_Keys___ (
51.162 - site_id_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
51.163 -IS
51.164 - row_deleted EXCEPTION;
51.165 - rec_ &TABLE%ROWTYPE;
51.166 - CURSOR lock_control IS
51.167 - SELECT *
51.168 - FROM &TABLE
51.169 - WHERE site_id = site_id_
51.170 - FOR UPDATE;
51.171 -BEGIN
51.172 - OPEN lock_control;
51.173 - FETCH lock_control INTO rec_;
51.174 - IF (lock_control%FOUND) THEN
51.175 - CLOSE lock_control;
51.176 - RETURN rec_;
51.177 - ELSE
51.178 - CLOSE lock_control;
51.179 - RAISE row_deleted;
51.180 - END IF;
51.181 -EXCEPTION
51.182 - WHEN row_deleted THEN
51.183 - Error_SYS.Record_Removed(lu_name_);
51.184 -END Lock_By_Keys___;
51.185 -
51.186 -FUNCTION Get_Object_By_Id___ (
51.187 - objid_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
51.188 -IS
51.189 - lu_rec_ &TABLE%ROWTYPE;
51.190 - CURSOR getrec IS
51.191 - SELECT *
51.192 - FROM &TABLE
51.193 - WHERE &OBJID = objid_;
51.194 -BEGIN
51.195 - OPEN getrec;
51.196 - FETCH getrec INTO lu_rec_;
51.197 - IF (getrec%NOTFOUND) THEN
51.198 - CLOSE getrec;
51.199 - Error_SYS.Record_Removed(lu_name_);
51.200 - END IF;
51.201 - CLOSE getrec;
51.202 - RETURN(lu_rec_);
51.203 -END Get_Object_By_Id___;
51.204 -
51.205 -FUNCTION Get_Object_By_Keys___ (
51.206 - site_id_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
51.207 -IS
51.208 - lu_rec_ &TABLE%ROWTYPE;
51.209 - CURSOR getrec IS
51.210 - SELECT *
51.211 - FROM &TABLE
51.212 - WHERE site_id = site_id_;
51.213 -BEGIN
51.214 - OPEN getrec;
51.215 - FETCH getrec INTO lu_rec_;
51.216 - CLOSE getrec;
51.217 - RETURN(lu_rec_);
51.218 -END Get_Object_By_Keys___;
51.219 -
51.220 -FUNCTION Check_Exist___ (
51.221 - site_id_ IN VARCHAR2 ) RETURN BOOLEAN
51.222 -IS
51.223 - dummy_ NUMBER;
51.224 - CURSOR exist_control IS
51.225 - SELECT 1
51.226 - FROM &TABLE
51.227 - WHERE site_id = site_id_;
51.228 -BEGIN
51.229 - OPEN exist_control;
51.230 - FETCH exist_control INTO dummy_;
51.231 - IF (exist_control%FOUND) THEN
51.232 - CLOSE exist_control;
51.233 - RETURN(TRUE);
51.234 - END IF;
51.235 - CLOSE exist_control;
51.236 - RETURN(FALSE);
51.237 -END Check_Exist___;
51.238 -
51.239 -PROCEDURE Get_Id_Version_By_Keys___ (
51.240 - objid_ IN OUT VARCHAR2,
51.241 - objversion_ IN OUT VARCHAR2,
51.242 - site_id_ IN VARCHAR2)
51.243 -IS
51.244 - CURSOR get_version IS
51.245 - SELECT &OBJID, &OBJVERSION
51.246 - FROM &TABLE
51.247 - WHERE site_id = site_id_;
51.248 -BEGIN
51.249 - OPEN get_version;
51.250 - FETCH get_version INTO objid_, objversion_;
51.251 - CLOSE get_version;
51.252 -END Get_Id_Version_By_Keys___;
51.253 -
51.254 ------------------------------------------------------------------------------
51.255 --------------------- IMPLEMENTATION BASE METHODS FOR INSERT -----------------
51.256 ------------------------------------------------------------------------------
51.257 --- Prepare_Insert___
51.258 --- Set all default values for a new instance (ON-NEW-RECORD) of this
51.259 --- logical unit by calling procedure Add_Attr.
51.260 ---
51.261 --- Unpack_Check_Insert___
51.262 --- Unpack the attribute list, check all attributes from the client
51.263 --- and generate all default values before creation of the new object.
51.264 ---
51.265 --- Insert___
51.266 --- Insert a new LU-instance into the database and return the values
51.267 --- for OBJID and OBJVERSION.
51.268 ------------------------------------------------------------------------------
51.269 -
51.270 -PROCEDURE Prepare_Insert___ (
51.271 - attr_ IN OUT VARCHAR2 )
51.272 -IS
51.273 -BEGIN
51.274 - Client_SYS.Clear_Attr(attr_);
51.275 - Client_SYS.Add_To_Attr('TIMEZONE_DIFFERENCE', 0, attr_);
51.276 - Client_SYS.Add_To_Attr('THIS_SITE', 'FALSE', attr_);
51.277 -END Prepare_Insert___;
51.278 -
51.279 -
51.280 -PROCEDURE Unpack_Check_Insert___ (
51.281 - attr_ IN OUT VARCHAR2,
51.282 - newrec_ IN OUT &TABLE%ROWTYPE )
51.283 -IS
51.284 - ptr_ NUMBER;
51.285 - name_ VARCHAR2(30);
51.286 - value_ VARCHAR2(2000);
51.287 - this_site_exist_ EXCEPTION;
51.288 -BEGIN
51.289 - newrec_.timezone_difference := 0;
51.290 - newrec_.this_site := 'FALSE';
51.291 - value_ := Client_SYS.Get_Item_Value('THIS_SITE', attr_);
51.292 - IF ( (UPPER(NVL(value_, 'FALSE')) = 'TRUE') AND This_Site_Exist__ ) THEN
51.293 - RAISE this_site_exist_;
51.294 - END IF;
51.295 - ptr_ := NULL;
51.296 - WHILE (Client_SYS.Get_Next_From_Attr(attr_, ptr_, name_, value_)) LOOP
51.297 - IF (name_ = 'SITE_ID') THEN
51.298 - newrec_.site_id := value_;
51.299 - ELSIF (name_ = 'TIMEZONE_DIFFERENCE') THEN
51.300 - newrec_.timezone_difference := Client_SYS.Attr_Value_To_Number(value_);
51.301 - ELSIF (name_ = 'DESCRIPTION') THEN
51.302 - newrec_.description := value_;
51.303 - ELSIF (name_ = 'THIS_SITE') THEN
51.304 - newrec_.this_site := value_;
51.305 - ELSIF (name_ = 'DATABASE_LINK') THEN
51.306 - newrec_.database_link := value_;
51.307 - ELSE
51.308 - Error_SYS.Item_Not_Exist(lu_name_, name_, value_);
51.309 - END IF;
51.310 - END LOOP;
51.311 - Client_SYS.Clear_Attr(attr_);
51.312 - Error_SYS.Check_Not_Null(lu_name_, 'SITE_ID', newrec_.site_id);
51.313 - Error_SYS.Check_Not_Null(lu_name_, 'TIMEZONE_DIFFERENCE', newrec_.timezone_difference);
51.314 - Error_SYS.Check_Not_Null(lu_name_, 'THIS_SITE', newrec_.this_site);
51.315 -EXCEPTION
51.316 - WHEN value_error THEN
51.317 - Error_SYS.Item_Format(lu_name_, name_, value_);
51.318 - WHEN this_site_exist_ THEN
51.319 - Error_SYS.Appl_General(lu_name_, 'EXIST_INSERT: Only one replication site can be THIS_SITE.');
51.320 -END Unpack_Check_Insert___;
51.321 -
51.322 -
51.323 -PROCEDURE Insert___ (
51.324 - objid_ OUT VARCHAR2,
51.325 - objversion_ OUT VARCHAR2,
51.326 - newrec_ IN OUT &TABLE%ROWTYPE,
51.327 - attr_ IN OUT VARCHAR2 )
51.328 -IS
51.329 -BEGIN
51.330 - IF ( newrec_.timezone_difference IS NULL ) THEN
51.331 - newrec_.timezone_difference := 0;
51.332 - END IF;
51.333 - IF ( NVL(newrec_.this_site,'FALSE') NOT IN ('TRUE','FALSE') ) THEN
51.334 - newrec_.this_site := 'FALSE';
51.335 - END IF;
51.336 - newrec_.rowversion := sysdate;
51.337 - objversion_ := to_char(newrec_.rowversion,'YYYYMMDDHH24MISS');
51.338 - INSERT
51.339 - INTO installation_site_tab (
51.340 - site_id,
51.341 - timezone_difference,
51.342 - description,
51.343 - this_site,
51.344 - database_link,
51.345 - rowversion)
51.346 - VALUES (
51.347 - newrec_.site_id,
51.348 - newrec_.timezone_difference,
51.349 - newrec_.description,
51.350 - newrec_.this_site,
51.351 - newrec_.database_link,
51.352 - newrec_.rowversion);
51.353 - SELECT &OBJID
51.354 - INTO objid_
51.355 - FROM &TABLE
51.356 - WHERE site_id = newrec_.site_id;
51.357 - -- Insert into the translation database
51.358 - Module_Translate_Attr_Util_API.Insert_Lu_Translation('&MODULE',
51.359 - '&LU',
51.360 - newrec_.site_id,
51.361 - NULL,
51.362 - newrec_.description);
51.363 -EXCEPTION
51.364 - WHEN dup_val_on_index THEN
51.365 - Error_SYS.Record_Exist(lu_name_);
51.366 -END Insert___;
51.367 -
51.368 ------------------------------------------------------------------------------
51.369 --------------------- IMPLEMENTATION BASE METHODS FOR UPDATE -----------------
51.370 ------------------------------------------------------------------------------
51.371 --- Unpack_Check_Update___
51.372 --- Unpack the attribute list, check all attributes from the client
51.373 --- and generate all default values before modifying the object.
51.374 ---
51.375 --- Update___
51.376 --- Update an existing LU-instance in the database and return the
51.377 --- the new OBJVERSION.
51.378 ------------------------------------------------------------------------------
51.379 -
51.380 -PROCEDURE Unpack_Check_Update___ (
51.381 - attr_ IN OUT VARCHAR2,
51.382 - newrec_ IN OUT &TABLE%ROWTYPE,
51.383 - objid_ IN VARCHAR2 )
51.384 -IS
51.385 - ptr_ NUMBER;
51.386 - name_ VARCHAR2(30);
51.387 - value_ VARCHAR2(2000);
51.388 - this_site_exist_ EXCEPTION;
51.389 -BEGIN
51.390 - value_ := Client_SYS.Get_Item_Value('THIS_SITE', attr_);
51.391 - IF ( (UPPER(NVL(value_, 'FALSE')) = 'TRUE') AND (newrec_.this_site = 'FALSE') AND This_Site_Exist__ ) THEN
51.392 - RAISE this_site_exist_;
51.393 - END IF;
51.394 - ptr_ := NULL;
51.395 - WHILE (Client_SYS.Get_Next_From_Attr(attr_, ptr_, name_, value_)) LOOP
51.396 - IF (name_ = 'SITE_ID') THEN
51.397 - Error_SYS.Item_Update(lu_name_, 'SITE_ID');
51.398 - ELSIF (name_ = 'TIMEZONE_DIFFERENCE') THEN
51.399 - newrec_.timezone_difference := Client_SYS.Attr_Value_To_Number(value_);
51.400 - ELSIF (name_ = 'DESCRIPTION') THEN
51.401 - newrec_.description := value_;
51.402 - ELSIF (name_ = 'THIS_SITE') THEN
51.403 - newrec_.this_site := value_;
51.404 - ELSIF (name_ = 'DATABASE_LINK') THEN
51.405 - newrec_.database_link := value_;
51.406 - ELSE
51.407 - Error_SYS.Item_Not_Exist(lu_name_, name_, value_);
51.408 - END IF;
51.409 - END LOOP;
51.410 - Client_SYS.Clear_Attr(attr_);
51.411 - Error_SYS.Check_Not_Null(lu_name_, 'TIMEZONE_DIFFERENCE', newrec_.timezone_difference);
51.412 - Error_SYS.Check_Not_Null(lu_name_, 'THIS_SITE', newrec_.this_site);
51.413 -EXCEPTION
51.414 - WHEN value_error THEN
51.415 - Error_SYS.Item_Format(lu_name_, name_, value_);
51.416 - WHEN this_site_exist_ THEN
51.417 - Error_SYS.Appl_General(lu_name_, 'EXIST_UPDATE: Only one replication site can be THIS_SITE.');
51.418 -END Unpack_Check_Update___;
51.419 -
51.420 -
51.421 -PROCEDURE Update___ (
51.422 - objid_ IN VARCHAR2,
51.423 - oldrec_ IN &TABLE%ROWTYPE,
51.424 - newrec_ IN OUT &TABLE%ROWTYPE,
51.425 - attr_ IN OUT VARCHAR2,
51.426 - objversion_ IN OUT VARCHAR2,
51.427 - by_keys_ IN BOOLEAN DEFAULT FALSE )
51.428 -IS
51.429 -BEGIN
51.430 - IF ( newrec_.timezone_difference IS NULL ) THEN
51.431 - newrec_.timezone_difference := 0;
51.432 - END IF;
51.433 - IF ( NVL(newrec_.this_site,'FALSE') NOT IN ('TRUE','FALSE') ) THEN
51.434 - newrec_.this_site := 'FALSE';
51.435 - END IF;
51.436 - newrec_.rowversion := sysdate;
51.437 - objversion_ := to_char(newrec_.rowversion,'YYYYMMDDHH24MISS');
51.438 - IF by_keys_ THEN
51.439 - UPDATE installation_site_tab
51.440 - SET site_id = newrec_.site_id,
51.441 - timezone_difference = newrec_.timezone_difference,
51.442 - description = newrec_.description,
51.443 - this_site = newrec_.this_site,
51.444 - database_link = newrec_.database_link,
51.445 - rowversion = newrec_.rowversion
51.446 - WHERE site_id = newrec_.site_id;
51.447 - ELSE
51.448 - UPDATE installation_site_tab
51.449 - SET site_id = newrec_.site_id,
51.450 - timezone_difference = newrec_.timezone_difference,
51.451 - description = newrec_.description,
51.452 - this_site = newrec_.this_site,
51.453 - database_link = newrec_.database_link,
51.454 - rowversion = newrec_.rowversion
51.455 - WHERE &OBJID = objid_;
51.456 - END IF;
51.457 - -- Update the translation database if necessary
51.458 - Module_Translate_Attr_Util_API.Modify_Translation('&MODULE',
51.459 - lu_name_,
51.460 - newrec_.site_id,
51.461 - newrec_.description,
51.462 - oldrec_.description);
51.463 -EXCEPTION
51.464 - WHEN dup_val_on_index THEN
51.465 - Error_SYS.Record_Exist(lu_name_);
51.466 -END Update___;
51.467 -
51.468 ------------------------------------------------------------------------------
51.469 --------------------- IMPLEMENTATION BASE METHODS FOR DELETE -----------------
51.470 ------------------------------------------------------------------------------
51.471 --- Check_Delete___
51.472 --- Checks whether a specific LU-record may be removed or not.
51.473 --- The procedure should check business rules like attribute values
51.474 --- as well as database constraints (defined or not).
51.475 ---
51.476 --- Delete___
51.477 --- Deletion of the specific LU-object from the database.
51.478 ------------------------------------------------------------------------------
51.479 -
51.480 -PROCEDURE Check_Delete___ (
51.481 - remrec_ IN &TABLE%ROWTYPE )
51.482 -IS
51.483 - key_ VARCHAR2(2000);
51.484 -BEGIN
51.485 - key_ := remrec_.site_id || '^';
51.486 - Reference_SYS.Check_Restricted_Delete(lu_name_, key_);
51.487 -END Check_Delete___;
51.488 -
51.489 -
51.490 -PROCEDURE Delete___ (
51.491 - objid_ IN VARCHAR2,
51.492 - remrec_ IN &TABLE%ROWTYPE )
51.493 -IS
51.494 - key_ VARCHAR2(2000);
51.495 -BEGIN
51.496 - key_ := remrec_.site_id || '^';
51.497 - Reference_SYS.Do_Cascade_Delete(lu_name_, key_);
51.498 - DELETE
51.499 - FROM installation_site_tab
51.500 - WHERE &OBJID = objid_;
51.501 - -- Delete all existing translations for this record.
51.502 - Module_Translate_Attr_Util_API.Remove_Attribute('&MODULE', lu_name_, remrec_.site_id);
51.503 -END Delete___;
51.504 -
51.505 ------------------------------------------------------------------------------
51.506 --------------------- PRIVATE BASE METHODS -----------------------------------
51.507 ------------------------------------------------------------------------------
51.508 --- Lock__
51.509 --- Client-support to lock a specific instance of the logical unit.
51.510 ---
51.511 --- New__
51.512 --- Client-support interface to create LU instances.
51.513 --- action_ = 'PREPARE'
51.514 --- Default values and handle of information to client.
51.515 --- The default values are set in procedure Prepare_Insert___.
51.516 --- action_ = 'CHECK'
51.517 --- Check all attributes before creating new object and handle of
51.518 --- information to client. The attribute list is unpacked, checked
51.519 --- and prepared (defaults) in procedure Unpack_Check_Insert___.
51.520 --- action_ = 'DO'
51.521 --- Creation of new instances of the logical unit and handle of
51.522 --- information to client. The attribute list is unpacked, checked
51.523 --- and prepared (defaults) in procedure Unpack_Check_Insert___
51.524 --- before calling procedure Insert___.
51.525 ---
51.526 --- Modify__
51.527 --- Client-support interface to modify attributes for LU instances.
51.528 --- action_ = 'CHECK'
51.529 --- Check all attributes before modifying an existing object and
51.530 --- handle of information to client. The attribute list is unpacked,
51.531 --- checked and prepared(defaults) in procedure Unpack_Check_Update___.
51.532 --- action_ = 'DO'
51.533 --- Modification of an existing instance of the logical unit. The
51.534 --- procedure unpacks the attributes, checks all values before
51.535 --- procedure Update___ is called.
51.536 ---
51.537 --- Remove__
51.538 --- Client-support interface to remove LU instances.
51.539 --- action_ = 'CHECK'
51.540 --- Check whether a specific LU-instance may be removed or not.
51.541 --- The procedure fetches the complete record by calling procedure
51.542 --- Get_Object_By_Id___. Then the check is made by calling procedure
51.543 --- Check_Delete___.
51.544 --- action_ = 'DO'
51.545 --- Remove an existing instance of the logical unit. The procedure
51.546 --- fetches the complete LU-record, checks for a delete and then
51.547 --- deletes the record by calling procedure Delete___.
51.548 ------------------------------------------------------------------------------
51.549 -
51.550 -PROCEDURE Lock__ (
51.551 - info_ OUT VARCHAR2,
51.552 - objid_ IN VARCHAR2,
51.553 - objversion_ IN VARCHAR2 )
51.554 -IS
51.555 - dummy_ &TABLE%ROWTYPE;
51.556 -BEGIN
51.557 - General_SYS.Init_Method(lu_name_, '&PKG', 'Lock__');
51.558 - dummy_ := Lock_By_Id___(objid_, objversion_);
51.559 - info_ := Client_SYS.Get_All_Info;
51.560 -END Lock__;
51.561 -
51.562 -
51.563 -PROCEDURE New__ (
51.564 - info_ OUT VARCHAR2,
51.565 - objid_ OUT VARCHAR2,
51.566 - objversion_ OUT VARCHAR2,
51.567 - attr_ IN OUT VARCHAR2,
51.568 - action_ IN VARCHAR2 )
51.569 -IS
51.570 - newrec_ &TABLE%ROWTYPE;
51.571 -BEGIN
51.572 - General_SYS.Init_Method(lu_name_, '&PKG', 'New__');
51.573 - IF (action_ = 'PREPARE') THEN
51.574 - Prepare_Insert___(attr_);
51.575 - ELSIF (action_ = 'CHECK') THEN
51.576 - Unpack_Check_Insert___(attr_, newrec_);
51.577 - ELSIF (action_ = 'DO') THEN
51.578 - Unpack_Check_Insert___(attr_, newrec_);
51.579 - Insert___(objid_, objversion_, newrec_, attr_);
51.580 - END IF;
51.581 - info_ := Client_SYS.Get_All_Info;
51.582 -END New__;
51.583 -
51.584 -
51.585 -PROCEDURE Modify__ (
51.586 - info_ OUT VARCHAR2,
51.587 - objid_ IN VARCHAR2,
51.588 - objversion_ IN OUT VARCHAR2,
51.589 - attr_ IN OUT VARCHAR2,
51.590 - action_ IN VARCHAR2 )
51.591 -IS
51.592 - oldrec_ &TABLE%ROWTYPE;
51.593 - newrec_ &TABLE%ROWTYPE;
51.594 -BEGIN
51.595 - General_SYS.Init_Method(lu_name_, '&PKG', 'Modify__');
51.596 - IF (action_ = 'CHECK') THEN
51.597 - newrec_ := Get_Object_By_Id___(objid_);
51.598 - Unpack_Check_Update___(attr_, newrec_, objid_);
51.599 - ELSIF (action_ = 'DO') THEN
51.600 - oldrec_ := Lock_By_Id___(objid_, objversion_);
51.601 - newrec_ := oldrec_;
51.602 - Unpack_Check_Update___(attr_, newrec_, objid_);
51.603 - Update___(objid_, oldrec_, newrec_, attr_, objversion_);
51.604 - END IF;
51.605 - info_ := Client_SYS.Get_All_Info;
51.606 -END Modify__;
51.607 -
51.608 -
51.609 -PROCEDURE Remove__ (
51.610 - info_ OUT VARCHAR2,
51.611 - objid_ IN VARCHAR2,
51.612 - objversion_ IN VARCHAR2,
51.613 - action_ IN VARCHAR2 )
51.614 -IS
51.615 - remrec_ &TABLE%ROWTYPE;
51.616 -BEGIN
51.617 - General_SYS.Init_Method(lu_name_, '&PKG', 'Remove__');
51.618 - IF (action_ = 'CHECK') THEN
51.619 - remrec_ := Get_Object_By_Id___(objid_);
51.620 - Check_Delete___(remrec_);
51.621 - ELSIF (action_ = 'DO') THEN
51.622 - remrec_ := Lock_By_Id___(objid_, objversion_);
51.623 - Check_Delete___(remrec_);
51.624 - Delete___(objid_, remrec_);
51.625 - END IF;
51.626 - info_ := Client_SYS.Get_All_Info;
51.627 -END Remove__;
51.628 -
51.629 ------------------------------------------------------------------------------
51.630 --------------------- PUBLIC BASE METHODS ------------------------------------
51.631 ------------------------------------------------------------------------------
51.632 --- Exist
51.633 --- Checks if given pointer (e.g. primary key) to an instance of this
51.634 --- logical unit exists. If not an exception will be raised.
51.635 ------------------------------------------------------------------------------
51.636 -
51.637 -PROCEDURE Exist (
51.638 - site_id_ IN VARCHAR2 )
51.639 -IS
51.640 -BEGIN
51.641 - General_SYS.Init_Method(lu_name_, '&PKG', 'Exist', TRUE);
51.642 - IF (NOT Check_Exist___(site_id_)) THEN
51.643 - Error_SYS.Record_Not_Exist(lu_name_);
51.644 - END IF;
51.645 -END Exist;
51.646 -
51.647 ------------------------------------------------------------------------------
51.648 --------------------- LU SPECIFIC IMPLEMENTATION METHODS ---------------------
51.649 ------------------------------------------------------------------------------
51.650 -
51.651 -
51.652 ------------------------------------------------------------------------------
51.653 --------------------- LU SPECIFIC PRIVATE METHODS ----------------------------
51.654 ------------------------------------------------------------------------------
51.655 -
51.656 -FUNCTION This_Site_Exist__ RETURN BOOLEAN
51.657 -IS
51.658 - dummy_ NUMBER;
51.659 - CURSOR this_site_exist IS
51.660 - SELECT 1
51.661 - FROM &TABLE
51.662 - WHERE this_site = 'TRUE';
51.663 -BEGIN
51.664 - OPEN this_site_exist;
51.665 - FETCH this_site_exist INTO dummy_;
51.666 - IF ( this_site_exist%FOUND ) THEN
51.667 - CLOSE this_site_exist;
51.668 - RETURN TRUE;
51.669 - ELSE
51.670 - CLOSE this_site_exist;
51.671 - RETURN FALSE;
51.672 - END IF;
51.673 -END This_Site_Exist__;
51.674 -
51.675 ------------------------------------------------------------------------------
51.676 --------------------- LU SPECIFIC PROTECTED METHODS --------------------------
51.677 ------------------------------------------------------------------------------
51.678 -
51.679 -FUNCTION Get_Timezone_Difference_ (
51.680 - site_id_ IN VARCHAR2 DEFAULT NULL ) RETURN NUMBER
51.681 -IS
51.682 - timezone_difference_error_ EXCEPTION;
51.683 - timezone_difference_ &TABLE..timezone_difference%TYPE;
51.684 - CURSOR local IS
51.685 - SELECT timezone_difference
51.686 - FROM &TABLE
51.687 - WHERE this_site = 'TRUE';
51.688 - CURSOR remote IS
51.689 - SELECT timezone_difference
51.690 - FROM &TABLE
51.691 - WHERE site_id = site_id_;
51.692 -BEGIN
51.693 - General_SYS.Init_Method(lu_name_, '&PKG', 'Get_Timezone_Difference_');
51.694 - IF ( site_id_ IS NULL ) THEN
51.695 - OPEN local;
51.696 - FETCH local INTO timezone_difference_;
51.697 - IF ( local%NOTFOUND ) THEN
51.698 - timezone_difference_ := 0;
51.699 - END IF;
51.700 - CLOSE local;
51.701 - ELSE
51.702 - OPEN remote;
51.703 - FETCH remote INTO timezone_difference_;
51.704 - IF ( remote%NOTFOUND ) THEN
51.705 - timezone_difference_ := 0;
51.706 - END IF;
51.707 - CLOSE remote;
51.708 - END IF;
51.709 - IF ( ABS(timezone_difference_) > 24 ) THEN
51.710 - RAISE timezone_difference_error_;
51.711 - END IF;
51.712 - RETURN timezone_difference_;
51.713 -EXCEPTION
51.714 - WHEN timezone_difference_error_ THEN
51.715 - Error_SYS.Appl_General(lu_name_, 'INVALIDTIMEZONEDIFF: Invalid timezone difference :P1.', timezone_difference_);
51.716 -END Get_Timezone_Difference_;
51.717 -
51.718 ------------------------------------------------------------------------------
51.719 --------------------- LU SPECIFIC PUBLIC METHODS -----------------------------
51.720 ------------------------------------------------------------------------------
51.721 -
51.722 -
51.723 ------------------------------------------------------------------------------
51.724 --------------------- FOUNDATION1 METHODS ------------------------------------
51.725 ------------------------------------------------------------------------------
51.726 --- Init
51.727 --- Dummy procedure that can be called at database startup to ensure that
51.728 --- this package is loaded into memory for performance reasons only.
51.729 ------------------------------------------------------------------------------
51.730 -
51.731 -PROCEDURE Init
51.732 -IS
51.733 -BEGIN
51.734 - NULL;
51.735 -END Init;
51.736 -
51.737 -
51.738 -END &PKG;
51.739 -/
51.740 -SHOW ERROR
51.741 -
51.742 ------------------------------------------------------------------------------
52.1 --- a/PLSQL/Lexer/test/unit/src/org/netbeans/modules/plsql/lexer/OpPersDiaryCalculation.apy Wed May 15 16:07:35 2013 +0200
52.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
52.3 @@ -1,928 +0,0 @@
52.4 ------------------------------------------------------------------------------
52.5 ---
52.6 --- Logical unit: OpPersDiaryCalculation
52.7 ---
52.8 --- Purpose:
52.9 ---
52.10 --- IFS/Design Template Version 2.3
52.11 ---
52.12 --- Date Sign History
52.13 --- ------ ---- -----------------------------------------------------------
52.14 --- 070419 Laadlk Bug 64820, Added new IF condition in Calculate order hours
52.15 --- 070109 AmGa Check error_no is null before update.
52.16 --- 060106 GaKa Added labor class changes
52.17 --- 040915 KjCr Modifications due to new Balance
52.18 --- 040813 KjCr HRPR408 PL/SQL Torexec
52.19 ------------------------------------------------------------------------------
52.20 -
52.21 -DEFINE MODULE = SHPEMP
52.22 -DEFINE LU = OpPersDiaryCalculation
52.23 -DEFINE PKG = OP_PERS_DIARY_CALCULATION_API
52.24 -
52.25 -
52.26 ------------------------------------------------------------------------------
52.27 --------------------- PACKAGES FOR METHODS -----------------------------------
52.28 ------------------------------------------------------------------------------
52.29 -
52.30 -PROMPT Creating &PKG implementation
52.31 -
52.32 -CREATE OR REPLACE PACKAGE BODY &PKG IS
52.33 -
52.34 - RowLocked EXCEPTION;
52.35 - Skip EXCEPTION;
52.36 - DataError EXCEPTION;
52.37 - PRAGMA exception_init(RowLocked, -0054);
52.38 -
52.39 --------------------------------------------------------------------------
52.40 --- Private types
52.41 --------------------------------------------------------------------------
52.42 -
52.43 - TYPE Op_Data_Rec IS RECORD (
52.44 - org_code VARCHAR2(20),
52.45 - min_op_diff NUMBER,
52.46 - max_op_diff NUMBER,
52.47 - presence_hours NUMBER );
52.48 -
52.49 --------------------------------------------------------------------------
52.50 --- Global variables
52.51 --------------------------------------------------------------------------
52.52 -
52.53 - comp_time_format_ Comp_Time_Format_API.Value_Rec;
52.54 - wage_group_ Wage_Group_API.Value_Rec;
52.55 - time_param_label_ Time_Param_Label_API.Value_Rec;
52.56 - reg_status_ Time_Reg_Status_API.Value_Rec;
52.57 - test_active_ Time_Reg_Error_API.Active_Array_Type;
52.58 -
52.59 ------------------------------------------------------------------------------
52.60 --------------------- LU SPECIFIC IMPLEMENTATION METHOD DECLARATIONS ---------
52.61 ------------------------------------------------------------------------------
52.62 -
52.63 -PROCEDURE Calculate_Op_Hours___ (
52.64 - op_data_ IN Op_Data_Rec,
52.65 - pers_diary_ IN Time_Pers_Diary_Calc_API.Diary_Record_Type,
52.66 - op_diary_ IN OUT NOCOPY Op_Diary_Record_Type );
52.67 -
52.68 -
52.69 -PROCEDURE Convert_Group_Operations___ (
52.70 - op_diary_ IN OUT NOCOPY Op_Diary_Record_Type );
52.71 -
52.72 -
52.73 -PROCEDURE Do_Wage_Rounding___ (
52.74 - pers_diary_ IN Time_Pers_Diary_Calc_API.Diary_Record_Type,
52.75 - op_diary_ IN OUT NOCOPY Op_Diary_Record_Type );
52.76 -
52.77 -
52.78 -PROCEDURE Get_Diary___ (
52.79 - op_diary_ IN OUT NOCOPY Op_Diary_Record_Type );
52.80 -
52.81 -
52.82 -PROCEDURE Get_Op_Data___ (
52.83 - op_data_ OUT NOCOPY Op_Data_Rec,
52.84 - pers_diary_ IN Time_Pers_Diary_Calc_API.Diary_Record_Type,
52.85 - op_diary_ IN OUT NOCOPY Op_Diary_Record_Type );
52.86 -
52.87 -
52.88 -PROCEDURE Remove_Result___ (
52.89 - op_diary_ IN Op_Diary_Record_Type );
52.90 -
52.91 -
52.92 -PROCEDURE Save_Result___ (
52.93 - op_diary_ IN Op_Diary_Record_Type );
52.94 -
52.95 -
52.96 -PROCEDURE Set_Op_Error___ (
52.97 - op_diary_ IN Op_Diary_Record_Type );
52.98 -
52.99 -PROCEDURE Set_Op_Error_Labor___ (
52.100 - op_diary_ IN Op_Diary_Record_Type );
52.101 -
52.102 -
52.103 -PROCEDURE Update_Diary___ (
52.104 - op_data_ IN Op_Data_Rec,
52.105 - op_diary_ IN OUT NOCOPY Op_Diary_Record_Type );
52.106 -
52.107 -
52.108 -
52.109 ------------------------------------------------------------------------------
52.110 --------------------- LU SPECIFIC IMPLEMENTATION METHODS ---------------------
52.111 ------------------------------------------------------------------------------
52.112 -
52.113 -PROCEDURE Calculate_Op_Hours___ (
52.114 - op_data_ IN Op_Data_Rec,
52.115 - pers_diary_ IN Time_Pers_Diary_Calc_API.Diary_Record_Type,
52.116 - op_diary_ IN OUT NOCOPY Op_Diary_Record_Type )
52.117 -IS
52.118 - wage_grp_ VARCHAR2(20);
52.119 - wage_code_ VARCHAR2(20);
52.120 - wage_hours_ NUMBER;
52.121 - pers_wage_grp_ VARCHAR2(20);
52.122 - pers_wage_hours_ NUMBER;
52.123 - abs_hours_ NUMBER;
52.124 - op_id_ INTEGER;
52.125 - mch_code_ VARCHAR2(20);
52.126 - info_code_ VARCHAR2(20);
52.127 - org_code_ VARCHAR2(20);
52.128 - min_in_time_ NUMBER;
52.129 - max_out_time_ NUMBER;
52.130 - cur_in_time_ NUMBER;
52.131 - cur_out_time_ NUMBER;
52.132 - in_time_ NUMBER;
52.133 - out_time_ NUMBER;
52.134 - cur_count_ NUMBER;
52.135 - cur_factor_ NUMBER;
52.136 - w_ INTEGER;
52.137 -BEGIN
52.138 - /*-----------------------------------------------------------------------*/
52.139 - /* a) If status = done set status = ready */
52.140 - /*-----------------------------------------------------------------------*/
52.141 - min_in_time_ := 100.0;
52.142 - max_out_time_ := -100.0;
52.143 - IF op_diary_.reg_status = reg_status_.done THEN
52.144 - IF (time_pers_diary_api.Reporting_Complete(op_diary_.company_id, op_diary_.emp_no,
52.145 - op_diary_.account_date, op_diary_.reg_status) = 'TRUE') THEN
52.146 - op_diary_.reg_status := reg_status_.ready;
52.147 - END IF;
52.148 - END IF;
52.149 - FOR i_ IN 1 .. op_diary_.clocking.row_count LOOP
52.150 - min_in_time_ := LEAST(min_in_time_, op_diary_.clocking.start_stamp(i_));
52.151 - max_out_time_ := GREATEST(max_out_time_, op_diary_.clocking.stop_stamp(i_));
52.152 - IF op_diary_.clocking.org_code(i_) IS NULL THEN
52.153 - op_diary_.clocking.org_code(i_) := op_data_.org_code;
52.154 - END IF;
52.155 - END LOOP;
52.156 - /*-----------------------------------------------------------------------*/
52.157 - /* b) Calculate order hours */
52.158 - /*-----------------------------------------------------------------------*/
52.159 - op_diary_.result.row_count := 0;
52.160 - WHILE min_in_time_ < max_out_time_ LOOP
52.161 - cur_in_time_ := max_out_time_;
52.162 - FOR i_ IN 1 .. op_diary_.clocking.row_count LOOP
52.163 - IF min_in_time_ < op_diary_.clocking.stop_stamp(i_) THEN
52.164 - cur_in_time_ := LEAST(cur_in_time_, op_diary_.clocking.start_stamp(i_));
52.165 - END IF;
52.166 - END LOOP;
52.167 - cur_count_ := 0;
52.168 - cur_out_time_ := max_out_time_;
52.169 - FOR i_ IN 1 .. op_diary_.clocking.row_count LOOP
52.170 - IF min_in_time_ < op_diary_.clocking.stop_stamp(i_) THEN
52.171 - IF cur_in_time_ = op_diary_.clocking.start_stamp(i_) THEN
52.172 - cur_count_ := cur_count_+1;
52.173 - cur_out_time_ := LEAST(cur_out_time_, op_diary_.clocking.stop_stamp(i_));
52.174 - ELSE
52.175 - cur_out_time_ := LEAST(cur_out_time_, op_diary_.clocking.start_stamp(i_));
52.176 - END IF;
52.177 - END IF;
52.178 - END LOOP;
52.179 - cur_factor_ := 1 / cur_count_;
52.180 - FOR i_ IN 1 .. op_diary_.clocking.row_count LOOP
52.181 - IF cur_in_time_ = op_diary_.clocking.start_stamp(i_) AND
52.182 - cur_in_time_ < op_diary_.clocking.stop_stamp(i_) THEN
52.183 - op_id_ := op_diary_.clocking.op_id(i_);
52.184 - info_code_ := op_diary_.clocking.info_code(i_);
52.185 - mch_code_ := op_diary_.clocking.mch_code(i_);
52.186 - org_code_ := op_diary_.clocking.org_code(i_);
52.187 - FOR j_ IN 1 .. pers_diary_.result.row_count LOOP
52.188 - wage_hours_ := 0.0;
52.189 - wage_grp_ := pers_diary_.result.wage_grp(j_);
52.190 - wage_code_ := pers_diary_.result.wage_code(j_);
52.191 - pers_wage_hours_ := pers_diary_.result.wage_hours(j_);
52.192 - in_time_ := GREATEST(pers_diary_.result.wage_ftime(j_), cur_in_time_);
52.193 - out_time_ := LEAST(pers_diary_.result.wage_ttime(j_), cur_out_time_);
52.194 - IF wage_grp_ IN (wage_group_.normal, wage_group_.overtime, wage_group_.extra, wage_group_.increment, wage_group_.balance_accrual, wage_group_.info) THEN
52.195 - IF NOT pers_diary_.result.wage_hol(j_) THEN
52.196 - IF in_time_ < out_time_ THEN
52.197 - wage_hours_ := LEAST((out_time_-in_time_) * pers_diary_.result.wage_factor(j_), pers_wage_hours_);
52.198 - END IF;
52.199 - END IF;
52.200 - ELSIF wage_grp_ = wage_group_.balance_withdrawal THEN
52.201 - -- Bug 64820, Begin
52.202 - IF in_time_ < out_time_ THEN
52.203 - FOR k_ IN 1 .. pers_diary_.result.row_count LOOP
52.204 - pers_wage_grp_ := pers_diary_.result.wage_grp(k_);
52.205 - IF pers_wage_grp_ = wage_group_.normal AND
52.206 - in_time_ < pers_diary_.result.wage_ttime(k_) AND
52.207 - out_time_ > pers_diary_.result.wage_ftime(k_) AND
52.208 - pers_diary_.result.wage_hours(k_) > 0.005 THEN
52.209 - wage_grp_ := pers_wage_grp_;
52.210 - wage_code_ := pers_diary_.result.wage_code(k_);
52.211 - abs_hours_ := LEAST(pers_diary_.result.wage_hours(k_), pers_wage_hours_);
52.212 - abs_hours_ := LEAST((out_time_-in_time_) * pers_diary_.result.wage_factor(j_), abs_hours_);
52.213 - wage_hours_ := wage_hours_ - abs_hours_;
52.214 - END IF;
52.215 - END LOOP;
52.216 - END IF;
52.217 - -- Bug 64820, End
52.218 - END IF;
52.219 - IF wage_hours_ > 0.005 OR wage_hours_ < -0.005 THEN
52.220 - w_ := -1;
52.221 - FOR k_ IN 1 .. op_diary_.result.row_count LOOP
52.222 - IF op_id_ = op_diary_.result.op_id(k_) AND
52.223 - info_code_ = op_diary_.result.info_code(k_) AND
52.224 - mch_code_ = op_diary_.result.mch_code(k_) AND
52.225 - org_code_ = op_diary_.result.org_code(k_) AND
52.226 - wage_grp_ = op_diary_.result.wage_group(k_) AND
52.227 - wage_code_ = op_diary_.result.wage_code(k_) THEN
52.228 - w_ := k_;
52.229 - EXIT;
52.230 - END IF;
52.231 - END LOOP;
52.232 - IF w_ < 0 THEN
52.233 - op_diary_.result.row_count := op_diary_.result.row_count+1;
52.234 - w_ := op_diary_.result.row_count;
52.235 - op_diary_.result.op_id(w_) := op_id_;
52.236 - op_diary_.result.info_code(w_) := info_code_;
52.237 - op_diary_.result.mch_code(w_) := mch_code_;
52.238 - op_diary_.result.org_code(w_) := org_code_;
52.239 - op_diary_.result.contract(w_) := op_diary_.clocking.contract(i_);
52.240 - op_diary_.result.work_center_no(w_) := op_diary_.clocking.work_center_no(i_);
52.241 - op_diary_.result.labor_class_no(w_) := op_diary_.clocking.labor_class_no(i_);
52.242 - op_diary_.result.wage_group(w_) := wage_grp_;
52.243 - op_diary_.result.wage_code(w_) := wage_code_;
52.244 - op_diary_.result.wage_hours(w_) := 0.0;
52.245 - END IF;
52.246 - op_diary_.result.wage_hours(w_) := op_diary_.result.wage_hours(w_) + cur_factor_ * wage_hours_;
52.247 - END IF;
52.248 - END LOOP;
52.249 - op_diary_.clocking.start_stamp(i_) := cur_out_time_;
52.250 - END IF;
52.251 - END LOOP;
52.252 - min_in_time_ := cur_out_time_;
52.253 - END LOOP;
52.254 -END Calculate_Op_Hours___;
52.255 -
52.256 -
52.257 -PROCEDURE Convert_Group_Operations___ (
52.258 - op_diary_ IN OUT NOCOPY Op_Diary_Record_Type )
52.259 -IS
52.260 - op_id_ INTEGER;
52.261 - info_code_ VARCHAR2(20);
52.262 - grp_count_ INTEGER;
52.263 - grp_op_id_ INTEGER_ARRAY;
52.264 - grp_plan_hours_ NUMBER_ARRAY;
52.265 - sum_hours_ NUMBER;
52.266 - cnt_ INTEGER;
52.267 - w_ INTEGER;
52.268 - CURSOR Get_Operations IS
52.269 - SELECT op_id,
52.270 - NVL(DECODE(info_code_,
52.271 - 'R', plan_run_man,
52.272 - 'S', plan_setup_man,
52.273 - 'I', plan_run_man), 0)
52.274 - FROM op_plan_tab
52.275 - WHERE company_id = op_diary_.company_id
52.276 - AND sup_op_id = op_id_;
52.277 -BEGIN
52.278 - cnt_ := op_diary_.result.row_count;
52.279 - FOR i_ IN 1 .. cnt_ LOOP
52.280 - op_id_ := op_diary_.result.op_id(i_);
52.281 - info_code_ := op_diary_.result.info_code(i_);
52.282 - OPEN Get_Operations;
52.283 - FETCH Get_Operations
52.284 - BULK COLLECT INTO
52.285 - grp_op_id_,
52.286 - grp_plan_hours_;
52.287 - grp_count_ := Get_Operations%ROWCOUNT;
52.288 - CLOSE Get_Operations;
52.289 - IF grp_count_ > 0 THEN
52.290 - sum_hours_ := 0.0;
52.291 - FOR j_ IN 1 .. grp_count_ LOOP
52.292 - sum_hours_ := sum_hours_ + grp_plan_hours_(j_);
52.293 - END LOOP;
52.294 - IF sum_hours_ < 0.005 THEN
52.295 - /* If no planned hours, make equal distribution */
52.296 - FOR j_ IN 1 .. grp_count_ LOOP
52.297 - grp_plan_hours_(j_) := 1.0;
52.298 - END LOOP;
52.299 - sum_hours_ := TO_NUMBER(grp_count_);
52.300 - END IF;
52.301 - FOR j_ IN 1 .. grp_count_ LOOP
52.302 - w_ := op_diary_.result.row_count+1;
52.303 - op_diary_.result.op_id(w_) := grp_op_id_(j_);
52.304 - op_diary_.result.mch_code(w_) := op_diary_.result.mch_code(i_);
52.305 - op_diary_.result.info_code(w_) := op_diary_.result.info_code(i_);
52.306 - op_diary_.result.org_code(w_) := op_diary_.result.org_code(i_);
52.307 - op_diary_.result.contract(w_) := op_diary_.result.contract(i_);
52.308 - op_diary_.result.work_center_no(w_) := op_diary_.result.work_center_no(i_);
52.309 - op_diary_.result.labor_class_no(w_) := op_diary_.result.labor_class_no(i_);
52.310 - op_diary_.result.wage_group(w_) := op_diary_.result.wage_group(i_);
52.311 - op_diary_.result.wage_code(w_) := op_diary_.result.wage_code(i_);
52.312 - op_diary_.result.wage_hours(w_) := op_diary_.result.wage_hours(i_) * grp_plan_hours_(j_) / sum_hours_;
52.313 - op_diary_.result.row_count := w_;
52.314 - END LOOP;
52.315 - op_diary_.result.wage_hours(i_) := 0.0;
52.316 - END IF;
52.317 - END LOOP;
52.318 -END Convert_Group_Operations___;
52.319 -
52.320 -
52.321 -PROCEDURE Do_Wage_Rounding___ (
52.322 - pers_diary_ IN Time_Pers_Diary_Calc_API.Diary_Record_Type,
52.323 - op_diary_ IN OUT NOCOPY Op_Diary_Record_Type )
52.324 -IS
52.325 - pers_sum_hours_ NUMBER;
52.326 - op_sum_hours_ NUMBER;
52.327 - sum_hours_ NUMBER;
52.328 - diff_hours_ NUMBER;
52.329 - wage_hours_ NUMBER;
52.330 - wage_grp_ VARCHAR2(20);
52.331 - wage_code_ VARCHAR2(20);
52.332 - wage_diff_ NUMBER_ARRAY;
52.333 - w_ INTEGER;
52.334 -BEGIN
52.335 - IF NOT op_diary_.do_update THEN
52.336 - op_diary_.clocking.row_count := 0;
52.337 - op_diary_.result.row_count := 0;
52.338 - END IF;
52.339 - /*-----------------------------------------------------------------------*/
52.340 - /* a) Adjust wage hours according to TimePersDiaryResult */
52.341 - /*-----------------------------------------------------------------------*/
52.342 - FOR i_ IN 1 .. pers_diary_.result.row_count LOOP
52.343 - IF pers_diary_.result.wage_hours(i_) != 0 AND
52.344 - NOT pers_diary_.result.wage_hol(i_) THEN
52.345 - wage_grp_ := pers_diary_.result.wage_grp(i_);
52.346 - wage_code_ := pers_diary_.result.wage_code(i_);
52.347 - pers_sum_hours_ := 0.0;
52.348 - FOR j_ IN 1 .. pers_diary_.result.row_count LOOP
52.349 - IF pers_diary_.result.wage_grp(j_) = wage_grp_ AND
52.350 - pers_diary_.result.wage_code(j_) = wage_code_ AND
52.351 - NOT pers_diary_.result.wage_hol(j_) THEN
52.352 - pers_sum_hours_ := pers_sum_hours_ + pers_diary_.result.wage_hours(j_);
52.353 - END IF;
52.354 - END LOOP;
52.355 - op_sum_hours_ := 0.0;
52.356 - FOR j_ IN 1 .. op_diary_.result.row_count LOOP
52.357 - IF op_diary_.result.wage_group(j_) = wage_grp_ AND
52.358 - op_diary_.result.wage_code(j_) = wage_code_ THEN
52.359 - op_sum_hours_ := op_sum_hours_ + op_diary_.result.wage_hours(j_);
52.360 - END IF;
52.361 - END LOOP;
52.362 - /*-----------------------------------------------------------------------*/
52.363 - /* b) Wage hours are reduced proportionally to presence hours level */
52.364 - /*-----------------------------------------------------------------------*/
52.365 - sum_hours_ := op_sum_hours_;
52.366 - IF pers_sum_hours_ - op_sum_hours_ < 0.011 THEN
52.367 - sum_hours_ := 0.0;
52.368 - FOR j_ IN 1 .. op_diary_.result.row_count LOOP
52.369 - IF op_diary_.result.wage_group(j_) = wage_grp_ AND
52.370 - op_diary_.result.wage_code(j_) = wage_code_ THEN
52.371 - op_diary_.result.wage_hours(j_) := pers_sum_hours_ * op_diary_.result.wage_hours(j_) / op_sum_hours_;
52.372 - sum_hours_ := sum_hours_ + op_diary_.result.wage_hours(j_);
52.373 - END IF;
52.374 - END LOOP;
52.375 - END IF;
52.376 - op_sum_hours_ := ROUND(sum_hours_, 2);
52.377 - /*-----------------------------------------------------------------------*/
52.378 - /* c) Wage hours are rounded */
52.379 - /*-----------------------------------------------------------------------*/
52.380 - sum_hours_ := 0.0;
52.381 - FOR j_ IN 1 .. op_diary_.result.row_count LOOP
52.382 - IF op_diary_.result.wage_group(j_) = wage_grp_ AND
52.383 - op_diary_.result.wage_code(j_) = wage_code_ THEN
52.384 - wage_hours_ := op_diary_.result.wage_hours(j_);
52.385 - op_diary_.result.wage_hours(j_) := ROUND(wage_hours_, 2);
52.386 - wage_diff_(j_) := op_diary_.result.wage_hours(j_) - wage_hours_;
52.387 - sum_hours_ := sum_hours_ + op_diary_.result.wage_hours(j_);
52.388 - END IF;
52.389 - END LOOP;
52.390 - diff_hours_ := sum_hours_ - op_sum_hours_;
52.391 - /*-----------------------------------------------------------------------*/
52.392 - /* d) Wage hours are adjusted to total hours level after rounding diffs */
52.393 - /*-----------------------------------------------------------------------*/
52.394 - WHILE diff_hours_ < -0.001 LOOP
52.395 - w_ := 0;
52.396 - FOR j_ IN 1 .. op_diary_.result.row_count LOOP
52.397 - IF op_diary_.result.wage_group(j_) = wage_grp_ AND
52.398 - op_diary_.result.wage_code(j_) = wage_code_ THEN
52.399 - IF w_ = 0 THEN
52.400 - w_ := j_;
52.401 - ELSE
52.402 - IF wage_diff_(j_) < wage_diff_(w_) THEN
52.403 - w_ := j_;
52.404 - END IF;
52.405 - END IF;
52.406 - END IF;
52.407 - END LOOP;
52.408 - op_diary_.result.wage_hours(w_) := op_diary_.result.wage_hours(w_) + 0.01;
52.409 - wage_diff_(w_) := wage_diff_(w_) + 0.01;
52.410 - diff_hours_ := diff_hours_ + 0.01;
52.411 - END LOOP;
52.412 - WHILE diff_hours_ > 0.001 LOOP
52.413 - w_ := 0;
52.414 - FOR j_ IN 1 .. op_diary_.result.row_count LOOP
52.415 - IF op_diary_.result.wage_group(j_) = wage_grp_ AND
52.416 - op_diary_.result.wage_code(j_) = wage_code_ THEN
52.417 - IF w_ = 0 THEN
52.418 - w_ := j_;
52.419 - ELSE
52.420 - IF wage_diff_(j_) > wage_diff_(w_) THEN
52.421 - w_ := j_;
52.422 - END IF;
52.423 - END IF;
52.424 - END IF;
52.425 - END LOOP;
52.426 - op_diary_.result.wage_hours(w_) := op_diary_.result.wage_hours(w_) - 0.01;
52.427 - wage_diff_(w_) := wage_diff_(w_) - 0.01;
52.428 - diff_hours_ := diff_hours_ - 0.01;
52.429 - END LOOP;
52.430 - END IF;
52.431 - END LOOP;
52.432 -END Do_Wage_Rounding___;
52.433 -
52.434 -
52.435 -PROCEDURE Get_Diary___ (
52.436 - op_diary_ IN OUT NOCOPY Op_Diary_Record_Type )
52.437 -IS
52.438 - skip_ BOOLEAN;
52.439 - block_ BOOLEAN;
52.440 - found_ BOOLEAN;
52.441 - error_exist_ BOOLEAN;
52.442 -
52.443 - CURSOR Get_Diary IS
52.444 - SELECT ROWID,
52.445 - DECODE(auth_id, NULL, 0, 1),
52.446 - reg_status
52.447 - FROM op_pers_diary_tab
52.448 - WHERE company_id = op_diary_.company_id
52.449 - AND emp_no = op_diary_.emp_no
52.450 - AND account_date = op_diary_.account_date
52.451 - FOR UPDATE OF reg_status NOWAIT;
52.452 - CURSOR Get_Clockings IS
52.453 - SELECT ROWID,
52.454 - DECODE(error_no, NULL, 0,31,0, 1),
52.455 - op_id,
52.456 - mch_code,
52.457 - info_code,
52.458 - org_code,
52.459 - contract,
52.460 - work_center_no,
52.461 - labor_class_no,
52.462 - 24 * (start_stamp - account_date),
52.463 - 24 * (NVL(stop_stamp, start_stamp) - account_date)
52.464 - FROM op_clocking_tab
52.465 - WHERE company_id = op_diary_.company_id
52.466 - AND emp_no = op_diary_.emp_no
52.467 - AND account_date = op_diary_.account_date
52.468 - ORDER BY start_stamp, stop_stamp;
52.469 - --FOR UPDATE OF rowversion NOWAIT;
52.470 - CURSOR Get_Result IS
52.471 - SELECT ROWID
52.472 - FROM op_result_tab
52.473 - WHERE company_id = op_diary_.company_id
52.474 - AND emp_no = op_diary_.emp_no
52.475 - AND account_date = op_diary_.account_date
52.476 - FOR UPDATE OF rowversion NOWAIT;
52.477 -BEGIN
52.478 - /*-----------------------------------------------------------------------*/
52.479 - /* a) Fetch rows from OpClocking (to be updated later) */
52.480 - /*-----------------------------------------------------------------------*/
52.481 - op_diary_.error_no := 0;
52.482 - op_diary_.do_update := FALSE;
52.483 - op_diary_.clocking.row_count := 0;
52.484 - op_diary_.result.row_count := 0;
52.485 - skip_ := FALSE;
52.486 - block_ := FALSE;
52.487 - OPEN Get_Diary;
52.488 - FETCH Get_Diary
52.489 - INTO op_diary_.row_id,
52.490 - op_diary_.auth_id,
52.491 - op_diary_.reg_status;
52.492 - found_ := Get_Diary%FOUND;
52.493 - CLOSE Get_Diary;
52.494 - IF NOT found_ THEN
52.495 - op_diary_.reg_status := '';
52.496 - op_diary_.auth_id := 0;
52.497 - skip_ := TRUE;
52.498 - END IF;
52.499 - IF op_diary_.auth_id = 1 THEN
52.500 - block_ := TRUE;
52.501 - END IF;
52.502 - IF op_diary_.reg_status = reg_status_.OPEN THEN
52.503 - skip_ := TRUE;
52.504 - END IF;
52.505 - IF op_diary_.reg_status = reg_status_.ready THEN
52.506 - op_diary_.do_update := TRUE;
52.507 - END IF;
52.508 - IF op_diary_.reg_status = reg_status_.modified THEN
52.509 - block_ := TRUE;
52.510 - END IF;
52.511 - --
52.512 - OPEN Get_Clockings;
52.513 - FETCH Get_Clockings
52.514 - BULK COLLECT INTO
52.515 - op_diary_.clocking.row_id,
52.516 - op_diary_.clocking.error_no,
52.517 - op_diary_.clocking.op_id,
52.518 - op_diary_.clocking.mch_code,
52.519 - op_diary_.clocking.info_code,
52.520 - op_diary_.clocking.org_code,
52.521 - op_diary_.clocking.contract,
52.522 - op_diary_.clocking.work_center_no,
52.523 - op_diary_.clocking.labor_class_no,
52.524 - op_diary_.clocking.start_stamp,
52.525 - op_diary_.clocking.stop_stamp;
52.526 - op_diary_.clocking.row_count := Get_Clockings%ROWCOUNT;
52.527 - CLOSE Get_Clockings;
52.528 - --
52.529 - OPEN Get_Result;
52.530 - FETCH Get_Result
52.531 - BULK COLLECT INTO op_diary_.result.row_id;
52.532 - op_diary_.result.row_count := Get_Result%ROWCOUNT;
52.533 - CLOSE Get_Result;
52.534 - op_diary_.clocking.row_count_read := op_diary_.clocking.row_count;
52.535 - op_diary_.result.row_count_read := op_diary_.result.row_count;
52.536 - /*-----------------------------------------------------------------------*/
52.537 - /* b) If an error occurs on op clockings, save error code, */
52.538 - /* but continue with Time and Attendance processing */
52.539 - /*-----------------------------------------------------------------------*/
52.540 - error_exist_ := FALSE;
52.541 - FOR i_ IN 1 .. op_diary_.clocking.row_count LOOP
52.542 - IF op_diary_.clocking.start_stamp(i_) - op_diary_.clocking.stop_stamp(i_) > 0.001 AND
52.543 - test_active_(Time_Reg_Error_API.CD_OVERLAP) THEN
52.544 - skip_ := TRUE;
52.545 - op_diary_.error_no := Time_Reg_Error_API.CD_OVERLAP;
52.546 - END IF;
52.547 - FOR j_ IN i_+1 .. op_diary_.clocking.row_count LOOP
52.548 - IF ((op_diary_.clocking.op_id(i_) = op_diary_.clocking.op_id(j_)) AND
52.549 - (op_diary_.clocking.info_code(i_) = op_diary_.clocking.info_code(j_)) AND
52.550 - (op_diary_.clocking.mch_code(i_) = op_diary_.clocking.mch_code(j_)) ) THEN
52.551 - IF (op_diary_.clocking.labor_class_no(i_) != op_diary_.clocking.labor_class_no(j_)) THEN
52.552 - op_diary_.error_no := Time_Reg_Error_API.CD_LABOR_CLASS;
52.553 - Set_Op_Error_Labor___(op_diary_);
52.554 - skip_ := TRUE;
52.555 - error_exist_ := TRUE;
52.556 - END IF;
52.557 - IF (op_diary_.clocking.work_center_no(i_) != op_diary_.clocking.work_center_no(j_)) THEN
52.558 - --Bug 61149, start
52.559 - IF (Op_Machine_Api.Work_Center_Exists(op_diary_.clocking.contract(i_), op_diary_.clocking.work_center_no(i_))='TRUE') AND
52.560 - (Op_Machine_Api.Work_Center_Exists(op_diary_.clocking.contract(j_), op_diary_.clocking.work_center_no(j_))='TRUE') THEN
52.561 - op_diary_.error_no := Time_Reg_Error_API.CD_SUP_MCH_CODE;
52.562 - Set_Op_Error_Labor___(op_diary_);
52.563 - skip_ := TRUE;
52.564 - error_exist_ := TRUE;
52.565 - END IF;
52.566 - --Bug 61149, end
52.567 - END IF;
52.568 -
52.569 - END IF;
52.570 - END LOOP;
52.571 - IF (NOT (error_exist_)) THEN
52.572 - op_diary_.error_no := NULL;
52.573 - Set_Op_Error_Labor___(op_diary_);
52.574 - END IF;
52.575 - IF (op_diary_.clocking.error_no(i_) != 0) THEN
52.576 - skip_ := TRUE;
52.577 - END IF;
52.578 - END LOOP;
52.579 - IF block_ AND op_diary_.do_update THEN
52.580 - op_diary_.clocking.row_count := 0;
52.581 - op_diary_.error_no := Time_Reg_Error_API.CD_ORACLE;
52.582 - END IF;
52.583 - IF skip_ THEN
52.584 - op_diary_.clocking.row_count := 0;
52.585 - END IF;
52.586 - IF block_ THEN
52.587 - op_diary_.clocking.row_count := 0;
52.588 - op_diary_.do_update := FALSE;
52.589 - END IF;
52.590 - IF op_diary_.clocking.row_count > 0 THEN
52.591 - op_diary_.do_update := TRUE;
52.592 - END IF;
52.593 - IF op_diary_.clocking.row_count = 0 THEN
52.594 - RAISE Skip;
52.595 - END IF;
52.596 -END Get_Diary___;
52.597 -
52.598 -
52.599 -PROCEDURE Get_Op_Data___ (
52.600 - op_data_ OUT NOCOPY Op_Data_Rec,
52.601 - pers_diary_ IN Time_Pers_Diary_Calc_API.Diary_Record_Type,
52.602 - op_diary_ IN OUT NOCOPY Op_Diary_Record_Type )
52.603 -IS
52.604 - company_id_ VARCHAR2(20);
52.605 - emp_no_ VARCHAR2(20);
52.606 - account_date_ DATE;
52.607 - work_sched_ Work_Sched_Assign_API.Public_Rec;
52.608 - calc_param_type_ VARCHAR2(20);
52.609 - wage_grp_ VARCHAR2(20);
52.610 - wage_hours_ NUMBER;
52.611 - CURSOR Get_Calc_Param IS
52.612 - SELECT param_label_db param_label,
52.613 - NVL(param_value, 0) param_value
52.614 - FROM time_calc_param_desc
52.615 - WHERE company_id = company_id_
52.616 - AND calc_param_type = calc_param_type_;
52.617 -BEGIN
52.618 - company_id_ := op_diary_.company_id;
52.619 - emp_no_ := op_diary_.emp_no;
52.620 - account_date_ := op_diary_.account_date;
52.621 - op_data_.org_code := Company_Pers_Assign_API.Get_Org_Code(company_id_, emp_no_, account_date_);
52.622 - work_sched_ := Work_Sched_Assign_API.Get(company_id_, emp_no_, account_date_);
52.623 - op_diary_.wage_class := work_sched_.wage_class;
52.624 - calc_param_type_ := '';
52.625 - IF work_sched_.rule_type IS NOT NULL THEN
52.626 - calc_param_type_ := Time_Rule_API.Get_Calc_Param_Type(company_id_, work_sched_.wage_class, work_sched_.rule_type);
52.627 - END IF;
52.628 - op_data_.min_op_diff := 0.0;
52.629 - op_data_.max_op_diff := 0.0;
52.630 - IF calc_param_type_ IS NOT NULL THEN
52.631 - FOR p_ IN Get_Calc_Param LOOP
52.632 - CASE p_.param_label
52.633 - WHEN time_param_label_.min_op_diff THEN
52.634 - op_data_.min_op_diff := p_.param_value;
52.635 - WHEN time_param_label_.max_op_diff THEN
52.636 - op_data_.max_op_diff := p_.param_value;
52.637 - ELSE
52.638 - NULL;
52.639 - END CASE;
52.640 - END LOOP;
52.641 - END IF;
52.642 - op_data_.presence_hours := 0.0;
52.643 - FOR i_ IN 1 .. pers_diary_.result.row_count LOOP
52.644 - wage_hours_ := pers_diary_.result.wage_hours(i_);
52.645 - IF wage_hours_ > 0.001 OR wage_hours_ < -0.001 THEN
52.646 - wage_grp_ := pers_diary_.result.wage_grp(i_);
52.647 - IF wage_grp_ IN (wage_group_.normal, wage_group_.overtime, wage_group_.extra, wage_group_.balance_accrual) THEN
52.648 - IF NOT pers_diary_.result.wage_hol(i_) THEN
52.649 - op_data_.presence_hours := op_data_.presence_hours + wage_hours_;
52.650 - END IF;
52.651 - ELSIF wage_grp_ = wage_group_.balance_withdrawal THEN
52.652 - op_data_.presence_hours := op_data_.presence_hours - wage_hours_;
52.653 - END IF;
52.654 - END IF;
52.655 - END LOOP;
52.656 - op_data_.presence_hours := ROUND(op_data_.presence_hours, 2);
52.657 -END Get_Op_Data___;
52.658 -
52.659 -
52.660 -PROCEDURE Remove_Result___ (
52.661 - op_diary_ IN Op_Diary_Record_Type )
52.662 -IS
52.663 -BEGIN
52.664 - IF op_diary_.result.row_count_read > 0 AND op_diary_.do_update THEN
52.665 - FORALL i_ IN 1 .. op_diary_.result.row_count_read
52.666 - DELETE
52.667 - FROM op_result_tab
52.668 - WHERE ROWID = op_diary_.result.row_id(i_);
52.669 - END IF;
52.670 -END Remove_Result___;
52.671 -
52.672 -
52.673 -PROCEDURE Save_Result___ (
52.674 - op_diary_ IN Op_Diary_Record_Type )
52.675 -IS
52.676 -BEGIN
52.677 - IF op_diary_.result.row_count > 0 THEN
52.678 - FORALL i_ IN 1 .. op_diary_.result.row_count
52.679 - INSERT
52.680 - INTO op_result_tab (
52.681 - company_id,
52.682 - op_id,
52.683 - mch_code,
52.684 - info_code,
52.685 - emp_no,
52.686 - account_date,
52.687 - org_code,
52.688 - contract,
52.689 - work_center_no,
52.690 - labor_class_no,
52.691 - wage_class,
52.692 - wage_group,
52.693 - wage_code,
52.694 - work_hours,
52.695 - rowversion)
52.696 - SELECT op_diary_.company_id,
52.697 - op_diary_.result.op_id(i_),
52.698 - op_diary_.result.mch_code(i_),
52.699 - op_diary_.result.info_code(i_),
52.700 - op_diary_.emp_no,
52.701 - op_diary_.account_date,
52.702 - op_diary_.result.org_code(i_),
52.703 - op_diary_.result.contract(i_),
52.704 - op_diary_.result.work_center_no(i_),
52.705 - op_diary_.result.labor_class_no(i_),
52.706 - op_diary_.wage_class,
52.707 - op_diary_.result.wage_group(i_),
52.708 - op_diary_.result.wage_code(i_),
52.709 - ROUND(op_diary_.result.wage_hours(i_), 2),
52.710 - SYSDATE
52.711 - FROM dual
52.712 - WHERE ROUND(op_diary_.result.wage_hours(i_), 2) != 0;
52.713 - END IF;
52.714 -END Save_Result___;
52.715 -
52.716 -
52.717 -PROCEDURE Set_Op_Error___ (
52.718 - op_diary_ IN Op_Diary_Record_Type )
52.719 -IS
52.720 - PRAGMA AUTONOMOUS_TRANSACTION;
52.721 -BEGIN
52.722 - IF op_diary_.clocking.row_count > 0 THEN
52.723 - --Bug 61149, start
52.724 - IF op_diary_.error_no IS NOT NULL THEN
52.725 - FORALL i_ IN 1 .. op_diary_.clocking.row_id.COUNT
52.726 - UPDATE op_clocking_tab
52.727 - SET error_no = op_diary_.error_no,
52.728 - rowversion = SYSDATE
52.729 - WHERE ROWID = op_diary_.clocking.row_id(i_)
52.730 - AND op_diary_.clocking.row_id(i_) IS NOT NULL
52.731 - AND error_no IS NULL;
52.732 - COMMIT;
52.733 - END IF;
52.734 - --Bug 61149, end
52.735 - END IF;
52.736 -EXCEPTION
52.737 - WHEN OTHERS THEN
52.738 - ROLLBACK;
52.739 -END Set_Op_Error___;
52.740 -
52.741 -PROCEDURE Set_Op_Error_Labor___ (
52.742 - op_diary_ IN Op_Diary_Record_Type )
52.743 -IS
52.744 - PRAGMA AUTONOMOUS_TRANSACTION;
52.745 -BEGIN
52.746 - IF op_diary_.clocking.row_count > 0 THEN
52.747 - --Bug 61149, start
52.748 - IF op_diary_.error_no IS NOT NULL THEN
52.749 - FORALL i_ IN 1 .. op_diary_.clocking.row_id.COUNT
52.750 - UPDATE op_clocking_tab
52.751 - SET error_no = op_diary_.error_no,
52.752 - rowversion = SYSDATE
52.753 - WHERE ROWID = op_diary_.clocking.row_id(i_)
52.754 - AND op_diary_.clocking.row_id(i_) IS NOT NULL;
52.755 - COMMIT;
52.756 - END IF;
52.757 - --Bug 61149, end
52.758 - END IF;
52.759 -EXCEPTION
52.760 - WHEN OTHERS THEN
52.761 - ROLLBACK;
52.762 -END Set_Op_Error_Labor___;
52.763 -
52.764 -
52.765 -PROCEDURE Update_Diary___ (
52.766 - op_data_ IN Op_Data_Rec,
52.767 - op_diary_ IN OUT NOCOPY Op_Diary_Record_Type )
52.768 -IS
52.769 - min_op_normal_sum_ NUMBER;
52.770 - max_op_normal_sum_ NUMBER;
52.771 - sum_hours_ NUMBER;
52.772 -BEGIN
52.773 - min_op_normal_sum_ := op_data_.presence_hours + op_data_.min_op_diff - 0.005;
52.774 - max_op_normal_sum_ := op_data_.presence_hours + op_data_.max_op_diff + 0.005;
52.775 - sum_hours_ := 0.0;
52.776 - FOR w_ IN 1 .. op_diary_.result.row_count LOOP
52.777 - IF op_diary_.result.wage_group(w_) IN (wage_group_.normal, wage_group_.overtime, wage_group_.balance_accrual, wage_group_.extra) THEN
52.778 - sum_hours_ := sum_hours_ + op_diary_.result.wage_hours(w_);
52.779 - END IF;
52.780 - END LOOP;
52.781 - op_diary_.reg_status := reg_status_.done;
52.782 - IF op_diary_.clocking.row_count > 0 THEN
52.783 - UPDATE op_pers_diary_tab
52.784 - SET reg_status = op_diary_.reg_status,
52.785 - rowversion = SYSDATE
52.786 - WHERE rowid = op_diary_.row_id;
52.787 - END IF;
52.788 - /*-----------------------------------------------------------------------*/
52.789 - /* If an error occurred during order calculation all OpClocking records */
52.790 - /* are error marked. */
52.791 - /*-----------------------------------------------------------------------*/
52.792 - IF op_diary_.error_no != 0 AND op_diary_.clocking.row_count_read > 0 THEN
52.793 - op_diary_.clocking.row_count := op_diary_.clocking.row_count_read;
52.794 - Set_Op_Error___(op_diary_);
52.795 - END IF;
52.796 -END Update_Diary___;
52.797 -
52.798 -
52.799 -
52.800 ------------------------------------------------------------------------------
52.801 --------------------- LU SPECIFIC PRIVATE METHODS ----------------------------
52.802 ------------------------------------------------------------------------------
52.803 -
52.804 -PROCEDURE Calculate_Op__ (
52.805 - pers_diary_ IN Time_Pers_Diary_Calc_API.Diary_Record_Type )
52.806 -IS
52.807 - op_diary_ Op_Diary_Record_Type;
52.808 - op_data_ Op_Data_Rec;
52.809 - history_enabled_ BOOLEAN;
52.810 -BEGIN
52.811 - SAVEPOINT Calculation_Start;
52.812 - /*************************************************************************/
52.813 - /* 1) Start */
52.814 - /*-----------------------------------------------------------------------*/
52.815 - history_enabled_ := History_Setting_Util_API.Is_Enabled;
52.816 - History_Setting_Util_API.Disable;
52.817 - op_diary_.company_id := pers_diary_.company_id;
52.818 - op_diary_.emp_no := pers_diary_.emp_no;
52.819 - op_diary_.account_date := pers_diary_.account_date;
52.820 - /*************************************************************************/
52.821 - /* 2) Get data */
52.822 - /*************************************************************************/
52.823 - Get_Diary___(op_diary_);
52.824 - Get_Op_Data___(op_data_, pers_diary_, op_diary_);
52.825 - /*************************************************************************/
52.826 - /* 3) Order calculations */
52.827 - /*************************************************************************/
52.828 - Calculate_Op_Hours___(op_data_, pers_diary_, op_diary_);
52.829 - Convert_Group_Operations___(op_diary_);
52.830 - Do_Wage_Rounding___(pers_diary_, op_diary_);
52.831 - /*************************************************************************/
52.832 - /* 4) Store order calulations */
52.833 - /*************************************************************************/
52.834 - Remove_Result___(op_diary_);
52.835 - Save_Result___(op_diary_);
52.836 - Update_Diary___(op_data_, op_diary_);
52.837 - /*************************************************************************/
52.838 - /* 5) End */
52.839 - /*************************************************************************/
52.840 - IF history_enabled_ THEN
52.841 - History_Setting_Util_API.Enable;
52.842 - END IF;
52.843 -EXCEPTION
52.844 - WHEN Skip THEN
52.845 - ROLLBACK TO Calculation_Start;
52.846 - IF history_enabled_ THEN
52.847 - History_Setting_Util_API.Enable;
52.848 - END IF;
52.849 - WHEN RowLocked THEN
52.850 - ROLLBACK TO Calculation_Start;
52.851 - IF history_enabled_ THEN
52.852 - History_Setting_Util_API.Enable;
52.853 - END IF;
52.854 - WHEN DataError THEN
52.855 - ROLLBACK TO Calculation_Start;
52.856 - Set_Op_Error___(op_diary_);
52.857 - IF history_enabled_ THEN
52.858 - History_Setting_Util_API.Enable;
52.859 - END IF;
52.860 - WHEN OTHERS THEN
52.861 - op_diary_.error_no := SQLCODE;
52.862 - ROLLBACK TO Calculation_Start;
52.863 - IF test_active_(Time_Reg_Error_API.CD_ORACLE) THEN
52.864 - op_diary_.error_no := Time_Reg_Error_API.CD_ORACLE;
52.865 - Set_Op_Error___(op_diary_);
52.866 - END IF;
52.867 - IF history_enabled_ THEN
52.868 - History_Setting_Util_API.Enable;
52.869 - END IF;
52.870 -END Calculate_Op__;
52.871 -
52.872 -
52.873 -FUNCTION Get_Op_Clocking_Count__ (
52.874 - pers_diary_ IN Time_Pers_Diary_Calc_API.Diary_Record_Type ) RETURN INTEGER
52.875 -IS
52.876 - op_diary_ Op_Diary_Record_Type;
52.877 -BEGIN
52.878 - op_diary_.company_id := pers_diary_.company_id;
52.879 - op_diary_.emp_no := pers_diary_.emp_no;
52.880 - op_diary_.account_date := pers_diary_.account_date;
52.881 - Get_Diary___(op_diary_);
52.882 - RETURN op_diary_.clocking.row_count;
52.883 -EXCEPTION
52.884 - WHEN OTHERS THEN
52.885 - RETURN 0;
52.886 -END Get_Op_Clocking_Count__;
52.887 -
52.888 -
52.889 -
52.890 ------------------------------------------------------------------------------
52.891 --------------------- LU SPECIFIC PROTECTED METHODS --------------------------
52.892 ------------------------------------------------------------------------------
52.893 -
52.894 -
52.895 ------------------------------------------------------------------------------
52.896 --------------------- LU SPECIFIC PUBLIC METHODS -----------------------------
52.897 ------------------------------------------------------------------------------
52.898 -
52.899 -
52.900 ------------------------------------------------------------------------------
52.901 --------------------- FOUNDATION1 METHODS ------------------------------------
52.902 ------------------------------------------------------------------------------
52.903 --- Init
52.904 --- Dummy procedure that can be called at database startup to ensure that
52.905 --- this package is loaded into memory for performance reasons only.
52.906 ------------------------------------------------------------------------------
52.907 -
52.908 -PROCEDURE Init
52.909 -IS
52.910 -BEGIN
52.911 - NULL;
52.912 -END Init;
52.913 --------------------------------------------------------------------------
52.914 --- Initialize
52.915 --------------------------------------------------------------------------
52.916 -BEGIN
52.917 - comp_time_format_ := Comp_Time_Format_API.Get_Db_Value_Rec;
52.918 - wage_group_ := Wage_Group_API.Get_Db_Value_Rec;
52.919 - time_param_label_ := Time_Param_Label_API.Get_Db_Value_Rec;
52.920 - reg_status_ := Time_Reg_Status_API.Get_Db_Value_Rec;
52.921 - Time_Reg_Error_API.Get_Active_Array(test_active_);
52.922 -END &PKG;
52.923 -/
52.924 -SHOW ERROR
52.925 -
52.926 -UNDEFINE MODULE
52.927 -UNDEFINE LU
52.928 -UNDEFINE PKG
52.929 -
52.930 -
52.931 ------------------------------------------------------------------------------
53.1 --- a/PLSQL/Lexer/test/unit/src/org/netbeans/modules/plsql/lexer/PlsqlBlockFactoryTest.java Wed May 15 16:07:35 2013 +0200
53.2 +++ b/PLSQL/Lexer/test/unit/src/org/netbeans/modules/plsql/lexer/PlsqlBlockFactoryTest.java Wed May 15 23:04:20 2013 +0200
53.3 @@ -42,6 +42,8 @@
53.4 package org.netbeans.modules.plsql.lexer;
53.5
53.6 import java.io.BufferedReader;
53.7 +import java.io.File;
53.8 +import java.io.FileInputStream;
53.9 import java.io.IOException;
53.10 import java.io.InputStream;
53.11 import java.io.InputStreamReader;
53.12 @@ -49,10 +51,8 @@
53.13 import java.util.List;
53.14 import javax.swing.text.BadLocationException;
53.15 import javax.swing.text.Document;
53.16 -import org.junit.After;
53.17 -import org.junit.AfterClass;
53.18 +import static org.junit.Assert.*;
53.19 import org.junit.Before;
53.20 -import org.junit.BeforeClass;
53.21 import org.junit.Test;
53.22 import org.netbeans.api.lexer.Language;
53.23 import org.netbeans.api.lexer.TokenHierarchy;
53.24 @@ -64,69 +64,42 @@
53.25 import org.openide.loaders.DataFolder;
53.26 import org.openide.loaders.DataObject;
53.27 import org.openide.util.Task;
53.28 -import static org.junit.Assert.*;
53.29
53.30 /**
53.31 *
53.32 * @author YADHLK
53.33 */
53.34 -public class PlsqlBlockFactoryTest {
53.35 +public class PlsqlBlockFactoryTest extends TestRecordPlayer {
53.36
53.37 private static FileSystem fs = null;
53.38
53.39 - public PlsqlBlockFactoryTest() {
53.40 - }
53.41 -
53.42 - @BeforeClass
53.43 - public static void setUpClass() throws Exception {
53.44 + @Before
53.45 + @Override
53.46 + public void setUp() {
53.47 fs = FileUtil.createMemoryFileSystem();
53.48 - }
53.49 -
53.50 - @AfterClass
53.51 - public static void tearDownClass() throws Exception {
53.52 - }
53.53 -
53.54 - @Before
53.55 - public void setUp() {
53.56 assertNotNull(fs);
53.57 }
53.58
53.59 - @After
53.60 - public void tearDown() {
53.61 + public PlsqlBlockFactoryTest(String name) {
53.62 + super(name);
53.63 }
53.64
53.65 @Test
53.66 public void testBlocksApy() throws IOException, BadLocationException {
53.67 System.out.println("Testing blocks of an APY file");
53.68 - FileObject fileObject = fs.getRoot().createData("test.apy");
53.69 + final String plsqlFileName = "test.apy";
53.70 +
53.71 + FileObject fileObject = fs.getRoot().createData(plsqlFileName);
53.72 assertNotNull(fileObject);
53.73 try {
53.74 - PlsqlBlockFactory blockFac = loadAsTmpFile(fileObject, "test.apy");
53.75 + PlsqlBlockFactory blockFac = loadAsTmpFile(fileObject, plsqlFileName);
53.76 assertNotNull(blockFac);
53.77
53.78 - List<PlsqlBlock> lstBlockFac = blockFac.getBlockHierarchy();
53.79 + List<PlsqlBlock> plsqlBlocks = blockFac.getBlockHierarchy();
53.80 //printHierarchy(lstBlockFac, "");
53.81 //generateAssert(lstBlockFac, "lstBlockFac", "false");
53.82 - assertTrue(lstBlockFac.size() == 7);
53.83 -
53.84 - //Test 1st level blocks
53.85 - assertBlock(lstBlockFac, 0, PlsqlBlockType.COMMENT, "-- Logical unit: Formula", false, 0, 348, 0);
53.86 - assertBlock(lstBlockFac, 1, PlsqlBlockType.VIEW, "FORMULA", false, 809, 1319, 0);
53.87 - assertBlock(lstBlockFac, 2, PlsqlBlockType.TABLE_COMMENT, "FORMULA", false, 1322, 1390, 0);
53.88 - assertBlock(lstBlockFac, 3, PlsqlBlockType.COLUMN_COMMENT, "FORMULA", false, 1393, 1821, 0);
53.89 - assertBlock(lstBlockFac, 4, PlsqlBlockType.PACKAGE_BODY, "FORMULA_API", false, 1861, 3550, 8);
53.90 - assertBlock(lstBlockFac.get(4).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- LU SPECIFIC IMPLEMENTATION METHOD DECLARATIONS ", true, 1976, 2209, 0);
53.91 - assertBlock(lstBlockFac.get(4).getChildBlocks(), 1, PlsqlBlockType.PROCEDURE_DEF, "Check_Formula_State___", true, 2211, 2305, 0);
53.92 - assertBlock(lstBlockFac.get(4).getChildBlocks(), 2, PlsqlBlockType.FUNCTION_DEF, "Get_Db_Values___", true, 2307, 2363, 0);
53.93 - assertBlock(lstBlockFac.get(4).getChildBlocks(), 3, PlsqlBlockType.PROCEDURE_IMPL, "Exist", true, 2365, 2592, 1);
53.94 - assertBlock(lstBlockFac.get(4).getChildBlocks().get(3).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (NOT Check_Exist___(formula_id_))", true, 2485, 2581, 0);
53.95 - assertBlock(lstBlockFac.get(4).getChildBlocks(), 4, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 2594, 2643, 0);
53.96 - assertBlock(lstBlockFac.get(4).getChildBlocks(), 5, PlsqlBlockType.FUNCTION_IMPL, "Get", true, 2645, 2962, 1);
53.97 - assertBlock(lstBlockFac.get(4).getChildBlocks().get(5).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_attr", true, 2734, 2863, 0);
53.98 - assertBlock(lstBlockFac.get(4).getChildBlocks(), 6, PlsqlBlockType.COMMENT, "-- FOUNDATION1 METHODS ", true, 2964, 3428, 0);
53.99 - assertBlock(lstBlockFac.get(4).getChildBlocks(), 7, PlsqlBlockType.PROCEDURE_IMPL, "Init", true, 3430, 3539, 0);
53.100 - assertBlock(lstBlockFac, 5, PlsqlBlockType.BEGIN_END, "", false, 3566, 3611, 0);
53.101 - assertBlock(lstBlockFac, 6, PlsqlBlockType.COMMENT, "COMMENT...", false, 3772, 3849, 0);
53.102 + assertEquals(7, plsqlBlocks.size());
53.103 + processBlocks(plsqlFileName, plsqlBlocks);
53.104 } finally {
53.105 if (fileObject != null) {
53.106 fileObject.delete();
53.107 @@ -137,23 +110,17 @@
53.108 @Test
53.109 public void testBlocksApi() throws IOException, BadLocationException {
53.110 System.out.println("Testing blocks of an API file");
53.111 - FileObject fileObject = fs.getRoot().createData("test.api");
53.112 + final String plsqlFileName = "test.api";
53.113 + FileObject fileObject = fs.getRoot().createData(plsqlFileName);
53.114 assertNotNull(fileObject);
53.115 try {
53.116 - PlsqlBlockFactory blockFac = loadAsTmpFile(fileObject, "test.api");
53.117 + PlsqlBlockFactory blockFac = loadAsTmpFile(fileObject, plsqlFileName);
53.118 assertNotNull(blockFac);
53.119
53.120 List<PlsqlBlock> lstBlockFac = blockFac.getBlockHierarchy();
53.121 //printHierarchy(lstBlockFac, "");
53.122 - assertTrue(lstBlockFac.size() == 3);
53.123 -
53.124 - assertBlock(lstBlockFac, 0, PlsqlBlockType.COMMENT, "-- Logical unit: Formula", false, 0, 332, 0);
53.125 - assertBlock(lstBlockFac, 1, PlsqlBlockType.BEGIN_END, "", false, 461, 560, 0);
53.126 - assertBlock(lstBlockFac, 2, PlsqlBlockType.PACKAGE, "FORMULA_API", false, 600, 1494, 4);
53.127 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- PRIVATE FINITE STATE MACHINE ", true, 809, 1042, 0);
53.128 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 1, PlsqlBlockType.FUNCTION_DEF, "Finite_State_Decode__", true, 1044, 1120, 0);
53.129 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 2, PlsqlBlockType.PROCEDURE_DEF, "Enumerate_States_Db__", true, 1186, 1248, 0);
53.130 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 3, PlsqlBlockType.COMMENT, "-- LU SPECIFIC PUBLIC METHODS ", true, 1250, 1483, 0);
53.131 + assertEquals(3, lstBlockFac.size());
53.132 + processBlocks(plsqlFileName, lstBlockFac);
53.133 } finally {
53.134 if (fileObject != null) {
53.135 fileObject.delete();
53.136 @@ -164,32 +131,17 @@
53.137 @Test
53.138 public void testBlocksUpg() throws IOException, BadLocationException {
53.139 System.out.println("Testing blocks of an UPG file");
53.140 - FileObject fileObject = fs.getRoot().createData("test.upg");
53.141 + final String plsqlFileName = "test.upg";
53.142 + FileObject fileObject = fs.getRoot().createData(plsqlFileName);
53.143 assertNotNull(fileObject);
53.144 try {
53.145 - PlsqlBlockFactory blockFac = loadAsTmpFile(fileObject, "test.upg");
53.146 + PlsqlBlockFactory blockFac = loadAsTmpFile(fileObject, plsqlFileName);
53.147 assertNotNull(blockFac);
53.148
53.149 List<PlsqlBlock> lstBlockFac = blockFac.getBlockHierarchy();
53.150 //printHierarchy(lstBlockFac, "");
53.151 - assertTrue(lstBlockFac.size() == 4);
53.152 -
53.153 - assertBlock(lstBlockFac, 0, PlsqlBlockType.JAVA_SOURCE, "", false, 0, 5193, 0);
53.154 - assertBlock(lstBlockFac, 1, PlsqlBlockType.DECLARE_END, "", false, 5196, 5804, 2);
53.155 - assertBlock(lstBlockFac.get(1).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "check_exits", true, 5207, 5389, 0);
53.156 - assertBlock(lstBlockFac.get(1).getChildBlocks(), 1, PlsqlBlockType.FOR_LOOP, "rec_ IN ( * FROM company_emp_tab)", true, 5416, 5799, 1);
53.157 - assertBlock(lstBlockFac.get(1).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (check_exits%NOTFOUND)", true, 5553, 5761, 1);
53.158 - assertBlock(lstBlockFac.get(1).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "INSERT INTO company_person_tab(company_id,emp_no,master_employment,operator,rowversion)", true, 5590, 5747, 0);
53.159 - assertBlock(lstBlockFac, 2, PlsqlBlockType.STATEMENT, "UPDATE search_domain_attribute_tab", false, 5808, 6299, 7);
53.160 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 0, PlsqlBlockType.CASE, "CASE datatype\n WHEN 'VARCHAR2'", true, 5867, 5935, 0);
53.161 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 1, PlsqlBlockType.CASE, "WHEN 'CHAR'", true, 5963, 5986, 0);
53.162 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 2, PlsqlBlockType.CASE, "WHEN 'NUMBER'", true, 6014, 6041, 0);
53.163 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 3, PlsqlBlockType.CASE, "WHEN 'DATE'", true, 6069, 6092, 0);
53.164 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 4, PlsqlBlockType.CASE, "WHEN 'CLOB'", true, 6120, 6148, 0);
53.165 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 5, PlsqlBlockType.CASE, "WHEN 'BLOB'", true, 6176, 6201, 0);
53.166 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 6, PlsqlBlockType.CASE, "ELSE", true, 6229, 6268, 0);
53.167 - assertBlock(lstBlockFac, 3, PlsqlBlockType.TRIGGER, "vmogss_base_tablerestrict_tr", false, 6303, 6704, 1);
53.168 - assertBlock(lstBlockFac.get(3).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "insert into vmo_base_gss_scope(gss_id, created, source_tbl, source_info) values('ALL_GSS_ID', sysdate, 'VMO_BASE_TABLERESTRICTION', :newrec.idrole)", true, 6511, 6659, 0);
53.169 + assertEquals(4, lstBlockFac.size());
53.170 + processBlocks(plsqlFileName, lstBlockFac);
53.171 } finally {
53.172 if (fileObject != null) {
53.173 fileObject.delete();
53.174 @@ -200,67 +152,19 @@
53.175 @Test
53.176 public void testAdvanced1() throws IOException, BadLocationException {
53.177 System.out.println("Advanced test case 1");
53.178 - FileObject fileObject = fs.getRoot().createData("test1.apy");
53.179 + final String plsqlFileName = "test1.apy";
53.180 + FileObject fileObject = fs.getRoot().createData(plsqlFileName);
53.181 assertNotNull(fileObject);
53.182 try {
53.183 - PlsqlBlockFactory blockFac = loadAsTmpFile(fileObject, "test1.apy");
53.184 + PlsqlBlockFactory blockFac = loadAsTmpFile(fileObject, plsqlFileName);
53.185 assertNotNull(blockFac);
53.186
53.187 List<PlsqlBlock> lstBlockFac = blockFac.getBlockHierarchy();
53.188 //printHierarchy(lstBlockFac, "");
53.189 //generateAssert(lstBlockFac, "lstBlockFac", "false");
53.190 - assertTrue(lstBlockFac.size() == 17);
53.191 - assertBlock(lstBlockFac, 0, PlsqlBlockType.VIEW, "&VIEW", false, 27, 1231, 0);
53.192 - assertBlock(lstBlockFac, 1, PlsqlBlockType.DECLARE_END, "", false, 1234, 3604, 3);
53.193 - assertBlock(lstBlockFac.get(1).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "Insert_Module_Data", true, 1245, 1305, 0);
53.194 - assertBlock(lstBlockFac.get(1).getChildBlocks(), 1, PlsqlBlockType.PROCEDURE_IMPL, "Insert_data", true, 1307, 3286, 2);
53.195 - assertBlock(lstBlockFac.get(1).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "INSERT", true, 1874, 2500, 0);
53.196 - assertBlock(lstBlockFac.get(1).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.STATEMENT, "UPDATE language_sys_tab", true, 2566, 3207, 0);
53.197 - assertBlock(lstBlockFac.get(1).getChildBlocks(), 2, PlsqlBlockType.IF, "IF NOT Installation_SYS.Is_Db_Patch_Registered('FNDBAS', '70745')", true, 3298, 3482, 1);
53.198 - assertBlock(lstBlockFac.get(1).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "rec_ IN Insert_Module_Data", true, 3375, 3471, 0);
53.199 - assertBlock(lstBlockFac, 2, PlsqlBlockType.BEGIN_END, "", false, 3783, 5491, 1);
53.200 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (NOT Database_SYS.Is_Db_Patch_Registered('ORDER', 90590))", true, 3793, 5486, 1);
53.201 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.DECLARE_END, "", true, 3866, 5356, 1);
53.202 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE customer_order_delivery_tab cod", true, 4015, 5343, 3);
53.203 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.CASE, "CASE WHEN (cod.delnote_no IS NOT NULL)", true, 4091, 4381, 0);
53.204 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.CASE, "WHEN (cod.delnote_no IS NULL AND cod.shipment_id IS NOT NULL)", true, 4424, 4721, 0);
53.205 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 2, PlsqlBlockType.CASE, "ELSE", true, 4764, 5298, 0);
53.206 - assertBlock(lstBlockFac, 3, PlsqlBlockType.STATEMENT, "UPDATE INVOICE_TAB", false, 5646, 6296, 4);
53.207 - assertBlock(lstBlockFac.get(3).getChildBlocks(), 0, PlsqlBlockType.CASE, "CASE \n WHEN CREATOR = 'CUSTOMER_ORDER_INV_HEAD_API'", true, 5690, 5817, 0);
53.208 - assertBlock(lstBlockFac.get(3).getChildBlocks(), 1, PlsqlBlockType.CASE, "ELSE", true, 5846, 5913, 0);
53.209 - assertBlock(lstBlockFac.get(3).getChildBlocks(), 2, PlsqlBlockType.CASE, "CASE \n WHEN CREATOR = 'CUSTOMER_ORDER_INV_HEAD_API' AND INVOICE_TYPE NOT IN('CUSTORDDEB','CUSTCOLDEB','SELFBILLDEB','SELFBILLCRE','CUSTORDCRE','CUSTCOLCRE','CUSTCOLCOR','CUSTORDCOR')", true, 5940, 6189, 0);
53.210 - assertBlock(lstBlockFac.get(3).getChildBlocks(), 3, PlsqlBlockType.CASE, "ELSE", true, 6218, 6296, 0);
53.211 - assertBlock(lstBlockFac, 4, PlsqlBlockType.VIEW, "_DEF", false, 6342, 6687, 0);
53.212 - assertBlock(lstBlockFac, 5, PlsqlBlockType.TABLE_COMMENT, "_DEF", false, 6690, 6770, 0);
53.213 - assertBlock(lstBlockFac, 6, PlsqlBlockType.DECLARE_END, "", false, 6773, 6852, 0);
53.214 - assertBlock(lstBlockFac, 7, PlsqlBlockType.DECLARE_END, "", false, 6854, 7438, 2);
53.215 - assertBlock(lstBlockFac.get(7).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "check_exits", true, 6865, 7034, 0);
53.216 - assertBlock(lstBlockFac.get(7).getChildBlocks(), 1, PlsqlBlockType.FOR_LOOP, "rec_ IN ( * FROM company_emp_tab)", true, 7058, 7433, 1);
53.217 - assertBlock(lstBlockFac.get(7).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (check_exits%NOTFOUND)", true, 7195, 7401, 1);
53.218 - assertBlock(lstBlockFac.get(7).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "INSERT INTO company_person_tab(company_id,emp_no,master_employment,operator,rowversion)", true, 7232, 7389, 0);
53.219 - assertBlock(lstBlockFac, 8, PlsqlBlockType.STATEMENT, "DROP PROCEDURE Temp_Person_Document_Default", false, 7479, 7522, 0);
53.220 - assertBlock(lstBlockFac, 9, PlsqlBlockType.BEGIN_END, "", false, 7525, 7729, 0);
53.221 - assertBlock(lstBlockFac, 10, PlsqlBlockType.STATEMENT, "INDEX Report_Grouping_Detail_Ux ON Report_Grouping_Detail_Tab", false, 7733, 7917, 0);
53.222 - assertBlock(lstBlockFac, 11, PlsqlBlockType.VIEW, "&MODULE_VIEW1", false, 7920, 8259, 0);
53.223 - assertBlock(lstBlockFac, 12, PlsqlBlockType.VIEW, "&VIEW3", false, 8262, 9892, 0);
53.224 - assertBlock(lstBlockFac, 13, PlsqlBlockType.TRIGGER, "VMOL_BASE_FIELDDEPVALUES_TIB", false, 9895, 10114, 1);
53.225 - assertBlock(lstBlockFac.get(13).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "SELECT VMOL_ID_SEQ.NEXTVAL INTO :NEWREC.ID_ FROM DUAL", true, 10052, 10105, 0);
53.226 - assertBlock(lstBlockFac, 14, PlsqlBlockType.BEGIN_END, "", false, 10118, 10507, 3);
53.227 - assertBlock(lstBlockFac.get(14).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- OK if ORA ", true, 10315, 10377, 0);
53.228 - assertBlock(lstBlockFac.get(14).getChildBlocks(), 1, PlsqlBlockType.IF, "IF INSTR(SQLERRM,'-00955') != 0", true, 10386, 10428, 0);
53.229 - assertBlock(lstBlockFac.get(14).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSE", true, 10437, 10502, 0);
53.230 - assertBlock(lstBlockFac, 15, PlsqlBlockType.TRIGGER, "VMO_BASE_GSS_SYNCED_RECORDS_TR", false, 10511, 11707, 2);
53.231 - assertBlock(lstBlockFac.get(15).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- This trigger is only used to make sure that an old version of GSS still can be tested", true, 10677, 10937, 0);
53.232 - assertBlock(lstBlockFac.get(15).getChildBlocks(), 1, PlsqlBlockType.FUNCTION_IMPL, "GET_GSS_USER", true, 10950, 11540, 1);
53.233 - assertBlock(lstBlockFac.get(15).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "SELECT U.GSS_USER INTO GSS_USER_", true, 11150, 11392, 0);
53.234 - assertBlock(lstBlockFac, 16, PlsqlBlockType.STATEMENT, "UPDATE search_domain_attribute_tab", false, 11712, 12203, 7);
53.235 - assertBlock(lstBlockFac.get(16).getChildBlocks(), 0, PlsqlBlockType.CASE, "CASE datatype\n WHEN 'VARCHAR2'", true, 11771, 11839, 0);
53.236 - assertBlock(lstBlockFac.get(16).getChildBlocks(), 1, PlsqlBlockType.CASE, "WHEN 'CHAR'", true, 11867, 11890, 0);
53.237 - assertBlock(lstBlockFac.get(16).getChildBlocks(), 2, PlsqlBlockType.CASE, "WHEN 'NUMBER'", true, 11918, 11945, 0);
53.238 - assertBlock(lstBlockFac.get(16).getChildBlocks(), 3, PlsqlBlockType.CASE, "WHEN 'DATE'", true, 11973, 11996, 0);
53.239 - assertBlock(lstBlockFac.get(16).getChildBlocks(), 4, PlsqlBlockType.CASE, "WHEN 'CLOB'", true, 12024, 12052, 0);
53.240 - assertBlock(lstBlockFac.get(16).getChildBlocks(), 5, PlsqlBlockType.CASE, "WHEN 'BLOB'", true, 12080, 12105, 0);
53.241 - assertBlock(lstBlockFac.get(16).getChildBlocks(), 6, PlsqlBlockType.CASE, "ELSE", true, 12133, 12172, 0);
53.242 + assertEquals(17, lstBlockFac.size());
53.243 + processBlocks(plsqlFileName, lstBlockFac);
53.244 +
53.245 } finally {
53.246 if (fileObject != null) {
53.247 fileObject.delete();
53.248 @@ -271,165 +175,18 @@
53.249 @Test
53.250 public void testAdvanced2() throws IOException, BadLocationException {
53.251 System.out.println("Advanced test case 2");
53.252 - FileObject fileObject = fs.getRoot().createData("test2.apy");
53.253 + final String plsqlFileName = "test2.apy";
53.254 + FileObject fileObject = fs.getRoot().createData(plsqlFileName);
53.255 assertNotNull(fileObject);
53.256 try {
53.257 - PlsqlBlockFactory blockFac = loadAsTmpFile(fileObject, "test2.apy");
53.258 + PlsqlBlockFactory blockFac = loadAsTmpFile(fileObject, plsqlFileName);
53.259 assertNotNull(blockFac);
53.260
53.261 List<PlsqlBlock> lstBlockFac = blockFac.getBlockHierarchy();
53.262 //printHierarchy(lstBlockFac, "");
53.263 //generateAssert(lstBlockFac, "lstBlockFac", "false");
53.264 - assertTrue(lstBlockFac.size() == 1);
53.265 - assertBlock(lstBlockFac, 0, PlsqlBlockType.PROCEDURE_IMPL, "Evaluate_Level___", false, 1, 59599, 6);
53.266 - assertBlock(lstBlockFac.get(0).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "COMMENT...", true, 783, 785, 0);
53.267 - assertBlock(lstBlockFac.get(0).getChildBlocks(), 1, PlsqlBlockType.CURSOR, "get_line_item_no", true, 2780, 3073, 0);
53.268 - assertBlock(lstBlockFac.get(0).getChildBlocks(), 2, PlsqlBlockType.CURSOR, "get_parent_supply", true, 3077, 3287, 0);
53.269 - assertBlock(lstBlockFac.get(0).getChildBlocks(), 3, PlsqlBlockType.COMMENT, "-- FOR", true, 3367, 3442, 0);
53.270 - assertBlock(lstBlockFac.get(0).getChildBlocks(), 4, PlsqlBlockType.FOR_LOOP, "parent_supply_ IN get_parent_supply", true, 3446, 59496, 16);
53.271 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Set parent_supply_rec_ as Parent_supply_", true, 3497, 3540, 0);
53.272 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "COMMENT...", true, 3591, 3593, 0);
53.273 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks(), 2, PlsqlBlockType.COMMENT, "COMMENT...", true, 3685, 3687, 0);
53.274 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks(), 3, PlsqlBlockType.COMMENT, "COMMENT...", true, 3861, 3863, 0);
53.275 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks(), 4, PlsqlBlockType.COMMENT, "COMMENT...", true, 4222, 4224, 0);
53.276 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks(), 5, PlsqlBlockType.IF, "IF (part_type_code_ IN ( '1','2'))", true, 4231, 4305, 0);
53.277 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks(), 6, PlsqlBlockType.IF, "ELSIF (part_type_code_ IN ('3', '4'))", true, 4312, 4403, 0);
53.278 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks(), 7, PlsqlBlockType.COMMENT, "-- begin CTP", true, 4479, 4494, 0);
53.279 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks(), 8, PlsqlBlockType.COMMENT, "-- If ctp planned, check multi", true, 4610, 4681, 0);
53.280 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks(), 9, PlsqlBlockType.IF, "IF evaluation_rec_.ctp_planned = 1 AND\n \n part_type_code_ IN ('3','4')", true, 4727, 7414, 4);
53.281 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(9).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- parent_supply_.interim_structure_level > 0 AND", true, 4775, 4823, 0);
53.282 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(9).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- check for multi", true, 4875, 4910, 0);
53.283 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(9).getChildBlocks(), 2, PlsqlBlockType.IF, "IF Dictionary_SYS.Logical_Unit_Is_Installed('SupplySourcePartManager')", true, 5032, 5469, 1);
53.284 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(9).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- ifs_assert_safe pemase 20051221", true, 5252, 5286, 0);
53.285 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(9).getChildBlocks(), 3, PlsqlBlockType.IF, "IF check_source_ = 'TRUE'", true, 5552, 7376, 0);
53.286 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks(), 10, PlsqlBlockType.COMMENT, "-- No further evaluation if multisite part.", true, 7507, 7550, 0);
53.287 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks(), 11, PlsqlBlockType.IF, "IF NOT multi_site_part_exist_", true, 7555, 58694, 10);
53.288 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- IF", true, 7653, 7770, 0);
53.289 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks(), 1, PlsqlBlockType.IF, "IF ((configurable_ = 'CONFIGURED') AND (part_type_code_ = '1')) OR\n ((dop_part_ = 'D') AND (part_type_code_ = '1'))", true, 7777, 15425, 10);
53.290 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (evaluation_rec_.alternate_status = 'Buildable')", true, 7915, 9530, 2);
53.291 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF Manuf_Part_Attribute_API.Get_Structure_Effectivity(parent_supply_.contract, parent_supply_.part_no)\n = Effectivity_Control_API.Decode('SERIAL')", true, 8075, 8764, 0);
53.292 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 8779, 9512, 0);
53.293 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- Retrieve configured part routing if manufactured part.", true, 9692, 9749, 0);
53.294 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(1).getChildBlocks(), 2, PlsqlBlockType.IF, "IF (comp_bom_type_db_ = 'M')", true, 9759, 13111, 2);
53.295 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(1).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (NVL(operation_rec_.operation_row_count,0) > 0)", true, 10889, 12718, 1);
53.296 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(1).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (routing_alternative_no_ IS NOT NULL)", true, 10960, 12698, 5);
53.297 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(1).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "ops IN 1..operation_rec_.operation_row_count", true, 11025, 11242, 0);
53.298 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(1).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- Note; Set Routing_alternative on InterimOrder After DetermineRouting", true, 11261, 11332, 0);
53.299 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(1).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 2, PlsqlBlockType.COMMENT, "COMMENT...", true, 11731, 11733, 0);
53.300 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(1).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 3, PlsqlBlockType.IF, "IF (NOT Routing_Int_API.Is_Routing_Buildable(parent_supply_.contract,\n parent_supply_.part_no,\n parent_supply_.routing_revision,\n comp_bom_type_,\n routing_alternative_no_))", true, 11752, 12654, 0);
53.301 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(1).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 4, PlsqlBlockType.COMMENT, "COMMENT...", true, 12673, 12675, 0);
53.302 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(1).getChildBlocks().get(2).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- Note; Create Operations that is evaluated", true, 12731, 12775, 0);
53.303 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(1).getChildBlocks(), 3, PlsqlBlockType.COMMENT, "-- Correct the top order start date before determine the structure", true, 13163, 13229, 0);
53.304 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(1).getChildBlocks(), 4, PlsqlBlockType.IF, "IF parent_supply_.interim_order_no ='1'", true, 13239, 13689, 0);
53.305 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(1).getChildBlocks(), 5, PlsqlBlockType.IF, "ELSE", true, 13699, 13781, 0);
53.306 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(1).getChildBlocks(), 6, PlsqlBlockType.COMMENT, "-- Retrieve the components for configured part.", true, 13783, 13830, 0);
53.307 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(1).getChildBlocks(), 7, PlsqlBlockType.COMMENT, "-- Note; Set Structure_alternative on InterimOrder After DetermineStructure", true, 14914, 15001, 0);
53.308 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(1).getChildBlocks(), 8, PlsqlBlockType.IF, "IF (structure_alternative_no_ IS NOT NULL)", true, 15011, 15346, 0);
53.309 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(1).getChildBlocks(), 9, PlsqlBlockType.COMMENT, "-- IF", true, 15348, 15425, 0);
53.310 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSIF (Part_Catalog_API.Get_Configurable_Db(evaluation_rec_.part_no) = 'NOT CONFIGURED')", true, 15432, 22718, 7);
53.311 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Note; If interim demand head part is not configured then do normal explosion", true, 15535, 15694, 0);
53.312 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(2).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- Get routing revision and alternate for non", true, 15829, 15904, 0);
53.313 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(2).getChildBlocks(), 2, PlsqlBlockType.IF, "IF (comp_bom_type_db_ = 'M')", true, 15999, 19455, 4);
53.314 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(2).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (evaluation_rec_.alternate_status = 'Buildable')", true, 16045, 17127, 1);
53.315 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(2).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF comp_routing_revision_ IS NULL", true, 16785, 17127, 0);
53.316 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(2).getChildBlocks().get(2).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 17140, 18328, 1);
53.317 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(2).getChildBlocks().get(2).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF comp_routing_revision_ IS NULL", true, 17951, 18308, 0);
53.318 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(2).getChildBlocks().get(2).getChildBlocks(), 2, PlsqlBlockType.IF, "IF comp_struct_alternative_no_ IS NULL", true, 19040, 19373, 0);
53.319 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(2).getChildBlocks().get(2).getChildBlocks(), 3, PlsqlBlockType.COMMENT, "-- Get routing revision and alternate for non", true, 19383, 19455, 0);
53.320 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(2).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSIF (comp_bom_type_db_ = 'P')", true, 19465, 19916, 0);
53.321 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(2).getChildBlocks(), 4, PlsqlBlockType.COMMENT, "-- If manufactured, retrieve routing operations for non", true, 19960, 20032, 0);
53.322 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(2).getChildBlocks(), 5, PlsqlBlockType.IF, "IF (comp_bom_type_db_ = 'M')", true, 20042, 21840, 3);
53.323 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(2).getChildBlocks().get(5).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "COMMENT...", true, 20808, 20810, 0);
53.324 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(2).getChildBlocks().get(5).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (NVL(operation_rec_.operation_row_count,0) > 0)", true, 20823, 21447, 1);
53.325 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(2).getChildBlocks().get(5).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (comp_rout_alternative_no_ IS NOT NULL)", true, 20894, 21427, 1);
53.326 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(2).getChildBlocks().get(5).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Note; Set Routing_alternative on InterimOrder After DetermineRouting", true, 20960, 21031, 0);
53.327 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(2).getChildBlocks().get(5).getChildBlocks(), 2, PlsqlBlockType.COMMENT, "-- Note; Create Operations that is evaluated", true, 21461, 21505, 0);
53.328 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(2).getChildBlocks(), 6, PlsqlBlockType.COMMENT, "-- Retrieve components for non", true, 21842, 21889, 0);
53.329 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks(), 3, PlsqlBlockType.COMMENT, "-- End of IF", true, 22796, 22817, 0);
53.330 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks(), 4, PlsqlBlockType.COMMENT, "-- If top", true, 22900, 22981, 0);
53.331 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks(), 5, PlsqlBlockType.IF, "IF parent_supply_.interim_order_no ='1'", true, 22988, 23330, 0);
53.332 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks(), 6, PlsqlBlockType.IF, "ELSE", true, 23337, 24786, 3);
53.333 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(6).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "component_line_item_rec_ IN get_line_item_no(evaluation_rec_.interim_header_id, parent_order_no_)", true, 23741, 24141, 1);
53.334 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(6).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (component_line_item_rec_.supply_interim_order_no = parent_supply_.interim_order_no)", true, 23860, 24122, 0);
53.335 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(6).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (leadtime_offset_ > 0)", true, 24151, 24456, 0);
53.336 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(6).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSE", true, 24466, 24545, 0);
53.337 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks(), 7, PlsqlBlockType.COMMENT, "-- FOR", true, 24788, 24842, 0);
53.338 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks(), 8, PlsqlBlockType.FOR_LOOP, "i IN 1..NVL(component_rec_.comp_row_count,0)", true, 24849, 58623, 6);
53.339 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- If by", true, 25656, 25720, 0);
53.340 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (component_rec_.qty_per_assembly_tab(i) < 0)", true, 25730, 27866, 0);
53.341 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks(), 2, PlsqlBlockType.WHILE_LOOP, "(parent_interim_order_no_ > 0) and (NOT phatom_part_exist_ )", true, 28048, 28595, 1);
53.342 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.IF, "IF parent_part_mrp_code_ = 'P'", true, 28332, 28430, 0);
53.343 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks(), 3, PlsqlBlockType.COMMENT, "-- If expense component line, then create warning and ignore.", true, 28597, 28658, 0);
53.344 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks(), 4, PlsqlBlockType.IF, "IF (part_type_code_ = '6')", true, 28668, 30817, 1);
53.345 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(4).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Else if not phantom parent part, process.", true, 30773, 30817, 0);
53.346 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks(), 5, PlsqlBlockType.IF, "ELSIF (parent_interim_order_no_ = 0)", true, 30827, 58528, 6);
53.347 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (part_type_code_ IN ( '1','2'))", true, 30881, 30961, 0);
53.348 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (part_type_code_ IN ('3', '4'))", true, 30974, 31077, 0);
53.349 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks(), 2, PlsqlBlockType.COMMENT, "-- IF", true, 31154, 31198, 0);
53.350 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks(), 3, PlsqlBlockType.IF, "IF (component_rec_.mrp_order_code_tab(i) IN ('P','K') AND\n (part_type_code_ = '1'))", true, 31211, 37738, 6);
53.351 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(3).getChildBlocks(), 0, PlsqlBlockType.IF, "IF component_rec_.mrp_order_code_tab(i) = 'P'", true, 31437, 32540, 2);
53.352 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (qty_avail_ >= primary_comp_qty_ ) OR (component_rec_.consumption_item_db_tab(i) = 'Not Consumed')", true, 32266, 32420, 0);
53.353 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 32440, 32517, 0);
53.354 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(3).getChildBlocks(), 1, PlsqlBlockType.IF, "IF get_comp_flag_ = TRUE", true, 32557, 33569, 0);
53.355 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(3).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSIF get_comp_flag_ = FALSE", true, 33585, 37396, 1);
53.356 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(3).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Create InterimOrderComponent", true, 35543, 35574, 0);
53.357 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(3).getChildBlocks(), 3, PlsqlBlockType.IF, "IF (evaluation_rec_.single_level_explosion = 0)", true, 37450, 37570, 0);
53.358 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(3).getChildBlocks(), 4, PlsqlBlockType.IF, "ELSE", true, 37586, 37682, 0);
53.359 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(3).getChildBlocks(), 5, PlsqlBlockType.COMMENT, "-- IF", true, 37684, 37738, 0);
53.360 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks(), 4, PlsqlBlockType.IF, "ELSE", true, 37751, 58427, 13);
53.361 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(4).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- If ctp planned record check for orders to evaluate.", true, 37771, 37825, 0);
53.362 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(4).getChildBlocks(), 1, PlsqlBlockType.IF, "IF evaluation_rec_.ctp_planned = 1", true, 37841, 39673, 3);
53.363 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(4).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF configurable_ = 'CONFIGURED'", true, 37899, 39281, 2);
53.364 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(4).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF part_type_code_ IN ('3','4')", true, 37957, 38933, 3);
53.365 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(4).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF Dictionary_SYS.Logical_Unit_Is_Installed('SupplySourcePartManager')", true, 38018, 38660, 1);
53.366 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(4).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- ifs_assert_safe pemase 20051221", true, 38344, 38378, 0);
53.367 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(4).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "IF check_source_ = 'TRUE'", true, 38686, 38794, 0);
53.368 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(4).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSE", true, 38819, 38933, 0);
53.369 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(4).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 38955, 39281, 2);
53.370 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(4).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (evaluation_rec_.single_level_explosion = 0)", true, 38984, 39113, 0);
53.371 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(4).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 39138, 39252, 0);
53.372 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(4).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 39300, 39608, 2);
53.373 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(4).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (evaluation_rec_.single_level_explosion = 0)", true, 39326, 39452, 0);
53.374 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(4).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 39474, 39582, 0);
53.375 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(4).getChildBlocks().get(1).getChildBlocks(), 2, PlsqlBlockType.COMMENT, "-- Not ctp planned, check for orders to evaluate.", true, 39624, 39673, 0);
53.376 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(4).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSE", true, 39689, 40181, 1);
53.377 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(4).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.IF, "IF ((configurable_ = 'CONFIGURED') AND (part_type_code_ = '1')) OR\n ((dop_part_ = 'D') AND (part_type_code_ = '1'))", true, 39712, 40158, 2);
53.378 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(4).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (evaluation_rec_.single_level_explosion = 0)", true, 39875, 40001, 0);
53.379 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(4).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 40023, 40131, 0);
53.380 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(4).getChildBlocks(), 3, PlsqlBlockType.COMMENT, "-- Note; Create InterimOrder", true, 40579, 40689, 0);
53.381 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(4).getChildBlocks(), 4, PlsqlBlockType.IF, "IF (comp_bom_type_db_ = 'M')", true, 40802, 47732, 3);
53.382 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(4).getChildBlocks().get(4).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Note; For Component part even tentative alternative is allowed as a leaf.", true, 40854, 41004, 0);
53.383 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(4).getChildBlocks().get(4).getChildBlocks(), 1, PlsqlBlockType.IF, "IF Manuf_Part_Attribute_API.Get_Structure_Effectivity(component_rec_.contract_tab(i), component_rec_.component_part_tab(i))\n = Effectivity_Control_API.Decode('SERIAL')", true, 41024, 44290, 0);
53.384 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(4).getChildBlocks().get(4).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSE", true, 44311, 47681, 2);
53.385 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(4).getChildBlocks().get(4).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (evaluation_rec_.alternate_status = 'Buildable')", true, 45217, 46374, 1);
53.386 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(4).getChildBlocks().get(4).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF comp_routing_revision_ IS NULL", true, 45993, 46374, 0);
53.387 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(4).getChildBlocks().get(4).getChildBlocks().get(2).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 46397, 47655, 1);
53.388 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(4).getChildBlocks().get(4).getChildBlocks().get(2).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF comp_routing_revision_ IS NULL", true, 47228, 47625, 0);
53.389 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(4).getChildBlocks(), 5, PlsqlBlockType.IF, "ELSIF (comp_bom_type_db_ = 'P')", true, 47749, 48734, 2);
53.390 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(4).getChildBlocks().get(5).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Bug 77319, start", true, 48143, 48162, 0);
53.391 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(4).getChildBlocks().get(5).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- Bug 77319, end", true, 48694, 48711, 0);
53.392 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(4).getChildBlocks(), 6, PlsqlBlockType.IF, "IF (comp_eng_chg_level_ IS NULL)", true, 48787, 51225, 1);
53.393 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(4).getChildBlocks().get(6).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Note; Set a error message for part revision being null for component", true, 48843, 48914, 0);
53.394 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(4).getChildBlocks(), 7, PlsqlBlockType.COMMENT, "COMMENT...", true, 51286, 51306, 0);
53.395 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(4).getChildBlocks(), 8, PlsqlBlockType.FOR_LOOP, "j IN 1..NVL(operation_rec_.operation_row_count,0)", true, 51352, 51628, 1);
53.396 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(4).getChildBlocks().get(8).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (component_rec_.comp_operation_no_tab(i)=operation_rec_.operation_no_tab(j))", true, 51429, 51603, 0);
53.397 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(4).getChildBlocks(), 9, PlsqlBlockType.IF, "IF (NOT found_)", true, 51644, 51752, 0);
53.398 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(4).getChildBlocks(), 10, PlsqlBlockType.IF, "IF (component_rec_.comp_operation_no_tab(i) IS NOT NULL)", true, 51769, 52797, 0);
53.399 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(4).getChildBlocks(), 11, PlsqlBlockType.COMMENT, "COMMENT...", true, 52813, 52815, 0);
53.400 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(4).getChildBlocks(), 12, PlsqlBlockType.IF, "IF ( ( (component_rec_.comp_operation_no_tab(i) IS NULL) OR\n ( (component_rec_.comp_operation_no_tab(i) IS NOT NULL) AND\n (oper_valid_) ) ) AND\n ( (component_rec_.qty_per_assembly_tab(i) > 0) OR\n (component_rec_.consumption_item_db_tab(i) = 'Not Consumed') ) )", true, 52831, 58340, 4);
53.401 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(4).getChildBlocks().get(12).getChildBlocks(), 0, PlsqlBlockType.IF, "IF component_rec_.consumption_item_db_tab(i) = 'Not Consumed'", true, 53199, 53353, 0);
53.402 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(4).getChildBlocks().get(12).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- Note; Create InterimOrderComponent", true, 54776, 54813, 0);
53.403 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(4).getChildBlocks().get(12).getChildBlocks(), 2, PlsqlBlockType.COMMENT, "-- Note; Create InterimCompWorkGuide", true, 56753, 56789, 0);
53.404 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(4).getChildBlocks().get(12).getChildBlocks(), 3, PlsqlBlockType.FOR_LOOP, "j IN 1..comp_work_guide_rec_.comp_work_guide_count", true, 56808, 58287, 1);
53.405 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(4).getChildBlocks().get(12).getChildBlocks().get(3).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (component_rec_.line_item_no_tab(i) = comp_work_guide_rec_.comp_line_item_no_tab(j))", true, 56889, 58259, 1);
53.406 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks().get(4).getChildBlocks().get(12).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "COMMENT...", true, 57006, 57008, 0);
53.407 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks().get(8).getChildBlocks().get(5).getChildBlocks(), 5, PlsqlBlockType.COMMENT, "-- End IF", true, 58493, 58510, 0);
53.408 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks().get(11).getChildBlocks(), 9, PlsqlBlockType.COMMENT, "-- End FOR", true, 58624, 58682, 0);
53.409 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks(), 12, PlsqlBlockType.COMMENT, "-- Note; Initialize all records for the next interim order", true, 58737, 58795, 0);
53.410 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks(), 13, PlsqlBlockType.COMMENT, "COMMENT...", true, 59312, 59314, 0);
53.411 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks(), 14, PlsqlBlockType.COMMENT, "-- Bug 74483, start", true, 59362, 59381, 0);
53.412 - assertBlock(lstBlockFac.get(0).getChildBlocks().get(4).getChildBlocks(), 15, PlsqlBlockType.COMMENT, "-- Bug 74483, end", true, 59466, 59483, 0);
53.413 - assertBlock(lstBlockFac.get(0).getChildBlocks(), 5, PlsqlBlockType.COMMENT, "-- End FOR", true, 59497, 59576, 0);
53.414 + processBlocks(plsqlFileName, lstBlockFac);
53.415 +
53.416 } finally {
53.417 if (fileObject != null) {
53.418 fileObject.delete();
53.419 @@ -440,23 +197,18 @@
53.420 @Test
53.421 public void testAdvanced3() throws IOException, BadLocationException {
53.422 System.out.println("Advanced test case 3");
53.423 - FileObject fileObject = fs.getRoot().createData("080617_75132_fndbas.cdb");
53.424 + final String plsqlFileName = "080617_75132_fndbas.cdb";
53.425 + FileObject fileObject = fs.getRoot().createData(plsqlFileName);
53.426 assertNotNull(fileObject);
53.427 try {
53.428 - PlsqlBlockFactory blockFac = loadAsTmpFile(fileObject, "080617_75132_fndbas.cdb");
53.429 + PlsqlBlockFactory blockFac = loadAsTmpFile(fileObject, plsqlFileName);
53.430 assertNotNull(blockFac);
53.431
53.432 List<PlsqlBlock> lstBlockFac = blockFac.getBlockHierarchy();
53.433 // printHierarchy(lstBlockFac, "");
53.434 // generateAssert(lstBlockFac, "lstBlockFac", "false");
53.435 - assertTrue(lstBlockFac.size() == 5);
53.436 - assertBlock(lstBlockFac, 0, PlsqlBlockType.COMMENT, "-- File : 080617_75132_Fndbas.cdb", false, 0, 760, 0);
53.437 - assertBlock(lstBlockFac, 1, PlsqlBlockType.BEGIN_END, "", false, 795, 903, 0);
53.438 - assertBlock(lstBlockFac, 2, PlsqlBlockType.DECLARE_END, "", false, 965, 1601, 1);
53.439 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 0, PlsqlBlockType.IF, "IF NOT &AO..Installation_SYS.Is_Db_Patch_Registered('FNDBAS', 75132)", true, 1130, 1596, 0);
53.440 - assertBlock(lstBlockFac, 3, PlsqlBlockType.DECLARE_END, "", false, 1666, 2310, 1);
53.441 - assertBlock(lstBlockFac.get(3).getChildBlocks(), 0, PlsqlBlockType.IF, "IF NOT &AO..Installation_SYS.Is_Db_Patch_Registered('FNDBAS', 75132)", true, 1839, 2305, 0);
53.442 - assertBlock(lstBlockFac, 4, PlsqlBlockType.BEGIN_END, "", false, 2315, 2416, 0);
53.443 + assertEquals(lstBlockFac.size(), 5);
53.444 + processBlocks(plsqlFileName, lstBlockFac);
53.445 } finally {
53.446 if (fileObject != null) {
53.447 fileObject.delete();
53.448 @@ -467,19 +219,18 @@
53.449 @Test
53.450 public void testAdvanced4() throws IOException, BadLocationException {
53.451 System.out.println("Advanced test case 4");
53.452 - FileObject fileObject = fs.getRoot().createData("081114_78488_VMOSFA.cdb");
53.453 + final String plsqlFileName = "081114_78488_VMOSFA.cdb";
53.454 + FileObject fileObject = fs.getRoot().createData(plsqlFileName);
53.455 assertNotNull(fileObject);
53.456 try {
53.457 - PlsqlBlockFactory blockFac = loadAsTmpFile(fileObject, "081114_78488_VMOSFA.cdb");
53.458 + PlsqlBlockFactory blockFac = loadAsTmpFile(fileObject, plsqlFileName);
53.459 assertNotNull(blockFac);
53.460
53.461 List<PlsqlBlock> lstBlockFac = blockFac.getBlockHierarchy();
53.462 // printHierarchy(lstBlockFac, "");
53.463 // generateAssert(lstBlockFac, "lstBlockFac", "false");
53.464 - assertTrue(lstBlockFac.size() == 3);
53.465 - assertBlock(lstBlockFac, 0, PlsqlBlockType.COMMENT, "-- Module : VMOSFA", false, 0, 473, 0);
53.466 - assertBlock(lstBlockFac, 1, PlsqlBlockType.COMMENT, "COMMENT...", false, 516, 634, 0);
53.467 - assertBlock(lstBlockFac, 2, PlsqlBlockType.TABLE_COMMENT, "VMO_BASE_SYNC_PACKAGE_VIEW", false, 636, 894, 0);
53.468 + assertEquals(lstBlockFac.size(), 3);
53.469 + processBlocks(plsqlFileName, lstBlockFac);
53.470 } finally {
53.471 if (fileObject != null) {
53.472 fileObject.delete();
53.473 @@ -490,579 +241,19 @@
53.474 @Test
53.475 public void testAdvanced5() throws IOException, BadLocationException {
53.476 System.out.println("Advanced test case 5");
53.477 - FileObject fileObject = fs.getRoot().createData("Dictionary.apy");
53.478 + final String plsqlFileName = "Dictionary.apy";
53.479 + FileObject fileObject = fs.getRoot().createData(plsqlFileName);
53.480 assertNotNull(fileObject);
53.481 try {
53.482 - PlsqlBlockFactory blockFac = loadAsTmpFile(fileObject, "Dictionary.apy");
53.483 + PlsqlBlockFactory blockFac = loadAsTmpFile(fileObject, plsqlFileName);
53.484 assertNotNull(blockFac);
53.485
53.486 List<PlsqlBlock> lstBlockFac = blockFac.getBlockHierarchy();
53.487 // printHierarchy(lstBlockFac, "");
53.488 // generateAssert(lstBlockFac, "lstBlockFac", "false");
53.489 - assertTrue(lstBlockFac.size() == 4);
53.490 - assertBlock(lstBlockFac, 0, PlsqlBlockType.COMMENT, "-- Package: Dictionary_SYS", false, 0, 19335, 0);
53.491 - assertBlock(lstBlockFac, 1, PlsqlBlockType.COMMENT, "-- PACKAGES FOR METHODS ", false, 19440, 19673, 0);
53.492 - assertBlock(lstBlockFac, 2, PlsqlBlockType.PACKAGE_BODY, "DICTIONARY_SYS", false, 19712, 130195, 68);
53.493 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- SERVICE SPECIFIC IMPLEMENTATION METHOD DECLARATIONS ", true, 20170, 20403, 0);
53.494 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 1, PlsqlBlockType.FUNCTION_DEF, "Check_Method_From_View___", true, 20405, 20525, 0);
53.495 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 2, PlsqlBlockType.COMMENT, "-- SERVICE SPECIFIC IMPLEMENTATION METHODS ", true, 20527, 20760, 0);
53.496 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 3, PlsqlBlockType.FUNCTION_IMPL, "Check_Method_From_View___", true, 20762, 21616, 1);
53.497 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(3).getChildBlocks(), 0, PlsqlBlockType.WHILE_LOOP, "(index_ > 0)", true, 21227, 21568, 1);
53.498 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (Method_Is_Installed(package_name_, method_name_))", true, 21376, 21499, 0);
53.499 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 4, PlsqlBlockType.FUNCTION_IMPL, "Rebuild_Dictionary_Storage___", true, 21618, 97424, 47);
53.500 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_last_update", true, 23133, 23218, 0);
53.501 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- LAST_DDL_TIME:", true, 23223, 24026, 0);
53.502 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks(), 2, PlsqlBlockType.CURSOR, "get_pkgs_to_update", true, 24030, 24353, 0);
53.503 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks(), 3, PlsqlBlockType.COMMENT, "-- Views to update (last_ddl_time has changed since last update)", true, 24398, 24462, 0);
53.504 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks(), 4, PlsqlBlockType.CURSOR, "get_views_to_update", true, 24466, 24674, 0);
53.505 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks(), 5, PlsqlBlockType.COMMENT, "-- All packages (used when doing a full refresh for performance reasons)", true, 24679, 24751, 0);
53.506 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks(), 6, PlsqlBlockType.CURSOR, "get_all_pkgs", true, 24755, 24964, 0);
53.507 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks(), 7, PlsqlBlockType.COMMENT, "-- All view (used when doing a full refresh for performance reasons)", true, 25009, 25077, 0);
53.508 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks(), 8, PlsqlBlockType.CURSOR, "get_all_views", true, 25081, 25210, 0);
53.509 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks(), 9, PlsqlBlockType.COMMENT, "-- Package information", true, 25215, 25237, 0);
53.510 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks(), 10, PlsqlBlockType.CURSOR, "get_package_info", true, 25241, 25892, 0);
53.511 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks(), 11, PlsqlBlockType.COMMENT, "-- View information", true, 25897, 25916, 0);
53.512 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks(), 12, PlsqlBlockType.CURSOR, "get_view_comments", true, 25920, 26094, 0);
53.513 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks(), 13, PlsqlBlockType.PROCEDURE_IMPL, "Write_Error_Text___", true, 26099, 26631, 2);
53.514 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(13).getChildBlocks(), 0, PlsqlBlockType.IF, "IF write_clob_", true, 26281, 26443, 2);
53.515 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(13).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF new_line_", true, 26310, 26375, 0);
53.516 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(13).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 26385, 26443, 0);
53.517 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(13).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 26450, 26603, 2);
53.518 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(13).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF new_line_", true, 26464, 26522, 0);
53.519 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(13).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 26532, 26589, 0);
53.520 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks(), 14, PlsqlBlockType.PROCEDURE_IMPL, "Get_Next_Pkg_Index___", true, 26637, 27027, 1);
53.521 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(14).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "next_index", true, 26753, 26896, 0);
53.522 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks(), 15, PlsqlBlockType.PROCEDURE_IMPL, "Get_Next_View_Index___", true, 27032, 27421, 1);
53.523 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(15).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "next_index", true, 27151, 27288, 0);
53.524 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks(), 16, PlsqlBlockType.PROCEDURE_IMPL, "Handle_Possible_State_Pkg___", true, 27426, 27891, 1);
53.525 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(16).getChildBlocks(), 0, PlsqlBlockType.IF, "IF method_name_ = 'Finite_State_Events__'", true, 27552, 27854, 3);
53.526 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(16).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Set global variable", true, 27608, 27630, 0);
53.527 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(16).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- Update main dictionary information", true, 27674, 27711, 0);
53.528 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(16).getChildBlocks().get(0).getChildBlocks(), 2, PlsqlBlockType.STATEMENT, "UPDATE dictionary_sys_package_tab", true, 27721, 27839, 0);
53.529 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks(), 17, PlsqlBlockType.PROCEDURE_IMPL, "Fill_List_Array___", true, 27896, 31673, 3);
53.530 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(17).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Check for incorrectness in number of values and remove redundant information if it occurs", true, 28373, 28465, 0);
53.531 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(17).getChildBlocks(), 1, PlsqlBlockType.IF, "IF db_values_.COUNT != client_values_.COUNT", true, 28472, 31268, 4);
53.532 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(17).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF db_count_ > client_count_", true, 28618, 29707, 2);
53.533 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(17).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Missing client values", true, 28664, 28688, 0);
53.534 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(17).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.FOR_LOOP, "i IN Nvl(db_values_.FIRST, 0)..Nvl(db_values_.LAST, -1)", true, 28851, 29707, 3);
53.535 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(17).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Try to find more values by calling standard interfaces for domains,", true, 28931, 29072, 0);
53.536 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(17).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.IF, "IF domain_", true, 29088, 29471, 1);
53.537 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(17).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.BEGIN_END, "", true, 29122, 29471, 1);
53.538 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(17).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- ifs_assert_safe utgulk 20060105", true, 29149, 29183, 0);
53.539 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(17).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSE", true, 29487, 29684, 1);
53.540 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(17).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Can't find the values for other types than domains...", true, 29510, 29566, 0);
53.541 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(17).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 29717, 30787, 2);
53.542 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(17).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Missing db values", true, 29734, 29754, 0);
53.543 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(17).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.FOR_LOOP, "i IN Nvl(client_values_.FIRST,0)..Nvl(client_values_.LAST,-1)", true, 29917, 30770, 3);
53.544 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(17).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Try to find more values by calling standard interfaces for domains,", true, 30003, 30144, 0);
53.545 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(17).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.IF, "IF domain_", true, 30160, 30539, 1);
53.546 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(17).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.BEGIN_END, "", true, 30194, 30539, 1);
53.547 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(17).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- ifs_assert_safe utgulk 20060105", true, 30221, 30255, 0);
53.548 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(17).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSE", true, 30555, 30748, 1);
53.549 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(17).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Can't find the values for other types than domains...", true, 30578, 30634, 0);
53.550 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(17).getChildBlocks().get(1).getChildBlocks(), 2, PlsqlBlockType.COMMENT, "-- Log information if values could not be determined...", true, 30797, 30852, 0);
53.551 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(17).getChildBlocks().get(1).getChildBlocks(), 3, PlsqlBlockType.IF, "IF error_", true, 30862, 31254, 0);
53.552 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(17).getChildBlocks(), 2, PlsqlBlockType.FOR_LOOP, "i IN Nvl(db_values_.FIRST,0)..Nvl(db_values_.LAST,-1)", true, 31275, 31646, 0);
53.553 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks(), 18, PlsqlBlockType.PROCEDURE_IMPL, "Rebuild_State_Machine___", true, 31678, 37787, 10);
53.554 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(18).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "state_mach", true, 31795, 32633, 0);
53.555 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(18).getChildBlocks(), 1, PlsqlBlockType.FUNCTION_IMPL, "Get_Lu_Name_", true, 33226, 33747, 1);
53.556 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(18).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "SELECT lu_name INTO tmp_", true, 33384, 33504, 0);
53.557 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(18).getChildBlocks(), 2, PlsqlBlockType.FUNCTION_IMPL, "trim_str", true, 33758, 33900, 0);
53.558 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(18).getChildBlocks(), 3, PlsqlBlockType.IF, "IF full_mode_", true, 33918, 33974, 0);
53.559 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(18).getChildBlocks(), 4, PlsqlBlockType.IF, "ELSE", true, 33981, 34100, 1);
53.560 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(18).getChildBlocks().get(4).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "SELECT NVL(MAX(updated),SYSDATE-1000) INTO last_update_ FROM dictionary_sys_state_mach_tab", true, 33995, 34085, 0);
53.561 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(18).getChildBlocks(), 5, PlsqlBlockType.WHILE_LOOP, "i < state_machine.LAST", true, 34236, 35499, 2);
53.562 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(18).getChildBlocks().get(5).getChildBlocks(), 0, PlsqlBlockType.IF, "IF state_machine(i-1).type ='START' AND state_machine(i).type = 'EVENT'", true, 34280, 35432, 1);
53.563 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(18).getChildBlocks().get(5).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.WHILE_LOOP, "in_state_transistion AND i+1 <= state_machine.LAST", true, 34470, 35432, 3);
53.564 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(18).getChildBlocks().get(5).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF state_machine(i).type='EVENT' AND\n state_machine(i+1).type='END' AND\n trim_str(state_machine(i).what) IS NOT NULL", true, 34548, 35184, 0);
53.565 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(18).getChildBlocks().get(5).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF state_machine(i).type!='START' AND i < state_machine.LAST", true, 35200, 35294, 0);
53.566 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(18).getChildBlocks().get(5).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSE", true, 35310, 35410, 0);
53.567 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(18).getChildBlocks().get(5).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 35442, 35483, 0);
53.568 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(18).getChildBlocks(), 6, PlsqlBlockType.COMMENT, "-- This line only used when debugging", true, 35500, 35747, 0);
53.569 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(18).getChildBlocks(), 7, PlsqlBlockType.COMMENT, "-- ifs_assert_safe pemase 20060215", true, 35773, 35807, 0);
53.570 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(18).getChildBlocks(), 8, PlsqlBlockType.STATEMENT, "INSERT INTO dictionary_sys_state_mach_tab VALUES model(k)", true, 36346, 36403, 0);
53.571 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(18).getChildBlocks(), 9, PlsqlBlockType.FOR_LOOP, "i IN 1..error_count_", true, 36679, 37613, 1);
53.572 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(18).getChildBlocks().get(9).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Write_Error_Text___ (error_text_, ' Position number '||to_char(position_));", true, 36776, 36873, 0);
53.573 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks(), 19, PlsqlBlockType.PROCEDURE_IMPL, "Rebuild_All_State_Event___", true, 37793, 44384, 9);
53.574 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(19).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_events", true, 37912, 38424, 0);
53.575 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(19).getChildBlocks(), 1, PlsqlBlockType.FUNCTION_IMPL, "Get_Lu_Name_", true, 39041, 39523, 1);
53.576 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(19).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "SELECT lu_name INTO tmp_", true, 39184, 39298, 0);
53.577 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(19).getChildBlocks(), 2, PlsqlBlockType.IF, "IF full_mode_", true, 39541, 39597, 0);
53.578 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(19).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSE", true, 39604, 39723, 1);
53.579 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(19).getChildBlocks().get(3).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "SELECT NVL(MAX(updated),SYSDATE-1000) INTO last_update_ FROM dictionary_sys_state_mach_tab", true, 39618, 39708, 0);
53.580 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(19).getChildBlocks(), 4, PlsqlBlockType.IF, "IF SQL%NOTFOUND", true, 39810, 39947, 0);
53.581 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(19).getChildBlocks(), 5, PlsqlBlockType.IF, "ELSE", true, 39954, 40399, 1);
53.582 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(19).getChildBlocks().get(5).getChildBlocks(), 0, PlsqlBlockType.BEGIN_END, "", true, 39968, 40385, 1);
53.583 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(19).getChildBlocks().get(5).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- ifs_assert_safe pemase 20060215", true, 39986, 40020, 0);
53.584 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(19).getChildBlocks(), 6, PlsqlBlockType.FOR_LOOP, "i IN Nvl(state_events_.FIRST,0)..Nvl(state_events_.LAST,-1)", true, 40756, 42282, 1);
53.585 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(19).getChildBlocks().get(6).getChildBlocks(), 0, PlsqlBlockType.LOOP, "", true, 40908, 42266, 2);
53.586 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(19).getChildBlocks().get(6).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF event_idx_!=1", true, 41108, 41441, 1);
53.587 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(19).getChildBlocks().get(6).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "j IN Nvl(event_array_.FIRST,0)..Nvl(event_array_.LAST,-1)", true, 41184, 41421, 1);
53.588 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(19).getChildBlocks().get(6).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF event_array_(j)=event_", true, 41269, 41396, 0);
53.589 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(19).getChildBlocks().get(6).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "IF NOT dup_event_val_", true, 41454, 42217, 1);
53.590 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(19).getChildBlocks().get(6).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- ELSE", true, 41934, 42197, 0);
53.591 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(19).getChildBlocks(), 7, PlsqlBlockType.STATEMENT, "INSERT INTO dictionary_sys_state_event_tab VALUES state_event_values_(j)", true, 42773, 42845, 0);
53.592 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(19).getChildBlocks(), 8, PlsqlBlockType.FOR_LOOP, "i IN 1..error_count_", true, 43104, 43892, 1);
53.593 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(19).getChildBlocks().get(8).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Write_Error_Text___ (error_text_, ' Position number '||to_char(position_));", true, 43198, 43292, 0);
53.594 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks(), 20, PlsqlBlockType.PROCEDURE_IMPL, "Rebuild_State_Transitions___", true, 44391, 50214, 9);
53.595 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(20).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_state_events_", true, 44784, 45087, 0);
53.596 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(20).getChildBlocks(), 1, PlsqlBlockType.FUNCTION_IMPL, "Get_Allowed_State_Trans", true, 45370, 46212, 1);
53.597 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(20).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- ifs_assert_safe utgulk 20060105", true, 45784, 45818, 0);
53.598 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(20).getChildBlocks(), 2, PlsqlBlockType.IF, "IF full_mode_", true, 46230, 46286, 0);
53.599 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(20).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSE", true, 46293, 46569, 1);
53.600 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(20).getChildBlocks().get(3).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "SELECT NVL(MAX(to_date(timestamp, 'RRRR-MM-DD:HH24:MI:SS')),SYSDATE-1000) INTO last_update_", true, 46307, 46554, 0);
53.601 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(20).getChildBlocks(), 4, PlsqlBlockType.IF, "IF SQL%NOTFOUND", true, 46668, 46817, 0);
53.602 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(20).getChildBlocks(), 5, PlsqlBlockType.IF, "ELSE", true, 46824, 47269, 1);
53.603 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(20).getChildBlocks().get(5).getChildBlocks(), 0, PlsqlBlockType.BEGIN_END, "", true, 46838, 47255, 1);
53.604 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(20).getChildBlocks().get(5).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- ifs_assert_safe pemase 20060215", true, 46856, 46890, 0);
53.605 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(20).getChildBlocks(), 6, PlsqlBlockType.FOR_LOOP, "i IN Nvl(state_list_.FIRST,0)..Nvl(state_list_.LAST,-1)", true, 47326, 48183, 1);
53.606 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(20).getChildBlocks().get(6).getChildBlocks(), 0, PlsqlBlockType.LOOP, "", true, 47522, 48167, 0);
53.607 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(20).getChildBlocks(), 7, PlsqlBlockType.STATEMENT, "INSERT INTO dictionary_sys_state_trans_tab VALUES state_trans_values_(j)", true, 48677, 48749, 0);
53.608 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(20).getChildBlocks(), 8, PlsqlBlockType.FOR_LOOP, "i IN 1..error_count_", true, 49013, 49941, 1);
53.609 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(20).getChildBlocks().get(8).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Write_Error_Text___ (error_text_, ' Position number '||to_char(position_));", true, 49107, 49201, 0);
53.610 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks(), 21, PlsqlBlockType.PROCEDURE_IMPL, "Tokenize_Lists___", true, 50219, 51194, 1);
53.611 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(21).getChildBlocks(), 0, PlsqlBlockType.WHILE_LOOP, "end_pos_ < len_ AND end_pos_ != 0", true, 50701, 51168, 0);
53.612 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks(), 22, PlsqlBlockType.PROCEDURE_IMPL, "Insert_Package_Information___", true, 51199, 54616, 9);
53.613 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(22).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "INSERT INTO dictionary_sys_tab", true, 51472, 51620, 0);
53.614 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(22).getChildBlocks(), 1, PlsqlBlockType.IF, "IF length(lu_name_) > 25", true, 51631, 51839, 0);
53.615 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(22).getChildBlocks(), 2, PlsqlBlockType.STATEMENT, "UPDATE dictionary_sys_tab", true, 51904, 52085, 0);
53.616 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(22).getChildBlocks(), 3, PlsqlBlockType.COMMENT, "-- Insert and if already existing then update.", true, 52482, 52592, 0);
53.617 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(22).getChildBlocks(), 4, PlsqlBlockType.STATEMENT, "INSERT INTO dictionary_sys_package_tab", true, 52672, 52880, 0);
53.618 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(22).getChildBlocks(), 5, PlsqlBlockType.COMMENT, "-- Fix problems with LU that has more than one _API package (e.g. for state handling).", true, 52891, 53002, 0);
53.619 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(22).getChildBlocks(), 6, PlsqlBlockType.STATEMENT, "UPDATE Dictionary_Sys_Package_Tab", true, 53012, 53697, 0);
53.620 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(22).getChildBlocks(), 7, PlsqlBlockType.COMMENT, "COMMENT...", true, 53709, 53711, 0);
53.621 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(22).getChildBlocks(), 8, PlsqlBlockType.STATEMENT, "UPDATE dictionary_sys_package_tab", true, 53776, 53939, 0);
53.622 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks(), 23, PlsqlBlockType.PROCEDURE_IMPL, "Insert_View_Information___", true, 54621, 57785, 12);
53.623 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(23).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Find the base view according to naming conventions...", true, 54930, 55061, 0);
53.624 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(23).getChildBlocks(), 1, PlsqlBlockType.IF, "IF view_name_ = Clientnametodbname_(lu_name_)", true, 55068, 55185, 0);
53.625 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(23).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSE", true, 55192, 55269, 0);
53.626 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(23).getChildBlocks(), 3, PlsqlBlockType.COMMENT, "-- Insert into dictionary_sys_tab. It is likely this entry already exist (from package information),", true, 55276, 55448, 0);
53.627 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(23).getChildBlocks(), 4, PlsqlBlockType.IF, "IF base_view_", true, 55455, 55845, 2);
53.628 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(23).getChildBlocks().get(4).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE dictionary_sys_tab", true, 55483, 55622, 0);
53.629 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(23).getChildBlocks().get(4).getChildBlocks(), 1, PlsqlBlockType.IF, "IF SQL%NOTFOUND", true, 55633, 55845, 1);
53.630 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(23).getChildBlocks().get(4).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "INSERT INTO dictionary_sys_tab", true, 55666, 55827, 0);
53.631 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(23).getChildBlocks(), 5, PlsqlBlockType.IF, "ELSE", true, 55852, 56179, 2);
53.632 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(23).getChildBlocks().get(5).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE dictionary_sys_tab", true, 55866, 55965, 0);
53.633 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(23).getChildBlocks().get(5).getChildBlocks(), 1, PlsqlBlockType.IF, "IF SQL%NOTFOUND", true, 55976, 56165, 1);
53.634 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(23).getChildBlocks().get(5).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "INSERT INTO dictionary_sys_tab", true, 56009, 56147, 0);
53.635 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(23).getChildBlocks(), 6, PlsqlBlockType.COMMENT, "-- Insert into dictionary_sys_view_tab", true, 56186, 56341, 0);
53.636 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(23).getChildBlocks(), 7, PlsqlBlockType.IF, "IF base_view_", true, 56419, 56468, 0);
53.637 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(23).getChildBlocks(), 8, PlsqlBlockType.IF, "ELSIF substr(view_name_, -4) = '_REP'", true, 56478, 56551, 0);
53.638 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(23).getChildBlocks(), 9, PlsqlBlockType.IF, "ELSE", true, 56561, 56613, 0);
53.639 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(23).getChildBlocks(), 10, PlsqlBlockType.STATEMENT, "INSERT INTO dictionary_sys_view_tab", true, 56623, 56838, 0);
53.640 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(23).getChildBlocks(), 11, PlsqlBlockType.STATEMENT, "UPDATE dictionary_sys_view_tab", true, 56904, 57146, 0);
53.641 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks(), 24, PlsqlBlockType.PROCEDURE_IMPL, "Refresh_View_Columns___", true, 57790, 64140, 7);
53.642 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(24).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_view_columns", true, 57896, 58224, 0);
53.643 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(24).getChildBlocks(), 1, PlsqlBlockType.CURSOR, "get_new_view_columns", true, 58232, 58678, 0);
53.644 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(24).getChildBlocks(), 2, PlsqlBlockType.COMMENT, "-- Fetch view column information and delete old information", true, 59249, 59326, 0);
53.645 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(24).getChildBlocks(), 3, PlsqlBlockType.IF, "IF all_views_", true, 59333, 59640, 1);
53.646 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(24).getChildBlocks().get(3).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Remove all old information", true, 59491, 59564, 0);
53.647 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(24).getChildBlocks(), 4, PlsqlBlockType.IF, "ELSE", true, 59647, 60151, 2);
53.648 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(24).getChildBlocks().get(4).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Remove old information for all of the methods that is being updated", true, 59803, 59873, 0);
53.649 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(24).getChildBlocks().get(4).getChildBlocks(), 1, PlsqlBlockType.STATEMENT, "DELETE FROM dictionary_sys_view_column_tab c", true, 59883, 60136, 0);
53.650 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(24).getChildBlocks(), 5, PlsqlBlockType.COMMENT, "-- Process all of the view column information", true, 60159, 60204, 0);
53.651 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(24).getChildBlocks(), 6, PlsqlBlockType.IF, "IF view_columns_.COUNT > 0", true, 60211, 64108, 3);
53.652 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(24).getChildBlocks().get(6).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "i IN Nvl(view_columns_.FIRST,0)..Nvl(view_columns_.LAST,-1)", true, 60252, 62822, 3);
53.653 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(24).getChildBlocks().get(6).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Find the lu name for the view if view has changed", true, 60333, 60385, 0);
53.654 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(24).getChildBlocks().get(6).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (prev_view_ <> view_columns_(i).view_name)", true, 60398, 60606, 0);
53.655 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(24).getChildBlocks().get(6).getChildBlocks().get(0).getChildBlocks(), 2, PlsqlBlockType.IF, "IF lu_name_ IS NOT NULL", true, 60619, 62803, 1);
53.656 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(24).getChildBlocks().get(6).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.BEGIN_END, "", true, 60663, 62754, 0);
53.657 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(24).getChildBlocks().get(6).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- Insert all the values into dictionary_sys_view_column_tab", true, 62833, 62893, 0);
53.658 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(24).getChildBlocks().get(6).getChildBlocks(), 2, PlsqlBlockType.BEGIN_END, "", true, 62903, 64094, 2);
53.659 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(24).getChildBlocks().get(6).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "INSERT INTO dictionary_sys_view_column_tab VALUES complete_columns_(j)", true, 63027, 63097, 0);
53.660 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(24).getChildBlocks().get(6).getChildBlocks().get(2).getChildBlocks(), 1, PlsqlBlockType.FOR_LOOP, "i IN 1..error_count_", true, 63371, 64080, 0);
53.661 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks(), 25, PlsqlBlockType.COMMENT, "-- Handles both domain and state information, behaves different depending on info_type", true, 64145, 64231, 0);
53.662 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks(), 26, PlsqlBlockType.PROCEDURE_IMPL, "Refresh_Domain_State_Info___", true, 64235, 70207, 11);
53.663 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(26).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Domain information", true, 64388, 64409, 0);
53.664 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(26).getChildBlocks(), 1, PlsqlBlockType.CURSOR, "get_domain_info", true, 64416, 65703, 0);
53.665 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(26).getChildBlocks(), 2, PlsqlBlockType.COMMENT, "-- State information", true, 65717, 65737, 0);
53.666 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(26).getChildBlocks(), 3, PlsqlBlockType.CURSOR, "get_state_info", true, 65744, 66259, 0);
53.667 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(26).getChildBlocks(), 4, PlsqlBlockType.COMMENT, "-- AND line BETWEEN 2 AND 11;", true, 66260, 66300, 0);
53.668 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(26).getChildBlocks(), 5, PlsqlBlockType.COMMENT, "-- Delete old values (they can only exist if this is not a full refresh)", true, 66671, 66743, 0);
53.669 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(26).getChildBlocks(), 6, PlsqlBlockType.IF, "IF NOT refresh_all_", true, 66750, 67129, 2);
53.670 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(26).getChildBlocks().get(6).getChildBlocks(), 0, PlsqlBlockType.IF, "IF refresh_domain_", true, 66784, 66946, 1);
53.671 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(26).getChildBlocks().get(6).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "DELETE FROM dictionary_sys_domain_tab", true, 66820, 66945, 0);
53.672 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(26).getChildBlocks().get(6).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 66956, 67115, 1);
53.673 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(26).getChildBlocks().get(6).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "DELETE FROM dictionary_sys_state_tab", true, 66973, 67097, 0);
53.674 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(26).getChildBlocks(), 7, PlsqlBlockType.COMMENT, "-- Clear variables", true, 67137, 67155, 0);
53.675 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(26).getChildBlocks(), 8, PlsqlBlockType.IF, "IF refresh_domain_", true, 67248, 67904, 2);
53.676 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(26).getChildBlocks().get(8).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "j_ IN Nvl(list_.FIRST,0)..Nvl(list_.LAST,-1)", true, 67434, 67572, 0);
53.677 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(26).getChildBlocks().get(8).getChildBlocks(), 1, PlsqlBlockType.FOR_LOOP, "j_ IN Nvl(list_.FIRST,0)..Nvl(list_.LAST,-1)", true, 67762, 67904, 0);
53.678 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(26).getChildBlocks(), 9, PlsqlBlockType.IF, "ELSE", true, 67911, 68423, 2);
53.679 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(26).getChildBlocks().get(9).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "list IN get_state_info(package_name_)", true, 67925, 68323, 3);
53.680 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(26).getChildBlocks().get(9).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Break down the list into single values in an array", true, 67984, 68037, 0);
53.681 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(26).getChildBlocks().get(9).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "IF list.list_type = 'db_state_list_'", true, 68050, 68155, 0);
53.682 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(26).getChildBlocks().get(9).getChildBlocks().get(0).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSIF list.list_type = 'client_state_list_'", true, 68168, 68304, 0);
53.683 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(26).getChildBlocks().get(9).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- Get state events", true, 68333, 68408, 0);
53.684 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(26).getChildBlocks(), 10, PlsqlBlockType.IF, "IF db_values_.count > 0", true, 68431, 70170, 3);
53.685 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(26).getChildBlocks().get(10).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Fill the result array with the rest of the necessary information", true, 68469, 68536, 0);
53.686 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(26).getChildBlocks().get(10).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- Insert all of the values into dictionary_sys_domain_tab", true, 68659, 68717, 0);
53.687 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(26).getChildBlocks().get(10).getChildBlocks(), 2, PlsqlBlockType.BEGIN_END, "", true, 68727, 70156, 3);
53.688 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(26).getChildBlocks().get(10).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.IF, "IF refresh_domain_", true, 68745, 68956, 1);
53.689 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(26).getChildBlocks().get(10).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "INSERT INTO dictionary_sys_domain_tab VALUES complete_values_(j)", true, 68891, 68955, 0);
53.690 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(26).getChildBlocks().get(10).getChildBlocks().get(2).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 68969, 69180, 1);
53.691 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(26).getChildBlocks().get(10).getChildBlocks().get(2).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "INSERT INTO dictionary_sys_state_tab VALUES complete_values_(j)", true, 69096, 69159, 0);
53.692 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(26).getChildBlocks().get(10).getChildBlocks().get(2).getChildBlocks(), 2, PlsqlBlockType.FOR_LOOP, "i IN 1..error_count_", true, 69490, 70142, 1);
53.693 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(26).getChildBlocks().get(10).getChildBlocks().get(2).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Write_Error_Text___ (error_text_, ' Position number '||to_char(position_));", true, 69591, 69688, 0);
53.694 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks(), 27, PlsqlBlockType.PROCEDURE_IMPL, "Refresh_Method_Arguments___", true, 70212, 75509, 7);
53.695 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(27).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_met_arguments", true, 70326, 70705, 0);
53.696 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(27).getChildBlocks(), 1, PlsqlBlockType.CURSOR, "get_new_met_arguments", true, 70713, 71255, 0);
53.697 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(27).getChildBlocks(), 2, PlsqlBlockType.COMMENT, "-- Fetch method argument information and delete old information", true, 71784, 71865, 0);
53.698 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(27).getChildBlocks(), 3, PlsqlBlockType.IF, "IF all_methods_", true, 71872, 72181, 1);
53.699 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(27).getChildBlocks().get(3).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Remove all old information", true, 72035, 72108, 0);
53.700 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(27).getChildBlocks(), 4, PlsqlBlockType.IF, "ELSE", true, 72188, 72701, 2);
53.701 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(27).getChildBlocks().get(4).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Remove old information for all of the methods that is being updated", true, 72347, 72417, 0);
53.702 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(27).getChildBlocks().get(4).getChildBlocks(), 1, PlsqlBlockType.STATEMENT, "DELETE FROM dictionary_sys_argument_tab a", true, 72427, 72686, 0);
53.703 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(27).getChildBlocks(), 5, PlsqlBlockType.COMMENT, "-- Process method argument information", true, 72708, 72764, 0);
53.704 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(27).getChildBlocks(), 6, PlsqlBlockType.IF, "IF met_arguments.COUNT > 0", true, 72771, 75473, 3);
53.705 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(27).getChildBlocks().get(6).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "i IN Nvl(met_arguments.FIRST,0)..Nvl(met_arguments.LAST,-1)", true, 72812, 74065, 3);
53.706 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(27).getChildBlocks().get(6).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Find the lu name for the package if package has changed", true, 72893, 72951, 0);
53.707 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(27).getChildBlocks().get(6).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (prev_pkg_ <> met_arguments(i).package_name)", true, 72964, 73182, 0);
53.708 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(27).getChildBlocks().get(6).getChildBlocks().get(0).getChildBlocks(), 2, PlsqlBlockType.IF, "IF lu_name_ IS NOT NULL", true, 73195, 74046, 1);
53.709 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(27).getChildBlocks().get(6).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Insert the values into the complete array", true, 73239, 73283, 0);
53.710 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(27).getChildBlocks().get(6).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- Insert all the values into dictionary_sys_argument_tab", true, 74076, 74133, 0);
53.711 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(27).getChildBlocks().get(6).getChildBlocks(), 2, PlsqlBlockType.BEGIN_END, "", true, 74143, 75458, 2);
53.712 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(27).getChildBlocks().get(6).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "INSERT INTO dictionary_sys_argument_tab VALUES all_arguments_(j)", true, 74261, 74325, 0);
53.713 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(27).getChildBlocks().get(6).getChildBlocks().get(2).getChildBlocks(), 1, PlsqlBlockType.FOR_LOOP, "i IN 1..error_count_", true, 74603, 75444, 0);
53.714 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks(), 28, PlsqlBlockType.PROCEDURE_IMPL, "Refresh_Methods___", true, 75514, 84605, 17);
53.715 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(28).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_methods", true, 75619, 75913, 0);
53.716 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(28).getChildBlocks(), 1, PlsqlBlockType.CURSOR, "get_pragma_methods", true, 75921, 76333, 0);
53.717 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(28).getChildBlocks(), 2, PlsqlBlockType.CURSOR, "get_new_methods", true, 76341, 76773, 0);
53.718 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(28).getChildBlocks(), 3, PlsqlBlockType.CURSOR, "get_new_pragma_methods", true, 76781, 77323, 0);
53.719 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(28).getChildBlocks(), 4, PlsqlBlockType.COMMENT, "-- Fetch method information and delete old information", true, 77830, 77902, 0);
53.720 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(28).getChildBlocks(), 5, PlsqlBlockType.IF, "IF all_methods_", true, 77909, 78205, 1);
53.721 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(28).getChildBlocks().get(5).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Remove all old information for methods", true, 78049, 78134, 0);
53.722 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(28).getChildBlocks(), 6, PlsqlBlockType.IF, "ELSE", true, 78212, 78700, 2);
53.723 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(28).getChildBlocks().get(6).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Remove old information for all of the methods that is being updated", true, 78348, 78418, 0);
53.724 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(28).getChildBlocks().get(6).getChildBlocks(), 1, PlsqlBlockType.STATEMENT, "DELETE FROM dictionary_sys_method_tab m", true, 78428, 78685, 0);
53.725 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(28).getChildBlocks(), 7, PlsqlBlockType.COMMENT, "-- Process method information", true, 78707, 78754, 0);
53.726 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(28).getChildBlocks(), 8, PlsqlBlockType.IF, "IF methods_.COUNT > 0", true, 78761, 80891, 3);
53.727 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(28).getChildBlocks().get(8).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "i IN Nvl(methods_.FIRST,0)..Nvl(methods_.LAST,-1)", true, 78797, 79614, 2);
53.728 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(28).getChildBlocks().get(8).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (prev_pkg_ <> methods_(i).pkg)", true, 78868, 79044, 0);
53.729 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(28).getChildBlocks().get(8).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "IF lu_name_ IS NOT NULL", true, 79057, 79595, 1);
53.730 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(28).getChildBlocks().get(8).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Insert the values into the complete array", true, 79187, 79231, 0);
53.731 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(28).getChildBlocks().get(8).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- Insert all the values into dictionary_sys_method_tab", true, 79625, 79680, 0);
53.732 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(28).getChildBlocks().get(8).getChildBlocks(), 2, PlsqlBlockType.BEGIN_END, "", true, 79690, 80877, 2);
53.733 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(28).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "INSERT INTO dictionary_sys_method_tab VALUES complete_methods_(j)", true, 79814, 79879, 0);
53.734 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(28).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks(), 1, PlsqlBlockType.FOR_LOOP, "i IN 1..error_count_", true, 80148, 80863, 0);
53.735 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(28).getChildBlocks(), 9, PlsqlBlockType.COMMENT, "-- Clear arrays", true, 80899, 80914, 0);
53.736 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(28).getChildBlocks(), 10, PlsqlBlockType.COMMENT, "-- Fetch pragma method information", true, 80977, 81029, 0);
53.737 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(28).getChildBlocks(), 11, PlsqlBlockType.IF, "IF all_methods_", true, 81036, 81187, 0);
53.738 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(28).getChildBlocks(), 12, PlsqlBlockType.IF, "ELSE", true, 81194, 81355, 0);
53.739 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(28).getChildBlocks(), 13, PlsqlBlockType.COMMENT, "-- Process pragma method information", true, 81362, 81416, 0);
53.740 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(28).getChildBlocks(), 14, PlsqlBlockType.IF, "IF methods_.COUNT > 0", true, 81423, 84036, 2);
53.741 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(28).getChildBlocks().get(14).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Initiate sub type", true, 81459, 81479, 0);
53.742 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(28).getChildBlocks().get(14).getChildBlocks(), 1, PlsqlBlockType.FOR_LOOP, "i IN Nvl(methods_.FIRST,0)..Nvl(methods_.LAST,-1)", true, 81523, 84022, 3);
53.743 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(28).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Find the name of the LU for every new package", true, 81594, 81642, 0);
53.744 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(28).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (prev_pkg_ <> methods_(i).pkg)", true, 81655, 81831, 0);
53.745 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(28).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks(), 2, PlsqlBlockType.IF, "IF lu_name_ IS NOT NULL", true, 81844, 84003, 5);
53.746 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(28).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Update the record in dictionary_sys_method_tab", true, 81974, 82023, 0);
53.747 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(28).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(2).getChildBlocks(), 1, PlsqlBlockType.BEGIN_END, "", true, 82039, 83287, 2);
53.748 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(28).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(2).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE dictionary_sys_method_tab", true, 82063, 82338, 0);
53.749 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(28).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(2).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.IF, "IF SQL%NOTFOUND", true, 82358, 82653, 1);
53.750 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(28).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(2).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "INSERT INTO dictionary_sys_method_tab", true, 82400, 82626, 0);
53.751 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(28).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(2).getChildBlocks(), 2, PlsqlBlockType.COMMENT, "-- Handle if current package contains a state machine (identified by a specific PRAGMA method)", true, 83303, 83465, 0);
53.752 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(28).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(2).getChildBlocks(), 3, PlsqlBlockType.COMMENT, "-- Fetch and insert state information if current package contains a state machine", true, 83545, 83626, 0);
53.753 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(28).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(2).getChildBlocks(), 4, PlsqlBlockType.IF, "IF pkg_lu_sub_type_ = 'S'", true, 83642, 83983, 2);
53.754 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(28).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(2).getChildBlocks().get(4).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (refresh_mode_ != 'LIGHT')", true, 83691, 83838, 0);
53.755 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(28).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(2).getChildBlocks().get(4).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- Reset the sub_type to avoid multiple unnecessary searches", true, 83857, 83917, 0);
53.756 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(28).getChildBlocks(), 15, PlsqlBlockType.COMMENT, "-- Update special handled methods to PRAGMA (Read", true, 84043, 84124, 0);
53.757 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(28).getChildBlocks(), 16, PlsqlBlockType.STATEMENT, "UPDATE dictionary_sys_method_tab t", true, 84131, 84577, 0);
53.758 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks(), 29, PlsqlBlockType.COMMENT, "-- Validate refresh mode before proceeding", true, 84965, 85019, 0);
53.759 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks(), 30, PlsqlBlockType.IF, "IF refresh_mode_ IS NULL OR refresh_mode_ NOT IN ('FULL', 'PARTIAL', 'VIEWS', 'PACKAGES', 'LIGHT')", true, 85023, 85288, 0);
53.760 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks(), 31, PlsqlBlockType.COMMENT, "-- If a refresh is not necessary and a full refresh is not ordered, abort immediately...", true, 85292, 85601, 0);
53.761 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks(), 32, PlsqlBlockType.IF, "IF NOT refresh_all_", true, 85605, 86131, 4);
53.762 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(32).getChildBlocks(), 0, PlsqlBlockType.IF, "IF rebuild_needed_ = 0", true, 85686, 85844, 0);
53.763 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(32).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- Find last update time", true, 85852, 85876, 0);
53.764 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(32).getChildBlocks(), 2, PlsqlBlockType.COMMENT, "-- Set full refresh mode if no dictionary data exist", true, 85988, 86040, 0);
53.765 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(32).getChildBlocks(), 3, PlsqlBlockType.IF, "IF last_update_ IS NULL", true, 86047, 86120, 0);
53.766 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks(), 33, PlsqlBlockType.IF, "IF refresh_all_", true, 86136, 86483, 1);
53.767 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(33).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Fetch the objects to update", true, 86242, 86272, 0);
53.768 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks(), 34, PlsqlBlockType.IF, "ELSE", true, 86487, 87516, 7);
53.769 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(34).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Spool information about what \"mode\" is used", true, 86498, 86544, 0);
53.770 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(34).getChildBlocks(), 1, PlsqlBlockType.IF, "IF refresh_views_ AND refresh_pkgs_", true, 86551, 86675, 0);
53.771 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(34).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSIF refresh_pkgs_", true, 86682, 86808, 0);
53.772 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(34).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSIF refresh_views_", true, 86815, 86953, 0);
53.773 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(34).getChildBlocks(), 4, PlsqlBlockType.COMMENT, "-- Fetch the objects to update", true, 87097, 87127, 0);
53.774 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(34).getChildBlocks(), 5, PlsqlBlockType.IF, "IF refresh_pkgs_", true, 87134, 87315, 0);
53.775 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(34).getChildBlocks(), 6, PlsqlBlockType.IF, "IF refresh_views_", true, 87323, 87505, 0);
53.776 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks(), 35, PlsqlBlockType.COMMENT, "-- Refresh package and method information", true, 87520, 87573, 0);
53.777 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks(), 36, PlsqlBlockType.IF, "IF packages_.COUNT > 0", true, 87911, 91240, 7);
53.778 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(36).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Save start date for package refresh", true, 87945, 87983, 0);
53.779 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(36).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- Remove old information if full refresh", true, 88020, 88061, 0);
53.780 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(36).getChildBlocks(), 2, PlsqlBlockType.IF, "IF refresh_all_", true, 88068, 88675, 5);
53.781 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(36).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- ifs_assert_safe pemase 20060215", true, 88098, 88132, 0);
53.782 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(36).getChildBlocks().get(2).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- ifs_assert_safe pemase 20060215", true, 88206, 88240, 0);
53.783 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(36).getChildBlocks().get(2).getChildBlocks(), 2, PlsqlBlockType.COMMENT, "-- ifs_assert_safe pemase 20060215", true, 88322, 88356, 0);
53.784 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(36).getChildBlocks().get(2).getChildBlocks(), 3, PlsqlBlockType.COMMENT, "-- ifs_assert_safe pemase 20060215", true, 88437, 88471, 0);
53.785 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(36).getChildBlocks().get(2).getChildBlocks(), 4, PlsqlBlockType.COMMENT, "-- ifs_assert_safe pemase 20060215", true, 88551, 88585, 0);
53.786 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(36).getChildBlocks(), 3, PlsqlBlockType.FOR_LOOP, "i IN Nvl(packages_.FIRST,0)..Nvl(packages_.LAST,-1)", true, 88683, 90462, 3);
53.787 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(36).getChildBlocks().get(3).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "pkg_info IN get_package_info(packages_(i))", true, 88892, 89394, 4);
53.788 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(36).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Investigate module, lu name and sub type of the lu", true, 88956, 89009, 0);
53.789 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(36).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (pkg_info.gtype = 'M')", true, 89022, 89113, 0);
53.790 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(36).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSIF pkg_info.gtype IN ('L', 'S')", true, 89126, 89260, 0);
53.791 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(36).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSIF pkg_info.gtype = 'D'", true, 89273, 89375, 0);
53.792 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(36).getChildBlocks().get(3).getChildBlocks(), 1, PlsqlBlockType.IF, "IF pkg_lu_name_ IS NOT NULL AND pkg_module_ IS NOT NULL", true, 89404, 90225, 3);
53.793 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(36).getChildBlocks().get(3).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Insert the information into the dictionary", true, 89477, 89522, 0);
53.794 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(36).getChildBlocks().get(3).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- Refresh domain or state information depending on sub type of the LU (stored in global variable)", true, 89820, 89918, 0);
53.795 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(36).getChildBlocks().get(3).getChildBlocks().get(1).getChildBlocks(), 2, PlsqlBlockType.IF, "IF pkg_lu_sub_type_ = 'D'", true, 89931, 90225, 2);
53.796 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(36).getChildBlocks().get(3).getChildBlocks().get(1).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Refresh domain information if this is identified as an IID package", true, 89977, 90046, 0);
53.797 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(36).getChildBlocks().get(3).getChildBlocks().get(1).getChildBlocks().get(2).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (refresh_mode_ != 'LIGHT')", true, 90062, 90205, 0);
53.798 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(36).getChildBlocks().get(3).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSE", true, 90235, 90446, 0);
53.799 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(36).getChildBlocks(), 4, PlsqlBlockType.COMMENT, "-- Refresh methods once all packages are updated", true, 90469, 90535, 0);
53.800 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(36).getChildBlocks(), 5, PlsqlBlockType.COMMENT, "-- Refresh arguments for methods once all methods are updated", true, 90595, 90674, 0);
53.801 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(36).getChildBlocks(), 6, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 90738, 91229, 0);
53.802 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks(), 37, PlsqlBlockType.COMMENT, "-- Refresh view information", true, 91244, 91283, 0);
53.803 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks(), 38, PlsqlBlockType.IF, "IF views_.COUNT > 0", true, 91615, 93635, 6);
53.804 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(38).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Save start date for view refresh", true, 91646, 91681, 0);
53.805 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(38).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- Remove old information if full refresh", true, 91718, 91759, 0);
53.806 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(38).getChildBlocks(), 2, PlsqlBlockType.IF, "IF refresh_all_", true, 91766, 91899, 1);
53.807 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(38).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- ifs_assert_safe pemase 20060215", true, 91796, 91830, 0);
53.808 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(38).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSE", true, 91906, 92078, 1);
53.809 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(38).getChildBlocks().get(3).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "DELETE FROM dictionary_sys_view_tab", true, 91985, 92063, 0);
53.810 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(38).getChildBlocks(), 4, PlsqlBlockType.FOR_LOOP, "i IN Nvl(views_.FIRST,0)..Nvl(views_.LAST,-1)", true, 92086, 93491, 4);
53.811 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(38).getChildBlocks().get(4).getChildBlocks(), 0, PlsqlBlockType.IF, "IF view_module_ = 'IGNORE'", true, 92448, 92535, 0);
53.812 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(38).getChildBlocks().get(4).getChildBlocks(), 1, PlsqlBlockType.IF, "IF view_lu_name_ IS NULL", true, 92545, 92823, 1);
53.813 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(38).getChildBlocks().get(4).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF view_lu_name_ IS NULL", true, 92668, 92806, 0);
53.814 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(38).getChildBlocks().get(4).getChildBlocks(), 2, PlsqlBlockType.IF, "IF view_module_ IS NOT NULL AND view_lu_name_ IS NOT NULL", true, 92915, 93265, 1);
53.815 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(38).getChildBlocks().get(4).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.IF, "IF view_module_ != 'IGNORE'", true, 92990, 93265, 0);
53.816 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(38).getChildBlocks().get(4).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSE", true, 93275, 93475, 0);
53.817 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(38).getChildBlocks(), 5, PlsqlBlockType.COMMENT, "-- Refresh view columns once all view are updated", true, 93498, 93565, 0);
53.818 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks(), 39, PlsqlBlockType.IF, "IF NOT refresh_all_", true, 93640, 95104, 6);
53.819 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(39).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Delete information for objects no longer in the database", true, 93671, 93748, 0);
53.820 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(39).getChildBlocks(), 1, PlsqlBlockType.STATEMENT, "DELETE FROM dictionary_sys_package_tab p", true, 93755, 94000, 0);
53.821 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(39).getChildBlocks(), 2, PlsqlBlockType.STATEMENT, "DELETE FROM dictionary_sys_method_tab m", true, 94009, 94211, 0);
53.822 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(39).getChildBlocks(), 3, PlsqlBlockType.STATEMENT, "DELETE FROM dictionary_sys_view_tab v", true, 94220, 94456, 0);
53.823 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(39).getChildBlocks(), 4, PlsqlBlockType.STATEMENT, "DELETE FROM dictionary_sys_view_column_tab c", true, 94465, 94716, 0);
53.824 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks().get(39).getChildBlocks(), 5, PlsqlBlockType.STATEMENT, "DELETE FROM dictionary_sys_tab l", true, 94725, 95092, 0);
53.825 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks(), 40, PlsqlBlockType.COMMENT, "-- Attempt 1:", true, 95109, 95280, 0);
53.826 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks(), 41, PlsqlBlockType.STATEMENT, "UPDATE dictionary_sys_view_tab", true, 95284, 95803, 0);
53.827 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks(), 42, PlsqlBlockType.COMMENT, "-- Attempt 2:", true, 95809, 95983, 0);
53.828 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks(), 43, PlsqlBlockType.STATEMENT, "UPDATE dictionary_sys_view_tab", true, 95987, 96219, 0);
53.829 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks(), 44, PlsqlBlockType.COMMENT, "-- Set prompts for all Logical Units that didn't have a clearly defined view with a prompt.", true, 96224, 96379, 0);
53.830 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks(), 45, PlsqlBlockType.STATEMENT, "UPDATE dictionary_sys_tab", true, 96383, 96527, 0);
53.831 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(4).getChildBlocks(), 46, PlsqlBlockType.COMMENT, "-- Call activity ManageApplicationServerCache.ClearDataDictionaryCache", true, 96590, 96672, 0);
53.832 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 5, PlsqlBlockType.COMMENT, "-- SERVICE SPECIFIC PRIVATE METHODS ", true, 97427, 97966, 0);
53.833 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 6, PlsqlBlockType.PROCEDURE_IMPL, "Enumerate_Logical_Units__", true, 97967, 98926, 5);
53.834 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(6).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "units", true, 98197, 98315, 0);
53.835 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(6).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- Init used elements", true, 98325, 98358, 0);
53.836 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(6).getChildBlocks(), 2, PlsqlBlockType.COMMENT, "-- Fetch all packages and views associated with a logical unit", true, 98446, 98570, 0);
53.837 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(6).getChildBlocks(), 3, PlsqlBlockType.FOR_LOOP, "unit IN units", true, 98574, 98751, 1);
53.838 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(6).getChildBlocks().get(3).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (length(temp_(n_)) > limit_)", true, 98665, 98738, 0);
53.839 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(6).getChildBlocks(), 4, PlsqlBlockType.COMMENT, "-- Return complete lists", true, 98755, 98791, 0);
53.840 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 7, PlsqlBlockType.PROCEDURE_IMPL, "Get_Logical_Unit_Properties__", true, 98928, 99371, 0);
53.841 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 8, PlsqlBlockType.PROCEDURE_IMPL, "Get_Logical_Unit_Properties2__", true, 99373, 99799, 0);
53.842 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 9, PlsqlBlockType.PROCEDURE_IMPL, "Get_Logical_Unit_Views__", true, 99801, 99996, 0);
53.843 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 10, PlsqlBlockType.FUNCTION_IMPL, "Get_Logical_Unit_Views__", true, 99998, 100655, 2);
53.844 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(10).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_lu_views", true, 100158, 100296, 0);
53.845 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(10).getChildBlocks(), 1, PlsqlBlockType.IF, "IF view_array_.count > 0", true, 100405, 100603, 1);
53.846 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(10).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "i IN Nvl(view_array_.first, 0)..Nvl(view_array_.last, -1)", true, 100441, 100592, 0);
53.847 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 11, PlsqlBlockType.PROCEDURE_IMPL, "Get_Logical_Unit_Packages__", true, 100657, 100864, 0);
53.848 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 12, PlsqlBlockType.FUNCTION_IMPL, "Get_Logical_Unit_Packages__", true, 100867, 101576, 2);
53.849 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(12).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_lu_packages", true, 101031, 101181, 0);
53.850 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(12).getChildBlocks(), 1, PlsqlBlockType.IF, "IF package_array_.count > 0", true, 101302, 101518, 1);
53.851 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(12).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "i IN Nvl(package_array_.first, 0)..Nvl(package_array_.last, -1)", true, 101341, 101507, 0);
53.852 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 13, PlsqlBlockType.PROCEDURE_IMPL, "Get_Logical_Unit_Methods__", true, 101578, 102791, 5);
53.853 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(13).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_all_lu_methods", true, 101803, 101967, 0);
53.854 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(13).getChildBlocks(), 1, PlsqlBlockType.CURSOR, "get_lu_methods", true, 101972, 102160, 0);
53.855 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(13).getChildBlocks(), 2, PlsqlBlockType.IF, "IF all_methods_ = 'TRUE'", true, 102171, 102343, 0);
53.856 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(13).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSE", true, 102347, 102493, 0);
53.857 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(13).getChildBlocks(), 4, PlsqlBlockType.IF, "IF method_array_.count > 0", true, 102498, 102759, 1);
53.858 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(13).getChildBlocks().get(4).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "lu_methods IN Nvl(method_array_.first, 0)..Nvl(method_array_.last, -1)", true, 102536, 102748, 0);
53.859 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 14, PlsqlBlockType.PROCEDURE_IMPL, "Get_LU_Method_Types__", true, 102793, 103665, 2);
53.860 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(14).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_all_lu_methods", true, 102997, 103174, 0);
53.861 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(14).getChildBlocks(), 1, PlsqlBlockType.IF, "IF method_array_.count > 0", true, 103333, 103638, 1);
53.862 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "lu_methods IN Nvl(method_array_.first, 0)..Nvl(method_array_.last, -1)", true, 103371, 103627, 0);
53.863 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 15, PlsqlBlockType.FUNCTION_IMPL, "Get_State_Encode_Method__", true, 103667, 103868, 0);
53.864 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 16, PlsqlBlockType.FUNCTION_IMPL, "Get_State_Enumerate_Method__", true, 103870, 104074, 0);
53.865 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 17, PlsqlBlockType.COMMENT, "-- SERVICE SPECIFIC PROTECTED METHODS ", true, 104076, 104528, 0);
53.866 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 18, PlsqlBlockType.FUNCTION_IMPL, "Dbnametoclientname_", true, 104530, 105067, 4);
53.867 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(18).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Find number of trailing underscores", true, 104632, 104670, 0);
53.868 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(18).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- Return client name with leading underscores", true, 104733, 104779, 0);
53.869 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(18).getChildBlocks(), 2, PlsqlBlockType.IF, "IF (cnt_ = 1)", true, 104783, 104855, 0);
53.870 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(18).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSIF (cnt_ = 2)", true, 104859, 104946, 0);
53.871 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 19, PlsqlBlockType.FUNCTION_IMPL, "Clientnametodbname_", true, 105070, 105977, 6);
53.872 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(19).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Find number of leading underscores", true, 105242, 105279, 0);
53.873 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(19).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- Add intermediate underscores where needed", true, 105350, 105394, 0);
53.874 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(19).getChildBlocks(), 2, PlsqlBlockType.FOR_LOOP, "index_ IN cnt_+1..length(client_name_)", true, 105398, 105665, 2);
53.875 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(19).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (char_ between 'A' and 'Z') AND (temp_ IS NOT NULL)", true, 105498, 105595, 0);
53.876 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(19).getChildBlocks().get(2).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 105602, 105652, 0);
53.877 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(19).getChildBlocks(), 3, PlsqlBlockType.COMMENT, "-- Return database name with trailing underscores", true, 105669, 105718, 0);
53.878 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(19).getChildBlocks(), 4, PlsqlBlockType.IF, "IF (cnt_ = 1)", true, 105722, 105785, 0);
53.879 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(19).getChildBlocks(), 5, PlsqlBlockType.IF, "ELSIF (cnt_ = 2)", true, 105789, 105866, 0);
53.880 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 20, PlsqlBlockType.COMMENT, "-- Comment decoding routines for LU", true, 105979, 106181, 0);
53.881 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 21, PlsqlBlockType.FUNCTION_IMPL, "Comment_Value_", true, 106183, 106898, 5);
53.882 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(21).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Find keyword name position within comment", true, 106339, 106383, 0);
53.883 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(21).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- New fix to support ambigous names in report definitions in IFS/Info Services", true, 106414, 106493, 0);
53.884 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(21).getChildBlocks(), 2, PlsqlBlockType.COMMENT, "-- If found, return value from comment", true, 106555, 106593, 0);
53.885 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(21).getChildBlocks(), 3, PlsqlBlockType.IF, "IF (from_ > 0)", true, 106597, 106839, 2);
53.886 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(21).getChildBlocks().get(3).getChildBlocks(), 0, PlsqlBlockType.IF, "IF ( to_ = 0 )", true, 106665, 106735, 0);
53.887 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(21).getChildBlocks().get(3).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- If not found, return null value", true, 106805, 106839, 0);
53.888 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(21).getChildBlocks(), 4, PlsqlBlockType.IF, "ELSE", true, 106843, 106878, 0);
53.889 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 22, PlsqlBlockType.COMMENT, "-- Prompt fetching routines, mainly used for localization", true, 106900, 107113, 0);
53.890 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 23, PlsqlBlockType.FUNCTION_IMPL, "Get_View_Prompt_", true, 107115, 107467, 1);
53.891 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(23).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_prompt", true, 107226, 107345, 0);
53.892 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 24, PlsqlBlockType.FUNCTION_IMPL, "Get_Lu_Prompt_", true, 107469, 107936, 3);
53.893 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(24).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_prompt", true, 107589, 107697, 0);
53.894 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(24).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- Check that inparameters make sense before proceeding.", true, 107707, 107763, 0);
53.895 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(24).getChildBlocks(), 2, PlsqlBlockType.IF, "IF lu_name_ IS NULL", true, 107767, 107821, 0);
53.896 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 25, PlsqlBlockType.FUNCTION_IMPL, "Get_Item_Prompt_", true, 107938, 108579, 2);
53.897 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(25).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_prompt", true, 108187, 108373, 0);
53.898 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(25).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (view_ IS NULL)", true, 108383, 108463, 0);
53.899 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 26, PlsqlBlockType.COMMENT, "-- Property fetching routines for run", true, 108581, 108795, 0);
53.900 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 27, PlsqlBlockType.PROCEDURE_IMPL, "Get_Logical_Unit_Keys_", true, 108797, 110903, 7);
53.901 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(27).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- To check that the suggested base view actually contain an objid...", true, 109080, 109149, 0);
53.902 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(27).getChildBlocks(), 1, PlsqlBlockType.CURSOR, "find_objid", true, 109153, 109383, 0);
53.903 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(27).getChildBlocks(), 2, PlsqlBlockType.CURSOR, "get_keys", true, 109388, 109624, 0);
53.904 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(27).getChildBlocks(), 3, PlsqlBlockType.COMMENT, "-- Fetch the view name from LU", true, 109755, 109796, 0);
53.905 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(27).getChildBlocks(), 4, PlsqlBlockType.COMMENT, "-- Verify that this view contains an objid", true, 109837, 109879, 0);
53.906 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(27).getChildBlocks(), 5, PlsqlBlockType.IF, "IF find_objid%FOUND", true, 109953, 110832, 3);
53.907 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(27).getChildBlocks().get(5).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- View found, fetch the keys!", true, 110008, 110038, 0);
53.908 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(27).getChildBlocks().get(5).getChildBlocks(), 1, PlsqlBlockType.FOR_LOOP, "keyrec IN get_keys(view_)", true, 110045, 110167, 0);
53.909 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(27).getChildBlocks().get(5).getChildBlocks(), 2, PlsqlBlockType.IF, "IF (objid_ IS NOT NULL)", true, 110206, 110832, 2);
53.910 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(27).getChildBlocks().get(5).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Fetch instance key information by using dynamic SQL", true, 110244, 110298, 0);
53.911 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(27).getChildBlocks().get(5).getChildBlocks().get(2).getChildBlocks(), 1, PlsqlBlockType.BEGIN_END, "", true, 110308, 110818, 1);
53.912 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(27).getChildBlocks().get(5).getChildBlocks().get(2).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- ifs_assert_safe utgulk 20060105", true, 110622, 110656, 0);
53.913 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(27).getChildBlocks(), 6, PlsqlBlockType.IF, "ELSE", true, 110836, 110875, 0);
53.914 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 28, PlsqlBlockType.COMMENT, "-- Could not completely rely on cached information, since table information is not extracted to the cache", true, 110905, 111010, 0);
53.915 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 29, PlsqlBlockType.PROCEDURE_IMPL, "Get_Logical_Unit_Tables_", true, 111011, 112151, 4);
53.916 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(29).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "view_tables", true, 111169, 111809, 0);
53.917 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(29).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- Check that inparameters make sense before proceeding.", true, 111819, 111875, 0);
53.918 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(29).getChildBlocks(), 2, PlsqlBlockType.IF, "IF lu_name_ IS NULL", true, 111879, 111928, 0);
53.919 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(29).getChildBlocks(), 3, PlsqlBlockType.FOR_LOOP, "t IN view_tables", true, 112023, 112121, 0);
53.920 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 30, PlsqlBlockType.COMMENT, "-- Introduced new method and implemented to use dictionary cache.", true, 112153, 112218, 0);
53.921 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 31, PlsqlBlockType.PROCEDURE_IMPL, "Enum_Modules_", true, 112219, 112520, 2);
53.922 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(31).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "modules", true, 112282, 112383, 0);
53.923 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(31).getChildBlocks(), 1, PlsqlBlockType.FOR_LOOP, "module IN modules", true, 112393, 112501, 0);
53.924 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 32, PlsqlBlockType.PROCEDURE_IMPL, "Enum_Module_Names_", true, 112522, 113189, 2);
53.925 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(32).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "modules", true, 112687, 112775, 0);
53.926 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(32).getChildBlocks(), 1, PlsqlBlockType.IF, "IF module_array_.count > 0", true, 112884, 113165, 1);
53.927 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(32).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "i IN Nvl(module_array_.first, 0)..Nvl(module_array_.last, -1)", true, 112922, 113154, 0);
53.928 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 33, PlsqlBlockType.COMMENT, "-- Modified implementation to use dictionary cache. Designtime version moved to Design_SYS", true, 113191, 113281, 0);
53.929 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 34, PlsqlBlockType.PROCEDURE_IMPL, "Enum_Module_All_Logical_Units_", true, 113282, 113875, 2);
53.930 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(34).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "units", true, 113413, 113567, 0);
53.931 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(34).getChildBlocks(), 1, PlsqlBlockType.IF, "IF lu_array_.count > 0", true, 113653, 113839, 1);
53.932 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(34).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "i IN Nvl(lu_array_.first, 0)..Nvl(lu_array_.last, -1)", true, 113687, 113828, 0);
53.933 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 35, PlsqlBlockType.COMMENT, "-- Modified implementation to use dictionary cache. Designtime version moved to Design_SYS", true, 113877, 113967, 0);
53.934 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 36, PlsqlBlockType.PROCEDURE_IMPL, "Enum_Module_Logical_Units_", true, 113968, 114545, 2);
53.935 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(36).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "units", true, 114095, 114241, 0);
53.936 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(36).getChildBlocks(), 1, PlsqlBlockType.IF, "IF lu_array_.count > 0", true, 114327, 114513, 1);
53.937 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(36).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "i IN Nvl(lu_array_.first, 0)..Nvl(lu_array_.last, -1)", true, 114361, 114502, 0);
53.938 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 37, PlsqlBlockType.COMMENT, "-- Modified implementation using dictionary cache.", true, 114547, 114597, 0);
53.939 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 38, PlsqlBlockType.PROCEDURE_IMPL, "Enum_Module_System_Services_", true, 114598, 114987, 2);
53.940 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(38).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "units", true, 114700, 114846, 0);
53.941 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(38).getChildBlocks(), 1, PlsqlBlockType.FOR_LOOP, "unit IN units", true, 114856, 114953, 0);
53.942 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 39, PlsqlBlockType.COMMENT, "-- Runtime performance refreshment routines", true, 114989, 115202, 0);
53.943 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 40, PlsqlBlockType.PROCEDURE_IMPL, "Activate_Language_Refresh_", true, 115203, 115521, 0);
53.944 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 41, PlsqlBlockType.PROCEDURE_IMPL, "Rebuild_Dictionary_Storage_", true, 115523, 115781, 0);
53.945 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 42, PlsqlBlockType.PROCEDURE_IMPL, "Rebuild_Dictionary_Storage_", true, 115783, 116056, 0);
53.946 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 43, PlsqlBlockType.PROCEDURE_IMPL, "Check_Dictionary_Storage_", true, 116058, 117150, 4);
53.947 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(43).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_last_update", true, 116181, 116266, 0);
53.948 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(43).getChildBlocks(), 1, PlsqlBlockType.CURSOR, "get_objects", true, 116271, 116631, 0);
53.949 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(43).getChildBlocks(), 2, PlsqlBlockType.IF, "IF (last_update_ IS NULL)", true, 116710, 116797, 0);
53.950 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(43).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSE", true, 116801, 117093, 2);
53.951 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(43).getChildBlocks().get(3).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (get_objects%NOTFOUND)", true, 116887, 116975, 0);
53.952 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(43).getChildBlocks().get(3).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 116982, 117057, 0);
53.953 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 44, PlsqlBlockType.COMMENT, "-- SERVICE SPECIFIC PUBLIC METHODS ", true, 117152, 117603, 0);
53.954 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 45, PlsqlBlockType.FUNCTION_IMPL, "Get_Base_View", true, 117605, 117953, 1);
53.955 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(45).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_view", true, 117708, 117844, 0);
53.956 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 46, PlsqlBlockType.FUNCTION_IMPL, "Get_Component", true, 117955, 118883, 5);
53.957 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(46).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_pkg_component", true, 118088, 118287, 0);
53.958 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(46).getChildBlocks(), 1, PlsqlBlockType.CURSOR, "get_view_component", true, 118292, 118486, 0);
53.959 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(46).getChildBlocks(), 2, PlsqlBlockType.IF, "IF upper(object_type_) = 'PACKAGE'", true, 118496, 118643, 0);
53.960 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(46).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSIF upper(object_type_) = 'VIEW'", true, 118647, 118797, 0);
53.961 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(46).getChildBlocks(), 4, PlsqlBlockType.IF, "ELSE", true, 118801, 118842, 0);
53.962 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 47, PlsqlBlockType.FUNCTION_IMPL, "Get_Logical_Unit", true, 118885, 119630, 5);
53.963 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(47).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_pkg_lu", true, 119020, 119150, 0);
53.964 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(47).getChildBlocks(), 1, PlsqlBlockType.CURSOR, "get_view_lu", true, 119155, 119280, 0);
53.965 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(47).getChildBlocks(), 2, PlsqlBlockType.IF, "IF upper(object_type_) = 'PACKAGE'", true, 119290, 119414, 0);
53.966 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(47).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSIF upper(object_type_) = 'VIEW'", true, 119418, 119545, 0);
53.967 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(47).getChildBlocks(), 4, PlsqlBlockType.IF, "ELSE", true, 119549, 119588, 0);
53.968 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 48, PlsqlBlockType.FUNCTION_IMPL, "Get_Logical_Unit_Module", true, 119632, 119973, 1);
53.969 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(48).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_module", true, 119739, 119843, 0);
53.970 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 49, PlsqlBlockType.FUNCTION_IMPL, "Package_Is_Installed", true, 119975, 120584, 4);
53.971 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(49).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_pkg", true, 120077, 120199, 0);
53.972 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(49).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- Reroute to Database_SYS during installation", true, 120209, 120255, 0);
53.973 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(49).getChildBlocks(), 2, PlsqlBlockType.IF, "IF installation_", true, 120259, 120337, 0);
53.974 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(49).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSE", true, 120341, 120558, 2);
53.975 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(49).getChildBlocks().get(3).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (get_pkg%FOUND)", true, 120406, 120475, 0);
53.976 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(49).getChildBlocks().get(3).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 120482, 120547, 0);
53.977 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 50, PlsqlBlockType.FUNCTION_IMPL, "Method_Is_Installed", true, 120586, 121303, 4);
53.978 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(50).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_method", true, 120717, 120891, 0);
53.979 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(50).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- Reroute to Database_SYS during installation", true, 120901, 120947, 0);
53.980 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(50).getChildBlocks(), 2, PlsqlBlockType.IF, "IF installation_", true, 120951, 121042, 0);
53.981 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(50).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSE", true, 121046, 121278, 2);
53.982 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(50).getChildBlocks().get(3).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (get_method%FOUND)", true, 121117, 121192, 0);
53.983 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(50).getChildBlocks().get(3).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 121199, 121267, 0);
53.984 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 51, PlsqlBlockType.FUNCTION_IMPL, "View_Is_Installed", true, 121305, 121896, 4);
53.985 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(51).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_view", true, 121401, 121515, 0);
53.986 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(51).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- Reroute to Database_SYS during installation", true, 121525, 121571, 0);
53.987 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(51).getChildBlocks(), 2, PlsqlBlockType.IF, "IF installation_", true, 121575, 121647, 0);
53.988 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(51).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSE", true, 121651, 121873, 2);
53.989 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(51).getChildBlocks().get(3).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (get_view%FOUND)", true, 121718, 121789, 0);
53.990 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(51).getChildBlocks().get(3).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 121796, 121862, 0);
53.991 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 52, PlsqlBlockType.FUNCTION_IMPL, "Logical_Unit_Is_Installed", true, 121898, 122514, 4);
53.992 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(52).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_lu", true, 122009, 122105, 0);
53.993 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(52).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- Reroute to Database_SYS during installation", true, 122115, 122161, 0);
53.994 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(52).getChildBlocks(), 2, PlsqlBlockType.IF, "IF installation_", true, 122165, 122267, 0);
53.995 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(52).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSE", true, 122271, 122483, 2);
53.996 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(52).getChildBlocks().get(3).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (get_lu%FOUND)", true, 122334, 122401, 0);
53.997 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(52).getChildBlocks().get(3).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 122408, 122472, 0);
53.998 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 53, PlsqlBlockType.FUNCTION_IMPL, "Component_Is_Installed", true, 122516, 123054, 3);
53.999 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(53).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_component", true, 122657, 122815, 0);
53.1000 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(53).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (get_component%FOUND)", true, 122885, 122960, 0);
53.1001 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(53).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSE", true, 122964, 123026, 0);
53.1002 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 54, PlsqlBlockType.FUNCTION_IMPL, "Package_Is_Installed_Num", true, 123056, 123277, 2);
53.1003 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(54).getChildBlocks(), 0, PlsqlBlockType.IF, "IF Package_Is_Installed(package_name_)", true, 123149, 123210, 0);
53.1004 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(54).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 123214, 123247, 0);
53.1005 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 55, PlsqlBlockType.FUNCTION_IMPL, "Method_Is_Installed_Num", true, 123279, 123541, 2);
53.1006 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(55).getChildBlocks(), 0, PlsqlBlockType.IF, "IF Method_Is_Installed(package_name_, method_name_)", true, 123401, 123475, 0);
53.1007 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(55).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 123479, 123512, 0);
53.1008 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 56, PlsqlBlockType.FUNCTION_IMPL, "View_Is_Installed_Num", true, 123543, 123749, 2);
53.1009 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(56).getChildBlocks(), 0, PlsqlBlockType.IF, "IF View_Is_Installed(view_name_)", true, 123630, 123685, 0);
53.1010 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(56).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 123689, 123722, 0);
53.1011 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 57, PlsqlBlockType.FUNCTION_IMPL, "Logical_Unit_Is_Installed_Num", true, 123751, 123977, 2);
53.1012 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(57).getChildBlocks(), 0, PlsqlBlockType.IF, "IF Logical_Unit_Is_Installed(lu_name_)", true, 123844, 123905, 0);
53.1013 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(57).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 123909, 123942, 0);
53.1014 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 58, PlsqlBlockType.FUNCTION_IMPL, "Component_Is_Installed_Num", true, 123979, 124250, 2);
53.1015 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(58).getChildBlocks(), 0, PlsqlBlockType.IF, "IF Component_Is_Installed(component_, version_)", true, 124111, 124181, 0);
53.1016 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(58).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 124185, 124218, 0);
53.1017 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 59, PlsqlBlockType.FUNCTION_IMPL, "Get_No_Overloads", true, 124252, 125156, 3);
53.1018 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(59).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_no_overloads_", true, 124372, 124546, 0);
53.1019 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(59).getChildBlocks(), 1, PlsqlBlockType.IF, "IF package_name_ IS NULL OR method_name_ IS NULL", true, 124600, 124818, 1);
53.1020 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(59).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Error_SYS.Appl_General(service_, 'NON_EXISTING_METHOD: [:P1,:P2] method is non existing method', package_name_, method_name_);", true, 124654, 124788, 0);
53.1021 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(59).getChildBlocks(), 2, PlsqlBlockType.IF, "IF get_no_overloads_%NOTFOUND", true, 124889, 125088, 1);
53.1022 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(59).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Error_SYS.Appl_General(service_, 'NON_EXISTING_METHOD: [:P1,:P2] method is non existing method', package_name_, method_name_);", true, 124924, 125058, 0);
53.1023 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 60, PlsqlBlockType.FUNCTION_IMPL, "Get_No_Arguments", true, 125158, 126091, 3);
53.1024 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(60).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_no_args_", true, 125279, 125501, 0);
53.1025 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(60).getChildBlocks(), 1, PlsqlBlockType.IF, "IF package_name_ IS NULL OR method_name_ IS NULL", true, 125555, 125773, 1);
53.1026 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(60).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Error_SYS.Appl_General(service_, 'NON_EXISTING_METHOD: [:P1,:P2] method is non existing method', package_name_, method_name_);", true, 125609, 125743, 0);
53.1027 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(60).getChildBlocks(), 2, PlsqlBlockType.IF, "IF get_no_args_%NOTFOUND", true, 125834, 126028, 1);
53.1028 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(60).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Error_SYS.Appl_General(service_, 'NON_EXISTING_METHOD: [:P1,:P2] method is non existing method', package_name_, method_name_);", true, 125864, 125998, 0);
53.1029 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 61, PlsqlBlockType.FUNCTION_IMPL, "Get_Min_No_Arguments", true, 126093, 127120, 3);
53.1030 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(61).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_min_no_args_", true, 126221, 126510, 0);
53.1031 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(61).getChildBlocks(), 1, PlsqlBlockType.IF, "IF package_name_ IS NULL OR method_name_ IS NULL", true, 126564, 126782, 1);
53.1032 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(61).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Error_SYS.Appl_General(service_, 'NON_EXISTING_METHOD: [:P1,:P2] method is non existing method', package_name_, method_name_);", true, 126618, 126752, 0);
53.1033 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(61).getChildBlocks(), 2, PlsqlBlockType.IF, "IF get_min_no_args_%NOTFOUND", true, 126851, 127049, 1);
53.1034 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(61).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Error_SYS.Appl_General(service_, 'NON_EXISTING_METHOD: [:P1,:P2] method is non existing method', package_name_, method_name_);", true, 126885, 127019, 0);
53.1035 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 62, PlsqlBlockType.FUNCTION_IMPL, "Get_Max_No_Arguments", true, 127122, 128149, 3);
53.1036 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(62).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_max_no_args_", true, 127250, 127539, 0);
53.1037 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(62).getChildBlocks(), 1, PlsqlBlockType.IF, "IF package_name_ IS NULL OR method_name_ IS NULL", true, 127593, 127811, 1);
53.1038 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(62).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Error_SYS.Appl_General(service_, 'NON_EXISTING_METHOD: [:P1,:P2] method is non existing method', package_name_, method_name_);", true, 127653, 127781, 0);
53.1039 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(62).getChildBlocks(), 2, PlsqlBlockType.IF, "IF get_max_no_args_%NOTFOUND", true, 127880, 128078, 1);
53.1040 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(62).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Error_SYS.Appl_General(service_, 'NON_EXISTING_METHOD: [:P1,:P2] method is non existing method', package_name_, method_name_);", true, 127920, 128048, 0);
53.1041 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 63, PlsqlBlockType.FUNCTION_IMPL, "Get_Argument_Type", true, 128151, 129262, 4);
53.1042 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(63).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_arg_type_", true, 128324, 128536, 0);
53.1043 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(63).getChildBlocks(), 1, PlsqlBlockType.IF, "IF package_name_ IS NULL OR method_name_ IS NULL", true, 128632, 128850, 1);
53.1044 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(63).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Error_SYS.Appl_General(service_, 'NON_EXISTING_METHOD: [:P1,:P2] method is non existing method', package_name_, method_name_);", true, 128692, 128820, 0);
53.1045 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(63).getChildBlocks(), 2, PlsqlBlockType.IF, "IF Get_No_Overloads(package_name_, method_name_) > 1", true, 128854, 128941, 0);
53.1046 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(63).getChildBlocks(), 3, PlsqlBlockType.IF, "IF get_arg_type_%NOTFOUND", true, 129003, 129198, 1);
53.1047 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(63).getChildBlocks().get(3).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Error_SYS.Appl_General(service_, 'NON_EXISTING_METHOD: [:P1,:P2] method is non existing method', package_name_, method_name_);", true, 129040, 129168, 0);
53.1048 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 64, PlsqlBlockType.PROCEDURE_IMPL, "Set_Installation_Mode", true, 129264, 129493, 0);
53.1049 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 65, PlsqlBlockType.FUNCTION_IMPL, "Get_Installation_Mode", true, 129495, 129673, 0);
53.1050 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 66, PlsqlBlockType.COMMENT, "-- FOUNDATION1 METHODS ", true, 129675, 130139, 0);
53.1051 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 67, PlsqlBlockType.PROCEDURE_IMPL, "Init", true, 130141, 130183, 0);
53.1052 - assertBlock(lstBlockFac, 3, PlsqlBlockType.COMMENT, "COMMENT...", false, 130405, 130482, 0);
53.1053 + assertEquals(lstBlockFac.size(), 4);
53.1054 + processBlocks(plsqlFileName, lstBlockFac);
53.1055 +
53.1056 } finally {
53.1057 if (fileObject != null) {
53.1058 fileObject.delete();
53.1059 @@ -1073,100 +264,18 @@
53.1060 @Test
53.1061 public void testAdvanced6() throws IOException, BadLocationException {
53.1062 System.out.println("Advanced test case 6");
53.1063 - FileObject fileObject = fs.getRoot().createData("FavoriteSchedules.apy");
53.1064 + final String plsqlFileName = "FavoriteSchedules.apy";
53.1065 + FileObject fileObject = fs.getRoot().createData(plsqlFileName);
53.1066 assertNotNull(fileObject);
53.1067 try {
53.1068 - PlsqlBlockFactory blockFac = loadAsTmpFile(fileObject, "FavoriteSchedules.apy");
53.1069 + PlsqlBlockFactory blockFac = loadAsTmpFile(fileObject, plsqlFileName);
53.1070 assertNotNull(blockFac);
53.1071
53.1072 List<PlsqlBlock> lstBlockFac = blockFac.getBlockHierarchy();
53.1073 // printHierarchy(lstBlockFac, "");
53.1074 // generateAssert(lstBlockFac, "lstBlockFac", "false");
53.1075 - assertTrue(lstBlockFac.size() == 8);
53.1076 - assertBlock(lstBlockFac, 0, PlsqlBlockType.COMMENT, "-- Logical unit: FavoriteSchedules", false, 0, 386, 0);
53.1077 - assertBlock(lstBlockFac, 1, PlsqlBlockType.COMMENT, "-- VIEWS FOR SELECTS ", false, 667, 900, 0);
53.1078 - assertBlock(lstBlockFac, 2, PlsqlBlockType.VIEW, "FAVORITE_SCHEDULES", false, 930, 1362, 0);
53.1079 - assertBlock(lstBlockFac, 3, PlsqlBlockType.TABLE_COMMENT, "FAVORITE_SCHEDULES", false, 1365, 1444, 0);
53.1080 - assertBlock(lstBlockFac, 4, PlsqlBlockType.COLUMN_COMMENT, "FAVORITE_SCHEDULES", false, 1447, 2009, 0);
53.1081 - assertBlock(lstBlockFac, 5, PlsqlBlockType.COMMENT, "-- PACKAGES FOR METHODS ", false, 2012, 2245, 0);
53.1082 - assertBlock(lstBlockFac, 6, PlsqlBlockType.PACKAGE_BODY, "FAVORITE_SCHEDULES_API", false, 2284, 23580, 29);
53.1083 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- LU SPECIFIC IMPLEMENTATION METHOD DECLARATIONS ", true, 2324, 3435, 0);
53.1084 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 1, PlsqlBlockType.FUNCTION_IMPL, "Lock_By_Id___", true, 3437, 4589, 5);
53.1085 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "lock_control", true, 3731, 3881, 0);
53.1086 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.CURSOR, "exist_control", true, 3885, 3973, 0);
53.1087 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(1).getChildBlocks(), 2, PlsqlBlockType.IF, "IF (lock_control%FOUND)", true, 4038, 4122, 0);
53.1088 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(1).getChildBlocks(), 3, PlsqlBlockType.IF, "IF (exist_control%FOUND)", true, 4208, 4289, 0);
53.1089 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(1).getChildBlocks(), 4, PlsqlBlockType.IF, "ELSE", true, 4293, 4360, 0);
53.1090 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 2, PlsqlBlockType.FUNCTION_IMPL, "Lock_By_Keys___", true, 4591, 5421, 3);
53.1091 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "lock_control", true, 4848, 5115, 0);
53.1092 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(2).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (lock_control%FOUND)", true, 5180, 5253, 0);
53.1093 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(2).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSE", true, 5257, 5323, 0);
53.1094 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 3, PlsqlBlockType.FUNCTION_IMPL, "Get_Object_By_Id___", true, 5423, 5830, 2);
53.1095 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(3).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "getrec", true, 5533, 5614, 0);
53.1096 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(3).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (getrec%NOTFOUND)", true, 5670, 5768, 0);
53.1097 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 4, PlsqlBlockType.FUNCTION_IMPL, "Get_Object_By_Keys___", true, 5833, 6426, 1);
53.1098 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(4).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "getrec", true, 6066, 6310, 0);
53.1099 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 5, PlsqlBlockType.FUNCTION_IMPL, "Check_Exist___", true, 6428, 7108, 2);
53.1100 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(5).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "exist_control", true, 6638, 6890, 0);
53.1101 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(5).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (exist_control%FOUND)", true, 6959, 7046, 0);
53.1102 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 6, PlsqlBlockType.PROCEDURE_IMPL, "Get_Id_Version_By_Keys___", true, 7110, 7753, 1);
53.1103 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(6).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_version", true, 7362, 7626, 0);
53.1104 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 7, PlsqlBlockType.COMMENT, "-- IMPLEMENTATION BASE METHODS FOR INSERT ", true, 7755, 8500, 0);
53.1105 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 8, PlsqlBlockType.PROCEDURE_IMPL, "Prepare_Insert___", true, 8502, 8623, 0);
53.1106 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 9, PlsqlBlockType.PROCEDURE_IMPL, "Unpack_Check_Insert___", true, 8626, 10038, 1);
53.1107 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(9).getChildBlocks(), 0, PlsqlBlockType.WHILE_LOOP, "(Client_SYS.Get_Next_From_Attr(attr_, ptr_, name_, value_))", true, 8821, 9515, 6);
53.1108 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(9).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (name_ = 'IDENTITY')", true, 8898, 9018, 0);
53.1109 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(9).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (name_ = 'SCHEDULE_TYPE')", true, 9025, 9103, 0);
53.1110 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(9).getChildBlocks().get(0).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSIF (name_ = 'SCHEDULE_CODE')", true, 9110, 9188, 0);
53.1111 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(9).getChildBlocks().get(0).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSIF (name_ = 'COMPANY_ID')", true, 9195, 9267, 0);
53.1112 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(9).getChildBlocks().get(0).getChildBlocks(), 4, PlsqlBlockType.IF, "ELSIF (name_ = 'WAGE_CLASS')", true, 9274, 9417, 0);
53.1113 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(9).getChildBlocks().get(0).getChildBlocks(), 5, PlsqlBlockType.IF, "ELSE", true, 9424, 9502, 0);
53.1114 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 10, PlsqlBlockType.PROCEDURE_IMPL, "Insert___", true, 10041, 10778, 1);
53.1115 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(10).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "INSERT", true, 10285, 10682, 0);
53.1116 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 11, PlsqlBlockType.COMMENT, "-- IMPLEMENTATION BASE METHODS FOR UPDATE ", true, 10780, 11364, 0);
53.1117 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 12, PlsqlBlockType.PROCEDURE_IMPL, "Unpack_Check_Update___", true, 11366, 12392, 1);
53.1118 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(12).getChildBlocks(), 0, PlsqlBlockType.WHILE_LOOP, "(Client_SYS.Get_Next_From_Attr(attr_, ptr_, name_, value_))", true, 11589, 12242, 6);
53.1119 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(12).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (name_ = 'IDENTITY')", true, 11666, 11748, 0);
53.1120 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(12).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (name_ = 'SCHEDULE_TYPE')", true, 11755, 11850, 0);
53.1121 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(12).getChildBlocks().get(0).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSIF (name_ = 'SCHEDULE_CODE')", true, 11857, 11952, 0);
53.1122 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(12).getChildBlocks().get(0).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSIF (name_ = 'COMPANY_ID')", true, 11959, 12048, 0);
53.1123 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(12).getChildBlocks().get(0).getChildBlocks(), 4, PlsqlBlockType.IF, "ELSIF (name_ = 'WAGE_CLASS')", true, 12055, 12144, 0);
53.1124 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(12).getChildBlocks().get(0).getChildBlocks(), 5, PlsqlBlockType.IF, "ELSE", true, 12151, 12229, 0);
53.1125 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 13, PlsqlBlockType.PROCEDURE_IMPL, "Update___", true, 12395, 13729, 2);
53.1126 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(13).getChildBlocks(), 0, PlsqlBlockType.IF, "IF by_keys_", true, 12739, 13285, 1);
53.1127 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(13).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE favorite_schedules_tab", true, 12762, 13284, 0);
53.1128 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(13).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 13289, 13634, 1);
53.1129 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(13).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE favorite_schedules_tab", true, 13300, 13622, 0);
53.1130 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 14, PlsqlBlockType.COMMENT, "-- IMPLEMENTATION BASE METHODS FOR DELETE ", true, 13731, 14328, 0);
53.1131 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 15, PlsqlBlockType.PROCEDURE_IMPL, "Check_Delete___", true, 14330, 14658, 0);
53.1132 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 16, PlsqlBlockType.PROCEDURE_IMPL, "Delete___", true, 14661, 15069, 1);
53.1133 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(16).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "DELETE", true, 14984, 15053, 0);
53.1134 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 17, PlsqlBlockType.COMMENT, "-- PRIVATE BASE METHODS ", true, 15071, 17372, 0);
53.1135 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 18, PlsqlBlockType.PROCEDURE_IMPL, "Lock__", true, 17374, 17669, 0);
53.1136 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 19, PlsqlBlockType.PROCEDURE_IMPL, "New__", true, 17672, 18276, 3);
53.1137 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(19).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (action_ = 'PREPARE')", true, 17945, 18006, 0);
53.1138 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(19).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (action_ = 'CHECK')", true, 18010, 18086, 0);
53.1139 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(19).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSIF (action_ = 'DO')", true, 18090, 18228, 0);
53.1140 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 20, PlsqlBlockType.PROCEDURE_IMPL, "Modify__", true, 18279, 19001, 2);
53.1141 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(20).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (action_ = 'CHECK')", true, 18585, 18712, 0);
53.1142 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(20).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (action_ = 'DO')", true, 18716, 18950, 0);
53.1143 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 21, PlsqlBlockType.PROCEDURE_IMPL, "Remove__", true, 19004, 19556, 2);
53.1144 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(21).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (action_ = 'CHECK')", true, 19239, 19344, 0);
53.1145 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(21).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (action_ = 'DO')", true, 19348, 19505, 0);
53.1146 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 22, PlsqlBlockType.COMMENT, "-- PUBLIC BASE METHODS ", true, 19558, 20011, 0);
53.1147 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 23, PlsqlBlockType.PROCEDURE_IMPL, "Exist", true, 20013, 20412, 1);
53.1148 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(23).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (NOT Check_Exist___(identity_, schedule_type_, schedule_code_, company_id_, wage_class_))", true, 20249, 20401, 0);
53.1149 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 24, PlsqlBlockType.COMMENT, "-- LU SPECIFIC IMPLEMENTATION METHODS ", true, 20414, 21355, 0);
53.1150 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 25, PlsqlBlockType.PROCEDURE_IMPL, "Add_Remove", true, 21357, 22709, 2);
53.1151 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(25).getChildBlocks(), 0, PlsqlBlockType.IF, "IF favorite_ = 1", true, 21801, 22380, 1);
53.1152 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(25).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (NOT Check_Exist___(identity_, schedule_type_, schedule_code_, company_id_, wage_class_))", true, 21829, 22380, 0);
53.1153 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(25).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 22384, 22692, 1);
53.1154 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(25).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (Check_Exist___(identity_, schedule_type_, schedule_code_, company_id_, wage_class_))", true, 22395, 22681, 0);
53.1155 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 26, PlsqlBlockType.FUNCTION_IMPL, "Get_Favorite", true, 22712, 23058, 1);
53.1156 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(26).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (Check_Exist___(identity_, schedule_type_, schedule_code_, company_id_, wage_class_))", true, 22907, 23027, 0);
53.1157 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 27, PlsqlBlockType.COMMENT, "-- FOUNDATION1 METHODS ", true, 23060, 23524, 0);
53.1158 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 28, PlsqlBlockType.PROCEDURE_IMPL, "Init", true, 23526, 23568, 0);
53.1159 - assertBlock(lstBlockFac, 7, PlsqlBlockType.COMMENT, "COMMENT...", false, 23702, 23779, 0);
53.1160 + assertEquals(lstBlockFac.size(), 8);
53.1161 + processBlocks(plsqlFileName, lstBlockFac);
53.1162 } finally {
53.1163 if (fileObject != null) {
53.1164 fileObject.delete();
53.1165 @@ -1177,38 +286,18 @@
53.1166 @Test
53.1167 public void testAdvanced7() throws IOException, BadLocationException {
53.1168 System.out.println("Advanced test case 7");
53.1169 - FileObject fileObject = fs.getRoot().createData("FndEvent.api");
53.1170 + final String plsqlFileName = "FndEvent.api";
53.1171 + FileObject fileObject = fs.getRoot().createData(plsqlFileName);
53.1172 assertNotNull(fileObject);
53.1173 try {
53.1174 - PlsqlBlockFactory blockFac = loadAsTmpFile(fileObject, "FndEvent.api");
53.1175 + PlsqlBlockFactory blockFac = loadAsTmpFile(fileObject, plsqlFileName);
53.1176 assertNotNull(blockFac);
53.1177
53.1178 List<PlsqlBlock> lstBlockFac = blockFac.getBlockHierarchy();
53.1179 // printHierarchy(lstBlockFac, "");
53.1180 // generateAssert(lstBlockFac, "lstBlockFac", "false");
53.1181 - assertTrue(lstBlockFac.size() == 3);
53.1182 - assertBlock(lstBlockFac, 0, PlsqlBlockType.COMMENT, "-- Logical unit: FndEvent", false, 0, 628, 0);
53.1183 - assertBlock(lstBlockFac, 1, PlsqlBlockType.PACKAGE, "FND_EVENT_API", false, 772, 4523, 19);
53.1184 - assertBlock(lstBlockFac.get(1).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- PRIVATE BASE METHODS ", true, 1037, 1270, 0);
53.1185 - assertBlock(lstBlockFac.get(1).getChildBlocks(), 1, PlsqlBlockType.PROCEDURE_DEF, "Lock__", true, 1272, 1379, 0);
53.1186 - assertBlock(lstBlockFac.get(1).getChildBlocks(), 2, PlsqlBlockType.PROCEDURE_DEF, "New__", true, 1381, 1560, 0);
53.1187 - assertBlock(lstBlockFac.get(1).getChildBlocks(), 3, PlsqlBlockType.PROCEDURE_DEF, "Modify__", true, 1562, 1744, 0);
53.1188 - assertBlock(lstBlockFac.get(1).getChildBlocks(), 4, PlsqlBlockType.PROCEDURE_DEF, "Remove__", true, 1746, 1884, 0);
53.1189 - assertBlock(lstBlockFac.get(1).getChildBlocks(), 5, PlsqlBlockType.COMMENT, "-- PUBLIC BASE METHODS ", true, 1886, 2119, 0);
53.1190 - assertBlock(lstBlockFac.get(1).getChildBlocks(), 6, PlsqlBlockType.PROCEDURE_DEF, "Exist", true, 2121, 2202, 0);
53.1191 - assertBlock(lstBlockFac.get(1).getChildBlocks(), 7, PlsqlBlockType.COMMENT, "-- LU SPECIFIC PRIVATE METHODS ", true, 2204, 2437, 0);
53.1192 - assertBlock(lstBlockFac.get(1).getChildBlocks(), 8, PlsqlBlockType.PROCEDURE_DEF, "Export__", true, 2439, 2557, 0);
53.1193 - assertBlock(lstBlockFac.get(1).getChildBlocks(), 9, PlsqlBlockType.COMMENT, "-- LU SPECIFIC PROTECTED METHODS ", true, 2559, 3028, 0);
53.1194 - assertBlock(lstBlockFac.get(1).getChildBlocks(), 10, PlsqlBlockType.FUNCTION_DEF, "Get_Event_Description", true, 3030, 3142, 0);
53.1195 - assertBlock(lstBlockFac.get(1).getChildBlocks(), 11, PlsqlBlockType.FUNCTION_DEF, "Get_Event_Enable", true, 3202, 3309, 0);
53.1196 - assertBlock(lstBlockFac.get(1).getChildBlocks(), 12, PlsqlBlockType.PROCEDURE_DEF, "Set_Event_Enable", true, 3364, 3456, 0);
53.1197 - assertBlock(lstBlockFac.get(1).getChildBlocks(), 13, PlsqlBlockType.PROCEDURE_DEF, "Refresh", true, 3459, 3908, 0);
53.1198 - assertBlock(lstBlockFac.get(1).getChildBlocks(), 14, PlsqlBlockType.PROCEDURE_DEF, "Register_Custom_Event", true, 3910, 4038, 0);
53.1199 - assertBlock(lstBlockFac.get(1).getChildBlocks(), 15, PlsqlBlockType.PROCEDURE_DEF, "Unfresh", true, 4041, 4124, 0);
53.1200 - assertBlock(lstBlockFac.get(1).getChildBlocks(), 16, PlsqlBlockType.FUNCTION_DEF, "Get", true, 4127, 4218, 0);
53.1201 - assertBlock(lstBlockFac.get(1).getChildBlocks(), 17, PlsqlBlockType.COMMENT, "-- FOUNDATION1 METHODS ", true, 4261, 4494, 0);
53.1202 - assertBlock(lstBlockFac.get(1).getChildBlocks(), 18, PlsqlBlockType.PROCEDURE_DEF, "Init", true, 4496, 4511, 0);
53.1203 - assertBlock(lstBlockFac, 2, PlsqlBlockType.COMMENT, "COMMENT...", false, 4580, 4657, 0);
53.1204 + assertEquals(lstBlockFac.size(), 3);
53.1205 + processBlocks(plsqlFileName, lstBlockFac);
53.1206 } finally {
53.1207 if (fileObject != null) {
53.1208 fileObject.delete();
53.1209 @@ -1219,266 +308,18 @@
53.1210 @Test
53.1211 public void testAdvanced8() throws IOException, BadLocationException {
53.1212 System.out.println("Advanced test case 8");
53.1213 - FileObject fileObject = fs.getRoot().createData("FndEvent.apy");
53.1214 + final String plsqlFileName = "FndEvent.apy";
53.1215 + FileObject fileObject = fs.getRoot().createData(plsqlFileName);
53.1216 assertNotNull(fileObject);
53.1217 try {
53.1218 - PlsqlBlockFactory blockFac = loadAsTmpFile(fileObject, "FndEvent.apy");
53.1219 + PlsqlBlockFactory blockFac = loadAsTmpFile(fileObject, plsqlFileName);
53.1220 assertNotNull(blockFac);
53.1221
53.1222 List<PlsqlBlock> lstBlockFac = blockFac.getBlockHierarchy();
53.1223 // printHierarchy(lstBlockFac, "");
53.1224 // generateAssert(lstBlockFac, "lstBlockFac", "false");
53.1225 - assertTrue(lstBlockFac.size() == 8);
53.1226 - assertBlock(lstBlockFac, 0, PlsqlBlockType.COMMENT, "-- Logical unit: FndEvent", false, 0, 1577, 0);
53.1227 - assertBlock(lstBlockFac, 1, PlsqlBlockType.COMMENT, "-- VIEWS FOR SELECTS ", false, 1861, 2094, 0);
53.1228 - assertBlock(lstBlockFac, 2, PlsqlBlockType.VIEW, "FND_EVENT", false, 2129, 3044, 0);
53.1229 - assertBlock(lstBlockFac, 3, PlsqlBlockType.TABLE_COMMENT, "FND_EVENT", false, 3047, 3122, 0);
53.1230 - assertBlock(lstBlockFac, 4, PlsqlBlockType.COLUMN_COMMENT, "&AO", false, 3125, 4663, 0);
53.1231 - assertBlock(lstBlockFac, 5, PlsqlBlockType.COMMENT, "-- PACKAGES FOR METHODS ", false, 4666, 4899, 0);
53.1232 - assertBlock(lstBlockFac, 6, PlsqlBlockType.PACKAGE_BODY, "FND_EVENT_API", false, 4943, 53148, 50);
53.1233 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- LU SPECIFIC IMPLEMENTATION METHOD DECLARATIONS ", true, 5227, 5460, 0);
53.1234 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 1, PlsqlBlockType.PROCEDURE_DEF, "Create_Custom_Trigger___", true, 5462, 5582, 0);
53.1235 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 2, PlsqlBlockType.PROCEDURE_DEF, "Create_Custom_Triggers___", true, 5584, 5656, 0);
53.1236 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 3, PlsqlBlockType.FUNCTION_DEF, "Get_Trigger_Name___", true, 5658, 5767, 0);
53.1237 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 4, PlsqlBlockType.PROCEDURE_DEF, "Remove_Custom_Trigger___", true, 5769, 5889, 0);
53.1238 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 5, PlsqlBlockType.PROCEDURE_DEF, "Remove_Custom_Triggers___", true, 5891, 5963, 0);
53.1239 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 6, PlsqlBlockType.FUNCTION_DEF, "Create_Trigger_Name___", true, 5965, 6042, 0);
53.1240 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 7, PlsqlBlockType.COMMENT, "-- IMPLEMENTATION BASE METHODS ", true, 6043, 6918, 0);
53.1241 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 8, PlsqlBlockType.FUNCTION_IMPL, "Lock_By_Id___", true, 6920, 8072, 5);
53.1242 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(8).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "lock_control", true, 7214, 7364, 0);
53.1243 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(8).getChildBlocks(), 1, PlsqlBlockType.CURSOR, "exist_control", true, 7368, 7456, 0);
53.1244 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(8).getChildBlocks(), 2, PlsqlBlockType.IF, "IF (lock_control%FOUND)", true, 7521, 7605, 0);
53.1245 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(8).getChildBlocks(), 3, PlsqlBlockType.IF, "IF (exist_control%FOUND)", true, 7691, 7772, 0);
53.1246 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(8).getChildBlocks(), 4, PlsqlBlockType.IF, "ELSE", true, 7776, 7843, 0);
53.1247 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 9, PlsqlBlockType.FUNCTION_IMPL, "Lock_By_Keys___", true, 8074, 8705, 3);
53.1248 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(9).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "lock_control", true, 8249, 8399, 0);
53.1249 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(9).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (lock_control%FOUND)", true, 8464, 8537, 0);
53.1250 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(9).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSE", true, 8541, 8607, 0);
53.1251 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 10, PlsqlBlockType.FUNCTION_IMPL, "Get_Object_By_Id___", true, 8707, 9114, 2);
53.1252 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(10).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "getrec", true, 8817, 8898, 0);
53.1253 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(10).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (getrec%NOTFOUND)", true, 8954, 9052, 0);
53.1254 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 11, PlsqlBlockType.FUNCTION_IMPL, "Get_Object_By_Keys___", true, 9117, 9511, 1);
53.1255 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(11).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "getrec", true, 9268, 9395, 0);
53.1256 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 12, PlsqlBlockType.FUNCTION_IMPL, "Check_Exist___", true, 9513, 9994, 2);
53.1257 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(12).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "exist_control", true, 9641, 9776, 0);
53.1258 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(12).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (exist_control%FOUND)", true, 9845, 9932, 0);
53.1259 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 13, PlsqlBlockType.PROCEDURE_IMPL, "Get_Id_Version_By_Keys___", true, 9996, 10457, 1);
53.1260 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(13).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_version", true, 10180, 10330, 0);
53.1261 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 14, PlsqlBlockType.COMMENT, "-- IMPLEMENTATION BASE METHODS FOR INSERT ", true, 10459, 11204, 0);
53.1262 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 15, PlsqlBlockType.PROCEDURE_IMPL, "Prepare_Insert___", true, 11206, 11890, 0);
53.1263 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 16, PlsqlBlockType.PROCEDURE_IMPL, "Unpack_Check_Insert___", true, 11893, 14969, 1);
53.1264 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(16).getChildBlocks(), 0, PlsqlBlockType.WHILE_LOOP, "(Client_SYS.Get_Next_From_Attr(attr_, ptr_, name_, value_))", true, 12088, 14317, 15);
53.1265 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(16).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (name_ = 'EVENT_LU_NAME')", true, 12165, 12240, 0);
53.1266 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(16).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (name_ = 'EVENT_ID')", true, 12247, 12322, 0);
53.1267 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(16).getChildBlocks().get(0).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSIF (name_ = 'EVENT_DESCRIPTION')", true, 12329, 12415, 0);
53.1268 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(16).getChildBlocks().get(0).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSIF (name_ = 'EVENT_ENABLE')", true, 12422, 12498, 0);
53.1269 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(16).getChildBlocks().get(0).getChildBlocks(), 4, PlsqlBlockType.IF, "ELSIF (name_ = 'EVENT_TABLE_NAME')", true, 12505, 12589, 0);
53.1270 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(16).getChildBlocks().get(0).getChildBlocks(), 5, PlsqlBlockType.IF, "ELSIF (name_ = 'EVENT_TYPE')", true, 12596, 12796, 1);
53.1271 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(16).getChildBlocks().get(0).getChildBlocks().get(5).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (value_ IS NOT NULL)", true, 12705, 12796, 0);
53.1272 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(16).getChildBlocks().get(0).getChildBlocks(), 6, PlsqlBlockType.IF, "ELSIF (name_ = 'EVENT_TYPE_DB')", true, 12803, 12982, 1);
53.1273 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(16).getChildBlocks().get(0).getChildBlocks().get(6).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (value_ IS NOT NULL)", true, 12888, 12982, 0);
53.1274 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(16).getChildBlocks().get(0).getChildBlocks(), 7, PlsqlBlockType.IF, "ELSIF (name_ = 'MODIFIED_ATTRIBUTES')", true, 12989, 13079, 0);
53.1275 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(16).getChildBlocks().get(0).getChildBlocks(), 8, PlsqlBlockType.IF, "ELSIF (name_ = 'NEW_ROW')", true, 13086, 13274, 1);
53.1276 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(16).getChildBlocks().get(0).getChildBlocks().get(8).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (value_ IS NOT NULL)", true, 13186, 13274, 0);
53.1277 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(16).getChildBlocks().get(0).getChildBlocks(), 9, PlsqlBlockType.IF, "ELSIF (name_ = 'NEW_ROW_DB')", true, 13281, 13451, 1);
53.1278 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(16).getChildBlocks().get(0).getChildBlocks().get(9).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (value_ IS NOT NULL)", true, 13360, 13451, 0);
53.1279 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(16).getChildBlocks().get(0).getChildBlocks(), 10, PlsqlBlockType.IF, "ELSIF (name_ = 'MODIFY_ROW')", true, 13458, 13652, 1);
53.1280 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(16).getChildBlocks().get(0).getChildBlocks().get(10).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (value_ IS NOT NULL)", true, 13564, 13652, 0);
53.1281 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(16).getChildBlocks().get(0).getChildBlocks(), 11, PlsqlBlockType.IF, "ELSIF (name_ = 'MODIFY_ROW_DB')", true, 13659, 13835, 1);
53.1282 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(16).getChildBlocks().get(0).getChildBlocks().get(11).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (value_ IS NOT NULL)", true, 13744, 13835, 0);
53.1283 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(16).getChildBlocks().get(0).getChildBlocks(), 12, PlsqlBlockType.IF, "ELSIF (name_ = 'REMOVE_ROW')", true, 13842, 14036, 1);
53.1284 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(16).getChildBlocks().get(0).getChildBlocks().get(12).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (value_ IS NOT NULL)", true, 13948, 14036, 0);
53.1285 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(16).getChildBlocks().get(0).getChildBlocks(), 13, PlsqlBlockType.IF, "ELSIF (name_ = 'REMOVE_ROW_DB')", true, 14043, 14219, 1);
53.1286 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(16).getChildBlocks().get(0).getChildBlocks().get(13).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (value_ IS NOT NULL)", true, 14128, 14219, 0);
53.1287 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(16).getChildBlocks().get(0).getChildBlocks(), 14, PlsqlBlockType.IF, "ELSE", true, 14226, 14304, 0);
53.1288 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 17, PlsqlBlockType.PROCEDURE_IMPL, "Insert___", true, 14972, 16385, 6);
53.1289 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(17).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "COMMENT...", true, 15241, 15243, 0);
53.1290 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(17).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (nvl(newrec_.event_enable, 'FALSE') = 'TRUE')", true, 15247, 15409, 0);
53.1291 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(17).getChildBlocks(), 2, PlsqlBlockType.COMMENT, "COMMENT...", true, 15413, 15415, 0);
53.1292 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(17).getChildBlocks(), 3, PlsqlBlockType.STATEMENT, "INSERT", true, 15419, 16093, 0);
53.1293 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(17).getChildBlocks(), 4, PlsqlBlockType.COMMENT, "-- Create Custom Defined triggers", true, 16098, 16131, 0);
53.1294 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(17).getChildBlocks(), 5, PlsqlBlockType.IF, "IF (newrec_.event_type = 'CUSTOM')", true, 16135, 16290, 1);
53.1295 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(17).getChildBlocks().get(5).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (newrec_.event_enable = 'TRUE')", true, 16181, 16279, 0);
53.1296 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 18, PlsqlBlockType.COMMENT, "-- IMPLEMENTATION BASE METHODS FOR UPDATE ", true, 16387, 16971, 0);
53.1297 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 19, PlsqlBlockType.PROCEDURE_IMPL, "Unpack_Check_Update___", true, 16973, 19888, 1);
53.1298 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(19).getChildBlocks(), 0, PlsqlBlockType.WHILE_LOOP, "(Client_SYS.Get_Next_From_Attr(attr_, ptr_, name_, value_))", true, 17196, 19452, 15);
53.1299 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(19).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (name_ = 'EVENT_LU_NAME')", true, 17273, 17365, 0);
53.1300 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(19).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (name_ = 'EVENT_ID')", true, 17372, 17457, 0);
53.1301 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(19).getChildBlocks().get(0).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSIF (name_ = 'EVENT_DESCRIPTION')", true, 17464, 17550, 0);
53.1302 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(19).getChildBlocks().get(0).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSIF (name_ = 'EVENT_ENABLE')", true, 17557, 17633, 0);
53.1303 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(19).getChildBlocks().get(0).getChildBlocks(), 4, PlsqlBlockType.IF, "ELSIF (name_ = 'EVENT_TABLE_NAME')", true, 17640, 17724, 0);
53.1304 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(19).getChildBlocks().get(0).getChildBlocks(), 5, PlsqlBlockType.IF, "ELSIF (name_ = 'EVENT_TYPE')", true, 17731, 17931, 1);
53.1305 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(19).getChildBlocks().get(0).getChildBlocks().get(5).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (value_ IS NOT NULL)", true, 17840, 17931, 0);
53.1306 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(19).getChildBlocks().get(0).getChildBlocks(), 6, PlsqlBlockType.IF, "ELSIF (name_ = 'EVENT_TYPE_DB')", true, 17938, 18117, 1);
53.1307 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(19).getChildBlocks().get(0).getChildBlocks().get(6).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (value_ IS NOT NULL)", true, 18023, 18117, 0);
53.1308 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(19).getChildBlocks().get(0).getChildBlocks(), 7, PlsqlBlockType.IF, "ELSIF (name_ = 'MODIFIED_ATTRIBUTES')", true, 18124, 18214, 0);
53.1309 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(19).getChildBlocks().get(0).getChildBlocks(), 8, PlsqlBlockType.IF, "ELSIF (name_ = 'NEW_ROW')", true, 18221, 18409, 1);
53.1310 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(19).getChildBlocks().get(0).getChildBlocks().get(8).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (value_ IS NOT NULL)", true, 18321, 18409, 0);
53.1311 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(19).getChildBlocks().get(0).getChildBlocks(), 9, PlsqlBlockType.IF, "ELSIF (name_ = 'NEW_ROW_DB')", true, 18416, 18586, 1);
53.1312 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(19).getChildBlocks().get(0).getChildBlocks().get(9).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (value_ IS NOT NULL)", true, 18495, 18586, 0);
53.1313 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(19).getChildBlocks().get(0).getChildBlocks(), 10, PlsqlBlockType.IF, "ELSIF (name_ = 'MODIFY_ROW')", true, 18593, 18787, 1);
53.1314 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(19).getChildBlocks().get(0).getChildBlocks().get(10).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (value_ IS NOT NULL)", true, 18699, 18787, 0);
53.1315 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(19).getChildBlocks().get(0).getChildBlocks(), 11, PlsqlBlockType.IF, "ELSIF (name_ = 'MODIFY_ROW_DB')", true, 18794, 18970, 1);
53.1316 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(19).getChildBlocks().get(0).getChildBlocks().get(11).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (value_ IS NOT NULL)", true, 18879, 18970, 0);
53.1317 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(19).getChildBlocks().get(0).getChildBlocks(), 12, PlsqlBlockType.IF, "ELSIF (name_ = 'REMOVE_ROW')", true, 18977, 19171, 1);
53.1318 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(19).getChildBlocks().get(0).getChildBlocks().get(12).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (value_ IS NOT NULL)", true, 19083, 19171, 0);
53.1319 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(19).getChildBlocks().get(0).getChildBlocks(), 13, PlsqlBlockType.IF, "ELSIF (name_ = 'REMOVE_ROW_DB')", true, 19178, 19354, 1);
53.1320 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(19).getChildBlocks().get(0).getChildBlocks().get(13).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (value_ IS NOT NULL)", true, 19263, 19354, 0);
53.1321 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(19).getChildBlocks().get(0).getChildBlocks(), 14, PlsqlBlockType.IF, "ELSE", true, 19361, 19439, 0);
53.1322 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 20, PlsqlBlockType.PROCEDURE_IMPL, "Update___", true, 19891, 22450, 7);
53.1323 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(20).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_event_count", true, 20152, 20350, 0);
53.1324 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(20).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (nvl(oldrec_.event_enable, 'FALSE') = 'FALSE' AND newrec_.event_enable = 'TRUE')", true, 20360, 20700, 1);
53.1325 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(20).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (dummy_ = 0)", true, 20554, 20689, 0);
53.1326 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(20).getChildBlocks(), 2, PlsqlBlockType.COMMENT, "COMMENT...", true, 20704, 20706, 0);
53.1327 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(20).getChildBlocks(), 3, PlsqlBlockType.IF, "IF by_keys_", true, 20810, 21460, 1);
53.1328 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(20).getChildBlocks().get(3).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE fnd_event_tab", true, 20833, 21459, 0);
53.1329 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(20).getChildBlocks(), 4, PlsqlBlockType.IF, "ELSE", true, 21464, 22051, 1);
53.1330 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(20).getChildBlocks().get(4).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE fnd_event_tab", true, 21475, 22039, 0);
53.1331 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(20).getChildBlocks(), 5, PlsqlBlockType.COMMENT, "-- Create/remove Custom Defined triggers", true, 22055, 22095, 0);
53.1332 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(20).getChildBlocks(), 6, PlsqlBlockType.IF, "IF (newrec_.event_type = 'CUSTOM')", true, 22099, 22355, 2);
53.1333 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(20).getChildBlocks().get(6).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (newrec_.event_enable = 'TRUE')", true, 22145, 22274, 0);
53.1334 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(20).getChildBlocks().get(6).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 22281, 22344, 0);
53.1335 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 21, PlsqlBlockType.COMMENT, "-- IMPLEMENTATION BASE METHODS FOR DELETE ", true, 22452, 23049, 0);
53.1336 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 22, PlsqlBlockType.PROCEDURE_IMPL, "Check_Delete___", true, 23051, 23289, 0);
53.1337 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 23, PlsqlBlockType.PROCEDURE_IMPL, "Delete___", true, 23292, 23734, 3);
53.1338 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(23).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "DELETE", true, 23525, 23585, 0);
53.1339 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(23).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- Remove Custom Defined triggers", true, 23590, 23623, 0);
53.1340 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(23).getChildBlocks(), 2, PlsqlBlockType.IF, "IF (remrec_.event_type = 'CUSTOM')", true, 23627, 23719, 0);
53.1341 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 24, PlsqlBlockType.COMMENT, "-- PRIVATE BASE METHODS ", true, 23736, 26037, 0);
53.1342 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 25, PlsqlBlockType.PROCEDURE_IMPL, "Lock__", true, 26039, 26334, 0);
53.1343 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 26, PlsqlBlockType.PROCEDURE_IMPL, "New__", true, 26337, 26941, 3);
53.1344 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(26).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (action_ = 'PREPARE')", true, 26610, 26671, 0);
53.1345 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(26).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (action_ = 'CHECK')", true, 26675, 26751, 0);
53.1346 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(26).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSIF (action_ = 'DO')", true, 26755, 26893, 0);
53.1347 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 27, PlsqlBlockType.PROCEDURE_IMPL, "Modify__", true, 26944, 27666, 2);
53.1348 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(27).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (action_ = 'CHECK')", true, 27250, 27377, 0);
53.1349 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(27).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (action_ = 'DO')", true, 27381, 27615, 0);
53.1350 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 28, PlsqlBlockType.PROCEDURE_IMPL, "Remove__", true, 27669, 28221, 2);
53.1351 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(28).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (action_ = 'CHECK')", true, 27904, 28009, 0);
53.1352 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(28).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (action_ = 'DO')", true, 28013, 28170, 0);
53.1353 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 29, PlsqlBlockType.COMMENT, "-- PUBLIC BASE METHODS ", true, 28223, 28676, 0);
53.1354 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 30, PlsqlBlockType.PROCEDURE_IMPL, "Exist", true, 28678, 28953, 1);
53.1355 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(30).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (NOT Check_Exist___(event_lu_name_, event_id_))", true, 28832, 28942, 0);
53.1356 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 31, PlsqlBlockType.COMMENT, "-- LU SPECIFIC IMPLEMENTATION METHODS ", true, 28955, 29188, 0);
53.1357 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 32, PlsqlBlockType.PROCEDURE_IMPL, "Create_Custom_Triggers___", true, 29190, 29720, 4);
53.1358 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(32).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Create triggers per type (New, Modify, Remove)", true, 29355, 29404, 0);
53.1359 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(32).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (rec_.new_row = 'TRUE')", true, 29408, 29495, 0);
53.1360 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(32).getChildBlocks(), 2, PlsqlBlockType.IF, "IF (rec_.modify_row = 'TRUE')", true, 29499, 29592, 0);
53.1361 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(32).getChildBlocks(), 3, PlsqlBlockType.IF, "IF (rec_.remove_row = 'TRUE')", true, 29596, 29689, 0);
53.1362 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 33, PlsqlBlockType.PROCEDURE_IMPL, "Create_Custom_Trigger___", true, 29722, 38974, 18);
53.1363 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "COMMENT...", true, 30211, 30213, 0);
53.1364 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks(), 1, PlsqlBlockType.CURSOR, "get_param", true, 30217, 30363, 0);
53.1365 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks(), 2, PlsqlBlockType.COMMENT, "COMMENT...", true, 30367, 30369, 0);
53.1366 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks(), 3, PlsqlBlockType.FUNCTION_IMPL, "space___", true, 30373, 30539, 0);
53.1367 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks(), 4, PlsqlBlockType.COMMENT, "COMMENT...", true, 30543, 30545, 0);
53.1368 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks(), 5, PlsqlBlockType.FUNCTION_IMPL, "Get_Dml_Event___", true, 30549, 30884, 3);
53.1369 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks().get(5).getChildBlocks(), 0, PlsqlBlockType.CASE, "CASE trigger_type_\n WHEN 'NEW'", true, 30654, 30727, 0);
53.1370 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks().get(5).getChildBlocks(), 1, PlsqlBlockType.CASE, "WHEN 'MODIFY'", true, 30737, 30785, 0);
53.1371 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks().get(5).getChildBlocks(), 2, PlsqlBlockType.CASE, "WHEN 'REMOVE'", true, 30795, 30859, 0);
53.1372 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks(), 6, PlsqlBlockType.COMMENT, "COMMENT...", true, 30888, 30890, 0);
53.1373 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks(), 7, PlsqlBlockType.FUNCTION_IMPL, "Get_Columns___", true, 30894, 32204, 3);
53.1374 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks().get(7).getChildBlocks(), 0, PlsqlBlockType.IF, "IF column_list_ IS NULL", true, 31323, 31392, 0);
53.1375 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks().get(7).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- Find all attributes in Search Domain Title", true, 31399, 31444, 0);
53.1376 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks().get(7).getChildBlocks(), 2, PlsqlBlockType.LOOP, "", true, 31508, 32157, 4);
53.1377 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks().get(7).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Find column name", true, 31522, 31541, 0);
53.1378 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks().get(7).getChildBlocks().get(2).getChildBlocks(), 1, PlsqlBlockType.IF, "IF column_name_ IS NOT NULL", true, 31625, 31745, 0);
53.1379 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks().get(7).getChildBlocks().get(2).getChildBlocks(), 2, PlsqlBlockType.COMMENT, "-- Find new attribute", true, 31755, 31776, 0);
53.1380 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks().get(7).getChildBlocks().get(2).getChildBlocks(), 3, PlsqlBlockType.IF, "IF pos_ = 0", true, 31879, 32141, 1);
53.1381 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks().get(7).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Find column name", true, 31954, 31973, 0);
53.1382 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks(), 8, PlsqlBlockType.COMMENT, "COMMENT...", true, 32208, 32210, 0);
53.1383 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks(), 9, PlsqlBlockType.FUNCTION_IMPL, "Create_If_Stmt___", true, 32214, 34491, 4);
53.1384 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks().get(9).getChildBlocks(), 0, PlsqlBlockType.IF, "IF column_list_ IS NULL", true, 32715, 32780, 0);
53.1385 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks().get(9).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- Find all attributes in Search Domain Title", true, 32787, 32832, 0);
53.1386 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks().get(9).getChildBlocks(), 2, PlsqlBlockType.IF, "IF (tmp_column_list_ IS NOT NULL)", true, 32918, 33004, 0);
53.1387 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks().get(9).getChildBlocks(), 3, PlsqlBlockType.LOOP, "", true, 33011, 34444, 5);
53.1388 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks().get(9).getChildBlocks().get(3).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (i_ > 1)", true, 33025, 33113, 0);
53.1389 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks().get(9).getChildBlocks().get(3).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- Find column name", true, 33123, 33142, 0);
53.1390 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks().get(9).getChildBlocks().get(3).getChildBlocks(), 2, PlsqlBlockType.IF, "IF column_name_ IS NOT NULL", true, 33226, 33623, 0);
53.1391 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks().get(9).getChildBlocks().get(3).getChildBlocks(), 3, PlsqlBlockType.COMMENT, "-- Find new attribute", true, 33633, 33654, 0);
53.1392 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks().get(9).getChildBlocks().get(3).getChildBlocks(), 4, PlsqlBlockType.IF, "IF pos_ = 0", true, 33784, 34428, 2);
53.1393 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks().get(9).getChildBlocks().get(3).getChildBlocks().get(4).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (i_ > 1 AND found_)", true, 33813, 33918, 0);
53.1394 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks().get(9).getChildBlocks().get(3).getChildBlocks().get(4).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- Find column name", true, 33977, 33996, 0);
53.1395 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks(), 10, PlsqlBlockType.COMMENT, "COMMENT...", true, 34495, 34497, 0);
53.1396 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks(), 11, PlsqlBlockType.FUNCTION_IMPL, "Replace_Parameter___", true, 34501, 35656, 5);
53.1397 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks().get(11).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "COMMENT...", true, 34766, 34768, 0);
53.1398 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks().get(11).getChildBlocks(), 1, PlsqlBlockType.CURSOR, "get_param", true, 34775, 34933, 0);
53.1399 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks().get(11).getChildBlocks(), 2, PlsqlBlockType.IF, "IF (pos_ = 0)", true, 34994, 35052, 0);
53.1400 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks().get(11).getChildBlocks(), 3, PlsqlBlockType.COMMENT, "-- Replace all parameters used as parameters to PL/SQL method", true, 35059, 35120, 0);
53.1401 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks().get(11).getChildBlocks(), 4, PlsqlBlockType.FOR_LOOP, "par IN get_param", true, 35127, 35604, 3);
53.1402 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks().get(11).getChildBlocks().get(4).getChildBlocks(), 0, PlsqlBlockType.IF, "IF par.current_value = 'TRUE'", true, 35162, 35312, 0);
53.1403 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks().get(11).getChildBlocks().get(4).getChildBlocks(), 1, PlsqlBlockType.IF, "IF par.new_value = 'TRUE'", true, 35322, 35468, 0);
53.1404 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks().get(11).getChildBlocks().get(4).getChildBlocks(), 2, PlsqlBlockType.IF, "IF pos_ = 0", true, 35526, 35588, 0);
53.1405 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks(), 12, PlsqlBlockType.CASE, "CASE trigger_type_\n WHEN 'NEW'", true, 35763, 35881, 0);
53.1406 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks(), 13, PlsqlBlockType.CASE, "WHEN 'MODIFY'", true, 35888, 36353, 3);
53.1407 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks().get(13).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Build If statement for modify", true, 35994, 36026, 0);
53.1408 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks().get(13).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (if_stmt_start_ IS NOT NULL)", true, 36108, 36219, 0);
53.1409 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks().get(13).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSE", true, 36229, 36319, 0);
53.1410 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks(), 14, PlsqlBlockType.CASE, "WHEN 'REMOVE'", true, 36360, 36469, 0);
53.1411 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks(), 15, PlsqlBlockType.COMMENT, "-- Build PL/SQL statement", true, 36473, 36498, 0);
53.1412 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks(), 16, PlsqlBlockType.FOR_LOOP, "par_ IN get_param", true, 37005, 38309, 7);
53.1413 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks().get(16).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (par_.id_type = 'DATETIME')", true, 37038, 37174, 0);
53.1414 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks().get(16).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (par_.id_type = 'DATE')", true, 37181, 37312, 0);
53.1415 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks().get(16).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSIF (par_.id_type = 'TIME')", true, 37319, 37450, 0);
53.1416 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks().get(16).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSE", true, 37457, 37543, 0);
53.1417 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks().get(16).getChildBlocks(), 4, PlsqlBlockType.COMMENT, "COMMENT...", true, 37550, 37552, 0);
53.1418 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks().get(16).getChildBlocks(), 5, PlsqlBlockType.IF, "IF par_.plsql_method IS NOT NULL", true, 37559, 37803, 0);
53.1419 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks().get(16).getChildBlocks(), 6, PlsqlBlockType.IF, "ELSE", true, 37810, 38296, 2);
53.1420 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks().get(16).getChildBlocks().get(6).getChildBlocks(), 0, PlsqlBlockType.IF, "IF par_.current_value = 'TRUE'", true, 37824, 38050, 0);
53.1421 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks().get(16).getChildBlocks().get(6).getChildBlocks(), 1, PlsqlBlockType.IF, "IF par_.new_value = 'TRUE'", true, 38060, 38282, 0);
53.1422 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(33).getChildBlocks(), 17, PlsqlBlockType.COMMENT, "COMMENT...", true, 38703, 38705, 0);
53.1423 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 34, PlsqlBlockType.FUNCTION_IMPL, "Get_Trigger_Name___", true, 38976, 39426, 3);
53.1424 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(34).getChildBlocks(), 0, PlsqlBlockType.CASE, "CASE trigger_type_\n WHEN 'NEW'", true, 39097, 39204, 0);
53.1425 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(34).getChildBlocks(), 1, PlsqlBlockType.CASE, "WHEN 'MODIFY'", true, 39211, 39296, 0);
53.1426 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(34).getChildBlocks(), 2, PlsqlBlockType.CASE, "WHEN 'REMOVE'", true, 39303, 39401, 0);
53.1427 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 35, PlsqlBlockType.PROCEDURE_IMPL, "Remove_Custom_Triggers___", true, 39428, 39958, 4);
53.1428 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(35).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Create triggers per type (New, Modify, Remove)", true, 39593, 39642, 0);
53.1429 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(35).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (rec_.new_row = 'TRUE')", true, 39646, 39733, 0);
53.1430 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(35).getChildBlocks(), 2, PlsqlBlockType.IF, "IF (rec_.modify_row = 'TRUE')", true, 39737, 39830, 0);
53.1431 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(35).getChildBlocks(), 3, PlsqlBlockType.IF, "IF (rec_.remove_row = 'TRUE')", true, 39834, 39927, 0);
53.1432 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 36, PlsqlBlockType.PROCEDURE_IMPL, "Remove_Custom_Trigger___", true, 39960, 40323, 1);
53.1433 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(36).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "COMMENT...", true, 40112, 40114, 0);
53.1434 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 37, PlsqlBlockType.FUNCTION_IMPL, "Create_Trigger_Name___", true, 40325, 40707, 0);
53.1435 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 38, PlsqlBlockType.COMMENT, "-- LU SPECIFIC PRIVATE METHODS ", true, 40708, 40941, 0);
53.1436 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 39, PlsqlBlockType.PROCEDURE_IMPL, "Export__", true, 40943, 45806, 7);
53.1437 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(39).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_param", true, 41203, 41391, 0);
53.1438 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(39).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- Fetch the event details", true, 41459, 41485, 0);
53.1439 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(39).getChildBlocks(), 2, PlsqlBlockType.COMMENT, "-- Only allowed to export Custom Events", true, 41553, 41592, 0);
53.1440 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(39).getChildBlocks(), 3, PlsqlBlockType.IF, "IF (nvl(rec.event_type, 'APPLICATION') != 'CUSTOM')", true, 41596, 41763, 0);
53.1441 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(39).getChildBlocks(), 4, PlsqlBlockType.COMMENT, "-- Create Export file", true, 41767, 41800, 0);
53.1442 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(39).getChildBlocks(), 5, PlsqlBlockType.COMMENT, "-- Create Main Message", true, 43274, 43308, 0);
53.1443 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(39).getChildBlocks(), 6, PlsqlBlockType.FOR_LOOP, "rec2 IN get_param", true, 44698, 45652, 0);
53.1444 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 40, PlsqlBlockType.COMMENT, "-- LU SPECIFIC PROTECTED METHODS ", true, 45808, 46277, 0);
53.1445 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 41, PlsqlBlockType.FUNCTION_IMPL, "Get_Event_Description", true, 46279, 46699, 1);
53.1446 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(41).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_attr", true, 46438, 46582, 0);
53.1447 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 42, PlsqlBlockType.FUNCTION_IMPL, "Get_Event_Enable", true, 46702, 47171, 3);
53.1448 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(42).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_attr", true, 46851, 46990, 0);
53.1449 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(42).getChildBlocks(), 1, PlsqlBlockType.IF, "IF temp_ IS NULL", true, 47067, 47110, 0);
53.1450 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(42).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSE", true, 47114, 47149, 0);
53.1451 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 43, PlsqlBlockType.PROCEDURE_IMPL, "Set_Event_Enable", true, 47174, 48557, 4);
53.1452 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(43).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (event_id_ <> upper(event_id_))", true, 47534, 47695, 0);
53.1453 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(43).getChildBlocks(), 1, PlsqlBlockType.STATEMENT, "SELECT COUNT(*)", true, 47699, 47870, 0);
53.1454 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(43).getChildBlocks(), 2, PlsqlBlockType.IF, "IF (temp_ > 0)", true, 47954, 48244, 0);
53.1455 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(43).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSE", true, 48248, 48535, 0);
53.1456 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 44, PlsqlBlockType.PROCEDURE_IMPL, "Refresh", true, 48560, 50005, 4);
53.1457 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(44).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (event_id_ <> upper(event_id_))", true, 49095, 49256, 0);
53.1458 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(44).getChildBlocks(), 1, PlsqlBlockType.STATEMENT, "SELECT COUNT(*)", true, 49260, 49383, 0);
53.1459 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(44).getChildBlocks(), 2, PlsqlBlockType.IF, "IF (temp_ = 0)", true, 49388, 49818, 1);
53.1460 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(44).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "INSERT INTO fnd_event_tab", true, 49414, 49817, 0);
53.1461 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(44).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSE", true, 49822, 49992, 1);
53.1462 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(44).getChildBlocks().get(3).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE fnd_event_tab", true, 49833, 49980, 0);
53.1463 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 45, PlsqlBlockType.PROCEDURE_IMPL, "Register_Custom_Event", true, 50007, 51787, 1);
53.1464 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(45).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (Check_Exist___(event_lu_name_, event_id_))", true, 51447, 51709, 2);
53.1465 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(45).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "DELETE FROM fnd_event_tab WHERE event_lu_name = event_lu_name_ AND event_id = event_id_", true, 51505, 51592, 0);
53.1466 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(45).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.STATEMENT, "DELETE FROM fnd_event_parameter_tab WHERE event_lu_name = event_lu_name_ AND event_id = event_id_", true, 51600, 51697, 0);
53.1467 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 46, PlsqlBlockType.PROCEDURE_IMPL, "Unfresh", true, 51789, 52246, 2);
53.1468 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(46).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "SELECT COUNT(*)", true, 51958, 52083, 0);
53.1469 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(46).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (temp_ > 0)", true, 52088, 52233, 1);
53.1470 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(46).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "DELETE FROM fnd_event_tab", true, 52114, 52221, 0);
53.1471 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 47, PlsqlBlockType.FUNCTION_IMPL, "Get", true, 52249, 52624, 1);
53.1472 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(47).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_attr", true, 52367, 52525, 0);
53.1473 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 48, PlsqlBlockType.COMMENT, "-- FOUNDATION1 METHODS ", true, 52628, 53092, 0);
53.1474 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 49, PlsqlBlockType.PROCEDURE_IMPL, "Init", true, 53094, 53136, 0);
53.1475 - assertBlock(lstBlockFac, 7, PlsqlBlockType.COMMENT, "COMMENT...", false, 53270, 53347, 0);
53.1476 + assertEquals(lstBlockFac.size(), 8);
53.1477 + processBlocks(plsqlFileName, lstBlockFac);
53.1478 } finally {
53.1479 if (fileObject != null) {
53.1480 fileObject.delete();
53.1481 @@ -1489,463 +330,18 @@
53.1482 @Test
53.1483 public void testAdvanced9() throws IOException, BadLocationException {
53.1484 System.out.println("Advanced test case 9");
53.1485 - FileObject fileObject = fs.getRoot().createData("IdentityPayInfo.apy");
53.1486 + final String plsqlFileName = "IdentityPayInfo.apy";
53.1487 + FileObject fileObject = fs.getRoot().createData(plsqlFileName);
53.1488 assertNotNull(fileObject);
53.1489 try {
53.1490 - PlsqlBlockFactory blockFac = loadAsTmpFile(fileObject, "IdentityPayInfo.apy");
53.1491 + PlsqlBlockFactory blockFac = loadAsTmpFile(fileObject, plsqlFileName);
53.1492 assertNotNull(blockFac);
53.1493
53.1494 List<PlsqlBlock> lstBlockFac = blockFac.getBlockHierarchy();
53.1495 // printHierarchy(lstBlockFac, "");
53.1496 // generateAssert(lstBlockFac, "lstBlockFac", "false");
53.1497 - assertTrue(lstBlockFac.size() == 52);
53.1498 - assertBlock(lstBlockFac, 0, PlsqlBlockType.COMMENT, "-- Logical unit: IdentityPayInfo", false, 0, 9418, 0);
53.1499 - assertBlock(lstBlockFac, 1, PlsqlBlockType.COMMENT, "-- VIEWS FOR SELECTS ", false, 10475, 10708, 0);
53.1500 - assertBlock(lstBlockFac, 2, PlsqlBlockType.VIEW, "IDENTITY_PAY_INFO", false, 10738, 12658, 0);
53.1501 - assertBlock(lstBlockFac, 3, PlsqlBlockType.TABLE_COMMENT, "IDENTITY_PAY_INFO", false, 12661, 12739, 0);
53.1502 - assertBlock(lstBlockFac, 4, PlsqlBlockType.COLUMN_COMMENT, "IDENTITY_PAY_INFO", false, 12742, 16182, 0);
53.1503 - assertBlock(lstBlockFac, 5, PlsqlBlockType.COMMENT, "-- Bug 77136, begin, Table join with supplier_info_tab, in order to get name and association no directly.", false, 16185, 16290, 0);
53.1504 - assertBlock(lstBlockFac, 6, PlsqlBlockType.VIEW, "IDENTITY_PAY_INFO_SU_QRY", false, 16325, 20258, 0);
53.1505 - assertBlock(lstBlockFac, 7, PlsqlBlockType.TABLE_COMMENT, "IDENTITY_PAY_INFO_SU_QRY", false, 20261, 20346, 0);
53.1506 - assertBlock(lstBlockFac, 8, PlsqlBlockType.COLUMN_COMMENT, "IDENTITY_PAY_INFO_SU_QRY", false, 20349, 21761, 0);
53.1507 - assertBlock(lstBlockFac, 9, PlsqlBlockType.COMMENT, "-- Bug 77136, end", false, 21763, 21996, 0);
53.1508 - assertBlock(lstBlockFac, 10, PlsqlBlockType.VIEW, "IDENTITY_PAY_INFO_CU_QRY", false, 22031, 27474, 0);
53.1509 - assertBlock(lstBlockFac, 11, PlsqlBlockType.TABLE_COMMENT, "IDENTITY_PAY_INFO_CU_QRY", false, 27477, 27562, 0);
53.1510 - assertBlock(lstBlockFac, 12, PlsqlBlockType.COLUMN_COMMENT, "IDENTITY_PAY_INFO_CU_QRY", false, 27565, 30549, 0);
53.1511 - assertBlock(lstBlockFac, 13, PlsqlBlockType.COMMENT, "-- Bug 69035, End;", false, 30551, 30587, 0);
53.1512 - assertBlock(lstBlockFac, 14, PlsqlBlockType.COMMENT, "-- Bug 68653, Begin, Added new columns address and city", false, 30622, 30677, 0);
53.1513 - assertBlock(lstBlockFac, 15, PlsqlBlockType.VIEW, "IDENTITY_PAY_INFO_SUPP", false, 30678, 32224, 0);
53.1514 - assertBlock(lstBlockFac, 16, PlsqlBlockType.TABLE_COMMENT, "IDENTITY_PAY_INFO_SUPP", false, 32227, 32310, 0);
53.1515 - assertBlock(lstBlockFac, 17, PlsqlBlockType.COLUMN_COMMENT, "IDENTITY_PAY_INFO_SUPP", false, 32313, 33373, 0);
53.1516 - assertBlock(lstBlockFac, 18, PlsqlBlockType.COMMENT, "-- Bug 68653, End", false, 33375, 33392, 0);
53.1517 - assertBlock(lstBlockFac, 19, PlsqlBlockType.COMMENT, "-- Bug 68653, Begin, Added new columns address and city", false, 33428, 33483, 0);
53.1518 - assertBlock(lstBlockFac, 20, PlsqlBlockType.VIEW, "IDENTITY_PAY_INFO_CUST", false, 33484, 34962, 0);
53.1519 - assertBlock(lstBlockFac, 21, PlsqlBlockType.TABLE_COMMENT, "IDENTITY_PAY_INFO_CUST", false, 34965, 35048, 0);
53.1520 - assertBlock(lstBlockFac, 22, PlsqlBlockType.COLUMN_COMMENT, "IDENTITY_PAY_INFO_CUST", false, 35051, 36106, 0);
53.1521 - assertBlock(lstBlockFac, 23, PlsqlBlockType.COMMENT, "-- Bug 68653, End", false, 36108, 36125, 0);
53.1522 - assertBlock(lstBlockFac, 24, PlsqlBlockType.COMMENT, "-- Bug 68653, Begin, Added new columns address and city", false, 36159, 36214, 0);
53.1523 - assertBlock(lstBlockFac, 25, PlsqlBlockType.VIEW, "IDENTITY_PAY_INFO_LOV", false, 36215, 37137, 0);
53.1524 - assertBlock(lstBlockFac, 26, PlsqlBlockType.TABLE_COMMENT, "IDENTITY_PAY_INFO_LOV", false, 37140, 37231, 0);
53.1525 - assertBlock(lstBlockFac, 27, PlsqlBlockType.COLUMN_COMMENT, "IDENTITY_PAY_INFO_LOV", false, 37234, 37844, 0);
53.1526 - assertBlock(lstBlockFac, 28, PlsqlBlockType.COMMENT, "-- Bug 68653, End", false, 37846, 37863, 0);
53.1527 - assertBlock(lstBlockFac, 29, PlsqlBlockType.VIEW, "IDENTITY_PAY_INFO_ALL", false, 37898, 38508, 0);
53.1528 - assertBlock(lstBlockFac, 30, PlsqlBlockType.TABLE_COMMENT, "IDENTITY_PAY_INFO_ALL", false, 38511, 38593, 0);
53.1529 - assertBlock(lstBlockFac, 31, PlsqlBlockType.COLUMN_COMMENT, "IDENTITY_PAY_INFO_ALL", false, 38596, 39033, 0);
53.1530 - assertBlock(lstBlockFac, 32, PlsqlBlockType.VIEW, "IDENTITY_PAY_INFO_PCT", false, 39067, 40386, 0);
53.1531 - assertBlock(lstBlockFac, 33, PlsqlBlockType.TABLE_COMMENT, "IDENTITY_PAY_INFO_PCT", false, 40389, 40470, 0);
53.1532 - assertBlock(lstBlockFac, 34, PlsqlBlockType.COLUMN_COMMENT, "IDENTITY_PAY_INFO_PCT", false, 40473, 43144, 0);
53.1533 - assertBlock(lstBlockFac, 35, PlsqlBlockType.COMMENT, "-- Bug 69035, Begin, Added reminder_template_id,interest_template_id and their descriptions ", false, 43185, 43279, 0);
53.1534 - assertBlock(lstBlockFac, 36, PlsqlBlockType.VIEW, "PAYER_INFO_QRY", false, 43280, 45980, 0);
53.1535 - assertBlock(lstBlockFac, 37, PlsqlBlockType.TABLE_COMMENT, "PAYER_INFO_QRY", false, 45983, 46071, 0);
53.1536 - assertBlock(lstBlockFac, 38, PlsqlBlockType.COLUMN_COMMENT, "PAYER_INFO_QRY", false, 46074, 47822, 0);
53.1537 - assertBlock(lstBlockFac, 39, PlsqlBlockType.COMMENT, "-- Bug 69035, End", false, 47824, 47841, 0);
53.1538 - assertBlock(lstBlockFac, 40, PlsqlBlockType.VIEW, "MULTI_CUS_DETAILS_QRY", false, 47881, 48808, 0);
53.1539 - assertBlock(lstBlockFac, 41, PlsqlBlockType.TABLE_COMMENT, "MULTI_CUS_DETAILS_QRY", false, 48811, 48901, 0);
53.1540 - assertBlock(lstBlockFac, 42, PlsqlBlockType.COLUMN_COMMENT, "MULTI_CUS_DETAILS_QRY", false, 48904, 49453, 0);
53.1541 - assertBlock(lstBlockFac, 43, PlsqlBlockType.VIEW, "MULTI_SUP_DETAILS_QRY", false, 49498, 50374, 0);
53.1542 - assertBlock(lstBlockFac, 44, PlsqlBlockType.TABLE_COMMENT, "MULTI_SUP_DETAILS_QRY", false, 50377, 50467, 0);
53.1543 - assertBlock(lstBlockFac, 45, PlsqlBlockType.COLUMN_COMMENT, "MULTI_SUP_DETAILS_QRY", false, 50470, 50913, 0);
53.1544 - assertBlock(lstBlockFac, 46, PlsqlBlockType.VIEW, "MULTI_SUP_ADDRESS_QRY", false, 50954, 51642, 0);
53.1545 - assertBlock(lstBlockFac, 47, PlsqlBlockType.TABLE_COMMENT, "MULTI_SUP_ADDRESS_QRY", false, 51645, 51735, 0);
53.1546 - assertBlock(lstBlockFac, 48, PlsqlBlockType.COLUMN_COMMENT, "MULTI_SUP_ADDRESS_QRY", false, 51738, 52176, 0);
53.1547 - assertBlock(lstBlockFac, 49, PlsqlBlockType.COMMENT, "-- PACKAGES FOR METHODS ", false, 52179, 52412, 0);
53.1548 - assertBlock(lstBlockFac, 50, PlsqlBlockType.PACKAGE_BODY, "IDENTITY_PAY_INFO_API", false, 52451, 146515, 93);
53.1549 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- LU SPECIFIC IMPLEMENTATION METHOD DECLARATIONS ", true, 52491, 52724, 0);
53.1550 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 1, PlsqlBlockType.PROCEDURE_DEF, "Save_Identity_Notes___", true, 52725, 52823, 0);
53.1551 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 2, PlsqlBlockType.FUNCTION_DEF, "Get_Next_Format_No___", true, 52825, 52904, 0);
53.1552 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 3, PlsqlBlockType.PROCEDURE_DEF, "Check_Cascade___", true, 52906, 53029, 0);
53.1553 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 4, PlsqlBlockType.PROCEDURE_DEF, "Import___", true, 53031, 53125, 0);
53.1554 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 5, PlsqlBlockType.PROCEDURE_DEF, "Copy___", true, 53127, 53221, 0);
53.1555 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 6, PlsqlBlockType.PROCEDURE_DEF, "Export___", true, 53223, 53319, 0);
53.1556 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 7, PlsqlBlockType.PROCEDURE_DEF, "User_Allowed___", true, 53321, 53375, 0);
53.1557 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 8, PlsqlBlockType.COMMENT, "-- IMPLEMENTATION BASE METHODS ", true, 53381, 54256, 0);
53.1558 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 9, PlsqlBlockType.FUNCTION_IMPL, "Lock_By_Id___", true, 54258, 55408, 5);
53.1559 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(9).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "lock_control", true, 54550, 54700, 0);
53.1560 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(9).getChildBlocks(), 1, PlsqlBlockType.CURSOR, "exist_control", true, 54704, 54792, 0);
53.1561 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(9).getChildBlocks(), 2, PlsqlBlockType.IF, "IF (lock_control%FOUND)", true, 54857, 54941, 0);
53.1562 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(9).getChildBlocks(), 3, PlsqlBlockType.IF, "IF (exist_control%FOUND)", true, 55027, 55108, 0);
53.1563 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(9).getChildBlocks(), 4, PlsqlBlockType.IF, "ELSE", true, 55112, 55179, 0);
53.1564 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 10, PlsqlBlockType.FUNCTION_IMPL, "Lock_By_Keys___", true, 55410, 56100, 3);
53.1565 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(10).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "lock_control", true, 55616, 55794, 0);
53.1566 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(10).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (lock_control%FOUND)", true, 55859, 55932, 0);
53.1567 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(10).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSE", true, 55936, 56002, 0);
53.1568 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 11, PlsqlBlockType.FUNCTION_IMPL, "Get_Object_By_Id___", true, 56102, 56509, 2);
53.1569 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(11).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "getrec", true, 56212, 56293, 0);
53.1570 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(11).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (getrec%NOTFOUND)", true, 56349, 56447, 0);
53.1571 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 12, PlsqlBlockType.FUNCTION_IMPL, "Get_Object_By_Keys___", true, 56511, 56964, 1);
53.1572 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(12).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "getrec", true, 56693, 56848, 0);
53.1573 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 13, PlsqlBlockType.FUNCTION_IMPL, "Check_Exist___", true, 56966, 57506, 2);
53.1574 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(13).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "exist_control", true, 57125, 57288, 0);
53.1575 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(13).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (exist_control%FOUND)", true, 57357, 57444, 0);
53.1576 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 14, PlsqlBlockType.PROCEDURE_IMPL, "Get_Id_Version_By_Keys___", true, 57508, 58032, 1);
53.1577 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(14).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_version", true, 57727, 57905, 0);
53.1578 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 15, PlsqlBlockType.COMMENT, "-- IMPLEMENTATION BASE METHODS FOR INSERT ", true, 58034, 58779, 0);
53.1579 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 16, PlsqlBlockType.PROCEDURE_IMPL, "Prepare_Insert___", true, 58781, 60476, 3);
53.1580 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(16).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Default value 'No Advice'", true, 59354, 59391, 0);
53.1581 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(16).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (party_type_ = Party_Type_API.Decode('CUSTOMER'))", true, 59479, 59904, 0);
53.1582 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(16).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSIF (party_type_ = Party_Type_API.Decode('SUPPLIER') )", true, 59908, 60142, 0);
53.1583 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 17, PlsqlBlockType.PROCEDURE_IMPL, "Unpack_Check_Insert___", true, 60479, 68330, 6);
53.1584 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks(), 0, PlsqlBlockType.WHILE_LOOP, "(Client_SYS.Get_Next_From_Attr(attr_, ptr_, name_, value_))", true, 60674, 66347, 30);
53.1585 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (name_ = 'COMPANY')", true, 60751, 60896, 0);
53.1586 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (name_ = 'IDENTITY')", true, 60903, 60971, 0);
53.1587 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks().get(0).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSIF (name_ = 'PARTY_TYPE')", true, 60978, 61318, 1);
53.1588 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (newrec_.party_type <> 'COMPANY')", true, 61172, 61318, 0);
53.1589 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks().get(0).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSIF (name_ = 'PARTY_TYPE_DB')", true, 61325, 61706, 1);
53.1590 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks().get(0).getChildBlocks().get(3).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (newrec_.party_type <> Party_Type_API.Decode('COMPANY'))", true, 61534, 61706, 0);
53.1591 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks().get(0).getChildBlocks(), 4, PlsqlBlockType.IF, "ELSIF (name_ = 'PRIORITY')", true, 61713, 61814, 0);
53.1592 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks().get(0).getChildBlocks(), 5, PlsqlBlockType.IF, "ELSIF (name_ = 'BLOCKED_FOR_PAYMENT')", true, 61821, 62054, 1);
53.1593 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks().get(0).getChildBlocks().get(5).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (value_ IS NOT NULL AND newrec_.blocked_for_payment NOT IN ('TRUE', 'FALSE'))", true, 61921, 62054, 0);
53.1594 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks().get(0).getChildBlocks(), 6, PlsqlBlockType.IF, "ELSIF (name_ = 'OTHER_PAYEE_IDENTITY')", true, 62061, 62339, 1);
53.1595 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks().get(0).getChildBlocks().get(6).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (value_ IS NOT NULL)", true, 62163, 62339, 0);
53.1596 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks().get(0).getChildBlocks(), 7, PlsqlBlockType.IF, "ELSIF (name_ = 'INTEREST_TEMPLATE')", true, 62346, 62572, 1);
53.1597 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks().get(0).getChildBlocks().get(7).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (value_ IS NOT NULL)", true, 62442, 62572, 0);
53.1598 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks().get(0).getChildBlocks(), 8, PlsqlBlockType.IF, "ELSIF (name_ = 'REMINDER_TEMPLATE')", true, 62579, 62805, 1);
53.1599 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks().get(0).getChildBlocks().get(8).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (value_ IS NOT NULL)", true, 62675, 62805, 0);
53.1600 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks().get(0).getChildBlocks(), 9, PlsqlBlockType.IF, "ELSIF (name_ = 'PAYMENT_DELAY')", true, 62812, 63133, 1);
53.1601 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks().get(0).getChildBlocks().get(9).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (TRUNC(newrec_.payment_delay) <> newrec_.payment_delay)", true, 62933, 63133, 0);
53.1602 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks().get(0).getChildBlocks(), 10, PlsqlBlockType.IF, "ELSIF (name_ = 'AMOUNT_TOLERANCE')", true, 63140, 63257, 0);
53.1603 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks().get(0).getChildBlocks(), 11, PlsqlBlockType.IF, "ELSIF (name_ = 'PERCENT_TOLERANCE')", true, 63264, 63383, 0);
53.1604 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks().get(0).getChildBlocks(), 12, PlsqlBlockType.IF, "ELSIF (name_ = 'DISC_DAYS_TOLERANCE')", true, 63390, 63513, 0);
53.1605 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks().get(0).getChildBlocks(), 13, PlsqlBlockType.IF, "ELSIF (name_ = 'NETTING_ALLOWED')", true, 63520, 63718, 1);
53.1606 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks().get(0).getChildBlocks().get(13).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (newrec_.netting_allowed NOT IN ('TRUE', 'FALSE'))", true, 63612, 63718, 0);
53.1607 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks().get(0).getChildBlocks(), 14, PlsqlBlockType.IF, "ELSIF (name_ = 'FORMAT_NO')", true, 63725, 63828, 0);
53.1608 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks().get(0).getChildBlocks(), 15, PlsqlBlockType.IF, "ELSIF (name_ = 'PAYMENT_ADVICE')", true, 63835, 64043, 1);
53.1609 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks().get(0).getChildBlocks().get(15).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (value_ IS NOT NULL)", true, 63952, 64043, 0);
53.1610 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks().get(0).getChildBlocks(), 16, PlsqlBlockType.IF, "ELSIF (name_ = 'PAYMENT_ADVICE_DB')", true, 64050, 64237, 1);
53.1611 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks().get(0).getChildBlocks().get(16).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (value_ IS NOT NULL)", true, 64143, 64237, 0);
53.1612 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks().get(0).getChildBlocks(), 17, PlsqlBlockType.IF, "ELSIF (name_ = 'DEDUCTION_GROUP')", true, 64244, 64462, 1);
53.1613 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks().get(0).getChildBlocks().get(17).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (value_ IS NOT NULL)", true, 64336, 64462, 0);
53.1614 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks().get(0).getChildBlocks(), 18, PlsqlBlockType.IF, "ELSIF (name_ = 'CORPORATION_ID')", true, 64469, 64549, 0);
53.1615 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks().get(0).getChildBlocks(), 19, PlsqlBlockType.IF, "ELSIF (name_ = 'MEMBER_ID')", true, 64556, 64626, 0);
53.1616 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks().get(0).getChildBlocks(), 20, PlsqlBlockType.IF, "ELSIF (name_ = 'SEND_REMINDER_TO_PAYER')", true, 64633, 64729, 0);
53.1617 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks().get(0).getChildBlocks(), 21, PlsqlBlockType.IF, "ELSIF (name_ = 'SEND_INTEREST_INV_TO_PAYER')", true, 64736, 64840, 0);
53.1618 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks().get(0).getChildBlocks(), 22, PlsqlBlockType.IF, "ELSIF (name_ = 'RULE_ID')", true, 64847, 65041, 1);
53.1619 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks().get(0).getChildBlocks().get(22).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (value_ IS NOT NULL)", true, 64923, 65041, 0);
53.1620 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks().get(0).getChildBlocks(), 23, PlsqlBlockType.IF, "ELSIF (name_ = 'PAYMENT_RECEIPT_TYPE')", true, 65048, 65280, 1);
53.1621 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks().get(0).getChildBlocks().get(23).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (value_ IS NOT NULL)", true, 65183, 65280, 0);
53.1622 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks().get(0).getChildBlocks(), 24, PlsqlBlockType.IF, "ELSIF (name_ = 'PAYMENT_RECEIPT_TYPE_DB')", true, 65287, 65492, 1);
53.1623 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks().get(0).getChildBlocks().get(24).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (value_ IS NOT NULL)", true, 65392, 65492, 0);
53.1624 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks().get(0).getChildBlocks(), 25, PlsqlBlockType.IF, "ELSIF (name_ = 'TEMPLATE_ID')", true, 65499, 65714, 1);
53.1625 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks().get(0).getChildBlocks().get(25).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (value_ IS NOT NULL)", true, 65583, 65714, 0);
53.1626 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks().get(0).getChildBlocks(), 26, PlsqlBlockType.IF, "ELSIF (name_ = 'CHECK_RECIPIENT')", true, 65721, 65933, 1);
53.1627 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks().get(0).getChildBlocks().get(26).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (value_ IS NOT NULL)", true, 65841, 65933, 0);
53.1628 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks().get(0).getChildBlocks(), 27, PlsqlBlockType.IF, "ELSIF (name_ = 'CHECK_RECIPIENT_DB')", true, 65940, 66130, 1);
53.1629 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks().get(0).getChildBlocks().get(27).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (value_ IS NOT NULL)", true, 66035, 66130, 0);
53.1630 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks().get(0).getChildBlocks(), 28, PlsqlBlockType.IF, "ELSIF (name_ = 'SEND_STATEMENT_OF_ACC_TO_PAYER')", true, 66137, 66249, 0);
53.1631 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks().get(0).getChildBlocks(), 29, PlsqlBlockType.IF, "ELSE", true, 66256, 66334, 0);
53.1632 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (newrec_.amount_tolerance < 0) OR (newrec_.percent_tolerance < 0) OR (newrec_.disc_days_tolerance < 0)", true, 66353, 66567, 0);
53.1633 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks(), 2, PlsqlBlockType.IF, "IF (newrec_.interest_template IS NULL)", true, 66900, 67050, 0);
53.1634 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks(), 3, PlsqlBlockType.IF, "IF (newrec_.party_type = 'SUPPLIER')", true, 67055, 67359, 0);
53.1635 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks(), 4, PlsqlBlockType.IF, "IF (newrec_.party_type = 'CUSTOMER')", true, 67363, 67977, 1);
53.1636 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks().get(4).getChildBlocks(), 0, PlsqlBlockType.IF, "IF Company_Invoice_Info_API.Get_Use_Tax_Invoice(newrec_.company)='TRUE' AND newrec_.payment_receipt_type != 'AT_MATCHING'", true, 67687, 67966, 0);
53.1637 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(17).getChildBlocks(), 5, PlsqlBlockType.IF, "IF (newrec_.identity = newrec_.other_payee_identity)", true, 68052, 68212, 0);
53.1638 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 18, PlsqlBlockType.PROCEDURE_IMPL, "Insert___", true, 68333, 70734, 2);
53.1639 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(18).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_objid", true, 68496, 68677, 0);
53.1640 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(18).getChildBlocks(), 1, PlsqlBlockType.STATEMENT, "INSERT", true, 68827, 70521, 0);
53.1641 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 19, PlsqlBlockType.COMMENT, "-- IMPLEMENTATION BASE METHODS FOR UPDATE ", true, 70736, 71320, 0);
53.1642 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 20, PlsqlBlockType.PROCEDURE_IMPL, "Unpack_Check_Update___", true, 71322, 78419, 6);
53.1643 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks(), 0, PlsqlBlockType.WHILE_LOOP, "(Client_SYS.Get_Next_From_Attr(attr_, ptr_, name_, value_))", true, 71545, 76719, 32);
53.1644 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (name_ = 'COMPANY')", true, 71622, 71702, 0);
53.1645 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (name_ = 'IDENTITY')", true, 71709, 71794, 0);
53.1646 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks().get(0).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSIF (name_ = 'PARTY_TYPE')", true, 71801, 71890, 0);
53.1647 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks().get(0).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSIF (name_ = 'PARTY_TYPE_DB')", true, 71897, 71989, 0);
53.1648 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks().get(0).getChildBlocks(), 4, PlsqlBlockType.IF, "ELSIF (name_ = 'PRIORITY')", true, 71996, 72097, 0);
53.1649 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks().get(0).getChildBlocks(), 5, PlsqlBlockType.IF, "ELSIF (name_ = 'BLOCKED_FOR_PAYMENT')", true, 72104, 72337, 1);
53.1650 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks().get(0).getChildBlocks().get(5).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (value_ IS NOT NULL AND newrec_.blocked_for_payment NOT IN ('TRUE', 'FALSE'))", true, 72204, 72337, 0);
53.1651 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks().get(0).getChildBlocks(), 6, PlsqlBlockType.IF, "ELSIF (name_ = 'OTHER_PAYEE_IDENTITY')", true, 72344, 72622, 1);
53.1652 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks().get(0).getChildBlocks().get(6).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (value_ IS NOT NULL)", true, 72446, 72622, 0);
53.1653 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks().get(0).getChildBlocks(), 7, PlsqlBlockType.IF, "ELSIF (name_ = 'INTEREST_TEMPLATE')", true, 72629, 72855, 1);
53.1654 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks().get(0).getChildBlocks().get(7).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (value_ IS NOT NULL)", true, 72725, 72855, 0);
53.1655 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks().get(0).getChildBlocks(), 8, PlsqlBlockType.IF, "ELSIF (name_ = 'REMINDER_TEMPLATE')", true, 72862, 73088, 1);
53.1656 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks().get(0).getChildBlocks().get(8).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (value_ IS NOT NULL)", true, 72958, 73088, 0);
53.1657 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks().get(0).getChildBlocks(), 9, PlsqlBlockType.IF, "ELSIF (name_ = 'PAYMENT_DELAY')", true, 73095, 73416, 1);
53.1658 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks().get(0).getChildBlocks().get(9).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (TRUNC(newrec_.payment_delay) <> newrec_.payment_delay)", true, 73216, 73416, 0);
53.1659 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks().get(0).getChildBlocks(), 10, PlsqlBlockType.IF, "ELSIF (name_ = 'AMOUNT_TOLERANCE')", true, 73423, 73540, 0);
53.1660 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks().get(0).getChildBlocks(), 11, PlsqlBlockType.IF, "ELSIF (name_ = 'PERCENT_TOLERANCE')", true, 73547, 73666, 0);
53.1661 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks().get(0).getChildBlocks(), 12, PlsqlBlockType.IF, "ELSIF (name_ = 'DISC_DAYS_TOLERANCE')", true, 73673, 73796, 0);
53.1662 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks().get(0).getChildBlocks(), 13, PlsqlBlockType.IF, "ELSIF (name_ = 'NETTING_ALLOWED')", true, 73803, 74001, 1);
53.1663 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks().get(0).getChildBlocks().get(13).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (newrec_.netting_allowed NOT IN ('TRUE', 'FALSE'))", true, 73895, 74001, 0);
53.1664 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks().get(0).getChildBlocks(), 14, PlsqlBlockType.IF, "ELSIF (name_ = 'FORMAT_NO')", true, 74008, 74095, 0);
53.1665 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks().get(0).getChildBlocks(), 15, PlsqlBlockType.IF, "ELSIF (name_ = 'PAYMENT_ADVICE')", true, 74102, 74310, 1);
53.1666 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks().get(0).getChildBlocks().get(15).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (value_ IS NOT NULL)", true, 74219, 74310, 0);
53.1667 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks().get(0).getChildBlocks(), 16, PlsqlBlockType.IF, "ELSIF (name_ = 'PAYMENT_ADVICE_DB')", true, 74317, 74504, 1);
53.1668 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks().get(0).getChildBlocks().get(16).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (value_ IS NOT NULL)", true, 74410, 74504, 0);
53.1669 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks().get(0).getChildBlocks(), 17, PlsqlBlockType.IF, "ELSIF (name_ = 'DEDUCTION_GROUP')", true, 74511, 74729, 1);
53.1670 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks().get(0).getChildBlocks().get(17).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (value_ IS NOT NULL)", true, 74603, 74729, 0);
53.1671 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks().get(0).getChildBlocks(), 18, PlsqlBlockType.IF, "ELSIF (name_ = 'CORPORATION_ID')", true, 74736, 74816, 0);
53.1672 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks().get(0).getChildBlocks(), 19, PlsqlBlockType.IF, "ELSIF (name_ = 'MEMBER_ID')", true, 74823, 74893, 0);
53.1673 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks().get(0).getChildBlocks(), 20, PlsqlBlockType.IF, "ELSIF (name_ = 'SEND_REMINDER_TO_PAYER')", true, 74900, 74996, 0);
53.1674 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks().get(0).getChildBlocks(), 21, PlsqlBlockType.IF, "ELSIF (name_ = 'SEND_INTEREST_INV_TO_PAYER')", true, 75003, 75107, 0);
53.1675 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks().get(0).getChildBlocks(), 22, PlsqlBlockType.IF, "ELSIF (name_ = 'NOTE')", true, 75114, 75156, 0);
53.1676 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks().get(0).getChildBlocks(), 23, PlsqlBlockType.IF, "ELSIF (name_ = 'NOTE_UPDATE')", true, 75163, 75212, 0);
53.1677 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks().get(0).getChildBlocks(), 24, PlsqlBlockType.IF, "ELSIF (name_ = 'RULE_ID')", true, 75219, 75413, 1);
53.1678 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks().get(0).getChildBlocks().get(24).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (value_ IS NOT NULL)", true, 75295, 75413, 0);
53.1679 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks().get(0).getChildBlocks(), 25, PlsqlBlockType.IF, "ELSIF (name_ = 'PAYMENT_RECEIPT_TYPE')", true, 75420, 75652, 1);
53.1680 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks().get(0).getChildBlocks().get(25).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (value_ IS NOT NULL)", true, 75555, 75652, 0);
53.1681 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks().get(0).getChildBlocks(), 26, PlsqlBlockType.IF, "ELSIF (name_ = 'PAYMENT_RECEIPT_TYPE_DB')", true, 75659, 75864, 1);
53.1682 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks().get(0).getChildBlocks().get(26).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (value_ IS NOT NULL)", true, 75764, 75864, 0);
53.1683 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks().get(0).getChildBlocks(), 27, PlsqlBlockType.IF, "ELSIF (name_ = 'TEMPLATE_ID')", true, 75871, 76086, 1);
53.1684 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks().get(0).getChildBlocks().get(27).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (value_ IS NOT NULL)", true, 75955, 76086, 0);
53.1685 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks().get(0).getChildBlocks(), 28, PlsqlBlockType.IF, "ELSIF (name_ = 'CHECK_RECIPIENT')", true, 76093, 76305, 1);
53.1686 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks().get(0).getChildBlocks().get(28).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (value_ IS NOT NULL)", true, 76213, 76305, 0);
53.1687 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks().get(0).getChildBlocks(), 29, PlsqlBlockType.IF, "ELSIF (name_ = 'CHECK_RECIPIENT_DB')", true, 76312, 76502, 1);
53.1688 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks().get(0).getChildBlocks().get(29).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (value_ IS NOT NULL)", true, 76407, 76502, 0);
53.1689 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks().get(0).getChildBlocks(), 30, PlsqlBlockType.IF, "ELSIF (name_ = 'SEND_STATEMENT_OF_ACC_TO_PAYER')", true, 76509, 76621, 0);
53.1690 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks().get(0).getChildBlocks(), 31, PlsqlBlockType.IF, "ELSE", true, 76628, 76706, 0);
53.1691 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (newrec_.amount_tolerance < 0) OR (newrec_.percent_tolerance < 0) OR (newrec_.disc_days_tolerance < 0)", true, 76725, 76939, 0);
53.1692 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks(), 2, PlsqlBlockType.IF, "IF (newrec_.interest_template IS NULL)", true, 77061, 77211, 0);
53.1693 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks(), 3, PlsqlBlockType.IF, "IF (newrec_.party_type = 'SUPPLIER')", true, 77216, 77520, 0);
53.1694 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks(), 4, PlsqlBlockType.IF, "IF (newrec_.party_type = 'CUSTOMER')", true, 77524, 78138, 1);
53.1695 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks().get(4).getChildBlocks(), 0, PlsqlBlockType.IF, "IF Company_Invoice_Info_API.Get_Use_Tax_Invoice(newrec_.company)='TRUE' AND newrec_.payment_receipt_type != 'AT_MATCHING'", true, 77848, 78127, 0);
53.1696 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(20).getChildBlocks(), 5, PlsqlBlockType.IF, "IF (newrec_.identity = newrec_.other_payee_identity)", true, 78142, 78302, 0);
53.1697 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 21, PlsqlBlockType.PROCEDURE_IMPL, "Update___", true, 78422, 82036, 2);
53.1698 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(21).getChildBlocks(), 0, PlsqlBlockType.IF, "IF by_keys_", true, 78770, 80404, 1);
53.1699 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(21).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE identity_pay_info_tab", true, 78793, 80403, 0);
53.1700 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(21).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 80408, 81941, 1);
53.1701 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(21).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE identity_pay_info_tab", true, 80419, 81929, 0);
53.1702 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 22, PlsqlBlockType.COMMENT, "-- IMPLEMENTATION BASE METHODS FOR DELETE ", true, 82038, 82635, 0);
53.1703 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 23, PlsqlBlockType.PROCEDURE_IMPL, "Check_Delete___", true, 82637, 82921, 0);
53.1704 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 24, PlsqlBlockType.PROCEDURE_IMPL, "Delete___", true, 82924, 83287, 1);
53.1705 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(24).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "DELETE", true, 83203, 83271, 0);
53.1706 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 25, PlsqlBlockType.COMMENT, "-- PRIVATE BASE METHODS ", true, 83289, 85590, 0);
53.1707 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 26, PlsqlBlockType.PROCEDURE_IMPL, "Lock__", true, 85592, 85887, 0);
53.1708 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 27, PlsqlBlockType.PROCEDURE_IMPL, "New__", true, 85890, 86494, 3);
53.1709 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(27).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (action_ = 'PREPARE')", true, 86163, 86224, 0);
53.1710 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(27).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (action_ = 'CHECK')", true, 86228, 86304, 0);
53.1711 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(27).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSIF (action_ = 'DO')", true, 86308, 86446, 0);
53.1712 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 28, PlsqlBlockType.PROCEDURE_IMPL, "Modify__", true, 86496, 87267, 2);
53.1713 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(28).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (action_ = 'CHECK')", true, 86802, 86929, 0);
53.1714 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(28).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (action_ = 'DO')", true, 86933, 87216, 0);
53.1715 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 29, PlsqlBlockType.PROCEDURE_IMPL, "Remove__", true, 87270, 87822, 2);
53.1716 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(29).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (action_ = 'CHECK')", true, 87505, 87610, 0);
53.1717 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(29).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (action_ = 'DO')", true, 87614, 87771, 0);
53.1718 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 30, PlsqlBlockType.COMMENT, "-- PUBLIC BASE METHODS ", true, 87824, 88277, 0);
53.1719 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 31, PlsqlBlockType.PROCEDURE_IMPL, "Exist", true, 88279, 89266, 1);
53.1720 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(31).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (NOT Check_Exist___(company_, identity_, Party_Type_API.Encode(party_type_)))", true, 88455, 89255, 4);
53.1721 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(31).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Bug 72612, Begin, Modified IF condition", true, 88547, 88589, 0);
53.1722 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(31).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "IF Party_Type_API.Encode(party_type_) IN ('CUSTOMER', 'SUPPLIER')", true, 88596, 88947, 1);
53.1723 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(31).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Bug 72612, End.", true, 88830, 88947, 0);
53.1724 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(31).getChildBlocks().get(0).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSIF (Party_Type_API.Encode(party_type_) = 'COMPANY')", true, 88957, 89172, 1);
53.1725 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(31).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Bug 72612, End.", true, 89154, 89172, 0);
53.1726 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(31).getChildBlocks().get(0).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSE", true, 89179, 89244, 0);
53.1727 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 32, PlsqlBlockType.PROCEDURE_IMPL, "Exist_Db", true, 89269, 89871, 1);
53.1728 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(32).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (NOT Check_Exist___(company_, identity_, party_type_db_))", true, 89457, 89857, 2);
53.1729 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(32).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF party_type_db_ IN ('CUSTOMER', 'SUPPLIER', 'COMPANY')", true, 89529, 89774, 0);
53.1730 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(32).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 89781, 89846, 0);
53.1731 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 33, PlsqlBlockType.COMMENT, "-- LU SPECIFIC IMPLEMENTATION METHODS ", true, 89873, 90106, 0);
53.1732 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 34, PlsqlBlockType.PROCEDURE_IMPL, "Save_Identity_Notes___", true, 90107, 90747, 1);
53.1733 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(34).getChildBlocks(), 0, PlsqlBlockType.IF, "IF ((note_ IS NULL) AND (note_update_ IS NULL))", true, 90398, 90475, 0);
53.1734 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 35, PlsqlBlockType.FUNCTION_IMPL, "Get_Next_Format_No___", true, 90749, 91157, 2);
53.1735 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(35).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "rec", true, 90834, 90929, 0);
53.1736 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(35).getChildBlocks(), 1, PlsqlBlockType.IF, "IF ( rec%NOTFOUND )", true, 91009, 91077, 0);
53.1737 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 36, PlsqlBlockType.PROCEDURE_IMPL, "Check_Cascade___", true, 91159, 93974, 6);
53.1738 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(36).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_ledger_item1", true, 91288, 91518, 0);
53.1739 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(36).getChildBlocks(), 1, PlsqlBlockType.CURSOR, "get_ledger_item2", true, 91523, 91765, 0);
53.1740 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(36).getChildBlocks(), 2, PlsqlBlockType.CURSOR, "get_ledger_item3", true, 91770, 92012, 0);
53.1741 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(36).getChildBlocks(), 3, PlsqlBlockType.FOR_LOOP, "ledger_item_ IN get_ledger_item1", true, 92022, 92662, 3);
53.1742 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(36).getChildBlocks().get(3).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (ledger_item_.rowtype = 'InvoiceLedgerItem')", true, 92070, 92260, 0);
53.1743 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(36).getChildBlocks().get(3).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (ledger_item_.rowtype = 'OnAccountLedgerItem')", true, 92267, 92479, 0);
53.1744 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(36).getChildBlocks().get(3).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSE", true, 92486, 92649, 0);
53.1745 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(36).getChildBlocks(), 4, PlsqlBlockType.FOR_LOOP, "ledger_item_ IN get_ledger_item2", true, 92667, 93307, 3);
53.1746 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(36).getChildBlocks().get(4).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (ledger_item_.rowtype = 'InvoiceLedgerItem')", true, 92715, 92905, 0);
53.1747 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(36).getChildBlocks().get(4).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (ledger_item_.rowtype = 'OnAccountLedgerItem')", true, 92912, 93124, 0);
53.1748 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(36).getChildBlocks().get(4).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSE", true, 93131, 93294, 0);
53.1749 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(36).getChildBlocks(), 5, PlsqlBlockType.FOR_LOOP, "ledger_item_ IN get_ledger_item3", true, 93312, 93952, 3);
53.1750 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(36).getChildBlocks().get(5).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (ledger_item_.rowtype = 'InvoiceLedgerItem')", true, 93360, 93550, 0);
53.1751 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(36).getChildBlocks().get(5).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (ledger_item_.rowtype = 'OnAccountLedgerItem')", true, 93557, 93769, 0);
53.1752 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(36).getChildBlocks().get(5).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSE", true, 93776, 93939, 0);
53.1753 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 37, PlsqlBlockType.PROCEDURE_IMPL, "Import___", true, 93976, 101666, 8);
53.1754 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(37).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_data", true, 94076, 94635, 0);
53.1755 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(37).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- Bug 74138, Begin, Added condition to fetch data when party_type = 'COMPANY' ", true, 94640, 94720, 0);
53.1756 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(37).getChildBlocks(), 2, PlsqlBlockType.CURSOR, "exist_company", true, 94724, 94865, 0);
53.1757 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(37).getChildBlocks(), 3, PlsqlBlockType.COMMENT, "-- Bug 74138, End", true, 94869, 94886, 0);
53.1758 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(37).getChildBlocks(), 4, PlsqlBlockType.IF, "IF (NOT update_by_key_)", true, 95366, 95609, 1);
53.1759 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(37).getChildBlocks().get(4).getChildBlocks(), 0, PlsqlBlockType.IF, "IF ( exist_company%NOTFOUND )", true, 95492, 95598, 0);
53.1760 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(37).getChildBlocks(), 5, PlsqlBlockType.IF, "IF ( update_by_key_ OR empty_lu_ )", true, 95614, 101074, 3);
53.1761 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(37).getChildBlocks().get(5).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "rec_ IN get_data", true, 95660, 100514, 12);
53.1762 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(37).getChildBlocks().get(5).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (newrec_.blocked_for_payment IS NOT NULL AND newrec_.blocked_for_payment NOT IN ('TRUE', 'FALSE'))", true, 97341, 97565, 0);
53.1763 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(37).getChildBlocks().get(5).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (newrec_.other_payee_identity IS NOT NULL)", true, 97578, 97782, 0);
53.1764 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(37).getChildBlocks().get(5).getChildBlocks().get(0).getChildBlocks(), 2, PlsqlBlockType.IF, "IF (newrec_.interest_template IS NOT NULL)", true, 97795, 97950, 0);
53.1765 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(37).getChildBlocks().get(5).getChildBlocks().get(0).getChildBlocks(), 3, PlsqlBlockType.IF, "IF (newrec_.reminder_template IS NOT NULL)", true, 97963, 98118, 0);
53.1766 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(37).getChildBlocks().get(5).getChildBlocks().get(0).getChildBlocks(), 4, PlsqlBlockType.IF, "IF (TRUNC(newrec_.payment_delay) <> newrec_.payment_delay)", true, 98131, 98337, 0);
53.1767 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(37).getChildBlocks().get(5).getChildBlocks().get(0).getChildBlocks(), 5, PlsqlBlockType.IF, "IF (newrec_.netting_allowed NOT IN ('TRUE', 'FALSE'))", true, 98350, 98526, 0);
53.1768 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(37).getChildBlocks().get(5).getChildBlocks().get(0).getChildBlocks(), 6, PlsqlBlockType.IF, "IF (newrec_.payment_advice IS NOT NULL)", true, 98539, 98671, 0);
53.1769 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(37).getChildBlocks().get(5).getChildBlocks().get(0).getChildBlocks(), 7, PlsqlBlockType.IF, "IF (newrec_.deduction_group IS NOT NULL)", true, 98684, 98833, 0);
53.1770 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(37).getChildBlocks().get(5).getChildBlocks().get(0).getChildBlocks(), 8, PlsqlBlockType.IF, "IF (newrec_.payment_receipt_type IS NOT NULL)", true, 98846, 98996, 0);
53.1771 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(37).getChildBlocks().get(5).getChildBlocks().get(0).getChildBlocks(), 9, PlsqlBlockType.IF, "IF (newrec_.party_type = 'SUPPLIER')", true, 99339, 99584, 0);
53.1772 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(37).getChildBlocks().get(5).getChildBlocks().get(0).getChildBlocks(), 10, PlsqlBlockType.IF, "IF (newrec_.party_type = 'CUSTOMER')", true, 99597, 99961, 0);
53.1773 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(37).getChildBlocks().get(5).getChildBlocks().get(0).getChildBlocks(), 11, PlsqlBlockType.IF, "IF (newrec_.identity = newrec_.other_payee_identity)", true, 100054, 100232, 0);
53.1774 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(37).getChildBlocks().get(5).getChildBlocks(), 1, PlsqlBlockType.IF, "IF ( i_ = 0 )", true, 100521, 100747, 0);
53.1775 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(37).getChildBlocks().get(5).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSE", true, 100754, 101063, 2);
53.1776 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(37).getChildBlocks().get(5).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.IF, "IF msg_ IS NULL", true, 100768, 100904, 0);
53.1777 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(37).getChildBlocks().get(5).getChildBlocks().get(2).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 100914, 101049, 0);
53.1778 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(37).getChildBlocks(), 6, PlsqlBlockType.COMMENT, "-- This statement is to add to the log that the Create company process for LUs is finished if", true, 101078, 101215, 0);
53.1779 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(37).getChildBlocks(), 7, PlsqlBlockType.IF, "IF ( NOT update_by_key_ AND NOT empty_lu_ )", true, 101219, 101388, 0);
53.1780 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 38, PlsqlBlockType.PROCEDURE_IMPL, "Copy___", true, 101669, 105604, 6);
53.1781 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(38).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "exist_company", true, 101912, 102017, 0);
53.1782 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(38).getChildBlocks(), 1, PlsqlBlockType.CURSOR, "get_data", true, 102022, 102462, 0);
53.1783 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(38).getChildBlocks(), 2, PlsqlBlockType.IF, "IF (NOT update_by_key_)", true, 102630, 102873, 1);
53.1784 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(38).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.IF, "IF ( exist_company%NOTFOUND )", true, 102756, 102862, 0);
53.1785 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(38).getChildBlocks(), 3, PlsqlBlockType.IF, "IF ( update_by_key_ OR empty_lu_ )", true, 102878, 105014, 1);
53.1786 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(38).getChildBlocks().get(3).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "rec_ IN get_data", true, 102924, 104893, 1);
53.1787 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(38).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "INSERT", true, 102977, 104862, 0);
53.1788 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(38).getChildBlocks(), 4, PlsqlBlockType.COMMENT, "-- This statement is to add to the log that the Create company process for LUs is finished if", true, 105018, 105155, 0);
53.1789 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(38).getChildBlocks(), 5, PlsqlBlockType.IF, "IF ( NOT update_by_key_ AND NOT empty_lu_ )", true, 105159, 105328, 0);
53.1790 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 39, PlsqlBlockType.PROCEDURE_IMPL, "Export___", true, 105608, 107379, 2);
53.1791 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(39).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_data", true, 105805, 105944, 0);
53.1792 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(39).getChildBlocks(), 1, PlsqlBlockType.FOR_LOOP, "pctrec_ IN get_data", true, 106019, 107364, 0);
53.1793 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 40, PlsqlBlockType.COMMENT, "-- LU SPECIFIC PRIVATE METHODS ", true, 107381, 107614, 0);
53.1794 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 41, PlsqlBlockType.PROCEDURE_IMPL, "Check_Cascade_Customer__", true, 107616, 108337, 2);
53.1795 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(41).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "customer_in_company", true, 107682, 107919, 0);
53.1796 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(41).getChildBlocks(), 1, PlsqlBlockType.FOR_LOOP, "comp_ IN customer_in_company (identity_, party_type_db_)", true, 108163, 108307, 0);
53.1797 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 42, PlsqlBlockType.PROCEDURE_IMPL, "Check_Cascade_Supplier__", true, 108339, 109060, 2);
53.1798 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(42).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "supplier_in_company", true, 108405, 108642, 0);
53.1799 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(42).getChildBlocks(), 1, PlsqlBlockType.FOR_LOOP, "comp_ IN supplier_in_company (identity_, party_type_db_)", true, 108886, 109030, 0);
53.1800 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 43, PlsqlBlockType.PROCEDURE_IMPL, "Cascade_Delete_Customer__", true, 109062, 109903, 2);
53.1801 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(43).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "customer_in_company", true, 109234, 109520, 0);
53.1802 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(43).getChildBlocks(), 1, PlsqlBlockType.FOR_LOOP, "comp_ IN customer_in_company (identity_, party_type_db_)", true, 109733, 109871, 0);
53.1803 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 44, PlsqlBlockType.PROCEDURE_IMPL, "Cascade_Delete_Supplier__", true, 109905, 110746, 2);
53.1804 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(44).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "supplier_in_company", true, 110077, 110363, 0);
53.1805 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(44).getChildBlocks(), 1, PlsqlBlockType.FOR_LOOP, "comp_ IN supplier_in_company (identity_, party_type_db_)", true, 110576, 110714, 0);
53.1806 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 45, PlsqlBlockType.FUNCTION_IMPL, "Create_Other_Payee_Attr__", true, 110748, 111408, 2);
53.1807 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(45).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_supplier", true, 110893, 111096, 0);
53.1808 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(45).getChildBlocks(), 1, PlsqlBlockType.FOR_LOOP, "supplier_info_ IN get_supplier", true, 111211, 111353, 0);
53.1809 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 46, PlsqlBlockType.FUNCTION_IMPL, "Create_Cus_Other_Payee_Attr__", true, 111410, 112059, 2);
53.1810 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(46).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_customer", true, 111559, 111739, 0);
53.1811 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(46).getChildBlocks(), 1, PlsqlBlockType.FOR_LOOP, "customer_info_ IN get_customer", true, 111858, 112000, 0);
53.1812 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 47, PlsqlBlockType.COMMENT, "-- LU SPECIFIC PROTECTED METHODS ", true, 112060, 112529, 0);
53.1813 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 48, PlsqlBlockType.FUNCTION_IMPL, "Get_Priority", true, 112531, 112802, 0);
53.1814 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 49, PlsqlBlockType.FUNCTION_IMPL, "Get_Blocked_For_Payment", true, 112804, 113109, 0);
53.1815 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 50, PlsqlBlockType.FUNCTION_IMPL, "Get_Payment_Delay", true, 113111, 113404, 0);
53.1816 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 51, PlsqlBlockType.FUNCTION_IMPL, "Get_Amount_Tolerance", true, 113406, 113700, 0);
53.1817 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 52, PlsqlBlockType.FUNCTION_IMPL, "Get_Percent_Tolerance", true, 113702, 113999, 0);
53.1818 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 53, PlsqlBlockType.FUNCTION_IMPL, "Get_Disc_Days_Tolerance", true, 114001, 114469, 1);
53.1819 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(53).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_attr", true, 114179, 114350, 0);
53.1820 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 54, PlsqlBlockType.FUNCTION_IMPL, "Get_Netting_Allowed", true, 114471, 115095, 2);
53.1821 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(54).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_attr", true, 114648, 114847, 0);
53.1822 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(54).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (NOT Company_Finance_API.Is_User_Authorized(company_))", true, 114857, 114950, 0);
53.1823 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 55, PlsqlBlockType.FUNCTION_IMPL, "Get_Check_Recipient", true, 115097, 115647, 1);
53.1824 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(55).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_attr", true, 115269, 115468, 0);
53.1825 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 56, PlsqlBlockType.FUNCTION_IMPL, "Get_Check_Recipient_Db", true, 115649, 116182, 1);
53.1826 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(56).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_attr", true, 115829, 116028, 0);
53.1827 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 57, PlsqlBlockType.FUNCTION_IMPL, "Get_Next_Pay_Matching_Id", true, 116184, 116803, 1);
53.1828 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(57).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE identity_pay_info_tab", true, 116583, 116752, 0);
53.1829 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 58, PlsqlBlockType.FUNCTION_IMPL, "Get_Payment_Matching_Id", true, 116805, 117363, 1);
53.1830 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(58).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_matching_id", true, 116947, 117124, 0);
53.1831 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 59, PlsqlBlockType.FUNCTION_IMPL, "Get_Format_No", true, 117365, 117963, 2);
53.1832 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(59).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_attr", true, 117528, 117721, 0);
53.1833 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(59).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (NOT Company_Finance_API.Is_User_Authorized(company_))", true, 117731, 117824, 0);
53.1834 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 60, PlsqlBlockType.FUNCTION_IMPL, "Get_Other_Payee_Ded_Group_Desc", true, 117965, 118526, 1);
53.1835 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(60).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (deduction_group_ IS NULL)", true, 118351, 118415, 0);
53.1836 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 61, PlsqlBlockType.FUNCTION_IMPL, "Get_Deduction_Group", true, 118528, 119152, 2);
53.1837 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(61).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_attr", true, 118705, 118904, 0);
53.1838 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(61).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (NOT Company_Finance_API.Is_User_Authorized(company_))", true, 118914, 119007, 0);
53.1839 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 62, PlsqlBlockType.FUNCTION_IMPL, "Get_Template_Id", true, 119154, 119597, 1);
53.1840 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(62).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_attr", true, 119323, 119486, 0);
53.1841 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 63, PlsqlBlockType.FUNCTION_IMPL, "Get_Corporation_Id", true, 119599, 120219, 2);
53.1842 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(63).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_attr", true, 119774, 119972, 0);
53.1843 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(63).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (NOT Company_Finance_API.Is_User_Authorized(company_))", true, 119982, 120075, 0);
53.1844 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 64, PlsqlBlockType.FUNCTION_IMPL, "Get_Member_Id", true, 120221, 120821, 2);
53.1845 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(64).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_attr", true, 120386, 120579, 0);
53.1846 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(64).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (NOT Company_Finance_API.Is_User_Authorized(company_))", true, 120589, 120682, 0);
53.1847 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 65, PlsqlBlockType.FUNCTION_IMPL, "Get_Send_Reminder_To_Payer", true, 120823, 121475, 2);
53.1848 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(65).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_attr", true, 121014, 121220, 0);
53.1849 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(65).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (NOT Company_Finance_API.Is_User_Authorized(company_))", true, 121230, 121323, 0);
53.1850 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 66, PlsqlBlockType.FUNCTION_IMPL, "Get_Send_Interest_Inv_To_Payer", true, 121477, 122145, 2);
53.1851 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(66).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_attr", true, 121676, 121886, 0);
53.1852 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(66).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (NOT Company_Finance_API.Is_User_Authorized(company_))", true, 121896, 121989, 0);
53.1853 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 67, PlsqlBlockType.FUNCTION_IMPL, "Get_Payment_Advice", true, 122147, 122789, 2);
53.1854 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(67).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_attr", true, 122317, 122515, 0);
53.1855 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(67).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (NOT Company_Finance_API.Is_User_Authorized(company_))", true, 122525, 122618, 0);
53.1856 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 68, PlsqlBlockType.FUNCTION_IMPL, "Get_Payment_Advice_Db", true, 122791, 123412, 2);
53.1857 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(68).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_attr", true, 122964, 123162, 0);
53.1858 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(68).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (NOT Company_Finance_API.Is_User_Authorized(company_))", true, 123172, 123265, 0);
53.1859 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 69, PlsqlBlockType.FUNCTION_IMPL, "Get_Other_Payee_Identity", true, 123415, 123724, 0);
53.1860 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 70, PlsqlBlockType.FUNCTION_IMPL, "Get_Interest_Template", true, 123726, 124024, 0);
53.1861 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 71, PlsqlBlockType.FUNCTION_IMPL, "Get_Reminder_Template", true, 124026, 124325, 0);
53.1862 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 72, PlsqlBlockType.FUNCTION_IMPL, "Get_Rule_Id", true, 124327, 124919, 2);
53.1863 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(72).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_attr", true, 124488, 124679, 0);
53.1864 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(72).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (NOT Company_Finance_API.Is_User_Authorized(company_))", true, 124689, 124782, 0);
53.1865 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 73, PlsqlBlockType.FUNCTION_IMPL, "Get_Payment_Receipt_Type", true, 124921, 125501, 1);
53.1866 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(73).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_attr", true, 125108, 125312, 0);
53.1867 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 74, PlsqlBlockType.FUNCTION_IMPL, "Get_Payment_Receipt_Type_Db", true, 125503, 126056, 1);
53.1868 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(74).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_attr", true, 125693, 125897, 0);
53.1869 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 75, PlsqlBlockType.PROCEDURE_IMPL, "Instance_Exists", true, 126058, 126714, 3);
53.1870 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(75).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "getrec", true, 126209, 126404, 0);
53.1871 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(75).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (getrec%FOUND)", true, 126588, 126633, 0);
53.1872 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(75).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSE", true, 126637, 126676, 0);
53.1873 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 76, PlsqlBlockType.PROCEDURE_IMPL, "Create_Party_Type_Id", true, 126716, 127001, 0);
53.1874 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 77, PlsqlBlockType.PROCEDURE_IMPL, "Create_Identity_Pay_Info", true, 127003, 129220, 2);
53.1875 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(77).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (party_type_db_ = 'SUPPLIER')", true, 127803, 128026, 0);
53.1876 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(77).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (party_type_db_ = 'CUSTOMER')", true, 128030, 128847, 6);
53.1877 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(77).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (def_template_ IS NULL)", true, 128154, 128219, 0);
53.1878 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(77).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 128226, 128320, 0);
53.1879 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(77).getChildBlocks().get(1).getChildBlocks(), 2, PlsqlBlockType.IF, "IF (def_template_ IS NULL)", true, 128404, 128469, 0);
53.1880 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(77).getChildBlocks().get(1).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSE", true, 128476, 128570, 0);
53.1881 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(77).getChildBlocks().get(1).getChildBlocks(), 4, PlsqlBlockType.IF, "IF Company_Invoice_Info_API.Get_Use_Tax_Invoice(company_) = 'TRUE'", true, 128577, 128730, 0);
53.1882 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(77).getChildBlocks().get(1).getChildBlocks(), 5, PlsqlBlockType.IF, "ELSE", true, 128737, 128836, 0);
53.1883 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 78, PlsqlBlockType.FUNCTION_IMPL, "Validate_Identity", true, 129222, 129847, 2);
53.1884 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(78).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "exist_identity", true, 129376, 129578, 0);
53.1885 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(78).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (exist_identity %FOUND)", true, 129685, 129778, 0);
53.1886 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 79, PlsqlBlockType.PROCEDURE_IMPL, "Fetch_Tolerance", true, 129849, 132997, 8);
53.1887 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(79).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_identity_tolerance_", true, 130480, 130690, 0);
53.1888 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(79).getChildBlocks(), 1, PlsqlBlockType.CURSOR, "get_company_tolerance_", true, 130695, 130843, 0);
53.1889 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(79).getChildBlocks(), 2, PlsqlBlockType.IF, "IF party_type_db_ = 'CUSTOMER'", true, 130978, 131477, 2);
53.1890 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(79).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- general payment tolerance", true, 131185, 131213, 0);
53.1891 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(79).getChildBlocks().get(2).getChildBlocks(), 1, PlsqlBlockType.IF, "IF percent_tolerance_ IS NULL AND amount_tolerance_acc_curr_ IS NULL", true, 131220, 131477, 0);
53.1892 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(79).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSIF party_type_db_ = 'SUPPLIER'", true, 131482, 131733, 1);
53.1893 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(79).getChildBlocks().get(3).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- general payment tolerance", true, 131524, 131552, 0);
53.1894 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(79).getChildBlocks(), 4, PlsqlBlockType.IF, "IF action_ = 'NOCALCULATE'", true, 131738, 131849, 0);
53.1895 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(79).getChildBlocks(), 5, PlsqlBlockType.IF, "IF acc_currency_ = currency_", true, 131924, 132037, 0);
53.1896 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(79).getChildBlocks(), 6, PlsqlBlockType.IF, "IF ( (div_factor_ IS NULL) OR (currency_rate_ IS NULL))", true, 132105, 132443, 0);
53.1897 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(79).getChildBlocks(), 7, PlsqlBlockType.IF, "IF (date_ IS NOT NULL) AND ((div_factor_ IS NULL) OR (currency_rate_ IS NULL))", true, 132447, 132795, 0);
53.1898 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 80, PlsqlBlockType.PROCEDURE_IMPL, "Copy_Payway_Per_Identity___", true, 132999, 133806, 2);
53.1899 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(80).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_pay_way", true, 133202, 133393, 0);
53.1900 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(80).getChildBlocks(), 1, PlsqlBlockType.FOR_LOOP, "pay_way_ IN get_pay_way", true, 133403, 133773, 1);
53.1901 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(80).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "INSERT INTO PAYMENT_WAY_PER_IDENTITY_TAB (company, identity, party_type,", true, 133444, 133759, 0);
53.1902 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 81, PlsqlBlockType.PROCEDURE_IMPL, "Copy_Payment_Address___", true, 133808, 135730, 2);
53.1903 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(81).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_pay_addr", true, 134007, 134190, 0);
53.1904 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(81).getChildBlocks(), 1, PlsqlBlockType.FOR_LOOP, "pay_addr_ IN get_pay_addr", true, 134200, 135701, 3);
53.1905 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(81).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Bug 72177, Begin, Added bic_code", true, 134241, 134276, 0);
53.1906 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(81).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.STATEMENT, "INSERT INTO PAYMENT_ADDRESS_TAB (company, identity, party_type, way_id,", true, 134283, 135662, 0);
53.1907 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(81).getChildBlocks().get(1).getChildBlocks(), 2, PlsqlBlockType.COMMENT, "-- Bug 72177, End", true, 135670, 135687, 0);
53.1908 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 82, PlsqlBlockType.PROCEDURE_IMPL, "Copy_Customer", true, 135732, 139718, 4);
53.1909 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(82).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_customer", true, 135882, 136076, 0);
53.1910 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(82).getChildBlocks(), 1, PlsqlBlockType.CURSOR, "get_credit_info", true, 136081, 136239, 0);
53.1911 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(82).getChildBlocks(), 2, PlsqlBlockType.FOR_LOOP, "customer_ IN get_customer", true, 136335, 138536, 3);
53.1912 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(82).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Bug 73125, Begin, Added template_id ", true, 136430, 136469, 0);
53.1913 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(82).getChildBlocks().get(2).getChildBlocks(), 1, PlsqlBlockType.STATEMENT, "INSERT INTO IDENTITY_PAY_INFO_TAB (company, identity, party_type,", true, 136476, 138070, 0);
53.1914 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(82).getChildBlocks().get(2).getChildBlocks(), 2, PlsqlBlockType.COMMENT, "-- Bug 73125, End", true, 138078, 138095, 0);
53.1915 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(82).getChildBlocks(), 3, PlsqlBlockType.FOR_LOOP, "credit_ IN get_credit_info", true, 138541, 139699, 1);
53.1916 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(82).getChildBlocks().get(3).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "INSERT INTO CUSTOMER_CREDIT_INFO_TAB (company, identity, last4q_sales,", true, 138583, 139685, 0);
53.1917 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 83, PlsqlBlockType.PROCEDURE_IMPL, "Copy_Supplier", true, 139720, 141928, 2);
53.1918 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(83).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_supplier", true, 139870, 140064, 0);
53.1919 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(83).getChildBlocks(), 1, PlsqlBlockType.FOR_LOOP, "supplier_ IN get_supplier", true, 140285, 141909, 3);
53.1920 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(83).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Bug 73125, Begin, Added template_id ", true, 140380, 140419, 0);
53.1921 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(83).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.STATEMENT, "INSERT INTO IDENTITY_PAY_INFO_TAB (company, identity, party_type,", true, 140426, 141445, 0);
53.1922 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(83).getChildBlocks().get(1).getChildBlocks(), 2, PlsqlBlockType.COMMENT, "-- Bug 73125, End", true, 141453, 141470, 0);
53.1923 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 84, PlsqlBlockType.FUNCTION_IMPL, "Get", true, 141930, 142856, 2);
53.1924 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(84).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_attr", true, 142084, 142659, 0);
53.1925 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(84).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (NOT Company_Finance_API.Is_User_Authorized(company_))", true, 142669, 142762, 0);
53.1926 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 85, PlsqlBlockType.PROCEDURE_IMPL, "User_Allowed___", true, 142858, 143216, 1);
53.1927 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(85).getChildBlocks(), 0, PlsqlBlockType.IF, "IF NOT (company_finance_api.Is_User_Authorized(company_))", true, 143000, 143194, 0);
53.1928 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 86, PlsqlBlockType.COMMENT, "-- Server", true, 143219, 143437, 0);
53.1929 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 87, PlsqlBlockType.FUNCTION_IMPL, "Get_Group_For_Identity", true, 143438, 144049, 2);
53.1930 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(87).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_group", true, 143612, 143800, 0);
53.1931 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(87).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (get_group%NOTFOUND)", true, 143898, 143979, 0);
53.1932 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 88, PlsqlBlockType.PROCEDURE_IMPL, "Make_Company", true, 144051, 144608, 2);
53.1933 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(88).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (rec_.make_company = 'EXPORT')", true, 144328, 144389, 0);
53.1934 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(88).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (rec_.make_company = 'IMPORT')", true, 144393, 144590, 2);
53.1935 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(88).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (rec_.action = 'NEW')", true, 144441, 144496, 0);
53.1936 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(88).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (rec_.action = 'DUPLICATE')", true, 144503, 144579, 0);
53.1937 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 89, PlsqlBlockType.FUNCTION_IMPL, "Cust_Open_Items_Exist", true, 144610, 145567, 2);
53.1938 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(89).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "exist_control", true, 144737, 145266, 0);
53.1939 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(89).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (exist_control%FOUND)", true, 145407, 145496, 0);
53.1940 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 90, PlsqlBlockType.FUNCTION_IMPL, "Get_Send_Stmt_Of_Acc_To_Payer", true, 145569, 145994, 1);
53.1941 - assertBlock(lstBlockFac.get(50).getChildBlocks().get(90).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (NOT Company_Finance_API.Is_User_Authorized(company_))", true, 145745, 145837, 0);
53.1942 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 91, PlsqlBlockType.COMMENT, "-- FOUNDATION1 METHODS ", true, 145995, 146459, 0);
53.1943 - assertBlock(lstBlockFac.get(50).getChildBlocks(), 92, PlsqlBlockType.PROCEDURE_IMPL, "Init", true, 146461, 146503, 0);
53.1944 - assertBlock(lstBlockFac, 51, PlsqlBlockType.COMMENT, "-- <UNDEFINE_SECTION>", false, 146530, 147081, 0);
53.1945 + assertEquals(54, lstBlockFac.size());
53.1946 + processBlocks(plsqlFileName, lstBlockFac);
53.1947 } finally {
53.1948 if (fileObject != null) {
53.1949 fileObject.delete();
53.1950 @@ -1956,119 +352,18 @@
53.1951 @Test
53.1952 public void testAdvanced10() throws IOException, BadLocationException {
53.1953 System.out.println("Advanced test case 10");
53.1954 - FileObject fileObject = fs.getRoot().createData("InstallationSite.apy");
53.1955 + final String plsqlFileName = "InstallationSite.apy";
53.1956 + FileObject fileObject = fs.getRoot().createData(plsqlFileName);
53.1957 assertNotNull(fileObject);
53.1958 try {
53.1959 - PlsqlBlockFactory blockFac = loadAsTmpFile(fileObject, "InstallationSite.apy");
53.1960 + PlsqlBlockFactory blockFac = loadAsTmpFile(fileObject, plsqlFileName);
53.1961 assertNotNull(blockFac);
53.1962
53.1963 List<PlsqlBlock> lstBlockFac = blockFac.getBlockHierarchy();
53.1964 // printHierarchy(lstBlockFac, "");
53.1965 // generateAssert(lstBlockFac, "lstBlockFac", "false");
53.1966 - assertTrue(lstBlockFac.size() == 11);
53.1967 - assertBlock(lstBlockFac, 0, PlsqlBlockType.COMMENT, "-- Logical unit: InstallationSite", false, 0, 914, 0);
53.1968 - assertBlock(lstBlockFac, 1, PlsqlBlockType.COMMENT, "-- VIEWS FOR SELECTS ", false, 1271, 1504, 0);
53.1969 - assertBlock(lstBlockFac, 2, PlsqlBlockType.VIEW, "USER_DB_LINKS_LOV", false, 1538, 1663, 0);
53.1970 - assertBlock(lstBlockFac, 3, PlsqlBlockType.TABLE_COMMENT, "USER_DB_LINKS_LOV", false, 1666, 1748, 0);
53.1971 - assertBlock(lstBlockFac, 4, PlsqlBlockType.COLUMN_COMMENT, "USER_DB_LINKS_LOV", false, 1751, 1854, 0);
53.1972 - assertBlock(lstBlockFac, 5, PlsqlBlockType.VIEW, "INSTALLATION_SITE", false, 1886, 2397, 0);
53.1973 - assertBlock(lstBlockFac, 6, PlsqlBlockType.TABLE_COMMENT, "INSTALLATION_SITE", false, 2400, 2478, 0);
53.1974 - assertBlock(lstBlockFac, 7, PlsqlBlockType.COLUMN_COMMENT, "INSTALLATION_SITE", false, 2481, 3004, 0);
53.1975 - assertBlock(lstBlockFac, 8, PlsqlBlockType.COMMENT, "-- PACKAGES FOR METHODS ", false, 3007, 3240, 0);
53.1976 - assertBlock(lstBlockFac, 9, PlsqlBlockType.PACKAGE_BODY, "INSTALLATION_SITE_API", false, 3279, 25102, 30);
53.1977 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- LU SPECIFIC IMPLEMENTATION METHOD DECLARATIONS ", true, 3319, 4430, 0);
53.1978 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 1, PlsqlBlockType.FUNCTION_IMPL, "Lock_By_Id___", true, 4432, 5584, 5);
53.1979 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "lock_control", true, 4726, 4876, 0);
53.1980 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.CURSOR, "exist_control", true, 4880, 4968, 0);
53.1981 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(1).getChildBlocks(), 2, PlsqlBlockType.IF, "IF (lock_control%FOUND)", true, 5033, 5117, 0);
53.1982 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(1).getChildBlocks(), 3, PlsqlBlockType.IF, "IF (exist_control%FOUND)", true, 5203, 5284, 0);
53.1983 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(1).getChildBlocks(), 4, PlsqlBlockType.IF, "ELSE", true, 5288, 5355, 0);
53.1984 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 2, PlsqlBlockType.FUNCTION_IMPL, "Lock_By_Keys___", true, 5586, 6135, 3);
53.1985 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "lock_control", true, 5724, 5829, 0);
53.1986 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(2).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (lock_control%FOUND)", true, 5894, 5967, 0);
53.1987 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(2).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSE", true, 5971, 6037, 0);
53.1988 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 3, PlsqlBlockType.FUNCTION_IMPL, "Get_Object_By_Id___", true, 6137, 6544, 2);
53.1989 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(3).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "getrec", true, 6247, 6328, 0);
53.1990 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(3).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (getrec%NOTFOUND)", true, 6384, 6482, 0);
53.1991 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 4, PlsqlBlockType.FUNCTION_IMPL, "Get_Object_By_Keys___", true, 6546, 6858, 1);
53.1992 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(4).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "getrec", true, 6660, 6742, 0);
53.1993 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 5, PlsqlBlockType.FUNCTION_IMPL, "Check_Exist___", true, 6860, 7259, 2);
53.1994 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(5).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "exist_control", true, 6951, 7041, 0);
53.1995 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(5).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (exist_control%FOUND)", true, 7110, 7197, 0);
53.1996 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 6, PlsqlBlockType.PROCEDURE_IMPL, "Get_Id_Version_By_Keys___", true, 7261, 7623, 1);
53.1997 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(6).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_version", true, 7394, 7496, 0);
53.1998 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 7, PlsqlBlockType.COMMENT, "-- IMPLEMENTATION BASE METHODS FOR INSERT ", true, 7625, 8370, 0);
53.1999 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 8, PlsqlBlockType.PROCEDURE_IMPL, "Prepare_Insert___", true, 8372, 8609, 0);
53.2000 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 9, PlsqlBlockType.PROCEDURE_IMPL, "Unpack_Check_Insert___", true, 8612, 10236, 2);
53.2001 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(9).getChildBlocks(), 0, PlsqlBlockType.IF, "IF ( (UPPER(NVL(value_, 'FALSE')) = 'TRUE') AND This_Site_Exist__ )", true, 8981, 9094, 0);
53.2002 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(9).getChildBlocks(), 1, PlsqlBlockType.WHILE_LOOP, "(Client_SYS.Get_Next_From_Attr(attr_, ptr_, name_, value_))", true, 9115, 9726, 6);
53.2003 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(9).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (name_ = 'SITE_ID')", true, 9192, 9255, 0);
53.2004 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(9).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (name_ = 'TIMEZONE_DIFFERENCE')", true, 9262, 9385, 0);
53.2005 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(9).getChildBlocks().get(1).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSIF (name_ = 'DESCRIPTION')", true, 9392, 9466, 0);
53.2006 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(9).getChildBlocks().get(1).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSIF (name_ = 'THIS_SITE')", true, 9473, 9543, 0);
53.2007 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(9).getChildBlocks().get(1).getChildBlocks(), 4, PlsqlBlockType.IF, "ELSIF (name_ = 'DATABASE_LINK')", true, 9550, 9628, 0);
53.2008 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(9).getChildBlocks().get(1).getChildBlocks(), 5, PlsqlBlockType.IF, "ELSE", true, 9635, 9713, 0);
53.2009 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 10, PlsqlBlockType.PROCEDURE_IMPL, "Insert___", true, 10239, 11678, 5);
53.2010 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(10).getChildBlocks(), 0, PlsqlBlockType.IF, "IF ( newrec_.timezone_difference IS NULL )", true, 10408, 10506, 0);
53.2011 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(10).getChildBlocks(), 1, PlsqlBlockType.IF, "IF ( NVL(newrec_.this_site,'FALSE') NOT IN ('TRUE','FALSE') )", true, 10510, 10623, 0);
53.2012 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(10).getChildBlocks(), 2, PlsqlBlockType.STATEMENT, "INSERT", true, 10727, 11101, 0);
53.2013 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(10).getChildBlocks(), 3, PlsqlBlockType.STATEMENT, "SELECT &OBJID", true, 11106, 11195, 0);
53.2014 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(10).getChildBlocks(), 4, PlsqlBlockType.COMMENT, "-- Insert into the translation database", true, 11200, 11239, 0);
53.2015 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 11, PlsqlBlockType.COMMENT, "-- IMPLEMENTATION BASE METHODS FOR UPDATE ", true, 11680, 12264, 0);
53.2016 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 12, PlsqlBlockType.PROCEDURE_IMPL, "Unpack_Check_Update___", true, 12266, 13836, 2);
53.2017 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(12).getChildBlocks(), 0, PlsqlBlockType.IF, "IF ( (UPPER(NVL(value_, 'FALSE')) = 'TRUE') AND (newrec_.this_site = 'FALSE') AND This_Site_Exist__ )", true, 12597, 12744, 0);
53.2018 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(12).getChildBlocks(), 1, PlsqlBlockType.WHILE_LOOP, "(Client_SYS.Get_Next_From_Attr(attr_, ptr_, name_, value_))", true, 12765, 13393, 6);
53.2019 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(12).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (name_ = 'SITE_ID')", true, 12842, 12922, 0);
53.2020 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(12).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (name_ = 'TIMEZONE_DIFFERENCE')", true, 12929, 13052, 0);
53.2021 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(12).getChildBlocks().get(1).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSIF (name_ = 'DESCRIPTION')", true, 13059, 13133, 0);
53.2022 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(12).getChildBlocks().get(1).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSIF (name_ = 'THIS_SITE')", true, 13140, 13210, 0);
53.2023 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(12).getChildBlocks().get(1).getChildBlocks(), 4, PlsqlBlockType.IF, "ELSIF (name_ = 'DATABASE_LINK')", true, 13217, 13295, 0);
53.2024 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(12).getChildBlocks().get(1).getChildBlocks(), 5, PlsqlBlockType.IF, "ELSE", true, 13302, 13380, 0);
53.2025 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 13, PlsqlBlockType.PROCEDURE_IMPL, "Update___", true, 13839, 15623, 5);
53.2026 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(13).getChildBlocks(), 0, PlsqlBlockType.IF, "IF ( newrec_.timezone_difference IS NULL )", true, 14087, 14185, 0);
53.2027 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(13).getChildBlocks(), 1, PlsqlBlockType.IF, "IF ( NVL(newrec_.this_site,'FALSE') NOT IN ('TRUE','FALSE') )", true, 14189, 14302, 0);
53.2028 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(13).getChildBlocks(), 2, PlsqlBlockType.IF, "IF by_keys_", true, 14406, 14771, 1);
53.2029 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(13).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE installation_site_tab", true, 14429, 14770, 0);
53.2030 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(13).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSE", true, 14775, 15129, 1);
53.2031 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(13).getChildBlocks().get(3).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE installation_site_tab", true, 14786, 15117, 0);
53.2032 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(13).getChildBlocks(), 4, PlsqlBlockType.COMMENT, "-- Update the translation database if necessary", true, 15133, 15180, 0);
53.2033 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 14, PlsqlBlockType.COMMENT, "-- IMPLEMENTATION BASE METHODS FOR DELETE ", true, 15625, 16222, 0);
53.2034 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 15, PlsqlBlockType.PROCEDURE_IMPL, "Check_Delete___", true, 16224, 16429, 0);
53.2035 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 16, PlsqlBlockType.PROCEDURE_IMPL, "Delete___", true, 16432, 16862, 2);
53.2036 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(16).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "DELETE", true, 16632, 16700, 0);
53.2037 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(16).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- Delete all existing translations for this record.", true, 16705, 16757, 0);
53.2038 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 17, PlsqlBlockType.COMMENT, "-- PRIVATE BASE METHODS ", true, 16864, 19165, 0);
53.2039 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 18, PlsqlBlockType.PROCEDURE_IMPL, "Lock__", true, 19167, 19462, 0);
53.2040 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 19, PlsqlBlockType.PROCEDURE_IMPL, "New__", true, 19465, 20069, 3);
53.2041 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(19).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (action_ = 'PREPARE')", true, 19738, 19799, 0);
53.2042 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(19).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (action_ = 'CHECK')", true, 19803, 19879, 0);
53.2043 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(19).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSIF (action_ = 'DO')", true, 19883, 20021, 0);
53.2044 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 20, PlsqlBlockType.PROCEDURE_IMPL, "Modify__", true, 20072, 20794, 2);
53.2045 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(20).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (action_ = 'CHECK')", true, 20378, 20505, 0);
53.2046 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(20).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (action_ = 'DO')", true, 20509, 20743, 0);
53.2047 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 21, PlsqlBlockType.PROCEDURE_IMPL, "Remove__", true, 20797, 21349, 2);
53.2048 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(21).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (action_ = 'CHECK')", true, 21032, 21137, 0);
53.2049 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(21).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (action_ = 'DO')", true, 21141, 21298, 0);
53.2050 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 22, PlsqlBlockType.COMMENT, "-- PUBLIC BASE METHODS ", true, 21351, 21804, 0);
53.2051 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 23, PlsqlBlockType.PROCEDURE_IMPL, "Exist", true, 21806, 22027, 1);
53.2052 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(23).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (NOT Check_Exist___(site_id_))", true, 21923, 22016, 0);
53.2053 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 24, PlsqlBlockType.COMMENT, "-- LU SPECIFIC IMPLEMENTATION METHODS ", true, 22029, 22498, 0);
53.2054 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 25, PlsqlBlockType.FUNCTION_IMPL, "This_Site_Exist__", true, 22500, 22907, 3);
53.2055 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(25).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "this_site_exist", true, 22569, 22662, 0);
53.2056 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(25).getChildBlocks(), 1, PlsqlBlockType.IF, "IF ( this_site_exist%FOUND )", true, 22735, 22816, 0);
53.2057 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(25).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSE", true, 22820, 22884, 0);
53.2058 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 26, PlsqlBlockType.COMMENT, "-- LU SPECIFIC PROTECTED METHODS ", true, 22909, 23142, 0);
53.2059 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 27, PlsqlBlockType.FUNCTION_IMPL, "Get_Timezone_Difference_", true, 23144, 24344, 5);
53.2060 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(27).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "local", true, 23344, 23445, 0);
53.2061 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(27).getChildBlocks(), 1, PlsqlBlockType.CURSOR, "remote", true, 23449, 23551, 0);
53.2062 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(27).getChildBlocks(), 2, PlsqlBlockType.IF, "IF ( site_id_ IS NULL )", true, 23635, 23828, 1);
53.2063 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(27).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.IF, "IF ( local%NOTFOUND )", true, 23733, 23809, 0);
53.2064 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(27).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSE", true, 23832, 24016, 1);
53.2065 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(27).getChildBlocks().get(3).getChildBlocks(), 0, PlsqlBlockType.IF, "IF ( remote%NOTFOUND )", true, 23908, 23985, 0);
53.2066 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(27).getChildBlocks(), 4, PlsqlBlockType.IF, "IF ( ABS(timezone_difference_) > 24 )", true, 24020, 24113, 0);
53.2067 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 28, PlsqlBlockType.COMMENT, "-- LU SPECIFIC PUBLIC METHODS ", true, 24346, 25046, 0);
53.2068 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 29, PlsqlBlockType.PROCEDURE_IMPL, "Init", true, 25048, 25090, 0);
53.2069 - assertBlock(lstBlockFac, 10, PlsqlBlockType.COMMENT, "COMMENT...", false, 25117, 25194, 0);
53.2070 + assertEquals(11, lstBlockFac.size());
53.2071 + processBlocks(plsqlFileName, lstBlockFac);
53.2072 } finally {
53.2073 if (fileObject != null) {
53.2074 fileObject.delete();
53.2075 @@ -2079,217 +374,18 @@
53.2076 @Test
53.2077 public void testAdvanced11() throws IOException, BadLocationException {
53.2078 System.out.println("Advanced test case 11");
53.2079 - FileObject fileObject = fs.getRoot().createData("OpPersDiaryCalculation.apy");
53.2080 + final String plsqlFileName = "OpPersDiaryCalculation.apy";
53.2081 + FileObject fileObject = fs.getRoot().createData(plsqlFileName);
53.2082 assertNotNull(fileObject);
53.2083 try {
53.2084 - PlsqlBlockFactory blockFac = loadAsTmpFile(fileObject, "OpPersDiaryCalculation.apy");
53.2085 + PlsqlBlockFactory blockFac = loadAsTmpFile(fileObject, plsqlFileName);
53.2086 assertNotNull(blockFac);
53.2087
53.2088 List<PlsqlBlock> lstBlockFac = blockFac.getBlockHierarchy();
53.2089 // printHierarchy(lstBlockFac, "");
53.2090 // generateAssert(lstBlockFac, "lstBlockFac", "false");
53.2091 - assertTrue(lstBlockFac.size() == 4);
53.2092 - assertBlock(lstBlockFac, 0, PlsqlBlockType.COMMENT, "-- Logical unit: OpPersDiaryCalculation", false, 0, 631, 0);
53.2093 - assertBlock(lstBlockFac, 1, PlsqlBlockType.COMMENT, "-- PACKAGES FOR METHODS ", false, 764, 997, 0);
53.2094 - assertBlock(lstBlockFac, 2, PlsqlBlockType.PACKAGE_BODY, "OP_PERS_DIARY_CALCULATION_API", false, 1036, 36964, 30);
53.2095 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Private types", true, 1196, 1362, 0);
53.2096 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- Global variables", true, 1521, 1690, 0);
53.2097 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 2, PlsqlBlockType.COMMENT, "-- LU SPECIFIC IMPLEMENTATION METHOD DECLARATIONS ", true, 1957, 2190, 0);
53.2098 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 3, PlsqlBlockType.PROCEDURE_DEF, "Calculate_Op_Hours___", true, 2192, 2379, 0);
53.2099 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 4, PlsqlBlockType.PROCEDURE_DEF, "Convert_Group_Operations___", true, 2382, 2472, 0);
53.2100 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 5, PlsqlBlockType.PROCEDURE_DEF, "Do_Wage_Rounding___", true, 2475, 2625, 0);
53.2101 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 6, PlsqlBlockType.PROCEDURE_DEF, "Get_Diary___", true, 2628, 2703, 0);
53.2102 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 7, PlsqlBlockType.PROCEDURE_DEF, "Get_Op_Data___", true, 2706, 2893, 0);
53.2103 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 8, PlsqlBlockType.PROCEDURE_DEF, "Remove_Result___", true, 2896, 2964, 0);
53.2104 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 9, PlsqlBlockType.PROCEDURE_DEF, "Save_Result___", true, 2967, 3033, 0);
53.2105 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 10, PlsqlBlockType.PROCEDURE_DEF, "Set_Op_Error___", true, 3036, 3103, 0);
53.2106 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 11, PlsqlBlockType.PROCEDURE_DEF, "Set_Op_Error_Labor___", true, 3108, 3181, 0);
53.2107 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 12, PlsqlBlockType.PROCEDURE_DEF, "Update_Diary___", true, 3184, 3295, 0);
53.2108 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 13, PlsqlBlockType.COMMENT, "-- LU SPECIFIC IMPLEMENTATION METHODS ", true, 3299, 3532, 0);
53.2109 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 14, PlsqlBlockType.PROCEDURE_IMPL, "Calculate_Op_Hours___", true, 3534, 10949, 9);
53.2110 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(14).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 4303, 4378, 0);
53.2111 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(14).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 4382, 4457, 0);
53.2112 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(14).getChildBlocks(), 2, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 4461, 4536, 0);
53.2113 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(14).getChildBlocks(), 3, PlsqlBlockType.IF, "IF op_diary_.reg_status = reg_status_.done", true, 4596, 4885, 1);
53.2114 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(14).getChildBlocks().get(3).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (time_pers_diary_api.Reporting_Complete(op_diary_.company_id, op_diary_.emp_no, \n op_diary_.account_date, op_diary_.reg_status) = 'TRUE')", true, 4650, 4874, 0);
53.2115 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(14).getChildBlocks(), 4, PlsqlBlockType.FOR_LOOP, "i_ IN 1 .. op_diary_.clocking.row_count", true, 4889, 5244, 1);
53.2116 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(14).getChildBlocks().get(4).getChildBlocks(), 0, PlsqlBlockType.IF, "IF op_diary_.clocking.org_code(i_) IS NULL", true, 5107, 5231, 0);
53.2117 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(14).getChildBlocks(), 5, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 5248, 5323, 0);
53.2118 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(14).getChildBlocks(), 6, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 5327, 5402, 0);
53.2119 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(14).getChildBlocks(), 7, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 5406, 5481, 0);
53.2120 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(14).getChildBlocks(), 8, PlsqlBlockType.WHILE_LOOP, "min_in_time_ < max_out_time_", true, 5521, 10922, 3);
53.2121 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(14).getChildBlocks().get(8).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "i_ IN 1 .. op_diary_.clocking.row_count", true, 5604, 5836, 1);
53.2122 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(14).getChildBlocks().get(8).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF min_in_time_ < op_diary_.clocking.stop_stamp(i_)", true, 5662, 5820, 0);
53.2123 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(14).getChildBlocks().get(8).getChildBlocks(), 1, PlsqlBlockType.FOR_LOOP, "i_ IN 1 .. op_diary_.clocking.row_count", true, 5907, 6383, 1);
53.2124 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(14).getChildBlocks().get(8).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF min_in_time_ < op_diary_.clocking.stop_stamp(i_)", true, 5965, 6367, 2);
53.2125 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(14).getChildBlocks().get(8).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF cur_in_time_ = op_diary_.clocking.start_stamp(i_)", true, 6034, 6223, 0);
53.2126 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(14).getChildBlocks().get(8).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 6236, 6350, 0);
53.2127 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(14).getChildBlocks().get(8).getChildBlocks(), 2, PlsqlBlockType.FOR_LOOP, "i_ IN 1 .. op_diary_.clocking.row_count", true, 6427, 10872, 1);
53.2128 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(14).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.IF, "IF cur_in_time_ = op_diary_.clocking.start_stamp(i_) AND\n cur_in_time_ < op_diary_.clocking.stop_stamp(i_)", true, 6485, 10856, 1);
53.2129 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(14).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "j_ IN 1 .. pers_diary_.result.row_count", true, 6854, 10774, 3);
53.2130 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(14).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF wage_grp_ IN (wage_group_.normal, wage_group_.overtime, wage_group_.extra, wage_group_.increment, wage_group_.balance_accrual, wage_group_.info)", true, 7322, 7764, 1);
53.2131 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(14).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF NOT pers_diary_.result.wage_hol(j_)", true, 7493, 7764, 1);
53.2132 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(14).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF in_time_ < out_time_", true, 7558, 7738, 0);
53.2133 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(14).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF wage_grp_ = wage_group_.balance_withdrawal", true, 7780, 8930, 3);
53.2134 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(14).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Bug 64820, Begin", true, 7852, 7871, 0);
53.2135 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(14).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.IF, "IF in_time_ < out_time_", true, 7890, 8871, 1);
53.2136 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(14).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "k_ IN 1 .. pers_diary_.result.row_count", true, 7940, 8845, 1);
53.2137 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(14).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF pers_wage_grp_ = wage_group_.normal AND\n in_time_ < pers_diary_.result.wage_ttime(k_) AND\n out_time_ > pers_diary_.result.wage_ftime(k_) AND\n pers_diary_.result.wage_hours(k_) > 0.005", true, 8088, 8814, 0);
53.2138 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(14).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks(), 2, PlsqlBlockType.COMMENT, "-- Bug 64820, End", true, 8890, 8907, 0);
53.2139 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(14).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 2, PlsqlBlockType.IF, "IF wage_hours_ > 0.005 OR wage_hours_ < -0.005", true, 8946, 10752, 2);
53.2140 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(14).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "k_ IN 1 .. op_diary_.result.row_count", true, 9044, 9639, 1);
53.2141 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(14).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF op_id_ = op_diary_.result.op_id(k_) AND\n info_code_ = op_diary_.result.info_code(k_) AND\n mch_code_ = op_diary_.result.mch_code(k_) AND\n org_code_ = op_diary_.result.org_code(k_) AND\n wage_grp_ = op_diary_.result.wage_group(k_) AND\n wage_code_ = op_diary_.result.wage_code(k_)", true, 9112, 9611, 0);
53.2142 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(14).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks(), 1, PlsqlBlockType.IF, "IF w_ < 0", true, 9658, 10615, 0);
53.2143 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 15, PlsqlBlockType.PROCEDURE_IMPL, "Convert_Group_Operations___", true, 10952, 13524, 2);
53.2144 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(15).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "Get_Operations", true, 11287, 11575, 0);
53.2145 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(15).getChildBlocks(), 1, PlsqlBlockType.FOR_LOOP, "i_ IN 1 .. cnt_", true, 11624, 13491, 1);
53.2146 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(15).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF grp_count_ > 0", true, 11953, 13478, 3);
53.2147 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(15).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "j_ IN 1 .. grp_count_", true, 12013, 12122, 0);
53.2148 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(15).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "IF sum_hours_ < 0.005", true, 12132, 12395, 2);
53.2149 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(15).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 12171, 12221, 0);
53.2150 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(15).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.FOR_LOOP, "j_ IN 1 .. grp_count_", true, 12234, 12329, 0);
53.2151 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(15).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 2, PlsqlBlockType.FOR_LOOP, "j_ IN 1 .. grp_count_", true, 12405, 13415, 0);
53.2152 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 16, PlsqlBlockType.PROCEDURE_IMPL, "Do_Wage_Rounding___", true, 13527, 18839, 5);
53.2153 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(16).getChildBlocks(), 0, PlsqlBlockType.IF, "IF NOT op_diary_.do_update", true, 13951, 14075, 0);
53.2154 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(16).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 14079, 14154, 0);
53.2155 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(16).getChildBlocks(), 2, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 14158, 14233, 0);
53.2156 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(16).getChildBlocks(), 3, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 14237, 14312, 0);
53.2157 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(16).getChildBlocks(), 4, PlsqlBlockType.FOR_LOOP, "i_ IN 1 .. pers_diary_.result.row_count", true, 14316, 18814, 1);
53.2158 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(16).getChildBlocks().get(4).getChildBlocks(), 0, PlsqlBlockType.IF, "IF pers_diary_.result.wage_hours(i_) != 0 AND\n NOT pers_diary_.result.wage_hol(i_)", true, 14371, 18801, 15);
53.2159 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(16).getChildBlocks().get(4).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "j_ IN 1 .. pers_diary_.result.row_count", true, 14622, 14981, 1);
53.2160 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(16).getChildBlocks().get(4).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF pers_diary_.result.wage_grp(j_) = wage_grp_ AND\n pers_diary_.result.wage_code(j_) = wage_code_ AND\n NOT pers_diary_.result.wage_hol(j_)", true, 14683, 14962, 0);
53.2161 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(16).getChildBlocks().get(4).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.FOR_LOOP, "j_ IN 1 .. op_diary_.result.row_count", true, 15022, 15316, 1);
53.2162 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(16).getChildBlocks().get(4).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF op_diary_.result.wage_group(j_) = wage_grp_ AND\n op_diary_.result.wage_code(j_) = wage_code_", true, 15081, 15297, 0);
53.2163 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(16).getChildBlocks().get(4).getChildBlocks().get(0).getChildBlocks(), 2, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 15326, 15401, 0);
53.2164 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(16).getChildBlocks().get(4).getChildBlocks().get(0).getChildBlocks(), 3, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 15411, 15486, 0);
53.2165 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(16).getChildBlocks().get(4).getChildBlocks().get(0).getChildBlocks(), 4, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 15496, 15571, 0);
53.2166 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(16).getChildBlocks().get(4).getChildBlocks().get(0).getChildBlocks(), 5, PlsqlBlockType.IF, "IF pers_sum_hours_ - op_sum_hours_ < 0.011", true, 15619, 16150, 1);
53.2167 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(16).getChildBlocks().get(4).getChildBlocks().get(0).getChildBlocks().get(5).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "j_ IN 1 .. op_diary_.result.row_count", true, 15710, 16133, 1);
53.2168 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(16).getChildBlocks().get(4).getChildBlocks().get(0).getChildBlocks().get(5).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF op_diary_.result.wage_group(j_) = wage_grp_ AND\n op_diary_.result.wage_code(j_) = wage_code_", true, 15772, 16111, 0);
53.2169 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(16).getChildBlocks().get(4).getChildBlocks().get(0).getChildBlocks(), 6, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 16208, 16283, 0);
53.2170 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(16).getChildBlocks().get(4).getChildBlocks().get(0).getChildBlocks(), 7, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 16293, 16368, 0);
53.2171 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(16).getChildBlocks().get(4).getChildBlocks().get(0).getChildBlocks(), 8, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 16378, 16453, 0);
53.2172 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(16).getChildBlocks().get(4).getChildBlocks().get(0).getChildBlocks(), 9, PlsqlBlockType.FOR_LOOP, "j_ IN 1 .. op_diary_.result.row_count", true, 16491, 16995, 1);
53.2173 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(16).getChildBlocks().get(4).getChildBlocks().get(0).getChildBlocks().get(9).getChildBlocks(), 0, PlsqlBlockType.IF, "IF op_diary_.result.wage_group(j_) = wage_grp_ AND\n op_diary_.result.wage_code(j_) = wage_code_", true, 16550, 16976, 0);
53.2174 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(16).getChildBlocks().get(4).getChildBlocks().get(0).getChildBlocks(), 10, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 17057, 17132, 0);
53.2175 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(16).getChildBlocks().get(4).getChildBlocks().get(0).getChildBlocks(), 11, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 17142, 17217, 0);
53.2176 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(16).getChildBlocks().get(4).getChildBlocks().get(0).getChildBlocks(), 12, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 17227, 17302, 0);
53.2177 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(16).getChildBlocks().get(4).getChildBlocks().get(0).getChildBlocks(), 13, PlsqlBlockType.WHILE_LOOP, "diff_hours_ < -0.001", true, 17312, 18045, 1);
53.2178 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(16).getChildBlocks().get(4).getChildBlocks().get(0).getChildBlocks().get(13).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "j_ IN 1 .. op_diary_.result.row_count", true, 17377, 17839, 1);
53.2179 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(16).getChildBlocks().get(4).getChildBlocks().get(0).getChildBlocks().get(13).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF op_diary_.result.wage_group(j_) = wage_grp_ AND\n op_diary_.result.wage_code(j_) = wage_code_", true, 17439, 17817, 2);
53.2180 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(16).getChildBlocks().get(4).getChildBlocks().get(0).getChildBlocks().get(13).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF w_ = 0", true, 17576, 17621, 0);
53.2181 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(16).getChildBlocks().get(4).getChildBlocks().get(0).getChildBlocks().get(13).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 17640, 17794, 1);
53.2182 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(16).getChildBlocks().get(4).getChildBlocks().get(0).getChildBlocks().get(13).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF wage_diff_(j_) < wage_diff_(w_)", true, 17666, 17768, 0);
53.2183 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(16).getChildBlocks().get(4).getChildBlocks().get(0).getChildBlocks(), 14, PlsqlBlockType.WHILE_LOOP, "diff_hours_ > 0.001", true, 18055, 18787, 1);
53.2184 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(16).getChildBlocks().get(4).getChildBlocks().get(0).getChildBlocks().get(14).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "j_ IN 1 .. op_diary_.result.row_count", true, 18119, 18581, 1);
53.2185 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(16).getChildBlocks().get(4).getChildBlocks().get(0).getChildBlocks().get(14).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF op_diary_.result.wage_group(j_) = wage_grp_ AND\n op_diary_.result.wage_code(j_) = wage_code_", true, 18181, 18559, 2);
53.2186 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(16).getChildBlocks().get(4).getChildBlocks().get(0).getChildBlocks().get(14).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF w_ = 0", true, 18318, 18363, 0);
53.2187 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(16).getChildBlocks().get(4).getChildBlocks().get(0).getChildBlocks().get(14).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 18382, 18536, 1);
53.2188 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(16).getChildBlocks().get(4).getChildBlocks().get(0).getChildBlocks().get(14).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF wage_diff_(j_) > wage_diff_(w_)", true, 18408, 18510, 0);
53.2189 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 17, PlsqlBlockType.PROCEDURE_IMPL, "Get_Diary___", true, 18842, 24867, 24);
53.2190 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(17).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "Get_Diary", true, 19013, 19333, 0);
53.2191 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(17).getChildBlocks(), 1, PlsqlBlockType.CURSOR, "Get_Clockings", true, 19337, 19925, 0);
53.2192 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(17).getChildBlocks(), 2, PlsqlBlockType.COMMENT, "-- FOR UPDATE OF rowversion NOWAIT;", true, 19932, 19966, 0);
53.2193 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(17).getChildBlocks(), 3, PlsqlBlockType.CURSOR, "Get_Result", true, 19970, 20220, 0);
53.2194 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(17).getChildBlocks(), 4, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 20230, 20305, 0);
53.2195 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(17).getChildBlocks(), 5, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 20309, 20384, 0);
53.2196 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(17).getChildBlocks(), 6, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 20388, 20463, 0);
53.2197 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(17).getChildBlocks(), 7, PlsqlBlockType.IF, "IF NOT found_", true, 20825, 20939, 0);
53.2198 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(17).getChildBlocks(), 8, PlsqlBlockType.IF, "IF op_diary_.auth_id = 1", true, 20943, 21005, 0);
53.2199 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(17).getChildBlocks(), 9, PlsqlBlockType.IF, "IF op_diary_.reg_status = reg_status_.OPEN", true, 21009, 21088, 0);
53.2200 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(17).getChildBlocks(), 10, PlsqlBlockType.IF, "IF op_diary_.reg_status = reg_status_.ready", true, 21092, 21186, 0);
53.2201 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(17).getChildBlocks(), 11, PlsqlBlockType.IF, "IF op_diary_.reg_status = reg_status_.modified", true, 21190, 21274, 0);
53.2202 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(17).getChildBlocks(), 12, PlsqlBlockType.COMMENT, "COMMENT...", true, 21278, 21280, 0);
53.2203 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(17).getChildBlocks(), 13, PlsqlBlockType.COMMENT, "COMMENT...", true, 21832, 21834, 0);
53.2204 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(17).getChildBlocks(), 14, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 22137, 22212, 0);
53.2205 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(17).getChildBlocks(), 15, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 22216, 22291, 0);
53.2206 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(17).getChildBlocks(), 16, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 22295, 22370, 0);
53.2207 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(17).getChildBlocks(), 17, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 22374, 22449, 0);
53.2208 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(17).getChildBlocks(), 18, PlsqlBlockType.FOR_LOOP, "i_ IN 1 .. op_diary_.clocking.row_count", true, 22479, 24358, 4);
53.2209 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(17).getChildBlocks().get(18).getChildBlocks(), 0, PlsqlBlockType.IF, "IF op_diary_.clocking.start_stamp(i_) - op_diary_.clocking.stop_stamp(i_) > 0.001 AND\n test_active_(Time_Reg_Error_API.CD_OVERLAP)", true, 22534, 22778, 0);
53.2210 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(17).getChildBlocks().get(18).getChildBlocks(), 1, PlsqlBlockType.FOR_LOOP, "j_ IN i_+1 .. op_diary_.clocking.row_count", true, 22785, 24124, 1);
53.2211 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(17).getChildBlocks().get(18).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF ((op_diary_.clocking.op_id(i_) = op_diary_.clocking.op_id(j_)) AND\n (op_diary_.clocking.info_code(i_) = op_diary_.clocking.info_code(j_)) AND\n (op_diary_.clocking.mch_code(i_) = op_diary_.clocking.mch_code(j_)) )", true, 22847, 24108, 2);
53.2212 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(17).getChildBlocks().get(18).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (op_diary_.clocking.labor_class_no(i_) != op_diary_.clocking.labor_class_no(j_))", true, 23103, 23402, 0);
53.2213 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(17).getChildBlocks().get(18).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (op_diary_.clocking.work_center_no(i_) != op_diary_.clocking.work_center_no(j_))", true, 23415, 24090, 3);
53.2214 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(17).getChildBlocks().get(18).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Bug 61149, start", true, 23519, 23537, 0);
53.2215 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(17).getChildBlocks().get(18).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (Op_Machine_Api.Work_Center_Exists(op_diary_.clocking.contract(i_), op_diary_.clocking.work_center_no(i_))='TRUE') AND \n (Op_Machine_Api.Work_Center_Exists(op_diary_.clocking.contract(j_), op_diary_.clocking.work_center_no(j_))='TRUE')", true, 23553, 24038, 0);
53.2216 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(17).getChildBlocks().get(18).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks(), 2, PlsqlBlockType.COMMENT, "-- Bug 61149, end", true, 24054, 24070, 0);
53.2217 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(17).getChildBlocks().get(18).getChildBlocks(), 2, PlsqlBlockType.IF, "IF (NOT (error_exist_))", true, 24131, 24253, 0);
53.2218 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(17).getChildBlocks().get(18).getChildBlocks(), 3, PlsqlBlockType.IF, "IF (op_diary_.clocking.error_no(i_) != 0)", true, 24260, 24345, 0);
53.2219 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(17).getChildBlocks(), 19, PlsqlBlockType.IF, "IF block_ AND op_diary_.do_update", true, 24362, 24511, 0);
53.2220 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(17).getChildBlocks(), 20, PlsqlBlockType.IF, "IF skip_", true, 24515, 24580, 0);
53.2221 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(17).getChildBlocks(), 21, PlsqlBlockType.IF, "IF block_", true, 24584, 24686, 0);
53.2222 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(17).getChildBlocks(), 22, PlsqlBlockType.IF, "IF op_diary_.clocking.row_count > 0", true, 24690, 24776, 0);
53.2223 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(17).getChildBlocks(), 23, PlsqlBlockType.IF, "IF op_diary_.clocking.row_count = 0", true, 24780, 24849, 0);
53.2224 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 18, PlsqlBlockType.PROCEDURE_IMPL, "Get_Op_Data___", true, 24870, 27367, 4);
53.2225 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(18).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "Get_Calc_Param", true, 25307, 25548, 0);
53.2226 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(18).getChildBlocks(), 1, PlsqlBlockType.IF, "IF work_sched_.rule_type IS NOT NULL", true, 25941, 26114, 0);
53.2227 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(18).getChildBlocks(), 2, PlsqlBlockType.IF, "IF calc_param_type_ IS NOT NULL", true, 26182, 26563, 1);
53.2228 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(18).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "p_ IN Get_Calc_Param", true, 26225, 26552, 3);
53.2229 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(18).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.CASE, "CASE p_.param_label\n WHEN time_param_label_.min_op_diff", true, 26264, 26384, 0);
53.2230 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(18).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.CASE, "WHEN time_param_label_.max_op_diff", true, 26394, 26485, 0);
53.2231 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(18).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks(), 2, PlsqlBlockType.CASE, "ELSE", true, 26495, 26536, 0);
53.2232 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(18).getChildBlocks(), 3, PlsqlBlockType.FOR_LOOP, "i_ IN 1 .. pers_diary_.result.row_count", true, 26602, 27282, 1);
53.2233 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(18).getChildBlocks().get(3).getChildBlocks(), 0, PlsqlBlockType.IF, "IF wage_hours_ > 0.001 OR wage_hours_ < -0.001", true, 26713, 27269, 2);
53.2234 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(18).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF wage_grp_ IN (wage_group_.normal, wage_group_.overtime, wage_group_.extra, wage_group_.balance_accrual)", true, 26829, 27097, 1);
53.2235 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(18).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF NOT pers_diary_.result.wage_hol(i_)", true, 26953, 27097, 0);
53.2236 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(18).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF wage_grp_ = wage_group_.balance_withdrawal", true, 27107, 27255, 0);
53.2237 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 19, PlsqlBlockType.PROCEDURE_IMPL, "Remove_Result___", true, 27370, 27700, 1);
53.2238 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(19).getChildBlocks(), 0, PlsqlBlockType.IF, "IF op_diary_.result.row_count_read > 0 AND op_diary_.do_update", true, 27450, 27678, 1);
53.2239 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(19).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "DELETE", true, 27580, 27666, 0);
53.2240 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 20, PlsqlBlockType.PROCEDURE_IMPL, "Save_Result___", true, 27703, 29051, 1);
53.2241 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(20).getChildBlocks(), 0, PlsqlBlockType.IF, "IF op_diary_.result.row_count > 0", true, 27781, 29031, 1);
53.2242 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(20).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "INSERT", true, 27877, 29019, 0);
53.2243 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 21, PlsqlBlockType.PROCEDURE_IMPL, "Set_Op_Error___", true, 29054, 29738, 1);
53.2244 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(21).getChildBlocks(), 0, PlsqlBlockType.IF, "IF op_diary_.clocking.row_count > 0", true, 29167, 29671, 3);
53.2245 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(21).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Bug 61149, start", true, 29214, 29232, 0);
53.2246 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(21).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "IF op_diary_.error_no IS NOT NULL", true, 29239, 29637, 1);
53.2247 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(21).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE op_clocking_tab", true, 29346, 29605, 0);
53.2248 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(21).getChildBlocks().get(0).getChildBlocks(), 2, PlsqlBlockType.COMMENT, "-- Bug 61149, end", true, 29644, 29660, 0);
53.2249 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 22, PlsqlBlockType.PROCEDURE_IMPL, "Set_Op_Error_Labor___", true, 29740, 30401, 1);
53.2250 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(22).getChildBlocks(), 0, PlsqlBlockType.IF, "IF op_diary_.clocking.row_count > 0", true, 29859, 30328, 3);
53.2251 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(22).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Bug 61149, start", true, 29906, 29924, 0);
53.2252 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(22).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "IF op_diary_.error_no IS NOT NULL", true, 29931, 30294, 1);
53.2253 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(22).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE op_clocking_tab", true, 30038, 30262, 0);
53.2254 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(22).getChildBlocks().get(0).getChildBlocks(), 2, PlsqlBlockType.COMMENT, "-- Bug 61149, end", true, 30301, 30317, 0);
53.2255 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 23, PlsqlBlockType.PROCEDURE_IMPL, "Update_Diary___", true, 30404, 31869, 7);
53.2256 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(23).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "w_ IN 1 .. op_diary_.result.row_count", true, 30801, 31083, 1);
53.2257 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(23).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF op_diary_.result.wage_group(w_) IN (wage_group_.normal, wage_group_.overtime, wage_group_.balance_accrual, wage_group_.extra)", true, 30854, 31070, 0);
53.2258 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(23).getChildBlocks(), 1, PlsqlBlockType.IF, "IF op_diary_.clocking.row_count > 0", true, 31132, 31337, 1);
53.2259 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(23).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE op_pers_diary_tab", true, 31179, 31325, 0);
53.2260 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(23).getChildBlocks(), 2, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 31341, 31416, 0);
53.2261 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(23).getChildBlocks(), 3, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 31420, 31495, 0);
53.2262 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(23).getChildBlocks(), 4, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 31499, 31574, 0);
53.2263 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(23).getChildBlocks(), 5, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 31578, 31653, 0);
53.2264 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(23).getChildBlocks(), 6, PlsqlBlockType.IF, "IF op_diary_.error_no != 0 AND op_diary_.clocking.row_count_read > 0", true, 31657, 31848, 0);
53.2265 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 24, PlsqlBlockType.COMMENT, "-- LU SPECIFIC PRIVATE METHODS ", true, 31873, 32106, 0);
53.2266 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 25, PlsqlBlockType.PROCEDURE_IMPL, "Calculate_Op__", true, 32108, 35044, 21);
53.2267 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(25).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 32346, 32421, 0);
53.2268 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(25).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 32425, 32500, 0);
53.2269 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(25).getChildBlocks(), 2, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 32504, 32579, 0);
53.2270 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(25).getChildBlocks(), 3, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 32837, 32912, 0);
53.2271 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(25).getChildBlocks(), 4, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 32916, 32991, 0);
53.2272 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(25).getChildBlocks(), 5, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 32995, 33070, 0);
53.2273 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(25).getChildBlocks(), 6, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 33155, 33230, 0);
53.2274 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(25).getChildBlocks(), 7, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 33234, 33309, 0);
53.2275 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(25).getChildBlocks(), 8, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 33313, 33388, 0);
53.2276 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(25).getChildBlocks(), 9, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 33543, 33618, 0);
53.2277 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(25).getChildBlocks(), 10, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 33622, 33697, 0);
53.2278 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(25).getChildBlocks(), 11, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 33701, 33776, 0);
53.2279 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(25).getChildBlocks(), 12, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 33883, 33958, 0);
53.2280 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(25).getChildBlocks(), 13, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 33962, 34037, 0);
53.2281 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(25).getChildBlocks(), 14, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 34041, 34116, 0);
53.2282 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(25).getChildBlocks(), 15, PlsqlBlockType.IF, "IF history_enabled_", true, 34120, 34194, 0);
53.2283 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(25).getChildBlocks(), 16, PlsqlBlockType.IF, "IF history_enabled_", true, 34266, 34346, 0);
53.2284 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(25).getChildBlocks(), 17, PlsqlBlockType.IF, "IF history_enabled_", true, 34413, 34493, 0);
53.2285 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(25).getChildBlocks(), 18, PlsqlBlockType.IF, "IF history_enabled_", true, 34594, 34674, 0);
53.2286 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(25).getChildBlocks(), 19, PlsqlBlockType.IF, "IF test_active_(Time_Reg_Error_API.CD_ORACLE)", true, 34775, 34937, 0);
53.2287 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(25).getChildBlocks(), 20, PlsqlBlockType.IF, "IF history_enabled_", true, 34944, 35024, 0);
53.2288 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 26, PlsqlBlockType.FUNCTION_IMPL, "Get_Op_Clocking_Count__", true, 35047, 35503, 0);
53.2289 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 27, PlsqlBlockType.COMMENT, "-- LU SPECIFIC PROTECTED METHODS ", true, 35507, 36443, 0);
53.2290 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 28, PlsqlBlockType.PROCEDURE_IMPL, "Init", true, 36445, 36487, 0);
53.2291 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 29, PlsqlBlockType.COMMENT, "-- Initialize", true, 36488, 36649, 0);
53.2292 - assertBlock(lstBlockFac, 3, PlsqlBlockType.COMMENT, "COMMENT...", false, 37022, 37099, 0);
53.2293 + assertEquals(4, lstBlockFac.size());
53.2294 + processBlocks(plsqlFileName, lstBlockFac);
53.2295 } finally {
53.2296 if (fileObject != null) {
53.2297 fileObject.delete();
53.2298 @@ -2300,950 +396,18 @@
53.2299 @Test
53.2300 public void testAdvanced12() throws IOException, BadLocationException {
53.2301 System.out.println("Advanced test case 12");
53.2302 - FileObject fileObject = fs.getRoot().createData("ScorecardInputValue.apy");
53.2303 + final String plsqlFileName = "ScorecardInputValue.apy";
53.2304 + FileObject fileObject = fs.getRoot().createData(plsqlFileName);
53.2305 assertNotNull(fileObject);
53.2306 try {
53.2307 - PlsqlBlockFactory blockFac = loadAsTmpFile(fileObject, "ScorecardInputValue.apy");
53.2308 + PlsqlBlockFactory blockFac = loadAsTmpFile(fileObject, plsqlFileName);
53.2309 assertNotNull(blockFac);
53.2310
53.2311 List<PlsqlBlock> lstBlockFac = blockFac.getBlockHierarchy();
53.2312 // printHierarchy(lstBlockFac, "");
53.2313 // generateAssert(lstBlockFac, "lstBlockFac", "false");
53.2314 - assertTrue(lstBlockFac.size() == 22);
53.2315 - assertBlock(lstBlockFac, 0, PlsqlBlockType.COMMENT, "-- Logical unit: ScorecardInputValue", false, 0, 9500, 0);
53.2316 - assertBlock(lstBlockFac, 1, PlsqlBlockType.COMMENT, "-- VIEWS FOR SELECTS ", false, 10185, 10418, 0);
53.2317 - assertBlock(lstBlockFac, 2, PlsqlBlockType.VIEW, "SCORECARD_INPUT_VALUE", false, 10448, 12414, 0);
53.2318 - assertBlock(lstBlockFac, 3, PlsqlBlockType.TABLE_COMMENT, "SCORECARD_INPUT_VALUE", false, 12417, 12499, 0);
53.2319 - assertBlock(lstBlockFac, 4, PlsqlBlockType.COLUMN_COMMENT, "SCORECARD_INPUT_VALUE", false, 12502, 15678, 0);
53.2320 - assertBlock(lstBlockFac, 5, PlsqlBlockType.VIEW, "SCORECARD_INPUT_VALUE2", false, 15711, 19054, 0);
53.2321 - assertBlock(lstBlockFac, 6, PlsqlBlockType.TABLE_COMMENT, "SCORECARD_INPUT_VALUE2", false, 19057, 19140, 0);
53.2322 - assertBlock(lstBlockFac, 7, PlsqlBlockType.COLUMN_COMMENT, "SCORECARD_INPUT_VALUE2", false, 19143, 22130, 0);
53.2323 - assertBlock(lstBlockFac, 8, PlsqlBlockType.VIEW, "SCORECARD_INPUT_VALUE3", false, 22164, 26175, 0);
53.2324 - assertBlock(lstBlockFac, 9, PlsqlBlockType.TABLE_COMMENT, "SCORECARD_INPUT_VALUE3", false, 26178, 26261, 0);
53.2325 - assertBlock(lstBlockFac, 10, PlsqlBlockType.COLUMN_COMMENT, "SCORECARD_INPUT_VALUE3", false, 26264, 29576, 0);
53.2326 - assertBlock(lstBlockFac, 11, PlsqlBlockType.COMMENT, "-- THIS VIEW IS USED AS A BASE FOR THE VIEW5 WHICH IS USED TO DISPLAY BUDGET REQUIREMENTS VS. TARGETS.", false, 29579, 29680, 0);
53.2327 - assertBlock(lstBlockFac, 12, PlsqlBlockType.VIEW, "SCORECARD_INPUT_VALUE_BUDPRO1", false, 29710, 34571, 0);
53.2328 - assertBlock(lstBlockFac, 13, PlsqlBlockType.TABLE_COMMENT, "SCORECARD_INPUT_VALUE_BUDPRO1", false, 34574, 34674, 0);
53.2329 - assertBlock(lstBlockFac, 14, PlsqlBlockType.COMMENT, "-- THIS VIEW IS USED TO DISPLAY BUDGET REQUIREMENTS VS. TARGETS.[Client is BudgetRequirementsTargets.java]", false, 34678, 34783, 0);
53.2330 - assertBlock(lstBlockFac, 15, PlsqlBlockType.COMMENT, "-- Bug 63415, begin, Added another condition to where clause of the view", false, 34812, 34884, 0);
53.2331 - assertBlock(lstBlockFac, 16, PlsqlBlockType.VIEW, "SCORECARD_INPUT_VALUE_BUDPRO2", false, 34885, 37863, 0);
53.2332 - assertBlock(lstBlockFac, 17, PlsqlBlockType.TABLE_COMMENT, "SCORECARD_INPUT_VALUE_BUDPRO2", false, 37866, 37960, 0);
53.2333 - assertBlock(lstBlockFac, 18, PlsqlBlockType.COLUMN_COMMENT, "SCORECARD_INPUT_VALUE_BUDPRO2", false, 37963, 38707, 0);
53.2334 - assertBlock(lstBlockFac, 19, PlsqlBlockType.COMMENT, "-- Bug 63415, end", false, 38710, 38983, 0);
53.2335 - assertBlock(lstBlockFac, 20, PlsqlBlockType.PACKAGE_BODY, "SCORECARD_INPUT_VALUE_API", false, 39022, 275644, 102);
53.2336 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- FINITE STATE DECLARATIONS ", true, 39062, 39295, 0);
53.2337 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- LU SPECIFIC IMPLEMENTATION METHOD DECLARATIONS ", true, 39690, 39923, 0);
53.2338 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 2, PlsqlBlockType.PROCEDURE_DEF, "Distribute_Input_Values___", true, 39926, 40160, 0);
53.2339 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 3, PlsqlBlockType.COMMENT, "-- PROCHEAD.Start_Publish_Environments___", true, 40161, 40201, 0);
53.2340 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 4, PlsqlBlockType.PROCEDURE_DEF, "Object_Planned_Date___", true, 40204, 40298, 0);
53.2341 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 5, PlsqlBlockType.FUNCTION_DEF, "Find_Column___", true, 40300, 40545, 0);
53.2342 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 6, PlsqlBlockType.COMMENT, "-- IMPLEMENTATION BASE METHODS ", true, 40546, 41421, 0);
53.2343 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 7, PlsqlBlockType.FUNCTION_IMPL, "Lock_By_Id___", true, 41423, 42575, 5);
53.2344 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(7).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "lock_control", true, 41717, 41867, 0);
53.2345 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(7).getChildBlocks(), 1, PlsqlBlockType.CURSOR, "exist_control", true, 41871, 41959, 0);
53.2346 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(7).getChildBlocks(), 2, PlsqlBlockType.IF, "IF (lock_control%FOUND)", true, 42024, 42108, 0);
53.2347 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(7).getChildBlocks(), 3, PlsqlBlockType.IF, "IF (exist_control%FOUND)", true, 42194, 42275, 0);
53.2348 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(7).getChildBlocks(), 4, PlsqlBlockType.IF, "ELSE", true, 42279, 42346, 0);
53.2349 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 8, PlsqlBlockType.FUNCTION_IMPL, "Lock_By_Keys___", true, 42577, 43386, 3);
53.2350 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(8).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "lock_control", true, 42827, 43080, 0);
53.2351 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(8).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (lock_control%FOUND)", true, 43145, 43218, 0);
53.2352 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(8).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSE", true, 43222, 43288, 0);
53.2353 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 9, PlsqlBlockType.FUNCTION_IMPL, "Get_Object_By_Id___", true, 43388, 43795, 2);
53.2354 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(9).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "getrec", true, 43498, 43579, 0);
53.2355 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(9).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (getrec%NOTFOUND)", true, 43635, 43733, 0);
53.2356 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 10, PlsqlBlockType.FUNCTION_IMPL, "Get_Object_By_Keys___", true, 43798, 44370, 1);
53.2357 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(10).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "getrec", true, 44024, 44254, 0);
53.2358 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 11, PlsqlBlockType.FUNCTION_IMPL, "Check_Exist___", true, 44372, 45031, 2);
53.2359 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(11).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "exist_control", true, 44575, 44813, 0);
53.2360 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(11).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (exist_control%FOUND)", true, 44882, 44969, 0);
53.2361 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 12, PlsqlBlockType.PROCEDURE_IMPL, "Get_Id_Version_By_Keys___", true, 45033, 45655, 1);
53.2362 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(12).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_version", true, 45278, 45528, 0);
53.2363 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 13, PlsqlBlockType.COMMENT, "-- IMPLEMENTATION FINITE STATE MACHINE ", true, 45657, 46731, 0);
53.2364 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 14, PlsqlBlockType.PROCEDURE_IMPL, "Finite_State_Set___", true, 46732, 47274, 1);
53.2365 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(14).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE scorecard_input_value_tab", true, 46869, 47220, 0);
53.2366 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 15, PlsqlBlockType.PROCEDURE_IMPL, "Finite_State_Machine___", true, 47275, 48252, 4);
53.2367 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(15).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (state_ IS NULL)", true, 47463, 47670, 2);
53.2368 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(15).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (event_ IS NULL)", true, 47494, 47552, 0);
53.2369 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(15).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 47559, 47670, 0);
53.2370 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(15).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (state_ = 'Open')", true, 47674, 47899, 2);
53.2371 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(15).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (event_ = 'Plan')", true, 47709, 47781, 0);
53.2372 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(15).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 47788, 47899, 0);
53.2373 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(15).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSIF (state_ = 'Planned')", true, 47903, 48130, 2);
53.2374 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(15).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (event_ = 'Plan')", true, 47941, 48012, 0);
53.2375 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(15).getChildBlocks().get(2).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 48019, 48130, 0);
53.2376 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(15).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSE", true, 48134, 48223, 0);
53.2377 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 16, PlsqlBlockType.PROCEDURE_IMPL, "Finite_State_Add_To_Attr___", true, 48253, 48657, 0);
53.2378 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 17, PlsqlBlockType.PROCEDURE_IMPL, "Finite_State_Init___", true, 48658, 48900, 0);
53.2379 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 18, PlsqlBlockType.COMMENT, "-- PRIVATE FINITE STATE MACHINE ", true, 48901, 49774, 0);
53.2380 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 19, PlsqlBlockType.FUNCTION_IMPL, "Finite_State_Decode__", true, 49775, 49964, 0);
53.2381 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 20, PlsqlBlockType.FUNCTION_IMPL, "Finite_State_Encode__", true, 49965, 50162, 0);
53.2382 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 21, PlsqlBlockType.PROCEDURE_IMPL, "Enumerate_States__", true, 50163, 50322, 0);
53.2383 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 22, PlsqlBlockType.FUNCTION_IMPL, "Finite_State_Events__", true, 50323, 50639, 4);
53.2384 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(22).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (db_state_ IS NULL)", true, 50411, 50457, 0);
53.2385 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(22).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (db_state_ = 'Open')", true, 50461, 50514, 0);
53.2386 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(22).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSIF (db_state_ = 'Planned')", true, 50518, 50574, 0);
53.2387 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(22).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSE", true, 50578, 50612, 0);
53.2388 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 23, PlsqlBlockType.PROCEDURE_IMPL, "Enumerate_Events__", true, 50640, 50758, 0);
53.2389 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 24, PlsqlBlockType.COMMENT, "-- IMPLEMENTATION BASE METHODS FOR INSERT ", true, 50759, 51504, 0);
53.2390 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 25, PlsqlBlockType.PROCEDURE_IMPL, "Prepare_Insert___", true, 51506, 51627, 0);
53.2391 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 26, PlsqlBlockType.PROCEDURE_IMPL, "Unpack_Check_Insert___", true, 51630, 57006, 2);
53.2392 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(26).getChildBlocks(), 0, PlsqlBlockType.WHILE_LOOP, "(Client_SYS.Get_Next_From_Attr(attr_, ptr_, name_, value_))", true, 51857, 55259, 35);
53.2393 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(26).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (name_ = 'ENVIRONMENT')", true, 51934, 52068, 0);
53.2394 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(26).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (name_ = 'SCORECARD')", true, 52075, 52215, 0);
53.2395 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(26).getChildBlocks().get(0).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSIF (name_ = 'YEAR')", true, 52222, 52354, 0);
53.2396 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(26).getChildBlocks().get(0).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSIF (name_ = 'VERSION')", true, 52361, 52427, 0);
53.2397 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(26).getChildBlocks().get(0).getChildBlocks(), 4, PlsqlBlockType.IF, "ELSIF (name_ = 'SCORECARD_OBJECT')", true, 52434, 52518, 0);
53.2398 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(26).getChildBlocks().get(0).getChildBlocks(), 5, PlsqlBlockType.IF, "ELSIF (name_ = 'OBJECT_TYPE')", true, 52525, 52599, 0);
53.2399 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(26).getChildBlocks().get(0).getChildBlocks(), 6, PlsqlBlockType.IF, "ELSIF (name_ = 'YEAR_VALUE')", true, 52606, 52711, 0);
53.2400 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(26).getChildBlocks().get(0).getChildBlocks(), 7, PlsqlBlockType.IF, "ELSIF (name_ = 'P1_KEY')", true, 52718, 52782, 0);
53.2401 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(26).getChildBlocks().get(0).getChildBlocks(), 8, PlsqlBlockType.IF, "ELSIF (name_ = 'P1_VALUE')", true, 52789, 52890, 0);
53.2402 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(26).getChildBlocks().get(0).getChildBlocks(), 9, PlsqlBlockType.IF, "ELSIF (name_ = 'P2_KEY')", true, 52897, 52961, 0);
53.2403 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(26).getChildBlocks().get(0).getChildBlocks(), 10, PlsqlBlockType.IF, "ELSIF (name_ = 'P2_VALUE')", true, 52968, 53069, 0);
53.2404 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(26).getChildBlocks().get(0).getChildBlocks(), 11, PlsqlBlockType.IF, "ELSIF (name_ = 'P3_KEY')", true, 53076, 53140, 0);
53.2405 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(26).getChildBlocks().get(0).getChildBlocks(), 12, PlsqlBlockType.IF, "ELSIF (name_ = 'P3_VALUE')", true, 53147, 53248, 0);
53.2406 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(26).getChildBlocks().get(0).getChildBlocks(), 13, PlsqlBlockType.IF, "ELSIF (name_ = 'P4_KEY')", true, 53255, 53319, 0);
53.2407 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(26).getChildBlocks().get(0).getChildBlocks(), 14, PlsqlBlockType.IF, "ELSIF (name_ = 'P4_VALUE')", true, 53326, 53427, 0);
53.2408 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(26).getChildBlocks().get(0).getChildBlocks(), 15, PlsqlBlockType.IF, "ELSIF (name_ = 'P5_KEY')", true, 53434, 53498, 0);
53.2409 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(26).getChildBlocks().get(0).getChildBlocks(), 16, PlsqlBlockType.IF, "ELSIF (name_ = 'P5_VALUE')", true, 53505, 53606, 0);
53.2410 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(26).getChildBlocks().get(0).getChildBlocks(), 17, PlsqlBlockType.IF, "ELSIF (name_ = 'P6_KEY')", true, 53613, 53677, 0);
53.2411 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(26).getChildBlocks().get(0).getChildBlocks(), 18, PlsqlBlockType.IF, "ELSIF (name_ = 'P6_VALUE')", true, 53684, 53785, 0);
53.2412 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(26).getChildBlocks().get(0).getChildBlocks(), 19, PlsqlBlockType.IF, "ELSIF (name_ = 'P7_KEY')", true, 53792, 53856, 0);
53.2413 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(26).getChildBlocks().get(0).getChildBlocks(), 20, PlsqlBlockType.IF, "ELSIF (name_ = 'P7_VALUE')", true, 53863, 53964, 0);
53.2414 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(26).getChildBlocks().get(0).getChildBlocks(), 21, PlsqlBlockType.IF, "ELSIF (name_ = 'P8_KEY')", true, 53971, 54035, 0);
53.2415 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(26).getChildBlocks().get(0).getChildBlocks(), 22, PlsqlBlockType.IF, "ELSIF (name_ = 'P8_VALUE')", true, 54042, 54143, 0);
53.2416 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(26).getChildBlocks().get(0).getChildBlocks(), 23, PlsqlBlockType.IF, "ELSIF (name_ = 'P9_KEY')", true, 54150, 54214, 0);
53.2417 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(26).getChildBlocks().get(0).getChildBlocks(), 24, PlsqlBlockType.IF, "ELSIF (name_ = 'P9_VALUE')", true, 54221, 54322, 0);
53.2418 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(26).getChildBlocks().get(0).getChildBlocks(), 25, PlsqlBlockType.IF, "ELSIF (name_ = 'P10_KEY')", true, 54329, 54395, 0);
53.2419 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(26).getChildBlocks().get(0).getChildBlocks(), 26, PlsqlBlockType.IF, "ELSIF (name_ = 'P10_VALUE')", true, 54402, 54505, 0);
53.2420 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(26).getChildBlocks().get(0).getChildBlocks(), 27, PlsqlBlockType.IF, "ELSIF (name_ = 'P11_KEY')", true, 54512, 54578, 0);
53.2421 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(26).getChildBlocks().get(0).getChildBlocks(), 28, PlsqlBlockType.IF, "ELSIF (name_ = 'P11_VALUE')", true, 54585, 54688, 0);
53.2422 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(26).getChildBlocks().get(0).getChildBlocks(), 29, PlsqlBlockType.IF, "ELSIF (name_ = 'P12_KEY')", true, 54695, 54761, 0);
53.2423 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(26).getChildBlocks().get(0).getChildBlocks(), 30, PlsqlBlockType.IF, "ELSIF (name_ = 'P12_VALUE')", true, 54768, 54871, 0);
53.2424 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(26).getChildBlocks().get(0).getChildBlocks(), 31, PlsqlBlockType.IF, "ELSIF (name_ = 'ACTION')", true, 54878, 54942, 0);
53.2425 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(26).getChildBlocks().get(0).getChildBlocks(), 32, PlsqlBlockType.IF, "ELSIF (name_ = 'MEA_STATE_CHANGE_DATE')", true, 54949, 55074, 0);
53.2426 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(26).getChildBlocks().get(0).getChildBlocks(), 33, PlsqlBlockType.IF, "ELSIF (name_ = 'BUDGET_VERSION')", true, 55081, 55161, 0);
53.2427 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(26).getChildBlocks().get(0).getChildBlocks(), 34, PlsqlBlockType.IF, "ELSE", true, 55168, 55246, 0);
53.2428 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(26).getChildBlocks(), 1, PlsqlBlockType.IF, "IF ( newrec_.scorecard_object IS NOT NULL)", true, 55265, 56356, 0);
53.2429 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 27, PlsqlBlockType.PROCEDURE_IMPL, "Insert___", true, 57009, 59227, 1);
53.2430 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(27).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "INSERT", true, 57323, 59090, 0);
53.2431 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 28, PlsqlBlockType.COMMENT, "-- IMPLEMENTATION BASE METHODS FOR UPDATE ", true, 59229, 59813, 0);
53.2432 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 29, PlsqlBlockType.PROCEDURE_IMPL, "Unpack_Check_Update___", true, 59815, 66405, 2);
53.2433 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks(), 0, PlsqlBlockType.WHILE_LOOP, "(Client_SYS.Get_Next_From_Attr(attr_, ptr_, name_, value_))", true, 60196, 63689, 36);
53.2434 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (name_ = 'ENVIRONMENT')", true, 60273, 60407, 0);
53.2435 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (name_ = 'SCORECARD')", true, 60414, 60554, 0);
53.2436 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(0).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSIF (name_ = 'YEAR')", true, 60561, 60693, 0);
53.2437 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(0).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSIF (name_ = 'VERSION')", true, 60700, 60783, 0);
53.2438 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(0).getChildBlocks(), 4, PlsqlBlockType.IF, "ELSIF (name_ = 'SCORECARD_OBJECT')", true, 60790, 60874, 0);
53.2439 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(0).getChildBlocks(), 5, PlsqlBlockType.IF, "ELSIF (name_ = 'OBJECT_TYPE')", true, 60881, 60955, 0);
53.2440 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(0).getChildBlocks(), 6, PlsqlBlockType.IF, "ELSIF (name_ = 'YEAR_VALUE')", true, 60962, 61067, 0);
53.2441 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(0).getChildBlocks(), 7, PlsqlBlockType.IF, "ELSIF (name_ = 'P1_KEY')", true, 61074, 61138, 0);
53.2442 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(0).getChildBlocks(), 8, PlsqlBlockType.IF, "ELSIF (name_ = 'P1_VALUE')", true, 61145, 61246, 0);
53.2443 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(0).getChildBlocks(), 9, PlsqlBlockType.IF, "ELSIF (name_ = 'P2_KEY')", true, 61253, 61317, 0);
53.2444 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(0).getChildBlocks(), 10, PlsqlBlockType.IF, "ELSIF (name_ = 'P2_VALUE')", true, 61324, 61425, 0);
53.2445 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(0).getChildBlocks(), 11, PlsqlBlockType.IF, "ELSIF (name_ = 'P3_KEY')", true, 61432, 61496, 0);
53.2446 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(0).getChildBlocks(), 12, PlsqlBlockType.IF, "ELSIF (name_ = 'P3_VALUE')", true, 61503, 61604, 0);
53.2447 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(0).getChildBlocks(), 13, PlsqlBlockType.IF, "ELSIF (name_ = 'P4_KEY')", true, 61611, 61675, 0);
53.2448 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(0).getChildBlocks(), 14, PlsqlBlockType.IF, "ELSIF (name_ = 'P4_VALUE')", true, 61682, 61783, 0);
53.2449 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(0).getChildBlocks(), 15, PlsqlBlockType.IF, "ELSIF (name_ = 'P5_KEY')", true, 61790, 61854, 0);
53.2450 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(0).getChildBlocks(), 16, PlsqlBlockType.IF, "ELSIF (name_ = 'P5_VALUE')", true, 61861, 61962, 0);
53.2451 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(0).getChildBlocks(), 17, PlsqlBlockType.IF, "ELSIF (name_ = 'P6_KEY')", true, 61969, 62033, 0);
53.2452 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(0).getChildBlocks(), 18, PlsqlBlockType.IF, "ELSIF (name_ = 'P6_VALUE')", true, 62040, 62141, 0);
53.2453 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(0).getChildBlocks(), 19, PlsqlBlockType.IF, "ELSIF (name_ = 'P7_KEY')", true, 62148, 62212, 0);
53.2454 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(0).getChildBlocks(), 20, PlsqlBlockType.IF, "ELSIF (name_ = 'P7_VALUE')", true, 62219, 62320, 0);
53.2455 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(0).getChildBlocks(), 21, PlsqlBlockType.IF, "ELSIF (name_ = 'P8_KEY')", true, 62327, 62391, 0);
53.2456 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(0).getChildBlocks(), 22, PlsqlBlockType.IF, "ELSIF (name_ = 'P8_VALUE')", true, 62398, 62499, 0);
53.2457 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(0).getChildBlocks(), 23, PlsqlBlockType.IF, "ELSIF (name_ = 'P9_KEY')", true, 62506, 62570, 0);
53.2458 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(0).getChildBlocks(), 24, PlsqlBlockType.IF, "ELSIF (name_ = 'P9_VALUE')", true, 62577, 62678, 0);
53.2459 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(0).getChildBlocks(), 25, PlsqlBlockType.IF, "ELSIF (name_ = 'P10_KEY')", true, 62685, 62751, 0);
53.2460 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(0).getChildBlocks(), 26, PlsqlBlockType.IF, "ELSIF (name_ = 'P10_VALUE')", true, 62758, 62861, 0);
53.2461 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(0).getChildBlocks(), 27, PlsqlBlockType.IF, "ELSIF (name_ = 'P11_KEY')", true, 62868, 62934, 0);
53.2462 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(0).getChildBlocks(), 28, PlsqlBlockType.IF, "ELSIF (name_ = 'P11_VALUE')", true, 62941, 63044, 0);
53.2463 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(0).getChildBlocks(), 29, PlsqlBlockType.IF, "ELSIF (name_ = 'P12_KEY')", true, 63051, 63117, 0);
53.2464 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(0).getChildBlocks(), 30, PlsqlBlockType.IF, "ELSIF (name_ = 'P12_VALUE')", true, 63124, 63227, 0);
53.2465 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(0).getChildBlocks(), 31, PlsqlBlockType.IF, "ELSIF (name_ = 'ACTION')", true, 63234, 63298, 0);
53.2466 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(0).getChildBlocks(), 32, PlsqlBlockType.IF, "ELSIF (name_ = 'MEA_STATE_CHANGE_DATE')", true, 63305, 63430, 0);
53.2467 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(0).getChildBlocks(), 33, PlsqlBlockType.IF, "ELSIF (name_ = 'BUDGET_VERSION')", true, 63437, 63517, 0);
53.2468 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(0).getChildBlocks(), 34, PlsqlBlockType.IF, "ELSIF (name_ = 'FROM_BUDPRO')", true, 63524, 63591, 0);
53.2469 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(0).getChildBlocks(), 35, PlsqlBlockType.IF, "ELSE", true, 63598, 63676, 0);
53.2470 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks(), 1, PlsqlBlockType.IF, "IF ( newrec_.scorecard_object IS NOT NULL AND from_budpro_ = 'FALSE')", true, 63695, 65823, 13);
53.2471 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF ( newrec_.year_value != NVL(oldrec_.year_value,0))", true, 63885, 64029, 0);
53.2472 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.IF, "IF ( newrec_.p1_value != NVL(oldrec_.p1_value,0))", true, 64036, 64177, 0);
53.2473 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(1).getChildBlocks(), 2, PlsqlBlockType.IF, "IF ( newrec_.p2_value != NVL(oldrec_.p2_value,0))", true, 64184, 64325, 0);
53.2474 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(1).getChildBlocks(), 3, PlsqlBlockType.IF, "IF ( newrec_.p3_value != NVL(oldrec_.p3_value,0))", true, 64332, 64473, 0);
53.2475 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(1).getChildBlocks(), 4, PlsqlBlockType.IF, "IF ( newrec_.p4_value != NVL(oldrec_.p4_value,0))", true, 64480, 64621, 0);
53.2476 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(1).getChildBlocks(), 5, PlsqlBlockType.IF, "IF ( newrec_.p5_value != NVL(oldrec_.p5_value,0))", true, 64628, 64769, 0);
53.2477 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(1).getChildBlocks(), 6, PlsqlBlockType.IF, "IF ( newrec_.p6_value != NVL(oldrec_.p6_value,0))", true, 64776, 64917, 0);
53.2478 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(1).getChildBlocks(), 7, PlsqlBlockType.IF, "IF ( newrec_.p7_value != NVL(oldrec_.p7_value,0))", true, 64924, 65065, 0);
53.2479 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(1).getChildBlocks(), 8, PlsqlBlockType.IF, "IF ( newrec_.p8_value != NVL(oldrec_.p8_value,0))", true, 65072, 65213, 0);
53.2480 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(1).getChildBlocks(), 9, PlsqlBlockType.IF, "IF ( newrec_.p9_value != NVL(oldrec_.p9_value,0))", true, 65220, 65361, 0);
53.2481 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(1).getChildBlocks(), 10, PlsqlBlockType.IF, "IF ( newrec_.p10_value != NVL(oldrec_.p10_value,0))", true, 65368, 65511, 0);
53.2482 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(1).getChildBlocks(), 11, PlsqlBlockType.IF, "IF ( newrec_.p11_value != NVL(oldrec_.p11_value,0))", true, 65518, 65661, 0);
53.2483 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(29).getChildBlocks().get(1).getChildBlocks(), 12, PlsqlBlockType.IF, "IF ( newrec_.p12_value != NVL(oldrec_.p12_value,0))", true, 65668, 65811, 0);
53.2484 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 30, PlsqlBlockType.PROCEDURE_IMPL, "Update___", true, 66408, 69988, 2);
53.2485 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(30).getChildBlocks(), 0, PlsqlBlockType.IF, "IF by_keys_", true, 66756, 68416, 1);
53.2486 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(30).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE scorecard_input_value_tab", true, 66779, 68415, 0);
53.2487 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(30).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 68420, 69893, 1);
53.2488 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(30).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE scorecard_input_value_tab", true, 68431, 69881, 0);
53.2489 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 31, PlsqlBlockType.COMMENT, "-- IMPLEMENTATION BASE METHODS FOR DELETE ", true, 69990, 70587, 0);
53.2490 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 32, PlsqlBlockType.PROCEDURE_IMPL, "Check_Delete___", true, 70589, 70910, 0);
53.2491 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 33, PlsqlBlockType.PROCEDURE_IMPL, "Delete___", true, 70913, 71317, 1);
53.2492 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(33).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "DELETE", true, 71229, 71301, 0);
53.2493 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 34, PlsqlBlockType.COMMENT, "-- PRIVATE BASE METHODS ", true, 71319, 73620, 0);
53.2494 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 35, PlsqlBlockType.PROCEDURE_IMPL, "Lock__", true, 73622, 73917, 0);
53.2495 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 36, PlsqlBlockType.PROCEDURE_IMPL, "New__", true, 73920, 74524, 3);
53.2496 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(36).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (action_ = 'PREPARE')", true, 74193, 74254, 0);
53.2497 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(36).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (action_ = 'CHECK')", true, 74258, 74334, 0);
53.2498 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(36).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSIF (action_ = 'DO')", true, 74338, 74476, 0);
53.2499 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 37, PlsqlBlockType.PROCEDURE_IMPL, "Modify__", true, 74527, 75249, 2);
53.2500 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(37).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (action_ = 'CHECK')", true, 74833, 74960, 0);
53.2501 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(37).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (action_ = 'DO')", true, 74964, 75198, 0);
53.2502 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 38, PlsqlBlockType.PROCEDURE_IMPL, "Remove__", true, 75252, 75804, 2);
53.2503 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(38).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (action_ = 'CHECK')", true, 75487, 75592, 0);
53.2504 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(38).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (action_ = 'DO')", true, 75596, 75753, 0);
53.2505 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 39, PlsqlBlockType.COMMENT, "-- PUBLIC BASE METHODS ", true, 75806, 76259, 0);
53.2506 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 40, PlsqlBlockType.PROCEDURE_IMPL, "Exist", true, 76261, 76646, 1);
53.2507 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(40).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (NOT Check_Exist___(environment_, scorecard_, year_, version_, scorecard_object_))", true, 76490, 76635, 0);
53.2508 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 41, PlsqlBlockType.COMMENT, "-- PUBLIC TRANSLATION METHODS ", true, 76648, 76881, 0);
53.2509 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 42, PlsqlBlockType.PROCEDURE_IMPL, "Language_Refreshed", true, 76882, 77029, 0);
53.2510 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 43, PlsqlBlockType.COMMENT, "-- LU SPECIFIC IMPLEMENTATION METHODS ", true, 77030, 77263, 0);
53.2511 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 44, PlsqlBlockType.PROCEDURE_IMPL, "Distribute_Input_Values___", true, 77266, 93408, 9);
53.2512 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_child_scorecards", true, 77559, 77716, 0);
53.2513 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks(), 1, PlsqlBlockType.CURSOR, "get_open_child_scr", true, 77721, 77889, 0);
53.2514 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks(), 2, PlsqlBlockType.CURSOR, "get_input_values", true, 77894, 78348, 0);
53.2515 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks(), 3, PlsqlBlockType.CURSOR, "get_attribute_value_sum", true, 78353, 78709, 0);
53.2516 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks(), 4, PlsqlBlockType.STATEMENT, "INDEX BY BINARY_INTEGER", true, 80236, 80259, 0);
53.2517 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks(), 5, PlsqlBlockType.IF, "IF value_distribution_type_ IS NULL", true, 80724, 81173, 2);
53.2518 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks().get(5).getChildBlocks(), 0, PlsqlBlockType.IF, "IF object_type_='MEASURE'", true, 80771, 80968, 0);
53.2519 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks().get(5).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 80975, 81162, 0);
53.2520 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks(), 6, PlsqlBlockType.COMMENT, "-- END IF;", true, 82098, 82107, 0);
53.2521 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks(), 7, PlsqlBlockType.FOR_LOOP, "temp_period_count_ IN 1..period_count_", true, 82113, 82390, 1);
53.2522 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks().get(7).getChildBlocks(), 0, PlsqlBlockType.IF, "IF parent_val_arr_(temp_period_count_) IS NULL", true, 82168, 82376, 0);
53.2523 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks(), 8, PlsqlBlockType.FOR_LOOP, "child_scorecards_ IN get_child_scorecards", true, 82471, 93376, 3);
53.2524 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks().get(8).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (temp_val_ = '1')", true, 82742, 82922, 0);
53.2525 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks().get(8).getChildBlocks(), 1, PlsqlBlockType.IF, "IF NOT Check_Exist___(environment_,child_scorecards_.scorecard,year_,version_,scorecard_object_)", true, 82930, 83184, 0);
53.2526 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks().get(8).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSE", true, 83192, 93363, 2);
53.2527 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.IF, "IF value_distribution_type_ = 'PERCENTAGE'", true, 83901, 88188, 3);
53.2528 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF hierachical_dist_logic_ IS NULL", true, 83961, 84255, 1);
53.2529 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "temp_period_count_ IN 1..period_count_", true, 84015, 84255, 0);
53.2530 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF hierachical_dist_logic_='VERSION'", true, 84269, 85607, 2);
53.2531 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF distribution_version_ IS NULL", true, 84328, 84834, 2);
53.2532 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF object_type_='MEASURE'", true, 84383, 84588, 0);
53.2533 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 84606, 84812, 0);
53.2534 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.FOR_LOOP, "temp_period_count_ IN 1..period_count_", true, 85159, 85607, 0);
53.2535 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSIF hierachical_dist_logic_='ATTRIBUTE'", true, 85620, 88135, 5);
53.2536 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.IF, "IF distribution_attribute_ IS NULL", true, 85681, 86195, 2);
53.2537 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF object_type_='MEASURE'", true, 85738, 85946, 0);
53.2538 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 85964, 86173, 0);
53.2539 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks(), 1, PlsqlBlockType.IF, "IF attribute_val_str_ IS NULL", true, 86415, 86613, 0);
53.2540 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSE", true, 86628, 87029, 1);
53.2541 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.BEGIN_END, "", true, 86650, 87007, 0);
53.2542 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks(), 3, PlsqlBlockType.BEGIN_END, "", true, 87044, 87751, 1);
53.2543 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks(), 0, PlsqlBlockType.IF, "IF attribute_value_sum_=0", true, 87262, 87480, 0);
53.2544 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks(), 4, PlsqlBlockType.FOR_LOOP, "temp_period_count_ IN 1..period_count_", true, 87767, 88115, 0);
53.2545 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF value_distribution_type_ = 'VALUE'", true, 88198, 92475, 3);
53.2546 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF hierachical_dist_logic_ IS NULL", true, 88256, 88567, 1);
53.2547 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "temp_period_count_ IN 1..period_count_", true, 88311, 88567, 0);
53.2548 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF hierachical_dist_logic_='VERSION'", true, 88580, 89916, 2);
53.2549 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF distribution_version_ IS NULL", true, 88640, 89154, 2);
53.2550 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF object_type_='MEASURE'", true, 88696, 88903, 0);
53.2551 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 88923, 89131, 0);
53.2552 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.FOR_LOOP, "temp_period_count_ IN 1..period_count_", true, 89481, 89916, 0);
53.2553 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks().get(1).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSIF hierachical_dist_logic_='ATTRIBUTE'", true, 89929, 92458, 5);
53.2554 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks().get(1).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.IF, "IF distribution_attribute_ IS NULL", true, 89991, 90511, 2);
53.2555 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks().get(1).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF object_type_='MEASURE'", true, 90049, 90258, 0);
53.2556 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks().get(1).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 90277, 90488, 0);
53.2557 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks().get(1).getChildBlocks().get(2).getChildBlocks(), 1, PlsqlBlockType.IF, "IF attribute_val_str_ IS NULL", true, 90732, 90931, 0);
53.2558 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks().get(1).getChildBlocks().get(2).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSE", true, 90947, 91352, 1);
53.2559 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks().get(1).getChildBlocks().get(2).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.BEGIN_END, "", true, 90970, 91329, 0);
53.2560 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks().get(1).getChildBlocks().get(2).getChildBlocks(), 3, PlsqlBlockType.BEGIN_END, "", true, 91368, 92084, 1);
53.2561 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks().get(1).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks(), 0, PlsqlBlockType.IF, "IF attribute_value_sum_=0", true, 91590, 91809, 0);
53.2562 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(44).getChildBlocks().get(8).getChildBlocks().get(2).getChildBlocks().get(1).getChildBlocks().get(2).getChildBlocks(), 4, PlsqlBlockType.FOR_LOOP, "temp_period_count_ IN 1..period_count_", true, 92101, 92438, 0);
53.2563 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 45, PlsqlBlockType.PROCEDURE_IMPL, "Object_Planned_Date___", true, 93409, 93630, 0);
53.2564 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 46, PlsqlBlockType.FUNCTION_IMPL, "Find_Column___", true, 93632, 95238, 2);
53.2565 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(46).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_record", true, 93883, 94265, 0);
53.2566 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(46).getChildBlocks(), 1, PlsqlBlockType.FOR_LOOP, "rec_ IN get_record", true, 94301, 95198, 12);
53.2567 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(46).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (rec_.p1_key = key_)", true, 94335, 94395, 0);
53.2568 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(46).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (rec_.p2_key = key_)", true, 94402, 94465, 0);
53.2569 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(46).getChildBlocks().get(1).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSIF (rec_.p3_key = key_)", true, 94472, 94535, 0);
53.2570 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(46).getChildBlocks().get(1).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSIF (rec_.p4_key = key_)", true, 94542, 94605, 0);
53.2571 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(46).getChildBlocks().get(1).getChildBlocks(), 4, PlsqlBlockType.IF, "ELSIF (rec_.p5_key = key_)", true, 94612, 94675, 0);
53.2572 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(46).getChildBlocks().get(1).getChildBlocks(), 5, PlsqlBlockType.IF, "ELSIF (rec_.p6_key = key_)", true, 94682, 94745, 0);
53.2573 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(46).getChildBlocks().get(1).getChildBlocks(), 6, PlsqlBlockType.IF, "ELSIF (rec_.p7_key = key_)", true, 94752, 94815, 0);
53.2574 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(46).getChildBlocks().get(1).getChildBlocks(), 7, PlsqlBlockType.IF, "ELSIF (rec_.p8_key = key_)", true, 94822, 94885, 0);
53.2575 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(46).getChildBlocks().get(1).getChildBlocks(), 8, PlsqlBlockType.IF, "ELSIF (rec_.p9_key = key_)", true, 94892, 94955, 0);
53.2576 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(46).getChildBlocks().get(1).getChildBlocks(), 9, PlsqlBlockType.IF, "ELSIF (rec_.p10_key = key_)", true, 94962, 95027, 0);
53.2577 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(46).getChildBlocks().get(1).getChildBlocks(), 10, PlsqlBlockType.IF, "ELSIF (rec_.p11_key = key_)", true, 95034, 95099, 0);
53.2578 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(46).getChildBlocks().get(1).getChildBlocks(), 11, PlsqlBlockType.IF, "ELSIF (rec_.p12_key = key_)", true, 95106, 95185, 0);
53.2579 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 47, PlsqlBlockType.COMMENT, "-- LU SPECIFIC PRIVATE METHODS ", true, 95239, 95472, 0);
53.2580 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 48, PlsqlBlockType.PROCEDURE_IMPL, "Update_Versions__", true, 95475, 96735, 5);
53.2581 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(48).getChildBlocks(), 0, PlsqlBlockType.IF, "IF version_ = 'TAR'", true, 96010, 96102, 0);
53.2582 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(48).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF version_ = 'ACT'", true, 96105, 96200, 0);
53.2583 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(48).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSE", true, 96203, 96289, 0);
53.2584 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(48).getChildBlocks(), 3, PlsqlBlockType.IF, "IF data_mart_='TRUE'", true, 96292, 96508, 0);
53.2585 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(48).getChildBlocks(), 4, PlsqlBlockType.IF, "ELSE", true, 96511, 96712, 0);
53.2586 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 49, PlsqlBlockType.PROCEDURE_IMPL, "Publish__", true, 96737, 98923, 3);
53.2587 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(49).getChildBlocks(), 0, PlsqlBlockType.IF, "IF data_mart_enabled_='TRUE'", true, 97361, 98021, 1);
53.2588 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(49).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF Bp_Scorecard_Fact_API.Check_Exist_By_Object(environment_,scorecard_,period_,object_type_,measure_)='FALSE'", true, 97401, 98021, 2);
53.2589 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(49).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF value_ IS NOT NULL", true, 97525, 97940, 0);
53.2590 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(49).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 97950, 98005, 0);
53.2591 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(49).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 98027, 98685, 1);
53.2592 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(49).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF Scorecard_Value_API.Check_Exist_By_Object(environment_,scorecard_,period_,object_type_,measure_)='FALSE'", true, 98040, 98672, 2);
53.2593 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(49).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF value_ IS NOT NULL", true, 98164, 98589, 0);
53.2594 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(49).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 98601, 98656, 0);
53.2595 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(49).getChildBlocks(), 2, PlsqlBlockType.IF, "IF (flag_ = 'TRUE' AND value_ IS NOT NULL)", true, 98692, 98888, 0);
53.2596 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 50, PlsqlBlockType.PROCEDURE_IMPL, "Publish_Score__", true, 98924, 103003, 5);
53.2597 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(50).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- get measures and components for a specific environment_, scorecard_", true, 99124, 99193, 0);
53.2598 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(50).getChildBlocks(), 1, PlsqlBlockType.CURSOR, "get_measure", true, 99196, 99373, 0);
53.2599 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(50).getChildBlocks(), 2, PlsqlBlockType.COMMENT, "-- get Id, version of a scorecard record by keys", true, 99377, 99425, 0);
53.2600 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(50).getChildBlocks(), 3, PlsqlBlockType.CURSOR, "get_objid", true, 99428, 99568, 0);
53.2601 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(50).getChildBlocks(), 4, PlsqlBlockType.FOR_LOOP, "get_rec_ in get_measure", true, 99808, 102807, 3);
53.2602 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(50).getChildBlocks().get(4).getChildBlocks(), 0, PlsqlBlockType.IF, "if publish_type_ = 'ENV'", true, 99986, 100144, 0);
53.2603 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(50).getChildBlocks().get(4).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 100150, 100262, 0);
53.2604 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(50).getChildBlocks().get(4).getChildBlocks(), 2, PlsqlBlockType.IF, "if (isScorecardPlan = 'TRUE' or isEnvPlan = 'TRUE' )", true, 100269, 102795, 13);
53.2605 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(50).getChildBlocks().get(4).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.IF, "if get_rec_.p1_key is not null", true, 100336, 100528, 0);
53.2606 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(50).getChildBlocks().get(4).getChildBlocks().get(2).getChildBlocks(), 1, PlsqlBlockType.IF, "if get_rec_.p2_key is not null", true, 100537, 100728, 0);
53.2607 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(50).getChildBlocks().get(4).getChildBlocks().get(2).getChildBlocks(), 2, PlsqlBlockType.IF, "if get_rec_.p3_key is not null", true, 100737, 100928, 0);
53.2608 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(50).getChildBlocks().get(4).getChildBlocks().get(2).getChildBlocks(), 3, PlsqlBlockType.IF, "if get_rec_.p4_key is not null", true, 100937, 101129, 0);
53.2609 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(50).getChildBlocks().get(4).getChildBlocks().get(2).getChildBlocks(), 4, PlsqlBlockType.IF, "if get_rec_.p5_key is not null", true, 101137, 101329, 0);
53.2610 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(50).getChildBlocks().get(4).getChildBlocks().get(2).getChildBlocks(), 5, PlsqlBlockType.IF, "if get_rec_.p6_key is not null", true, 101338, 101531, 0);
53.2611 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(50).getChildBlocks().get(4).getChildBlocks().get(2).getChildBlocks(), 6, PlsqlBlockType.IF, "if get_rec_.p7_key is not null", true, 101540, 101733, 0);
53.2612 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(50).getChildBlocks().get(4).getChildBlocks().get(2).getChildBlocks(), 7, PlsqlBlockType.IF, "if get_rec_.p8_key is not null", true, 101742, 101934, 0);
53.2613 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(50).getChildBlocks().get(4).getChildBlocks().get(2).getChildBlocks(), 8, PlsqlBlockType.IF, "if get_rec_.p9_key is not null", true, 101943, 102136, 0);
53.2614 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(50).getChildBlocks().get(4).getChildBlocks().get(2).getChildBlocks(), 9, PlsqlBlockType.IF, "if get_rec_.p10_key is not null", true, 102145, 102341, 0);
53.2615 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(50).getChildBlocks().get(4).getChildBlocks().get(2).getChildBlocks(), 10, PlsqlBlockType.COMMENT, "-- Call Id ", true, 102350, 102372, 0);
53.2616 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(50).getChildBlocks().get(4).getChildBlocks().get(2).getChildBlocks(), 11, PlsqlBlockType.IF, "if get_rec_.p11_key is not null", true, 102381, 102577, 0);
53.2617 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(50).getChildBlocks().get(4).getChildBlocks().get(2).getChildBlocks(), 12, PlsqlBlockType.IF, "if get_rec_.p12_key is not null", true, 102586, 102782, 0);
53.2618 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 51, PlsqlBlockType.PROCEDURE_IMPL, "Start_Publish_Environments__", true, 103004, 103459, 0);
53.2619 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 52, PlsqlBlockType.PROCEDURE_IMPL, "Set_Publish_Environments__", true, 103460, 103746, 0);
53.2620 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 53, PlsqlBlockType.PROCEDURE_IMPL, "Start_Publish_Scorecards__", true, 103747, 104196, 0);
53.2621 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 54, PlsqlBlockType.PROCEDURE_IMPL, "Prepare_Scorecard_Publish__", true, 104197, 104576, 0);
53.2622 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 55, PlsqlBlockType.PROCEDURE_IMPL, "Plan__", true, 104577, 105195, 2);
53.2623 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(55).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (action_ = 'CHECK')", true, 104849, 104888, 0);
53.2624 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(55).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (action_ = 'DO')", true, 104892, 105146, 0);
53.2625 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 56, PlsqlBlockType.COMMENT, "-- LU SPECIFIC PROTECTED METHODS ", true, 105196, 105665, 0);
53.2626 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 57, PlsqlBlockType.FUNCTION_IMPL, "Get_Year", true, 105668, 106214, 1);
53.2627 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(57).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_attr", true, 105876, 106110, 0);
53.2628 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 58, PlsqlBlockType.FUNCTION_IMPL, "Get_Distributed_Attr", true, 106215, 107799, 6);
53.2629 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(58).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- distribute_str_ VARCHAR2(20);", true, 106631, 106668, 0);
53.2630 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(58).getChildBlocks(), 1, PlsqlBlockType.CURSOR, "version_cur_", true, 106673, 106882, 0);
53.2631 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(58).getChildBlocks(), 2, PlsqlBlockType.CURSOR, "total_cur_", true, 106890, 107095, 0);
53.2632 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(58).getChildBlocks(), 3, PlsqlBlockType.IF, "IF total_val_ IS NULL", true, 107255, 107378, 0);
53.2633 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(58).getChildBlocks(), 4, PlsqlBlockType.COMMENT, "-- distribute_string_ := \"\";", true, 107382, 107409, 0);
53.2634 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(58).getChildBlocks(), 5, PlsqlBlockType.FOR_LOOP, "temp_ IN version_cur_", true, 107413, 107744, 0);
53.2635 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 59, PlsqlBlockType.FUNCTION_IMPL, "Get_Action", true, 107800, 108354, 1);
53.2636 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(59).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_attr", true, 108012, 108248, 0);
53.2637 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 60, PlsqlBlockType.FUNCTION_IMPL, "Get_Mea_State_Change_Date", true, 108355, 108965, 1);
53.2638 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(60).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_attr", true, 108593, 108844, 0);
53.2639 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 61, PlsqlBlockType.FUNCTION_IMPL, "Get_Budget_Version", true, 108966, 109552, 1);
53.2640 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(61).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_attr", true, 109194, 109438, 0);
53.2641 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 62, PlsqlBlockType.PROCEDURE_IMPL, "Update_Sales_Values", true, 109553, 127635, 23);
53.2642 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "INDEX BY BINARY_INTEGER", true, 110844, 110867, 0);
53.2643 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks(), 1, PlsqlBlockType.CURSOR, "total_index_cur_", true, 110953, 111109, 0);
53.2644 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks(), 2, PlsqlBlockType.CURSOR, "get_period", true, 111114, 111273, 0);
53.2645 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks(), 3, PlsqlBlockType.COMMENT, "-- Bug 65540, begin", true, 111278, 111297, 0);
53.2646 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks(), 4, PlsqlBlockType.COMMENT, "-- Bug 65540, end", true, 111369, 111386, 0);
53.2647 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks(), 5, PlsqlBlockType.COMMENT, "-- val_arr_ Val_Array_Type;", true, 111562, 111589, 0);
53.2648 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks(), 6, PlsqlBlockType.IF, "IF (from_where_ = 'FROM_COMPONENT')", true, 111594, 112151, 0);
53.2649 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks(), 7, PlsqlBlockType.IF, "IF (from_where_ = 'FROM_MEASURE')", true, 112156, 112708, 0);
53.2650 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks(), 8, PlsqlBlockType.IF, "IF (dist_logic_ = 'INDEX')", true, 112713, 114046, 2);
53.2651 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks().get(8).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (total_index_ IS NULL)", true, 112863, 113011, 0);
53.2652 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks().get(8).getChildBlocks(), 1, PlsqlBlockType.LOOP, "", true, 113136, 114022, 3);
53.2653 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks().get(8).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (index_value_ IS NULL)", true, 113366, 113556, 0);
53.2654 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks().get(8).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (dist_type_ = 'PERCENTAGE')", true, 113566, 113747, 0);
53.2655 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks().get(8).getChildBlocks().get(1).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSIF (dist_type_ = 'VALUE')", true, 113757, 113885, 0);
53.2656 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks(), 9, PlsqlBlockType.IF, "ELSIF (dist_logic_ != 'INDEX')", true, 114050, 118620, 18);
53.2657 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks().get(9).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (dist_ver_ = 'ACT')", true, 114092, 114162, 0);
53.2658 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks().get(9).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (dist_ver_ = 'TAR')", true, 114169, 114242, 0);
53.2659 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks().get(9).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSIF (dist_ver_ = 'V1')", true, 114249, 114317, 0);
53.2660 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks().get(9).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSIF (dist_ver_ = 'V2')", true, 114324, 114392, 0);
53.2661 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks().get(9).getChildBlocks(), 4, PlsqlBlockType.IF, "ELSIF (dist_ver_ = 'V3')", true, 114399, 114467, 0);
53.2662 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks().get(9).getChildBlocks(), 5, PlsqlBlockType.IF, "ELSIF (dist_ver_ = 'V4')", true, 114474, 114542, 0);
53.2663 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks().get(9).getChildBlocks(), 6, PlsqlBlockType.IF, "ELSIF (dist_ver_ = 'V5')", true, 114549, 114617, 0);
53.2664 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks().get(9).getChildBlocks(), 7, PlsqlBlockType.IF, "ELSIF (dist_ver_ = 'V6')", true, 114624, 114692, 0);
53.2665 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks().get(9).getChildBlocks(), 8, PlsqlBlockType.IF, "ELSIF (dist_ver_ = 'V7')", true, 114699, 114767, 0);
53.2666 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks().get(9).getChildBlocks(), 9, PlsqlBlockType.IF, "ELSIF (dist_ver_ = 'V8')", true, 114774, 114842, 0);
53.2667 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks().get(9).getChildBlocks(), 10, PlsqlBlockType.IF, "ELSIF (dist_ver_ = 'V9')", true, 114849, 114917, 0);
53.2668 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks().get(9).getChildBlocks(), 11, PlsqlBlockType.IF, "ELSIF (dist_ver_ = 'V10')", true, 114924, 115008, 0);
53.2669 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks().get(9).getChildBlocks(), 12, PlsqlBlockType.IF, "IF ( from_where_= 'FROM_COMPONENT')", true, 115016, 115714, 0);
53.2670 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks().get(9).getChildBlocks(), 13, PlsqlBlockType.IF, "IF ( from_where_= 'FROM_MEASURE')", true, 115722, 116412, 0);
53.2671 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks().get(9).getChildBlocks(), 14, PlsqlBlockType.COMMENT, "-- ifs_assert_safe shsalk 20060117", true, 116420, 116454, 0);
53.2672 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks().get(9).getChildBlocks(), 15, PlsqlBlockType.IF, "IF (total_val_ IS NULL)", true, 116610, 116767, 0);
53.2673 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks().get(9).getChildBlocks(), 16, PlsqlBlockType.COMMENT, "-- ifs_assert_safe shsalk 20060117", true, 116828, 116862, 0);
53.2674 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks().get(9).getChildBlocks(), 17, PlsqlBlockType.FOR_LOOP, "temp1_ USING environment_,scorecard_,component_,year_;", true, 116887, 118583, 2);
53.2675 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks().get(9).getChildBlocks().get(17).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (version_val_ IS NULL)", true, 117095, 117278, 0);
53.2676 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks().get(9).getChildBlocks().get(17).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 117288, 118457, 2);
53.2677 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks().get(9).getChildBlocks().get(17).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (dist_logic_ = 'SYB')", true, 117305, 118034, 3);
53.2678 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks().get(9).getChildBlocks().get(17).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (index_value_ IS NULL)", true, 117448, 117671, 0);
53.2679 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks().get(9).getChildBlocks().get(17).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (dist_type_ = 'PERCENTAGE')", true, 117687, 117873, 0);
53.2680 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks().get(9).getChildBlocks().get(17).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSIF (dist_type_ = 'VALUE')", true, 117889, 118034, 0);
53.2681 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks().get(9).getChildBlocks().get(17).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (dist_logic_ = 'VERSION')", true, 118047, 118440, 2);
53.2682 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks().get(9).getChildBlocks().get(17).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (dist_type_ = 'PERCENTAGE')", true, 118099, 118272, 0);
53.2683 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks().get(9).getChildBlocks().get(17).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (dist_type_ = 'VALUE')", true, 118288, 118420, 0);
53.2684 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks(), 10, PlsqlBlockType.IF, "IF (dist_logic_ != 'VERSION')", true, 118778, 119134, 2);
53.2685 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks().get(10).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (dist_type_ = 'PERCENTAGE')", true, 118820, 118921, 0);
53.2686 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks().get(10).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (year_value_ != total_dist_val_)", true, 118929, 119123, 1);
53.2687 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks().get(10).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "i IN 1..count_", true, 118979, 119109, 0);
53.2688 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks(), 11, PlsqlBlockType.IF, "IF (count_= 1)", true, 119139, 119608, 1);
53.2689 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks().get(11).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE scorecard_input_value_tab", true, 119164, 119607, 0);
53.2690 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks(), 12, PlsqlBlockType.IF, "ELSIF (count_= 2)", true, 119612, 120125, 1);
53.2691 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks().get(12).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE scorecard_input_value_tab", true, 119640, 120124, 0);
53.2692 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks(), 13, PlsqlBlockType.IF, "ELSIF (count_= 3)", true, 120129, 120686, 1);
53.2693 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks().get(13).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE scorecard_input_value_tab", true, 120157, 120685, 0);
53.2694 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks(), 14, PlsqlBlockType.IF, "ELSIF (count_= 4)", true, 120690, 121288, 1);
53.2695 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks().get(14).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE scorecard_input_value_tab", true, 120718, 121287, 0);
53.2696 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks(), 15, PlsqlBlockType.IF, "ELSIF (count_= 5)", true, 121292, 121929, 1);
53.2697 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks().get(15).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE scorecard_input_value_tab", true, 121320, 121928, 0);
53.2698 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks(), 16, PlsqlBlockType.IF, "ELSIF (count_= 6)", true, 121933, 122613, 1);
53.2699 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks().get(16).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE scorecard_input_value_tab", true, 121961, 122612, 0);
53.2700 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks(), 17, PlsqlBlockType.IF, "ELSIF (count_= 7)", true, 122617, 123338, 1);
53.2701 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks().get(17).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE scorecard_input_value_tab", true, 122645, 123337, 0);
53.2702 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks(), 18, PlsqlBlockType.IF, "ELSIF (count_= 8)", true, 123342, 124104, 1);
53.2703 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks().get(18).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE scorecard_input_value_tab", true, 123370, 124103, 0);
53.2704 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks(), 19, PlsqlBlockType.IF, "ELSIF (count_= 9)", true, 124108, 124911, 1);
53.2705 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks().get(19).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE scorecard_input_value_tab", true, 124136, 124910, 0);
53.2706 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks(), 20, PlsqlBlockType.IF, "ELSIF (count_= 10)", true, 124915, 125762, 1);
53.2707 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks().get(20).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE scorecard_input_value_tab", true, 124944, 125761, 0);
53.2708 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks(), 21, PlsqlBlockType.IF, "ELSIF (count_= 11)", true, 125766, 126657, 1);
53.2709 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks().get(21).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE scorecard_input_value_tab", true, 125796, 126656, 0);
53.2710 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks(), 22, PlsqlBlockType.IF, "ELSIF (count_= 12)", true, 126661, 127609, 1);
53.2711 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(62).getChildBlocks().get(22).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE scorecard_input_value_tab", true, 126691, 127594, 0);
53.2712 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 63, PlsqlBlockType.PROCEDURE_IMPL, "Update_Distributed_Values", true, 127636, 151802, 2);
53.2713 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (action_value_ = 'TRUE')", true, 128411, 151438, 3);
53.2714 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (from_where_ = 'FROM_COMPONENT')", true, 128546, 128772, 0);
53.2715 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (from_where_ = 'FROM_MEASURE')", true, 128780, 128861, 0);
53.2716 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks(), 2, PlsqlBlockType.IF, "IF NOT(ref_type_ = 'REFERENCE')", true, 128869, 151438, 4);
53.2717 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (from_where_ = 'FROM_COMPONENT')", true, 128916, 129190, 0);
53.2718 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (from_where_ = 'FROM_MEASURE')", true, 129201, 129471, 0);
53.2719 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks(), 2, PlsqlBlockType.IF, "IF (year_value_ IS NULL)", true, 129543, 129971, 1);
53.2720 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE scorecard_input_value_tab", true, 129585, 129970, 0);
53.2721 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSE", true, 129981, 151424, 3);
53.2722 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (dist_type_ = 'PERCENTAGE' AND dist_logic_ IS NULL)", true, 129998, 140747, 12);
53.2723 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (period_count_ = 1)", true, 130073, 130652, 1);
53.2724 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE scorecard_input_value_tab", true, 130120, 130651, 0);
53.2725 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (period_count_ = 2)", true, 130668, 131302, 1);
53.2726 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE scorecard_input_value_tab", true, 130718, 131301, 0);
53.2727 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSIF (period_count_ = 3)", true, 131318, 132005, 1);
53.2728 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE scorecard_input_value_tab", true, 131368, 132004, 0);
53.2729 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSIF (period_count_ = 4)", true, 132021, 132761, 1);
53.2730 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks().get(3).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE scorecard_input_value_tab", true, 132071, 132760, 0);
53.2731 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks(), 4, PlsqlBlockType.IF, "ELSIF (period_count_ = 5)", true, 132777, 133570, 1);
53.2732 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks().get(4).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE scorecard_input_value_tab", true, 132827, 133569, 0);
53.2733 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks(), 5, PlsqlBlockType.IF, "ELSIF (period_count_ = 6)", true, 133586, 134432, 1);
53.2734 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks().get(5).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE scorecard_input_value_tab", true, 133636, 134431, 0);
53.2735 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks(), 6, PlsqlBlockType.IF, "ELSIF (period_count_ = 7)", true, 134448, 135347, 1);
53.2736 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks().get(6).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE scorecard_input_value_tab", true, 134498, 135346, 0);
53.2737 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks(), 7, PlsqlBlockType.IF, "ELSIF (period_count_ = 8)", true, 135363, 136315, 1);
53.2738 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks().get(7).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE scorecard_input_value_tab", true, 135413, 136314, 0);
53.2739 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks(), 8, PlsqlBlockType.IF, "ELSIF (period_count_ = 9)", true, 136331, 137336, 1);
53.2740 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks().get(8).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE scorecard_input_value_tab", true, 136381, 137335, 0);
53.2741 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks(), 9, PlsqlBlockType.IF, "ELSIF (period_count_ = 10)", true, 137352, 138412, 1);
53.2742 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks().get(9).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE scorecard_input_value_tab", true, 137403, 138411, 0);
53.2743 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks(), 10, PlsqlBlockType.IF, "ELSIF (period_count_ = 11)", true, 138426, 139540, 1);
53.2744 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks().get(10).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE scorecard_input_value_tab", true, 138477, 139539, 0);
53.2745 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks(), 11, PlsqlBlockType.IF, "ELSIF (period_count_ = 12)", true, 139556, 140747, 1);
53.2746 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks().get(11).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE scorecard_input_value_tab", true, 139607, 140723, 0);
53.2747 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (dist_type_ = 'VALUE' AND dist_logic_ IS NULL)", true, 140762, 151120, 12);
53.2748 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (period_count_ = 1)", true, 140912, 141484, 1);
53.2749 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE scorecard_input_value_tab", true, 140959, 141483, 0);
53.2750 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (period_count_ = 2)", true, 141500, 142122, 1);
53.2751 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE scorecard_input_value_tab", true, 141550, 142121, 0);
53.2752 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks().get(1).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSIF (period_count_ = 3)", true, 142138, 142807, 1);
53.2753 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks().get(1).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE scorecard_input_value_tab", true, 142188, 142806, 0);
53.2754 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks().get(1).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSIF (period_count_ = 4)", true, 142823, 143539, 1);
53.2755 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks().get(1).getChildBlocks().get(3).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE scorecard_input_value_tab", true, 142873, 143538, 0);
53.2756 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks().get(1).getChildBlocks(), 4, PlsqlBlockType.IF, "ELSIF (period_count_ = 5)", true, 143555, 144318, 1);
53.2757 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks().get(1).getChildBlocks().get(4).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE scorecard_input_value_tab", true, 143605, 144317, 0);
53.2758 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks().get(1).getChildBlocks(), 5, PlsqlBlockType.IF, "ELSIF (period_count_ = 6)", true, 144334, 145144, 1);
53.2759 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks().get(1).getChildBlocks().get(5).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE scorecard_input_value_tab", true, 144384, 145143, 0);
53.2760 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks().get(1).getChildBlocks(), 6, PlsqlBlockType.IF, "ELSIF (period_count_ = 7)", true, 145160, 146017, 1);
53.2761 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks().get(1).getChildBlocks().get(6).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE scorecard_input_value_tab", true, 145210, 146016, 0);
53.2762 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks().get(1).getChildBlocks(), 7, PlsqlBlockType.IF, "ELSIF (period_count_ = 8)", true, 146033, 146937, 1);
53.2763 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks().get(1).getChildBlocks().get(7).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE scorecard_input_value_tab", true, 146083, 146936, 0);
53.2764 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks().get(1).getChildBlocks(), 8, PlsqlBlockType.IF, "ELSIF (period_count_ = 9)", true, 146953, 147904, 1);
53.2765 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks().get(1).getChildBlocks().get(8).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE scorecard_input_value_tab", true, 147003, 147903, 0);
53.2766 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks().get(1).getChildBlocks(), 9, PlsqlBlockType.IF, "ELSIF (period_count_ = 10)", true, 147920, 148920, 1);
53.2767 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks().get(1).getChildBlocks().get(9).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE scorecard_input_value_tab", true, 147971, 148919, 0);
53.2768 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks().get(1).getChildBlocks(), 10, PlsqlBlockType.IF, "ELSIF (period_count_ = 11)", true, 148936, 149984, 1);
53.2769 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks().get(1).getChildBlocks().get(10).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE scorecard_input_value_tab", true, 148987, 149983, 0);
53.2770 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks().get(1).getChildBlocks(), 11, PlsqlBlockType.IF, "ELSIF (period_count_ = 12)", true, 150000, 151120, 1);
53.2771 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks().get(1).getChildBlocks().get(11).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE scorecard_input_value_tab", true, 150051, 151095, 0);
53.2772 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSIF ((dist_logic_ = 'SYB' OR dist_logic_ = 'VERSION' OR dist_logic_ = 'INDEX') AND (dist_type_ IS NOT NULL))", true, 151133, 151407, 0);
53.2773 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (action_value_ = 'FALSE')", true, 151442, 151771, 1);
53.2774 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(63).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE scorecard_input_value_tab", true, 151485, 151759, 0);
53.2775 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 64, PlsqlBlockType.PROCEDURE_IMPL, "Publish_Scorecard", true, 151803, 152215, 1);
53.2776 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(64).getChildBlocks(), 0, PlsqlBlockType.IF, "if can_modify_ = 'TRUE'", true, 152091, 152192, 0);
53.2777 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 65, PlsqlBlockType.PROCEDURE_IMPL, "Publish_Environment", true, 152216, 153414, 2);
53.2778 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(65).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_scorecard", true, 152335, 152526, 0);
53.2779 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(65).getChildBlocks(), 1, PlsqlBlockType.FOR_LOOP, "get_rec in get_scorecard", true, 152635, 153389, 2);
53.2780 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(65).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (get_rec.objstate = 'Open')", true, 152676, 152951, 0);
53.2781 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(65).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 152958, 153376, 1);
53.2782 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(65).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "if can_modify_ = 'TRUE'", true, 153072, 153362, 0);
53.2783 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 66, PlsqlBlockType.PROCEDURE_IMPL, "Calculate_Measures", true, 153417, 170886, 5);
53.2784 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(66).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "measure_components_", true, 155976, 156206, 0);
53.2785 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(66).getChildBlocks(), 1, PlsqlBlockType.CURSOR, "version_value_", true, 156210, 156570, 0);
53.2786 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(66).getChildBlocks(), 2, PlsqlBlockType.CURSOR, "measure_value_", true, 156574, 156933, 0);
53.2787 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(66).getChildBlocks(), 3, PlsqlBlockType.IF, "IF plan_formula_ IS NOT NULL", true, 157772, 170604, 16);
53.2788 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(66).getChildBlocks().get(3).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "measure_comp_ IN measure_components_", true, 158468, 161462, 1);
53.2789 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(66).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF byteOffSet_ > 0", true, 158635, 161446, 13);
53.2790 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(66).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (year_value_ IS NULL)", true, 158912, 159006, 0);
53.2791 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(66).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (p1_value_ IS NULL)", true, 159019, 159109, 0);
53.2792 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(66).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 2, PlsqlBlockType.IF, "IF (p2_value_ IS NULL)", true, 159122, 159212, 0);
53.2793 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(66).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 3, PlsqlBlockType.IF, "IF (p3_value_ IS NULL)", true, 159225, 159315, 0);
53.2794 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(66).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 4, PlsqlBlockType.IF, "IF (p4_value_ IS NULL)", true, 159328, 159418, 0);
53.2795 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(66).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 5, PlsqlBlockType.IF, "IF (p5_value_ IS NULL)", true, 159431, 159521, 0);
53.2796 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(66).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 6, PlsqlBlockType.IF, "IF (p6_value_ IS NULL)", true, 159534, 159624, 0);
53.2797 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(66).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 7, PlsqlBlockType.IF, "IF (p7_value_ IS NULL)", true, 159637, 159727, 0);
53.2798 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(66).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 8, PlsqlBlockType.IF, "IF (p8_value_ IS NULL)", true, 159740, 159830, 0);
53.2799 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(66).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 9, PlsqlBlockType.IF, "IF (p9_value_ IS NULL)", true, 159843, 159933, 0);
53.2800 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(66).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 10, PlsqlBlockType.IF, "IF (p10_value_ IS NULL)", true, 159946, 160038, 0);
53.2801 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(66).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 11, PlsqlBlockType.IF, "IF (p11_value_ IS NULL)", true, 160051, 160143, 0);
53.2802 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(66).getChildBlocks().get(3).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 12, PlsqlBlockType.IF, "IF (p12_value_ IS NULL)", true, 160156, 160248, 0);
53.2803 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(66).getChildBlocks().get(3).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (period_count_ = 1)", true, 162313, 162874, 1);
53.2804 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(66).getChildBlocks().get(3).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- ifs_assert_safe samwlk 070515", true, 162350, 162382, 0);
53.2805 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(66).getChildBlocks().get(3).getChildBlocks(), 2, PlsqlBlockType.IF, "IF (period_count_ = 2)", true, 162881, 163447, 1);
53.2806 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(66).getChildBlocks().get(3).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- ifs_assert_safe samwlk 070515", true, 162918, 162950, 0);
53.2807 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(66).getChildBlocks().get(3).getChildBlocks(), 3, PlsqlBlockType.IF, "IF (period_count_ = 3)", true, 163454, 164035, 1);
53.2808 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(66).getChildBlocks().get(3).getChildBlocks().get(3).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- ifs_assert_safe samwlk 070515", true, 163491, 163523, 0);
53.2809 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(66).getChildBlocks().get(3).getChildBlocks(), 4, PlsqlBlockType.IF, "IF (period_count_ = 4)", true, 164042, 164628, 1);
53.2810 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(66).getChildBlocks().get(3).getChildBlocks().get(4).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- ifs_assert_safe samwlk 070515", true, 164079, 164111, 0);
53.2811 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(66).getChildBlocks().get(3).getChildBlocks(), 5, PlsqlBlockType.IF, "IF (period_count_ = 5)", true, 164635, 165226, 1);
53.2812 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(66).getChildBlocks().get(3).getChildBlocks().get(5).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- ifs_assert_safe samwlk 070515", true, 164672, 164704, 0);
53.2813 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(66).getChildBlocks().get(3).getChildBlocks(), 6, PlsqlBlockType.IF, "IF (period_count_ = 6)", true, 165233, 165829, 1);
53.2814 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(66).getChildBlocks().get(3).getChildBlocks().get(6).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- ifs_assert_safe samwlk 070515", true, 165270, 165302, 0);
53.2815 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(66).getChildBlocks().get(3).getChildBlocks(), 7, PlsqlBlockType.IF, "IF (period_count_ = 7)", true, 165836, 166447, 1);
53.2816 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(66).getChildBlocks().get(3).getChildBlocks().get(7).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- ifs_assert_safe samwlk 070515", true, 165873, 165905, 0);
53.2817 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(66).getChildBlocks().get(3).getChildBlocks(), 8, PlsqlBlockType.IF, "IF (period_count_ = 8)", true, 166454, 167080, 1);
53.2818 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(66).getChildBlocks().get(3).getChildBlocks().get(8).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- ifs_assert_safe samwlk 070515", true, 166491, 166523, 0);
53.2819 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(66).getChildBlocks().get(3).getChildBlocks(), 9, PlsqlBlockType.IF, "IF (period_count_ = 9)", true, 167087, 167718, 1);
53.2820 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(66).getChildBlocks().get(3).getChildBlocks().get(9).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- ifs_assert_safe samwlk 070515", true, 167124, 167156, 0);
53.2821 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(66).getChildBlocks().get(3).getChildBlocks(), 10, PlsqlBlockType.IF, "IF (period_count_ = 10)", true, 167725, 168363, 1);
53.2822 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(66).getChildBlocks().get(3).getChildBlocks().get(10).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- ifs_assert_safe samwlk 070515", true, 167763, 167795, 0);
53.2823 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(66).getChildBlocks().get(3).getChildBlocks(), 11, PlsqlBlockType.IF, "IF (period_count_ = 11)", true, 168370, 169024, 1);
53.2824 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(66).getChildBlocks().get(3).getChildBlocks().get(11).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- ifs_assert_safe samwlk 070515", true, 168408, 168440, 0);
53.2825 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(66).getChildBlocks().get(3).getChildBlocks(), 12, PlsqlBlockType.IF, "IF (period_count_ = 12)", true, 169031, 169690, 1);
53.2826 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(66).getChildBlocks().get(3).getChildBlocks().get(12).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- ifs_assert_safe samwlk 070515", true, 169069, 169101, 0);
53.2827 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(66).getChildBlocks().get(3).getChildBlocks(), 13, PlsqlBlockType.STATEMENT, "UPDATE scorecard_input_value_tab", true, 169697, 170446, 0);
53.2828 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(66).getChildBlocks().get(3).getChildBlocks(), 14, PlsqlBlockType.COMMENT, "-- Bug 76573 Begin. Set the measure to planned state", true, 170454, 170506, 0);
53.2829 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(66).getChildBlocks().get(3).getChildBlocks(), 15, PlsqlBlockType.COMMENT, "-- Bug 76573 End", true, 170588, 170604, 0);
53.2830 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(66).getChildBlocks(), 4, PlsqlBlockType.IF, "ELSE", true, 170615, 170861, 0);
53.2831 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 67, PlsqlBlockType.PROCEDURE_IMPL, "Update_Referred_Component", true, 170887, 173569, 3);
53.2832 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(67).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "value_cur", true, 171156, 171526, 0);
53.2833 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(67).getChildBlocks(), 1, PlsqlBlockType.CURSOR, "component_cur", true, 171530, 171811, 0);
53.2834 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(67).getChildBlocks(), 2, PlsqlBlockType.FOR_LOOP, "component_cur_ IN component_cur", true, 171933, 173538, 1);
53.2835 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(67).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "value_cur_ IN value_cur", true, 172109, 173438, 1);
53.2836 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(67).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE scorecard_input_value_tab", true, 172262, 173420, 0);
53.2837 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 68, PlsqlBlockType.PROCEDURE_IMPL, "Delete_By_Passed_Value", true, 173570, 174182, 3);
53.2838 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(68).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- objversion_ VARCHAR2(2000);", true, 173732, 173761, 0);
53.2839 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(68).getChildBlocks(), 1, PlsqlBlockType.CURSOR, "Get_rows", true, 173765, 173900, 0);
53.2840 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(68).getChildBlocks(), 2, PlsqlBlockType.FOR_LOOP, "get_rec in Get_rows", true, 174003, 174154, 1);
53.2841 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(68).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Delete___(get_rec.objid,get_rec);", true, 174038, 174075, 0);
53.2842 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 69, PlsqlBlockType.PROCEDURE_IMPL, "Delete_Version_Passed", true, 174183, 174687, 2);
53.2843 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(69).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "Get_rows", true, 174304, 174449, 0);
53.2844 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(69).getChildBlocks(), 1, PlsqlBlockType.FOR_LOOP, "get_rec in Get_rows", true, 174552, 174660, 0);
53.2845 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 70, PlsqlBlockType.PROCEDURE_IMPL, "Delete_Scorecard_Passed", true, 174688, 175204, 2);
53.2846 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(70).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "Get_rows", true, 174814, 174963, 0);
53.2847 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(70).getChildBlocks(), 1, PlsqlBlockType.FOR_LOOP, "get_rec in Get_rows", true, 175067, 175175, 0);
53.2848 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 71, PlsqlBlockType.PROCEDURE_IMPL, "Insert_Data", true, 175205, 176460, 0);
53.2849 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 72, PlsqlBlockType.PROCEDURE_IMPL, "Modify_Data", true, 176461, 177849, 0);
53.2850 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 73, PlsqlBlockType.PROCEDURE_IMPL, "Delete_Data", true, 177850, 178313, 0);
53.2851 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 74, PlsqlBlockType.PROCEDURE_IMPL, "Scorecard_Inputs_By_Batch", true, 178314, 179189, 2);
53.2852 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(74).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (execution_ != 'NOW')", true, 179021, 179103, 0);
53.2853 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(74).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 179107, 179158, 0);
53.2854 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 75, PlsqlBlockType.PROCEDURE_IMPL, "Input_Scorecard_Data", true, 179190, 190918, 12);
53.2855 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(75).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_year_conn", true, 180690, 180849, 0);
53.2856 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(75).getChildBlocks(), 1, PlsqlBlockType.CURSOR, "get_mea", true, 180854, 181056, 0);
53.2857 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(75).getChildBlocks(), 2, PlsqlBlockType.CURSOR, "get_comp", true, 181061, 181308, 0);
53.2858 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(75).getChildBlocks(), 3, PlsqlBlockType.CURSOR, "chk_exist", true, 181313, 181609, 0);
53.2859 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(75).getChildBlocks(), 4, PlsqlBlockType.IF, "IF scorecard_ IS null", true, 182611, 182812, 0);
53.2860 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(75).getChildBlocks(), 5, PlsqlBlockType.IF, "ELSE", true, 182818, 182981, 0);
53.2861 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(75).getChildBlocks(), 6, PlsqlBlockType.IF, "if version_ IS null", true, 182988, 183260, 0);
53.2862 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(75).getChildBlocks(), 7, PlsqlBlockType.IF, "ELSE", true, 183266, 183430, 0);
53.2863 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(75).getChildBlocks(), 8, PlsqlBlockType.IF, "if years_ IS null", true, 183437, 183592, 0);
53.2864 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(75).getChildBlocks(), 9, PlsqlBlockType.IF, "ELSE", true, 183598, 183755, 0);
53.2865 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(75).getChildBlocks(), 10, PlsqlBlockType.COMMENT, "-- ifs_assert_safe shsalk 20060117", true, 183762, 183796, 0);
53.2866 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(75).getChildBlocks(), 11, PlsqlBlockType.FOR_LOOP, "ssql_;", true, 183813, 190872, 2);
53.2867 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(75).getChildBlocks().get(11).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "meaNo IN get_mea(env, tempscr_)", true, 183941, 187181, 2);
53.2868 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(75).getChildBlocks().get(11).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- ifs_assert_safe shsalk 20060117", true, 183993, 184027, 0);
53.2869 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(75).getChildBlocks().get(11).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.FOR_LOOP, "ssql2_;", true, 184050, 187134, 2);
53.2870 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(75).getChildBlocks().get(11).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- ifs_assert_safe shsalk 20060117", true, 184173, 184207, 0);
53.2871 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(75).getChildBlocks().get(11).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.FOR_LOOP, "ssql3_;", true, 184234, 187083, 1);
53.2872 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(75).getChildBlocks().get(11).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (tempver_ != 'ASS')", true, 184567, 187057, 4);
53.2873 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(75).getChildBlocks().get(11).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (get_year_conn%FOUND)", true, 184729, 184802, 0);
53.2874 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(75).getChildBlocks().get(11).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 184824, 184901, 0);
53.2875 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(75).getChildBlocks().get(11).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 2, PlsqlBlockType.IF, "IF (rec_not_exist = 1)", true, 184966, 186362, 4);
53.2876 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(75).getChildBlocks().get(11).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (chk_exist%FOUND)", true, 185214, 185283, 0);
53.2877 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(75).getChildBlocks().get(11).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 185308, 185388, 0);
53.2878 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(75).getChildBlocks().get(11).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks(), 2, PlsqlBlockType.IF, "IF (rec_exists = 1)", true, 185455, 185761, 0);
53.2879 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(75).getChildBlocks().get(11).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSE", true, 185786, 186111, 0);
53.2880 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(75).getChildBlocks().get(11).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSE", true, 186385, 187030, 3);
53.2881 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(75).getChildBlocks().get(11).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(3).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (chk_exist%FOUND)", true, 186560, 186633, 0);
53.2882 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(75).getChildBlocks().get(11).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(3).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 186658, 186741, 0);
53.2883 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(75).getChildBlocks().get(11).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(3).getChildBlocks(), 2, PlsqlBlockType.IF, "IF (rec_exists_del = 1)", true, 186808, 187001, 0);
53.2884 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(75).getChildBlocks().get(11).getChildBlocks(), 1, PlsqlBlockType.FOR_LOOP, "meaNo IN get_mea(env, tempscr_)", true, 187192, 190855, 1);
53.2885 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(75).getChildBlocks().get(11).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "compNo IN get_comp(env, tempscr_, meaNo.level_id)", true, 187245, 190836, 2);
53.2886 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(75).getChildBlocks().get(11).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- ifs_assert_safe shsalk 20060117", true, 187351, 187385, 0);
53.2887 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(75).getChildBlocks().get(11).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.FOR_LOOP, "ssql2_;", true, 187412, 190784, 2);
53.2888 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(75).getChildBlocks().get(11).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- ifs_assert_safe shsalk 20060117", true, 187590, 187624, 0);
53.2889 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(75).getChildBlocks().get(11).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.FOR_LOOP, "ssql3_;", true, 187655, 190727, 1);
53.2890 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(75).getChildBlocks().get(11).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (tempver_ != 'ASS')", true, 188053, 190699, 4);
53.2891 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(75).getChildBlocks().get(11).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (get_year_conn%FOUND)", true, 188224, 188301, 0);
53.2892 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(75).getChildBlocks().get(11).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 188326, 188410, 0);
53.2893 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(75).getChildBlocks().get(11).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 2, PlsqlBlockType.IF, "IF (rec_not_exist2 = 1)", true, 188481, 189951, 4);
53.2894 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(75).getChildBlocks().get(11).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (chk_exist%FOUND)", true, 188744, 188817, 0);
53.2895 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(75).getChildBlocks().get(11).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 188845, 188932, 0);
53.2896 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(75).getChildBlocks().get(11).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks(), 2, PlsqlBlockType.IF, "IF (rec_exists2 = 1)", true, 189005, 189319, 0);
53.2897 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(75).getChildBlocks().get(11).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSE", true, 189347, 189687, 0);
53.2898 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(75).getChildBlocks().get(11).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSE", true, 189977, 190669, 3);
53.2899 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(75).getChildBlocks().get(11).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(3).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (chk_exist%FOUND)", true, 190162, 190239, 0);
53.2900 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(75).getChildBlocks().get(11).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(3).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 190267, 190358, 0);
53.2901 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(75).getChildBlocks().get(11).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(3).getChildBlocks(), 2, PlsqlBlockType.IF, "IF (rec_exists_del2 = 1)", true, 190431, 190637, 0);
53.2902 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 76, PlsqlBlockType.PROCEDURE_IMPL, "Start_Inputing_Scorecards", true, 190920, 191375, 0);
53.2903 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 77, PlsqlBlockType.PROCEDURE_IMPL, "Hierachical_Distribution", true, 191376, 196033, 7);
53.2904 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(77).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_scorecard_objects", true, 191618, 191868, 0);
53.2905 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(77).getChildBlocks(), 1, PlsqlBlockType.CURSOR, "get_components", true, 191873, 192136, 0);
53.2906 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(77).getChildBlocks(), 2, PlsqlBlockType.CURSOR, "get_child_scorecards", true, 192141, 192298, 0);
53.2907 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(77).getChildBlocks(), 3, PlsqlBlockType.CURSOR, "check_component_selected", true, 192303, 192597, 0);
53.2908 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(77).getChildBlocks(), 4, PlsqlBlockType.STATEMENT, "INDEX BY BINARY_INTEGER", true, 192698, 192721, 0);
53.2909 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(77).getChildBlocks(), 5, PlsqlBlockType.IF, "IF object_type_ = 'COMPONENT'", true, 193192, 195709, 7);
53.2910 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(77).getChildBlocks().get(5).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Get measure components in parent", true, 193233, 193268, 0);
53.2911 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(77).getChildBlocks().get(5).getChildBlocks(), 1, PlsqlBlockType.FOR_LOOP, "components_ IN get_components(scorecard_)", true, 193313, 193786, 1);
53.2912 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(77).getChildBlocks().get(5).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF check_component_selected%FOUND", true, 193570, 193729, 0);
53.2913 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(77).getChildBlocks().get(5).getChildBlocks(), 2, PlsqlBlockType.IF, "IF index_>0", true, 193794, 194916, 1);
53.2914 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(77).getChildBlocks().get(5).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "child_scorecards_ IN get_child_scorecards", true, 193862, 194916, 2);
53.2915 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(77).getChildBlocks().get(5).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "components_ IN get_components(child_scorecards_.scorecard)", true, 193964, 194650, 2);
53.2916 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(77).getChildBlocks().get(5).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "index_ IN 1 .. parent_component_count_", true, 194087, 194327, 1);
53.2917 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(77).getChildBlocks().get(5).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF component_arr_(index_)=components_.level_id", true, 194153, 194302, 0);
53.2918 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(77).getChildBlocks().get(5).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "IF NOT component_exist_", true, 194343, 194563, 0);
53.2919 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(77).getChildBlocks().get(5).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "IF child_component_count_!=parent_component_count_", true, 194663, 194897, 0);
53.2920 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(77).getChildBlocks().get(5).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSE", true, 194923, 195050, 0);
53.2921 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(77).getChildBlocks().get(5).getChildBlocks(), 4, PlsqlBlockType.IF, "IF sel_index_>0", true, 195058, 195273, 1);
53.2922 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(77).getChildBlocks().get(5).getChildBlocks().get(4).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "index_ IN 1..sel_index_", true, 195088, 195273, 0);
53.2923 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(77).getChildBlocks().get(5).getChildBlocks(), 5, PlsqlBlockType.IF, "ELSE", true, 195280, 195412, 0);
53.2924 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(77).getChildBlocks().get(5).getChildBlocks(), 6, PlsqlBlockType.FOR_LOOP, "child_scorecards_ IN get_child_scorecards", true, 195419, 195709, 1);
53.2925 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(77).getChildBlocks().get(5).getChildBlocks().get(6).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Bug 76573 Removed the call to Set_To_Planned() since it is called inside Calculate_Measures() method", true, 195590, 195693, 0);
53.2926 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(77).getChildBlocks(), 6, PlsqlBlockType.IF, "ELSE", true, 195713, 196002, 1);
53.2927 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(77).getChildBlocks().get(6).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "scorecard_objects_ IN get_scorecard_objects", true, 195724, 195991, 0);
53.2928 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 78, PlsqlBlockType.PROCEDURE_IMPL, "Publish_Environment_Batch", true, 196035, 196725, 3);
53.2929 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(78).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Start_Publish_Environments___(attr_);", true, 196416, 196455, 0);
53.2930 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(78).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (schedule_ != 'NOW')", true, 196552, 196632, 0);
53.2931 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(78).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSE", true, 196636, 196694, 0);
53.2932 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 79, PlsqlBlockType.PROCEDURE_IMPL, "Set_Publish_Scorecards", true, 196726, 197262, 0);
53.2933 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 80, PlsqlBlockType.PROCEDURE_IMPL, "Publish_Scorecard_Batch", true, 197263, 198029, 3);
53.2934 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(80).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Start_Publish_Environments___(attr_);", true, 197725, 197764, 0);
53.2935 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(80).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (schedule_ != 'NOW')", true, 197859, 197939, 0);
53.2936 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(80).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSE", true, 197943, 197999, 0);
53.2937 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 81, PlsqlBlockType.PROCEDURE_IMPL, "Hierarchical_Consolidation", true, 198030, 203117, 9);
53.2938 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(81).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_scorecard_objects", true, 198261, 198511, 0);
53.2939 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(81).getChildBlocks(), 1, PlsqlBlockType.CURSOR, "get_components", true, 198516, 198779, 0);
53.2940 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(81).getChildBlocks(), 2, PlsqlBlockType.CURSOR, "get_child_scorecards", true, 198784, 198941, 0);
53.2941 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(81).getChildBlocks(), 3, PlsqlBlockType.CURSOR, "check_child_scorecards", true, 198946, 199097, 0);
53.2942 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(81).getChildBlocks(), 4, PlsqlBlockType.CURSOR, "check_component_selected", true, 199102, 199396, 0);
53.2943 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(81).getChildBlocks(), 5, PlsqlBlockType.STATEMENT, "INDEX BY BINARY_INTEGER", true, 199497, 199520, 0);
53.2944 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(81).getChildBlocks(), 6, PlsqlBlockType.IF, "IF (check_child_scorecards%NOTFOUND)", true, 200127, 200337, 0);
53.2945 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(81).getChildBlocks(), 7, PlsqlBlockType.IF, "IF object_type_ = 'COMPONENT'", true, 200376, 202795, 6);
53.2946 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(81).getChildBlocks().get(7).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Get measure components in parent", true, 200417, 200452, 0);
53.2947 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(81).getChildBlocks().get(7).getChildBlocks(), 1, PlsqlBlockType.FOR_LOOP, "components_ IN get_components(scorecard_)", true, 200497, 200970, 1);
53.2948 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(81).getChildBlocks().get(7).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF check_component_selected%FOUND", true, 200754, 200913, 0);
53.2949 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(81).getChildBlocks().get(7).getChildBlocks(), 2, PlsqlBlockType.IF, "IF index_>0", true, 200978, 202100, 1);
53.2950 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(81).getChildBlocks().get(7).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "child_scorecards_ IN get_child_scorecards", true, 201046, 202100, 2);
53.2951 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(81).getChildBlocks().get(7).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "components_ IN get_components(child_scorecards_.scorecard)", true, 201148, 201834, 2);
53.2952 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(81).getChildBlocks().get(7).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "index_ IN 1 .. parent_component_count_", true, 201271, 201511, 1);
53.2953 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(81).getChildBlocks().get(7).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF component_arr_(index_)=components_.level_id", true, 201337, 201486, 0);
53.2954 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(81).getChildBlocks().get(7).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "IF NOT component_exist_", true, 201527, 201747, 0);
53.2955 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(81).getChildBlocks().get(7).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "IF child_component_count_!=parent_component_count_", true, 201847, 202081, 0);
53.2956 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(81).getChildBlocks().get(7).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSE", true, 202107, 202234, 0);
53.2957 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(81).getChildBlocks().get(7).getChildBlocks(), 4, PlsqlBlockType.IF, "IF sel_index_>0", true, 202242, 202656, 2);
53.2958 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(81).getChildBlocks().get(7).getChildBlocks().get(4).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "index_ IN 1..sel_index_", true, 202272, 202449, 0);
53.2959 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(81).getChildBlocks().get(7).getChildBlocks().get(4).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- Bug 76573 Removed the call to Set_To_Planned() since it is called inside Calculate_Measures() method", true, 202553, 202656, 0);
53.2960 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(81).getChildBlocks().get(7).getChildBlocks(), 5, PlsqlBlockType.IF, "ELSE", true, 202663, 202795, 0);
53.2961 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(81).getChildBlocks(), 8, PlsqlBlockType.IF, "ELSE", true, 202801, 203084, 1);
53.2962 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(81).getChildBlocks().get(8).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "scorecard_objects_ IN get_scorecard_objects", true, 202813, 203072, 0);
53.2963 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 82, PlsqlBlockType.PROCEDURE_IMPL, "Consolidate_Values", true, 203118, 212627, 11);
53.2964 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(82).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "INDEX BY BINARY_INTEGER", true, 203834, 203857, 0);
53.2965 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(82).getChildBlocks(), 1, PlsqlBlockType.CURSOR, "get_child_scorecards", true, 204206, 204375, 0);
53.2966 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(82).getChildBlocks(), 2, PlsqlBlockType.CURSOR, "get_open_child_scr", true, 204380, 204562, 0);
53.2967 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(82).getChildBlocks(), 3, PlsqlBlockType.CURSOR, "get_total_period_val_", true, 204568, 206389, 0);
53.2968 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(82).getChildBlocks(), 4, PlsqlBlockType.CURSOR, "get_period_val_", true, 206395, 208204, 0);
53.2969 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(82).getChildBlocks(), 5, PlsqlBlockType.COMMENT, "-- value_distribution_type_ := scorecard_Structure_api.Get_Value_Dist_Type_Db(scorecard_,scorecard_object_,environment_,object_type_);", true, 208305, 208438, 0);
53.2970 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(82).getChildBlocks(), 6, PlsqlBlockType.IF, "IF value_distribution_type_ IS NULL", true, 208558, 209007, 2);
53.2971 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(82).getChildBlocks().get(6).getChildBlocks(), 0, PlsqlBlockType.IF, "IF object_type_='MEASURE'", true, 208605, 208802, 0);
53.2972 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(82).getChildBlocks().get(6).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 208809, 208996, 0);
53.2973 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(82).getChildBlocks(), 7, PlsqlBlockType.FOR_LOOP, "child_scorecards_ IN get_child_scorecards", true, 209013, 209733, 2);
53.2974 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(82).getChildBlocks().get(7).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (temp_val_ = '1')", true, 209262, 209443, 0);
53.2975 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(82).getChildBlocks().get(7).getChildBlocks(), 1, PlsqlBlockType.IF, "IF NOT Check_Exist___(environment_,child_scorecards_.scorecard,year_,version_,scorecard_object_)", true, 209451, 209719, 0);
53.2976 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(82).getChildBlocks(), 8, PlsqlBlockType.FOR_LOOP, "temp_period_count_ IN 1..period_count_", true, 209738, 210210, 1);
53.2977 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(82).getChildBlocks().get(8).getChildBlocks(), 0, PlsqlBlockType.LOOP, "", true, 209841, 210168, 1);
53.2978 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(82).getChildBlocks().get(8).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (temp_period_value_ IS NULL)", true, 209963, 210152, 0);
53.2979 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(82).getChildBlocks(), 9, PlsqlBlockType.IF, "IF (value_distribution_type_ = 'PERCENTAGE')", true, 210859, 211452, 1);
53.2980 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(82).getChildBlocks().get(9).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "temp_period_count_ IN 1..period_count_", true, 210993, 211405, 0);
53.2981 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(82).getChildBlocks(), 10, PlsqlBlockType.IF, "ELSIF (value_distribution_type_ = 'VALUE')", true, 211457, 211836, 1);
53.2982 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(82).getChildBlocks().get(10).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "temp_period_count_ IN 1..period_count_", true, 211512, 211824, 0);
53.2983 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 83, PlsqlBlockType.PROCEDURE_IMPL, "All_Hierarchical_Logic", true, 212628, 217991, 8);
53.2984 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(83).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_scorecard_objects", true, 213291, 213535, 0);
53.2985 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(83).getChildBlocks(), 1, PlsqlBlockType.CURSOR, "get_period_count", true, 213540, 213679, 0);
53.2986 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(83).getChildBlocks(), 2, PlsqlBlockType.CURSOR, "get_scorecard_measures", true, 213684, 213906, 0);
53.2987 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(83).getChildBlocks(), 3, PlsqlBlockType.CURSOR, "get_childs", true, 213911, 214086, 0);
53.2988 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(83).getChildBlocks(), 4, PlsqlBlockType.CURSOR, "get_childs_for_cons", true, 214091, 214406, 0);
53.2989 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(83).getChildBlocks(), 5, PlsqlBlockType.IF, "IF (get_childs%NOTFOUND)", true, 214575, 214660, 0);
53.2990 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(83).getChildBlocks(), 6, PlsqlBlockType.IF, "ELSE", true, 214664, 214703, 0);
53.2991 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(83).getChildBlocks(), 7, PlsqlBlockType.IF, "IF (child_exists_ = 'TRUE')", true, 214708, 217963, 3);
53.2992 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(83).getChildBlocks().get(7).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "get_scorecard_objects_ IN get_scorecard_objects(scorecard_)", true, 214748, 215118, 0);
53.2993 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(83).getChildBlocks().get(7).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (action_ = 'DISTRIBUTION')", true, 215344, 216008, 3);
53.2994 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(83).getChildBlocks().get(7).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (comp_level_ = 'TRUE')", true, 215388, 215705, 1);
53.2995 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(83).getChildBlocks().get(7).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "get_scorecard_measures_ IN get_scorecard_measures(scorecard_)", true, 215431, 215705, 0);
53.2996 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(83).getChildBlocks().get(7).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 215715, 215849, 0);
53.2997 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(83).getChildBlocks().get(7).getChildBlocks().get(1).getChildBlocks(), 2, PlsqlBlockType.FOR_LOOP, "get_childs_ IN get_childs", true, 215859, 216008, 0);
53.2998 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(83).getChildBlocks().get(7).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSIF (action_ = 'CONSOLIDATION')", true, 216016, 217952, 3);
53.2999 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(83).getChildBlocks().get(7).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "get_childs_for_cons_ IN get_childs_for_cons", true, 216064, 217307, 2);
53.3000 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(83).getChildBlocks().get(7).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "get_scorecard_objects_ IN get_scorecard_objects(get_childs_for_cons_.scorecard)", true, 216130, 216586, 0);
53.3001 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(83).getChildBlocks().get(7).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (Scorecard_API.Get_Child_Count(get_childs_for_cons_.scorecard,environment_) >=1)", true, 216599, 217288, 2);
53.3002 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(83).getChildBlocks().get(7).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (comp_level_ = 'TRUE')", true, 216703, 217084, 1);
53.3003 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(83).getChildBlocks().get(7).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "get_scorecard_measures_ IN get_scorecard_measures(get_childs_for_cons_.scorecard)", true, 216752, 217084, 0);
53.3004 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(83).getChildBlocks().get(7).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 217100, 217268, 0);
53.3005 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(83).getChildBlocks().get(7).getChildBlocks().get(2).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- for the selected scorecard", true, 217317, 217346, 0);
53.3006 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(83).getChildBlocks().get(7).getChildBlocks().get(2).getChildBlocks(), 2, PlsqlBlockType.IF, "IF (Scorecard_API.Get_Child_Count(scorecard_,environment_) >=1)", true, 217356, 217938, 2);
53.3007 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(83).getChildBlocks().get(7).getChildBlocks().get(2).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (comp_level_ = 'TRUE')", true, 217437, 217766, 1);
53.3008 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(83).getChildBlocks().get(7).getChildBlocks().get(2).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "get_scorecard_measures_ IN get_scorecard_measures(scorecard_)", true, 217483, 217766, 0);
53.3009 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(83).getChildBlocks().get(7).getChildBlocks().get(2).getChildBlocks().get(2).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 217779, 217921, 0);
53.3010 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 84, PlsqlBlockType.PROCEDURE_IMPL, "Call_Hierarchical_Logic", true, 217992, 218913, 0);
53.3011 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 85, PlsqlBlockType.PROCEDURE_IMPL, "Start_Hierarchical_Logic", true, 218914, 219428, 0);
53.3012 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 86, PlsqlBlockType.PROCEDURE_IMPL, "Background_Hierarchical_Logic", true, 219429, 220430, 2);
53.3013 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(86).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (execution_plan_ != 'NOW')", true, 220245, 220337, 0);
53.3014 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(86).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 220341, 220395, 0);
53.3015 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 87, PlsqlBlockType.PROCEDURE_IMPL, "Set_To_Planned", true, 220431, 221614, 2);
53.3016 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(87).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_attr", true, 220766, 220995, 0);
53.3017 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(87).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- rec2_:=Lock_By_Keys___(environment_,scorecard_,year_,version_,scorecard_object_);", true, 221311, 221505, 0);
53.3018 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 88, PlsqlBlockType.FUNCTION_IMPL, "Get_Sco_Obj_State_Date", true, 221615, 222103, 1);
53.3019 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(88).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_attr", true, 221794, 221985, 0);
53.3020 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 89, PlsqlBlockType.PROCEDURE_IMPL, "Budget_And_Calculate", true, 222104, 233629, 9);
53.3021 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(89).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "INDEX BY BINARY_INTEGER", true, 223409, 223432, 0);
53.3022 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(89).getChildBlocks(), 1, PlsqlBlockType.CURSOR, "get_comp_details", true, 224030, 224139, 0);
53.3023 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(89).getChildBlocks(), 2, PlsqlBlockType.CURSOR, "get_period_details", true, 224141, 224315, 0);
53.3024 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(89).getChildBlocks(), 3, PlsqlBlockType.CURSOR, "get_code_part", true, 224317, 224438, 0);
53.3025 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(89).getChildBlocks(), 4, PlsqlBlockType.IF, "IF NOT scr_code_part_ IS NULL", true, 225344, 225684, 0);
53.3026 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(89).getChildBlocks(), 5, PlsqlBlockType.IF, "ELSE", true, 225691, 225740, 0);
53.3027 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(89).getChildBlocks(), 6, PlsqlBlockType.COMMENT, "-- since table_name_ is hardcoded we can set asserted", true, 225748, 225842, 0);
53.3028 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(89).getChildBlocks(), 7, PlsqlBlockType.FOR_LOOP, "input_value_tab_stmt_;\n\n OPEN get_period_details;", true, 225875, 226165, 0);
53.3029 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(89).getChildBlocks(), 8, PlsqlBlockType.LOOP, "", true, 226242, 233463, 18);
53.3030 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(89).getChildBlocks().get(8).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- check amount type", true, 226564, 226646, 0);
53.3031 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(89).getChildBlocks().get(8).getChildBlocks(), 1, PlsqlBlockType.IF, "IF component_rec_.amount_type = 'AMTBAL'", true, 226656, 226921, 0);
53.3032 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(89).getChildBlocks().get(8).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSIF component_rec_.amount_type = 'CURBAL'", true, 226931, 227244, 0);
53.3033 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(89).getChildBlocks().get(8).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSIF component_rec_.amount_type = 'QTYBAL'", true, 227254, 227528, 0);
53.3034 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(89).getChildBlocks().get(8).getChildBlocks(), 4, PlsqlBlockType.IF, "ELSIF component_rec_.amount_type = 'PROJBAL'", true, 227538, 227807, 0);
53.3035 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(89).getChildBlocks().get(8).getChildBlocks(), 5, PlsqlBlockType.IF, "ELSIF component_rec_.amount_type = 'PRJCURBAL'", true, 227817, 228133, 0);
53.3036 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(89).getChildBlocks().get(8).getChildBlocks(), 6, PlsqlBlockType.IF, "ELSIF component_rec_.amount_type = 'PROJQTY'", true, 228143, 228435, 0);
53.3037 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(89).getChildBlocks().get(8).getChildBlocks(), 7, PlsqlBlockType.COMMENT, "-- Add ledger Id", true, 228746, 228762, 0);
53.3038 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(89).getChildBlocks().get(8).getChildBlocks(), 8, PlsqlBlockType.COMMENT, "-- Add account list", true, 228848, 228867, 0);
53.3039 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(89).getChildBlocks().get(8).getChildBlocks(), 9, PlsqlBlockType.IF, "IF NOT account_list_ IS null", true, 228985, 229234, 0);
53.3040 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(89).getChildBlocks().get(8).getChildBlocks(), 10, PlsqlBlockType.COMMENT, "-- check amount type", true, 229245, 229265, 0);
53.3041 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(89).getChildBlocks().get(8).getChildBlocks(), 11, PlsqlBlockType.IF, "IF component_rec_.amount_type = 'PROJBAL' OR component_rec_.amount_type = 'PROJQTY' OR component_rec_.amount_type ='PRJCURBAL'", true, 229275, 229498, 0);
53.3042 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(89).getChildBlocks().get(8).getChildBlocks(), 12, PlsqlBlockType.COMMENT, "-- Initialize field values", true, 229745, 229771, 0);
53.3043 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(89).getChildBlocks().get(8).getChildBlocks(), 13, PlsqlBlockType.COMMENT, "-- ifs_assert_safe shsalk 20060117", true, 230238, 230272, 0);
53.3044 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(89).getChildBlocks().get(8).getChildBlocks(), 14, PlsqlBlockType.FOR_LOOP, "source_stmt_ USING company_,budget_version_,year_,component_rec_.ledger_id;\n count_period_ :=1;\n is_visited_:=false;", true, 230306, 231846, 14);
53.3045 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(89).getChildBlocks().get(8).getChildBlocks().get(14).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "i IN 1..count_", true, 230598, 230796, 1);
53.3046 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(89).getChildBlocks().get(8).getChildBlocks().get(14).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF budget_year_ = per_match_identity_type_(i)", true, 230638, 230774, 0);
53.3047 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(89).getChildBlocks().get(8).getChildBlocks().get(14).getChildBlocks(), 1, PlsqlBlockType.CASE, "CASE count_period_\n WHEN 1", true, 230810, 230898, 0);
53.3048 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(89).getChildBlocks().get(8).getChildBlocks().get(14).getChildBlocks(), 2, PlsqlBlockType.CASE, "WHEN 2", true, 230918, 230968, 0);
53.3049 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(89).getChildBlocks().get(8).getChildBlocks().get(14).getChildBlocks(), 3, PlsqlBlockType.CASE, "WHEN 3", true, 230988, 231038, 0);
53.3050 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(89).getChildBlocks().get(8).getChildBlocks().get(14).getChildBlocks(), 4, PlsqlBlockType.CASE, "WHEN 4", true, 231058, 231108, 0);
53.3051 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(89).getChildBlocks().get(8).getChildBlocks().get(14).getChildBlocks(), 5, PlsqlBlockType.CASE, "WHEN 5", true, 231128, 231178, 0);
53.3052 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(89).getChildBlocks().get(8).getChildBlocks().get(14).getChildBlocks(), 6, PlsqlBlockType.CASE, "WHEN 6", true, 231198, 231248, 0);
53.3053 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(89).getChildBlocks().get(8).getChildBlocks().get(14).getChildBlocks(), 7, PlsqlBlockType.CASE, "WHEN 7", true, 231268, 231318, 0);
53.3054 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(89).getChildBlocks().get(8).getChildBlocks().get(14).getChildBlocks(), 8, PlsqlBlockType.CASE, "WHEN 8", true, 231338, 231388, 0);
53.3055 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(89).getChildBlocks().get(8).getChildBlocks().get(14).getChildBlocks(), 9, PlsqlBlockType.CASE, "WHEN 9", true, 231408, 231458, 0);
53.3056 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(89).getChildBlocks().get(8).getChildBlocks().get(14).getChildBlocks(), 10, PlsqlBlockType.CASE, "WHEN 10", true, 231478, 231528, 0);
53.3057 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(89).getChildBlocks().get(8).getChildBlocks().get(14).getChildBlocks(), 11, PlsqlBlockType.CASE, "WHEN 11", true, 231548, 231598, 0);
53.3058 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(89).getChildBlocks().get(8).getChildBlocks().get(14).getChildBlocks(), 12, PlsqlBlockType.CASE, "WHEN 12", true, 231618, 231668, 0);
53.3059 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(89).getChildBlocks().get(8).getChildBlocks().get(14).getChildBlocks(), 13, PlsqlBlockType.CASE, "ELSE", true, 231688, 231794, 0);
53.3060 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(89).getChildBlocks().get(8).getChildBlocks(), 15, PlsqlBlockType.IF, "IF NOT is_visited_", true, 231892, 232086, 0);
53.3061 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(89).getChildBlocks().get(8).getChildBlocks(), 16, PlsqlBlockType.IF, "IF mea_type_ = 'PERCENTAGE'", true, 233124, 233249, 0);
53.3062 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(89).getChildBlocks().get(8).getChildBlocks(), 17, PlsqlBlockType.IF, "ELSIF mea_type_ = 'VALUE'", true, 233259, 233354, 0);
53.3063 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 90, PlsqlBlockType.PROCEDURE_IMPL, "Get_Error_Msg_For_Comp", true, 233631, 234162, 2);
53.3064 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(90).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (check_value_ = 'TRUE')", true, 233838, 233900, 0);
53.3065 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(90).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 233904, 234134, 1);
53.3066 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(90).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF invalid_comp_ <> 0", true, 233973, 234123, 0);
53.3067 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 91, PlsqlBlockType.PROCEDURE_IMPL, "Return_Periods", true, 234163, 236217, 3);
53.3068 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(91).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_period", true, 234598, 234755, 0);
53.3069 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(91).getChildBlocks(), 1, PlsqlBlockType.CURSOR, "get_periodCount", true, 234760, 234901, 0);
53.3070 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(91).getChildBlocks(), 2, PlsqlBlockType.FOR_LOOP, "i IN 1..per_no", true, 235350, 236175, 12);
53.3071 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(91).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (i = 1)", true, 235420, 235468, 0);
53.3072 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(91).getChildBlocks().get(2).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (i = 2)", true, 235478, 235529, 0);
53.3073 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(91).getChildBlocks().get(2).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSIF (i = 3)", true, 235539, 235590, 0);
53.3074 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(91).getChildBlocks().get(2).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSIF (i = 4)", true, 235600, 235651, 0);
53.3075 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(91).getChildBlocks().get(2).getChildBlocks(), 4, PlsqlBlockType.IF, "ELSIF (i = 5)", true, 235661, 235712, 0);
53.3076 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(91).getChildBlocks().get(2).getChildBlocks(), 5, PlsqlBlockType.IF, "ELSIF (i = 6)", true, 235722, 235773, 0);
53.3077 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(91).getChildBlocks().get(2).getChildBlocks(), 6, PlsqlBlockType.IF, "ELSIF (i = 7)", true, 235783, 235834, 0);
53.3078 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(91).getChildBlocks().get(2).getChildBlocks(), 7, PlsqlBlockType.IF, "ELSIF (i = 8)", true, 235844, 235895, 0);
53.3079 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(91).getChildBlocks().get(2).getChildBlocks(), 8, PlsqlBlockType.IF, "ELSIF (i = 9)", true, 235905, 235956, 0);
53.3080 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(91).getChildBlocks().get(2).getChildBlocks(), 9, PlsqlBlockType.IF, "ELSIF (i = 10)", true, 235966, 236019, 0);
53.3081 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(91).getChildBlocks().get(2).getChildBlocks(), 10, PlsqlBlockType.IF, "ELSIF (i = 11)", true, 236029, 236082, 0);
53.3082 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(91).getChildBlocks().get(2).getChildBlocks(), 11, PlsqlBlockType.IF, "ELSIF (i = 12)", true, 236092, 236162, 0);
53.3083 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 92, PlsqlBlockType.PROCEDURE_IMPL, "Import_Planned_Values", true, 236218, 238930, 2);
53.3084 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(92).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_update_record", true, 236818, 237113, 0);
53.3085 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(92).getChildBlocks(), 1, PlsqlBlockType.LOOP, "", true, 237212, 238902, 2);
53.3086 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(92).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.WHILE_LOOP, "( Client_SYS.Get_Next_From_Attr(key_value_attr_, ptr_, name_, value_) )", true, 237224, 237618, 2);
53.3087 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(92).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (name_ = 'KEY')", true, 237317, 237492, 0);
53.3088 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(92).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (name_ = 'VALUE')", true, 237502, 237601, 0);
53.3089 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(92).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.IF, "IF ((get_update_record%FOUND) AND (column_ IS NOT NULL))", true, 237975, 238765, 1);
53.3090 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(92).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 238522, 238751, 0);
53.3091 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 93, PlsqlBlockType.PROCEDURE_IMPL, "Calculate_Year_Value", true, 238932, 242594, 16);
53.3092 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(93).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "measure_value", true, 239923, 240318, 0);
53.3093 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(93).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (formula_p1_ IS NOT NULL)", true, 240756, 240866, 0);
53.3094 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(93).getChildBlocks(), 2, PlsqlBlockType.IF, "IF (formula_p2_ IS NOT NULL)", true, 240871, 240981, 0);
53.3095 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(93).getChildBlocks(), 3, PlsqlBlockType.IF, "IF (formula_p3_ IS NOT NULL)", true, 240986, 241096, 0);
53.3096 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(93).getChildBlocks(), 4, PlsqlBlockType.IF, "IF (formula_p4_ IS NOT NULL)", true, 241101, 241211, 0);
53.3097 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(93).getChildBlocks(), 5, PlsqlBlockType.IF, "IF (formula_p5_ IS NOT NULL)", true, 241216, 241326, 0);
53.3098 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(93).getChildBlocks(), 6, PlsqlBlockType.IF, "IF (formula_p6_ IS NOT NULL)", true, 241331, 241441, 0);
53.3099 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(93).getChildBlocks(), 7, PlsqlBlockType.IF, "IF (formula_p7_ IS NOT NULL)", true, 241446, 241556, 0);
53.3100 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(93).getChildBlocks(), 8, PlsqlBlockType.IF, "IF (formula_p8_ IS NOT NULL)", true, 241561, 241671, 0);
53.3101 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(93).getChildBlocks(), 9, PlsqlBlockType.IF, "IF (formula_p9_ IS NOT NULL)", true, 241676, 241786, 0);
53.3102 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(93).getChildBlocks(), 10, PlsqlBlockType.IF, "IF (formula_p10_ IS NOT NULL)", true, 241791, 241903, 0);
53.3103 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(93).getChildBlocks(), 11, PlsqlBlockType.IF, "IF (formula_p11_ IS NOT NULL)", true, 241908, 242020, 0);
53.3104 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(93).getChildBlocks(), 12, PlsqlBlockType.IF, "IF (formula_p12_ IS NOT NULL)", true, 242025, 242137, 0);
53.3105 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(93).getChildBlocks(), 13, PlsqlBlockType.IF, "IF (measure_type_ = 'PERCENTAGE' AND count_ > 0)", true, 242142, 242228, 0);
53.3106 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(93).getChildBlocks(), 14, PlsqlBlockType.IF, "ELSIF NOT(measure_type_ = 'VALUE')", true, 242232, 242304, 0);
53.3107 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(93).getChildBlocks(), 15, PlsqlBlockType.IF, "IF (total_ IS NOT NULL)", true, 242309, 242567, 0);
53.3108 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 94, PlsqlBlockType.PROCEDURE_IMPL, "Aggregate_Planned_Values", true, 242595, 244073, 2);
53.3109 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(94).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_update_record", true, 242893, 243172, 0);
53.3110 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(94).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (get_update_record%FOUND)", true, 243323, 244014, 1);
53.3111 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(94).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "BLOCK COMMENT", true, 243789, 244003, 0);
53.3112 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 95, PlsqlBlockType.PROCEDURE_IMPL, "Load_Planned_Values", true, 244075, 251638, 4);
53.3113 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(95).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Bug 66984 Begin", true, 244483, 244500, 0);
53.3114 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(95).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- Bug 66984 End", true, 244545, 244560, 0);
53.3115 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(95).getChildBlocks(), 2, PlsqlBlockType.CURSOR, "get_keys", true, 245134, 245355, 0);
53.3116 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(95).getChildBlocks(), 3, PlsqlBlockType.IF, "IF ( bp_installed_ )", true, 245435, 251606, 17);
53.3117 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(95).getChildBlocks().get(3).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (rec_.p1_key IS NOT NULL)", true, 245634, 245744, 0);
53.3118 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(95).getChildBlocks().get(3).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (rec_.p2_key IS NOT NULL)", true, 245752, 245862, 0);
53.3119 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(95).getChildBlocks().get(3).getChildBlocks(), 2, PlsqlBlockType.IF, "IF (rec_.p3_key IS NOT NULL)", true, 245870, 245980, 0);
53.3120 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(95).getChildBlocks().get(3).getChildBlocks(), 3, PlsqlBlockType.IF, "IF (rec_.p4_key IS NOT NULL)", true, 245988, 246098, 0);
53.3121 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(95).getChildBlocks().get(3).getChildBlocks(), 4, PlsqlBlockType.IF, "IF (rec_.p5_key IS NOT NULL)", true, 246106, 246216, 0);
53.3122 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(95).getChildBlocks().get(3).getChildBlocks(), 5, PlsqlBlockType.IF, "IF (rec_.p6_key IS NOT NULL)", true, 246224, 246334, 0);
53.3123 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(95).getChildBlocks().get(3).getChildBlocks(), 6, PlsqlBlockType.IF, "IF (rec_.p7_key IS NOT NULL)", true, 246342, 246452, 0);
53.3124 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(95).getChildBlocks().get(3).getChildBlocks(), 7, PlsqlBlockType.IF, "IF (rec_.p8_key IS NOT NULL)", true, 246460, 246570, 0);
53.3125 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(95).getChildBlocks().get(3).getChildBlocks(), 8, PlsqlBlockType.IF, "IF (rec_.p9_key IS NOT NULL)", true, 246578, 246688, 0);
53.3126 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(95).getChildBlocks().get(3).getChildBlocks(), 9, PlsqlBlockType.IF, "IF (rec_.p10_key IS NOT NULL)", true, 246696, 246809, 0);
53.3127 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(95).getChildBlocks().get(3).getChildBlocks(), 10, PlsqlBlockType.IF, "IF (rec_.p11_key IS NOT NULL)", true, 246817, 246930, 0);
53.3128 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(95).getChildBlocks().get(3).getChildBlocks(), 11, PlsqlBlockType.IF, "IF (rec_.p12_key IS NOT NULL)", true, 246938, 247051, 0);
53.3129 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(95).getChildBlocks().get(3).getChildBlocks(), 12, PlsqlBlockType.IF, "IF (attr_ IS NOT NULL)", true, 247059, 247146, 0);
53.3130 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(95).getChildBlocks().get(3).getChildBlocks(), 13, PlsqlBlockType.COMMENT, "-- Bug 66984 Begin,Added the line for Budget_Template_API.Is_Period_Matching() method call to stop loading values from templates which don't have matching periods", true, 247153, 247399, 0);
53.3131 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(95).getChildBlocks().get(3).getChildBlocks(), 14, PlsqlBlockType.COMMENT, "-- ifs_assert_safe iswalk 060111", true, 247833, 247865, 0);
53.3132 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(95).getChildBlocks().get(3).getChildBlocks(), 15, PlsqlBlockType.FOR_LOOP, "stmt_bp_call_ USING scorecard_, environment_,'TRUE';", true, 247889, 251573, 4);
53.3133 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(95).getChildBlocks().get(3).getChildBlocks().get(15).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Bug 66984 Begin,Added the if condition line and the else part", true, 248013, 248076, 0);
53.3134 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(95).getChildBlocks().get(3).getChildBlocks().get(15).getChildBlocks(), 1, PlsqlBlockType.IF, "IF get_budpro%FOUND", true, 248086, 251453, 3);
53.3135 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(95).getChildBlocks().get(3).getChildBlocks().get(15).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF ((template_rec_.company IS NULL) AND (attr_ IS NOT NULL))", true, 248124, 250274, 3);
53.3136 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(95).getChildBlocks().get(3).getChildBlocks().get(15).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- ifs_assert_safe iswalk 060111", true, 248622, 248654, 0);
53.3137 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(95).getChildBlocks().get(3).getChildBlocks().get(15).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (node_rec_.company IS NOT NULL)", true, 248850, 250077, 2);
53.3138 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(95).getChildBlocks().get(3).getChildBlocks().get(15).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Load the value from Budget Node", true, 248908, 248941, 0);
53.3139 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(95).getChildBlocks().get(3).getChildBlocks().get(15).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- ifs_assert_safe iswalk 060111", true, 249595, 249627, 0);
53.3140 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(95).getChildBlocks().get(3).getChildBlocks().get(15).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSE", true, 250093, 250274, 0);
53.3141 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(95).getChildBlocks().get(3).getChildBlocks().get(15).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (attr_ IS NOT NULL)", true, 250287, 251165, 2);
53.3142 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(95).getChildBlocks().get(3).getChildBlocks().get(15).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Load the value from Budget Template", true, 250330, 250367, 0);
53.3143 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(95).getChildBlocks().get(3).getChildBlocks().get(15).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- ifs_assert_safe iswalk 060111", true, 250806, 250838, 0);
53.3144 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(95).getChildBlocks().get(3).getChildBlocks().get(15).getChildBlocks().get(1).getChildBlocks(), 2, PlsqlBlockType.IF, "IF (attr_ IS NOT NULL)", true, 251178, 251453, 0);
53.3145 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(95).getChildBlocks().get(3).getChildBlocks().get(15).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSE", true, 251463, 251532, 0);
53.3146 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(95).getChildBlocks().get(3).getChildBlocks().get(15).getChildBlocks(), 3, PlsqlBlockType.COMMENT, "-- Bug 66984 End", true, 251542, 251557, 0);
53.3147 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(95).getChildBlocks().get(3).getChildBlocks(), 16, PlsqlBlockType.COMMENT, "-- Bug 66984 End", true, 251580, 251595, 0);
53.3148 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 96, PlsqlBlockType.FUNCTION_IMPL, "Get_No_Of_Periods", true, 251640, 253416, 13);
53.3149 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(96).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_record", true, 251895, 252168, 0);
53.3150 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(96).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (rec_.p1_key IS NOT NULL)", true, 252252, 252340, 0);
53.3151 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(96).getChildBlocks(), 2, PlsqlBlockType.IF, "IF (rec_.p2_key IS NOT NULL)", true, 252345, 252433, 0);
53.3152 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(96).getChildBlocks(), 3, PlsqlBlockType.IF, "IF (rec_.p3_key IS NOT NULL)", true, 252438, 252526, 0);
53.3153 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(96).getChildBlocks(), 4, PlsqlBlockType.IF, "IF (rec_.p4_key IS NOT NULL)", true, 252531, 252619, 0);
53.3154 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(96).getChildBlocks(), 5, PlsqlBlockType.IF, "IF (rec_.p5_key IS NOT NULL)", true, 252624, 252712, 0);
53.3155 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(96).getChildBlocks(), 6, PlsqlBlockType.IF, "IF (rec_.p6_key IS NOT NULL)", true, 252717, 252805, 0);
53.3156 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(96).getChildBlocks(), 7, PlsqlBlockType.IF, "IF (rec_.p7_key IS NOT NULL)", true, 252810, 252898, 0);
53.3157 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(96).getChildBlocks(), 8, PlsqlBlockType.IF, "IF (rec_.p8_key IS NOT NULL)", true, 252903, 252991, 0);
53.3158 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(96).getChildBlocks(), 9, PlsqlBlockType.IF, "IF (rec_.p9_key IS NOT NULL)", true, 252996, 253084, 0);
53.3159 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(96).getChildBlocks(), 10, PlsqlBlockType.IF, "IF (rec_.p10_key IS NOT NULL)", true, 253089, 253178, 0);
53.3160 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(96).getChildBlocks(), 11, PlsqlBlockType.IF, "IF (rec_.p11_key IS NOT NULL)", true, 253183, 253272, 0);
53.3161 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(96).getChildBlocks(), 12, PlsqlBlockType.IF, "IF (rec_.p12_key IS NOT NULL)", true, 253277, 253366, 0);
53.3162 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 97, PlsqlBlockType.PROCEDURE_IMPL, "Import_Fin_Values", true, 253418, 271245, 10);
53.3163 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Bug 71089, Begin", true, 253670, 253689, 0);
53.3164 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- Bug 71089, End", true, 253740, 253757, 0);
53.3165 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks(), 2, PlsqlBlockType.COMMENT, "-- Bug 71089, Begin", true, 254548, 254567, 0);
53.3166 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks(), 3, PlsqlBlockType.COMMENT, "-- Bug 71089, End", true, 254610, 254627, 0);
53.3167 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks(), 4, PlsqlBlockType.COMMENT, "-- Bug 68118, Begin", true, 255079, 255098, 0);
53.3168 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks(), 5, PlsqlBlockType.COMMENT, "-- Bug 68118, End", true, 255288, 255305, 0);
53.3169 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks(), 6, PlsqlBlockType.CURSOR, "get_keys", true, 255310, 255629, 0);
53.3170 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks(), 7, PlsqlBlockType.CURSOR, "get_measure_accounts", true, 255633, 255754, 0);
53.3171 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks(), 8, PlsqlBlockType.COMMENT, "-- Bug 68118, Begin", true, 255764, 255894, 0);
53.3172 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks(), 9, PlsqlBlockType.IF, "IF ( bp_installed_ )", true, 255976, 271222, 15);
53.3173 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Bug 71089, Begin", true, 256045, 256064, 0);
53.3174 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- ifs_assert_safe makrlk 080205", true, 256459, 256515, 0);
53.3175 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks(), 2, PlsqlBlockType.IF, "IF (temp_rec_.p1_key IS NOT NULL)", true, 256605, 256974, 0);
53.3176 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks(), 3, PlsqlBlockType.IF, "IF (temp_rec_.p2_key IS NOT NULL)", true, 256982, 257351, 0);
53.3177 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks(), 4, PlsqlBlockType.IF, "IF (temp_rec_.p3_key IS NOT NULL)", true, 257359, 257728, 0);
53.3178 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks(), 5, PlsqlBlockType.IF, "IF (temp_rec_.p4_key IS NOT NULL)", true, 257736, 258105, 0);
53.3179 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks(), 6, PlsqlBlockType.IF, "IF (temp_rec_.p5_key IS NOT NULL)", true, 258113, 258482, 0);
53.3180 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks(), 7, PlsqlBlockType.IF, "IF (temp_rec_.p6_key IS NOT NULL)", true, 258490, 258859, 0);
53.3181 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks(), 8, PlsqlBlockType.IF, "IF (temp_rec_.p7_key IS NOT NULL)", true, 258867, 259236, 0);
53.3182 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks(), 9, PlsqlBlockType.IF, "IF (temp_rec_.p8_key IS NOT NULL)", true, 259244, 259613, 0);
53.3183 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks(), 10, PlsqlBlockType.IF, "IF (temp_rec_.p9_key IS NOT NULL)", true, 259621, 259990, 0);
53.3184 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks(), 11, PlsqlBlockType.IF, "IF (temp_rec_.p10_key IS NOT NULL)", true, 259998, 260373, 0);
53.3185 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks(), 12, PlsqlBlockType.IF, "IF (temp_rec_.p11_key IS NOT NULL)", true, 260381, 260756, 0);
53.3186 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks(), 13, PlsqlBlockType.IF, "IF (temp_rec_.p12_key IS NOT NULL)", true, 260764, 261139, 0);
53.3187 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks(), 14, PlsqlBlockType.IF, "IF (attr_ IS NOT NULL)", true, 261147, 271210, 2);
53.3188 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks().get(14).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- ifs_assert_safe iswalk 060220", true, 261561, 261593, 0);
53.3189 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks().get(14).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (template_rec_.company IS NOT NULL)", true, 261802, 271195, 1);
53.3190 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "rec_ IN get_keys", true, 261859, 271101, 6);
53.3191 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "i IN 0..11", true, 261954, 262036, 0);
53.3192 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- the call has been made from busper side which means only selected measures should be updated", true, 262214, 262308, 0);
53.3193 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 2, PlsqlBlockType.WHILE_LOOP, "(Client_SYS.Get_Next_From_Attr(scorecard_object_, mea_ptr_, mea_name_, mea_value_))", true, 262324, 265132, 1);
53.3194 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (current_ = mea_value_)", true, 262438, 265106, 2);
53.3195 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- get the list of accounts connected to the current measure...", true, 262491, 262553, 0);
53.3196 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.FOR_LOOP, "acc_rec_ IN get_measure_accounts", true, 262575, 265080, 5);
53.3197 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Bug 68118, Begin", true, 262639, 262658, 0);
53.3198 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- Bug 71089, Begin. change the OPEN line", true, 263003, 263103, 0);
53.3199 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks(), 2, PlsqlBlockType.COMMENT, "-- Bug 71089, End", true, 263405, 263528, 0);
53.3200 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks(), 3, PlsqlBlockType.IF, "IF (temp_measure_ = acc_rec_.account)", true, 263554, 264988, 1);
53.3201 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks().get(3).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- ifs_assert_safe iswalk 060220", true, 264313, 264345, 0);
53.3202 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(2).getChildBlocks().get(0).getChildBlocks().get(1).getChildBlocks(), 4, PlsqlBlockType.COMMENT, "-- Bug 68118, End the IF condition ", true, 265013, 265049, 0);
53.3203 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 3, PlsqlBlockType.COMMENT, "-- the call has been made from budpro side which means all measures should be updated", true, 265149, 265233, 0);
53.3204 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 4, PlsqlBlockType.IF, "IF (scorecard_object_ IS NULL)", true, 265249, 267816, 2);
53.3205 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(4).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- get the list of accounts connected to the current measure...", true, 265303, 265365, 0);
53.3206 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(4).getChildBlocks(), 1, PlsqlBlockType.FOR_LOOP, "acc_rec_ IN get_measure_accounts", true, 265384, 267793, 5);
53.3207 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(4).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Bug 68118, Begin", true, 265447, 265466, 0);
53.3208 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(4).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- Bug 71089, Begin. change the OPEN line", true, 265796, 265893, 0);
53.3209 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(4).getChildBlocks().get(1).getChildBlocks(), 2, PlsqlBlockType.COMMENT, "-- Bug 71089, End", true, 266183, 266300, 0);
53.3210 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(4).getChildBlocks().get(1).getChildBlocks(), 3, PlsqlBlockType.IF, "IF (temp_measure_ = acc_rec_.account)", true, 266322, 267708, 1);
53.3211 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(4).getChildBlocks().get(1).getChildBlocks().get(3).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- ifs_assert_safe iswalk 060220", true, 267057, 267089, 0);
53.3212 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(4).getChildBlocks().get(1).getChildBlocks(), 4, PlsqlBlockType.COMMENT, "-- Bug 68118, End the IF condition", true, 267730, 267764, 0);
53.3213 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 5, PlsqlBlockType.IF, "IF (cum_val_attr_ IS NOT NULL)", true, 267833, 271078, 2);
53.3214 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(5).getChildBlocks(), 0, PlsqlBlockType.WHILE_LOOP, "(Client_SYS.Get_Next_From_Attr(cum_val_attr_, ptr_, name_, value_))", true, 267921, 270243, 12);
53.3215 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(5).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (temp_rec_.p1_key = name_)", true, 268022, 268183, 0);
53.3216 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(5).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (temp_rec_.p2_key = name_)", true, 268206, 268367, 0);
53.3217 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(5).getChildBlocks().get(0).getChildBlocks(), 2, PlsqlBlockType.IF, "IF (temp_rec_.p3_key = name_)", true, 268390, 268551, 0);
53.3218 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(5).getChildBlocks().get(0).getChildBlocks(), 3, PlsqlBlockType.IF, "IF (temp_rec_.p4_key = name_)", true, 268574, 268735, 0);
53.3219 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(5).getChildBlocks().get(0).getChildBlocks(), 4, PlsqlBlockType.IF, "IF (temp_rec_.p5_key = name_)", true, 268758, 268919, 0);
53.3220 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(5).getChildBlocks().get(0).getChildBlocks(), 5, PlsqlBlockType.IF, "IF (temp_rec_.p6_key = name_)", true, 268942, 269103, 0);
53.3221 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(5).getChildBlocks().get(0).getChildBlocks(), 6, PlsqlBlockType.IF, "IF (temp_rec_.p7_key = name_)", true, 269126, 269287, 0);
53.3222 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(5).getChildBlocks().get(0).getChildBlocks(), 7, PlsqlBlockType.IF, "IF (temp_rec_.p8_key = name_)", true, 269310, 269471, 0);
53.3223 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(5).getChildBlocks().get(0).getChildBlocks(), 8, PlsqlBlockType.IF, "IF (temp_rec_.p9_key = name_)", true, 269494, 269655, 0);
53.3224 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(5).getChildBlocks().get(0).getChildBlocks(), 9, PlsqlBlockType.IF, "IF (temp_rec_.p10_key = name_)", true, 269678, 269840, 0);
53.3225 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(5).getChildBlocks().get(0).getChildBlocks(), 10, PlsqlBlockType.IF, "IF (temp_rec_.p11_key = name_)", true, 269863, 270027, 0);
53.3226 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(5).getChildBlocks().get(0).getChildBlocks(), 11, PlsqlBlockType.IF, "IF (temp_rec_.p12_key = name_)", true, 270050, 270214, 0);
53.3227 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(5).getChildBlocks(), 1, PlsqlBlockType.FOR_LOOP, "i IN 0..11", true, 270320, 270580, 2);
53.3228 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(5).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Bug 68118, Begin remove the the IF condition", true, 270363, 270410, 0);
53.3229 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(97).getChildBlocks().get(9).getChildBlocks().get(14).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(5).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- Bug 68118, End", true, 270534, 270551, 0);
53.3230 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 98, PlsqlBlockType.PROCEDURE_IMPL, "Calc_Measure_From_Budpro", true, 271246, 274564, 5);
53.3231 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(98).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_level_type", true, 271886, 272115, 0);
53.3232 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(98).getChildBlocks(), 1, PlsqlBlockType.CURSOR, "get_measures_planform", true, 272120, 272370, 0);
53.3233 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(98).getChildBlocks(), 2, PlsqlBlockType.CURSOR, "get_years", true, 272375, 272503, 0);
53.3234 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(98).getChildBlocks(), 3, PlsqlBlockType.CURSOR, "get_period_count", true, 272508, 272683, 0);
53.3235 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(98).getChildBlocks(), 4, PlsqlBlockType.WHILE_LOOP, "( Client_SYS.Get_Next_From_Attr(comp_attr_, ptr_, name_, value_) )", true, 272904, 274534, 2);
53.3236 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(98).getChildBlocks().get(4).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (name_ = 'OBJECT_ID')", true, 272988, 273062, 0);
53.3237 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(98).getChildBlocks().get(4).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (level_type_ = 'COMPONENT')", true, 273172, 274521, 2);
53.3238 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(98).getChildBlocks().get(4).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "get_measures_planform_ IN get_measures_planform", true, 273238, 273492, 1);
53.3239 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(98).getChildBlocks().get(4).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF ( INSTR(get_measures_planform_.measure_calc_formula,object_id_) > 0)", true, 273307, 273473, 0);
53.3240 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(98).getChildBlocks().get(4).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.IF, "IF ( measures_tab.COUNT > 0 )", true, 273591, 274507, 1);
53.3241 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(98).getChildBlocks().get(4).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "x IN measures_tab.FIRST..measures_tab.LAST", true, 273638, 274490, 1);
53.3242 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(98).getChildBlocks().get(4).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "get_years_ IN get_years", true, 273705, 274468, 1);
53.3243 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(98).getChildBlocks().get(4).getChildBlocks().get(1).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF ( Check_Exist___ (environment_,scorecard_,year_,budget_version_,measures_tab(x)))", true, 273950, 274443, 0);
53.3244 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 99, PlsqlBlockType.FUNCTION_IMPL, "Get", true, 274567, 275123, 1);
53.3245 - assertBlock(lstBlockFac.get(20).getChildBlocks().get(99).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_attr", true, 274765, 275024, 0);
53.3246 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 100, PlsqlBlockType.COMMENT, "-- FOUNDATION1 METHODS ", true, 275124, 275588, 0);
53.3247 - assertBlock(lstBlockFac.get(20).getChildBlocks(), 101, PlsqlBlockType.PROCEDURE_IMPL, "Init", true, 275590, 275632, 0);
53.3248 - assertBlock(lstBlockFac, 21, PlsqlBlockType.COMMENT, "COMMENT...", false, 275876, 275953, 0);
53.3249 + assertEquals(24, lstBlockFac.size());
53.3250 + processBlocks(plsqlFileName, lstBlockFac);
53.3251 } finally {
53.3252 if (fileObject != null) {
53.3253 fileObject.delete();
53.3254 @@ -3254,146 +418,18 @@
53.3255 @Test
53.3256 public void testAdvanced13() throws IOException, BadLocationException {
53.3257 System.out.println("Advanced test case 13");
53.3258 - FileObject fileObject = fs.getRoot().createData("Trainer.apy");
53.3259 + final String plsqlFileName = "Trainer.apy";
53.3260 + FileObject fileObject = fs.getRoot().createData(plsqlFileName);
53.3261 assertNotNull(fileObject);
53.3262 try {
53.3263 - PlsqlBlockFactory blockFac = loadAsTmpFile(fileObject, "Trainer.apy");
53.3264 + PlsqlBlockFactory blockFac = loadAsTmpFile(fileObject, plsqlFileName);
53.3265 assertNotNull(blockFac);
53.3266
53.3267 List<PlsqlBlock> lstBlockFac = blockFac.getBlockHierarchy();
53.3268 // printHierarchy(lstBlockFac, "");
53.3269 // generateAssert(lstBlockFac, "lstBlockFac", "false");
53.3270 - assertTrue(lstBlockFac.size() == 11);
53.3271 - assertBlock(lstBlockFac, 0, PlsqlBlockType.COMMENT, "-- Logical unit: Trainer", false, 0, 601, 0);
53.3272 - assertBlock(lstBlockFac, 1, PlsqlBlockType.COMMENT, "-- VIEWS FOR SELECTS ", false, 933, 1166, 0);
53.3273 - assertBlock(lstBlockFac, 2, PlsqlBlockType.VIEW, "TRAINER", false, 1196, 1939, 0);
53.3274 - assertBlock(lstBlockFac, 3, PlsqlBlockType.TABLE_COMMENT, "TRAINER", false, 1942, 2010, 0);
53.3275 - assertBlock(lstBlockFac, 4, PlsqlBlockType.COLUMN_COMMENT, "TRAINER", false, 2013, 2956, 0);
53.3276 - assertBlock(lstBlockFac, 5, PlsqlBlockType.VIEW, "TRAINER_LOV1", false, 2993, 3251, 0);
53.3277 - assertBlock(lstBlockFac, 6, PlsqlBlockType.TABLE_COMMENT, "TRAINER_LOV1", false, 3254, 3342, 0);
53.3278 - assertBlock(lstBlockFac, 7, PlsqlBlockType.COLUMN_COMMENT, "TRAINER_LOV1", false, 3345, 3658, 0);
53.3279 - assertBlock(lstBlockFac, 8, PlsqlBlockType.COMMENT, "-- PACKAGES FOR METHODS ", false, 3661, 3894, 0);
53.3280 - assertBlock(lstBlockFac, 9, PlsqlBlockType.PACKAGE_BODY, "TRAINER_API", false, 3933, 28781, 34);
53.3281 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- LU SPECIFIC IMPLEMENTATION METHOD DECLARATIONS ", true, 3973, 5083, 0);
53.3282 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 1, PlsqlBlockType.FUNCTION_IMPL, "Lock_By_Id___", true, 5084, 6240, 5);
53.3283 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "lock_control", true, 5378, 5530, 0);
53.3284 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.CURSOR, "exist_control", true, 5534, 5624, 0);
53.3285 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(1).getChildBlocks(), 2, PlsqlBlockType.IF, "IF (lock_control%FOUND)", true, 5689, 5773, 0);
53.3286 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(1).getChildBlocks(), 3, PlsqlBlockType.IF, "IF (exist_control%FOUND)", true, 5859, 5940, 0);
53.3287 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(1).getChildBlocks(), 4, PlsqlBlockType.IF, "ELSE", true, 5944, 6011, 0);
53.3288 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 2, PlsqlBlockType.FUNCTION_IMPL, "Lock_By_Keys___", true, 6242, 6797, 3);
53.3289 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "lock_control", true, 6382, 6491, 0);
53.3290 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(2).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (lock_control%FOUND)", true, 6556, 6629, 0);
53.3291 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(2).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSE", true, 6633, 6699, 0);
53.3292 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 3, PlsqlBlockType.FUNCTION_IMPL, "Get_Object_By_Id___", true, 6799, 7208, 2);
53.3293 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(3).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "getrec", true, 6909, 6992, 0);
53.3294 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(3).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (getrec%NOTFOUND)", true, 7048, 7146, 0);
53.3295 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 4, PlsqlBlockType.FUNCTION_IMPL, "Get_Object_By_Keys___", true, 7210, 7528, 1);
53.3296 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(4).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "getrec", true, 7326, 7412, 0);
53.3297 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 5, PlsqlBlockType.FUNCTION_IMPL, "Check_Exist___", true, 7530, 7935, 2);
53.3298 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(5).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "exist_control", true, 7623, 7717, 0);
53.3299 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(5).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (exist_control%FOUND)", true, 7786, 7873, 0);
53.3300 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 6, PlsqlBlockType.PROCEDURE_IMPL, "Get_Id_Version_By_Keys___", true, 7937, 8307, 1);
53.3301 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(6).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_version", true, 8072, 8180, 0);
53.3302 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 7, PlsqlBlockType.COMMENT, "-- IMPLEMENTATION BASE METHODS FOR INSERT ", true, 8308, 9053, 0);
53.3303 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 8, PlsqlBlockType.PROCEDURE_IMPL, "Prepare_Insert___", true, 9055, 9176, 0);
53.3304 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 9, PlsqlBlockType.PROCEDURE_IMPL, "Unpack_Check_Insert___", true, 9179, 12003, 6);
53.3305 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(9).getChildBlocks(), 0, PlsqlBlockType.WHILE_LOOP, "(Client_SYS.Get_Next_From_Attr(attr_, ptr_, name_, value_))", true, 9496, 10607, 9);
53.3306 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(9).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (name_ = 'PERSON_ID')", true, 9573, 9640, 0);
53.3307 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(9).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (name_ = 'INTERNAL')", true, 9647, 9715, 0);
53.3308 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(9).getChildBlocks().get(0).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSIF (name_ = 'FNAME')", true, 9722, 9787, 0);
53.3309 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(9).getChildBlocks().get(0).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSIF (name_ = 'LNAME')", true, 9794, 9859, 0);
53.3310 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(9).getChildBlocks().get(0).getChildBlocks(), 4, PlsqlBlockType.IF, "ELSIF (name_ = 'TRAINING_INSTITUTION_NAME')", true, 9866, 10131, 1);
53.3311 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(9).getChildBlocks().get(0).getChildBlocks().get(4).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (value_ IS NOT NULL)", true, 10009, 10131, 0);
53.3312 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(9).getChildBlocks().get(0).getChildBlocks(), 5, PlsqlBlockType.IF, "ELSIF (name_ = 'DATE_OF_BIRTH')", true, 10138, 10250, 0);
53.3313 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(9).getChildBlocks().get(0).getChildBlocks(), 6, PlsqlBlockType.IF, "ELSIF (name_ = 'SEX')", true, 10257, 10438, 1);
53.3314 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(9).getChildBlocks().get(0).getChildBlocks().get(6).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (value_ IS NOT NULL)", true, 10351, 10438, 0);
53.3315 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(9).getChildBlocks().get(0).getChildBlocks(), 7, PlsqlBlockType.IF, "ELSIF (name_ = 'REMARK')", true, 10445, 10509, 0);
53.3316 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(9).getChildBlocks().get(0).getChildBlocks(), 8, PlsqlBlockType.IF, "ELSE", true, 10516, 10594, 0);
53.3317 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(9).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (dummy_rec_.name1 IS NULL) OR (dummy_rec_.name4 IS NULL)", true, 10715, 11035, 2);
53.3318 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(9).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (dummy_rec_.name1 IS NULL)", true, 10847, 10932, 0);
53.3319 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(9).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (dummy_rec_.name4 IS NULL)", true, 10939, 11024, 0);
53.3320 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(9).getChildBlocks(), 2, PlsqlBlockType.IF, "IF (dummy_rec_.date_of_birth IS NULL)", true, 11106, 11240, 0);
53.3321 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(9).getChildBlocks(), 3, PlsqlBlockType.IF, "IF (dummy_rec_.sex IS NULL)", true, 11244, 11371, 0);
53.3322 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(9).getChildBlocks(), 4, PlsqlBlockType.IF, "IF (newrec_.internal = '1')", true, 11444, 11671, 1);
53.3323 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(9).getChildBlocks().get(4).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (Trainer_API.Check_Person_Internal(newrec_.person_id) = 0)", true, 11483, 11671, 0);
53.3324 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(9).getChildBlocks(), 5, PlsqlBlockType.IF, "ELSE", true, 11675, 11885, 1);
53.3325 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(9).getChildBlocks().get(5).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (Trainer_API.Check_Person_Internal(newrec_.person_id) = 1)", true, 11686, 11874, 0);
53.3326 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 10, PlsqlBlockType.PROCEDURE_IMPL, "Insert___", true, 12006, 13457, 4);
53.3327 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(10).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_objid", true, 12270, 12373, 0);
53.3328 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(10).getChildBlocks(), 1, PlsqlBlockType.STATEMENT, "INSERT", true, 12458, 12766, 0);
53.3329 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(10).getChildBlocks(), 2, PlsqlBlockType.COMMENT, "-- update person register", true, 12768, 12799, 0);
53.3330 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(10).getChildBlocks(), 3, PlsqlBlockType.IF, "IF (get_objid_)", true, 13248, 13359, 0);
53.3331 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 11, PlsqlBlockType.COMMENT, "-- IMPLEMENTATION BASE METHODS FOR UPDATE ", true, 13459, 14043, 0);
53.3332 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 12, PlsqlBlockType.PROCEDURE_IMPL, "Unpack_Check_Update___", true, 14045, 16803, 6);
53.3333 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(12).getChildBlocks(), 0, PlsqlBlockType.WHILE_LOOP, "(Client_SYS.Get_Next_From_Attr(attr_, ptr_, name_, value_))", true, 14351, 15479, 9);
53.3334 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(12).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (name_ = 'PERSON_ID')", true, 14428, 14512, 0);
53.3335 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(12).getChildBlocks().get(0).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (name_ = 'INTERNAL')", true, 14519, 14587, 0);
53.3336 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(12).getChildBlocks().get(0).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSIF (name_ = 'FNAME')", true, 14594, 14659, 0);
53.3337 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(12).getChildBlocks().get(0).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSIF (name_ = 'LNAME')", true, 14666, 14731, 0);
53.3338 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(12).getChildBlocks().get(0).getChildBlocks(), 4, PlsqlBlockType.IF, "ELSIF (name_ = 'TRAINING_INSTITUTION_NAME')", true, 14738, 15003, 1);
53.3339 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(12).getChildBlocks().get(0).getChildBlocks().get(4).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (value_ IS NOT NULL)", true, 14881, 15003, 0);
53.3340 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(12).getChildBlocks().get(0).getChildBlocks(), 5, PlsqlBlockType.IF, "ELSIF (name_ = 'DATE_OF_BIRTH')", true, 15010, 15122, 0);
53.3341 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(12).getChildBlocks().get(0).getChildBlocks(), 6, PlsqlBlockType.IF, "ELSIF (name_ = 'SEX')", true, 15129, 15310, 1);
53.3342 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(12).getChildBlocks().get(0).getChildBlocks().get(6).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (value_ IS NOT NULL)", true, 15223, 15310, 0);
53.3343 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(12).getChildBlocks().get(0).getChildBlocks(), 7, PlsqlBlockType.IF, "ELSIF (name_ = 'REMARK')", true, 15317, 15381, 0);
53.3344 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(12).getChildBlocks().get(0).getChildBlocks(), 8, PlsqlBlockType.IF, "ELSE", true, 15388, 15466, 0);
53.3345 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(12).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (dummy_rec_.name1 IS NULL) OR (dummy_rec_.name4 IS NULL)", true, 15516, 15836, 2);
53.3346 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(12).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (dummy_rec_.name1 IS NULL)", true, 15648, 15733, 0);
53.3347 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(12).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (dummy_rec_.name4 IS NULL)", true, 15740, 15825, 0);
53.3348 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(12).getChildBlocks(), 2, PlsqlBlockType.IF, "IF (dummy_rec_.date_of_birth IS NULL)", true, 15907, 16041, 0);
53.3349 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(12).getChildBlocks(), 3, PlsqlBlockType.IF, "IF (dummy_rec_.sex IS NULL)", true, 16045, 16172, 0);
53.3350 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(12).getChildBlocks(), 4, PlsqlBlockType.IF, "IF (newrec_.internal = '1')", true, 16245, 16472, 1);
53.3351 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(12).getChildBlocks().get(4).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (Trainer_API.Check_Person_Internal(newrec_.person_id) = 0)", true, 16284, 16472, 0);
53.3352 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(12).getChildBlocks(), 5, PlsqlBlockType.IF, "ELSE", true, 16476, 16686, 1);
53.3353 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(12).getChildBlocks().get(5).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (Trainer_API.Check_Person_Internal(newrec_.person_id) = 1)", true, 16487, 16675, 0);
53.3354 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 13, PlsqlBlockType.PROCEDURE_IMPL, "Update___", true, 16806, 18487, 3);
53.3355 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(13).getChildBlocks(), 0, PlsqlBlockType.IF, "IF by_keys_", true, 17217, 17547, 1);
53.3356 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(13).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE trainer_tab t", true, 17240, 17546, 0);
53.3357 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(13).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 17551, 17866, 1);
53.3358 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(13).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE trainer_tab t", true, 17562, 17854, 0);
53.3359 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(13).getChildBlocks(), 2, PlsqlBlockType.COMMENT, "-- update person register", true, 17874, 17917, 0);
53.3360 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 14, PlsqlBlockType.COMMENT, "-- IMPLEMENTATION BASE METHODS FOR DELETE ", true, 18489, 19086, 0);
53.3361 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 15, PlsqlBlockType.PROCEDURE_IMPL, "Check_Delete___", true, 19088, 19295, 0);
53.3362 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 16, PlsqlBlockType.PROCEDURE_IMPL, "Delete___", true, 19298, 19788, 2);
53.3363 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(16).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (by_keys_)", true, 19565, 19680, 1);
53.3364 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(16).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "DELETE FROM &TABLE", true, 19616, 19679, 0);
53.3365 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(16).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 19684, 19773, 1);
53.3366 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(16).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "DELETE", true, 19695, 19761, 0);
53.3367 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 17, PlsqlBlockType.COMMENT, "-- PRIVATE BASE METHODS ", true, 19790, 22085, 0);
53.3368 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 18, PlsqlBlockType.PROCEDURE_IMPL, "Lock__", true, 22087, 22382, 0);
53.3369 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 19, PlsqlBlockType.PROCEDURE_IMPL, "New__", true, 22385, 23047, 3);
53.3370 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(19).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (action_ = 'PREPARE')", true, 22683, 22744, 0);
53.3371 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(19).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (action_ = 'CHECK')", true, 22748, 22835, 0);
53.3372 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(19).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSIF (action_ = 'DO')", true, 22839, 22999, 0);
53.3373 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 20, PlsqlBlockType.PROCEDURE_IMPL, "Modify__", true, 23050, 23830, 2);
53.3374 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(20).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (action_ = 'CHECK')", true, 23381, 23519, 0);
53.3375 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(20).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (action_ = 'DO')", true, 23523, 23779, 0);
53.3376 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 21, PlsqlBlockType.PROCEDURE_IMPL, "Remove__", true, 23833, 24385, 2);
53.3377 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(21).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (action_ = 'CHECK')", true, 24068, 24173, 0);
53.3378 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(21).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (action_ = 'DO')", true, 24177, 24334, 0);
53.3379 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 22, PlsqlBlockType.COMMENT, "-- PUBLIC BASE METHODS ", true, 24387, 24840, 0);
53.3380 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 23, PlsqlBlockType.PROCEDURE_IMPL, "Exist", true, 24842, 25067, 1);
53.3381 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(23).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (NOT Check_Exist___(person_id_))", true, 24961, 25056, 0);
53.3382 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 24, PlsqlBlockType.COMMENT, "-- LU SPECIFIC IMPLEMENTATION METHODS ", true, 25069, 26009, 0);
53.3383 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 25, PlsqlBlockType.FUNCTION_IMPL, "Get_Training_Institution_Name", true, 26011, 26416, 1);
53.3384 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(25).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_attr", true, 26149, 26258, 0);
53.3385 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 26, PlsqlBlockType.FUNCTION_IMPL, "Get_Fname", true, 26419, 26549, 0);
53.3386 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 27, PlsqlBlockType.FUNCTION_IMPL, "Get_Lname", true, 26552, 26682, 0);
53.3387 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 28, PlsqlBlockType.FUNCTION_IMPL, "Get_Name", true, 26684, 26819, 0);
53.3388 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 29, PlsqlBlockType.FUNCTION_IMPL, "Check_Person_Internal", true, 26821, 26997, 0);
53.3389 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 30, PlsqlBlockType.FUNCTION_IMPL, "Get_Internal_External", true, 26999, 27309, 2);
53.3390 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(30).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (internal_ = '0')", true, 27086, 27169, 0);
53.3391 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(30).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSIF (internal_ = '1')", true, 27173, 27266, 0);
53.3392 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 31, PlsqlBlockType.FUNCTION_IMPL, "Replace_Person_Id", true, 27311, 28260, 4);
53.3393 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(31).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_pers", true, 27425, 27536, 0);
53.3394 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(31).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (new_person_id_ = old_person_id_)", true, 27704, 27777, 0);
53.3395 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(31).getChildBlocks(), 2, PlsqlBlockType.IF, "IF (Check_Exist___(new_person_id_) = TRUE)", true, 27781, 27861, 0);
53.3396 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(31).getChildBlocks(), 3, PlsqlBlockType.WHILE_LOOP, "(get_pers%FOUND)", true, 27927, 28199, 1);
53.3397 - assertBlock(lstBlockFac.get(9).getChildBlocks().get(31).getChildBlocks().get(3).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "UPDATE trainer_tab t", true, 28014, 28138, 0);
53.3398 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 32, PlsqlBlockType.COMMENT, "-- FOUNDATION1 METHODS ", true, 28261, 28725, 0);
53.3399 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 33, PlsqlBlockType.PROCEDURE_IMPL, "Init", true, 28727, 28769, 0);
53.3400 - assertBlock(lstBlockFac, 10, PlsqlBlockType.COMMENT, "COMMENT...", false, 28796, 28873, 0);
53.3401 + assertEquals(11, lstBlockFac.size());
53.3402 + processBlocks(plsqlFileName, lstBlockFac);
53.3403 } finally {
53.3404 if (fileObject != null) {
53.3405 fileObject.delete();
53.3406 @@ -3404,32 +440,18 @@
53.3407 @Test
53.3408 public void testAdvanced14() throws IOException, BadLocationException {
53.3409 System.out.println("Advanced test case 14");
53.3410 - FileObject fileObject = fs.getRoot().createData("fndbas_ora.cre");
53.3411 + final String plsqlFileName = "fndbas_ora.cre";
53.3412 + FileObject fileObject = fs.getRoot().createData(plsqlFileName);
53.3413 assertNotNull(fileObject);
53.3414 try {
53.3415 - PlsqlBlockFactory blockFac = loadAsTmpFile(fileObject, "fndbas_ora.cre");
53.3416 + PlsqlBlockFactory blockFac = loadAsTmpFile(fileObject, plsqlFileName);
53.3417 assertNotNull(blockFac);
53.3418
53.3419 List<PlsqlBlock> lstBlockFac = blockFac.getBlockHierarchy();
53.3420 // printHierarchy(lstBlockFac, "");
53.3421 // generateAssert(lstBlockFac, "lstBlockFac", "false");
53.3422 - assertTrue(lstBlockFac.size() == 12);
53.3423 - assertBlock(lstBlockFac, 0, PlsqlBlockType.COMMENT, "-- File : fndbas_ora.cre", false, 0, 232, 0);
53.3424 - assertBlock(lstBlockFac, 1, PlsqlBlockType.STATEMENT, "TABLE &AO..X_ACTIVITY_GRANT_FILTER_TAB", false, 234, 556, 0);
53.3425 - assertBlock(lstBlockFac, 2, PlsqlBlockType.STATEMENT, "TABLE &AO..X_ACTIVITY_GRANT_FILTER_TAB", false, 558, 770, 0);
53.3426 - assertBlock(lstBlockFac, 3, PlsqlBlockType.STATEMENT, "TABLE &AO..X_FNDDR_ACTIVITY_ENT_USAGE_TAB", false, 773, 1079, 0);
53.3427 - assertBlock(lstBlockFac, 4, PlsqlBlockType.STATEMENT, "TABLE &AO..X_FNDDR_ACTIVITY_ENT_USAGE_TAB", false, 1081, 1291, 0);
53.3428 - assertBlock(lstBlockFac, 5, PlsqlBlockType.STATEMENT, "INDEX &AO..X_FNDDR_ACTIVITY_ENT_USEAGE_FK", false, 1293, 1435, 0);
53.3429 - assertBlock(lstBlockFac, 6, PlsqlBlockType.COMMENT, "-- CREATE sequence", false, 1438, 1456, 0);
53.3430 - assertBlock(lstBlockFac, 7, PlsqlBlockType.STATEMENT, "SEQUENCE &AO..X_Ext_File_Batch_Param_Seq", false, 1458, 1505, 0);
53.3431 - assertBlock(lstBlockFac, 8, PlsqlBlockType.COMMENT, "-- CREATE trigger", false, 1508, 1525, 0);
53.3432 - assertBlock(lstBlockFac, 9, PlsqlBlockType.TRIGGER, "x_vmogss_base_usermap_change", false, 1527, 1958, 1);
53.3433 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "insert into &AO..vmo_base_gss_scope(gss_id, created, source_tbl, source_info) values(:newrec.gss_id, sysdate, 'VMO_BASE_GSS_USERMAP_CHANGE', :newrec.gss_id)", true, 1757, 1913, 0);
53.3434 - assertBlock(lstBlockFac, 10, PlsqlBlockType.COMMENT, "-- CREATE trigger dynamically", false, 1962, 1991, 0);
53.3435 - assertBlock(lstBlockFac, 11, PlsqlBlockType.BEGIN_END, "", false, 1993, 2612, 3);
53.3436 - assertBlock(lstBlockFac.get(11).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- OK if ORA ", true, 2430, 2479, 0);
53.3437 - assertBlock(lstBlockFac.get(11).getChildBlocks(), 1, PlsqlBlockType.IF, "IF INSTR(SQLERRM,'-00942') != 0", true, 2488, 2530, 0);
53.3438 - assertBlock(lstBlockFac.get(11).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSE", true, 2539, 2605, 0);
53.3439 + assertEquals(13, lstBlockFac.size());
53.3440 + processBlocks(plsqlFileName, lstBlockFac);
53.3441 } finally {
53.3442 if (fileObject != null) {
53.3443 fileObject.delete();
53.3444 @@ -3440,92 +462,18 @@
53.3445 @Test
53.3446 public void testAdvanced15() throws IOException, BadLocationException {
53.3447 System.out.println("Advanced test case 15");
53.3448 - FileObject fileObject = fs.getRoot().createData("person.ins");
53.3449 + final String plsqlFileName = "person.ins";
53.3450 + FileObject fileObject = fs.getRoot().createData(plsqlFileName);
53.3451 assertNotNull(fileObject);
53.3452 try {
53.3453 - PlsqlBlockFactory blockFac = loadAsTmpFile(fileObject, "person.ins");
53.3454 + PlsqlBlockFactory blockFac = loadAsTmpFile(fileObject, plsqlFileName);
53.3455 assertNotNull(blockFac);
53.3456
53.3457 List<PlsqlBlock> lstBlockFac = blockFac.getBlockHierarchy();
53.3458 // printHierarchy(lstBlockFac, "");
53.3459 // generateAssert(lstBlockFac, "lstBlockFac", "false");
53.3460 - assertTrue(lstBlockFac.size() == 23);
53.3461 - assertBlock(lstBlockFac, 0, PlsqlBlockType.COMMENT, "-- Module: PERSON", false, 0, 1680, 0);
53.3462 - assertBlock(lstBlockFac, 1, PlsqlBlockType.BEGIN_END, "", false, 1683, 1814, 1);
53.3463 - assertBlock(lstBlockFac.get(1).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "INSERT", true, 1689, 1808, 0);
53.3464 - assertBlock(lstBlockFac, 2, PlsqlBlockType.DECLARE_END, "", false, 1817, 2105, 1);
53.3465 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (val_ is NULL or val_='Yes,No')", true, 1939, 2100, 0);
53.3466 - assertBlock(lstBlockFac, 3, PlsqlBlockType.COMMENT, "-- Transfer companies from finance to hr", false, 2108, 2148, 0);
53.3467 - assertBlock(lstBlockFac, 4, PlsqlBlockType.BEGIN_END, "", false, 2375, 2664, 1);
53.3468 - assertBlock(lstBlockFac.get(4).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "INSERT INTO person_company_tab (", true, 2381, 2658, 0);
53.3469 - assertBlock(lstBlockFac, 5, PlsqlBlockType.DECLARE_END, "", false, 2667, 3275, 2);
53.3470 - assertBlock(lstBlockFac.get(5).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "check_exits", true, 2678, 2860, 0);
53.3471 - assertBlock(lstBlockFac.get(5).getChildBlocks(), 1, PlsqlBlockType.FOR_LOOP, "rec_ IN ( * FROM company_emp_tab)", true, 2887, 3270, 1);
53.3472 - assertBlock(lstBlockFac.get(5).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (check_exits%NOTFOUND)", true, 3024, 3232, 1);
53.3473 - assertBlock(lstBlockFac.get(5).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "INSERT INTO company_person_tab(company_id,emp_no,master_employment,operator,rowversion)", true, 3061, 3218, 0);
53.3474 - assertBlock(lstBlockFac, 6, PlsqlBlockType.DECLARE_END, "", false, 3278, 3823, 2);
53.3475 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "check_exits", true, 3289, 3415, 0);
53.3476 - assertBlock(lstBlockFac.get(6).getChildBlocks(), 1, PlsqlBlockType.FOR_LOOP, "rec_ IN ( * FROM person_info_tab)", true, 3446, 3818, 1);
53.3477 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (check_exits%NOTFOUND)", true, 3578, 3767, 1);
53.3478 - assertBlock(lstBlockFac.get(6).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "INSERT INTO pers_tab(person_id,have_child,external_display_name,rowversion)", true, 3621, 3748, 0);
53.3479 - assertBlock(lstBlockFac, 7, PlsqlBlockType.BEGIN_END, "", false, 3826, 4088, 1);
53.3480 - assertBlock(lstBlockFac.get(7).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "INSERT INTO employee_name_configurator_tab", true, 3832, 4082, 0);
53.3481 - assertBlock(lstBlockFac, 8, PlsqlBlockType.DECLARE_END, "", false, 4100, 5981, 5);
53.3482 - assertBlock(lstBlockFac.get(8).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "COMMENT...", true, 4142, 4145, 0);
53.3483 - assertBlock(lstBlockFac.get(8).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "COMMENT...", true, 4807, 4810, 0);
53.3484 - assertBlock(lstBlockFac.get(8).getChildBlocks(), 2, PlsqlBlockType.COMMENT, "-- Bug 58601, Modified hardcoded date values to Database_SYS.get_first_calendar_date and get_last_calendar_date.", true, 5053, 5165, 0);
53.3485 - assertBlock(lstBlockFac.get(8).getChildBlocks(), 3, PlsqlBlockType.COMMENT, "COMMENT...", true, 5390, 5393, 0);
53.3486 - assertBlock(lstBlockFac.get(8).getChildBlocks(), 4, PlsqlBlockType.COMMENT, "-- Bug 58601, Modified hardcoded date values to Database_SYS.get_first_calendar_date and get_last_calendar_date.", true, 5641, 5753, 0);
53.3487 - assertBlock(lstBlockFac, 9, PlsqlBlockType.DECLARE_END, "", false, 5993, 7846, 5);
53.3488 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "COMMENT...", true, 6035, 6038, 0);
53.3489 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "COMMENT...", true, 6700, 6703, 0);
53.3490 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 2, PlsqlBlockType.COMMENT, "-- Bug 58601, Modified hardcoded date values to Database_SYS.get_first_calendar_date and get_last_calendar_date.", true, 6934, 7046, 0);
53.3491 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 3, PlsqlBlockType.COMMENT, "COMMENT...", true, 7271, 7274, 0);
53.3492 - assertBlock(lstBlockFac.get(9).getChildBlocks(), 4, PlsqlBlockType.COMMENT, "-- Bug 58601, Modified hardcoded date values to Database_SYS.get_first_calendar_date and get_last_calendar_date.", true, 7506, 7618, 0);
53.3493 - assertBlock(lstBlockFac, 10, PlsqlBlockType.DECLARE_END, "", false, 7858, 8561, 1);
53.3494 - assertBlock(lstBlockFac.get(10).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "COMMENT...", true, 7900, 7903, 0);
53.3495 - assertBlock(lstBlockFac, 11, PlsqlBlockType.DECLARE_END, "", false, 8574, 9270, 2);
53.3496 - assertBlock(lstBlockFac.get(11).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "check_comp_exist", true, 8585, 8757, 0);
53.3497 - assertBlock(lstBlockFac.get(11).getChildBlocks(), 1, PlsqlBlockType.FOR_LOOP, "get_company_ IN ( DISTINCT company_id FROM person_company_tab)", true, 8794, 9265, 1);
53.3498 - assertBlock(lstBlockFac.get(11).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (check_comp_exist%NOTFOUND)", true, 8983, 9219, 1);
53.3499 - assertBlock(lstBlockFac.get(11).getChildBlocks().get(1).getChildBlocks().get(0).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "INSERT INTO EMPLOYEE_STATUS_TAB(company_id, seq_no, employee_status, active, status_obsolete, rowversion)", true, 9028, 9203, 0);
53.3500 - assertBlock(lstBlockFac, 12, PlsqlBlockType.BEGIN_END, "", false, 9273, 9978, 0);
53.3501 - assertBlock(lstBlockFac, 13, PlsqlBlockType.PROCEDURE_IMPL, "Temp_Person_Document_Default", false, 10084, 11481, 2);
53.3502 - assertBlock(lstBlockFac.get(13).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "existdoc", true, 10416, 10546, 0);
53.3503 - assertBlock(lstBlockFac.get(13).getChildBlocks(), 1, PlsqlBlockType.IF, "IF existdoc%NOTFOUND", true, 10635, 11428, 1);
53.3504 - assertBlock(lstBlockFac.get(13).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "INSERT", true, 10667, 11116, 0);
53.3505 - assertBlock(lstBlockFac, 14, PlsqlBlockType.DECLARE_END, "", false, 11484, 11672, 0);
53.3506 - assertBlock(lstBlockFac, 15, PlsqlBlockType.STATEMENT, "DROP PROCEDURE Temp_Person_Document_Default", false, 11722, 11765, 0);
53.3507 - assertBlock(lstBlockFac, 16, PlsqlBlockType.BEGIN_END, "", false, 11769, 11973, 0);
53.3508 - assertBlock(lstBlockFac, 17, PlsqlBlockType.DECLARE_END, "", false, 12190, 14461, 2);
53.3509 - assertBlock(lstBlockFac.get(17).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "check_exits", true, 12201, 12307, 0);
53.3510 - assertBlock(lstBlockFac.get(17).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (check_exits%NOTFOUND)", true, 12475, 14428, 6);
53.3511 - assertBlock(lstBlockFac.get(17).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "SELECT MARITAL_STATUS_ID.NEXTVAL INTO married_seq_ FROM dual", true, 12512, 12572, 0);
53.3512 - assertBlock(lstBlockFac.get(17).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.STATEMENT, "INSERT", true, 12581, 12835, 0);
53.3513 - assertBlock(lstBlockFac.get(17).getChildBlocks().get(1).getChildBlocks(), 2, PlsqlBlockType.STATEMENT, "SELECT MARITAL_STATUS_ID.NEXTVAL INTO unmarried_seq_ FROM dual", true, 13113, 13175, 0);
53.3514 - assertBlock(lstBlockFac.get(17).getChildBlocks().get(1).getChildBlocks(), 3, PlsqlBlockType.STATEMENT, "INSERT", true, 13187, 13475, 0);
53.3515 - assertBlock(lstBlockFac.get(17).getChildBlocks().get(1).getChildBlocks(), 4, PlsqlBlockType.STATEMENT, "SELECT MARITAL_STATUS_ID.NEXTVAL INTO widower_seq_ FROM dual", true, 13775, 13835, 0);
53.3516 - assertBlock(lstBlockFac.get(17).getChildBlocks().get(1).getChildBlocks(), 5, PlsqlBlockType.STATEMENT, "INSERT", true, 13847, 14133, 0);
53.3517 - assertBlock(lstBlockFac, 18, PlsqlBlockType.BEGIN_END, "", false, 14497, 14715, 0);
53.3518 - assertBlock(lstBlockFac, 19, PlsqlBlockType.DECLARE_END, "", false, 14939, 16749, 2);
53.3519 - assertBlock(lstBlockFac.get(19).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "check_exits", true, 14950, 15100, 0);
53.3520 - assertBlock(lstBlockFac.get(19).getChildBlocks(), 1, PlsqlBlockType.IF, "IF (check_exits%NOTFOUND)", true, 15185, 16719, 11);
53.3521 - assertBlock(lstBlockFac.get(19).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.STATEMENT, "INSERT INTO protected_information_tab(Protected_Field,Protected_Value,Rowversion)", true, 15226, 15355, 0);
53.3522 - assertBlock(lstBlockFac.get(19).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.STATEMENT, "INSERT INTO protected_information_tab(Protected_Field,Protected_Value,Rowversion)", true, 15362, 15482, 0);
53.3523 - assertBlock(lstBlockFac.get(19).getChildBlocks().get(1).getChildBlocks(), 2, PlsqlBlockType.STATEMENT, "INSERT INTO protected_information_tab(Protected_Field,Protected_Value,Rowversion)", true, 15490, 15633, 0);
53.3524 - assertBlock(lstBlockFac.get(19).getChildBlocks().get(1).getChildBlocks(), 3, PlsqlBlockType.STATEMENT, "INSERT INTO protected_information_tab(Protected_Field,Protected_Value,Rowversion)", true, 15640, 15767, 0);
53.3525 - assertBlock(lstBlockFac.get(19).getChildBlocks().get(1).getChildBlocks(), 4, PlsqlBlockType.STATEMENT, "INSERT INTO protected_information_tab(Protected_Field,Protected_Value,Rowversion)", true, 15776, 15904, 0);
53.3526 - assertBlock(lstBlockFac.get(19).getChildBlocks().get(1).getChildBlocks(), 5, PlsqlBlockType.STATEMENT, "INSERT INTO protected_information_tab(Protected_Field,Protected_Value,Rowversion)", true, 15911, 16035, 0);
53.3527 - assertBlock(lstBlockFac.get(19).getChildBlocks().get(1).getChildBlocks(), 6, PlsqlBlockType.STATEMENT, "INSERT INTO protected_information_tab(Protected_Field,Protected_Value,Rowversion)", true, 16044, 16170, 0);
53.3528 - assertBlock(lstBlockFac.get(19).getChildBlocks().get(1).getChildBlocks(), 7, PlsqlBlockType.STATEMENT, "INSERT INTO protected_information_tab(Protected_Field,Protected_Value,Rowversion)", true, 16177, 16297, 0);
53.3529 - assertBlock(lstBlockFac.get(19).getChildBlocks().get(1).getChildBlocks(), 8, PlsqlBlockType.STATEMENT, "INSERT INTO protected_information_tab(Protected_Field,Protected_Value,Rowversion)", true, 16306, 16430, 0);
53.3530 - assertBlock(lstBlockFac.get(19).getChildBlocks().get(1).getChildBlocks(), 9, PlsqlBlockType.STATEMENT, "INSERT INTO protected_information_tab(Protected_Field,Protected_Value,Rowversion)", true, 16438, 16566, 0);
53.3531 - assertBlock(lstBlockFac.get(19).getChildBlocks().get(1).getChildBlocks(), 10, PlsqlBlockType.STATEMENT, "INSERT INTO protected_information_tab(Protected_Field,Protected_Value,Rowversion)", true, 16574, 16701, 0);
53.3532 - assertBlock(lstBlockFac, 20, PlsqlBlockType.COMMENT, "-- Bug 73297, Start", false, 16761, 16779, 0);
53.3533 - assertBlock(lstBlockFac, 21, PlsqlBlockType.DECLARE_END, "", false, 17024, 18309, 2);
53.3534 - assertBlock(lstBlockFac.get(21).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "COMMENT...", true, 17066, 17069, 0);
53.3535 - assertBlock(lstBlockFac.get(21).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "COMMENT...", true, 17686, 17689, 0);
53.3536 - assertBlock(lstBlockFac, 22, PlsqlBlockType.COMMENT, "-- Bug 73297, End", false, 18320, 18336, 0);
53.3537 + assertEquals(22, lstBlockFac.size());
53.3538 + processBlocks(plsqlFileName, lstBlockFac);
53.3539 } finally {
53.3540 if (fileObject != null) {
53.3541 fileObject.delete();
53.3542 @@ -3536,30 +484,18 @@
53.3543 @Test
53.3544 public void testAdvanced16() throws IOException, BadLocationException {
53.3545 System.out.println("Advanced test case 16");
53.3546 - FileObject fileObject = fs.getRoot().createData("sys_IalObjectSlave.api");
53.3547 + final String plsqlFileName = "sys_IalObjectSlave.api";
53.3548 + FileObject fileObject = fs.getRoot().createData(plsqlFileName);
53.3549 assertNotNull(fileObject);
53.3550 try {
53.3551 - PlsqlBlockFactory blockFac = loadAsTmpFile(fileObject, "sys_IalObjectSlave.api");
53.3552 + PlsqlBlockFactory blockFac = loadAsTmpFile(fileObject, plsqlFileName);
53.3553 assertNotNull(blockFac);
53.3554
53.3555 List<PlsqlBlock> lstBlockFac = blockFac.getBlockHierarchy();
53.3556 // printHierarchy(lstBlockFac, "");
53.3557 // generateAssert(lstBlockFac, "lstBlockFac", "false");
53.3558 - assertTrue(lstBlockFac.size() == 3);
53.3559 - assertBlock(lstBlockFac, 0, PlsqlBlockType.COMMENT, "-- Logical unit: IalObjectSlave", false, 0, 513, 0);
53.3560 - assertBlock(lstBlockFac, 1, PlsqlBlockType.PACKAGE, "IAL_OBJECT_SLAVE_API", false, 679, 2462, 11);
53.3561 - assertBlock(lstBlockFac.get(1).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- LU SPECIFIC PRIVATE METHODS ", true, 814, 1519, 0);
53.3562 - assertBlock(lstBlockFac.get(1).getChildBlocks(), 1, PlsqlBlockType.PROCEDURE_DEF, "Exec_Ddl_Statement", true, 1521, 1582, 0);
53.3563 - assertBlock(lstBlockFac.get(1).getChildBlocks(), 2, PlsqlBlockType.PROCEDURE_DEF, "Enumerate_Column_Info", true, 1584, 1665, 0);
53.3564 - assertBlock(lstBlockFac.get(1).getChildBlocks(), 3, PlsqlBlockType.PROCEDURE_DEF, "Enumerate_Index_Info", true, 1667, 1759, 0);
53.3565 - assertBlock(lstBlockFac.get(1).getChildBlocks(), 4, PlsqlBlockType.PROCEDURE_DEF, "Add_Index", true, 1761, 1842, 0);
53.3566 - assertBlock(lstBlockFac.get(1).getChildBlocks(), 5, PlsqlBlockType.PROCEDURE_DEF, "Remove_Index", true, 1844, 1928, 0);
53.3567 - assertBlock(lstBlockFac.get(1).getChildBlocks(), 6, PlsqlBlockType.PROCEDURE_DEF, "Get_Object_Info", true, 1930, 2011, 0);
53.3568 - assertBlock(lstBlockFac.get(1).getChildBlocks(), 7, PlsqlBlockType.FUNCTION_DEF, "Check_Index", true, 2013, 2111, 0);
53.3569 - assertBlock(lstBlockFac.get(1).getChildBlocks(), 8, PlsqlBlockType.PROCEDURE_DEF, "Get_Table_Info", true, 2113, 2199, 0);
53.3570 - assertBlock(lstBlockFac.get(1).getChildBlocks(), 9, PlsqlBlockType.COMMENT, "-- FOUNDATION1 METHODS ", true, 2201, 2434, 0);
53.3571 - assertBlock(lstBlockFac.get(1).getChildBlocks(), 10, PlsqlBlockType.PROCEDURE_DEF, "Init", true, 2436, 2451, 0);
53.3572 - assertBlock(lstBlockFac, 2, PlsqlBlockType.COMMENT, "COMMENT...", false, 2477, 2554, 0);
53.3573 + assertEquals(3, lstBlockFac.size());
53.3574 + processBlocks(plsqlFileName, lstBlockFac);
53.3575 } finally {
53.3576 if (fileObject != null) {
53.3577 fileObject.delete();
53.3578 @@ -3570,82 +506,18 @@
53.3579 @Test
53.3580 public void testAdvanced17() throws IOException, BadLocationException {
53.3581 System.out.println("Advanced test case 17");
53.3582 - FileObject fileObject = fs.getRoot().createData("sys_IalObjectSlave.apy");
53.3583 + final String plsqlFileName = "sys_IalObjectSlave.apy";
53.3584 + FileObject fileObject = fs.getRoot().createData(plsqlFileName);
53.3585 assertNotNull(fileObject);
53.3586 try {
53.3587 - PlsqlBlockFactory blockFac = loadAsTmpFile(fileObject, "sys_IalObjectSlave.apy");
53.3588 + PlsqlBlockFactory blockFac = loadAsTmpFile(fileObject, plsqlFileName);
53.3589 assertNotNull(blockFac);
53.3590
53.3591 List<PlsqlBlock> lstBlockFac = blockFac.getBlockHierarchy();
53.3592 // printHierarchy(lstBlockFac, "");
53.3593 // generateAssert(lstBlockFac, "lstBlockFac", "false");
53.3594 - assertTrue(lstBlockFac.size() == 4);
53.3595 - assertBlock(lstBlockFac, 0, PlsqlBlockType.COMMENT, "-- Logical unit: IalObjectSlave", false, 0, 1094, 0);
53.3596 - assertBlock(lstBlockFac, 1, PlsqlBlockType.COMMENT, "-- PACKAGES FOR METHODS ", false, 1209, 1442, 0);
53.3597 - assertBlock(lstBlockFac, 2, PlsqlBlockType.PACKAGE_BODY, "IAL_OBJECT_SLAVE_API", false, 1494, 13066, 21);
53.3598 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- LU SPECIFIC IMPLEMENTATION METHOD DECLARATIONS ", true, 1547, 1780, 0);
53.3599 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 1, PlsqlBlockType.FUNCTION_DEF, "Is_Locally_Managed___", true, 1782, 1859, 0);
53.3600 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 2, PlsqlBlockType.FUNCTION_DEF, "Is_Column_Indexed___", true, 1861, 1968, 0);
53.3601 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 3, PlsqlBlockType.FUNCTION_DEF, "Get_Column_Id___", true, 1970, 2073, 0);
53.3602 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 4, PlsqlBlockType.FUNCTION_DEF, "Table_Exist___", true, 2075, 2145, 0);
53.3603 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 5, PlsqlBlockType.COMMENT, "-- LU SPECIFIC IMPLEMENTATION METHODS ", true, 2147, 2380, 0);
53.3604 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 6, PlsqlBlockType.FUNCTION_IMPL, "Is_Locally_Managed___", true, 2382, 2830, 1);
53.3605 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(6).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_extent_management", true, 2502, 2638, 0);
53.3606 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 7, PlsqlBlockType.FUNCTION_IMPL, "Is_Column_Indexed___", true, 2832, 3438, 3);
53.3607 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(7).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_index", true, 3075, 3196, 0);
53.3608 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(7).getChildBlocks(), 1, PlsqlBlockType.IF, "IF get_index%FOUND", true, 3283, 3330, 0);
53.3609 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(7).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSE", true, 3334, 3374, 0);
53.3610 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 8, PlsqlBlockType.FUNCTION_IMPL, "Get_Column_Id___", true, 3440, 3824, 1);
53.3611 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(8).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_id", true, 3565, 3713, 0);
53.3612 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 9, PlsqlBlockType.FUNCTION_IMPL, "Table_Exist___", true, 3826, 4230, 2);
53.3613 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(9).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "exist_control", true, 3922, 4012, 0);
53.3614 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(9).getChildBlocks(), 1, PlsqlBlockType.IF, "IF exist_control%FOUND", true, 4081, 4167, 0);
53.3615 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 10, PlsqlBlockType.COMMENT, "-- LU SPECIFIC PRIVATE METHODS ", true, 4232, 4937, 0);
53.3616 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 11, PlsqlBlockType.PROCEDURE_IMPL, "Exec_Ddl_Statement", true, 4939, 5143, 1);
53.3617 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(11).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Safe as package is in IAL Owner schema", true, 5012, 5091, 0);
53.3618 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 12, PlsqlBlockType.PROCEDURE_IMPL, "Enumerate_Column_Info", true, 5145, 6488, 3);
53.3619 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(12).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_column_info", true, 5389, 5531, 0);
53.3620 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(12).getChildBlocks(), 1, PlsqlBlockType.IF, "IF Table_Exist___(table_name_)", true, 5541, 6017, 1);
53.3621 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(12).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "rec_ IN get_column_info(table_name_)", true, 5583, 6017, 0);
53.3622 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(12).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSE", true, 6021, 6438, 1);
53.3623 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(12).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.FOR_LOOP, "rec_ IN get_column_info(view_name_)", true, 6032, 6427, 0);
53.3624 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 13, PlsqlBlockType.PROCEDURE_IMPL, "Enumerate_Index_Info", true, 6490, 8726, 3);
53.3625 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(13).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_index_info", true, 6793, 6896, 0);
53.3626 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(13).getChildBlocks(), 1, PlsqlBlockType.CURSOR, "get_columns", true, 6901, 7071, 0);
53.3627 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(13).getChildBlocks(), 2, PlsqlBlockType.FOR_LOOP, "ind_ IN get_index_info", true, 7081, 8672, 4);
53.3628 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(13).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.IF, "IF (ind_.uniqueness = 'UNIQUE')", true, 7119, 7253, 0);
53.3629 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(13).getChildBlocks().get(2).getChildBlocks(), 1, PlsqlBlockType.IF, "ELSE", true, 7260, 7369, 0);
53.3630 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(13).getChildBlocks().get(2).getChildBlocks(), 2, PlsqlBlockType.FOR_LOOP, "col_ IN get_columns(ind_.index_name)", true, 7423, 7571, 0);
53.3631 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(13).getChildBlocks().get(2).getChildBlocks(), 3, PlsqlBlockType.IF, "IF (col_list_ IS NOT NULL)", true, 7578, 8659, 3);
53.3632 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(13).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Statements only necessary if not locally managed tablespace", true, 7765, 7827, 0);
53.3633 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(13).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks(), 1, PlsqlBlockType.IF, "IF NOT Is_Locally_Managed___(ind_.tablespace_name)", true, 7837, 8538, 0);
53.3634 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(13).getChildBlocks().get(2).getChildBlocks().get(3).getChildBlocks(), 2, PlsqlBlockType.COMMENT, "-- Add this index to the list for all indexes", true, 8548, 8593, 0);
53.3635 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 14, PlsqlBlockType.PROCEDURE_IMPL, "Add_Index", true, 8728, 9019, 0);
53.3636 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 15, PlsqlBlockType.PROCEDURE_IMPL, "Remove_Index", true, 9021, 9272, 0);
53.3637 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 16, PlsqlBlockType.PROCEDURE_IMPL, "Get_Object_Info", true, 9274, 10356, 3);
53.3638 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(16).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "find_objdate_column", true, 9469, 9615, 0);
53.3639 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(16).getChildBlocks(), 1, PlsqlBlockType.IF, "IF Table_Exist___(table_name_)", true, 9625, 10145, 4);
53.3640 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(16).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Add table name", true, 9667, 9684, 0);
53.3641 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(16).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- Add info about objdate column", true, 9781, 9813, 0);
53.3642 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(16).getChildBlocks().get(1).getChildBlocks(), 2, PlsqlBlockType.IF, "IF find_objdate_column%FOUND", true, 9897, 10008, 0);
53.3643 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(16).getChildBlocks().get(1).getChildBlocks(), 3, PlsqlBlockType.IF, "ELSE", true, 10015, 10112, 0);
53.3644 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(16).getChildBlocks(), 2, PlsqlBlockType.IF, "ELSE", true, 10149, 10312, 1);
53.3645 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(16).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- If no table exist, then no objdate column will exist either...", true, 10160, 10225, 0);
53.3646 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 17, PlsqlBlockType.FUNCTION_IMPL, "Check_Index", true, 10358, 11197, 3);
53.3647 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(17).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_indexes", true, 10534, 10641, 0);
53.3648 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(17).getChildBlocks(), 1, PlsqlBlockType.CURSOR, "find_index_column", true, 10646, 10816, 0);
53.3649 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(17).getChildBlocks(), 2, PlsqlBlockType.FOR_LOOP, "rec_ IN get_indexes", true, 10826, 11160, 1);
53.3650 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(17).getChildBlocks().get(2).getChildBlocks(), 0, PlsqlBlockType.IF, "IF find_index_column%FOUND", true, 10951, 11116, 0);
53.3651 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 18, PlsqlBlockType.PROCEDURE_IMPL, "Get_Table_Info", true, 11199, 12544, 2);
53.3652 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(18).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "get_table_information", true, 11330, 11463, 0);
53.3653 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(18).getChildBlocks(), 1, PlsqlBlockType.FOR_LOOP, "tab_ IN get_table_information(name_ || '_TAB')", true, 11473, 12498, 4);
53.3654 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(18).getChildBlocks().get(1).getChildBlocks(), 0, PlsqlBlockType.COMMENT, "-- Initial statement", true, 11535, 11555, 0);
53.3655 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(18).getChildBlocks().get(1).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- Statements only necessary if not locally managed tablespace", true, 11680, 11742, 0);
53.3656 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(18).getChildBlocks().get(1).getChildBlocks(), 2, PlsqlBlockType.IF, "IF NOT Is_Locally_Managed___(tab_.tablespace_name)", true, 11749, 12391, 0);
53.3657 - assertBlock(lstBlockFac.get(2).getChildBlocks().get(18).getChildBlocks().get(1).getChildBlocks(), 3, PlsqlBlockType.COMMENT, "-- Final statement", true, 12398, 12416, 0);
53.3658 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 19, PlsqlBlockType.COMMENT, "-- FOUNDATION1 METHODS ", true, 12546, 13010, 0);
53.3659 - assertBlock(lstBlockFac.get(2).getChildBlocks(), 20, PlsqlBlockType.PROCEDURE_IMPL, "Init", true, 13012, 13054, 0);
53.3660 - assertBlock(lstBlockFac, 3, PlsqlBlockType.COMMENT, "COMMENT...", false, 13081, 13158, 0);
53.3661 + assertEquals(4, lstBlockFac.size());
53.3662 + processBlocks(plsqlFileName, lstBlockFac);
53.3663 } finally {
53.3664 if (fileObject != null) {
53.3665 fileObject.delete();
53.3666 @@ -3656,27 +528,18 @@
53.3667 @Test
53.3668 public void testAdvanced18() throws IOException, BadLocationException {
53.3669 System.out.println("Advanced test case 18");
53.3670 - FileObject fileObject = fs.getRoot().createData("txtser.ins");
53.3671 + final String plsqlFileName = "txtser.ins";
53.3672 + FileObject fileObject = fs.getRoot().createData(plsqlFileName);
53.3673 assertNotNull(fileObject);
53.3674 try {
53.3675 - PlsqlBlockFactory blockFac = loadAsTmpFile(fileObject, "txtser.ins");
53.3676 + PlsqlBlockFactory blockFac = loadAsTmpFile(fileObject, plsqlFileName);
53.3677 assertNotNull(blockFac);
53.3678
53.3679 List<PlsqlBlock> lstBlockFac = blockFac.getBlockHierarchy();
53.3680 // printHierarchy(lstBlockFac, "");
53.3681 // generateAssert(lstBlockFac, "lstBlockFac", "false");
53.3682 - assertTrue(lstBlockFac.size() == 4);
53.3683 - assertBlock(lstBlockFac, 0, PlsqlBlockType.COMMENT, "-- File: txtser.ins", false, 0, 977, 0);
53.3684 - assertBlock(lstBlockFac, 1, PlsqlBlockType.JAVA_SOURCE, "", false, 995, 6190, 0);
53.3685 - assertBlock(lstBlockFac, 2, PlsqlBlockType.COMMENT, "-- Creation of Schedules", false, 6194, 6218, 0);
53.3686 - assertBlock(lstBlockFac, 3, PlsqlBlockType.DECLARE_END, "", false, 6289, 9815, 7);
53.3687 - assertBlock(lstBlockFac.get(3).getChildBlocks(), 0, PlsqlBlockType.CURSOR, "check_exist", true, 6654, 6753, 0);
53.3688 - assertBlock(lstBlockFac.get(3).getChildBlocks(), 1, PlsqlBlockType.COMMENT, "-- Sync Index", true, 6773, 6799, 0);
53.3689 - assertBlock(lstBlockFac.get(3).getChildBlocks(), 2, PlsqlBlockType.IF, "IF (check_exist%NOTFOUND)", true, 6999, 7666, 0);
53.3690 - assertBlock(lstBlockFac.get(3).getChildBlocks(), 3, PlsqlBlockType.COMMENT, "-- Optimize Index", true, 7698, 7728, 0);
53.3691 - assertBlock(lstBlockFac.get(3).getChildBlocks(), 4, PlsqlBlockType.IF, "IF (check_exist%NOTFOUND)", true, 7971, 8639, 0);
53.3692 - assertBlock(lstBlockFac.get(3).getChildBlocks(), 5, PlsqlBlockType.COMMENT, "-- Delete old Search Results ", true, 8669, 8881, 0);
53.3693 - assertBlock(lstBlockFac.get(3).getChildBlocks(), 6, PlsqlBlockType.IF, "IF (check_exist%NOTFOUND)", true, 9117, 9786, 0);
53.3694 + assertEquals(4, lstBlockFac.size());
53.3695 + processBlocks(plsqlFileName, lstBlockFac);
53.3696 } finally {
53.3697 if (fileObject != null) {
53.3698 fileObject.delete();
53.3699 @@ -3685,7 +548,7 @@
53.3700 }
53.3701
53.3702 private PlsqlBlockFactory loadAsTmpFile(FileObject fileObj, String fileName) throws IOException, BadLocationException {
53.3703 - InputStream inputStream = PlsqlBlockFactoryTest.class.getResourceAsStream(fileName);
53.3704 + InputStream inputStream = new FileInputStream(new File(getDataDir(), fileName));
53.3705 InputStreamReader indexReader = new InputStreamReader(inputStream);
53.3706 BufferedReader input = new BufferedReader(indexReader);
53.3707 String content = "";
53.3708 @@ -3730,14 +593,12 @@
53.3709 }
53.3710 }
53.3711
53.3712 - private void assertBlock(List<PlsqlBlock> lstBlock, int index, PlsqlBlockType type, String name, boolean parentExisting, int startOffset, int endOffset, int childCount) {
53.3713 + private void assertBlock(List<PlsqlBlock> lstBlock, int index, PlsqlBlockType type, String name, boolean parentExisting, int childCount) {
53.3714 PlsqlBlock block = lstBlock.get(index);
53.3715 assertNotNull(block);
53.3716 - assertTrue(block.getType() == type);
53.3717 - assertTrue(block.getName().equals(name));
53.3718 - assertTrue(block.getStartOffset() == startOffset);
53.3719 - assertTrue(block.getEndOffset() == endOffset);
53.3720 - assertTrue(block.getChildCount() == childCount);
53.3721 + assertEquals(type, block.getType());
53.3722 + assertEquals(name, block.getName());
53.3723 + assertEquals(childCount, block.getChildCount());
53.3724
53.3725 if (parentExisting) {
53.3726 assertNotNull(block.getParent());
54.1 --- a/PLSQL/Lexer/test/unit/src/org/netbeans/modules/plsql/lexer/ScorecardInputValue.apy Wed May 15 16:07:35 2013 +0200
54.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
54.3 @@ -1,6810 +0,0 @@
54.4 ------------------------------------------------------------------------------
54.5 ---
54.6 --- Logical unit: ScorecardInputValue
54.7 ---
54.8 --- Purpose:
54.9 ---
54.10 --- IFS/Design Template Version 2.2
54.11 ---
54.12 --- Date Sign History
54.13 --- ------ ---- -----------------------------------------------------------
54.14 --- 090402 ASJALK Created.
54.15 --- 230402 ASJALK Changed the view comments.
54.16 --- 150502 ASJALK Added method Get_Distributed_Attr.
54.17 --- 200502 ASJALK Added method Update_Distributed_Values and removed the method Get_Distributed_Attr.
54.18 --- 200502 ASJALK Added method Update_Sales_Values.
54.19 --- 220502 SHWILK Call Id: 84289 - Changed the Modify__ method.
54.20 --- 230502 ASJALK Added method Calculate_Measures.
54.21 --- 240502 ASJALK Modified method Calculate_Measures.
54.22 --- 300502 ASJALK Added method Update_Referred_Component.
54.23 --- 310502 ASJALK Modified method Calculate_Measures.
54.24 --- 110602 ASJALK Modified method Update_Sales_Values.
54.25 --- 120602 ASJALK Added a new parameter for method Update_Reffered_Component.
54.26 --- 130602 MAWELK Fixed Call Id 85475.(Added a update satement to Scorecard_Structure_tab in the Modify__ method.)
54.27 --- 170602 ASJALK Added a update statement to Scorecard_Structure_tab in the Calculate_Measures and removed the
54.28 --- update statement in Modify__ method.
54.29 --- 180602 UMDOLK Call Id 85764,85765 Corrected.
54.30 --- 200602 ASJALK Call Id 85793.
54.31 --- 210602 MAWELK CALL ID 85518 Decimal Problem.
54.32 --- 250602 UMDOLK Call Id 85913, 85775 Corrected.
54.33 --- 250602 ASJALK Call Id 85606.
54.34 --- 250602 UMDOLK Changed methods Publish__,Publish_Scorecard, and Update_Versions__.
54.35 --- 250602 ASJALK Modified Update_Distributed_Values method.
54.36 --- 250602 MAWELK CALL ID 85518 Decimal Problem(made the database more than 2 decimals).
54.37 --- 260602 UMDOLK Corrected a bug in planned data publishing ( Changed Publish__ Method).
54.38 --- 190802 INGULK Meathod added Check_Table.(Call Id 86123)
54.39 --- 030902 INGULK Removed the check for the valid table in the Publish_Score__(Call Id 88441).
54.40 --- 250902 SHWILK Added the field Action
54.41 --- 011002 ASJALK Modified methods Update_Distributed_Values and Update_Sales_Values.
54.42 --- 011002 MAWELK Added a new parameter called from_where_ to Update_Distributed_Values and Update_Sales_Values. Also change the code for measures too.
54.43 --- 041002 ASJALK Added new parameter "action_value_" to Update_Distributed_Values and Update_Sales_Values methods.
54.44 --- 071002 ASJALK Changed the error messages of Update_Sales_Values.
54.45 --- 210103 ASJALK Rewrite all the get methods used for scorecard planning in the scorecard_structure_apy which was
54.46 --- previously written in the scorecard_measure_apy.
54.47 --- 130203 ASJALK Modified Update_Distributed_Values,Update_Sales_Values,Calculate_Measures methods in order to calculate the version and index (new logic).
54.48 --- 130203 PRWELK modified input_scorecard_value procedure with ref cursors.
54.49 --- 190203 ASJALK Modified Update_Distributed_Values,Update_Sales_Values methods.
54.50 --- 240203 ASJALK Modified cursors 'get_period' of Update_Sales_Values and Input_Scorecard_Data methods.
54.51 --- 290303 ASJALK Added methods Hierachical_Distribution and Distribute_Input_Values___.
54.52 --- 010403 PRWELK Added support for administrating individual items in input_scorecard_data().
54.53 --- 090903 PRWELK Added set_Publishing_environment,start_publishing_environment__,Publish_Environment_Batch.
54.54 --- 090403 ASJALK Modified the method Distribute_Input_Values___.
54.55 --- 100403 PRWELK Added Set_Publish_Scorecards()
54.56 --- 230403 PRWELK Added prepare_scorecar_publish__,publish_scorecard_batch(),start_publish_scorecard_.
54.57 --- 250403 MAAMLK Call Id 96585 - Added the new error message in Distribute_Input_Values___.
54.58 --- 300403 ASJALK Added methods Hierarchical_Consolidation and Consolidate_Values.
54.59 --- 060503 ASJALK Added methods All_Hierarchical_Logic,Background_Hierarchical_Logic,
54.60 --- Call_Hierarchical_Logic and Start_Hierarchical_Logic.
54.61 --- 080503 ASJALK Modified method Start_Hierarchical_Logic.
54.62 --- 190503 MAAMLK Call Id 97124 - Added a new view Scorecard_Input_Value2 (VIEW2)
54.63 --- 210503 ASJALK Modified All_Hierarchical_Logic method in order to make the ACTION field value TRUE.
54.64 --- 040603 UMDOLK Call Id 97125 - Created a new view SCORECARD_INPUT_VALUE3.
54.65 --- 050603 UMDOLK Modified Calculate_Measures method.
54.66 --- 190603 ASJALK Added new field plan_seq_no to the view SCORECARD_INPUT_VALUE3.
54.67 --- 070703 ASJALK Modified Calculate_Measures method.
54.68 --- 210703 ANGALK Call Id 98470 - Cannot plan in a year with one period. Calculate_Measures method updated
54.69 --- 240703 ANGALK Call Id 98225 - Changed message displayed when no plan formula in Calculate_Measures method
54.70 --- 200803 CHPALK Added objid and objversion to view SCORECARD_INPUT_VALUE2.
54.71 --- 280803 INGULK Call Id 101075 Added Rowversion to the Update statement in the Update_Versions__ method.
54.72 --- 010903 ANGALK Call Id 98762 - CalculateMeasures() method was updated
54.73 --- 020903 ANGALK Call Id 98855 - CalculateMeasures() method was updated
54.74 --- 040903 CHPALK Call Id 101406 Changed methods Publish_Score__ ,Publish__
54.75 --- and Update_Versions__ to improve performace.
54.76 --- 170903 INGULK Call Id 102095 Changed lenghs of 4 variables in Input_Scorecard_Data & Scorecard_Inputs_By_Batch.
54.77 --- 220903 ASJALK Call Id 103595 Changed dynamic cursors used in Update_Sales_Values to use bind variables.
54.78 --- 230903 MAAMLK Call Id 99040 Changed the IID check from INF_WAR to DATA_WAR.
54.79 --- 171003 ASJALK Call Id 105967 Modified method Update_Sales_Values.
54.80 --- 231003 ANGALK Call Id 108864 Modified Update_Versions_() and Publish_Score methods
54.81 --- 280104 UMDOLK FIPR408A1 Unicode (changed instrb to instr)
54.82 --- 050304 CHPALK Modified Insert___ to use RETURNING INTO to select rowid.
54.83 --- 040304 MAAMLK Call Id 40712
54.84 --- 240304 MAWELK SP1 Merge (LCS Bug Id 42350)
54.85 --- 080404 ASJALK Modified the code in order to align with the removed fields planned,scorecard_published,
54.86 --- environment_published from scorecard_tab.
54.87 --- 200404 ASJALK Called the method Set_To_Planned in Distribute_Input_Values___ and Consolidate_Values.
54.88 --- 200404 PRWELK Value_distribution_type is replaced by scorecard_measure_api.get_match_type()
54.89 --- 210404 PRWELK Removed Plan formula field and references
54.90 --- 210404 ASJALK Modified methods Distribute_Input_Values___ and Consolidate_Values.
54.91 --- 220404 ASJALK Modified methods Update_Distributed_Values,Update_Sales_Values,Distribute_Input_Values___ and Consolidate_Values.
54.92 --- 280404 ASJALK Aligned the code according to the added state machine.
54.93 --- 280404 ASJALK Added method Set_To_Planned and called this method in the planning methods.
54.94 --- 280404 ASJALK Added method Get_Sco_Obj_State_Date.
54.95 --- 190704 PRWELK Added Method Budget_And_Calculate
54.96 --- 090804 PRWELK Changed Budget_And_Calculate method (Bug Id 116291)
54.97 --- 260804 ASJALK Call Id 116850 Modified method Insert__.
54.98 --- 030904 INGULK Call Id 117467 Changed cursor get_open_child_scr in the method Distribute_Input_Values___.
54.99 --- 251004 ASJALK Call Id 118165 Modified method Budget_And_Calculate.
54.100 --- 101104 MAAMLK Call Id 119453 Modified 'where' condition for consolidation error message
54.101 --- 111104 MAAMLK Call Id 119454 Modified the 'where' condition
54.102 --- 101204 INGULK Added General_SYS.Init_Method for procedures and Pragma for functions.
54.103 --- 300305 MAWELK FIPR375 Added a method called Get_Error_Msg_For_Comp().
54.104 --- 211205 ISWALK Added method Import_Planned_Values(), Calculate_Year_Value(), Aggregate_Planned_Values()
54.105 --- and SCORECARD_INPUT_VALUE_BUDPRO... views.
54.106 --- 110106 ISWALK Modified SCORECARD_INPUT_VALUE3,SCORECARD_INPUT_VALUE_BUDPRO1
54.107 --- 140106 ISWALK Added method Load_Planned_Values(), Get_No_Of_Periods().
54.108 --- 090206 MAAMLK Call Id 132397 This problem was caused due to the assert comments introduced. As such
54.109 --- these changes were reversed.
54.110 --- 170206 ISWALK Added functionality to load financials type data from budget process.
54.111 --- 090306 ISWALK B136588 modified Import_Fin_Values().
54.112 --- 090306 ISWALK B136601 modified Calculate_Year_Value() and Import_Fin_Values().
54.113 --- 220306 ISWALK B136602 modified Load_Planned_Values() and Import_Fin_Values().
54.114 --- 220207 INGULK Bug 63415, Changes to the WHERE clause of the view SCORECARD_INPUT_VALUE_BUDPRO2.
54.115 --- 070515 SURMLK Added ifs_assert_safe comment
54.116 --- 070523 CHSALK LCS Merge 64779, added a method Calc_Measure_From_Budpro() to calculate the measure values.
54.117 --- 060707 MAAMLK LCS Merge Bug 65000, Corrected in all_hierarchical_logic.
54.118 --- 110707 MAAMLK LCS Merge Bug 66326, Corrected in Publish_Environment.
54.119 --- 160707 MAAMLK LCS Merge Bug 64779, added a method Calc_Measure_From_Budpro() to calculate the measure values.
54.120 --- 200707 MAAMLK LCS Merge Bug 66082, Added calculate measure for FIN measures
54.121 --- 051107 MAWELK Bug 68118, Changes to Import_Fin_Values()
54.122 --- 060208 MAKRLK Bug 71089, Changes to Import_Fin_Values(), added dynamic calls to BUDPRO when required.
54.123 --- 080318 Nsillk Bug 72069, Added assert_safe to places where it was missing.
54.124 --- 080331 MAKRLK Bug 66984, changed method Load_Planned_Values()
54.125 --- 160908 MAAYLK Bug 76573, Set measure to planned state at the end of Calculate_Measures() method
54.126 ------------------------------------------------------------------------------
54.127 -
54.128 -DEFINE MODULE = BUSPER
54.129 -DEFINE LU = ScorecardInputValue
54.130 -DEFINE TABLE = SCORECARD_INPUT_VALUE_TAB
54.131 -DEFINE VIEW = SCORECARD_INPUT_VALUE
54.132 -DEFINE VIEW2 = SCORECARD_INPUT_VALUE2
54.133 -DEFINE VIEW3 = SCORECARD_INPUT_VALUE3
54.134 -DEFINE VIEW4 = SCORECARD_INPUT_VALUE_BUDPRO1
54.135 -DEFINE VIEW5 = SCORECARD_INPUT_VALUE_BUDPRO2
54.136 -DEFINE PKG = SCORECARD_INPUT_VALUE_API
54.137 -
54.138 -DEFINE OBJID = rowid
54.139 -DEFINE OBJVERSION = "ltrim(lpad(to_char(rowversion,'YYYYMMDDHH24MISS'),2000))"
54.140 -
54.141 -DEFINE OBJSTATE = rowstate
54.142 -DEFINE OBJEVENTS = &PKG..Finite_State_Events__(&OBJSTATE)
54.143 -DEFINE STATE = &PKG..Finite_State_Decode__(&OBJSTATE)
54.144 ------------------------------------------------------------------------------
54.145 --------------------- VIEWS FOR SELECTS --------------------------------------
54.146 ------------------------------------------------------------------------------
54.147 -
54.148 -PROMPT Creating &VIEW view
54.149 -
54.150 -CREATE OR REPLACE FORCE VIEW &VIEW AS
54.151 -SELECT environment environment,
54.152 - scorecard scorecard,
54.153 - year year,
54.154 - version version,
54.155 - scorecard_object scorecard_object,
54.156 - object_type object_type,
54.157 - year_value year_value,
54.158 - p1_key p1_key,
54.159 - p1_value p1_value,
54.160 - p2_key p2_key,
54.161 - p2_value p2_value,
54.162 - p3_key p3_key,
54.163 - p3_value p3_value,
54.164 - p4_key p4_key,
54.165 - p4_value p4_value,
54.166 - p5_key p5_key,
54.167 - p5_value p5_value,
54.168 - p6_key p6_key,
54.169 - p6_value p6_value,
54.170 - p7_key p7_key,
54.171 - p7_value p7_value,
54.172 - p8_key p8_key,
54.173 - p8_value p8_value,
54.174 - p9_key p9_key,
54.175 - p9_value p9_value,
54.176 - p10_key p10_key,
54.177 - p10_value p10_value,
54.178 - p11_key p11_key,
54.179 - p11_value p11_value,
54.180 - p12_key p12_key,
54.181 - p12_value p12_value,
54.182 - action action,
54.183 - mea_state_change_date mea_state_change_date,
54.184 - budget_version budget_version,
54.185 - &OBJID objid,
54.186 - &OBJVERSION objversion,
54.187 - &OBJSTATE objstate,
54.188 - &OBJEVENTS objevents,
54.189 - &STATE state
54.190 -FROM scorecard_input_value_tab
54.191 -WITH read only;
54.192 -
54.193 -COMMENT ON TABLE &VIEW
54.194 - IS 'LU=&LU^PROMPT=Scorecard Input Value^MODULE=&MODULE^';
54.195 -
54.196 -COMMENT ON COLUMN &VIEW..environment
54.197 - IS 'FLAGS=KMIU-^DATATYPE=STRING(10)^PROMPT=Environment^REF=ScorecardEnvironment^';
54.198 -COMMENT ON COLUMN &VIEW..scorecard
54.199 - IS 'FLAGS=KMIU-^DATATYPE=STRING(10)^PROMPT=Scorecard^REF=Scorecard(environment)^';
54.200 -COMMENT ON COLUMN &VIEW..year
54.201 - IS 'FLAGS=KMIU-^DATATYPE=STRING(20)^PROMPT=Year^REF=EnvironmentYear(environment)^';
54.202 -COMMENT ON COLUMN &VIEW..version
54.203 - IS 'FLAGS=KMI-L^DATATYPE=STRING(20)^PROMPT=Version^';
54.204 -COMMENT ON COLUMN &VIEW..scorecard_object
54.205 - IS 'FLAGS=KMIU-^DATATYPE=STRING(10)^PROMPT=Scorecard Object^';
54.206 -COMMENT ON COLUMN &VIEW..object_type
54.207 - IS 'FLAGS=AMIU-^DATATYPE=STRING(10)^PROMPT=Object Type^';
54.208 -COMMENT ON COLUMN &VIEW..year_value
54.209 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=Year Value^';
54.210 -COMMENT ON COLUMN &VIEW..p1_key
54.211 - IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P1 Key^';
54.212 -COMMENT ON COLUMN &VIEW..p1_value
54.213 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P1 Value^';
54.214 -COMMENT ON COLUMN &VIEW..p2_key
54.215 - IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P2 Key^';
54.216 -COMMENT ON COLUMN &VIEW..p2_value
54.217 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P2 Value^';
54.218 -COMMENT ON COLUMN &VIEW..p3_key
54.219 - IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P3 Key^';
54.220 -COMMENT ON COLUMN &VIEW..p3_value
54.221 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P3 Value^';
54.222 -COMMENT ON COLUMN &VIEW..p4_key
54.223 - IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P4 Key^';
54.224 -COMMENT ON COLUMN &VIEW..p4_value
54.225 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P4 Value^';
54.226 -COMMENT ON COLUMN &VIEW..p5_key
54.227 - IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P5 Key^';
54.228 -COMMENT ON COLUMN &VIEW..p5_value
54.229 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P5 Value^';
54.230 -COMMENT ON COLUMN &VIEW..p6_key
54.231 - IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P6 Key^';
54.232 -COMMENT ON COLUMN &VIEW..p6_value
54.233 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P6 Value^';
54.234 -COMMENT ON COLUMN &VIEW..p7_key
54.235 - IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P7 Key^';
54.236 -COMMENT ON COLUMN &VIEW..p7_value
54.237 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P7 Value^';
54.238 -COMMENT ON COLUMN &VIEW..p8_key
54.239 - IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P8 Key^';
54.240 -COMMENT ON COLUMN &VIEW..p8_value
54.241 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P8 Value^';
54.242 -COMMENT ON COLUMN &VIEW..p9_key
54.243 - IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P9 Key^';
54.244 -COMMENT ON COLUMN &VIEW..p9_value
54.245 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P9 Value^';
54.246 -COMMENT ON COLUMN &VIEW..p10_key
54.247 - IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P10 Key^';
54.248 -COMMENT ON COLUMN &VIEW..p10_value
54.249 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P10 Value^';
54.250 -COMMENT ON COLUMN &VIEW..p11_key
54.251 - IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P11 Key^';
54.252 -COMMENT ON COLUMN &VIEW..p11_value
54.253 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P11 Value^';
54.254 -COMMENT ON COLUMN &VIEW..p12_key
54.255 - IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P12 Key^';
54.256 -COMMENT ON COLUMN &VIEW..p12_value
54.257 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P12 Value^';
54.258 -COMMENT ON COLUMN &VIEW..action
54.259 - IS 'FLAGS=AMIUL^DATATYPE=STRING^PROMPT=Action^';
54.260 -COMMENT ON COLUMN &VIEW..mea_state_change_date
54.261 - IS 'FLAGS=A-IU-^DATATYPE=DATE/DATE^PROMPT=Mea State Change Date^';
54.262 -COMMENT ON COLUMN &VIEW..budget_version
54.263 - IS 'FLAGS=A-IUL^DATATYPE=STRING(10)^PROMPT=Budget Version^';
54.264 -
54.265 -
54.266 -PROMPT Creating &VIEW2 view
54.267 -
54.268 -CREATE OR REPLACE FORCE VIEW &VIEW2 AS
54.269 -SELECT a.environment environment,
54.270 - a.scorecard scorecard,
54.271 - a.year year,
54.272 - a.version version,
54.273 - a.scorecard_object scorecard_object,
54.274 - a.object_type object_type,
54.275 - DECODE(c.decimal_places,NULL,a.year_value/TO_NUMBER(c.measure_format),ROUND(a.year_value/TO_NUMBER(c.measure_format), c.decimal_places)) year_value,
54.276 - a.p1_key p1_key,
54.277 - DECODE(c.decimal_places,NULL,a.p1_value/TO_NUMBER(c.measure_format),ROUND(a.p1_value/TO_NUMBER(c.measure_format), c.decimal_places)) p1_value,
54.278 - a.p2_key p2_key,
54.279 - DECODE(c.decimal_places,NULL,a.p2_value/TO_NUMBER(c.measure_format),ROUND(a.p2_value/TO_NUMBER(c.measure_format), c.decimal_places)) p2_value,
54.280 - a.p3_key p3_key,
54.281 - DECODE(c.decimal_places,NULL,a.p3_value/TO_NUMBER(c.measure_format),ROUND(a.p3_value/TO_NUMBER(c.measure_format), c.decimal_places)) p3_value,
54.282 - a.p4_key p4_key,
54.283 - DECODE(c.decimal_places,NULL,a.p4_value/TO_NUMBER(c.measure_format),ROUND(a.p4_value/TO_NUMBER(c.measure_format), c.decimal_places)) p4_value,
54.284 - a.p5_key p5_key,
54.285 - DECODE(c.decimal_places,NULL,a.p5_value/TO_NUMBER(c.measure_format),ROUND(a.p5_value/TO_NUMBER(c.measure_format), c.decimal_places)) p5_value,
54.286 - a.p6_key p6_key,
54.287 - DECODE(c.decimal_places,NULL,a.p6_value/TO_NUMBER(c.measure_format),ROUND(a.p6_value/TO_NUMBER(c.measure_format), c.decimal_places)) p6_value,
54.288 - a.p7_key p7_key,
54.289 - DECODE(c.decimal_places,NULL,a.p7_value/TO_NUMBER(c.measure_format),ROUND(a.p7_value/TO_NUMBER(c.measure_format), c.decimal_places)) p7_value,
54.290 - a.p8_key p8_key,
54.291 - DECODE(c.decimal_places,NULL,a.p8_value/TO_NUMBER(c.measure_format),ROUND(a.p8_value/TO_NUMBER(c.measure_format), c.decimal_places)) p8_value,
54.292 - a.p9_key p9_key,
54.293 - DECODE(c.decimal_places,NULL,a.p9_value/TO_NUMBER(c.measure_format),ROUND(a.p9_value/TO_NUMBER(c.measure_format), c.decimal_places)) p9_value,
54.294 - a.p10_key p10_key,
54.295 - DECODE(c.decimal_places,NULL,a.p10_value/TO_NUMBER(c.measure_format),ROUND(a.p10_value/TO_NUMBER(c.measure_format), c.decimal_places)) p10_value,
54.296 - a.p11_key p11_key,
54.297 - DECODE(c.decimal_places,NULL,a.p11_value/TO_NUMBER(c.measure_format),ROUND(a.p11_value/TO_NUMBER(c.measure_format), c.decimal_places)) p11_value,
54.298 - a.p12_key p12_key,
54.299 - DECODE(c.decimal_places,NULL,a.p12_value/TO_NUMBER(c.measure_format),ROUND(a.p12_value/TO_NUMBER(c.measure_format), c.decimal_places)) p12_value,
54.300 - a.action action,
54.301 - a.rowid objid,
54.302 - ltrim(lpad(to_char(a.rowversion,'YYYYMMDDHH24MISS'),2000)) objversion
54.303 -FROM scorecard_input_value_tab a, measure_version_tab b, scorecard_measure_tab c
54.304 -WHERE a.environment = b.environment
54.305 -AND a.version = b.version
54.306 -AND b.rowstate = 'Open'
54.307 -AND a.object_type = 'MEASURE'
54.308 -AND a.scorecard_object = c.measure
54.309 -WITH read only;
54.310 -
54.311 -COMMENT ON TABLE &VIEW2
54.312 - IS 'LU=&LU^PROMPT=Scorecard Input Value^MODULE=&MODULE^';
54.313 -
54.314 -COMMENT ON COLUMN &VIEW2..environment
54.315 - IS 'FLAGS=KMIU-^DATATYPE=STRING(10)^PROMPT=Environment^REF=ScorecardEnvironment^';
54.316 -COMMENT ON COLUMN &VIEW2..scorecard
54.317 - IS 'FLAGS=KMIU-^DATATYPE=STRING(10)^PROMPT=Scorecard^REF=Scorecard(environment)^';
54.318 -COMMENT ON COLUMN &VIEW2..year
54.319 - IS 'FLAGS=KMIU-^DATATYPE=STRING(20)^PROMPT=Year^REF=EnvironmentYear(environment)^';
54.320 -COMMENT ON COLUMN &VIEW2..version
54.321 - IS 'FLAGS=KMI-L^DATATYPE=STRING(20)^PROMPT=Version^';
54.322 -COMMENT ON COLUMN &VIEW2..scorecard_object
54.323 - IS 'FLAGS=KMIU-^DATATYPE=STRING(10)^PROMPT=Scorecard Object^';
54.324 -COMMENT ON COLUMN &VIEW2..object_type
54.325 - IS 'FLAGS=AMIU-^DATATYPE=STRING(10)^PROMPT=Object Type^';
54.326 -COMMENT ON COLUMN &VIEW2..year_value
54.327 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=Year Value^';
54.328 -COMMENT ON COLUMN &VIEW2..p1_key
54.329 - IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P1 Key^';
54.330 -COMMENT ON COLUMN &VIEW2..p1_value
54.331 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P1 Value^';
54.332 -COMMENT ON COLUMN &VIEW2..p2_key
54.333 - IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P2 Key^';
54.334 -COMMENT ON COLUMN &VIEW2..p2_value
54.335 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P2 Value^';
54.336 -COMMENT ON COLUMN &VIEW2..p3_key
54.337 - IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P3 Key^';
54.338 -COMMENT ON COLUMN &VIEW2..p3_value
54.339 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P3 Value^';
54.340 -COMMENT ON COLUMN &VIEW2..p4_key
54.341 - IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P4 Key^';
54.342 -COMMENT ON COLUMN &VIEW2..p4_value
54.343 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P4 Value^';
54.344 -COMMENT ON COLUMN &VIEW2..p5_key
54.345 - IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P5 Key^';
54.346 -COMMENT ON COLUMN &VIEW2..p5_value
54.347 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P5 Value^';
54.348 -COMMENT ON COLUMN &VIEW2..p6_key
54.349 - IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P6 Key^';
54.350 -COMMENT ON COLUMN &VIEW2..p6_value
54.351 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P6 Value^';
54.352 -COMMENT ON COLUMN &VIEW2..p7_key
54.353 - IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P7 Key^';
54.354 -COMMENT ON COLUMN &VIEW2..p7_value
54.355 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P7 Value^';
54.356 -COMMENT ON COLUMN &VIEW2..p8_key
54.357 - IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P8 Key^';
54.358 -COMMENT ON COLUMN &VIEW2..p8_value
54.359 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P8 Value^';
54.360 -COMMENT ON COLUMN &VIEW2..p9_key
54.361 - IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P9 Key^';
54.362 -COMMENT ON COLUMN &VIEW2..p9_value
54.363 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P9 Value^';
54.364 -COMMENT ON COLUMN &VIEW2..p10_key
54.365 - IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P10 Key^';
54.366 -COMMENT ON COLUMN &VIEW2..p10_value
54.367 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P10 Value^';
54.368 -COMMENT ON COLUMN &VIEW2..p11_key
54.369 - IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P11 Key^';
54.370 -COMMENT ON COLUMN &VIEW2..p11_value
54.371 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P11 Value^';
54.372 -COMMENT ON COLUMN &VIEW2..p12_key
54.373 - IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P12 Key^';
54.374 -COMMENT ON COLUMN &VIEW2..p12_value
54.375 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P12 Value^';
54.376 -COMMENT ON COLUMN &VIEW2..action
54.377 - IS 'FLAGS=AMIUL^DATATYPE=STRING^PROMPT=Action^';
54.378 -
54.379 -
54.380 -
54.381 -PROMPT Creating &VIEW3 view
54.382 -
54.383 -CREATE OR REPLACE FORCE VIEW &VIEW3 AS
54.384 -SELECT siv.environment environment,
54.385 - siv.scorecard scorecard,
54.386 - year year,
54.387 - version version,
54.388 - scorecard_object scorecard_object,
54.389 - object_type object_type,
54.390 - DECODE(sm.decimal_places,NULL ,siv.year_value/TO_NUMBER(sm.measure_format),ROUND(siv.year_value/TO_NUMBER(sm.measure_format), sm.decimal_places)) year_value,
54.391 - p1_key p1_key,
54.392 - DECODE(sm.decimal_places,NULL ,siv.p1_value/TO_NUMBER(sm.measure_format) ,ROUND(siv.p1_value/TO_NUMBER(sm.measure_format) , sm.decimal_places)) p1_value,
54.393 - p2_key p2_key,
54.394 - DECODE(sm.decimal_places,NULL ,siv.p2_value/TO_NUMBER(sm.measure_format) ,ROUND(siv.p2_value/TO_NUMBER(sm.measure_format) , sm.decimal_places)) p2_value,
54.395 - p3_key p3_key,
54.396 - DECODE(sm.decimal_places,NULL ,siv.p3_value/TO_NUMBER(sm.measure_format) ,ROUND(siv.p3_value/TO_NUMBER(sm.measure_format) , sm.decimal_places)) p3_value,
54.397 - p4_key p4_key,
54.398 - DECODE(sm.decimal_places,NULL ,siv.p4_value/TO_NUMBER(sm.measure_format) ,ROUND(siv.p4_value/TO_NUMBER(sm.measure_format) , sm.decimal_places)) p4_value,
54.399 - p5_key p5_key,
54.400 - DECODE(sm.decimal_places,NULL ,siv.p5_value/TO_NUMBER(sm.measure_format) ,ROUND(siv.p5_value/TO_NUMBER(sm.measure_format) , sm.decimal_places)) p5_value,
54.401 - p6_key p6_key,
54.402 - DECODE(sm.decimal_places,NULL ,siv.p6_value/TO_NUMBER(sm.measure_format) ,ROUND(siv.p6_value/TO_NUMBER(sm.measure_format) , sm.decimal_places)) p6_value,
54.403 - p7_key p7_key,
54.404 - DECODE(sm.decimal_places,NULL ,siv.p7_value/TO_NUMBER(sm.measure_format) ,ROUND(siv.p7_value/TO_NUMBER(sm.measure_format) , sm.decimal_places)) p7_value,
54.405 - p8_key p8_key,
54.406 - DECODE(sm.decimal_places,NULL ,siv.p8_value/TO_NUMBER(sm.measure_format) ,ROUND(siv.p8_value/TO_NUMBER(sm.measure_format) , sm.decimal_places)) p8_value,
54.407 - p9_key p9_key,
54.408 - DECODE(sm.decimal_places,NULL ,siv.p9_value/TO_NUMBER(sm.measure_format) ,ROUND(siv.p9_value/TO_NUMBER(sm.measure_format) , sm.decimal_places)) p9_value,
54.409 - p10_key p10_key,
54.410 - DECODE(sm.decimal_places,NULL ,siv.p10_value/TO_NUMBER(sm.measure_format) ,ROUND(siv.p10_value/TO_NUMBER(sm.measure_format) , sm.decimal_places)) p10_value,
54.411 - p11_key p11_key,
54.412 - DECODE(sm.decimal_places,NULL ,siv.p11_value/TO_NUMBER(sm.measure_format) ,ROUND(siv.p11_value/TO_NUMBER(sm.measure_format) , sm.decimal_places)) p11_value,
54.413 - p12_key p12_key,
54.414 - DECODE(sm.decimal_places,NULL ,siv.p12_value/TO_NUMBER(sm.measure_format) ,ROUND(siv.p12_value/TO_NUMBER(sm.measure_format) , sm.decimal_places)) p12_value,
54.415 - siv.action action,
54.416 - ss.plan_seq_no plan_seq_no,
54.417 - Budget_Process_Type_API.Encode(Measure_Version_API.Get_Budget_Process_Type(version,
54.418 - siv.environment))
54.419 - budget_process_type,
54.420 - DECODE(sm.measure_format,'1',sm.description,sm.description ||' ('||sm.measure_format||' )' ) scorecard_object_desc,
54.421 - siv.rowid objid,
54.422 - ltrim(lpad(to_char(siv.rowversion,'YYYYMMDDHH24MISS'),2000)) objversion
54.423 -FROM scorecard_input_value_tab siv, scorecard_measure_tab sm, scorecard_structure_tab ss
54.424 -WHERE siv.scorecard_object = sm.measure
54.425 -AND siv.environment = ss.environment
54.426 -AND siv.scorecard = ss.scorecard
54.427 -AND siv.object_type = ss.child_level_type
54.428 -AND siv.scorecard_object = ss.level_id
54.429 -WITH read only;
54.430 -
54.431 -COMMENT ON TABLE &VIEW3
54.432 - IS 'LU=&LU^PROMPT=Scorecard Input Value^MODULE=&MODULE^';
54.433 -
54.434 -COMMENT ON COLUMN &VIEW3..environment
54.435 - IS 'FLAGS=KMIU-^DATATYPE=STRING(10)^PROMPT=Environment^REF=ScorecardEnvironment^';
54.436 -COMMENT ON COLUMN &VIEW3..scorecard
54.437 - IS 'FLAGS=KMIU-^DATATYPE=STRING(10)^PROMPT=Scorecard^REF=Scorecard(environment)^';
54.438 -COMMENT ON COLUMN &VIEW3..year
54.439 - IS 'FLAGS=KMIU-^DATATYPE=STRING(20)^PROMPT=Year^REF=EnvironmentYear(environment)^';
54.440 -COMMENT ON COLUMN &VIEW3..version
54.441 - IS 'FLAGS=KMI-L^DATATYPE=STRING(20)^PROMPT=Version^';
54.442 -COMMENT ON COLUMN &VIEW3..scorecard_object
54.443 - IS 'FLAGS=KMIU-^DATATYPE=STRING(10)^PROMPT=Scorecard Object^';
54.444 -COMMENT ON COLUMN &VIEW3..object_type
54.445 - IS 'FLAGS=AMIU-^DATATYPE=STRING(10)^PROMPT=Object Type^';
54.446 -COMMENT ON COLUMN &VIEW3..year_value
54.447 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=Year Value^';
54.448 -COMMENT ON COLUMN &VIEW3..p1_key
54.449 - IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P1 Key^';
54.450 -COMMENT ON COLUMN &VIEW3..p1_value
54.451 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P1 Value^';
54.452 -COMMENT ON COLUMN &VIEW3..p2_key
54.453 - IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P2 Key^';
54.454 -COMMENT ON COLUMN &VIEW3..p2_value
54.455 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P2 Value^';
54.456 -COMMENT ON COLUMN &VIEW3..p3_key
54.457 - IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P3 Key^';
54.458 -COMMENT ON COLUMN &VIEW3..p3_value
54.459 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P3 Value^';
54.460 -COMMENT ON COLUMN &VIEW3..p4_key
54.461 - IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P4 Key^';
54.462 -COMMENT ON COLUMN &VIEW3..p4_value
54.463 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P4 Value^';
54.464 -COMMENT ON COLUMN &VIEW3..p5_key
54.465 - IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P5 Key^';
54.466 -COMMENT ON COLUMN &VIEW3..p5_value
54.467 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P5 Value^';
54.468 -COMMENT ON COLUMN &VIEW3..p6_key
54.469 - IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P6 Key^';
54.470 -COMMENT ON COLUMN &VIEW3..p6_value
54.471 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P6 Value^';
54.472 -COMMENT ON COLUMN &VIEW3..p7_key
54.473 - IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P7 Key^';
54.474 -COMMENT ON COLUMN &VIEW3..p7_value
54.475 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P7 Value^';
54.476 -COMMENT ON COLUMN &VIEW3..p8_key
54.477 - IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P8 Key^';
54.478 -COMMENT ON COLUMN &VIEW3..p8_value
54.479 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P8 Value^';
54.480 -COMMENT ON COLUMN &VIEW3..p9_key
54.481 - IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P9 Key^';
54.482 -COMMENT ON COLUMN &VIEW3..p9_value
54.483 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P9 Value^';
54.484 -COMMENT ON COLUMN &VIEW3..p10_key
54.485 - IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P10 Key^';
54.486 -COMMENT ON COLUMN &VIEW3..p10_value
54.487 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P10 Value^';
54.488 -COMMENT ON COLUMN &VIEW3..p11_key
54.489 - IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P11 Key^';
54.490 -COMMENT ON COLUMN &VIEW3..p11_value
54.491 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P11 Value^';
54.492 -COMMENT ON COLUMN &VIEW3..p12_key
54.493 - IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=P12 Key^';
54.494 -COMMENT ON COLUMN &VIEW3..p12_value
54.495 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=P12 Value^';
54.496 -COMMENT ON COLUMN &VIEW3..action
54.497 - IS 'FLAGS=AMIUL^DATATYPE=STRING^PROMPT=Action^';
54.498 -COMMENT ON COLUMN &VIEW3..plan_seq_no
54.499 - IS 'FLAGS=A---L^DATATYPE=STRING^PROMPT=Plan seq no^';
54.500 -COMMENT ON COLUMN &VIEW3..budget_process_type
54.501 - IS 'FLAGS=A----^DATATYPE=STRING(10)^PROMPT=Budget Process Type^';
54.502 -COMMENT ON COLUMN &VIEW3..scorecard_object_desc
54.503 - IS 'FLAGS=A----^DATATYPE=STRING(40)^PROMPT=Level Description^';
54.504 -
54.505 ---THIS VIEW IS USED AS A BASE FOR THE VIEW5 WHICH IS USED TO DISPLAY BUDGET REQUIREMENTS VS. TARGETS.
54.506 -PROMPT Creating &VIEW4 view
54.507 -
54.508 -CREATE OR REPLACE FORCE VIEW &VIEW4 AS
54.509 -SELECT environment environment,
54.510 - scorecard scorecard,
54.511 - year year,
54.512 - version version,
54.513 - scorecard_object measure,
54.514 - p1_key period,
54.515 - p1_value period_value
54.516 -FROM scorecard_input_value_tab
54.517 -WHERE p1_key IS NOT NULL
54.518 -UNION
54.519 -SELECT environment environment,
54.520 - scorecard scorecard,
54.521 - year year,
54.522 - version version,
54.523 - scorecard_object scorecard_object,
54.524 - p2_key period,
54.525 - p2_value period_value
54.526 -FROM scorecard_input_value_tab
54.527 -WHERE p2_key IS NOT NULL
54.528 -UNION
54.529 -SELECT environment environment,
54.530 - scorecard scorecard,
54.531 - year year,
54.532 - version version,
54.533 - scorecard_object measure,
54.534 - p3_key period,
54.535 - p3_value period_value
54.536 -FROM scorecard_input_value_tab
54.537 -WHERE p3_key IS NOT NULL
54.538 -UNION
54.539 -SELECT environment environment,
54.540 - scorecard scorecard,
54.541 - year year,
54.542 - version version,
54.543 - scorecard_object measure,
54.544 - p4_key period,
54.545 - p4_value period_value
54.546 -FROM scorecard_input_value_tab
54.547 -WHERE p4_key IS NOT NULL
54.548 -UNION
54.549 -SELECT environment environment,
54.550 - scorecard scorecard,
54.551 - year year,
54.552 - version version,
54.553 - scorecard_object measure,
54.554 - p5_key period,
54.555 - p5_value period_value
54.556 -FROM scorecard_input_value_tab
54.557 -WHERE p5_key IS NOT NULL
54.558 -UNION
54.559 -SELECT environment environment,
54.560 - scorecard scorecard,
54.561 - year year,
54.562 - version version,
54.563 - scorecard_object measure,
54.564 - p6_key period,
54.565 - p6_value period_value
54.566 -FROM scorecard_input_value_tab
54.567 -WHERE p6_key IS NOT NULL
54.568 -UNION
54.569 -SELECT environment environment,
54.570 - scorecard scorecard,
54.571 - year year,
54.572 - version version,
54.573 - scorecard_object measure,
54.574 - p7_key period,
54.575 - p7_value period_value
54.576 -FROM scorecard_input_value_tab
54.577 -WHERE p7_key IS NOT NULL
54.578 -UNION
54.579 -SELECT environment environment,
54.580 - scorecard scorecard,
54.581 - year year,
54.582 - version version,
54.583 - scorecard_object measure,
54.584 - p8_key period,
54.585 - p8_value period_value
54.586 -FROM scorecard_input_value_tab
54.587 -WHERE p8_key IS NOT NULL
54.588 -UNION
54.589 -SELECT environment environment,
54.590 - scorecard scorecard,
54.591 - year year,
54.592 - version version,
54.593 - scorecard_object measure,
54.594 - p9_key period,
54.595 - p9_value period_value
54.596 -FROM scorecard_input_value_tab
54.597 -WHERE p9_key IS NOT NULL
54.598 -UNION
54.599 -SELECT environment environment,
54.600 - scorecard scorecard,
54.601 - year year,
54.602 - version version,
54.603 - scorecard_object measure,
54.604 - p10_key period,
54.605 - p10_value period_value
54.606 -FROM scorecard_input_value_tab
54.607 -WHERE p10_key IS NOT NULL
54.608 -UNION
54.609 -SELECT environment environment,
54.610 - scorecard scorecard,
54.611 - year year,
54.612 - version version,
54.613 - scorecard_object measure,
54.614 - p11_key period,
54.615 - p11_value period_value
54.616 -FROM scorecard_input_value_tab
54.617 -WHERE p11_key IS NOT NULL
54.618 -UNION
54.619 -SELECT environment environment,
54.620 - scorecard scorecard,
54.621 - year year,
54.622 - version version,
54.623 - scorecard_object measure,
54.624 - p12_key period,
54.625 - p12_value period_value
54.626 -FROM scorecard_input_value_tab
54.627 -WHERE p12_key IS NOT NULL
54.628 -WITH read only;
54.629 -
54.630 -COMMENT ON TABLE &VIEW4
54.631 - IS 'LU=&LU^PROMPT=View Budget Requirements/Targets[BASE]^MODULE=&MODULE^';
54.632 -
54.633 -
54.634 ---THIS VIEW IS USED TO DISPLAY BUDGET REQUIREMENTS VS. TARGETS.[Client is BudgetRequirementsTargets.java]
54.635 -PROMPT Creating &VIEW5 view
54.636 --- Bug 63415, begin, Added another condition to where clause of the view
54.637 -CREATE OR REPLACE FORCE VIEW &VIEW5 AS
54.638 -SELECT t1.environment environment,
54.639 - t1.scorecard scorecard,
54.640 - t1.year year,
54.641 - t1.version version,
54.642 - t1.measure measure,
54.643 - t1.period period,
54.644 - t1.period_value/TO_NUMBER(t5.measure_format) planned_value,
54.645 - t2.period_value/TO_NUMBER(t5.measure_format) target_value
54.646 -FROM &VIEW4 t1,
54.647 - &VIEW4 t2,
54.648 - measure_version_tab t3,
54.649 - measure_version_tab t4,
54.650 - scorecard_measure_tab t5
54.651 -WHERE t1.environment = t2.environment
54.652 -AND t1.scorecard = t2.scorecard
54.653 -AND t1.year = t2.YEAR
54.654 -AND t5.measure = t2.measure
54.655 -AND t1.measure = t2.measure
54.656 -AND t1.period = t2.period
54.657 -AND t1.environment = t3.environment
54.658 -AND t1.version = t3.version
54.659 -AND t2.environment = t4.environment
54.660 -AND t2.version = t4.version
54.661 -AND t3.budget_process_type = 'BUDPLAN'
54.662 -AND t4.budget_process_type = 'TARGET'
54.663 -AND ((t1.measure IN (SELECT measure
54.664 - FROM measure_role_access_tab
54.665 - WHERE role IN (SELECT oracle_role
54.666 - FROM fnd_user_role_runtime
54.667 - WHERE identity = (SELECT fnd_user
54.668 - FROM fnd_session))))
54.669 - OR t1.measure IN (SELECT measure
54.670 - FROM measure_user_access_tab
54.671 - WHERE identity = (SELECT fnd_user
54.672 - FROM fnd_session))
54.673 - OR EXISTS (SELECT 1
54.674 - FROM BP_ADMINISTRATOR_TAB
54.675 - WHERE identity = (SELECT fnd_user
54.676 - FROM fnd_session)))
54.677 -AND (t1.scorecard IN (SELECT scorecard
54.678 - FROM scorecard_user_access_tab
54.679 - WHERE identity = (SELECT fnd_user
54.680 - FROM fnd_session)
54.681 - AND environment = t1.environment
54.682 - AND scorecard = t1.scorecard)
54.683 - OR t1.scorecard IN (SELECT scorecard
54.684 - FROM scorecard_role_access_tab
54.685 - WHERE environment = t1.environment
54.686 - AND scorecard = t1.scorecard
54.687 - AND role IN (SELECT oracle_role
54.688 - FROM fnd_user_role_runtime
54.689 - WHERE identity = (SELECT fnd_user
54.690 - FROM fnd_session)))
54.691 - OR EXISTS (SELECT 1
54.692 - FROM BP_ADMINISTRATOR_TAB
54.693 - WHERE identity = (SELECT fnd_user
54.694 - FROM fnd_session)))
54.695 -WITH read only;
54.696 -
54.697 -COMMENT ON TABLE &VIEW5
54.698 - IS 'LU=&LU^PROMPT=View Budget Requirements/Targets^MODULE=&MODULE^';
54.699 -
54.700 -COMMENT ON COLUMN &VIEW5..environment
54.701 - IS 'FLAGS=KMIU-^DATATYPE=STRING(10)^PROMPT=Environment^';
54.702 -COMMENT ON COLUMN &VIEW5..scorecard
54.703 - IS 'FLAGS=KMIU-^DATATYPE=STRING(10)^PROMPT=Scorecard^';
54.704 -COMMENT ON COLUMN &VIEW5..year
54.705 - IS 'FLAGS=KMIU-^DATATYPE=STRING(20)^PROMPT=Year^';
54.706 -COMMENT ON COLUMN &VIEW5..version
54.707 - IS 'FLAGS=KMI-L^DATATYPE=STRING(20)^PROMPT=Version^';
54.708 -COMMENT ON COLUMN &VIEW5..measure
54.709 - IS 'FLAGS=KMIU-^DATATYPE=STRING(10)^PROMPT=Measure^';
54.710 -COMMENT ON COLUMN &VIEW5..period
54.711 - IS 'FLAGS=A-IU-^DATATYPE=STRING(10)^PROMPT=Period^';
54.712 -COMMENT ON COLUMN &VIEW5..planned_value
54.713 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=Planned Value^';
54.714 -COMMENT ON COLUMN &VIEW5..target_value
54.715 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=Target Value^';
54.716 -
54.717 --- Bug 63415, end
54.718 -
54.719 -
54.720 -
54.721 --- Bug 63415, end
54.722 -
54.723 ------------------------------------------------------------------------------
54.724 --------------------- PACKAGES FOR METHODS -----------------------------------
54.725 ------------------------------------------------------------------------------
54.726 -
54.727 -PROMPT Creating &PKG implementation
54.728 -
54.729 -CREATE OR REPLACE PACKAGE BODY &PKG IS
54.730 -
54.731 ------------------------------------------------------------------------------
54.732 --------------------- FINITE STATE DECLARATIONS ------------------------------
54.733 ------------------------------------------------------------------------------
54.734 -db_state_list_ CONSTANT VARCHAR2(13) := 'Open^Planned^';
54.735 -client_state_list_ CONSTANT VARCHAR2(13) := 'Open^Planned^';
54.736 -active_state_list_ VARCHAR2(52) := Language_SYS.Translate_State_(lu_name_, client_state_list_);
54.737 -state_separator_ CONSTANT VARCHAR2(1) := Client_SYS.field_separator_;
54.738 -
54.739 -bp_installed_ CONSTANT BOOLEAN := Dictionary_SYS.Component_Is_Installed('BUDPRO');
54.740 ------------------------------------------------------------------------------
54.741 --------------------- LU SPECIFIC IMPLEMENTATION METHOD DECLARATIONS ---------
54.742 ------------------------------------------------------------------------------
54.743 -
54.744 -
54.745 -PROCEDURE Distribute_Input_Values___ (
54.746 - environment_ IN VARCHAR2,
54.747 - scorecard_ IN VARCHAR2,
54.748 - year_ IN VARCHAR2,
54.749 - version_ IN VARCHAR2,
54.750 - object_type_ IN VARCHAR2,
54.751 - period_count_ IN NUMBER,
54.752 - scorecard_object_ IN VARCHAR2 );
54.753 ---PROCHEAD.Start_Publish_Environments___
54.754 -
54.755 -
54.756 -PROCEDURE Object_Planned_Date___ (
54.757 - rec_ IN &TABLE%ROWTYPE,
54.758 - attr_ IN OUT VARCHAR2 );
54.759 -
54.760 -FUNCTION Find_Column___(
54.761 - environment_ IN VARCHAR2,
54.762 - scorecard_ IN VARCHAR2,
54.763 - year_ IN VARCHAR2,
54.764 - version_ IN VARCHAR2,
54.765 - scorecard_object_ IN VARCHAR2,
54.766 - key_ IN VARCHAR2) RETURN VARCHAR2;
54.767 ------------------------------------------------------------------------------
54.768 --------------------- IMPLEMENTATION BASE METHODS ----------------------------
54.769 ------------------------------------------------------------------------------
54.770 --- Lock_By_Id___
54.771 --- Client-support to lock a specific instance of the logical unit.
54.772 ---
54.773 --- Lock_By_Keys___
54.774 --- Server support to lock a specific instance of the logical unit.
54.775 ---
54.776 --- Get_Object_By_Id___
54.777 --- Get LU-record from the database with a specified object identity.
54.778 ---
54.779 --- Get_Object_By_Keys___
54.780 --- Get LU-record from the database with specified key columns.
54.781 ---
54.782 --- Check_Exist___
54.783 --- Check if a specific LU-instance already exist in the database.
54.784 ---
54.785 --- Get_Id_Version_By_Keys___
54.786 --- Get the current OBJID and OBJVERSION for a specific LU-instance.
54.787 ------------------------------------------------------------------------------
54.788 -
54.789 -FUNCTION Lock_By_Id___ (
54.790 - objid_ IN VARCHAR2,
54.791 - objversion_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
54.792 -IS
54.793 - row_changed EXCEPTION;
54.794 - row_deleted EXCEPTION;
54.795 - row_locked EXCEPTION;
54.796 - PRAGMA exception_init(row_locked, -0054);
54.797 - rec_ &TABLE%ROWTYPE;
54.798 - dummy_ NUMBER;
54.799 - CURSOR lock_control IS
54.800 - SELECT *
54.801 - FROM &TABLE
54.802 - WHERE &OBJID = objid_
54.803 - AND &OBJVERSION = objversion_
54.804 - FOR UPDATE NOWAIT;
54.805 - CURSOR exist_control IS
54.806 - SELECT 1
54.807 - FROM &TABLE
54.808 - WHERE &OBJID = objid_;
54.809 -BEGIN
54.810 - OPEN lock_control;
54.811 - FETCH lock_control INTO rec_;
54.812 - IF (lock_control%FOUND) THEN
54.813 - CLOSE lock_control;
54.814 - RETURN rec_;
54.815 - END IF;
54.816 - CLOSE lock_control;
54.817 - OPEN exist_control;
54.818 - FETCH exist_control INTO dummy_;
54.819 - IF (exist_control%FOUND) THEN
54.820 - CLOSE exist_control;
54.821 - RAISE row_changed;
54.822 - ELSE
54.823 - CLOSE exist_control;
54.824 - RAISE row_deleted;
54.825 - END IF;
54.826 -EXCEPTION
54.827 - WHEN row_locked THEN
54.828 - Error_SYS.Record_Locked(lu_name_);
54.829 - WHEN row_changed THEN
54.830 - Error_SYS.Record_Modified(lu_name_);
54.831 - WHEN row_deleted THEN
54.832 - Error_SYS.Record_Removed(lu_name_);
54.833 -END Lock_By_Id___;
54.834 -
54.835 -FUNCTION Lock_By_Keys___ (
54.836 - environment_ IN VARCHAR2,
54.837 - scorecard_ IN VARCHAR2,
54.838 - year_ IN VARCHAR2,
54.839 - version_ IN VARCHAR2,
54.840 - scorecard_object_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
54.841 -IS
54.842 - row_deleted EXCEPTION;
54.843 - rec_ &TABLE%ROWTYPE;
54.844 - CURSOR lock_control IS
54.845 - SELECT *
54.846 - FROM &TABLE
54.847 - WHERE environment = environment_
54.848 - AND scorecard = scorecard_
54.849 - AND year = year_
54.850 - AND version = version_
54.851 - AND scorecard_object = scorecard_object_
54.852 - FOR UPDATE;
54.853 -BEGIN
54.854 - OPEN lock_control;
54.855 - FETCH lock_control INTO rec_;
54.856 - IF (lock_control%FOUND) THEN
54.857 - CLOSE lock_control;
54.858 - RETURN rec_;
54.859 - ELSE
54.860 - CLOSE lock_control;
54.861 - RAISE row_deleted;
54.862 - END IF;
54.863 -EXCEPTION
54.864 - WHEN row_deleted THEN
54.865 - Error_SYS.Record_Removed(lu_name_);
54.866 -END Lock_By_Keys___;
54.867 -
54.868 -FUNCTION Get_Object_By_Id___ (
54.869 - objid_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
54.870 -IS
54.871 - lu_rec_ &TABLE%ROWTYPE;
54.872 - CURSOR getrec IS
54.873 - SELECT *
54.874 - FROM &TABLE
54.875 - WHERE &OBJID = objid_;
54.876 -BEGIN
54.877 - OPEN getrec;
54.878 - FETCH getrec INTO lu_rec_;
54.879 - IF (getrec%NOTFOUND) THEN
54.880 - CLOSE getrec;
54.881 - Error_SYS.Record_Removed(lu_name_);
54.882 - END IF;
54.883 - CLOSE getrec;
54.884 - RETURN(lu_rec_);
54.885 -END Get_Object_By_Id___;
54.886 -
54.887 -
54.888 -FUNCTION Get_Object_By_Keys___ (
54.889 - environment_ IN VARCHAR2,
54.890 - scorecard_ IN VARCHAR2,
54.891 - year_ IN VARCHAR2,
54.892 - version_ IN VARCHAR2,
54.893 - scorecard_object_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
54.894 -IS
54.895 - lu_rec_ &TABLE%ROWTYPE;
54.896 - CURSOR getrec IS
54.897 - SELECT *
54.898 - FROM &TABLE
54.899 - WHERE environment = environment_
54.900 - AND scorecard = scorecard_
54.901 - AND year = year_
54.902 - AND version = version_
54.903 - AND scorecard_object = scorecard_object_;
54.904 -BEGIN
54.905 - OPEN getrec;
54.906 - FETCH getrec INTO lu_rec_;
54.907 - CLOSE getrec;
54.908 - RETURN(lu_rec_);
54.909 -END Get_Object_By_Keys___;
54.910 -
54.911 -FUNCTION Check_Exist___ (
54.912 - environment_ IN VARCHAR2,
54.913 - scorecard_ IN VARCHAR2,
54.914 - year_ IN VARCHAR2,
54.915 - version_ IN VARCHAR2,
54.916 - scorecard_object_ IN VARCHAR2 ) RETURN BOOLEAN
54.917 -IS
54.918 - dummy_ NUMBER;
54.919 - CURSOR exist_control IS
54.920 - SELECT 1
54.921 - FROM &TABLE
54.922 - WHERE environment = environment_
54.923 - AND scorecard = scorecard_
54.924 - AND year = year_
54.925 - AND version = version_
54.926 - AND scorecard_object = scorecard_object_;
54.927 -BEGIN
54.928 - OPEN exist_control;
54.929 - FETCH exist_control INTO dummy_;
54.930 - IF (exist_control%FOUND) THEN
54.931 - CLOSE exist_control;
54.932 - RETURN(TRUE);
54.933 - END IF;
54.934 - CLOSE exist_control;
54.935 - RETURN(FALSE);
54.936 -END Check_Exist___;
54.937 -
54.938 -PROCEDURE Get_Id_Version_By_Keys___ (
54.939 - objid_ IN OUT VARCHAR2,
54.940 - objversion_ IN OUT VARCHAR2,
54.941 - environment_ IN VARCHAR2,
54.942 - scorecard_ IN VARCHAR2,
54.943 - year_ IN VARCHAR2,
54.944 - version_ IN VARCHAR2,
54.945 - scorecard_object_ IN VARCHAR2)
54.946 -IS
54.947 - CURSOR get_version IS
54.948 - SELECT &OBJID, &OBJVERSION
54.949 - FROM &TABLE
54.950 - WHERE environment = environment_
54.951 - AND scorecard = scorecard_
54.952 - AND year = year_
54.953 - AND version = version_
54.954 - AND scorecard_object = scorecard_object_;
54.955 -BEGIN
54.956 - OPEN get_version;
54.957 - FETCH get_version INTO objid_, objversion_;
54.958 - CLOSE get_version;
54.959 -END Get_Id_Version_By_Keys___;
54.960 -
54.961 ------------------------------------------------------------------------------
54.962 --------------------- IMPLEMENTATION FINITE STATE MACHINE --------------------
54.963 ------------------------------------------------------------------------------
54.964 --- Finite_State_Set___
54.965 --- Updates the finite state indicator for an existing LU-instance.
54.966 ---
54.967 --- Finite_State_Machine___
54.968 --- Processes an event by:
54.969 --- 1. Fetching the current state
54.970 --- 2. Evaluating any conditions for given event at current state
54.971 --- 3. executing any exit code for the old state
54.972 --- 4. Performing any action associated with given event
54.973 --- 5. update the database to the new state
54.974 --- 6. execute any entry code for the new state
54.975 --- 7. Executing a state change to the new state
54.976 ---
54.977 --- Finite_State_Add_To_Attr___
54.978 --- Adds the current state and allowed events to the attribute string.
54.979 ---
54.980 --- Finite_State_Init___
54.981 --- Sets the initial finite state indicator for an existing LU-instance
54.982 --- and processes any automatic events.
54.983 ------------------------------------------------------------------------------
54.984 -PROCEDURE Finite_State_Set___ (
54.985 - rec_ IN OUT &TABLE%ROWTYPE,
54.986 - state_ IN VARCHAR2 )
54.987 -IS
54.988 -BEGIN
54.989 - rec_.rowversion := sysdate;
54.990 - UPDATE scorecard_input_value_tab
54.991 - SET &OBJSTATE = state_,
54.992 - mea_state_change_date = rec_.rowversion,
54.993 - rowversion = rec_.rowversion
54.994 - WHERE environment = rec_.environment
54.995 - AND scorecard = rec_.scorecard
54.996 - AND year = rec_.year
54.997 - AND version = rec_.version
54.998 - AND scorecard_object = rec_.scorecard_object;
54.999 - rec_.rowstate := state_;
54.1000 -END Finite_State_Set___;
54.1001 -PROCEDURE Finite_State_Machine___ (
54.1002 - rec_ IN OUT &TABLE%ROWTYPE,
54.1003 - event_ IN VARCHAR2,
54.1004 - attr_ IN OUT VARCHAR2 )
54.1005 -IS
54.1006 - state_ VARCHAR2(30);
54.1007 -BEGIN
54.1008 - state_ := rec_.rowstate;
54.1009 - IF (state_ IS NULL) THEN
54.1010 - IF (event_ IS NULL) THEN
54.1011 - rec_.rowstate := 'Open';
54.1012 - ELSE
54.1013 - Error_SYS.State_Event_Not_Handled(lu_name_, event_, Finite_State_Decode__(state_));
54.1014 - END IF;
54.1015 - ELSIF (state_ = 'Open') THEN
54.1016 - IF (event_ = 'Plan') THEN
54.1017 - Finite_State_Set___(rec_, 'Planned');
54.1018 - ELSE
54.1019 - Error_SYS.State_Event_Not_Handled(lu_name_, event_, Finite_State_Decode__(state_));
54.1020 - END IF;
54.1021 - ELSIF (state_ = 'Planned') THEN
54.1022 - IF (event_ = 'Plan') THEN
54.1023 - Object_Planned_Date___(rec_, attr_);
54.1024 - ELSE
54.1025 - Error_SYS.State_Event_Not_Handled(lu_name_, event_, Finite_State_Decode__(state_));
54.1026 - END IF;
54.1027 - ELSE
54.1028 - Error_SYS.State_Not_Exist(lu_name_, Finite_State_Decode__(state_));
54.1029 - END IF;
54.1030 -END Finite_State_Machine___;
54.1031 -PROCEDURE Finite_State_Add_To_Attr___ (
54.1032 - rec_ IN &TABLE%ROWTYPE,
54.1033 - attr_ IN OUT VARCHAR2 )
54.1034 -IS
54.1035 - state_ VARCHAR2(30);
54.1036 -BEGIN
54.1037 - state_ := rec_.rowstate;
54.1038 - Client_SYS.Add_To_Attr('__OBJSTATE', state_, attr_);
54.1039 - Client_SYS.Add_To_Attr('__OBJEVENTS', Finite_State_Events__(state_), attr_);
54.1040 - Client_SYS.Add_To_Attr('STATE', Finite_State_Decode__(state_), attr_);
54.1041 -END Finite_State_Add_To_Attr___;
54.1042 -PROCEDURE Finite_State_Init___ (
54.1043 - rec_ IN OUT &TABLE%ROWTYPE,
54.1044 - attr_ IN OUT VARCHAR2 )
54.1045 -IS
54.1046 - state_ VARCHAR2(30);
54.1047 -BEGIN
54.1048 - Finite_State_Machine___(rec_, NULL, attr_);
54.1049 - Finite_State_Add_To_Attr___(rec_, attr_);
54.1050 -END Finite_State_Init___;
54.1051 ------------------------------------------------------------------------------
54.1052 --------------------- PRIVATE FINITE STATE MACHINE ---------------------------
54.1053 ------------------------------------------------------------------------------
54.1054 --- Finite_State_Decode__
54.1055 --- Returns the client equivalent for any database representation of
54.1056 --- a state name = objstate.
54.1057 ---
54.1058 --- Finite_State_Encode__
54.1059 --- Returns the database equivalent for any client representation of
54.1060 --- a state name = state.
54.1061 ---
54.1062 --- Enumerate_States__
54.1063 --- Returns a list of all possible finite states in client terminology.
54.1064 ---
54.1065 --- Finite_State_Events__
54.1066 --- Returns a list of allowed events for a given state
54.1067 --- NOTE! Regardless of conditions if not otherwize encoded
54.1068 ---
54.1069 --- Enumerate_Events__
54.1070 --- Returns a list of all possible events.
54.1071 ------------------------------------------------------------------------------
54.1072 -FUNCTION Finite_State_Decode__ (
54.1073 - db_state_ IN VARCHAR2 ) RETURN VARCHAR2
54.1074 -IS
54.1075 -BEGIN
54.1076 - RETURN(Domain_SYS.Decode_(active_state_list_, db_state_list_, db_state_));
54.1077 -END Finite_State_Decode__;
54.1078 -FUNCTION Finite_State_Encode__ (
54.1079 - client_state_ IN VARCHAR2 ) RETURN VARCHAR2
54.1080 -IS
54.1081 -BEGIN
54.1082 - RETURN(Domain_SYS.Encode_(active_state_list_, db_state_list_, client_state_));
54.1083 -END Finite_State_Encode__;
54.1084 -PROCEDURE Enumerate_States__ (
54.1085 - client_values_ OUT VARCHAR2)
54.1086 -IS
54.1087 -BEGIN
54.1088 - client_values_ := Domain_SYS.Enumerate_(active_state_list_);
54.1089 -END Enumerate_States__;
54.1090 -FUNCTION Finite_State_Events__ (
54.1091 - db_state_ IN VARCHAR2 ) RETURN VARCHAR2
54.1092 -IS
54.1093 -BEGIN
54.1094 - IF (db_state_ IS NULL) THEN
54.1095 - RETURN NULL;
54.1096 - ELSIF (db_state_ = 'Open') THEN
54.1097 - RETURN 'Plan^';
54.1098 - ELSIF (db_state_ = 'Planned') THEN
54.1099 - RETURN 'Plan^';
54.1100 - ELSE
54.1101 - RETURN NULL;
54.1102 - END IF;
54.1103 -END Finite_State_Events__;
54.1104 -PROCEDURE Enumerate_Events__ (
54.1105 - db_events_ OUT VARCHAR2 )
54.1106 -IS
54.1107 -BEGIN
54.1108 - db_events_ := 'Plan^';
54.1109 -END Enumerate_Events__;
54.1110 ------------------------------------------------------------------------------
54.1111 --------------------- IMPLEMENTATION BASE METHODS FOR INSERT -----------------
54.1112 ------------------------------------------------------------------------------
54.1113 --- Prepare_Insert___
54.1114 --- Set all default values for a new instance (ON-NEW-RECORD) of this
54.1115 --- logical unit by calling procedure Add_Attr.
54.1116 ---
54.1117 --- Unpack_Check_Insert___
54.1118 --- Unpack the attribute list, check all attributes from the client
54.1119 --- and generate all default values before creation of the new object.
54.1120 ---
54.1121 --- Insert___
54.1122 --- Insert a new LU-instance into the database and return the values
54.1123 --- for OBJID and OBJVERSION.
54.1124 ------------------------------------------------------------------------------
54.1125 -
54.1126 -PROCEDURE Prepare_Insert___ (
54.1127 - attr_ IN OUT VARCHAR2 )
54.1128 -IS
54.1129 -BEGIN
54.1130 - Client_SYS.Clear_Attr(attr_);
54.1131 -END Prepare_Insert___;
54.1132 -
54.1133 -
54.1134 -PROCEDURE Unpack_Check_Insert___ (
54.1135 - attr_ IN OUT VARCHAR2,
54.1136 - newrec_ IN OUT &TABLE%ROWTYPE )
54.1137 -IS
54.1138 - ptr_ NUMBER;
54.1139 - name_ VARCHAR2(30);
54.1140 - value_ VARCHAR2(2000);
54.1141 -
54.1142 - measure_format_ NUMBER;
54.1143 -
54.1144 -BEGIN
54.1145 - ptr_ := NULL;
54.1146 - WHILE (Client_SYS.Get_Next_From_Attr(attr_, ptr_, name_, value_)) LOOP
54.1147 - IF (name_ = 'ENVIRONMENT') THEN
54.1148 - newrec_.environment := value_;
54.1149 - Scorecard_Environment_API.Exist(newrec_.environment);
54.1150 - ELSIF (name_ = 'SCORECARD') THEN
54.1151 - newrec_.scorecard := value_;
54.1152 - Scorecard_API.Exist(newrec_.environment, newrec_.scorecard);
54.1153 - ELSIF (name_ = 'YEAR') THEN
54.1154 - newrec_.year := value_;
54.1155 - Environment_Year_API.Exist(newrec_.environment, newrec_.year);
54.1156 - ELSIF (name_ = 'VERSION') THEN
54.1157 - newrec_.version := value_;
54.1158 - ELSIF (name_ = 'SCORECARD_OBJECT') THEN
54.1159 - newrec_.scorecard_object := value_;
54.1160 - ELSIF (name_ = 'OBJECT_TYPE') THEN
54.1161 - newrec_.object_type := value_;
54.1162 - ELSIF (name_ = 'YEAR_VALUE') THEN
54.1163 - newrec_.year_value := Client_SYS.Attr_Value_To_Number(value_);
54.1164 - ELSIF (name_ = 'P1_KEY') THEN
54.1165 - newrec_.p1_key := value_;
54.1166 - ELSIF (name_ = 'P1_VALUE') THEN
54.1167 - newrec_.p1_value := Client_SYS.Attr_Value_To_Number(value_);
54.1168 - ELSIF (name_ = 'P2_KEY') THEN
54.1169 - newrec_.p2_key := value_;
54.1170 - ELSIF (name_ = 'P2_VALUE') THEN
54.1171 - newrec_.p2_value := Client_SYS.Attr_Value_To_Number(value_);
54.1172 - ELSIF (name_ = 'P3_KEY') THEN
54.1173 - newrec_.p3_key := value_;
54.1174 - ELSIF (name_ = 'P3_VALUE') THEN
54.1175 - newrec_.p3_value := Client_SYS.Attr_Value_To_Number(value_);
54.1176 - ELSIF (name_ = 'P4_KEY') THEN
54.1177 - newrec_.p4_key := value_;
54.1178 - ELSIF (name_ = 'P4_VALUE') THEN
54.1179 - newrec_.p4_value := Client_SYS.Attr_Value_To_Number(value_);
54.1180 - ELSIF (name_ = 'P5_KEY') THEN
54.1181 - newrec_.p5_key := value_;
54.1182 - ELSIF (name_ = 'P5_VALUE') THEN
54.1183 - newrec_.p5_value := Client_SYS.Attr_Value_To_Number(value_);
54.1184 - ELSIF (name_ = 'P6_KEY') THEN
54.1185 - newrec_.p6_key := value_;
54.1186 - ELSIF (name_ = 'P6_VALUE') THEN
54.1187 - newrec_.p6_value := Client_SYS.Attr_Value_To_Number(value_);
54.1188 - ELSIF (name_ = 'P7_KEY') THEN
54.1189 - newrec_.p7_key := value_;
54.1190 - ELSIF (name_ = 'P7_VALUE') THEN
54.1191 - newrec_.p7_value := Client_SYS.Attr_Value_To_Number(value_);
54.1192 - ELSIF (name_ = 'P8_KEY') THEN
54.1193 - newrec_.p8_key := value_;
54.1194 - ELSIF (name_ = 'P8_VALUE') THEN
54.1195 - newrec_.p8_value := Client_SYS.Attr_Value_To_Number(value_);
54.1196 - ELSIF (name_ = 'P9_KEY') THEN
54.1197 - newrec_.p9_key := value_;
54.1198 - ELSIF (name_ = 'P9_VALUE') THEN
54.1199 - newrec_.p9_value := Client_SYS.Attr_Value_To_Number(value_);
54.1200 - ELSIF (name_ = 'P10_KEY') THEN
54.1201 - newrec_.p10_key := value_;
54.1202 - ELSIF (name_ = 'P10_VALUE') THEN
54.1203 - newrec_.p10_value := Client_SYS.Attr_Value_To_Number(value_);
54.1204 - ELSIF (name_ = 'P11_KEY') THEN
54.1205 - newrec_.p11_key := value_;
54.1206 - ELSIF (name_ = 'P11_VALUE') THEN
54.1207 - newrec_.p11_value := Client_SYS.Attr_Value_To_Number(value_);
54.1208 - ELSIF (name_ = 'P12_KEY') THEN
54.1209 - newrec_.p12_key := value_;
54.1210 - ELSIF (name_ = 'P12_VALUE') THEN
54.1211 - newrec_.p12_value := Client_SYS.Attr_Value_To_Number(value_);
54.1212 - ELSIF (name_ = 'ACTION') THEN
54.1213 - newrec_.action := value_;
54.1214 - ELSIF (name_ = 'MEA_STATE_CHANGE_DATE') THEN
54.1215 - newrec_.mea_state_change_date := Client_SYS.Attr_Value_To_Date(value_);
54.1216 - ELSIF (name_ = 'BUDGET_VERSION') THEN
54.1217 - newrec_.budget_version := value_;
54.1218 - ELSE
54.1219 - Error_SYS.Item_Not_Exist(lu_name_, name_, value_);
54.1220 - END IF;
54.1221 - END LOOP;
54.1222 -
54.1223 -
54.1224 - IF( newrec_.scorecard_object IS NOT NULL) THEN
54.1225 -
54.1226 - measure_format_ := TO_NUMBER(Scorecard_Measure_API.Get_Measure_Format(newrec_.scorecard_object));
54.1227 -
54.1228 - newrec_.year_value := newrec_.year_value * measure_format_;
54.1229 - newrec_.p1_value := newrec_.p1_value * measure_format_;
54.1230 - newrec_.p2_value := newrec_.p2_value * measure_format_;
54.1231 - newrec_.p3_value := newrec_.p3_value * measure_format_;
54.1232 - newrec_.p4_value := newrec_.p4_value * measure_format_;
54.1233 - newrec_.p5_value := newrec_.p5_value * measure_format_;
54.1234 - newrec_.p6_value := newrec_.p6_value * measure_format_;
54.1235 - newrec_.p7_value := newrec_.p7_value * measure_format_;
54.1236 - newrec_.p8_value := newrec_.p8_value * measure_format_;
54.1237 - newrec_.p9_value := newrec_.p9_value * measure_format_;
54.1238 - newrec_.p10_value := newrec_.p10_value * measure_format_;
54.1239 - newrec_.p11_value := newrec_.p11_value * measure_format_;
54.1240 - newrec_.p12_value := newrec_.p12_value * measure_format_;
54.1241 -
54.1242 - END IF;
54.1243 -
54.1244 - Client_SYS.Clear_Attr(attr_);
54.1245 - Error_SYS.Check_Not_Null(lu_name_, 'ENVIRONMENT', newrec_.environment);
54.1246 - Error_SYS.Check_Not_Null(lu_name_, 'SCORECARD', newrec_.scorecard);
54.1247 - Error_SYS.Check_Not_Null(lu_name_, 'YEAR', newrec_.year);
54.1248 - Error_SYS.Check_Not_Null(lu_name_, 'VERSION', newrec_.version);
54.1249 - Error_SYS.Check_Not_Null(lu_name_, 'SCORECARD_OBJECT', newrec_.scorecard_object);
54.1250 - Error_SYS.Check_Not_Null(lu_name_, 'OBJECT_TYPE', newrec_.object_type);
54.1251 - Error_SYS.Check_Not_Null(lu_name_, 'ACTION', newrec_.action);
54.1252 -EXCEPTION
54.1253 - WHEN value_error THEN
54.1254 - Error_SYS.Item_Format(lu_name_, name_, value_);
54.1255 -END Unpack_Check_Insert___;
54.1256 -
54.1257 -
54.1258 -PROCEDURE Insert___ (
54.1259 - objid_ OUT VARCHAR2,
54.1260 - objversion_ OUT VARCHAR2,
54.1261 - newrec_ IN OUT &TABLE%ROWTYPE,
54.1262 - attr_ IN OUT VARCHAR2 )
54.1263 -IS
54.1264 -BEGIN
54.1265 - newrec_.rowversion := sysdate;
54.1266 - objversion_ := to_char(newrec_.rowversion,'YYYYMMDDHH24MISS');
54.1267 - newrec_.mea_state_change_date := sysdate;
54.1268 - INSERT
54.1269 - INTO scorecard_input_value_tab (
54.1270 - environment,
54.1271 - scorecard,
54.1272 - year,
54.1273 - version,
54.1274 - scorecard_object,
54.1275 - object_type,
54.1276 - year_value,
54.1277 - p1_key,
54.1278 - p1_value,
54.1279 - p2_key,
54.1280 - p2_value,
54.1281 - p3_key,
54.1282 - p3_value,
54.1283 - p4_key,
54.1284 - p4_value,
54.1285 - p5_key,
54.1286 - p5_value,
54.1287 - p6_key,
54.1288 - p6_value,
54.1289 - p7_key,
54.1290 - p7_value,
54.1291 - p8_key,
54.1292 - p8_value,
54.1293 - p9_key,
54.1294 - p9_value,
54.1295 - p10_key,
54.1296 - p10_value,
54.1297 - p11_key,
54.1298 - p11_value,
54.1299 - p12_key,
54.1300 - p12_value,
54.1301 - action,
54.1302 - mea_state_change_date,
54.1303 - budget_version,
54.1304 - rowversion,
54.1305 - rowstate)
54.1306 - VALUES (
54.1307 - newrec_.environment,
54.1308 - newrec_.scorecard,
54.1309 - newrec_.year,
54.1310 - newrec_.version,
54.1311 - newrec_.scorecard_object,
54.1312 - newrec_.object_type,
54.1313 - newrec_.year_value,
54.1314 - newrec_.p1_key,
54.1315 - newrec_.p1_value,
54.1316 - newrec_.p2_key,
54.1317 - newrec_.p2_value,
54.1318 - newrec_.p3_key,
54.1319 - newrec_.p3_value,
54.1320 - newrec_.p4_key,
54.1321 - newrec_.p4_value,
54.1322 - newrec_.p5_key,
54.1323 - newrec_.p5_value,
54.1324 - newrec_.p6_key,
54.1325 - newrec_.p6_value,
54.1326 - newrec_.p7_key,
54.1327 - newrec_.p7_value,
54.1328 - newrec_.p8_key,
54.1329 - newrec_.p8_value,
54.1330 - newrec_.p9_key,
54.1331 - newrec_.p9_value,
54.1332 - newrec_.p10_key,
54.1333 - newrec_.p10_value,
54.1334 - newrec_.p11_key,
54.1335 - newrec_.p11_value,
54.1336 - newrec_.p12_key,
54.1337 - newrec_.p12_value,
54.1338 - newrec_.action,
54.1339 - newrec_.mea_state_change_date,
54.1340 - newrec_.budget_version,
54.1341 - newrec_.rowversion,
54.1342 - 'Open')
54.1343 - RETURNING &OBJID INTO objid_;
54.1344 - Finite_State_Init___(newrec_, attr_);
54.1345 -EXCEPTION
54.1346 - WHEN dup_val_on_index THEN
54.1347 - Error_SYS.Record_Exist(lu_name_);
54.1348 -END Insert___;
54.1349 -
54.1350 ------------------------------------------------------------------------------
54.1351 --------------------- IMPLEMENTATION BASE METHODS FOR UPDATE -----------------
54.1352 ------------------------------------------------------------------------------
54.1353 --- Unpack_Check_Update___
54.1354 --- Unpack the attribute list, check all attributes from the client
54.1355 --- and generate all default values before modifying the object.
54.1356 ---
54.1357 --- Update___
54.1358 --- Update an existing LU-instance in the database and return the
54.1359 --- the new OBJVERSION.
54.1360 ------------------------------------------------------------------------------
54.1361 -
54.1362 -PROCEDURE Unpack_Check_Update___ (
54.1363 - attr_ IN OUT VARCHAR2,
54.1364 - newrec_ IN OUT &TABLE%ROWTYPE,
54.1365 - objid_ IN VARCHAR2 )
54.1366 -IS
54.1367 - ptr_ NUMBER;
54.1368 - name_ VARCHAR2(30);
54.1369 - value_ VARCHAR2(2000);
54.1370 -
54.1371 -
54.1372 - measure_format_ NUMBER;
54.1373 - from_budpro_ VARCHAR2(5):= 'FALSE';
54.1374 - oldrec_ Scorecard_Input_Value_Tab%ROWTYPE;
54.1375 -
54.1376 -BEGIN
54.1377 - ptr_ := NULL;
54.1378 - oldrec_ := newrec_;
54.1379 - WHILE (Client_SYS.Get_Next_From_Attr(attr_, ptr_, name_, value_)) LOOP
54.1380 - IF (name_ = 'ENVIRONMENT') THEN
54.1381 - newrec_.environment := value_;
54.1382 - Scorecard_Environment_API.Exist(newrec_.environment);
54.1383 - ELSIF (name_ = 'SCORECARD') THEN
54.1384 - newrec_.scorecard := value_;
54.1385 - Scorecard_API.Exist(newrec_.environment, newrec_.scorecard);
54.1386 - ELSIF (name_ = 'YEAR') THEN
54.1387 - newrec_.year := value_;
54.1388 - Environment_Year_API.Exist(newrec_.environment, newrec_.year);
54.1389 - ELSIF (name_ = 'VERSION') THEN
54.1390 - Error_SYS.Item_Update(lu_name_, 'VERSION');
54.1391 - ELSIF (name_ = 'SCORECARD_OBJECT') THEN
54.1392 - newrec_.scorecard_object := value_;
54.1393 - ELSIF (name_ = 'OBJECT_TYPE') THEN
54.1394 - newrec_.object_type := value_;
54.1395 - ELSIF (name_ = 'YEAR_VALUE') THEN
54.1396 - newrec_.year_value := Client_SYS.Attr_Value_To_Number(value_);
54.1397 - ELSIF (name_ = 'P1_KEY') THEN
54.1398 - newrec_.p1_key := value_;
54.1399 - ELSIF (name_ = 'P1_VALUE') THEN
54.1400 - newrec_.p1_value := Client_SYS.Attr_Value_To_Number(value_);
54.1401 - ELSIF (name_ = 'P2_KEY') THEN
54.1402 - newrec_.p2_key := value_;
54.1403 - ELSIF (name_ = 'P2_VALUE') THEN
54.1404 - newrec_.p2_value := Client_SYS.Attr_Value_To_Number(value_);
54.1405 - ELSIF (name_ = 'P3_KEY') THEN
54.1406 - newrec_.p3_key := value_;
54.1407 - ELSIF (name_ = 'P3_VALUE') THEN
54.1408 - newrec_.p3_value := Client_SYS.Attr_Value_To_Number(value_);
54.1409 - ELSIF (name_ = 'P4_KEY') THEN
54.1410 - newrec_.p4_key := value_;
54.1411 - ELSIF (name_ = 'P4_VALUE') THEN
54.1412 - newrec_.p4_value := Client_SYS.Attr_Value_To_Number(value_);
54.1413 - ELSIF (name_ = 'P5_KEY') THEN
54.1414 - newrec_.p5_key := value_;
54.1415 - ELSIF (name_ = 'P5_VALUE') THEN
54.1416 - newrec_.p5_value := Client_SYS.Attr_Value_To_Number(value_);
54.1417 - ELSIF (name_ = 'P6_KEY') THEN
54.1418 - newrec_.p6_key := value_;
54.1419 - ELSIF (name_ = 'P6_VALUE') THEN
54.1420 - newrec_.p6_value := Client_SYS.Attr_Value_To_Number(value_);
54.1421 - ELSIF (name_ = 'P7_KEY') THEN
54.1422 - newrec_.p7_key := value_;
54.1423 - ELSIF (name_ = 'P7_VALUE') THEN
54.1424 - newrec_.p7_value := Client_SYS.Attr_Value_To_Number(value_);
54.1425 - ELSIF (name_ = 'P8_KEY') THEN
54.1426 - newrec_.p8_key := value_;
54.1427 - ELSIF (name_ = 'P8_VALUE') THEN
54.1428 - newrec_.p8_value := Client_SYS.Attr_Value_To_Number(value_);
54.1429 - ELSIF (name_ = 'P9_KEY') THEN
54.1430 - newrec_.p9_key := value_;
54.1431 - ELSIF (name_ = 'P9_VALUE') THEN
54.1432 - newrec_.p9_value := Client_SYS.Attr_Value_To_Number(value_);
54.1433 - ELSIF (name_ = 'P10_KEY') THEN
54.1434 - newrec_.p10_key := value_;
54.1435 - ELSIF (name_ = 'P10_VALUE') THEN
54.1436 - newrec_.p10_value := Client_SYS.Attr_Value_To_Number(value_);
54.1437 - ELSIF (name_ = 'P11_KEY') THEN
54.1438 - newrec_.p11_key := value_;
54.1439 - ELSIF (name_ = 'P11_VALUE') THEN
54.1440 - newrec_.p11_value := Client_SYS.Attr_Value_To_Number(value_);
54.1441 - ELSIF (name_ = 'P12_KEY') THEN
54.1442 - newrec_.p12_key := value_;
54.1443 - ELSIF (name_ = 'P12_VALUE') THEN
54.1444 - newrec_.p12_value := Client_SYS.Attr_Value_To_Number(value_);
54.1445 - ELSIF (name_ = 'ACTION') THEN
54.1446 - newrec_.action := value_;
54.1447 - ELSIF (name_ = 'MEA_STATE_CHANGE_DATE') THEN
54.1448 - newrec_.mea_state_change_date := Client_SYS.Attr_Value_To_Date(value_);
54.1449 - ELSIF (name_ = 'BUDGET_VERSION') THEN
54.1450 - newrec_.budget_version := value_;
54.1451 - ELSIF (name_ = 'FROM_BUDPRO') THEN
54.1452 - from_budpro_ := value_;
54.1453 - ELSE
54.1454 - Error_SYS.Item_Not_Exist(lu_name_, name_, value_);
54.1455 - END IF;
54.1456 - END LOOP;
54.1457 -
54.1458 -
54.1459 - IF( newrec_.scorecard_object IS NOT NULL AND from_budpro_ = 'FALSE') THEN
54.1460 -
54.1461 - measure_format_ := TO_NUMBER(Scorecard_Measure_API.Get_Measure_Format(newrec_.scorecard_object));
54.1462 - IF( newrec_.year_value != NVL(oldrec_.year_value,0)) THEN
54.1463 - newrec_.year_value := newrec_.year_value * measure_format_;
54.1464 - END IF;
54.1465 - IF( newrec_.p1_value != NVL(oldrec_.p1_value,0)) THEN
54.1466 - newrec_.p1_value := newrec_.p1_value * measure_format_;
54.1467 - END IF;
54.1468 - IF( newrec_.p2_value != NVL(oldrec_.p2_value,0)) THEN
54.1469 - newrec_.p2_value := newrec_.p2_value * measure_format_;
54.1470 - END IF;
54.1471 - IF( newrec_.p3_value != NVL(oldrec_.p3_value,0)) THEN
54.1472 - newrec_.p3_value := newrec_.p3_value * measure_format_;
54.1473 - END IF;
54.1474 - IF( newrec_.p4_value != NVL(oldrec_.p4_value,0)) THEN
54.1475 - newrec_.p4_value := newrec_.p4_value * measure_format_;
54.1476 - END IF;
54.1477 - IF( newrec_.p5_value != NVL(oldrec_.p5_value,0)) THEN
54.1478 - newrec_.p5_value := newrec_.p5_value * measure_format_;
54.1479 - END IF;
54.1480 - IF( newrec_.p6_value != NVL(oldrec_.p6_value,0)) THEN
54.1481 - newrec_.p6_value := newrec_.p6_value * measure_format_;
54.1482 - END IF;
54.1483 - IF( newrec_.p7_value != NVL(oldrec_.p7_value,0)) THEN
54.1484 - newrec_.p7_value := newrec_.p7_value * measure_format_;
54.1485 - END IF;
54.1486 - IF( newrec_.p8_value != NVL(oldrec_.p8_value,0)) THEN
54.1487 - newrec_.p8_value := newrec_.p8_value * measure_format_;
54.1488 - END IF;
54.1489 - IF( newrec_.p9_value != NVL(oldrec_.p9_value,0)) THEN
54.1490 - newrec_.p9_value := newrec_.p9_value * measure_format_;
54.1491 - END IF;
54.1492 - IF( newrec_.p10_value != NVL(oldrec_.p10_value,0)) THEN
54.1493 - newrec_.p10_value := newrec_.p10_value * measure_format_;
54.1494 - END IF;
54.1495 - IF( newrec_.p11_value != NVL(oldrec_.p11_value,0)) THEN
54.1496 - newrec_.p11_value := newrec_.p11_value * measure_format_;
54.1497 - END IF;
54.1498 - IF( newrec_.p12_value != NVL(oldrec_.p12_value,0)) THEN
54.1499 - newrec_.p12_value := newrec_.p12_value * measure_format_;
54.1500 - END IF;
54.1501 -
54.1502 - END IF;
54.1503 - Client_SYS.Clear_Attr(attr_);
54.1504 - Error_SYS.Check_Not_Null(lu_name_, 'ENVIRONMENT', newrec_.environment);
54.1505 - Error_SYS.Check_Not_Null(lu_name_, 'SCORECARD', newrec_.scorecard);
54.1506 - Error_SYS.Check_Not_Null(lu_name_, 'YEAR', newrec_.year);
54.1507 - Error_SYS.Check_Not_Null(lu_name_, 'SCORECARD_OBJECT', newrec_.scorecard_object);
54.1508 - Error_SYS.Check_Not_Null(lu_name_, 'OBJECT_TYPE', newrec_.object_type);
54.1509 - Error_SYS.Check_Not_Null(lu_name_, 'ACTION', newrec_.action);
54.1510 -EXCEPTION
54.1511 - WHEN value_error THEN
54.1512 - Error_SYS.Item_Format(lu_name_, name_, value_);
54.1513 -END Unpack_Check_Update___;
54.1514 -
54.1515 -
54.1516 -PROCEDURE Update___ (
54.1517 - objid_ IN VARCHAR2,
54.1518 - oldrec_ IN &TABLE%ROWTYPE,
54.1519 - newrec_ IN OUT &TABLE%ROWTYPE,
54.1520 - attr_ IN OUT VARCHAR2,
54.1521 - objversion_ IN OUT VARCHAR2,
54.1522 - by_keys_ IN BOOLEAN DEFAULT FALSE )
54.1523 -IS
54.1524 -BEGIN
54.1525 - newrec_.rowversion := sysdate;
54.1526 - objversion_ := to_char(newrec_.rowversion,'YYYYMMDDHH24MISS');
54.1527 - IF by_keys_ THEN
54.1528 - UPDATE scorecard_input_value_tab
54.1529 - SET environment = newrec_.environment,
54.1530 - scorecard = newrec_.scorecard,
54.1531 - year = newrec_.year,
54.1532 - version = newrec_.version,
54.1533 - scorecard_object = newrec_.scorecard_object,
54.1534 - object_type = newrec_.object_type,
54.1535 - year_value = newrec_.year_value,
54.1536 - p1_key = newrec_.p1_key,
54.1537 - p1_value = newrec_.p1_value,
54.1538 - p2_key = newrec_.p2_key,
54.1539 - p2_value = newrec_.p2_value,
54.1540 - p3_key = newrec_.p3_key,
54.1541 - p3_value = newrec_.p3_value,
54.1542 - p4_key = newrec_.p4_key,
54.1543 - p4_value = newrec_.p4_value,
54.1544 - p5_key = newrec_.p5_key,
54.1545 - p5_value = newrec_.p5_value,
54.1546 - p6_key = newrec_.p6_key,
54.1547 - p6_value = newrec_.p6_value,
54.1548 - p7_key = newrec_.p7_key,
54.1549 - p7_value = newrec_.p7_value,
54.1550 - p8_key = newrec_.p8_key,
54.1551 - p8_value = newrec_.p8_value,
54.1552 - p9_key = newrec_.p9_key,
54.1553 - p9_value = newrec_.p9_value,
54.1554 - p10_key = newrec_.p10_key,
54.1555 - p10_value = newrec_.p10_value,
54.1556 - p11_key = newrec_.p11_key,
54.1557 - p11_value = newrec_.p11_value,
54.1558 - p12_key = newrec_.p12_key,
54.1559 - p12_value = newrec_.p12_value,
54.1560 - action = newrec_.action,
54.1561 - mea_state_change_date = newrec_.mea_state_change_date,
54.1562 - budget_version = newrec_.budget_version,
54.1563 - rowversion = newrec_.rowversion
54.1564 - WHERE environment = newrec_.environment
54.1565 - AND scorecard = newrec_.scorecard
54.1566 - AND year = newrec_.year
54.1567 - AND version = newrec_.version
54.1568 - AND scorecard_object = newrec_.scorecard_object;
54.1569 - ELSE
54.1570 - UPDATE scorecard_input_value_tab
54.1571 - SET environment = newrec_.environment,
54.1572 - scorecard = newrec_.scorecard,
54.1573 - year = newrec_.year,
54.1574 - version = newrec_.version,
54.1575 - scorecard_object = newrec_.scorecard_object,
54.1576 - object_type = newrec_.object_type,
54.1577 - year_value = newrec_.year_value,
54.1578 - p1_key = newrec_.p1_key,
54.1579 - p1_value = newrec_.p1_value,
54.1580 - p2_key = newrec_.p2_key,
54.1581 - p2_value = newrec_.p2_value,
54.1582 - p3_key = newrec_.p3_key,
54.1583 - p3_value = newrec_.p3_value,
54.1584 - p4_key = newrec_.p4_key,
54.1585 - p4_value = newrec_.p4_value,
54.1586 - p5_key = newrec_.p5_key,
54.1587 - p5_value = newrec_.p5_value,
54.1588 - p6_key = newrec_.p6_key,
54.1589 - p6_value = newrec_.p6_value,
54.1590 - p7_key = newrec_.p7_key,
54.1591 - p7_value = newrec_.p7_value,
54.1592 - p8_key = newrec_.p8_key,
54.1593 - p8_value = newrec_.p8_value,
54.1594 - p9_key = newrec_.p9_key,
54.1595 - p9_value = newrec_.p9_value,
54.1596 - p10_key = newrec_.p10_key,
54.1597 - p10_value = newrec_.p10_value,
54.1598 - p11_key = newrec_.p11_key,
54.1599 - p11_value = newrec_.p11_value,
54.1600 - p12_key = newrec_.p12_key,
54.1601 - p12_value = newrec_.p12_value,
54.1602 - action = newrec_.action,
54.1603 - mea_state_change_date = newrec_.mea_state_change_date,
54.1604 - budget_version = newrec_.budget_version,
54.1605 - rowversion = newrec_.rowversion
54.1606 - WHERE &OBJID = objid_;
54.1607 - END IF;
54.1608 -EXCEPTION
54.1609 - WHEN dup_val_on_index THEN
54.1610 - Error_SYS.Record_Exist(lu_name_);
54.1611 -END Update___;
54.1612 -
54.1613 ------------------------------------------------------------------------------
54.1614 --------------------- IMPLEMENTATION BASE METHODS FOR DELETE -----------------
54.1615 ------------------------------------------------------------------------------
54.1616 --- Check_Delete___
54.1617 --- Checks whether a specific LU-record may be removed or not.
54.1618 --- The procedure should check business rules like attribute values
54.1619 --- as well as database constraints (defined or not).
54.1620 ---
54.1621 --- Delete___
54.1622 --- Deletion of the specific LU-object from the database.
54.1623 ------------------------------------------------------------------------------
54.1624 -
54.1625 -PROCEDURE Check_Delete___ (
54.1626 - remrec_ IN &TABLE%ROWTYPE )
54.1627 -IS
54.1628 - key_ VARCHAR2(2000);
54.1629 -BEGIN
54.1630 - key_ := remrec_.environment || '^' || remrec_.scorecard || '^' || remrec_.year || '^' || remrec_.version || '^' || remrec_.scorecard_object || '^';
54.1631 - Reference_SYS.Check_Restricted_Delete(lu_name_, key_);
54.1632 -END Check_Delete___;
54.1633 -
54.1634 -
54.1635 -PROCEDURE Delete___ (
54.1636 - objid_ IN VARCHAR2,
54.1637 - remrec_ IN &TABLE%ROWTYPE )
54.1638 -IS
54.1639 - key_ VARCHAR2(2000);
54.1640 -BEGIN
54.1641 - key_ := remrec_.environment || '^' || remrec_.scorecard || '^' || remrec_.year || '^' || remrec_.version || '^' || remrec_.scorecard_object || '^';
54.1642 - Reference_SYS.Do_Cascade_Delete(lu_name_, key_);
54.1643 - DELETE
54.1644 - FROM scorecard_input_value_tab
54.1645 - WHERE &OBJID = objid_;
54.1646 -END Delete___;
54.1647 -
54.1648 ------------------------------------------------------------------------------
54.1649 --------------------- PRIVATE BASE METHODS -----------------------------------
54.1650 ------------------------------------------------------------------------------
54.1651 --- Lock__
54.1652 --- Client-support to lock a specific instance of the logical unit.
54.1653 ---
54.1654 --- New__
54.1655 --- Client-support interface to create LU instances.
54.1656 --- action_ = 'PREPARE'
54.1657 --- Default values and handle of information to client.
54.1658 --- The default values are set in procedure Prepare_Insert___.
54.1659 --- action_ = 'CHECK'
54.1660 --- Check all attributes before creating new object and handle of
54.1661 --- information to client. The attribute list is unpacked, checked
54.1662 --- and prepared (defaults) in procedure Unpack_Check_Insert___.
54.1663 --- action_ = 'DO'
54.1664 --- Creation of new instances of the logical unit and handle of
54.1665 --- information to client. The attribute list is unpacked, checked
54.1666 --- and prepared (defaults) in procedure Unpack_Check_Insert___
54.1667 --- before calling procedure Insert___.
54.1668 ---
54.1669 --- Modify__
54.1670 --- Client-support interface to modify attributes for LU instances.
54.1671 --- action_ = 'CHECK'
54.1672 --- Check all attributes before modifying an existing object and
54.1673 --- handle of information to client. The attribute list is unpacked,
54.1674 --- checked and prepared(defaults) in procedure Unpack_Check_Update___.
54.1675 --- action_ = 'DO'
54.1676 --- Modification of an existing instance of the logical unit. The
54.1677 --- procedure unpacks the attributes, checks all values before
54.1678 --- procedure Update___ is called.
54.1679 ---
54.1680 --- Remove__
54.1681 --- Client-support interface to remove LU instances.
54.1682 --- action_ = 'CHECK'
54.1683 --- Check whether a specific LU-instance may be removed or not.
54.1684 --- The procedure fetches the complete record by calling procedure
54.1685 --- Get_Object_By_Id___. Then the check is made by calling procedure
54.1686 --- Check_Delete___.
54.1687 --- action_ = 'DO'
54.1688 --- Remove an existing instance of the logical unit. The procedure
54.1689 --- fetches the complete LU-record, checks for a delete and then
54.1690 --- deletes the record by calling procedure Delete___.
54.1691 ------------------------------------------------------------------------------
54.1692 -
54.1693 -PROCEDURE Lock__ (
54.1694 - info_ OUT VARCHAR2,
54.1695 - objid_ IN VARCHAR2,
54.1696 - objversion_ IN VARCHAR2 )
54.1697 -IS
54.1698 - dummy_ &TABLE%ROWTYPE;
54.1699 -BEGIN
54.1700 - General_SYS.Init_Method(lu_name_, '&PKG', 'Lock__');
54.1701 - dummy_ := Lock_By_Id___(objid_, objversion_);
54.1702 - info_ := Client_SYS.Get_All_Info;
54.1703 -END Lock__;
54.1704 -
54.1705 -
54.1706 -PROCEDURE New__ (
54.1707 - info_ OUT VARCHAR2,
54.1708 - objid_ OUT VARCHAR2,
54.1709 - objversion_ OUT VARCHAR2,
54.1710 - attr_ IN OUT VARCHAR2,
54.1711 - action_ IN VARCHAR2 )
54.1712 -IS
54.1713 - newrec_ &TABLE%ROWTYPE;
54.1714 -BEGIN
54.1715 - General_SYS.Init_Method(lu_name_, '&PKG', 'New__');
54.1716 - IF (action_ = 'PREPARE') THEN
54.1717 - Prepare_Insert___(attr_);
54.1718 - ELSIF (action_ = 'CHECK') THEN
54.1719 - Unpack_Check_Insert___(attr_, newrec_);
54.1720 - ELSIF (action_ = 'DO') THEN
54.1721 - Unpack_Check_Insert___(attr_, newrec_);
54.1722 - Insert___(objid_, objversion_, newrec_, attr_);
54.1723 - END IF;
54.1724 - info_ := Client_SYS.Get_All_Info;
54.1725 -END New__;
54.1726 -
54.1727 -
54.1728 -PROCEDURE Modify__ (
54.1729 - info_ OUT VARCHAR2,
54.1730 - objid_ IN VARCHAR2,
54.1731 - objversion_ IN OUT VARCHAR2,
54.1732 - attr_ IN OUT VARCHAR2,
54.1733 - action_ IN VARCHAR2 )
54.1734 -IS
54.1735 - oldrec_ &TABLE%ROWTYPE;
54.1736 - newrec_ &TABLE%ROWTYPE;
54.1737 -BEGIN
54.1738 - General_SYS.Init_Method(lu_name_, '&PKG', 'Modify__');
54.1739 - IF (action_ = 'CHECK') THEN
54.1740 - newrec_ := Get_Object_By_Id___(objid_);
54.1741 - Unpack_Check_Update___(attr_, newrec_, objid_);
54.1742 - ELSIF (action_ = 'DO') THEN
54.1743 - oldrec_ := Lock_By_Id___(objid_, objversion_);
54.1744 - newrec_ := oldrec_;
54.1745 - Unpack_Check_Update___(attr_, newrec_, objid_);
54.1746 - Update___(objid_, oldrec_, newrec_, attr_, objversion_);
54.1747 - END IF;
54.1748 - info_ := Client_SYS.Get_All_Info;
54.1749 -END Modify__;
54.1750 -
54.1751 -
54.1752 -PROCEDURE Remove__ (
54.1753 - info_ OUT VARCHAR2,
54.1754 - objid_ IN VARCHAR2,
54.1755 - objversion_ IN VARCHAR2,
54.1756 - action_ IN VARCHAR2 )
54.1757 -IS
54.1758 - remrec_ &TABLE%ROWTYPE;
54.1759 -BEGIN
54.1760 - General_SYS.Init_Method(lu_name_, '&PKG', 'Remove__');
54.1761 - IF (action_ = 'CHECK') THEN
54.1762 - remrec_ := Get_Object_By_Id___(objid_);
54.1763 - Check_Delete___(remrec_);
54.1764 - ELSIF (action_ = 'DO') THEN
54.1765 - remrec_ := Lock_By_Id___(objid_, objversion_);
54.1766 - Check_Delete___(remrec_);
54.1767 - Delete___(objid_, remrec_);
54.1768 - END IF;
54.1769 - info_ := Client_SYS.Get_All_Info;
54.1770 -END Remove__;
54.1771 -
54.1772 ------------------------------------------------------------------------------
54.1773 --------------------- PUBLIC BASE METHODS ------------------------------------
54.1774 ------------------------------------------------------------------------------
54.1775 --- Exist
54.1776 --- Checks if given pointer (e.g. primary key) to an instance of this
54.1777 --- logical unit exists. If not an exception will be raised.
54.1778 ------------------------------------------------------------------------------
54.1779 -
54.1780 -PROCEDURE Exist (
54.1781 - environment_ IN VARCHAR2,
54.1782 - scorecard_ IN VARCHAR2,
54.1783 - year_ IN VARCHAR2,
54.1784 - version_ IN VARCHAR2,
54.1785 - scorecard_object_ IN VARCHAR2 )
54.1786 -IS
54.1787 -BEGIN
54.1788 - General_SYS.Init_Method(lu_name_, '&PKG', 'Exist', TRUE);
54.1789 - IF (NOT Check_Exist___(environment_, scorecard_, year_, version_, scorecard_object_)) THEN
54.1790 - Error_SYS.Record_Not_Exist(lu_name_);
54.1791 - END IF;
54.1792 -END Exist;
54.1793 -
54.1794 ------------------------------------------------------------------------------
54.1795 --------------------- PUBLIC TRANSLATION METHODS -----------------------------
54.1796 ------------------------------------------------------------------------------
54.1797 -PROCEDURE Language_Refreshed
54.1798 -IS
54.1799 -BEGIN
54.1800 - active_state_list_ := Language_SYS.Translate_State_(lu_name_, client_state_list_);
54.1801 -END Language_Refreshed;
54.1802 ------------------------------------------------------------------------------
54.1803 --------------------- LU SPECIFIC IMPLEMENTATION METHODS ---------------------
54.1804 ------------------------------------------------------------------------------
54.1805 -
54.1806 -
54.1807 -PROCEDURE Distribute_Input_Values___ (
54.1808 - environment_ IN VARCHAR2,
54.1809 - scorecard_ IN VARCHAR2,
54.1810 - year_ IN VARCHAR2,
54.1811 - version_ IN VARCHAR2,
54.1812 - object_type_ IN VARCHAR2,
54.1813 - period_count_ IN NUMBER,
54.1814 - scorecard_object_ IN VARCHAR2 )
54.1815 -IS
54.1816 - child_scr_ VARCHAR2(20);
54.1817 -
54.1818 -
54.1819 - CURSOR get_child_scorecards IS --- Move to scorecard
54.1820 - SELECT scorecard
54.1821 - FROM scorecard
54.1822 - WHERE parent=scorecard_
54.1823 - AND environment=environment_;
54.1824 -
54.1825 - CURSOR get_open_child_scr IS
54.1826 - SELECT '1'
54.1827 - FROM scorecard
54.1828 - WHERE scorecard = child_scr_
54.1829 - AND environment=environment_
54.1830 - AND objstate NOT IN ('Open', 'Planned');
54.1831 -
54.1832 - CURSOR get_input_values (scorecard_object_ VARCHAR2,temp_scorecard_ VARCHAR2) IS
54.1833 - SELECT year_value,p1_value,p2_value,p3_value,p4_value,p5_value,p6_value,
54.1834 - p7_value,p8_value,p9_value,p10_value,p11_value,p12_value
54.1835 - FROM scorecard_input_value_tab
54.1836 - WHERE environment = environment_
54.1837 - AND scorecard = temp_scorecard_
54.1838 - AND year = year_
54.1839 - AND version = version_
54.1840 - AND scorecard_object = scorecard_object_
54.1841 - AND object_type_=object_type_;
54.1842 -
54.1843 - CURSOR get_attribute_value_sum(attribute_ VARCHAR2) IS
54.1844 - SELECT SUM(TO_NUMBER(value))
54.1845 - FROM scorecard_attribute_tab
54.1846 - WHERE environment=environment_
54.1847 - AND scorecard IN (SELECT scorecard
54.1848 - FROM scorecard
54.1849 - WHERE environment = environment_
54.1850 - AND parent = scorecard_)
54.1851 - AND attribute=attribute_;
54.1852 -
54.1853 - value_distribution_type_ VARCHAR2(20);
54.1854 - hierachical_dist_logic_ VARCHAR2(20);
54.1855 - distribution_version_ VARCHAR2(20);
54.1856 - distribution_attribute_ VARCHAR2(20);
54.1857 - temp_val_ VARCHAR2(5);
54.1858 - newrec_ SCORECARD_INPUT_VALUE_TAB%ROWTYPE;
54.1859 - oldrec_ SCORECARD_INPUT_VALUE_TAB%ROWTYPE;
54.1860 - objid_ VARCHAR2(2000);
54.1861 - attr_ VARCHAR2(2000);
54.1862 - objversion_ VARCHAR2(2000);
54.1863 - child_count_ NUMBER;
54.1864 - temp_period_count_ NUMBER;
54.1865 - attribute_val_str_ VARCHAR2(2000);
54.1866 - attribute_value_ NUMBER;
54.1867 - attribute_value_sum_ NUMBER;
54.1868 -
54.1869 - parent_year_value_ NUMBER;
54.1870 - parent_p1_value_ NUMBER;
54.1871 - parent_p2_value_ NUMBER;
54.1872 - parent_p3_value_ NUMBER;
54.1873 - parent_p4_value_ NUMBER;
54.1874 - parent_p5_value_ NUMBER;
54.1875 - parent_p6_value_ NUMBER;
54.1876 - parent_p7_value_ NUMBER;
54.1877 - parent_p8_value_ NUMBER;
54.1878 - parent_p9_value_ NUMBER;
54.1879 - parent_p10_value_ NUMBER;
54.1880 - parent_p11_value_ NUMBER;
54.1881 - parent_p12_value_ NUMBER;
54.1882 -
54.1883 - period_val_arr_ PeriodValArrType;
54.1884 - TYPE ValArrType IS TABLE OF NUMBER
54.1885 - INDEX BY BINARY_INTEGER;
54.1886 - parent_val_arr_ ValArrType;
54.1887 - child_val_arr_ ValArrType;
54.1888 - year_value_ NUMBER;
54.1889 -
54.1890 -BEGIN
54.1891 -
54.1892 - Scorecard_Structure_API.Get_Dist_Logic_Details(value_distribution_type_,hierachical_dist_logic_,
54.1893 - distribution_version_,distribution_attribute_,
54.1894 - scorecard_,scorecard_object_,environment_,object_type_);
54.1895 -
54.1896 - IF value_distribution_type_ IS NULL THEN
54.1897 - IF object_type_='MEASURE' THEN
54.1898 - Error_SYS.Appl_General(lu_name_,'VALDIST1: Value distribution type must have a value for measure :P1 in parent scorecard :P2.',scorecard_object_,scorecard_);
54.1899 - ELSE
54.1900 - Error_SYS.Appl_General(lu_name_,'VALDIST2: Value distribution type must have a value for component :P1 in parent scorecard :P2.',scorecard_object_,scorecard_);
54.1901 - END IF;
54.1902 - END IF;
54.1903 -
54.1904 - OPEN get_input_values(scorecard_object_,scorecard_);
54.1905 - FETCH get_input_values INTO parent_year_value_,parent_p1_value_,parent_p2_value_,parent_p3_value_,parent_p4_value_,
54.1906 - parent_p5_value_,parent_p6_value_,parent_p7_value_,parent_p8_value_,parent_p9_value_,
54.1907 - parent_p10_value_,parent_p11_value_,parent_p12_value_;
54.1908 - CLOSE get_input_values;
54.1909 -
54.1910 - parent_val_arr_(1):=parent_p1_value_;
54.1911 - parent_val_arr_(2):=parent_p2_value_;
54.1912 - parent_val_arr_(3):=parent_p3_value_;
54.1913 - parent_val_arr_(4):=parent_p4_value_;
54.1914 - parent_val_arr_(5):=parent_p5_value_;
54.1915 - parent_val_arr_(6):=parent_p6_value_;
54.1916 - parent_val_arr_(7):=parent_p7_value_;
54.1917 - parent_val_arr_(8):=parent_p8_value_;
54.1918 - parent_val_arr_(9):=parent_p9_value_;
54.1919 - parent_val_arr_(10):=parent_p10_value_;
54.1920 - parent_val_arr_(11):=parent_p11_value_;
54.1921 - parent_val_arr_(12):=parent_p12_value_;
54.1922 - --END IF;
54.1923 -
54.1924 - FOR temp_period_count_ IN 1..period_count_ LOOP
54.1925 - IF parent_val_arr_(temp_period_count_) IS NULL THEN
54.1926 - Error_SYS.Appl_General(lu_name_,'PERVAL1: One or more periods in parent scorecard :P1 does not contain input values.',scorecard_);
54.1927 - END IF;
54.1928 - END LOOP;
54.1929 -
54.1930 - child_count_:=Scorecard_API.Get_Child_Count(scorecard_,environment_);
54.1931 -
54.1932 - FOR child_scorecards_ IN get_child_scorecards LOOP -- fetch the child scorecards
54.1933 -
54.1934 - year_value_:=0;
54.1935 - child_scr_ := child_scorecards_.scorecard;
54.1936 - OPEN get_open_child_scr;
54.1937 - FETCH get_open_child_scr INTO temp_val_;
54.1938 - CLOSE get_open_child_scr;
54.1939 -
54.1940 - IF (temp_val_ = '1') THEN
54.1941 - Error_SYS.Appl_General(lu_name_,'TMPVAL: Not all scorecards in the hierarchy are opened for planning. Distribution not possible.');
54.1942 - END IF;
54.1943 -
54.1944 - IF NOT Check_Exist___(environment_,child_scorecards_.scorecard,year_,version_,scorecard_object_) THEN
54.1945 - Error_SYS.Appl_General(lu_name_,'INPVAL: Scorecard object :P1 does not exist in scorecard :P2.',scorecard_object_,child_scorecards_.scorecard);
54.1946 -
54.1947 - ELSE
54.1948 - oldrec_:=Lock_By_Keys___(environment_,child_scorecards_.scorecard,year_,version_,scorecard_object_);
54.1949 - child_val_arr_(1):=oldrec_.p1_value;
54.1950 - child_val_arr_(2):=oldrec_.p2_value;
54.1951 - child_val_arr_(3):=oldrec_.p3_value;
54.1952 - child_val_arr_(4):=oldrec_.p4_value;
54.1953 - child_val_arr_(5):=oldrec_.p5_value;
54.1954 - child_val_arr_(6):=oldrec_.p6_value;
54.1955 - child_val_arr_(7):=oldrec_.p7_value;
54.1956 - child_val_arr_(8):=oldrec_.p8_value;
54.1957 - child_val_arr_(9):=oldrec_.p9_value;
54.1958 - child_val_arr_(10):=oldrec_.p10_value;
54.1959 - child_val_arr_(11):=oldrec_.p11_value;
54.1960 - child_val_arr_(12):=oldrec_.p12_value;
54.1961 - newrec_:=oldrec_;
54.1962 - IF value_distribution_type_ = 'PERCENTAGE' THEN
54.1963 - IF hierachical_dist_logic_ IS NULL THEN
54.1964 - FOR temp_period_count_ IN 1..period_count_ LOOP
54.1965 - child_val_arr_(temp_period_count_):=parent_val_arr_(temp_period_count_);
54.1966 - year_value_:=year_value_ +child_val_arr_(temp_period_count_);
54.1967 - END LOOP;
54.1968 -
54.1969 - ELSIF hierachical_dist_logic_='VERSION' THEN
54.1970 - IF distribution_version_ IS NULL THEN
54.1971 - IF object_type_='MEASURE' THEN
54.1972 - Error_SYS.Appl_General(lu_name_,'DISTVER1: Distribution version must have a value for measure :P1 in parent scorecard :P2.',scorecard_object_,scorecard_);
54.1973 - ELSE
54.1974 - Error_SYS.Appl_General(lu_name_,'DISTVER2: Distribution version must have a value for component :P1 in parent scorecard :P2.',scorecard_object_,scorecard_);
54.1975 - END IF;
54.1976 - END IF;
54.1977 - Scorecard_Value_API.Get_Period_Values__ (period_val_arr_,child_scorecards_.scorecard,object_type_,
54.1978 - period_count_,environment_,scorecard_,year_,
54.1979 - distribution_version_,scorecard_object_);
54.1980 - FOR temp_period_count_ IN 1..period_count_ LOOP
54.1981 - child_val_arr_(temp_period_count_):=parent_val_arr_(temp_period_count_)
54.1982 - *(period_val_arr_(temp_period_count_).value
54.1983 - /(period_val_arr_(temp_period_count_).sum/child_count_));
54.1984 - year_value_:=year_value_ +child_val_arr_(temp_period_count_);
54.1985 - END LOOP;
54.1986 - ELSIF hierachical_dist_logic_='ATTRIBUTE' THEN
54.1987 - IF distribution_attribute_ IS NULL THEN
54.1988 - IF object_type_='MEASURE' THEN
54.1989 - Error_SYS.Appl_General(lu_name_,'DISTATTR1: Distribution attribute must have a value for measure :P1 in parent scorecard :P2.',scorecard_object_,scorecard_);
54.1990 - ELSE
54.1991 - Error_SYS.Appl_General(lu_name_,'DISTATTR2: Distribution attribute must have a value for component :P1 in parent scorecard :P2.',scorecard_object_,scorecard_);
54.1992 - END IF;
54.1993 - END IF;
54.1994 -
54.1995 - attribute_val_str_:=Scorecard_Attribute_API.Get_Value(environment_,child_scorecards_.scorecard,
54.1996 - distribution_attribute_);
54.1997 - IF attribute_val_str_ IS NULL THEN
54.1998 - Error_SYS.Appl_General(lu_name_,'ATTRERR: Attribute :P1 must have a value in scorecard :P2.',distribution_attribute_,child_scorecards_.scorecard);
54.1999 - ELSE
54.2000 - BEGIN
54.2001 - attribute_value_:=TO_NUMBER(attribute_val_str_);
54.2002 - EXCEPTION
54.2003 - WHEN OTHERS THEN
54.2004 - Error_SYS.Appl_General(lu_name_,'NUMVALERR: Value of the attribute :P1 in all child scorecards of parent scorecard :P2 must be numeric.',distribution_attribute_,scorecard_);
54.2005 - END;
54.2006 - END IF;
54.2007 - BEGIN
54.2008 - OPEN get_attribute_value_sum(distribution_attribute_);
54.2009 - FETCH get_attribute_value_sum INTO attribute_value_sum_;
54.2010 - CLOSE get_attribute_value_sum;
54.2011 -
54.2012 - IF attribute_value_sum_=0 THEN
54.2013 - Error_SYS.Appl_General(lu_name_,'ATTRSUM : Attribute value of at least one child scorecard of parent scorecard :P1 must be greater than 0.');
54.2014 - END IF;
54.2015 - EXCEPTION
54.2016 - WHEN OTHERS THEN
54.2017 - Error_SYS.Appl_General(lu_name_,'NUMVALERR: Value of the attribute :P1 in all child scorecards of parent scorecard :P2 must be numeric.',distribution_attribute_,scorecard_);
54.2018 - END;
54.2019 -
54.2020 - FOR temp_period_count_ IN 1..period_count_ LOOP
54.2021 - child_val_arr_(temp_period_count_):=parent_val_arr_(temp_period_count_)
54.2022 - *(attribute_value_/(attribute_value_sum_/child_count_));
54.2023 - year_value_:=year_value_ +child_val_arr_(temp_period_count_);
54.2024 - END LOOP;
54.2025 - END IF;
54.2026 - year_value_:=year_value_ /period_count_;
54.2027 - ELSIF value_distribution_type_ = 'VALUE' THEN
54.2028 - IF hierachical_dist_logic_ IS NULL THEN
54.2029 - FOR temp_period_count_ IN 1..period_count_ LOOP
54.2030 - child_val_arr_(temp_period_count_):=parent_val_arr_(temp_period_count_)/child_count_;
54.2031 - year_value_:=year_value_ +child_val_arr_(temp_period_count_);
54.2032 - END LOOP;
54.2033 - ELSIF hierachical_dist_logic_='VERSION' THEN
54.2034 - IF distribution_version_ IS NULL THEN
54.2035 - IF object_type_='MEASURE' THEN
54.2036 - Error_SYS.Appl_General(lu_name_,'DISTVER1: Distribution version must have a value for measure :P1 in parent scorecard :P2.',scorecard_object_,scorecard_);
54.2037 - ELSE
54.2038 - Error_SYS.Appl_General(lu_name_,'DISTVER2: Distribution version must have a value for component :P1 in parent scorecard :P2.',scorecard_object_,scorecard_);
54.2039 - END IF;
54.2040 - END IF;
54.2041 - Scorecard_Value_API.Get_Period_Values__ (period_val_arr_,child_scorecards_.scorecard,object_type_,
54.2042 - period_count_,environment_,scorecard_,year_,
54.2043 - distribution_version_,scorecard_object_);
54.2044 - FOR temp_period_count_ IN 1..period_count_ LOOP
54.2045 - child_val_arr_(temp_period_count_):=parent_val_arr_(temp_period_count_)
54.2046 - *(period_val_arr_(temp_period_count_).value
54.2047 - /period_val_arr_(temp_period_count_).sum);
54.2048 - year_value_:=year_value_ +child_val_arr_(temp_period_count_);
54.2049 - END LOOP;
54.2050 - ELSIF hierachical_dist_logic_='ATTRIBUTE' THEN
54.2051 - IF distribution_attribute_ IS NULL THEN
54.2052 - IF object_type_='MEASURE' THEN
54.2053 - Error_SYS.Appl_General(lu_name_,'DISTATTR1: Distribution attribute must have a value for measure :P1 in parent scorecard :P2.',scorecard_object_,scorecard_);
54.2054 - ELSE
54.2055 - Error_SYS.Appl_General(lu_name_,'DISTATTR2: Distribution attribute must have a value for component :P1 in parent scorecard :P2.',scorecard_object_,scorecard_);
54.2056 - END IF;
54.2057 - END IF;
54.2058 - attribute_val_str_:=Scorecard_Attribute_API.Get_Value(environment_,child_scorecards_.scorecard,
54.2059 - distribution_attribute_);
54.2060 - IF attribute_val_str_ IS NULL THEN
54.2061 - Error_SYS.Appl_General(lu_name_,'ATTRERR: Attribute :P1 must have a value in scorecard :P2.',distribution_attribute_,child_scorecards_.scorecard);
54.2062 - ELSE
54.2063 - BEGIN
54.2064 - attribute_value_:=TO_NUMBER(attribute_val_str_);
54.2065 - EXCEPTION
54.2066 - WHEN OTHERS THEN
54.2067 - Error_SYS.Appl_General(lu_name_,'NUMVALERR: Value of the attribute :P1 in all child scorecards of parent scorecard :P2 must be numeric.',distribution_attribute_,scorecard_);
54.2068 - END;
54.2069 - END IF;
54.2070 - BEGIN
54.2071 - OPEN get_attribute_value_sum(distribution_attribute_);
54.2072 - FETCH get_attribute_value_sum INTO attribute_value_sum_;
54.2073 - CLOSE get_attribute_value_sum;
54.2074 -
54.2075 - IF attribute_value_sum_=0 THEN
54.2076 - Error_SYS.Appl_General(lu_name_,'ATTRSUM : Attribute value of at least one child scorecard of parent scorecard :P1 must be greater than 0.');
54.2077 - END IF;
54.2078 - EXCEPTION
54.2079 - WHEN OTHERS THEN
54.2080 - Error_SYS.Appl_General(lu_name_,'NUMVALERR: Value of the attribute :P1 in all child scorecards of parent scorecard :P2 must be numeric.',distribution_attribute_,scorecard_);
54.2081 - END;
54.2082 -
54.2083 - FOR temp_period_count_ IN 1..period_count_ LOOP
54.2084 - child_val_arr_(temp_period_count_):=parent_val_arr_(temp_period_count_)
54.2085 - *(attribute_value_/attribute_value_sum_);
54.2086 - year_value_:=year_value_ +child_val_arr_(temp_period_count_);
54.2087 - END LOOP;
54.2088 - END IF;
54.2089 - END IF;
54.2090 - newrec_.year_value:=year_value_;
54.2091 - newrec_.p1_value:=child_val_arr_(1);
54.2092 - newrec_.p2_value:=child_val_arr_(2);
54.2093 - newrec_.p3_value:=child_val_arr_(3);
54.2094 - newrec_.p4_value:=child_val_arr_(4);
54.2095 - newrec_.p5_value:=child_val_arr_(5);
54.2096 - newrec_.p6_value:=child_val_arr_(6);
54.2097 - newrec_.p7_value:=child_val_arr_(7);
54.2098 - newrec_.p8_value:=child_val_arr_(8);
54.2099 - newrec_.p9_value:=child_val_arr_(9);
54.2100 - newrec_.p10_value:=child_val_arr_(10);
54.2101 - newrec_.p11_value:=child_val_arr_(11);
54.2102 - newrec_.p12_value:=child_val_arr_(12);
54.2103 - Update___(objid_,oldrec_,newrec_,attr_,objversion_,TRUE);
54.2104 - Scorecard_api.Set_To_Planned(environment_,child_scorecards_.scorecard);
54.2105 - Scorecard_Input_Value_api.Set_To_Planned(environment_,child_scorecards_.scorecard,year_,version_,scorecard_object_);
54.2106 - END IF;
54.2107 - END LOOP;
54.2108 -END Distribute_Input_Values___;
54.2109 -PROCEDURE Object_Planned_Date___ (
54.2110 - rec_ IN &TABLE%ROWTYPE,
54.2111 - attr_ IN OUT VARCHAR2 )
54.2112 -IS
54.2113 - newrec_ &TABLE%ROWTYPE;
54.2114 -BEGIN
54.2115 - newrec_ := rec_;
54.2116 - Finite_State_Set___(newrec_, 'Planned');
54.2117 -END Object_Planned_Date___;
54.2118 -
54.2119 -FUNCTION Find_Column___(
54.2120 - environment_ IN VARCHAR2,
54.2121 - scorecard_ IN VARCHAR2,
54.2122 - year_ IN VARCHAR2,
54.2123 - version_ IN VARCHAR2,
54.2124 - scorecard_object_ IN VARCHAR2,
54.2125 - key_ IN VARCHAR2) RETURN VARCHAR2
54.2126 -IS
54.2127 - CURSOR get_record IS
54.2128 - SELECT p1_key, p2_key, p3_key, p4_key, p5_key, p6_key,
54.2129 - p7_key, p8_key, p9_key, p10_key, p11_key, p12_key
54.2130 - FROM &TABLE
54.2131 - WHERE environment = environment_
54.2132 - AND scorecard = scorecard_
54.2133 - AND year = year_
54.2134 - AND version = version_
54.2135 - AND scorecard_object = scorecard_object_;
54.2136 -
54.2137 - column_ VARCHAR2(30);
54.2138 -BEGIN
54.2139 - FOR rec_ IN get_record LOOP
54.2140 - IF (rec_.p1_key = key_) THEN
54.2141 - column_ := 'P1_VALUE';
54.2142 - ELSIF (rec_.p2_key = key_) THEN
54.2143 - column_ := 'P2_VALUE';
54.2144 - ELSIF (rec_.p3_key = key_) THEN
54.2145 - column_ := 'P3_VALUE';
54.2146 - ELSIF (rec_.p4_key = key_) THEN
54.2147 - column_ := 'P4_VALUE';
54.2148 - ELSIF (rec_.p5_key = key_) THEN
54.2149 - column_ := 'P5_VALUE';
54.2150 - ELSIF (rec_.p6_key = key_) THEN
54.2151 - column_ := 'P6_VALUE';
54.2152 - ELSIF (rec_.p7_key = key_) THEN
54.2153 - column_ := 'P7_VALUE';
54.2154 - ELSIF (rec_.p8_key = key_) THEN
54.2155 - column_ := 'P8_VALUE';
54.2156 - ELSIF (rec_.p9_key = key_) THEN
54.2157 - column_ := 'P9_VALUE';
54.2158 - ELSIF (rec_.p10_key = key_) THEN
54.2159 - column_ := 'P10_VALUE';
54.2160 - ELSIF (rec_.p11_key = key_) THEN
54.2161 - column_ := 'P11_VALUE';
54.2162 - ELSIF (rec_.p12_key = key_) THEN
54.2163 - column_ := 'P12_VALUE';
54.2164 - END IF;
54.2165 - END LOOP;
54.2166 -
54.2167 - RETURN column_;
54.2168 -END Find_Column___;
54.2169 ------------------------------------------------------------------------------
54.2170 --------------------- LU SPECIFIC PRIVATE METHODS ----------------------------
54.2171 ------------------------------------------------------------------------------
54.2172 -
54.2173 -
54.2174 -PROCEDURE Update_Versions__ (
54.2175 - environment_ IN VARCHAR2,
54.2176 - scorecard_ IN VARCHAR2,
54.2177 - measure_ IN VARCHAR2,
54.2178 - object_type_ IN VARCHAR2,
54.2179 - period_ IN VARCHAR2,
54.2180 - version_ IN VARCHAR2,
54.2181 - version_value_ IN NUMBER,
54.2182 - plan_type_ IN VARCHAR2,
54.2183 - data_mart_ IN VARCHAR2 )
54.2184 -IS
54.2185 - attr_ VARCHAR2(32000);
54.2186 - objid_ VARCHAR2(2000);
54.2187 - objversion_ VARCHAR2(2000);
54.2188 - info_ VARCHAR2(2000);
54.2189 -BEGIN
54.2190 - General_SYS.Init_Method(lu_name_, '&PKG', 'Update_Versions__');
54.2191 - Client_SYS.Clear_Attr(attr_);
54.2192 - IF version_ = 'TAR' THEN
54.2193 - Client_SYS.Add_To_Attr('TARGET_VALUE', version_value_, attr_);
54.2194 - ELSIF version_ = 'ACT' THEN
54.2195 - Client_SYS.Add_To_Attr('ACTUAL_VALUE', version_value_, attr_);
54.2196 - ELSE
54.2197 - Client_SYS.Add_To_Attr(version_||'_VALUE', version_value_, attr_);
54.2198 - END IF;
54.2199 - IF data_mart_='TRUE' THEN
54.2200 - Bp_Scorecard_Fact_API.Get_Id_Version(objid_,objversion_,environment_,scorecard_,period_,object_type_,measure_);
54.2201 - Bp_Scorecard_Fact_API.Modify__(info_,objid_,objversion_,attr_,'DO');
54.2202 - ELSE
54.2203 - Scorecard_Value_API.Get_Id_Version(objid_,objversion_,environment_,scorecard_,period_,object_type_,measure_);
54.2204 - Scorecard_Value_API.Modify__(info_,objid_,objversion_,attr_,'DO');
54.2205 - END IF;
54.2206 -END Update_Versions__;
54.2207 -
54.2208 -PROCEDURE Publish__ (
54.2209 - environment_ IN VARCHAR2,
54.2210 - scorecard_ IN VARCHAR2,
54.2211 - measure_ IN VARCHAR2,
54.2212 - object_type_ IN VARCHAR2,
54.2213 - period_ IN VARCHAR2,
54.2214 - version_ IN VARCHAR2,
54.2215 - value_ IN NUMBER,
54.2216 - plan_type_ IN VARCHAR2 )
54.2217 -IS
54.2218 - attr_ VARCHAR2(32000);
54.2219 - objid_ VARCHAR2(2000);
54.2220 - objversion_ VARCHAR2(2000);
54.2221 - info_ VARCHAR2(2000);
54.2222 - flag_ VARCHAR2(5);
54.2223 - data_mart_enabled_ VARCHAR2(5);
54.2224 -BEGIN
54.2225 - General_SYS.Init_Method(lu_name_, '&PKG', 'Publish__');
54.2226 - flag_ := 'TRUE';
54.2227 - data_mart_enabled_:= Scorecard_Environment_API.Get_Data_Mart(environment_);
54.2228 -
54.2229 - IF data_mart_enabled_='TRUE' THEN
54.2230 - IF Bp_Scorecard_Fact_API.Check_Exist_By_Object(environment_,scorecard_,period_,object_type_,measure_)='FALSE' THEN
54.2231 - IF value_ IS NOT NULL THEN
54.2232 - Client_SYS.Clear_Attr(attr_);
54.2233 - Client_SYS.Add_To_Attr('ENVIRONMENT', environment_, attr_);
54.2234 - Client_SYS.Add_To_Attr('SCORECARD', scorecard_, attr_);
54.2235 - Client_SYS.Add_To_Attr('PERIOD', period_, attr_);
54.2236 - Client_SYS.Add_To_Attr(object_type_, measure_, attr_);
54.2237 - Bp_Scorecard_Fact_API.New__(info_,objid_,objversion_,attr_,'DO');
54.2238 - ELSE
54.2239 - flag_ := 'FALSE';
54.2240 - END IF;
54.2241 - END IF;
54.2242 - ELSE
54.2243 - IF Scorecard_Value_API.Check_Exist_By_Object(environment_,scorecard_,period_,object_type_,measure_)='FALSE' THEN
54.2244 - IF value_ IS NOT NULL THEN
54.2245 - Client_SYS.Clear_Attr(attr_);
54.2246 - Client_SYS.Add_To_Attr('ENVIRONMENT', environment_, attr_);
54.2247 - Client_SYS.Add_To_Attr('SCORECARD', scorecard_, attr_);
54.2248 - Client_SYS.Add_To_Attr('PERIOD', period_, attr_);
54.2249 - Client_SYS.Add_To_Attr(object_type_, measure_, attr_);
54.2250 - Scorecard_Value_API.New__(info_,objid_,objversion_,attr_,'DO');
54.2251 - ELSE
54.2252 - flag_ := 'FALSE';
54.2253 - END IF;
54.2254 - END IF;
54.2255 - END IF;
54.2256 -
54.2257 - IF (flag_ = 'TRUE' AND value_ IS NOT NULL) THEN
54.2258 - Update_Versions__(environment_,scorecard_,measure_ ,object_type_, period_ , version_, value_ , plan_type_ ,data_mart_enabled_);
54.2259 - END IF;
54.2260 - flag_ := 'FALSE';
54.2261 -END Publish__;
54.2262 -PROCEDURE Publish_Score__ (
54.2263 - environment_ IN VARCHAR2,
54.2264 - scorecard_ IN VARCHAR2,
54.2265 - publish_type_ IN VARCHAR2 )
54.2266 -IS
54.2267 - measure_ VARCHAR2(40);
54.2268 - version_ VARCHAR2(15);
54.2269 - target_tab_ VARCHAR2(30);
54.2270 -
54.2271 - --get measures and components for a specific environment_, scorecard_
54.2272 - CURSOR get_measure IS
54.2273 - select * from scorecard_input_value_tab
54.2274 - where scorecard = scorecard_
54.2275 - and environment = environment_
54.2276 - order by scorecard_object;
54.2277 -
54.2278 - -- get Id, version of a scorecard record by keys
54.2279 - CURSOR get_objid IS
54.2280 - select objid,objversion from scorecard
54.2281 - where scorecard = scorecard_
54.2282 - and environment = environment_;
54.2283 -
54.2284 - attr_ VARCHAR2(32000);
54.2285 - objid_ VARCHAR2(32000);
54.2286 - objversion_ VARCHAR2(32000);
54.2287 - info_ VARCHAR2(2000);
54.2288 - isScorecardPlan VARCHAR2(5);
54.2289 - isEnvPlan VARCHAR2(5);
54.2290 -BEGIN
54.2291 - General_SYS.Init_Method(lu_name_, '&PKG', 'Publish_Score__');
54.2292 - FOR get_rec_ in get_measure LOOP
54.2293 - isEnvPlan := 'FALSE';
54.2294 - isScorecardPlan := 'FALSE';
54.2295 -
54.2296 - measure_ := get_rec_.scorecard_object;
54.2297 - version_ := get_rec_.version;
54.2298 - if publish_type_ = 'ENV' then --plublish only environment plan data
54.2299 - isEnvPlan := MEASURE_VERSION_API.GET_ENVIRONMENT_PLANNING(version_,environment_);
54.2300 - else
54.2301 - isScorecardPlan := MEASURE_VERSION_API.Get_Scorecard_Planning (version_,environment_);
54.2302 - end if;
54.2303 -
54.2304 - if (isScorecardPlan = 'TRUE' or isEnvPlan = 'TRUE' ) then
54.2305 -
54.2306 - if get_rec_.p1_key is not null then
54.2307 - Publish__(environment_, scorecard_,measure_, get_rec_.object_type, get_rec_.p1_key, version_ , get_rec_.p1_value,publish_type_);
54.2308 - end if;
54.2309 - if get_rec_.p2_key is not null then
54.2310 - Publish__(environment_, scorecard_,measure_, get_rec_.object_type ,get_rec_.p2_key, version_ , get_rec_.p2_value,publish_type_);
54.2311 - end if;
54.2312 - if get_rec_.p3_key is not null then
54.2313 - Publish__(environment_, scorecard_,measure_, get_rec_.object_type ,get_rec_.p3_key, version_ , get_rec_.p3_value,publish_type_);
54.2314 - end if;
54.2315 - if get_rec_.p4_key is not null then
54.2316 - Publish__(environment_, scorecard_,measure_, get_rec_.object_type, get_rec_.p4_key, version_ , get_rec_.p4_value,publish_type_);
54.2317 - end if;
54.2318 - if get_rec_.p5_key is not null then
54.2319 - Publish__(environment_, scorecard_,measure_, get_rec_.object_type, get_rec_.p5_key, version_ , get_rec_.p5_value,publish_type_);
54.2320 - end if;
54.2321 - if get_rec_.p6_key is not null then
54.2322 - Publish__(environment_, scorecard_,measure_, get_rec_.object_type , get_rec_.p6_key, version_ , get_rec_.p6_value,publish_type_);
54.2323 - end if;
54.2324 - if get_rec_.p7_key is not null then
54.2325 - Publish__(environment_, scorecard_,measure_, get_rec_.object_type , get_rec_.p7_key, version_ , get_rec_.p7_value,publish_type_);
54.2326 - end if;
54.2327 - if get_rec_.p8_key is not null then
54.2328 - Publish__(environment_, scorecard_,measure_, get_rec_.object_type, get_rec_.p8_key, version_ , get_rec_.p8_value,publish_type_);
54.2329 - end if;
54.2330 - if get_rec_.p9_key is not null then
54.2331 - Publish__(environment_, scorecard_,measure_, get_rec_.object_type , get_rec_.p9_key, version_ , get_rec_.p9_value,publish_type_);
54.2332 - end if;
54.2333 - if get_rec_.p10_key is not null then
54.2334 - Publish__(environment_, scorecard_,measure_, get_rec_.object_type , get_rec_.p10_key, version_ , get_rec_.p10_value,publish_type_);
54.2335 - end if;
54.2336 - -- Call Id - 85775 Fix
54.2337 - if get_rec_.p11_key is not null then
54.2338 - Publish__(environment_, scorecard_,measure_, get_rec_.object_type , get_rec_.p11_key, version_ , get_rec_.p11_value,publish_type_);
54.2339 - end if;
54.2340 - if get_rec_.p12_key is not null then
54.2341 - Publish__(environment_, scorecard_,measure_, get_rec_.object_type , get_rec_.p12_key, version_ , get_rec_.p12_value,publish_type_);
54.2342 - end if;
54.2343 - end if;
54.2344 - END LOOP;
54.2345 - open get_objid;
54.2346 - fetch get_objid into objid_,objversion_;
54.2347 - close get_objid;
54.2348 -
54.2349 - SCORECARD_API.MODIFY__(info_,objid_,objversion_,attr_,'DO');
54.2350 -
54.2351 - isScorecardPlan := 'FALSE';
54.2352 -END Publish_Score__;
54.2353 -PROCEDURE Start_Publish_Environments__ (
54.2354 - attr_ IN VARCHAR2 )
54.2355 -IS
54.2356 - new_attr_ VARCHAR2(32000) := attr_;
54.2357 - desc_ VARCHAR2(2000);
54.2358 -BEGIN
54.2359 - General_SYS.Init_Method(lu_name_, '&PKG', 'Start_Publish_Environments__');
54.2360 - desc_ := Language_SYS.Translate_Constant (lu_name_, 'BGJOB_INPUTSSC:Publish Environment.');
54.2361 - Transaction_SYS.Deferred_Call ('Scorecard_Input_Value_API.Set_Publish_Environments__',new_attr_, desc_);
54.2362 -END Start_Publish_Environments__;
54.2363 -PROCEDURE Set_Publish_Environments__ (
54.2364 - attr_ IN VARCHAR2 )
54.2365 -IS
54.2366 - env VARCHAR2(20);
54.2367 -
54.2368 -BEGIN
54.2369 - General_SYS.Init_Method(lu_name_, '&PKG', 'Set_Publish_Environments__');
54.2370 - env:=Client_SYS.Get_Item_Value('ENVIRONMENT',attr_);
54.2371 - Publish_Environment(env);
54.2372 -
54.2373 -END Set_Publish_Environments__;
54.2374 -PROCEDURE Start_Publish_Scorecards__ (
54.2375 - attr_ IN VARCHAR2 )
54.2376 -IS
54.2377 - new_attr_ VARCHAR2(32000) := attr_;
54.2378 - desc_ VARCHAR2(2000);
54.2379 -BEGIN
54.2380 - General_SYS.Init_Method(lu_name_, '&PKG', 'Start_Publish_Scorecards__');
54.2381 - desc_ := Language_SYS.Translate_Constant (lu_name_, 'BGJOB_INPUTSSC:Publish Scorecards.');
54.2382 - Transaction_SYS.Deferred_Call ('Scorecard_Input_Value_API.Prepare_Scorecard_Publish__',new_attr_, desc_);
54.2383 -END Start_Publish_Scorecards__;
54.2384 -PROCEDURE Prepare_Scorecard_Publish__ (
54.2385 - attr_ IN VARCHAR2 )
54.2386 -IS
54.2387 - env_ VARCHAR2(2000);
54.2388 - scr_ VARCHAR2(2000);
54.2389 -BEGIN
54.2390 - General_SYS.Init_Method(lu_name_, '&PKG', 'Prepare_Scorecard_Publish__');
54.2391 - env_:=Client_SYS.Get_Item_Value('ENVIRONMENT',attr_);
54.2392 - scr_:=Client_SYS.Get_Item_Value('SCORECARD',attr_);
54.2393 - Set_Publish_Scorecards(env_,scr_);
54.2394 -END Prepare_Scorecard_Publish__;
54.2395 -PROCEDURE Plan__ (
54.2396 - info_ OUT VARCHAR2,
54.2397 - objid_ IN VARCHAR2,
54.2398 - objversion_ IN OUT VARCHAR2,
54.2399 - attr_ IN OUT VARCHAR2,
54.2400 - action_ IN VARCHAR2 )
54.2401 -IS
54.2402 - rec_ &TABLE%ROWTYPE;
54.2403 -BEGIN
54.2404 - General_SYS.Init_Method(lu_name_, '&PKG', 'Plan__');
54.2405 - IF (action_ = 'CHECK') THEN
54.2406 - NULL;
54.2407 - ELSIF (action_ = 'DO') THEN
54.2408 - rec_ := Lock_By_Id___(objid_, objversion_);
54.2409 - Finite_State_Machine___(rec_, 'Plan', attr_);
54.2410 - objversion_ := to_char(rec_.rowversion,'YYYYMMDDHH24MISS');
54.2411 - Finite_State_Add_To_Attr___(rec_, attr_);
54.2412 - END IF;
54.2413 - info_ := Client_SYS.Get_All_Info;
54.2414 -END Plan__;
54.2415 ------------------------------------------------------------------------------
54.2416 --------------------- LU SPECIFIC PROTECTED METHODS --------------------------
54.2417 ------------------------------------------------------------------------------
54.2418 -
54.2419 -
54.2420 ------------------------------------------------------------------------------
54.2421 --------------------- LU SPECIFIC PUBLIC METHODS -----------------------------
54.2422 ------------------------------------------------------------------------------
54.2423 -
54.2424 -
54.2425 -FUNCTION Get_Year (
54.2426 - environment_ IN VARCHAR2,
54.2427 - scorecard_ IN VARCHAR2,
54.2428 - year_ IN VARCHAR2,
54.2429 - version_ IN VARCHAR2,
54.2430 - scorecard_object_ IN VARCHAR2 ) RETURN VARCHAR2
54.2431 -IS
54.2432 - temp_ &TABLE..year%TYPE;
54.2433 - CURSOR get_attr IS
54.2434 - SELECT year
54.2435 - FROM &TABLE
54.2436 - WHERE environment = environment_
54.2437 - AND scorecard = scorecard_
54.2438 - AND year = year_
54.2439 - AND version = version_
54.2440 - AND scorecard_object = scorecard_object_;
54.2441 -BEGIN
54.2442 - OPEN get_attr;
54.2443 - FETCH get_attr INTO temp_;
54.2444 - CLOSE get_attr;
54.2445 - RETURN temp_;
54.2446 -END Get_Year;
54.2447 -FUNCTION Get_Distributed_Attr (
54.2448 - environment_ IN VARCHAR2,
54.2449 - scorecard_ IN VARCHAR2,
54.2450 - component_ IN VARCHAR2,
54.2451 - year_ IN VARCHAR2,
54.2452 - year_value_ IN NUMBER ) RETURN VARCHAR2
54.2453 -IS
54.2454 - period_ VARCHAR2(20);
54.2455 - version_val_ NUMBER;
54.2456 - distribute_string_ VARCHAR2(2000);
54.2457 - index_value_ NUMBER;
54.2458 - distribute_val_ NUMBER;
54.2459 - total_val_ NUMBER;
54.2460 - --distribute_str_ VARCHAR2(20);
54.2461 -
54.2462 - CURSOR version_cur_ IS
54.2463 - SELECT period,v4_value
54.2464 - FROM scorecard_value11
54.2465 - WHERE environment = environment_
54.2466 - AND scorecard = scorecard_
54.2467 - AND component = component_
54.2468 - AND year = year_;
54.2469 -
54.2470 - CURSOR total_cur_ IS
54.2471 - SELECT sum(v4_value)
54.2472 - FROM scorecard_value11
54.2473 - WHERE environment = environment_
54.2474 - AND scorecard = scorecard_
54.2475 - AND component = component_
54.2476 - AND year = year_;
54.2477 -BEGIN
54.2478 - General_SYS.Init_Method(lu_name_, '&PKG', 'Get_Distributed_Attr');
54.2479 - OPEN total_cur_;
54.2480 - FETCH total_cur_ INTO total_val_;
54.2481 - CLOSE total_cur_;
54.2482 - IF total_val_ IS NULL THEN
54.2483 - Error_SYS.Appl_General(lu_name_,'SCDISVAL : There are no values for version6');
54.2484 - END IF;
54.2485 -
54.2486 - --distribute_string_ := "";
54.2487 -
54.2488 - FOR temp_ IN version_cur_ LOOP
54.2489 -
54.2490 - version_val_ := temp_.v4_value;
54.2491 - period_ := temp_.period;
54.2492 - index_value_ := scorecard_index_api.Get_Value(environment_,period_,'k_index');
54.2493 - distribute_val_ := (version_val_/total_val_)*year_value_*index_value_;
54.2494 - distribute_string_ := distribute_string_ || '^' ||distribute_val_;
54.2495 -
54.2496 - END LOOP;
54.2497 - RETURN distribute_string_;
54.2498 -END Get_Distributed_Attr;
54.2499 -FUNCTION Get_Action (
54.2500 - environment_ IN VARCHAR2,
54.2501 - scorecard_ IN VARCHAR2,
54.2502 - year_ IN VARCHAR2,
54.2503 - version_ IN VARCHAR2,
54.2504 - scorecard_object_ IN VARCHAR2 ) RETURN VARCHAR2
54.2505 -IS
54.2506 - temp_ &TABLE..action%TYPE;
54.2507 - CURSOR get_attr IS
54.2508 - SELECT action
54.2509 - FROM &TABLE
54.2510 - WHERE environment = environment_
54.2511 - AND scorecard = scorecard_
54.2512 - AND year = year_
54.2513 - AND version = version_
54.2514 - AND scorecard_object = scorecard_object_;
54.2515 -BEGIN
54.2516 - OPEN get_attr;
54.2517 - FETCH get_attr INTO temp_;
54.2518 - CLOSE get_attr;
54.2519 - RETURN temp_;
54.2520 -END Get_Action;
54.2521 -FUNCTION Get_Mea_State_Change_Date (
54.2522 - environment_ IN VARCHAR2,
54.2523 - scorecard_ IN VARCHAR2,
54.2524 - year_ IN VARCHAR2,
54.2525 - version_ IN VARCHAR2,
54.2526 - scorecard_object_ IN VARCHAR2 ) RETURN DATE
54.2527 -IS
54.2528 - temp_ &TABLE..mea_state_change_date%TYPE;
54.2529 - CURSOR get_attr IS
54.2530 - SELECT mea_state_change_date
54.2531 - FROM &TABLE
54.2532 - WHERE environment = environment_
54.2533 - AND scorecard = scorecard_
54.2534 - AND year = year_
54.2535 - AND version = version_
54.2536 - AND scorecard_object = scorecard_object_;
54.2537 -BEGIN
54.2538 - OPEN get_attr;
54.2539 - FETCH get_attr INTO temp_;
54.2540 - CLOSE get_attr;
54.2541 - RETURN temp_;
54.2542 -END Get_Mea_State_Change_Date;
54.2543 -FUNCTION Get_Budget_Version (
54.2544 - environment_ IN VARCHAR2,
54.2545 - scorecard_ IN VARCHAR2,
54.2546 - year_ IN VARCHAR2,
54.2547 - version_ IN VARCHAR2,
54.2548 - scorecard_object_ IN VARCHAR2 ) RETURN VARCHAR2
54.2549 -IS
54.2550 - temp_ &TABLE..budget_version%TYPE;
54.2551 - CURSOR get_attr IS
54.2552 - SELECT budget_version
54.2553 - FROM &TABLE
54.2554 - WHERE environment = environment_
54.2555 - AND scorecard = scorecard_
54.2556 - AND year = year_
54.2557 - AND version = version_
54.2558 - AND scorecard_object = scorecard_object_;
54.2559 -BEGIN
54.2560 - OPEN get_attr;
54.2561 - FETCH get_attr INTO temp_;
54.2562 - CLOSE get_attr;
54.2563 - RETURN temp_;
54.2564 -END Get_Budget_Version;
54.2565 -PROCEDURE Update_Sales_Values (
54.2566 - environment_ IN VARCHAR2,
54.2567 - scorecard_ IN VARCHAR2,
54.2568 - year_ IN VARCHAR2,
54.2569 - version_ IN VARCHAR2,
54.2570 - component_ IN VARCHAR2,
54.2571 - year_value_ IN NUMBER,
54.2572 - period_count_ IN NUMBER,
54.2573 - from_where_ IN VARCHAR2,
54.2574 - action_value_ IN VARCHAR2 )
54.2575 -IS
54.2576 - period_ VARCHAR2(20);
54.2577 - version_val_ NUMBER;
54.2578 - distribute_string_ VARCHAR2(2000);
54.2579 - index_value_ NUMBER;
54.2580 - distribute_val_ NUMBER;
54.2581 - total_val_ NUMBER;
54.2582 - total_dist_val_ NUMBER;
54.2583 - avarage_val_ NUMBER;
54.2584 - count_null_ NUMBER;
54.2585 - total_index_ NUMBER;
54.2586 - period_index_ VARCHAR2(20);
54.2587 - avarage_index_val_ NUMBER;
54.2588 - distribute_index_val_ NUMBER;
54.2589 - index_val_ NUMBER;
54.2590 -
54.2591 - count_ NUMBER;
54.2592 - dist_type_ VARCHAR2(30);
54.2593 - dist_index_ VARCHAR2(20);
54.2594 - dist_version_ VARCHAR2(20);
54.2595 - dist_ver_ VARCHAR2(10);
54.2596 - dist_logic_ VARCHAR2(10);
54.2597 - temp1_ VARCHAR2(1000);
54.2598 - temp2_ VARCHAR2(1000);
54.2599 -
54.2600 - TYPE RefCurTyp IS REF CURSOR;
54.2601 -
54.2602 - version_cur_ RefCurTyp;
54.2603 - total_cur_ RefCurTyp;
54.2604 -
54.2605 - TYPE Val_Array_Type IS TABLE OF NUMBER
54.2606 - INDEX BY BINARY_INTEGER;
54.2607 -
54.2608 - val_arr_ Val_Array_Type;
54.2609 - rec_ SCORECARD_INPUT_VALUE_TAB%ROWTYPE;
54.2610 -
54.2611 - CURSOR total_index_cur_ IS
54.2612 - SELECT SUM(value)
54.2613 - FROM scorecard_index_tab
54.2614 - WHERE environment = environment_
54.2615 - AND index_type = dist_index_;
54.2616 -
54.2617 - CURSOR get_period IS
54.2618 - SELECT period
54.2619 - FROM scorecard_period_tab
54.2620 - WHERE environment = environment_
54.2621 - AND year = year_
54.2622 - ORDER BY end_date;
54.2623 -
54.2624 - -- Bug 65540, begin
54.2625 - final_year_value_ NUMBER;
54.2626 - measure_format_ NUMBER;
54.2627 - -- Bug 65540, end
54.2628 -
54.2629 -
54.2630 -BEGIN
54.2631 - General_SYS.Init_Method(lu_name_, '&PKG', 'Update_Sales_Values');
54.2632 - rec_ := Lock_By_Keys___(environment_,scorecard_,year_,version_,component_);
54.2633 - count_ := 0;
54.2634 - --val_arr_ Val_Array_Type;
54.2635 -
54.2636 - IF (from_where_ = 'FROM_COMPONENT') THEN
54.2637 -
54.2638 - dist_type_ := measure_type_api.Encode(scorecard_Measure_api.Get_Measure_type(component_));
54.2639 - dist_index_ := scorecard_Structure_api.Get_Distribution_Index(scorecard_,component_,environment_,Scorecard_Level_Type_api.Decode('COMPONENT'));
54.2640 - dist_ver_ := UPPER(scorecard_Structure_api.Get_Distribution_Version(scorecard_,component_,environment_,Scorecard_Level_Type_api.Decode('COMPONENT')));
54.2641 - dist_logic_ := scorecard_Structure_api.Get_Dist_Logic_Db(scorecard_,component_,environment_,'COMPONENT');
54.2642 -
54.2643 - END IF;
54.2644 -
54.2645 - IF (from_where_ = 'FROM_MEASURE') THEN
54.2646 -
54.2647 - dist_type_ := measure_type_api.Encode(scorecard_Measure_api.Get_Measure_type(component_));
54.2648 - dist_index_ := scorecard_Structure_api.Get_Distribution_Index(scorecard_,component_,environment_,Scorecard_Level_Type_api.Decode('MEASURE'));
54.2649 - dist_ver_ := UPPER(scorecard_Structure_api.Get_Distribution_Version(scorecard_,component_,environment_,Scorecard_Level_Type_api.Decode('MEASURE')));
54.2650 - dist_logic_ := scorecard_Structure_api.Get_Dist_Logic_Db(scorecard_,component_,environment_,'MEASURE');
54.2651 -
54.2652 - END IF;
54.2653 -
54.2654 - IF (dist_logic_ = 'INDEX') THEN
54.2655 -
54.2656 - OPEN total_index_cur_;
54.2657 - FETCH total_index_cur_ INTO total_index_;
54.2658 - CLOSE total_index_cur_;
54.2659 -
54.2660 - IF (total_index_ IS NULL) THEN
54.2661 - Error_SYS.Appl_General(lu_name_,'SCDISVAL : There are no values for indexes :P1',dist_index_);
54.2662 - END IF;
54.2663 -
54.2664 - total_dist_val_ := 0;
54.2665 - avarage_index_val_ := 0;
54.2666 - distribute_index_val_ := 0;
54.2667 -
54.2668 - OPEN get_period;
54.2669 - LOOP
54.2670 - FETCH get_period INTO period_index_;
54.2671 - EXIT WHEN get_period%NOTFOUND;
54.2672 - count_ := count_+1;
54.2673 - index_value_ := scorecard_index_api.Get_Value(environment_,period_index_,dist_index_);
54.2674 - IF (index_value_ IS NULL) THEN
54.2675 - CLOSE get_period;
54.2676 - Error_SYS.Appl_General(lu_name_,'SCDISNOINDEXVAL1 : There are no values for index :P1',dist_index_);
54.2677 - END IF;
54.2678 - IF (dist_type_ = 'PERCENTAGE') THEN
54.2679 - avarage_index_val_ := total_index_/period_count_;
54.2680 - distribute_index_val_ := (index_value_/avarage_index_val_)*year_value_;
54.2681 - ELSIF (dist_type_ = 'VALUE') THEN
54.2682 - distribute_index_val_ := (index_value_/total_index_)*year_value_;
54.2683 - END IF;
54.2684 - val_arr_(count_) := distribute_index_val_;
54.2685 - total_dist_val_ := total_dist_val_ + distribute_index_val_;
54.2686 - END LOOP;
54.2687 - CLOSE get_period;
54.2688 - ELSIF (dist_logic_ != 'INDEX') THEN
54.2689 - IF (dist_ver_ = 'ACT') THEN
54.2690 - dist_version_ := 'actual_value';
54.2691 - ELSIF (dist_ver_ = 'TAR') THEN
54.2692 - dist_version_ := 'target_value';
54.2693 - ELSIF (dist_ver_ = 'V1') THEN
54.2694 - dist_version_ := 'v1_value';
54.2695 - ELSIF (dist_ver_ = 'V2') THEN
54.2696 - dist_version_ := 'v2_value';
54.2697 - ELSIF (dist_ver_ = 'V3') THEN
54.2698 - dist_version_ := 'v3_value';
54.2699 - ELSIF (dist_ver_ = 'V4') THEN
54.2700 - dist_version_ := 'v4_value';
54.2701 - ELSIF (dist_ver_ = 'V5') THEN
54.2702 - dist_version_ := 'v5_value';
54.2703 - ELSIF (dist_ver_ = 'V6') THEN
54.2704 - dist_version_ := 'v6_value';
54.2705 - ELSIF (dist_ver_ = 'V7') THEN
54.2706 - dist_version_ := 'v7_value';
54.2707 - ELSIF (dist_ver_ = 'V8') THEN
54.2708 - dist_version_ := 'v8_value';
54.2709 - ELSIF (dist_ver_ = 'V9') THEN
54.2710 - dist_version_ := 'v9_value';
54.2711 - ELSIF (dist_ver_ = 'V10') THEN
54.2712 - dist_version_ := 'v10_value';
54.2713 - END IF;
54.2714 -
54.2715 - IF( from_where_= 'FROM_COMPONENT') THEN
54.2716 - temp1_ := 'SELECT period,'|| dist_version_ ||'
54.2717 - FROM scorecard_value11
54.2718 - WHERE environment= :p_environment
54.2719 - AND scorecard = :p_scorecard
54.2720 - AND component = :p_component
54.2721 - AND year = :p_year
54.2722 - ORDER BY end_date';
54.2723 -
54.2724 - temp2_ := 'SELECT sum('|| dist_version_ ||') '||'
54.2725 - FROM scorecard_value11
54.2726 - WHERE environment= :p_environment
54.2727 - AND scorecard = :p_scorecard
54.2728 - AND component = :p_component
54.2729 - AND year = :p_year ';
54.2730 - END IF;
54.2731 -
54.2732 - IF( from_where_= 'FROM_MEASURE') THEN
54.2733 - temp1_ := 'SELECT period,'|| dist_version_ ||'
54.2734 - FROM scorecard_value11
54.2735 - WHERE environment= :p_environment
54.2736 - AND scorecard = :p_scorecard
54.2737 - AND measure = :p_component
54.2738 - AND year = :p_year
54.2739 - ORDER BY end_date';
54.2740 -
54.2741 - temp2_ := 'SELECT sum('|| dist_version_ ||') '||'
54.2742 - FROM scorecard_value11
54.2743 - WHERE environment= :p_environment
54.2744 - AND scorecard = :p_scorecard
54.2745 - AND measure = :p_component
54.2746 - AND year = :p_year ';
54.2747 - END IF;
54.2748 -
54.2749 - -- ifs_assert_safe shsalk 20060117
54.2750 - OPEN total_cur_ FOR temp2_ USING environment_,scorecard_,component_,year_;
54.2751 - FETCH total_cur_ INTO total_val_;
54.2752 - CLOSE total_cur_;
54.2753 -
54.2754 - IF (total_val_ IS NULL) THEN
54.2755 - Error_SYS.Appl_General(lu_name_,'SCDISVAL : There are no values for distribution version :P1',dist_ver_);
54.2756 - END IF;
54.2757 -
54.2758 - total_dist_val_ := 0;
54.2759 - avarage_val_ := 0;
54.2760 - -- ifs_assert_safe shsalk 20060117
54.2761 - OPEN version_cur_ FOR temp1_ USING environment_,scorecard_,component_,year_;
54.2762 - LOOP
54.2763 - FETCH version_cur_ INTO period_,version_val_;
54.2764 - EXIT WHEN version_cur_%NOTFOUND;
54.2765 - count_ := count_+1;
54.2766 - IF (version_val_ IS NULL) THEN
54.2767 - CLOSE version_cur_;
54.2768 - Error_SYS.Appl_General(lu_name_,'SCDISNOVAL1 : There are no values for distribution version :P1',dist_ver_);
54.2769 - ELSE
54.2770 - IF (dist_logic_ = 'SYB') THEN
54.2771 - index_value_ := scorecard_index_api.Get_Value(environment_,period_,dist_index_);
54.2772 - IF (index_value_ IS NULL) THEN
54.2773 - CLOSE version_cur_;
54.2774 - Error_SYS.Appl_General(lu_name_,'SCDISNOINDEXVAL1 : There are no values for distribution index :P1',dist_index_);
54.2775 - END IF;
54.2776 - IF (dist_type_ = 'PERCENTAGE') THEN
54.2777 - avarage_val_ := total_val_/period_count_;
54.2778 - distribute_val_ := (version_val_/avarage_val_)*year_value_*index_value_;
54.2779 - ELSIF (dist_type_ = 'VALUE') THEN
54.2780 - distribute_val_ := (version_val_/total_val_)*year_value_*index_value_;
54.2781 - END IF;
54.2782 - ELSIF (dist_logic_ = 'VERSION') THEN
54.2783 - IF (dist_type_ = 'PERCENTAGE') THEN
54.2784 - avarage_val_ := total_val_/period_count_;
54.2785 - distribute_val_ := (version_val_/avarage_val_)*year_value_;
54.2786 - ELSIF (dist_type_ = 'VALUE') THEN
54.2787 - distribute_val_ := (version_val_/total_val_)*year_value_;
54.2788 - END IF;
54.2789 - END IF;
54.2790 - END IF;
54.2791 -
54.2792 - val_arr_(count_) := distribute_val_;
54.2793 - total_dist_val_ := total_dist_val_ + distribute_val_;
54.2794 - END LOOP;
54.2795 - CLOSE version_cur_;
54.2796 - END IF;
54.2797 -
54.2798 -
54.2799 - measure_format_ := TO_NUMBER(Scorecard_Measure_API.Get_Measure_Format(component_));
54.2800 -
54.2801 - final_year_value_ := year_value_ * measure_format_;
54.2802 -
54.2803 - IF (dist_logic_ != 'VERSION') THEN
54.2804 -
54.2805 - IF (dist_type_ = 'PERCENTAGE') THEN
54.2806 - total_dist_val_ := total_dist_val_/count_;
54.2807 - END IF;
54.2808 -
54.2809 - IF (year_value_ != total_dist_val_) THEN
54.2810 - FOR i IN 1..count_ LOOP
54.2811 - val_arr_(i) := (val_arr_(i)/total_dist_val_)*year_value_ * measure_format_;
54.2812 - END LOOP;
54.2813 - END IF;
54.2814 - END IF;
54.2815 -
54.2816 - IF (count_= 1) THEN
54.2817 - UPDATE scorecard_input_value_tab
54.2818 - SET action = action_value_,
54.2819 - year_value = final_year_value_,
54.2820 - p1_value = val_arr_(1)
54.2821 - WHERE
54.2822 - environment = environment_
54.2823 - AND
54.2824 - scorecard = scorecard_
54.2825 - AND
54.2826 - year = year_
54.2827 - AND
54.2828 - version = version_
54.2829 - AND
54.2830 - scorecard_object = component_;
54.2831 - ELSIF (count_= 2) THEN
54.2832 - UPDATE scorecard_input_value_tab
54.2833 - SET action = action_value_,
54.2834 - year_value = final_year_value_,
54.2835 - p1_value = val_arr_(1),
54.2836 - p2_value = val_arr_(2)
54.2837 - WHERE
54.2838 - environment = environment_
54.2839 - AND
54.2840 - scorecard = scorecard_
54.2841 - AND
54.2842 - year = year_
54.2843 - AND
54.2844 - version = version_
54.2845 - AND
54.2846 - scorecard_object = component_;
54.2847 - ELSIF (count_= 3) THEN
54.2848 - UPDATE scorecard_input_value_tab
54.2849 - SET action = action_value_,
54.2850 - year_value = final_year_value_,
54.2851 - p1_value = val_arr_(1),
54.2852 - p2_value = val_arr_(2),
54.2853 - p3_value = val_arr_(3)
54.2854 - WHERE
54.2855 - environment = environment_
54.2856 - AND
54.2857 - scorecard = scorecard_
54.2858 - AND
54.2859 - year = year_
54.2860 - AND
54.2861 - version = version_
54.2862 - AND
54.2863 - scorecard_object = component_;
54.2864 - ELSIF (count_= 4) THEN
54.2865 - UPDATE scorecard_input_value_tab
54.2866 - SET action = action_value_,
54.2867 - year_value = final_year_value_,
54.2868 - p1_value = val_arr_(1),
54.2869 - p2_value = val_arr_(2),
54.2870 - p3_value = val_arr_(3),
54.2871 - p4_value = val_arr_(4)
54.2872 - WHERE
54.2873 - environment = environment_
54.2874 - AND
54.2875 - scorecard = scorecard_
54.2876 - AND
54.2877 - year = year_
54.2878 - AND
54.2879 - version = version_
54.2880 - AND
54.2881 - scorecard_object = component_;
54.2882 - ELSIF (count_= 5) THEN
54.2883 - UPDATE scorecard_input_value_tab
54.2884 - SET action = final_year_value_,
54.2885 - year_value = year_value_,
54.2886 - p1_value = val_arr_(1),
54.2887 - p2_value = val_arr_(2),
54.2888 - p3_value = val_arr_(3),
54.2889 - p4_value = val_arr_(4),
54.2890 - p5_value = val_arr_(5)
54.2891 - WHERE
54.2892 - environment = environment_
54.2893 - AND
54.2894 - scorecard = scorecard_
54.2895 - AND
54.2896 - year = year_
54.2897 - AND
54.2898 - version = version_
54.2899 - AND
54.2900 - scorecard_object = component_;
54.2901 - ELSIF (count_= 6) THEN
54.2902 - UPDATE scorecard_input_value_tab
54.2903 - SET action = action_value_,
54.2904 - year_value = final_year_value_,
54.2905 - p1_value = val_arr_(1),
54.2906 - p2_value = val_arr_(2),
54.2907 - p3_value = val_arr_(3),
54.2908 - p4_value = val_arr_(4),
54.2909 - p5_value = val_arr_(5),
54.2910 - p6_value = val_arr_(6)
54.2911 - WHERE
54.2912 - environment = environment_
54.2913 - AND
54.2914 - scorecard = scorecard_
54.2915 - AND
54.2916 - year = year_
54.2917 - AND
54.2918 - version = version_
54.2919 - AND
54.2920 - scorecard_object = component_;
54.2921 - ELSIF (count_= 7) THEN
54.2922 - UPDATE scorecard_input_value_tab
54.2923 - SET action = action_value_,
54.2924 - year_value = final_year_value_,
54.2925 - p1_value = val_arr_(1),
54.2926 - p2_value = val_arr_(2),
54.2927 - p3_value = val_arr_(3),
54.2928 - p4_value = val_arr_(4),
54.2929 - p5_value = val_arr_(5),
54.2930 - p6_value = val_arr_(6),
54.2931 - p7_value = val_arr_(7)
54.2932 - WHERE
54.2933 - environment = environment_
54.2934 - AND
54.2935 - scorecard = scorecard_
54.2936 - AND
54.2937 - year = year_
54.2938 - AND
54.2939 - version = version_
54.2940 - AND
54.2941 - scorecard_object = component_;
54.2942 - ELSIF (count_= 8) THEN
54.2943 - UPDATE scorecard_input_value_tab
54.2944 - SET action = action_value_,
54.2945 - year_value = final_year_value_,
54.2946 - p1_value = val_arr_(1),
54.2947 - p2_value = val_arr_(2),
54.2948 - p3_value = val_arr_(3),
54.2949 - p4_value = val_arr_(4),
54.2950 - p5_value = val_arr_(5),
54.2951 - p6_value = val_arr_(6),
54.2952 - p7_value = val_arr_(7),
54.2953 - p8_value = val_arr_(8)
54.2954 - WHERE
54.2955 - environment = environment_
54.2956 - AND
54.2957 - scorecard = scorecard_
54.2958 - AND
54.2959 - year = year_
54.2960 - AND
54.2961 - version = version_
54.2962 - AND
54.2963 - scorecard_object = component_;
54.2964 - ELSIF (count_= 9) THEN
54.2965 - UPDATE scorecard_input_value_tab
54.2966 - SET action = action_value_,
54.2967 - year_value = final_year_value_,
54.2968 - p1_value = val_arr_(1),
54.2969 - p2_value = val_arr_(2),
54.2970 - p3_value = val_arr_(3),
54.2971 - p4_value = val_arr_(4),
54.2972 - p5_value = val_arr_(5),
54.2973 - p6_value = val_arr_(6),
54.2974 - p7_value = val_arr_(7),
54.2975 - p8_value = val_arr_(8),
54.2976 - p9_value = val_arr_(9)
54.2977 - WHERE
54.2978 - environment = environment_
54.2979 - AND
54.2980 - scorecard = scorecard_
54.2981 - AND
54.2982 - year = year_
54.2983 - AND
54.2984 - version = version_
54.2985 - AND
54.2986 - scorecard_object = component_;
54.2987 - ELSIF (count_= 10) THEN
54.2988 - UPDATE scorecard_input_value_tab
54.2989 - SET action = action_value_,
54.2990 - year_value = final_year_value_,
54.2991 - p1_value = val_arr_(1),
54.2992 - p2_value = val_arr_(2),
54.2993 - p3_value = val_arr_(3),
54.2994 - p4_value = val_arr_(4),
54.2995 - p5_value = val_arr_(5),
54.2996 - p6_value = val_arr_(6),
54.2997 - p7_value = val_arr_(7),
54.2998 - p8_value = val_arr_(8),
54.2999 - p9_value = val_arr_(9),
54.3000 - p10_value = val_arr_(10)
54.3001 - WHERE
54.3002 - environment = environment_
54.3003 - AND
54.3004 - scorecard = scorecard_
54.3005 - AND
54.3006 - year = year_
54.3007 - AND
54.3008 - version = version_
54.3009 - AND
54.3010 - scorecard_object = component_;
54.3011 - ELSIF (count_= 11) THEN
54.3012 - UPDATE scorecard_input_value_tab
54.3013 - SET action = action_value_,
54.3014 - year_value = final_year_value_,
54.3015 - p1_value = val_arr_(1),
54.3016 - p2_value = val_arr_(2),
54.3017 - p3_value = val_arr_(3),
54.3018 - p4_value = val_arr_(4),
54.3019 - p5_value = val_arr_(5),
54.3020 - p6_value = val_arr_(6),
54.3021 - p7_value = val_arr_(7),
54.3022 - p8_value = val_arr_(8),
54.3023 - p9_value = val_arr_(9),
54.3024 - p10_value = val_arr_(10),
54.3025 - p11_value = val_arr_(11)
54.3026 - WHERE
54.3027 - environment = environment_
54.3028 - AND
54.3029 - scorecard = scorecard_
54.3030 - AND
54.3031 - year = year_
54.3032 - AND
54.3033 - version = version_
54.3034 - AND
54.3035 - scorecard_object = component_;
54.3036 - ELSIF (count_= 12) THEN
54.3037 - UPDATE scorecard_input_value_tab
54.3038 - SET action = action_value_,
54.3039 - year_value = final_year_value_,
54.3040 - p1_value = val_arr_(1),
54.3041 - p2_value = val_arr_(2),
54.3042 - p3_value = val_arr_(3),
54.3043 - p4_value = val_arr_(4),
54.3044 - p5_value = val_arr_(5),
54.3045 - p6_value = val_arr_(6),
54.3046 - p7_value = val_arr_(7),
54.3047 - p8_value = val_arr_(8),
54.3048 - p9_value = val_arr_(9),
54.3049 - p10_value = val_arr_(10),
54.3050 - p11_value = val_arr_(11),
54.3051 - p12_value = val_arr_(12)
54.3052 - WHERE
54.3053 - environment = environment_
54.3054 - AND
54.3055 - scorecard = scorecard_
54.3056 - AND
54.3057 - year = year_
54.3058 - AND
54.3059 - version = version_
54.3060 - AND
54.3061 - scorecard_object = component_;
54.3062 - END IF;
54.3063 -
54.3064 -END Update_Sales_Values;
54.3065 -PROCEDURE Update_Distributed_Values (
54.3066 - environment_ IN VARCHAR2,
54.3067 - scorecard_ IN VARCHAR2,
54.3068 - year_ IN VARCHAR2,
54.3069 - version_ IN VARCHAR2,
54.3070 - component_ IN VARCHAR2,
54.3071 - year_value_ IN NUMBER,
54.3072 - period_count_ IN NUMBER,
54.3073 - from_where_ IN VARCHAR2,
54.3074 - action_value_ IN VARCHAR2 )
54.3075 -IS
54.3076 - dist_type_ VARCHAR2(30);
54.3077 - dist_logic_ VARCHAR2(10);
54.3078 - mean_value_ NUMBER;
54.3079 - reference_type_ VARCHAR2(10);
54.3080 - ref_type_ VARCHAR2(10);
54.3081 - rec_ SCORECARD_INPUT_VALUE_TAB%ROWTYPE;
54.3082 - measure_format_ NUMBER;
54.3083 - final_year_value_ NUMBER;
54.3084 -
54.3085 -BEGIN
54.3086 - General_SYS.Init_Method(lu_name_, '&PKG', 'Update_Distributed_Values');
54.3087 - rec_ := Lock_By_Keys___(environment_,scorecard_,year_,version_,component_);
54.3088 -
54.3089 - IF (action_value_ = 'TRUE') THEN
54.3090 -
54.3091 - measure_format_ := TO_NUMBER(Scorecard_Measure_API.Get_Measure_Format(component_));
54.3092 - IF(from_where_ = 'FROM_COMPONENT') THEN
54.3093 - reference_type_ := scorecard_structure_api.Get_Planning_Type_Db(scorecard_,component_,environment_,'COMPONENT');
54.3094 - ref_type_ := NVL(reference_type_,'BASE');
54.3095 - END IF;
54.3096 -
54.3097 - IF(from_where_ = 'FROM_MEASURE') THEN
54.3098 - ref_type_ := 'BASE';
54.3099 - END IF;
54.3100 -
54.3101 - IF NOT(ref_type_ = 'REFERENCE') THEN
54.3102 -
54.3103 - IF (from_where_ = 'FROM_COMPONENT') THEN
54.3104 -
54.3105 - dist_type_ := measure_type_api.Encode(scorecard_Measure_api.Get_Measure_type(component_));
54.3106 - dist_logic_ := scorecard_Structure_api.Get_Dist_Logic_Db(scorecard_,component_,environment_,'COMPONENT');
54.3107 -
54.3108 - END IF;
54.3109 -
54.3110 - IF (from_where_ = 'FROM_MEASURE') THEN
54.3111 -
54.3112 - dist_type_ := measure_type_api.Encode(scorecard_Measure_api.Get_Measure_type(component_));
54.3113 - dist_logic_ := scorecard_Structure_api.Get_Dist_Logic_Db(scorecard_,component_,environment_,'MEASURE');
54.3114 -
54.3115 - END IF;
54.3116 -
54.3117 - final_year_value_ := year_value_ * measure_format_;
54.3118 - IF (year_value_ IS NULL) THEN
54.3119 - UPDATE scorecard_input_value_tab
54.3120 - SET year_value = final_year_value_
54.3121 - WHERE
54.3122 - environment = environment_
54.3123 - AND
54.3124 - scorecard = scorecard_
54.3125 - AND
54.3126 - year = year_
54.3127 - AND
54.3128 - version = version_
54.3129 - AND
54.3130 - scorecard_object = component_;
54.3131 - ELSE
54.3132 - IF (dist_type_ = 'PERCENTAGE' AND dist_logic_ IS NULL) THEN
54.3133 - IF (period_count_ = 1) THEN
54.3134 - UPDATE scorecard_input_value_tab
54.3135 - SET action = final_year_value_,
54.3136 - year_value = final_year_value_,
54.3137 - p1_value = final_year_value_
54.3138 - WHERE
54.3139 - environment = environment_
54.3140 - AND
54.3141 - scorecard = scorecard_
54.3142 - AND
54.3143 - year = year_
54.3144 - AND
54.3145 - version = version_
54.3146 - AND
54.3147 - scorecard_object = component_;
54.3148 - ELSIF (period_count_ = 2) THEN
54.3149 - UPDATE scorecard_input_value_tab
54.3150 - SET action = action_value_,
54.3151 - year_value = final_year_value_,
54.3152 - p1_value = final_year_value_,
54.3153 - p2_value = final_year_value_
54.3154 - WHERE
54.3155 - environment = environment_
54.3156 - AND
54.3157 - scorecard = scorecard_
54.3158 - AND
54.3159 - year = year_
54.3160 - AND
54.3161 - version = version_
54.3162 - AND
54.3163 - scorecard_object = component_;
54.3164 - ELSIF (period_count_ = 3) THEN
54.3165 - UPDATE scorecard_input_value_tab
54.3166 - SET action = action_value_,
54.3167 - year_value = final_year_value_,
54.3168 - p1_value = final_year_value_,
54.3169 - p2_value = final_year_value_,
54.3170 - p3_value = final_year_value_
54.3171 - WHERE
54.3172 - environment = environment_
54.3173 - AND
54.3174 - scorecard = scorecard_
54.3175 - AND
54.3176 - year = year_
54.3177 - AND
54.3178 - version = version_
54.3179 - AND
54.3180 - scorecard_object = component_;
54.3181 - ELSIF (period_count_ = 4) THEN
54.3182 - UPDATE scorecard_input_value_tab
54.3183 - SET action = action_value_,
54.3184 - year_value = final_year_value_,
54.3185 - p1_value = final_year_value_,
54.3186 - p2_value = final_year_value_,
54.3187 - p3_value = final_year_value_,
54.3188 - p4_value = final_year_value_
54.3189 - WHERE
54.3190 - environment = environment_
54.3191 - AND
54.3192 - scorecard = scorecard_
54.3193 - AND
54.3194 - year = year_
54.3195 - AND
54.3196 - version = version_
54.3197 - AND
54.3198 - scorecard_object = component_;
54.3199 - ELSIF (period_count_ = 5) THEN
54.3200 - UPDATE scorecard_input_value_tab
54.3201 - SET action = action_value_,
54.3202 - year_value = final_year_value_,
54.3203 - p1_value = final_year_value_,
54.3204 - p2_value = final_year_value_,
54.3205 - p3_value = final_year_value_,
54.3206 - p4_value = final_year_value_,
54.3207 - p5_value = final_year_value_
54.3208 - WHERE
54.3209 - environment = environment_
54.3210 - AND
54.3211 - scorecard = scorecard_
54.3212 - AND
54.3213 - year = year_
54.3214 - AND
54.3215 - version = version_
54.3216 - AND
54.3217 - scorecard_object = component_;
54.3218 - ELSIF (period_count_ = 6) THEN
54.3219 - UPDATE scorecard_input_value_tab
54.3220 - SET action = action_value_,
54.3221 - year_value = final_year_value_,
54.3222 - p1_value = final_year_value_,
54.3223 - p2_value = final_year_value_,
54.3224 - p3_value = final_year_value_,
54.3225 - p4_value = final_year_value_,
54.3226 - p5_value = final_year_value_,
54.3227 - p6_value = final_year_value_
54.3228 - WHERE
54.3229 - environment = environment_
54.3230 - AND
54.3231 - scorecard = scorecard_
54.3232 - AND
54.3233 - year = year_
54.3234 - AND
54.3235 - version = version_
54.3236 - AND
54.3237 - scorecard_object = component_;
54.3238 - ELSIF (period_count_ = 7) THEN
54.3239 - UPDATE scorecard_input_value_tab
54.3240 - SET action = action_value_,
54.3241 - year_value = final_year_value_,
54.3242 - p1_value = final_year_value_,
54.3243 - p2_value = final_year_value_,
54.3244 - p3_value = final_year_value_,
54.3245 - p4_value = final_year_value_,
54.3246 - p5_value = final_year_value_,
54.3247 - p6_value = final_year_value_,
54.3248 - p7_value = final_year_value_
54.3249 - WHERE
54.3250 - environment = environment_
54.3251 - AND
54.3252 - scorecard = scorecard_
54.3253 - AND
54.3254 - year = year_
54.3255 - AND
54.3256 - version = version_
54.3257 - AND
54.3258 - scorecard_object = component_;
54.3259 - ELSIF (period_count_ = 8) THEN
54.3260 - UPDATE scorecard_input_value_tab
54.3261 - SET action = action_value_,
54.3262 - year_value = final_year_value_,
54.3263 - p1_value = final_year_value_,
54.3264 - p2_value = final_year_value_,
54.3265 - p3_value = final_year_value_,
54.3266 - p4_value = final_year_value_,
54.3267 - p5_value = final_year_value_,
54.3268 - p6_value = final_year_value_,
54.3269 - p7_value = final_year_value_,
54.3270 - p8_value = final_year_value_
54.3271 - WHERE
54.3272 - environment = environment_
54.3273 - AND
54.3274 - scorecard = scorecard_
54.3275 - AND
54.3276 - year = year_
54.3277 - AND
54.3278 - version = version_
54.3279 - AND
54.3280 - scorecard_object = component_;
54.3281 - ELSIF (period_count_ = 9) THEN
54.3282 - UPDATE scorecard_input_value_tab
54.3283 - SET action = action_value_,
54.3284 - year_value = final_year_value_,
54.3285 - p1_value = final_year_value_,
54.3286 - p2_value = final_year_value_,
54.3287 - p3_value = final_year_value_,
54.3288 - p4_value = final_year_value_,
54.3289 - p5_value = final_year_value_,
54.3290 - p6_value = final_year_value_,
54.3291 - p7_value = final_year_value_,
54.3292 - p8_value = final_year_value_,
54.3293 - p9_value = final_year_value_
54.3294 - WHERE
54.3295 - environment = environment_
54.3296 - AND
54.3297 - scorecard = scorecard_
54.3298 - AND
54.3299 - year = year_
54.3300 - AND
54.3301 - version = version_
54.3302 - AND
54.3303 - scorecard_object = component_;
54.3304 - ELSIF (period_count_ = 10) THEN
54.3305 - UPDATE scorecard_input_value_tab
54.3306 - SET action = action_value_,
54.3307 - year_value = final_year_value_,
54.3308 - p1_value = final_year_value_,
54.3309 - p2_value = final_year_value_,
54.3310 - p3_value = final_year_value_,
54.3311 - p4_value = final_year_value_,
54.3312 - p5_value = final_year_value_,
54.3313 - p6_value = final_year_value_,
54.3314 - p7_value = final_year_value_,
54.3315 - p8_value = final_year_value_,
54.3316 - p9_value = final_year_value_,
54.3317 - p10_value = final_year_value_
54.3318 - WHERE
54.3319 - environment = environment_
54.3320 - AND
54.3321 - scorecard = scorecard_
54.3322 - AND
54.3323 - year = year_
54.3324 - AND
54.3325 - version = version_
54.3326 - AND
54.3327 - scorecard_object = component_;
54.3328 - ELSIF (period_count_ = 11) THEN
54.3329 - UPDATE scorecard_input_value_tab
54.3330 - SET action = action_value_,
54.3331 - year_value = final_year_value_,
54.3332 - p1_value = final_year_value_,
54.3333 - p2_value = final_year_value_,
54.3334 - p3_value = final_year_value_,
54.3335 - p4_value = final_year_value_,
54.3336 - p5_value = final_year_value_,
54.3337 - p6_value = final_year_value_,
54.3338 - p7_value = final_year_value_,
54.3339 - p8_value = final_year_value_,
54.3340 - p9_value = final_year_value_,
54.3341 - p10_value = final_year_value_,
54.3342 - p11_value = final_year_value_
54.3343 - WHERE
54.3344 - environment = environment_
54.3345 - AND
54.3346 - scorecard = scorecard_
54.3347 - AND
54.3348 - year = year_
54.3349 - AND
54.3350 - version = version_
54.3351 - AND
54.3352 - scorecard_object = component_;
54.3353 - ELSIF (period_count_ = 12) THEN
54.3354 - UPDATE scorecard_input_value_tab
54.3355 - SET action = action_value_,
54.3356 - year_value = final_year_value_,
54.3357 - p1_value = final_year_value_,
54.3358 - p2_value = final_year_value_,
54.3359 - p3_value = final_year_value_,
54.3360 - p4_value = final_year_value_,
54.3361 - p5_value = final_year_value_,
54.3362 - p6_value = final_year_value_,
54.3363 - p7_value = final_year_value_,
54.3364 - p8_value = final_year_value_,
54.3365 - p9_value = final_year_value_,
54.3366 - p10_value = final_year_value_,
54.3367 - p11_value = final_year_value_,
54.3368 - p12_value = final_year_value_
54.3369 - WHERE
54.3370 - environment = environment_
54.3371 - AND
54.3372 - scorecard = scorecard_
54.3373 - AND
54.3374 - year = year_
54.3375 - AND
54.3376 - version = version_
54.3377 - AND
54.3378 - scorecard_object = component_;
54.3379 - END IF;
54.3380 -
54.3381 -
54.3382 - ELSIF (dist_type_ = 'VALUE' AND dist_logic_ IS NULL) THEN
54.3383 - mean_value_ := (year_value_ * measure_format_)/period_count_;
54.3384 - IF (period_count_ = 1) THEN
54.3385 - UPDATE scorecard_input_value_tab
54.3386 - SET action = action_value_,
54.3387 - year_value = final_year_value_,
54.3388 - p1_value = mean_value_
54.3389 - WHERE
54.3390 - environment = environment_
54.3391 - AND
54.3392 - scorecard = scorecard_
54.3393 - AND
54.3394 - year = year_
54.3395 - AND
54.3396 - version = version_
54.3397 - AND
54.3398 - scorecard_object = component_;
54.3399 - ELSIF (period_count_ = 2) THEN
54.3400 - UPDATE scorecard_input_value_tab
54.3401 - SET action = action_value_,
54.3402 - year_value = final_year_value_,
54.3403 - p1_value = mean_value_,
54.3404 - p2_value = mean_value_
54.3405 - WHERE
54.3406 - environment = environment_
54.3407 - AND
54.3408 - scorecard = scorecard_
54.3409 - AND
54.3410 - year = year_
54.3411 - AND
54.3412 - version = version_
54.3413 - AND
54.3414 - scorecard_object = component_;
54.3415 - ELSIF (period_count_ = 3) THEN
54.3416 - UPDATE scorecard_input_value_tab
54.3417 - SET action = action_value_,
54.3418 - year_value = final_year_value_,
54.3419 - p1_value = mean_value_,
54.3420 - p2_value = mean_value_,
54.3421 - p3_value = mean_value_
54.3422 - WHERE
54.3423 - environment = environment_
54.3424 - AND
54.3425 - scorecard = scorecard_
54.3426 - AND
54.3427 - year = year_
54.3428 - AND
54.3429 - version = version_
54.3430 - AND
54.3431 - scorecard_object = component_;
54.3432 - ELSIF (period_count_ = 4) THEN
54.3433 - UPDATE scorecard_input_value_tab
54.3434 - SET action = action_value_,
54.3435 - year_value = final_year_value_,
54.3436 - p1_value = mean_value_,
54.3437 - p2_value = mean_value_,
54.3438 - p3_value = mean_value_,
54.3439 - p4_value = mean_value_
54.3440 - WHERE
54.3441 - environment = environment_
54.3442 - AND
54.3443 - scorecard = scorecard_
54.3444 - AND
54.3445 - year = year_
54.3446 - AND
54.3447 - version = version_
54.3448 - AND
54.3449 - scorecard_object = component_;
54.3450 - ELSIF (period_count_ = 5) THEN
54.3451 - UPDATE scorecard_input_value_tab
54.3452 - SET action = action_value_,
54.3453 - year_value = final_year_value_,
54.3454 - p1_value = mean_value_,
54.3455 - p2_value = mean_value_,
54.3456 - p3_value = mean_value_,
54.3457 - p4_value = mean_value_,
54.3458 - p5_value = mean_value_
54.3459 - WHERE
54.3460 - environment = environment_
54.3461 - AND
54.3462 - scorecard = scorecard_
54.3463 - AND
54.3464 - year = year_
54.3465 - AND
54.3466 - version = version_
54.3467 - AND
54.3468 - scorecard_object = component_;
54.3469 - ELSIF (period_count_ = 6) THEN
54.3470 - UPDATE scorecard_input_value_tab
54.3471 - SET action = action_value_,
54.3472 - year_value = final_year_value_,
54.3473 - p1_value = mean_value_,
54.3474 - p2_value = mean_value_,
54.3475 - p3_value = mean_value_,
54.3476 - p4_value = mean_value_,
54.3477 - p5_value = mean_value_,
54.3478 - p6_value = mean_value_
54.3479 - WHERE
54.3480 - environment = environment_
54.3481 - AND
54.3482 - scorecard = scorecard_
54.3483 - AND
54.3484 - year = year_
54.3485 - AND
54.3486 - version = version_
54.3487 - AND
54.3488 - scorecard_object = component_;
54.3489 - ELSIF (period_count_ = 7) THEN
54.3490 - UPDATE scorecard_input_value_tab
54.3491 - SET action = action_value_,
54.3492 - year_value = final_year_value_,
54.3493 - p1_value = mean_value_,
54.3494 - p2_value = mean_value_,
54.3495 - p3_value = mean_value_,
54.3496 - p4_value = mean_value_,
54.3497 - p5_value = mean_value_,
54.3498 - p6_value = mean_value_,
54.3499 - p7_value = mean_value_
54.3500 - WHERE
54.3501 - environment = environment_
54.3502 - AND
54.3503 - scorecard = scorecard_
54.3504 - AND
54.3505 - year = year_
54.3506 - AND
54.3507 - version = version_
54.3508 - AND
54.3509 - scorecard_object = component_;
54.3510 - ELSIF (period_count_ = 8) THEN
54.3511 - UPDATE scorecard_input_value_tab
54.3512 - SET action = action_value_,
54.3513 - year_value = final_year_value_,
54.3514 - p1_value = mean_value_,
54.3515 - p2_value = mean_value_,
54.3516 - p3_value = mean_value_,
54.3517 - p4_value = mean_value_,
54.3518 - p5_value = mean_value_,
54.3519 - p6_value = mean_value_,
54.3520 - p7_value = mean_value_,
54.3521 - p8_value = mean_value_
54.3522 - WHERE
54.3523 - environment = environment_
54.3524 - AND
54.3525 - scorecard = scorecard_
54.3526 - AND
54.3527 - year = year_
54.3528 - AND
54.3529 - version = version_
54.3530 - AND
54.3531 - scorecard_object = component_;
54.3532 - ELSIF (period_count_ = 9) THEN
54.3533 - UPDATE scorecard_input_value_tab
54.3534 - SET action = action_value_,
54.3535 - year_value = final_year_value_,
54.3536 - p1_value = mean_value_,
54.3537 - p2_value = mean_value_,
54.3538 - p3_value = mean_value_,
54.3539 - p4_value = mean_value_,
54.3540 - p5_value = mean_value_,
54.3541 - p6_value = mean_value_,
54.3542 - p7_value = mean_value_,
54.3543 - p8_value = mean_value_,
54.3544 - p9_value = mean_value_
54.3545 - WHERE
54.3546 - environment = environment_
54.3547 - AND
54.3548 - scorecard = scorecard_
54.3549 - AND
54.3550 - year = year_
54.3551 - AND
54.3552 - version = version_
54.3553 - AND
54.3554 - scorecard_object = component_;
54.3555 - ELSIF (period_count_ = 10) THEN
54.3556 - UPDATE scorecard_input_value_tab
54.3557 - SET action = action_value_,
54.3558 - year_value = final_year_value_,
54.3559 - p1_value = mean_value_,
54.3560 - p2_value = mean_value_,
54.3561 - p3_value = mean_value_,
54.3562 - p4_value = mean_value_,
54.3563 - p5_value = mean_value_,
54.3564 - p6_value = mean_value_,
54.3565 - p7_value = mean_value_,
54.3566 - p8_value = mean_value_,
54.3567 - p9_value = mean_value_,
54.3568 - p10_value = mean_value_
54.3569 - WHERE
54.3570 - environment = environment_
54.3571 - AND
54.3572 - scorecard = scorecard_
54.3573 - AND
54.3574 - year = year_
54.3575 - AND
54.3576 - version = version_
54.3577 - AND
54.3578 - scorecard_object = component_;
54.3579 - ELSIF (period_count_ = 11) THEN
54.3580 - UPDATE scorecard_input_value_tab
54.3581 - SET action = action_value_,
54.3582 - year_value = final_year_value_,
54.3583 - p1_value = mean_value_,
54.3584 - p2_value = mean_value_,
54.3585 - p3_value = mean_value_,
54.3586 - p4_value = mean_value_,
54.3587 - p5_value = mean_value_,
54.3588 - p6_value = mean_value_,
54.3589 - p7_value = mean_value_,
54.3590 - p8_value = mean_value_,
54.3591 - p9_value = mean_value_,
54.3592 - p10_value = mean_value_,
54.3593 - p11_value = mean_value_
54.3594 - WHERE
54.3595 - environment = environment_
54.3596 - AND
54.3597 - scorecard = scorecard_
54.3598 - AND
54.3599 - year = year_
54.3600 - AND
54.3601 - version = version_
54.3602 - AND
54.3603 - scorecard_object = component_;
54.3604 - ELSIF (period_count_ = 12) THEN
54.3605 - UPDATE scorecard_input_value_tab
54.3606 - SET action = action_value_,
54.3607 - year_value = final_year_value_,
54.3608 - p1_value = mean_value_,
54.3609 - p2_value = mean_value_,
54.3610 - p3_value = mean_value_,
54.3611 - p4_value = mean_value_,
54.3612 - p5_value = mean_value_,
54.3613 - p6_value = mean_value_,
54.3614 - p7_value = mean_value_,
54.3615 - p8_value = mean_value_,
54.3616 - p9_value = mean_value_,
54.3617 - p10_value = mean_value_,
54.3618 - p11_value = mean_value_,
54.3619 - p12_value = mean_value_
54.3620 - WHERE
54.3621 - environment = environment_
54.3622 - AND
54.3623 - scorecard = scorecard_
54.3624 - AND
54.3625 - year = year_
54.3626 - AND
54.3627 - version = version_
54.3628 - AND
54.3629 - scorecard_object = component_;
54.3630 -
54.3631 - END IF;
54.3632 - ELSIF ((dist_logic_ = 'SYB' OR dist_logic_ = 'VERSION' OR dist_logic_ = 'INDEX') AND (dist_type_ IS NOT NULL)) THEN
54.3633 - Update_Sales_Values(environment_,scorecard_,year_,version_,component_,year_value_,period_count_,from_where_,action_value_);
54.3634 - END IF;
54.3635 - END IF;
54.3636 - END IF;
54.3637 - ELSIF (action_value_ = 'FALSE') THEN
54.3638 - UPDATE scorecard_input_value_tab
54.3639 - SET action = action_value_
54.3640 - WHERE
54.3641 - environment = environment_
54.3642 - AND
54.3643 - scorecard = scorecard_
54.3644 - AND
54.3645 - year = year_
54.3646 - AND
54.3647 - version = version_
54.3648 - AND
54.3649 - scorecard_object = component_;
54.3650 - END IF;
54.3651 -END Update_Distributed_Values;
54.3652 -PROCEDURE Publish_Scorecard (
54.3653 - environment_ IN VARCHAR2,
54.3654 - scorecard_ IN VARCHAR2 )
54.3655 -IS
54.3656 - can_modify_ VARCHAR2(5);
54.3657 -BEGIN
54.3658 - General_SYS.Init_Method(lu_name_, '&PKG', 'Publish_Scorecard');
54.3659 - can_modify_ := Scorecard_User_Access_Api.Check_Modify_Acc(environment_,scorecard_);
54.3660 - if can_modify_ = 'TRUE' then
54.3661 - Publish_Score__(environment_, scorecard_, 'SCORE');
54.3662 - end if;
54.3663 -END Publish_Scorecard;
54.3664 -PROCEDURE Publish_Environment (
54.3665 - environment_ IN VARCHAR2 )
54.3666 -IS
54.3667 - attr_ VARCHAR2(2000);
54.3668 - info_ VARCHAR2(2000);
54.3669 -
54.3670 - CURSOR get_scorecard IS
54.3671 - SELECT DISTINCT scorecard, objstate
54.3672 - FROM scorecard_input
54.3673 - WHERE environment = environment_
54.3674 - AND (objstate = 'Open' OR objstate = 'Planned');
54.3675 -
54.3676 - can_modify_ VARCHAR2(5);
54.3677 -BEGIN
54.3678 - General_SYS.Init_Method(lu_name_, '&PKG', 'Publish_Environment');
54.3679 - FOR get_rec in get_scorecard loop
54.3680 - IF (get_rec.objstate = 'Open') THEN
54.3681 - info_ := Language_SYS.Translate_Constant(lu_name_,'TRANS: The operation "Publish" is not allowed for Scorecard :P1 in state "Open"',Fnd_Session_API.Get_Language,get_rec.scorecard);
54.3682 - Transaction_SYS.Set_Status_Info(info_);
54.3683 - ELSE
54.3684 - can_modify_ := Scorecard_User_Access_Api.Check_Modify_Acc(environment_,get_rec.scorecard);
54.3685 - if can_modify_ = 'TRUE' then
54.3686 - Publish_Score__(environment_, get_rec.scorecard, 'ENV');
54.3687 - Client_SYS.Clear_Attr(attr_);
54.3688 - Scorecard_Api.Force_Publish__(info_,attr_,'DO',environment_,get_rec.scorecard);
54.3689 - Client_SYS.Clear_Attr(attr_);
54.3690 - end if;
54.3691 - END IF;
54.3692 - end loop;
54.3693 -END Publish_Environment;
54.3694 -
54.3695 -
54.3696 -PROCEDURE Calculate_Measures (
54.3697 - environment_ IN VARCHAR2,
54.3698 - scorecard_ IN VARCHAR2,
54.3699 - year_ IN VARCHAR2,
54.3700 - version_ IN VARCHAR2,
54.3701 - measure_ IN VARCHAR2,
54.3702 - period_count_ IN NUMBER,
54.3703 - from_budpro_ IN VARCHAR2 DEFAULT 'FALSE' )
54.3704 -IS
54.3705 - plan_formula_ VARCHAR2(2000);
54.3706 - plan_formula_year_ VARCHAR2(2000);
54.3707 - plan_formula_p1_ VARCHAR2(2000);
54.3708 - plan_formula_p2_ VARCHAR2(2000);
54.3709 - plan_formula_p3_ VARCHAR2(2000);
54.3710 - plan_formula_p4_ VARCHAR2(2000);
54.3711 - plan_formula_p5_ VARCHAR2(2000);
54.3712 - plan_formula_p6_ VARCHAR2(2000);
54.3713 - plan_formula_p7_ VARCHAR2(2000);
54.3714 - plan_formula_p8_ VARCHAR2(2000);
54.3715 - plan_formula_p9_ VARCHAR2(2000);
54.3716 - plan_formula_p10_ VARCHAR2(2000);
54.3717 - plan_formula_p11_ VARCHAR2(2000);
54.3718 - plan_formula_p12_ VARCHAR2(2000);
54.3719 - count_ NUMBER;
54.3720 - p1_value_ NUMBER;
54.3721 - p2_value_ NUMBER;
54.3722 - p3_value_ NUMBER;
54.3723 - p4_value_ NUMBER;
54.3724 - p5_value_ NUMBER;
54.3725 - p6_value_ NUMBER;
54.3726 - p7_value_ NUMBER;
54.3727 - p8_value_ NUMBER;
54.3728 - p9_value_ NUMBER;
54.3729 - p10_value_ NUMBER;
54.3730 - p11_value_ NUMBER;
54.3731 - p12_value_ NUMBER;
54.3732 - year_value_ NUMBER;
54.3733 - level_id_ VARCHAR2(30);
54.3734 -
54.3735 - formula_year_ NUMBER;
54.3736 - formula_p1_ NUMBER;
54.3737 - formula_p2_ NUMBER;
54.3738 - formula_p3_ NUMBER;
54.3739 - formula_p4_ NUMBER;
54.3740 - formula_p5_ NUMBER;
54.3741 - formula_p6_ NUMBER;
54.3742 - formula_p7_ NUMBER;
54.3743 - formula_p8_ NUMBER;
54.3744 - formula_p9_ NUMBER;
54.3745 - formula_p10_ NUMBER;
54.3746 - formula_p11_ NUMBER;
54.3747 - formula_p12_ NUMBER;
54.3748 -
54.3749 - check_year_value_ VARCHAR2(10);
54.3750 - check_p1_value_ VARCHAR2(10);
54.3751 - check_p2_value_ VARCHAR2(10);
54.3752 - check_p3_value_ VARCHAR2(10);
54.3753 - check_p4_value_ VARCHAR2(10);
54.3754 - check_p5_value_ VARCHAR2(10);
54.3755 - check_p6_value_ VARCHAR2(10);
54.3756 - check_p7_value_ VARCHAR2(10);
54.3757 - check_p8_value_ VARCHAR2(10);
54.3758 - check_p9_value_ VARCHAR2(10);
54.3759 - check_p10_value_ VARCHAR2(10);
54.3760 - check_p11_value_ VARCHAR2(10);
54.3761 - check_p12_value_ VARCHAR2(10);
54.3762 - level_type_val_ VARCHAR2(20);
54.3763 -
54.3764 - stmt_ VARCHAR2(2000);
54.3765 -
54.3766 - rec_ SCORECARD_INPUT_VALUE_TAB%ROWTYPE;
54.3767 -
54.3768 - CURSOR measure_components_ IS
54.3769 - SELECT level_id
54.3770 - FROM scorecard_structure_tab
54.3771 - WHERE environment = environment_
54.3772 - AND scorecard = scorecard_
54.3773 - AND parent_level_type = 'MEASURE'
54.3774 - AND parent_id = measure_;
54.3775 - CURSOR version_value_ IS
54.3776 - SELECT Year_Value,P1_Value,P2_Value,P3_Value,P4_Value,P5_Value,P6_Value,P7_Value,P8_Value,P9_Value,P10_Value,P11_Value,P12_Value
54.3777 - FROM scorecard_input_value_tab
54.3778 - WHERE environment = environment_
54.3779 - AND scorecard = scorecard_
54.3780 - AND year = year_
54.3781 - AND version = version_
54.3782 - AND scorecard_object = level_id_;
54.3783 - CURSOR measure_value_ IS
54.3784 - SELECT Year_Value,P1_Value,P2_Value,P3_Value,P4_Value,P5_Value,P6_Value,P7_Value,P8_Value,P9_Value,P10_Value,P11_Value,P12_Value
54.3785 - FROM scorecard_input_value_tab
54.3786 - WHERE environment = environment_
54.3787 - AND scorecard = scorecard_
54.3788 - AND year = year_
54.3789 - AND version = version_
54.3790 - AND scorecard_object = measure_;
54.3791 -
54.3792 - byteOffSet_ Number := 0;
54.3793 -
54.3794 - invalid_comp_ NUMBER;
54.3795 -BEGIN
54.3796 - General_SYS.Init_Method(lu_name_, '&PKG', 'Calculate_Measures');
54.3797 - rec_ := Lock_By_Keys___(environment_,scorecard_,year_,version_,measure_);
54.3798 - level_type_val_ := Scorecard_Level_Type_API.Decode('MEASURE');
54.3799 - plan_formula_ := scorecard_structure_api.Get_Measure_Calc_Formula(scorecard_,measure_,environment_,level_type_val_);
54.3800 - check_year_value_ := 'FALSE';
54.3801 - check_p1_value_ := 'FALSE';
54.3802 - check_p2_value_ := 'FALSE';
54.3803 - check_p3_value_ := 'FALSE';
54.3804 - check_p4_value_ := 'FALSE';
54.3805 - check_p5_value_ := 'FALSE';
54.3806 - check_p6_value_ := 'FALSE';
54.3807 - check_p7_value_ := 'FALSE';
54.3808 - check_p8_value_ := 'FALSE';
54.3809 - check_p9_value_ := 'FALSE';
54.3810 - check_p10_value_ := 'FALSE';
54.3811 - check_p11_value_ := 'FALSE';
54.3812 - check_p12_value_ := 'FALSE';
54.3813 -
54.3814 - IF plan_formula_ IS NOT NULL THEN
54.3815 - plan_formula_ := REPLACE(plan_formula_,' ','');
54.3816 - plan_formula_ := UPPER(plan_formula_);
54.3817 - plan_formula_year_ := plan_formula_;
54.3818 - plan_formula_p1_ := plan_formula_;
54.3819 - plan_formula_p2_ := plan_formula_;
54.3820 - plan_formula_p3_ := plan_formula_;
54.3821 - plan_formula_p4_ := plan_formula_;
54.3822 - plan_formula_p5_ := plan_formula_;
54.3823 - plan_formula_p6_ := plan_formula_;
54.3824 - plan_formula_p7_ := plan_formula_;
54.3825 - plan_formula_p8_ := plan_formula_;
54.3826 - plan_formula_p9_ := plan_formula_;
54.3827 - plan_formula_p10_ := plan_formula_;
54.3828 - plan_formula_p11_ := plan_formula_;
54.3829 - plan_formula_p12_ := plan_formula_;
54.3830 - count_ := 0;
54.3831 - FOR measure_comp_ IN measure_components_ LOOP
54.3832 - level_id_ := measure_comp_.level_id;
54.3833 - byteOffset_ := INSTR(plan_formula_,'COMP.'||level_id_);
54.3834 -
54.3835 - IF byteOffSet_ > 0 THEN
54.3836 - OPEN version_value_;
54.3837 - FETCH version_value_ INTO year_value_,p1_value_,p2_value_,p3_value_,p4_value_,p5_value_,p6_value_,p7_value_,p8_value_,p9_value_,p10_value_,p11_value_,p12_value_;
54.3838 - CLOSE version_value_;
54.3839 - IF (year_value_ IS NULL) THEN
54.3840 - check_year_value_ := 'TRUE';
54.3841 - END IF;
54.3842 - IF (p1_value_ IS NULL) THEN
54.3843 - check_p1_value_ := 'TRUE';
54.3844 - END IF;
54.3845 - IF (p2_value_ IS NULL) THEN
54.3846 - check_p2_value_ := 'TRUE';
54.3847 - END IF;
54.3848 - IF (p3_value_ IS NULL) THEN
54.3849 - check_p3_value_ := 'TRUE';
54.3850 - END IF;
54.3851 - IF (p4_value_ IS NULL) THEN
54.3852 - check_p4_value_ := 'TRUE';
54.3853 - END IF;
54.3854 - IF (p5_value_ IS NULL) THEN
54.3855 - check_p5_value_ := 'TRUE';
54.3856 - END IF;
54.3857 - IF (p6_value_ IS NULL) THEN
54.3858 - check_p6_value_ := 'TRUE';
54.3859 - END IF;
54.3860 - IF (p7_value_ IS NULL) THEN
54.3861 - check_p7_value_ := 'TRUE';
54.3862 - END IF;
54.3863 - IF (p8_value_ IS NULL) THEN
54.3864 - check_p8_value_ := 'TRUE';
54.3865 - END IF;
54.3866 - IF (p9_value_ IS NULL) THEN
54.3867 - check_p9_value_ := 'TRUE';
54.3868 - END IF;
54.3869 - IF (p10_value_ IS NULL) THEN
54.3870 - check_p10_value_ := 'TRUE';
54.3871 - END IF;
54.3872 - IF (p11_value_ IS NULL) THEN
54.3873 - check_p11_value_ := 'TRUE';
54.3874 - END IF;
54.3875 - IF (p12_value_ IS NULL) THEN
54.3876 - check_p12_value_ := 'TRUE';
54.3877 - END IF;
54.3878 -
54.3879 - plan_formula_year_ := REPLACE(plan_formula_year_,'COMP.'||level_id_,year_value_);
54.3880 - plan_formula_p1_ := REPLACE(plan_formula_p1_,'COMP.'||level_id_,p1_value_);
54.3881 - plan_formula_p2_ := REPLACE(plan_formula_p2_,'COMP.'||level_id_,p2_value_);
54.3882 - plan_formula_p3_ := REPLACE(plan_formula_p3_,'COMP.'||level_id_,p3_value_);
54.3883 - plan_formula_p4_ := REPLACE(plan_formula_p4_,'COMP.'||level_id_,p4_value_);
54.3884 - plan_formula_p5_ := REPLACE(plan_formula_p5_,'COMP.'||level_id_,p5_value_);
54.3885 - plan_formula_p6_ := REPLACE(plan_formula_p6_,'COMP.'||level_id_,p6_value_);
54.3886 - plan_formula_p7_ := REPLACE(plan_formula_p7_,'COMP.'||level_id_,p7_value_);
54.3887 - plan_formula_p8_ := REPLACE(plan_formula_p8_,'COMP.'||level_id_,p8_value_);
54.3888 - plan_formula_p9_ := REPLACE(plan_formula_p9_,'COMP.'||level_id_,p9_value_);
54.3889 - plan_formula_p10_ := REPLACE(plan_formula_p10_,'COMP.'||level_id_,p10_value_);
54.3890 - plan_formula_p11_ := REPLACE(plan_formula_p11_,'COMP.'||level_id_,p11_value_);
54.3891 - plan_formula_p12_ := REPLACE(plan_formula_p12_,'COMP.'||level_id_,p12_value_);
54.3892 - END IF;
54.3893 - END LOOP;
54.3894 -
54.3895 - Get_Error_Msg_For_Comp(plan_formula_year_,check_year_value_);
54.3896 - Get_Error_Msg_For_Comp(plan_formula_p1_,check_p1_value_);
54.3897 - Get_Error_Msg_For_Comp(plan_formula_p2_,check_p2_value_);
54.3898 - Get_Error_Msg_For_Comp(plan_formula_p3_,check_p3_value_);
54.3899 - Get_Error_Msg_For_Comp(plan_formula_p4_,check_p4_value_);
54.3900 - Get_Error_Msg_For_Comp(plan_formula_p5_,check_p5_value_);
54.3901 - Get_Error_Msg_For_Comp(plan_formula_p6_,check_p6_value_);
54.3902 - Get_Error_Msg_For_Comp(plan_formula_p7_,check_p7_value_);
54.3903 - Get_Error_Msg_For_Comp(plan_formula_p8_,check_p8_value_);
54.3904 - Get_Error_Msg_For_Comp(plan_formula_p9_,check_p9_value_);
54.3905 - Get_Error_Msg_For_Comp(plan_formula_p10_,check_p10_value_);
54.3906 - Get_Error_Msg_For_Comp(plan_formula_p11_,check_p11_value_);
54.3907 - Get_Error_Msg_For_Comp(plan_formula_p12_,check_p12_value_);
54.3908 -
54.3909 - IF (period_count_ = 1) THEN
54.3910 - -- ifs_assert_safe samwlk 070515
54.3911 - EXECUTE IMMEDIATE 'select '||plan_formula_year_||','||plan_formula_p1_||' from dual'
54.3912 - INTO
54.3913 - formula_year_,formula_p1_;
54.3914 -
54.3915 - formula_p2_ := NULL;
54.3916 - formula_p3_ := NULL;
54.3917 - formula_p4_ := NULL;
54.3918 - formula_p5_ := NULL;
54.3919 - formula_p6_ := NULL;
54.3920 - formula_p7_ := NULL;
54.3921 - formula_p8_ := NULL;
54.3922 - formula_p9_ := NULL;
54.3923 - formula_p10_ := NULL;
54.3924 - formula_p11_ := NULL;
54.3925 - formula_p12_ := NULL;
54.3926 - END IF;
54.3927 - IF (period_count_ = 2) THEN
54.3928 - -- ifs_assert_safe samwlk 070515
54.3929 - EXECUTE IMMEDIATE 'select '||plan_formula_year_||','||plan_formula_p1_||','||plan_formula_p2_||' from dual'
54.3930 - INTO
54.3931 - formula_year_,formula_p1_,formula_p2_;
54.3932 -
54.3933 - formula_p3_ := NULL;
54.3934 - formula_p4_ := NULL;
54.3935 - formula_p5_ := NULL;
54.3936 - formula_p6_ := NULL;
54.3937 - formula_p7_ := NULL;
54.3938 - formula_p8_ := NULL;
54.3939 - formula_p9_ := NULL;
54.3940 - formula_p10_ := NULL;
54.3941 - formula_p11_ := NULL;
54.3942 - formula_p12_ := NULL;
54.3943 - END IF;
54.3944 - IF (period_count_ = 3) THEN
54.3945 - -- ifs_assert_safe samwlk 070515
54.3946 - EXECUTE IMMEDIATE 'select '||plan_formula_year_||','||plan_formula_p1_||','||plan_formula_p2_||','
54.3947 - ||plan_formula_p3_||' from dual'
54.3948 - INTO
54.3949 - formula_year_,formula_p1_,formula_p2_,formula_p3_;
54.3950 -
54.3951 - formula_p4_ := NULL;
54.3952 - formula_p5_ := NULL;
54.3953 - formula_p6_ := NULL;
54.3954 - formula_p7_ := NULL;
54.3955 - formula_p8_ := NULL;
54.3956 - formula_p9_ := NULL;
54.3957 - formula_p10_ := NULL;
54.3958 - formula_p11_ := NULL;
54.3959 - formula_p12_ := NULL;
54.3960 - END IF;
54.3961 - IF (period_count_ = 4) THEN
54.3962 - -- ifs_assert_safe samwlk 070515
54.3963 - EXECUTE IMMEDIATE 'select '||plan_formula_year_||','||plan_formula_p1_||','||plan_formula_p2_||','
54.3964 - ||plan_formula_p3_||','||plan_formula_p4_||' from dual'
54.3965 - INTO
54.3966 - formula_year_,formula_p1_,formula_p2_,formula_p3_,formula_p4_;
54.3967 -
54.3968 - formula_p5_ := NULL;
54.3969 - formula_p6_ := NULL;
54.3970 - formula_p7_ := NULL;
54.3971 - formula_p8_ := NULL;
54.3972 - formula_p9_ := NULL;
54.3973 - formula_p10_ := NULL;
54.3974 - formula_p11_ := NULL;
54.3975 - formula_p12_ := NULL;
54.3976 - END IF;
54.3977 - IF (period_count_ = 5) THEN
54.3978 - -- ifs_assert_safe samwlk 070515
54.3979 - EXECUTE IMMEDIATE 'select '||plan_formula_year_||','||plan_formula_p1_||','||plan_formula_p2_||','
54.3980 - ||plan_formula_p3_||','||plan_formula_p4_||','||plan_formula_p5_||' from dual'
54.3981 - INTO
54.3982 - formula_year_,formula_p1_,formula_p2_,formula_p3_,formula_p4_,formula_p5_;
54.3983 -
54.3984 - formula_p6_ := NULL;
54.3985 - formula_p7_ := NULL;
54.3986 - formula_p8_ := NULL;
54.3987 - formula_p9_ := NULL;
54.3988 - formula_p10_ := NULL;
54.3989 - formula_p11_ := NULL;
54.3990 - formula_p12_ := NULL;
54.3991 - END IF;
54.3992 - IF (period_count_ = 6) THEN
54.3993 - -- ifs_assert_safe samwlk 070515
54.3994 - EXECUTE IMMEDIATE 'select '||plan_formula_year_||','||plan_formula_p1_||','||plan_formula_p2_||','
54.3995 - ||plan_formula_p3_||','||plan_formula_p4_||','||plan_formula_p5_||','||plan_formula_p6_||' from dual'
54.3996 - INTO
54.3997 - formula_year_,formula_p1_,formula_p2_,formula_p3_,formula_p4_,formula_p5_,formula_p6_;
54.3998 -
54.3999 - formula_p7_ := NULL;
54.4000 - formula_p8_ := NULL;
54.4001 - formula_p9_ := NULL;
54.4002 - formula_p10_ := NULL;
54.4003 - formula_p11_ := NULL;
54.4004 - formula_p12_ := NULL;
54.4005 - END IF;
54.4006 - IF (period_count_ = 7) THEN
54.4007 - -- ifs_assert_safe samwlk 070515
54.4008 - EXECUTE IMMEDIATE 'select '||plan_formula_year_||','||plan_formula_p1_||','||plan_formula_p2_||','
54.4009 - ||plan_formula_p3_||','||plan_formula_p4_||','||plan_formula_p5_||','||plan_formula_p6_||','
54.4010 - ||plan_formula_p7_||' from dual'
54.4011 - INTO
54.4012 - formula_year_,formula_p1_,formula_p2_,formula_p3_,formula_p4_,formula_p5_,formula_p6_,formula_p7_;
54.4013 -
54.4014 - formula_p8_ := NULL;
54.4015 - formula_p9_ := NULL;
54.4016 - formula_p10_ := NULL;
54.4017 - formula_p11_ := NULL;
54.4018 - formula_p12_ := NULL;
54.4019 - END IF;
54.4020 - IF (period_count_ = 8) THEN
54.4021 - -- ifs_assert_safe samwlk 070515
54.4022 - EXECUTE IMMEDIATE 'select '||plan_formula_year_||','||plan_formula_p1_||','||plan_formula_p2_||','
54.4023 - ||plan_formula_p3_||','||plan_formula_p4_||','||plan_formula_p5_||','||plan_formula_p6_||','
54.4024 - ||plan_formula_p7_||','||plan_formula_p8_||' from dual'
54.4025 - INTO
54.4026 - formula_year_,formula_p1_,formula_p2_,formula_p3_,formula_p4_,formula_p5_,formula_p6_,formula_p7_,
54.4027 - formula_p8_;
54.4028 -
54.4029 - formula_p9_ := NULL;
54.4030 - formula_p10_ := NULL;
54.4031 - formula_p11_ := NULL;
54.4032 - formula_p12_ := NULL;
54.4033 - END IF;
54.4034 - IF (period_count_ = 9) THEN
54.4035 - -- ifs_assert_safe samwlk 070515
54.4036 - EXECUTE IMMEDIATE 'select '||plan_formula_year_||','||plan_formula_p1_||','||plan_formula_p2_||','
54.4037 - ||plan_formula_p3_||','||plan_formula_p4_||','||plan_formula_p5_||','||plan_formula_p6_||','
54.4038 - ||plan_formula_p7_||','||plan_formula_p8_||','||plan_formula_p9_||' from dual'
54.4039 - INTO
54.4040 - formula_year_,formula_p1_,formula_p2_,formula_p3_,formula_p4_,formula_p5_,formula_p6_,formula_p7_,
54.4041 - formula_p8_,formula_p9_;
54.4042 -
54.4043 - formula_p10_ := NULL;
54.4044 - formula_p11_ := NULL;
54.4045 - formula_p12_ := NULL;
54.4046 - END IF;
54.4047 - IF (period_count_ = 10) THEN
54.4048 - -- ifs_assert_safe samwlk 070515
54.4049 - EXECUTE IMMEDIATE 'select '||plan_formula_year_||','||plan_formula_p1_||','||plan_formula_p2_||','
54.4050 - ||plan_formula_p3_||','||plan_formula_p4_||','||plan_formula_p5_||','||plan_formula_p6_||','
54.4051 - ||plan_formula_p7_||','||plan_formula_p8_||','||plan_formula_p9_||','||plan_formula_p10_||' from dual'
54.4052 - INTO
54.4053 - formula_year_,formula_p1_,formula_p2_,formula_p3_,formula_p4_,formula_p5_,formula_p6_,formula_p7_,
54.4054 - formula_p8_,formula_p9_,formula_p10_;
54.4055 -
54.4056 - formula_p11_ := NULL;
54.4057 - formula_p12_ := NULL;
54.4058 - END IF;
54.4059 - IF (period_count_ = 11) THEN
54.4060 - -- ifs_assert_safe samwlk 070515
54.4061 - EXECUTE IMMEDIATE 'select '||plan_formula_year_||','||plan_formula_p1_||','||plan_formula_p2_||','
54.4062 - ||plan_formula_p3_||','||plan_formula_p4_||','||plan_formula_p5_||','||plan_formula_p6_||','
54.4063 - ||plan_formula_p7_||','||plan_formula_p8_||','||plan_formula_p9_||','||plan_formula_p10_||','
54.4064 - ||plan_formula_p11_||' from dual'
54.4065 - INTO
54.4066 - formula_year_,formula_p1_,formula_p2_,formula_p3_,formula_p4_,formula_p5_,formula_p6_,formula_p7_,
54.4067 - formula_p8_,formula_p9_,formula_p10_,formula_p11_;
54.4068 -
54.4069 - formula_p12_ := NULL;
54.4070 - END IF;
54.4071 - IF (period_count_ = 12) THEN
54.4072 - -- ifs_assert_safe samwlk 070515
54.4073 - EXECUTE IMMEDIATE 'select '||plan_formula_year_||','||plan_formula_p1_||','||plan_formula_p2_||','
54.4074 - ||plan_formula_p3_||','||plan_formula_p4_||','||plan_formula_p5_||','||plan_formula_p6_||','
54.4075 - ||plan_formula_p7_||','||plan_formula_p8_||','||plan_formula_p9_||','||plan_formula_p10_||','
54.4076 - ||plan_formula_p11_||','||plan_formula_p12_||' from dual'
54.4077 - INTO
54.4078 - formula_year_,formula_p1_,formula_p2_,formula_p3_,formula_p4_,formula_p5_,formula_p6_,formula_p7_,
54.4079 - formula_p8_,formula_p9_,formula_p10_,formula_p11_,formula_p12_;
54.4080 - END IF;
54.4081 - UPDATE scorecard_input_value_tab
54.4082 - SET
54.4083 - year_value = formula_year_,
54.4084 - p1_value = formula_p1_,
54.4085 - p2_value = formula_p2_,
54.4086 - p3_value = formula_p3_,
54.4087 - p4_value = formula_p4_,
54.4088 - p5_value = formula_p5_,
54.4089 - p6_value = formula_p6_,
54.4090 - p7_value = formula_p7_,
54.4091 - p8_value = formula_p8_,
54.4092 - p9_value = formula_p9_,
54.4093 - p10_value = formula_p10_,
54.4094 - p11_value = formula_p11_,
54.4095 - p12_value = formula_p12_
54.4096 - WHERE
54.4097 - environment = environment_ AND
54.4098 - scorecard = scorecard_ AND
54.4099 - year = year_ AND
54.4100 - version = version_ AND
54.4101 - scorecard_object = measure_;
54.4102 - -- Bug 76573 Begin. Set the measure to planned state
54.4103 - Set_To_Planned(environment_, scorecard_, year_, version_, measure_);
54.4104 - -- Bug 76573 End
54.4105 -
54.4106 - ELSE
54.4107 - Error_SYS.Appl_General(lu_name_,'ERRPLANFOR : No Calculation formula is connected to the measure :P1 in Scorecard :P2',Scorecard_Measure_API.Get_Description(measure_),Scorecard_API.Get_Description(scorecard_,environment_));
54.4108 - END IF;
54.4109 -
54.4110 -END Calculate_Measures;
54.4111 -PROCEDURE Update_Referred_Component (
54.4112 - check_reference_ IN OUT VARCHAR2,
54.4113 - environment_ IN VARCHAR2,
54.4114 - scorecard_ IN VARCHAR2,
54.4115 - year_ IN VARCHAR2,
54.4116 - version_ IN VARCHAR2,
54.4117 - scorecard_object_ IN VARCHAR2 )
54.4118 -IS
54.4119 - rec_ SCORECARD_INPUT_VALUE_TAB%ROWTYPE;
54.4120 - CURSOR value_cur IS
54.4121 - SELECT year_value,p1_value,p2_value,p3_value,p4_value,p5_value,p6_value,p7_value,p8_value,p9_value,p10_value,
54.4122 - p11_value,p12_value
54.4123 - FROM scorecard_input_value_tab
54.4124 - WHERE environment = environment_
54.4125 - AND scorecard = scorecard_
54.4126 - AND year = year_
54.4127 - AND version = version_
54.4128 - AND scorecard_object = scorecard_object_;
54.4129 - CURSOR component_cur IS
54.4130 - SELECT level_id
54.4131 - FROM scorecard_structure_tab
54.4132 - WHERE environment = environment_
54.4133 - AND scorecard = scorecard_
54.4134 - AND planning_type = 'REFERENCE'
54.4135 - AND planning_reference = scorecard_object_
54.4136 - AND child_level_type = 'COMPONENT';
54.4137 - measure_format_ NUMBER;
54.4138 -BEGIN
54.4139 - General_SYS.Init_Method(lu_name_, '&PKG', 'Update_Referred_Component');
54.4140 - FOR component_cur_ IN component_cur LOOP
54.4141 - check_reference_ := 'TRUE';
54.4142 - rec_ := Lock_By_Keys___(environment_,scorecard_,year_,version_,component_cur_.level_id);
54.4143 - FOR value_cur_ IN value_cur LOOP
54.4144 - measure_format_ := TO_NUMBER(Scorecard_Measure_API.Get_Measure_Format(component_cur_.level_id));
54.4145 - UPDATE scorecard_input_value_tab
54.4146 - SET year_value = value_cur_.year_value * measure_format_,
54.4147 - p1_value = value_cur_.p1_value * measure_format_,
54.4148 - p2_value = value_cur_.p2_value * measure_format_,
54.4149 - p3_value = value_cur_.p3_value * measure_format_,
54.4150 - p4_value = value_cur_.p4_value * measure_format_,
54.4151 - p5_value = value_cur_.p5_value * measure_format_,
54.4152 - p6_value = value_cur_.p6_value * measure_format_,
54.4153 - p7_value = value_cur_.p7_value * measure_format_,
54.4154 - p8_value = value_cur_.p8_value * measure_format_,
54.4155 - p9_value = value_cur_.p9_value * measure_format_,
54.4156 - p10_value = value_cur_.p10_value * measure_format_,
54.4157 - p11_value = value_cur_.p11_value * measure_format_,
54.4158 - p12_value = value_cur_.p12_value * measure_format_
54.4159 - WHERE
54.4160 - environment = environment_ AND
54.4161 - scorecard = scorecard_ AND
54.4162 - year = year_ AND
54.4163 - version = version_ AND
54.4164 - scorecard_object = component_cur_.level_id;
54.4165 - END LOOP;
54.4166 - Set_To_Planned(environment_,scorecard_,year_,version_,component_cur_.level_id);
54.4167 - END LOOP;
54.4168 -END Update_Referred_Component;
54.4169 -PROCEDURE Delete_By_Passed_Value (
54.4170 - key_value_ IN VARCHAR2,
54.4171 - year_ IN VARCHAR2 )
54.4172 -IS
54.4173 - dummy_ SCORECARD_INPUT_VALUE_TAB%ROWTYPE;
54.4174 - info_ VARCHAR2(2000);
54.4175 - --objversion_ VARCHAR2(2000);
54.4176 - CURSOR Get_rows IS
54.4177 - SELECT objid,objversion FROM scorecard_input_value
54.4178 - WHERE environment=key_value_
54.4179 - AND year=year_ ;
54.4180 -BEGIN
54.4181 - General_SYS.Init_Method(lu_name_, 'SCORECARD_INPUT_VALUE_API', 'Delete_By_Passed_Value');
54.4182 - FOR get_rec in Get_rows loop
54.4183 - -- Delete___(get_rec.objid,get_rec);
54.4184 - Remove__ (info_ ,get_rec.objid ,get_rec.objversion,'DO' );
54.4185 - end loop;
54.4186 -END Delete_By_Passed_Value;
54.4187 -PROCEDURE Delete_Version_Passed (
54.4188 - environment_ IN VARCHAR2,
54.4189 - version_ IN VARCHAR2 )
54.4190 -IS
54.4191 - info_ VARCHAR2(2000);
54.4192 - CURSOR Get_rows IS
54.4193 - SELECT objid,objversion FROM scorecard_input_value
54.4194 - WHERE environment=environment_
54.4195 - AND version=version_ ;
54.4196 -
54.4197 -BEGIN
54.4198 - General_SYS.Init_Method(lu_name_, 'SCORECARD_INPUT_VALUE_API', 'Delete_Version_passed');
54.4199 - FOR get_rec in Get_rows loop
54.4200 - Remove__ (info_ ,get_rec.objid ,get_rec.objversion,'DO' );
54.4201 - end loop;
54.4202 -END Delete_Version_Passed;
54.4203 -PROCEDURE Delete_Scorecard_Passed (
54.4204 - environment_ IN VARCHAR2,
54.4205 - scorecard_ IN VARCHAR2 )
54.4206 -IS
54.4207 -
54.4208 - info_ VARCHAR2(2000);
54.4209 - CURSOR Get_rows IS
54.4210 - SELECT objid,objversion FROM scorecard_input_value
54.4211 - WHERE environment=environment_
54.4212 - AND scorecard=scorecard_ ;
54.4213 -BEGIN
54.4214 - General_SYS.Init_Method(lu_name_, 'SCORECARD_INPUT_VALUE_API', 'Delete_Scorecard_passed');
54.4215 - FOR get_rec in Get_rows loop
54.4216 - Remove__ (info_ ,get_rec.objid ,get_rec.objversion,'DO' );
54.4217 - end loop;
54.4218 -END Delete_Scorecard_Passed;
54.4219 -PROCEDURE Insert_Data (
54.4220 - env_ IN VARCHAR2,
54.4221 - scr_ IN VARCHAR2,
54.4222 - year_ IN VARCHAR2,
54.4223 - version_ IN VARCHAR2,
54.4224 - obj_ IN VARCHAR2,
54.4225 - type_ IN VARCHAR2,
54.4226 - p1_ IN VARCHAR2,
54.4227 - p2_ IN VARCHAR2,
54.4228 - p3_ IN VARCHAR2,
54.4229 - p4_ IN VARCHAR2,
54.4230 - p5_ IN VARCHAR2,
54.4231 - p6_ IN VARCHAR2,
54.4232 - p7_ IN VARCHAR2,
54.4233 - p8_ IN VARCHAR2,
54.4234 - p9_ IN VARCHAR2,
54.4235 - p10_ IN VARCHAR2,
54.4236 - p11_ IN VARCHAR2,
54.4237 - p12_ IN VARCHAR2 )
54.4238 -IS
54.4239 - newrec_ SCORECARD_INPUT_VALUE_TAB%ROWTYPE;
54.4240 - objid_ VARCHAR2(2000);
54.4241 - objversion_ VARCHAR2(2000);
54.4242 - attr_ VARCHAR2(2000);
54.4243 -
54.4244 -BEGIN
54.4245 - General_SYS.Init_Method(lu_name_, '&PKG', 'Insert_Data');
54.4246 - newrec_.environment := env_;
54.4247 - newrec_.scorecard := scr_;
54.4248 - newrec_.year := year_;
54.4249 - newrec_.version := version_ ;
54.4250 - newrec_.scorecard_object := obj_;
54.4251 - newrec_.object_type := type_;
54.4252 - newrec_.p1_key := p1_;
54.4253 - newrec_.p2_key := p2_;
54.4254 - newrec_.p3_key := p3_;
54.4255 - newrec_.p4_key := p4_;
54.4256 - newrec_.p5_key := p5_;
54.4257 - newrec_.p6_key := p6_;
54.4258 - newrec_.p7_key := p7_;
54.4259 - newrec_.p8_key := p8_;
54.4260 - newrec_.p9_key := p9_;
54.4261 - newrec_.p10_key :=p10_;
54.4262 - newrec_.p11_key :=p11_;
54.4263 - newrec_.p12_key :=p12_;
54.4264 - newrec_.p12_key :=p12_;
54.4265 - newrec_.action :='TRUE';
54.4266 -
54.4267 - Insert___(objid_, objversion_, newrec_, attr_);
54.4268 -END Insert_Data;
54.4269 -PROCEDURE Modify_Data (
54.4270 - p1_ IN VARCHAR2,
54.4271 - p2_ IN VARCHAR2,
54.4272 - p3_ IN VARCHAR2,
54.4273 - p4_ IN VARCHAR2,
54.4274 - p5_ IN VARCHAR2,
54.4275 - p6_ IN VARCHAR2,
54.4276 - p7_ IN VARCHAR2,
54.4277 - p8_ IN VARCHAR2,
54.4278 - p9_ IN VARCHAR2,
54.4279 - p10_ IN VARCHAR2,
54.4280 - p11_ IN VARCHAR2,
54.4281 - p12_ IN VARCHAR2,
54.4282 - env_ IN VARCHAR2,
54.4283 - scr_ IN VARCHAR2,
54.4284 - year_ IN VARCHAR2,
54.4285 - version_ IN VARCHAR2,
54.4286 - level_ IN VARCHAR2 )
54.4287 -IS
54.4288 - objid_ VARCHAR2(2000);
54.4289 - objversion_ VARCHAR2(2000);
54.4290 - info_ VARCHAR2(32000);
54.4291 - attr_ VARCHAR2(32000);
54.4292 -BEGIN
54.4293 - General_SYS.Init_Method(lu_name_, '&PKG', 'Modify_Data');
54.4294 - Get_Id_Version_By_Keys___(objid_,objversion_,env_ ,scr_,year_,version_,level_);
54.4295 - Client_SYS.Clear_Attr(attr_);
54.4296 - Client_SYS.Add_To_Attr('P1_KEY', p1_, attr_);
54.4297 - Client_SYS.Add_To_Attr('P2_KEY', p2_, attr_);
54.4298 - Client_SYS.Add_To_Attr('P3_KEY', p3_, attr_);
54.4299 - Client_SYS.Add_To_Attr('P4_KEY', p4_, attr_);
54.4300 - Client_SYS.Add_To_Attr('P5_KEY', p5_, attr_);
54.4301 - Client_SYS.Add_To_Attr('P6_KEY', p6_, attr_);
54.4302 - Client_SYS.Add_To_Attr('P7_KEY', p7_, attr_);
54.4303 - Client_SYS.Add_To_Attr('P8_KEY', p8_, attr_);
54.4304 - Client_SYS.Add_To_Attr('P9_KEY', p9_, attr_);
54.4305 - Client_SYS.Add_To_Attr('P10_KEY', p10_, attr_);
54.4306 - Client_SYS.Add_To_Attr('P11_KEY', p11_, attr_);
54.4307 - Client_SYS.Add_To_Attr('P12_KEY', p12_, attr_);
54.4308 - Client_SYS.Add_To_Attr('ACTION', 'TRUE',attr_);
54.4309 - Modify__(info_,objid_,objversion_,attr_,'DO');
54.4310 -
54.4311 -
54.4312 -END Modify_Data;
54.4313 -PROCEDURE Delete_Data (
54.4314 - env_ IN VARCHAR2,
54.4315 - scr_ IN VARCHAR2,
54.4316 - year_ IN VARCHAR2,
54.4317 - version_ IN VARCHAR2,
54.4318 - level_ IN VARCHAR2 )
54.4319 -IS
54.4320 -
54.4321 - objid_ VARCHAR2(2000);
54.4322 - objversion_ VARCHAR2(2000);
54.4323 - info_ VARCHAR2(32000);
54.4324 - attr_ VARCHAR2(32000);
54.4325 -BEGIN
54.4326 - General_SYS.Init_Method(lu_name_, '&PKG', 'Delete_Data');
54.4327 - Get_Id_Version_By_Keys___(objid_,objversion_,env_ ,scr_,year_,version_,level_);
54.4328 - Remove__ (info_ ,objid_,objversion_,'DO' );
54.4329 -END Delete_Data;
54.4330 -PROCEDURE Scorecard_Inputs_By_Batch (
54.4331 - environment_ IN VARCHAR2,
54.4332 - scorecard_ IN VARCHAR2,
54.4333 - years_ IN VARCHAR2,
54.4334 - version_ IN VARCHAR2,
54.4335 - execution_ IN VARCHAR2 )
54.4336 -IS
54.4337 - job_id_ NUMBER;
54.4338 - method_ VARCHAR2(32000);
54.4339 - attr_ VARCHAR2(32000);
54.4340 -BEGIN
54.4341 - General_SYS.Init_Method(lu_name_, 'SCORECARD_INPUT_VALUE_API','Scorecard_Inputs_By_Batch');
54.4342 - Client_SYS.Clear_Attr(attr_);
54.4343 - Client_SYS.Add_To_Attr('ENVIRONMENT',environment_,attr_);
54.4344 - Client_SYS.Add_To_Attr('SCORECARD',scorecard_ ,attr_);
54.4345 - Client_SYS.Add_To_Attr('YEAR',years_,attr_);
54.4346 - Client_SYS.Add_To_Attr('VERSION',version_,attr_);
54.4347 - method_ := 'Scorecard_Input_Value_API.Start_Inputing_Scorecards('''''||attr_||''''')';
54.4348 - IF (execution_ != 'NOW') THEN
54.4349 - Batch_SYS.New_Job(job_id_,method_,execution_);
54.4350 - ELSE
54.4351 - Input_Scorecard_Data (attr_);
54.4352 - END IF;
54.4353 -END Scorecard_Inputs_By_Batch;
54.4354 -PROCEDURE Input_Scorecard_Data (
54.4355 - attr_ IN VARCHAR2 )
54.4356 -IS
54.4357 -
54.4358 - TYPE RefCurTyp IS REF CURSOR;
54.4359 - rcScr RefCurTyp;
54.4360 - rcYear RefCurTyp;
54.4361 - rcVer RefCurTyp;
54.4362 - ssql_ varchar2(32000);
54.4363 - ssql2_ varchar2(32000);
54.4364 - ssql3_ varchar2(32000);
54.4365 - tempscr_ varchar2(20);
54.4366 - tempver_ varchar2(20);
54.4367 - tempyear_ varchar2(20);
54.4368 - env VARCHAR2(10);
54.4369 - scorecard_ VARCHAR2(32000);
54.4370 - years_ VARCHAR2(2000);
54.4371 - version_ VARCHAR2(2000);
54.4372 - period1_ VARCHAR2(10);
54.4373 - period2_ VARCHAR2(10);
54.4374 - period3_ VARCHAR2(10);
54.4375 - period4_ VARCHAR2(10);
54.4376 - period5_ VARCHAR2(10);
54.4377 - period6_ VARCHAR2(10);
54.4378 - period7_ VARCHAR2(10);
54.4379 - period8_ VARCHAR2(10);
54.4380 - period9_ VARCHAR2(10);
54.4381 - period10_ VARCHAR2(10);
54.4382 - period11_ VARCHAR2(10);
54.4383 - period12_ VARCHAR2(10);
54.4384 - ExistEnv VARCHAR2(10);
54.4385 - dummy2_ VARCHAR2(10);
54.4386 - dummy_ NUMBER;
54.4387 - scr_exist NUMBER;
54.4388 - mea_exist NUMBER;
54.4389 - mea_ver_exist NUMBER;
54.4390 - mea_year_exist NUMBER;
54.4391 - mea_year_conn_exist NUMBER;
54.4392 - comp_exist NUMBER;
54.4393 - comp_ver_exist NUMBER;
54.4394 - comp_year_exist NUMBER;
54.4395 - comp_year_conn_exist NUMBER;
54.4396 - del_mea_rec NUMBER;
54.4397 - del_comp_rec NUMBER;
54.4398 - insert_mea_rec NUMBER;
54.4399 - insert_comp_rec NUMBER;
54.4400 - rec_exists NUMBER;
54.4401 - rec_exists2 NUMBER;
54.4402 - rec_not_exist NUMBER;
54.4403 - rec_not_exist2 NUMBER;
54.4404 - rec_exists_del NUMBER;
54.4405 - rec_exists_del2 NUMBER;
54.4406 -
54.4407 - CURSOR get_year_conn(env_ varchar2, year_ varchar2) IS
54.4408 - SELECT year
54.4409 - FROM scorecard_period_tab
54.4410 - WHERE environment = env_
54.4411 - AND year = year_;
54.4412 -
54.4413 - CURSOR get_mea(env_ varchar2, scr_ varchar2) IS
54.4414 - SELECT level_id
54.4415 - FROM scorecard_structure_tab
54.4416 - WHERE environment = env_
54.4417 - AND scorecard = scr_
54.4418 - AND child_level_type = 'MEASURE';
54.4419 -
54.4420 - CURSOR get_comp(env_ varchar2, scr_ varchar2, mea_ varchar2) IS
54.4421 - SELECT level_id
54.4422 - FROM scorecard_structure_tab
54.4423 - WHERE environment = env_
54.4424 - AND scorecard = scr_
54.4425 - AND child_level_type = 'COMPONENT'
54.4426 - AND parent_id = mea_;
54.4427 -
54.4428 - CURSOR chk_exist(env_ varchar2, scr_ varchar2, year_ varchar2, ver_ varchar2, scr_obj_ varchar2) IS
54.4429 - SELECT 1
54.4430 - FROM scorecard_input_value_tab
54.4431 - WHERE environment = env_
54.4432 - AND scorecard = scr_
54.4433 - AND year = year_
54.4434 - AND version = ver_
54.4435 - AND scorecard_object = scr_obj_;
54.4436 -BEGIN
54.4437 - General_SYS.Init_Method(lu_name_, '&PKG', 'Input_Scorecard_Data');
54.4438 - env:=Client_SYS.Get_Item_Value('ENVIRONMENT',attr_);
54.4439 - scorecard_:= Client_SYS.Get_Item_Value('SCORECARD',attr_);
54.4440 - version_ := Client_SYS.Get_Item_Value('VERSION',attr_);
54.4441 - years_ := Client_SYS.Get_Item_Value('YEAR',attr_);
54.4442 - scorecard_:= Replace(scorecard_,'^','''');
54.4443 - version_ := Replace(version_,'^','''');
54.4444 - years_ := Replace(years_,'^','''');
54.4445 - scr_exist := 0;
54.4446 - mea_exist := 0;
54.4447 - mea_ver_exist := 0;
54.4448 - mea_year_exist := 0;
54.4449 - mea_year_conn_exist := 0;
54.4450 - comp_exist := 0;
54.4451 - comp_ver_exist := 0;
54.4452 - comp_year_exist := 0;
54.4453 - comp_year_conn_exist := 0;
54.4454 - del_mea_rec := 0;
54.4455 - del_comp_rec := 0;
54.4456 - insert_mea_rec := 0;
54.4457 - insert_comp_rec := 0;
54.4458 - rec_exists := 0;
54.4459 - rec_exists2 := 0;
54.4460 - rec_not_exist := 0;
54.4461 - rec_not_exist2 := 0;
54.4462 - rec_exists_del := 0;
54.4463 - rec_exists_del2 := 0;
54.4464 -
54.4465 - IF scorecard_ IS null then
54.4466 - ssql_:='SELECT scorecard FROM scorecard_tab WHERE environment='|| '''' || env || '''' || ' AND (rowstate = '||'''Open''' || ' OR rowstate = '||'''Published'''||')';
54.4467 - else
54.4468 - ssql_ := 'SELECT scorecard FROM scorecard_tab WHERE environment='|| '''' || env || '''' || ' AND SCORECARD IN (' || scorecard_ || ')' ;
54.4469 - end if;
54.4470 -
54.4471 - if version_ IS null then
54.4472 - ssql2_:= 'SELECT version FROM measure_version_tab WHERE environment ='|| '''' || env || '''' || 'AND USE_VERSIONS = ' || '''TRUE''' || ' AND (VERSION NOT IN (' || '''ASS'''||','||'''IND'''||','||'''TRN'''||')) AND rowstate='|| '''Open''';
54.4473 - else
54.4474 - ssql2_:= 'SELECT version FROM measure_version_tab WHERE environment ='|| '''' || env || '''' || ' AND VERSION IN (' || version_ || ')' ;
54.4475 - end if;
54.4476 -
54.4477 - if years_ IS null then
54.4478 - ssql3_:= 'SELECT year FROM environment_year_tab WHERE environment ='|| '''' || env || '''' ||' AND rowstate= '||'''Open''';
54.4479 - else
54.4480 - ssql3_:= 'SELECT year FROM environment_year_tab WHERE environment ='|| '''' || env || '''' || ' AND YEAR IN (' || years_ || ')' ;
54.4481 - end if;
54.4482 -
54.4483 - -- ifs_assert_safe shsalk 20060117
54.4484 - open rcScr for ssql_;
54.4485 -
54.4486 - LOOP
54.4487 - FETCH rcScr INTO tempscr_;
54.4488 - EXIT WHEN rcScr%NOTFOUND;
54.4489 - scr_exist := 1;
54.4490 -
54.4491 - FOR meaNo IN get_mea(env, tempscr_) LOOP
54.4492 - -- ifs_assert_safe shsalk 20060117
54.4493 - open rcVer for ssql2_;
54.4494 - LOOP
54.4495 - FETCH rcVer INTO tempver_;
54.4496 - EXIT WHEN rcVer%NOTFOUND;
54.4497 - -- ifs_assert_safe shsalk 20060117
54.4498 - open rcYear for ssql3_;
54.4499 - LOOP
54.4500 - FETCH rcYear INTO tempyear_;
54.4501 - EXIT WHEN rcYear%NOTFOUND;
54.4502 - Return_Periods(period1_,period2_,period3_,period4_,period5_,period6_,period7_,
54.4503 - period8_,period9_,period10_,period11_,period12_,env, tempyear_);
54.4504 -
54.4505 - IF (tempver_ != 'ASS') THEN
54.4506 -
54.4507 - OPEN get_year_conn(env, tempyear_);
54.4508 - FETCH get_year_conn INTO dummy2_;
54.4509 - IF (get_year_conn%FOUND) THEN
54.4510 - rec_not_exist := 1;
54.4511 - ELSE
54.4512 - rec_not_exist := 0;
54.4513 - END IF;
54.4514 - CLOSE get_year_conn;
54.4515 -
54.4516 - IF (rec_not_exist = 1) THEN
54.4517 - mea_year_conn_exist := 1;
54.4518 -
54.4519 - OPEN chk_exist(env, tempscr_, tempyear_, tempver_, meaNo.level_id);
54.4520 - FETCH chk_exist INTO dummy_;
54.4521 - IF (chk_exist%FOUND) THEN
54.4522 - rec_exists := 1;
54.4523 - ELSE
54.4524 - rec_exists := 0;
54.4525 - END IF;
54.4526 - CLOSE chk_exist;
54.4527 -
54.4528 - IF (rec_exists = 1) THEN
54.4529 - Modify_Data(period1_,period2_,period3_,period4_,period5_,period6_,
54.4530 - period7_,period8_,period9_,period10_,period11_,period12_,
54.4531 - env,tempscr_,tempyear_,tempver_,meaNo.level_id);
54.4532 - ELSE
54.4533 - Insert_Data(env,tempscr_,tempyear_,tempver_,meaNo.level_id,'MEASURE',
54.4534 - period1_,period2_,period3_,period4_,period5_,period6_,
54.4535 - period7_,period8_,period9_,period10_,period11_,period12_);
54.4536 - END IF;
54.4537 - Environment_Year_Api.Force_Open(env,tempyear_);
54.4538 - Scorecard_Api.Force_Open(env,tempscr_);
54.4539 - Measure_Version_Api.Force_Open(env,tempver_);
54.4540 - insert_mea_rec := 1;
54.4541 -
54.4542 - ELSE
54.4543 -
54.4544 - OPEN chk_exist(env, tempscr_, tempyear_, tempver_, meaNo.level_id);
54.4545 - FETCH chk_exist INTO dummy_;
54.4546 - IF (chk_exist%FOUND) THEN
54.4547 - rec_exists_del := 1;
54.4548 - ELSE
54.4549 - rec_exists_del:= 0;
54.4550 - END IF;
54.4551 - CLOSE chk_exist;
54.4552 -
54.4553 - IF (rec_exists_del = 1) THEN
54.4554 - Delete_Data(env,tempscr_,tempyear_,tempver_,meaNo.level_id);
54.4555 - del_mea_rec := 1;
54.4556 - END IF;
54.4557 - END IF;
54.4558 -
54.4559 - END IF;
54.4560 -
54.4561 - END LOOP;
54.4562 - close rcYear;
54.4563 - END LOOP;
54.4564 - close rcVer;
54.4565 - END LOOP;
54.4566 -
54.4567 - FOR meaNo IN get_mea(env, tempscr_) LOOP
54.4568 - FOR compNo IN get_comp(env, tempscr_, meaNo.level_id) LOOP
54.4569 - comp_exist := 1;
54.4570 - -- ifs_assert_safe shsalk 20060117
54.4571 - open rcVer for ssql2_;
54.4572 - LOOP
54.4573 - FETCH rcVer INTO tempver_;
54.4574 - EXIT WHEN rcVer%NOTFOUND;
54.4575 - comp_ver_exist := 1;
54.4576 - -- ifs_assert_safe shsalk 20060117
54.4577 - open rcYear for ssql3_;
54.4578 - LOOP
54.4579 - FETCH rcYear INTO tempyear_;
54.4580 - EXIT WHEN rcYear%NOTFOUND;
54.4581 - comp_year_exist := 1;
54.4582 -
54.4583 - Return_Periods(period1_,period2_,period3_,period4_,period5_,period6_,period7_,
54.4584 - period8_,period9_,period10_,period11_,period12_,env, tempyear_);
54.4585 -
54.4586 - IF (tempver_ != 'ASS') THEN
54.4587 -
54.4588 - OPEN get_year_conn(env, tempyear_);
54.4589 - FETCH get_year_conn INTO dummy2_;
54.4590 - IF (get_year_conn%FOUND) THEN
54.4591 - rec_not_exist2 := 1;
54.4592 - ELSE
54.4593 - rec_not_exist2 := 0;
54.4594 - END IF;
54.4595 - CLOSE get_year_conn;
54.4596 -
54.4597 - IF (rec_not_exist2 = 1) THEN
54.4598 - comp_year_conn_exist := 1;
54.4599 -
54.4600 - OPEN chk_exist(env, tempscr_, tempyear_, tempver_, compNo.level_id);
54.4601 - FETCH chk_exist INTO dummy_;
54.4602 - IF (chk_exist%FOUND) THEN
54.4603 - rec_exists2 := 1;
54.4604 - ELSE
54.4605 - rec_exists2 := 0;
54.4606 - END IF;
54.4607 - CLOSE chk_exist;
54.4608 -
54.4609 - IF (rec_exists2 = 1) THEN
54.4610 - Modify_Data(period1_,period2_,period3_,period4_,period5_,period6_,
54.4611 - period7_,period8_,period9_,period10_,period11_,period12_,
54.4612 - env,tempscr_,tempyear_,tempver_,compNo.level_id);
54.4613 - ELSE
54.4614 - Insert_Data(env,tempscr_,tempyear_,tempver_,compNo.level_id,'COMPONENT',
54.4615 - period1_,period2_,period3_,period4_,period5_,period6_,
54.4616 - period7_,period8_,period9_,period10_,period11_,period12_);
54.4617 - END IF;
54.4618 - Environment_Year_Api.Force_Open(env,tempyear_);
54.4619 - Scorecard_Api.Force_Open(env,tempscr_);
54.4620 - Measure_Version_Api.Force_Open(env,tempver_);
54.4621 - insert_comp_rec := 1;
54.4622 -
54.4623 - ELSE
54.4624 -
54.4625 - OPEN chk_exist(env, tempscr_, tempyear_, tempver_, compNo.level_id);
54.4626 - FETCH chk_exist INTO dummy_;
54.4627 - IF (chk_exist%FOUND) THEN
54.4628 - rec_exists_del2 := 1;
54.4629 - ELSE
54.4630 - rec_exists_del2 := 0;
54.4631 - END IF;
54.4632 - CLOSE chk_exist;
54.4633 -
54.4634 - IF (rec_exists_del2 = 1) THEN
54.4635 - Delete_Data(env,tempscr_,tempyear_,tempver_, compNo.level_id);
54.4636 - del_comp_rec := 1;
54.4637 - END IF;
54.4638 - END IF;
54.4639 -
54.4640 - END IF;
54.4641 - END LOOP;
54.4642 - close rcYear;
54.4643 - END LOOP;
54.4644 - close rcVer;
54.4645 -
54.4646 - END LOOP;
54.4647 - END LOOP;
54.4648 -
54.4649 - END LOOP;
54.4650 - close rcScr;
54.4651 -
54.4652 -END Input_Scorecard_Data;
54.4653 -
54.4654 -PROCEDURE Start_Inputing_Scorecards (
54.4655 - attr_ IN VARCHAR2 )
54.4656 -IS
54.4657 - new_attr_ VARCHAR2(32000) := attr_;
54.4658 - desc_ VARCHAR2(2000);
54.4659 -BEGIN
54.4660 - General_SYS.Init_Method(lu_name_, '&PKG', 'Start_Inputing_Scorecards');
54.4661 - desc_ := Language_SYS.Translate_Constant (lu_name_, 'BGJOB_INPUTSSC:Update Scorecard Input Value Table.');
54.4662 - Transaction_SYS.Deferred_Call ('Scorecard_Input_Value_API.Input_Scorecard_Data',new_attr_, desc_);
54.4663 -END Start_Inputing_Scorecards;
54.4664 -PROCEDURE Hierachical_Distribution (
54.4665 - environment_ IN VARCHAR2,
54.4666 - scorecard_ IN VARCHAR2,
54.4667 - year_ IN VARCHAR2,
54.4668 - version_ IN VARCHAR2,
54.4669 - object_type_ IN VARCHAR2,
54.4670 - period_count_ IN NUMBER,
54.4671 - measure_ IN VARCHAR2 DEFAULT NULL )
54.4672 -IS
54.4673 - CURSOR get_scorecard_objects IS
54.4674 - SELECT scorecard_object
54.4675 - FROM scorecard_input_value_tab
54.4676 - WHERE scorecard=scorecard_
54.4677 - AND environment=environment_
54.4678 - AND object_type=object_type_
54.4679 - AND year=year_
54.4680 - AND version=version_
54.4681 - AND action='TRUE';
54.4682 -
54.4683 - CURSOR get_components(scorecard_id_ VARCHAR2) IS -- Move to scorecard structure
54.4684 - SELECT level_id
54.4685 - FROM scorecard_structure
54.4686 - WHERE parent_id=measure_
54.4687 - AND parent_level_type_db='MEASURE'
54.4688 - AND scorecard=scorecard_id_
54.4689 - AND environment=environment_;
54.4690 -
54.4691 - CURSOR get_child_scorecards IS -- Move to scorecard
54.4692 - SELECT scorecard
54.4693 - FROM scorecard
54.4694 - WHERE parent=scorecard_
54.4695 - AND environment=environment_;
54.4696 -
54.4697 - CURSOR check_component_selected (component_ VARCHAR2)IS
54.4698 - SELECT 1
54.4699 - FROM scorecard_input_value_tab
54.4700 - WHERE action='TRUE'
54.4701 - AND object_type='COMPONENT'
54.4702 - AND year=year_
54.4703 - AND version=version_
54.4704 - AND environment=environment_
54.4705 - AND scorecard=scorecard_
54.4706 - AND scorecard_object=component_;
54.4707 -
54.4708 - TYPE component_arr_type IS TABLE OF VARCHAR2(10)
54.4709 - INDEX BY BINARY_INTEGER;
54.4710 - component_arr_ component_arr_type;
54.4711 - index_ NUMBER;
54.4712 - parent_component_count_ NUMBER;
54.4713 - child_component_count_ NUMBER;
54.4714 - component_exist_ BOOLEAN;
54.4715 - sel_component_arr_ component_arr_type;
54.4716 - sel_index_ NUMBER;
54.4717 - temp_ NUMBER;
54.4718 -
54.4719 -BEGIN
54.4720 - General_SYS.Init_Method(lu_name_, '&PKG', 'Hierachical_Distribution');
54.4721 - IF object_type_ = 'COMPONENT' THEN
54.4722 - -- Get measure components in parent
54.4723 - index_:=0;
54.4724 - sel_index_:=0;
54.4725 - FOR components_ IN get_components(scorecard_) LOOP
54.4726 - index_:=index_+1;
54.4727 - component_arr_(index_):=components_.level_id;
54.4728 - OPEN check_component_selected (components_.level_id);
54.4729 - FETCH check_component_selected INTO temp_;
54.4730 - IF check_component_selected%FOUND THEN
54.4731 - sel_index_:=sel_index_+1;
54.4732 - sel_component_arr_(sel_index_):=components_.level_id;
54.4733 - END IF;
54.4734 - CLOSE check_component_selected;
54.4735 - END LOOP;
54.4736 -
54.4737 - IF index_>0 THEN
54.4738 - parent_component_count_:=index_;
54.4739 - FOR child_scorecards_ IN get_child_scorecards LOOP
54.4740 - child_component_count_:=0;
54.4741 - FOR components_ IN get_components(child_scorecards_.scorecard) LOOP
54.4742 - component_exist_:=FALSE;
54.4743 - FOR index_ IN 1 .. parent_component_count_ LOOP
54.4744 - IF component_arr_(index_)=components_.level_id THEN
54.4745 - component_exist_:=TRUE;
54.4746 - EXIT;
54.4747 - END IF;
54.4748 - END LOOP;
54.4749 - IF NOT component_exist_ THEN
54.4750 - Error_SYS.Appl_General(lu_name_,'SAMESTRUCT1: Child scorecard :P1 does not contain component :P2 .',child_scorecards_.scorecard,components_.level_id);
54.4751 - END IF;
54.4752 - child_component_count_:=child_component_count_+1;
54.4753 - END LOOP;
54.4754 - IF child_component_count_!=parent_component_count_ THEN
54.4755 - Error_SYS.Appl_General(lu_name_,'SAMESTRUCT2: Child scorecard :P1 does not contain the same structure as parent.',child_scorecards_.scorecard);
54.4756 - END IF;
54.4757 - END LOOP;
54.4758 - ELSE
54.4759 - Error_SYS.Appl_General(lu_name_,'NOCOMPSEL1: Selected scorecard does not contain any components.');
54.4760 - END IF;
54.4761 -
54.4762 - IF sel_index_>0 THEN
54.4763 - FOR index_ IN 1..sel_index_ LOOP
54.4764 - Distribute_Input_Values___(environment_,scorecard_,year_,version_,object_type_,period_count_,sel_component_arr_(index_));
54.4765 - END LOOP;
54.4766 - ELSE
54.4767 - Error_SYS.Appl_General(lu_name_,'NOCOMPSEL2: No components are selected for hierachical distribution.');
54.4768 - END IF;
54.4769 - FOR child_scorecards_ IN get_child_scorecards LOOP
54.4770 - Calculate_Measures (environment_,child_scorecards_.scorecard ,year_,version_,measure_,period_count_);
54.4771 - -- Bug 76573 Removed the call to Set_To_Planned() since it is called inside Calculate_Measures() method
54.4772 - END LOOP;
54.4773 - ELSE
54.4774 - FOR scorecard_objects_ IN get_scorecard_objects LOOP -- fetch the measures that are selected in planning page
54.4775 - Distribute_Input_Values___(environment_,scorecard_,year_,version_,object_type_,period_count_,scorecard_objects_.scorecard_object);
54.4776 - END LOOP;
54.4777 - END IF;
54.4778 -
54.4779 -END Hierachical_Distribution;
54.4780 -
54.4781 -PROCEDURE Publish_Environment_Batch (
54.4782 - environment_ IN VARCHAR2,
54.4783 - schedule_ IN VARCHAR2 )
54.4784 -IS
54.4785 - job_id_ NUMBER;
54.4786 - method_ VARCHAR2(2000);
54.4787 - attr_ VARCHAR2(32000);
54.4788 -BEGIN
54.4789 - General_SYS.Init_Method(lu_name_, 'SCORECARD_INPUT_VALUE_API','Publish_Environment_Batch');
54.4790 - Client_SYS.Clear_Attr(attr_);
54.4791 - Client_SYS.Add_To_Attr('ENVIRONMENT',environment_,attr_);
54.4792 - --Start_Publish_Environments___(attr_);
54.4793 - method_ := 'Scorecard_Input_Value_API.Start_Publish_Environments__('''''||attr_||''''')';
54.4794 - IF (schedule_ != 'NOW') THEN
54.4795 - Batch_SYS.New_Job(job_id_,method_,schedule_);
54.4796 - ELSE
54.4797 - Start_Publish_Environments__(attr_);
54.4798 - END IF;
54.4799 -END Publish_Environment_Batch;
54.4800 -PROCEDURE Set_Publish_Scorecards (
54.4801 - environment_ IN VARCHAR2,
54.4802 - scorecard_ IN VARCHAR2 )
54.4803 -IS
54.4804 - rec_ SCORECARD%ROWTYPE;
54.4805 - rec2_ SCORECARD_TAB%ROWTYPE;
54.4806 - attr_ VARCHAR2(2000);
54.4807 - info_ VARCHAR2(32000);
54.4808 - objver_ VARCHAR2(2000);
54.4809 -
54.4810 -BEGIN
54.4811 - General_SYS.Init_Method(lu_name_, '&PKG', 'Set_Publish_Scorecards');
54.4812 - Publish_Scorecard(environment_,scorecard_);
54.4813 - Client_SYS.Clear_Attr(attr_);
54.4814 - Scorecard_Api.Force_Publish__(info_,attr_,'DO',environment_,scorecard_);
54.4815 - Client_SYS.Clear_Attr(attr_);
54.4816 -END Set_Publish_Scorecards;
54.4817 -PROCEDURE Publish_Scorecard_Batch (
54.4818 - environment_ IN VARCHAR2,
54.4819 - scorecard_ IN VARCHAR2,
54.4820 - schedule_ IN VARCHAR2 )
54.4821 -IS
54.4822 - job_id_ NUMBER;
54.4823 - method_ VARCHAR2(2000);
54.4824 - attr_ VARCHAR2(32000);
54.4825 -
54.4826 -BEGIN
54.4827 - General_SYS.Init_Method(lu_name_, 'SCORECARD_INPUT_VALUE_API','Publish_Scorecard_Batch');
54.4828 - Client_SYS.Clear_Attr(attr_);
54.4829 - Client_SYS.Add_To_Attr('ENVIRONMENT',environment_,attr_);
54.4830 - Client_SYS.Add_To_Attr('SCORECARD',scorecard_,attr_);
54.4831 - --Start_Publish_Environments___(attr_);
54.4832 - method_ := 'Scorecard_Input_Value_API.Start_Publish_Scorecards__('''''||attr_||''''')';
54.4833 - IF (schedule_ != 'NOW') THEN
54.4834 - Batch_SYS.New_Job(job_id_,method_,schedule_);
54.4835 - ELSE
54.4836 - Start_Publish_Scorecards__(attr_);
54.4837 - END IF;
54.4838 -
54.4839 -END Publish_Scorecard_Batch;
54.4840 -PROCEDURE Hierarchical_Consolidation (
54.4841 - environment_ IN VARCHAR2,
54.4842 - scorecard_ IN VARCHAR2,
54.4843 - year_ IN VARCHAR2,
54.4844 - version_ IN VARCHAR2,
54.4845 - object_type_ IN VARCHAR2,
54.4846 - period_count_ IN NUMBER,
54.4847 - measure_ IN VARCHAR2 )
54.4848 -IS
54.4849 - CURSOR get_scorecard_objects IS
54.4850 - SELECT scorecard_object
54.4851 - FROM scorecard_input_value_tab
54.4852 - WHERE scorecard=scorecard_
54.4853 - AND environment=environment_
54.4854 - AND object_type=object_type_
54.4855 - AND year=year_
54.4856 - AND version=version_
54.4857 - AND action='TRUE';
54.4858 -
54.4859 - CURSOR get_components(scorecard_id_ VARCHAR2) IS -- Move to scorecard structure
54.4860 - SELECT level_id
54.4861 - FROM scorecard_structure
54.4862 - WHERE parent_id=measure_
54.4863 - AND parent_level_type_db='MEASURE'
54.4864 - AND scorecard=scorecard_id_
54.4865 - AND environment=environment_;
54.4866 -
54.4867 - CURSOR get_child_scorecards IS -- Move to scorecard
54.4868 - SELECT scorecard
54.4869 - FROM scorecard
54.4870 - WHERE parent=scorecard_
54.4871 - AND environment=environment_;
54.4872 -
54.4873 - CURSOR check_child_scorecards IS --- Move to scorecard
54.4874 - SELECT 1
54.4875 - FROM scorecard
54.4876 - WHERE parent=scorecard_
54.4877 - AND environment=environment_;
54.4878 -
54.4879 - CURSOR check_component_selected (component_ VARCHAR2)IS
54.4880 - SELECT 1
54.4881 - FROM scorecard_input_value_tab
54.4882 - WHERE action='TRUE'
54.4883 - AND object_type='COMPONENT'
54.4884 - AND year=year_
54.4885 - AND version=version_
54.4886 - AND environment=environment_
54.4887 - AND scorecard=scorecard_
54.4888 - AND scorecard_object=component_;
54.4889 -
54.4890 - TYPE component_arr_type IS TABLE OF VARCHAR2(10)
54.4891 - INDEX BY BINARY_INTEGER;
54.4892 - component_arr_ component_arr_type;
54.4893 - index_ NUMBER;
54.4894 - parent_component_count_ NUMBER;
54.4895 - child_component_count_ NUMBER;
54.4896 - component_exist_ BOOLEAN;
54.4897 - sel_component_arr_ component_arr_type;
54.4898 - sel_index_ NUMBER;
54.4899 - temp_ NUMBER;
54.4900 - check_child_ NUMBER;
54.4901 -
54.4902 -BEGIN
54.4903 - General_SYS.Init_Method(lu_name_, '&PKG', 'Hierarchical_Consolidation');
54.4904 - OPEN check_child_scorecards;
54.4905 - FETCH check_child_scorecards INTO check_child_;
54.4906 - IF (check_child_scorecards%NOTFOUND) THEN
54.4907 - CLOSE check_child_scorecards;
54.4908 - Error_SYS.Appl_General(lu_name_,'CHECHISC1: No child scorecards found for the scorecard :P1.',scorecard_);
54.4909 - END IF;
54.4910 - CLOSE check_child_scorecards;
54.4911 -
54.4912 -
54.4913 - IF object_type_ = 'COMPONENT' THEN
54.4914 - -- Get measure components in parent
54.4915 - index_:=0;
54.4916 - sel_index_:=0;
54.4917 - FOR components_ IN get_components(scorecard_) LOOP
54.4918 - index_:=index_+1;
54.4919 - component_arr_(index_):=components_.level_id;
54.4920 - OPEN check_component_selected (components_.level_id);
54.4921 - FETCH check_component_selected INTO temp_;
54.4922 - IF check_component_selected%FOUND THEN
54.4923 - sel_index_:=sel_index_+1;
54.4924 - sel_component_arr_(sel_index_):=components_.level_id;
54.4925 - END IF;
54.4926 - CLOSE check_component_selected;
54.4927 - END LOOP;
54.4928 -
54.4929 - IF index_>0 THEN
54.4930 - parent_component_count_:=index_;
54.4931 - FOR child_scorecards_ IN get_child_scorecards LOOP
54.4932 - child_component_count_:=0;
54.4933 - FOR components_ IN get_components(child_scorecards_.scorecard) LOOP
54.4934 - component_exist_:=FALSE;
54.4935 - FOR index_ IN 1 .. parent_component_count_ LOOP
54.4936 - IF component_arr_(index_)=components_.level_id THEN
54.4937 - component_exist_:=TRUE;
54.4938 - EXIT;
54.4939 - END IF;
54.4940 - END LOOP;
54.4941 - IF NOT component_exist_ THEN
54.4942 - Error_SYS.Appl_General(lu_name_,'SAMESTRUCT1: Child scorecard :P1 does not contain component :P2 .',child_scorecards_.scorecard,components_.level_id);
54.4943 - END IF;
54.4944 - child_component_count_:=child_component_count_+1;
54.4945 - END LOOP;
54.4946 - IF child_component_count_!=parent_component_count_ THEN
54.4947 - Error_SYS.Appl_General(lu_name_,'SAMESTRUCT2: Child scorecard :P1 does not contain the same structure as parent.',child_scorecards_.scorecard);
54.4948 - END IF;
54.4949 - END LOOP;
54.4950 - ELSE
54.4951 - Error_SYS.Appl_General(lu_name_,'NOCOMPSEL1: Selected scorecard does not contain any components.');
54.4952 - END IF;
54.4953 -
54.4954 - IF sel_index_>0 THEN
54.4955 - FOR index_ IN 1..sel_index_ LOOP
54.4956 - Consolidate_Values(environment_,scorecard_,year_,version_,object_type_,period_count_,sel_component_arr_(index_));
54.4957 - END LOOP;
54.4958 - Calculate_Measures (environment_,scorecard_ ,year_,version_,measure_,period_count_);
54.4959 - -- Bug 76573 Removed the call to Set_To_Planned() since it is called inside Calculate_Measures() method
54.4960 - ELSE
54.4961 - Error_SYS.Appl_General(lu_name_,'NOCOMPSEL2: No components are selected for hierachical distribution.');
54.4962 - END IF;
54.4963 -
54.4964 -
54.4965 - ELSE
54.4966 -
54.4967 - FOR scorecard_objects_ IN get_scorecard_objects LOOP -- fetch the measures that are selected in planning page
54.4968 - Consolidate_Values(environment_,scorecard_,year_,version_,object_type_,period_count_,scorecard_objects_.scorecard_object);
54.4969 - END LOOP;
54.4970 -
54.4971 - END IF;
54.4972 -
54.4973 -END Hierarchical_Consolidation;
54.4974 -PROCEDURE Consolidate_Values (
54.4975 - environment_ IN VARCHAR2,
54.4976 - scorecard_ IN VARCHAR2,
54.4977 - year_ IN VARCHAR2,
54.4978 - version_ IN VARCHAR2,
54.4979 - object_type_ IN VARCHAR2,
54.4980 - period_count_ IN NUMBER,
54.4981 - scorecard_object_ IN VARCHAR2 )
54.4982 -IS
54.4983 -
54.4984 - year_value_ NUMBER;
54.4985 - newrec_ SCORECARD_INPUT_VALUE_TAB%ROWTYPE;
54.4986 - oldrec_ SCORECARD_INPUT_VALUE_TAB%ROWTYPE;
54.4987 - objid_ VARCHAR2(2000);
54.4988 - attr_ VARCHAR2(2000);
54.4989 - objversion_ VARCHAR2(2000);
54.4990 - child_count_ NUMBER;
54.4991 - TYPE ValArrType IS TABLE OF NUMBER
54.4992 - INDEX BY BINARY_INTEGER;
54.4993 - period_val_arr_ ValArrType;
54.4994 - temp_period_count_ NUMBER;
54.4995 - value_distribution_type_ VARCHAR2(20);
54.4996 - period_val_ VARCHAR2(30);
54.4997 - child_scr_ VARCHAR2(20);
54.4998 - temp_val_ VARCHAR2(5);
54.4999 - temp_period_value_ NUMBER;
54.5000 -
54.5001 -
54.5002 - CURSOR get_child_scorecards IS --- Move to scorecard
54.5003 - SELECT scorecard
54.5004 - FROM scorecard
54.5005 - WHERE parent=scorecard_
54.5006 - AND environment=environment_;
54.5007 -
54.5008 - CURSOR get_open_child_scr IS
54.5009 - SELECT '1'
54.5010 - FROM scorecard
54.5011 - WHERE scorecard = child_scr_
54.5012 - AND environment=environment_
54.5013 - AND objstate NOT IN ('Open','Planned');
54.5014 -
54.5015 -
54.5016 - CURSOR get_total_period_val_ (period_value_ NUMBER) IS
54.5017 - SELECT SUM(DECODE(period_value_,1,p1_value,2,p2_value,3,p3_value,
54.5018 - 4,p4_value,5,p5_value,6,p6_value,7,p7_value,
54.5019 - 8,p8_value,9,p9_value,10,p10_value,11,p11_value,
54.5020 - 12,p12_value))
54.5021 - FROM scorecard_input_value_tab
54.5022 - WHERE environment= environment_
54.5023 - AND scorecard IN (SELECT sc.scorecard
54.5024 - FROM scorecard_tab sc
54.5025 - WHERE sc.environment = environment_
54.5026 - AND sc.parent = scorecard_
54.5027 - AND (sc.scorecard IN (SELECT scorecard
54.5028 - FROM scorecard_user_access_tab
54.5029 - WHERE identity = (SELECT fnd_user
54.5030 - FROM fnd_session)
54.5031 - AND environment=sc.environment
54.5032 - AND scorecard=sc.scorecard)
54.5033 - OR sc.scorecard IN (SELECT scorecard
54.5034 - FROM scorecard_role_access_tab
54.5035 - WHERE environment=sc.environment
54.5036 - AND scorecard=sc.scorecard
54.5037 - AND role IN (SELECT oracle_role
54.5038 - FROM fnd_user_role_runtime
54.5039 - WHERE identity = (SELECT fnd_user
54.5040 - FROM fnd_session)))))
54.5041 - AND year = year_
54.5042 - AND version = version_
54.5043 - AND scorecard_object = scorecard_object_
54.5044 - AND object_type_=object_type_;
54.5045 -
54.5046 -
54.5047 - CURSOR get_period_val_ (period_value_ NUMBER) IS
54.5048 - SELECT DECODE(period_value_,1,p1_value,2,p2_value,3,p3_value,
54.5049 - 4,p4_value,5,p5_value,6,p6_value,7,p7_value,
54.5050 - 8,p8_value,9,p9_value,10,p10_value,11,p1_value,
54.5051 - 12,p12_value)
54.5052 - FROM scorecard_input_value_tab
54.5053 - WHERE environment= environment_
54.5054 - AND scorecard IN (SELECT sc.scorecard
54.5055 - FROM scorecard_tab sc
54.5056 - WHERE sc.environment = environment_
54.5057 - AND sc.parent = scorecard_
54.5058 - AND (sc.scorecard IN (SELECT scorecard
54.5059 - FROM scorecard_user_access_tab
54.5060 - WHERE identity = (SELECT fnd_user
54.5061 - FROM fnd_session)
54.5062 - AND environment=sc.environment
54.5063 - AND scorecard=sc.scorecard)
54.5064 - OR sc.scorecard IN (SELECT scorecard
54.5065 - FROM scorecard_role_access_tab
54.5066 - WHERE environment=sc.environment
54.5067 - AND scorecard=sc.scorecard
54.5068 - AND role IN (SELECT oracle_role
54.5069 - FROM fnd_user_role_runtime
54.5070 - WHERE identity = (SELECT fnd_user
54.5071 - FROM fnd_session)))))
54.5072 - AND year = year_
54.5073 - AND version = version_
54.5074 - AND scorecard_object = scorecard_object_
54.5075 - AND object_type_=object_type_;
54.5076 -
54.5077 -BEGIN
54.5078 - General_SYS.Init_Method(lu_name_, '&PKG', 'Consolidate_Values');
54.5079 - year_value_ := 0;
54.5080 - --value_distribution_type_ := scorecard_Structure_api.Get_Value_Dist_Type_Db(scorecard_,scorecard_object_,environment_,object_type_);
54.5081 - value_distribution_type_ := measure_type_api.Encode(scorecard_Measure_api.Get_Measure_type(scorecard_object_));
54.5082 -
54.5083 - IF value_distribution_type_ IS NULL THEN
54.5084 - IF object_type_='MEASURE' THEN
54.5085 - Error_SYS.Appl_General(lu_name_,'VALDIST1: Value distribution type must have a value for measure :P1 in parent scorecard :P2.',scorecard_object_,scorecard_);
54.5086 - ELSE
54.5087 - Error_SYS.Appl_General(lu_name_,'VALDIST2: Value distribution type must have a value for component :P1 in parent scorecard :P2.',scorecard_object_,scorecard_);
54.5088 - END IF;
54.5089 - END IF;
54.5090 -
54.5091 -
54.5092 - FOR child_scorecards_ IN get_child_scorecards LOOP -- fetch the child scorecards
54.5093 -
54.5094 - child_scr_ := child_scorecards_.scorecard;
54.5095 - OPEN get_open_child_scr;
54.5096 - FETCH get_open_child_scr INTO temp_val_;
54.5097 - CLOSE get_open_child_scr;
54.5098 -
54.5099 - IF (temp_val_ = '1') THEN
54.5100 - Error_SYS.Appl_General(lu_name_,'TMPVAL: Not all scorecards in the hierarchy are opened for planning. Consolidation not possible.');
54.5101 - END IF;
54.5102 -
54.5103 - IF NOT Check_Exist___(environment_,child_scorecards_.scorecard,year_,version_,scorecard_object_) THEN
54.5104 - Error_SYS.Appl_General(lu_name_,'INPVAL: Scorecard object :P1 does not exist in scorecard :P2.',scorecard_object_,child_scorecards_.scorecard);
54.5105 - END IF;
54.5106 -
54.5107 - END LOOP;
54.5108 -
54.5109 - FOR temp_period_count_ IN 1..period_count_ LOOP
54.5110 -
54.5111 - OPEN get_period_val_(temp_period_count_);
54.5112 - LOOP
54.5113 - FETCH get_period_val_ INTO temp_period_value_;
54.5114 - EXIT WHEN get_period_val_%NOTFOUND;
54.5115 -
54.5116 - IF (temp_period_value_ IS NULL) THEN
54.5117 - Error_SYS.Appl_General(lu_name_,'SCINPUTVALNO : One of the child scorecard objects does not have values for the periods');
54.5118 - END IF;
54.5119 - END LOOP;
54.5120 - CLOSE get_period_val_;
54.5121 - END LOOP;
54.5122 -
54.5123 -
54.5124 - oldrec_:=Lock_By_Keys___(environment_,scorecard_,year_,version_,scorecard_object_);
54.5125 -
54.5126 -
54.5127 - period_val_arr_(1) := oldrec_.p1_value;
54.5128 - period_val_arr_(2) := oldrec_.p2_value;
54.5129 - period_val_arr_(3) := oldrec_.p3_value;
54.5130 - period_val_arr_(4) := oldrec_.p4_value;
54.5131 - period_val_arr_(5) := oldrec_.p5_value;
54.5132 - period_val_arr_(6) := oldrec_.p6_value;
54.5133 - period_val_arr_(7) := oldrec_.p7_value;
54.5134 - period_val_arr_(8) := oldrec_.p8_value;
54.5135 - period_val_arr_(9) := oldrec_.p9_value;
54.5136 - period_val_arr_(10) := oldrec_.p10_value;
54.5137 - period_val_arr_(11) := oldrec_.p11_value;
54.5138 - period_val_arr_(12) := oldrec_.p12_value;
54.5139 -
54.5140 - newrec_:=oldrec_;
54.5141 -
54.5142 - IF (value_distribution_type_ = 'PERCENTAGE') THEN
54.5143 -
54.5144 - child_count_:=Scorecard_API.Get_Child_Count(scorecard_,environment_);
54.5145 -
54.5146 - FOR temp_period_count_ IN 1..period_count_ LOOP
54.5147 -
54.5148 - OPEN get_total_period_val_ (temp_period_count_);
54.5149 - FETCH get_total_period_val_ INTO period_val_arr_(temp_period_count_);
54.5150 - period_val_arr_(temp_period_count_) := (period_val_arr_(temp_period_count_)/child_count_);
54.5151 - year_value_:=year_value_ +period_val_arr_(temp_period_count_);
54.5152 - CLOSE get_total_period_val_;
54.5153 -
54.5154 - END LOOP;
54.5155 - year_value_:=year_value_ /period_count_;
54.5156 -
54.5157 - ELSIF (value_distribution_type_ = 'VALUE') THEN
54.5158 -
54.5159 - FOR temp_period_count_ IN 1..period_count_ LOOP
54.5160 -
54.5161 - OPEN get_total_period_val_ (temp_period_count_);
54.5162 - FETCH get_total_period_val_ INTO period_val_arr_(temp_period_count_);
54.5163 - year_value_:=year_value_ +period_val_arr_(temp_period_count_);
54.5164 - CLOSE get_total_period_val_;
54.5165 -
54.5166 - END LOOP;
54.5167 -
54.5168 - END IF;
54.5169 -
54.5170 - newrec_.year_value:=year_value_;
54.5171 - newrec_.p1_value :=period_val_arr_(1);
54.5172 - newrec_.p2_value :=period_val_arr_(2);
54.5173 - newrec_.p3_value :=period_val_arr_(3);
54.5174 - newrec_.p4_value :=period_val_arr_(4);
54.5175 - newrec_.p5_value :=period_val_arr_(5);
54.5176 - newrec_.p6_value :=period_val_arr_(6);
54.5177 - newrec_.p7_value :=period_val_arr_(7);
54.5178 - newrec_.p8_value :=period_val_arr_(8);
54.5179 - newrec_.p9_value :=period_val_arr_(9);
54.5180 - newrec_.p10_value:=period_val_arr_(10);
54.5181 - newrec_.p11_value:=period_val_arr_(11);
54.5182 - newrec_.p12_value:=period_val_arr_(12);
54.5183 -
54.5184 - Update___(objid_,oldrec_,newrec_,attr_,objversion_,TRUE);
54.5185 - Scorecard_api.Set_To_Planned(environment_,scorecard_);
54.5186 - Scorecard_Input_Value_api.Set_To_Planned(environment_,scorecard_,year_,version_,scorecard_object_);
54.5187 -END Consolidate_Values;
54.5188 -PROCEDURE All_Hierarchical_Logic (
54.5189 - environment_ IN VARCHAR2,
54.5190 - scorecard_ IN VARCHAR2,
54.5191 - year_ IN VARCHAR2,
54.5192 - version_ IN VARCHAR2,
54.5193 - action_ IN VARCHAR2 )
54.5194 -IS
54.5195 - comp_level_ VARCHAR2(5);
54.5196 - period_count_ NUMBER;
54.5197 - measures_ VARCHAR2(10);
54.5198 - scorecard_object_ VARCHAR2(10);
54.5199 - newrec_ SCORECARD_INPUT_VALUE_TAB%ROWTYPE;
54.5200 - oldrec_ SCORECARD_INPUT_VALUE_TAB%ROWTYPE;
54.5201 - attr_ VARCHAR2(2000);
54.5202 - objid_ VARCHAR2(2000);
54.5203 - objversion_ VARCHAR2(2000);
54.5204 - get_childs_ VARCHAR2(10);
54.5205 - child_exists_ VARCHAR2(10);
54.5206 -
54.5207 -
54.5208 - CURSOR get_scorecard_objects(scorecard_ VARCHAR2) IS
54.5209 - SELECT scorecard_object
54.5210 - FROM scorecard_input_value_tab
54.5211 - WHERE environment = environment_
54.5212 - AND scorecard = scorecard_
54.5213 - AND year = year_
54.5214 - AND version = version_;
54.5215 -
54.5216 - CURSOR get_period_count IS
54.5217 - SELECT count(1)
54.5218 - FROM scorecard_period_tab
54.5219 - WHERE environment = environment_
54.5220 - AND year = year_;
54.5221 -
54.5222 - CURSOR get_scorecard_measures(scorecard_ VARCHAR2) IS
54.5223 - SELECT level_id
54.5224 - FROM scorecard_structure_tab
54.5225 - WHERE environment = environment_
54.5226 - AND scorecard = scorecard_
54.5227 - AND child_level_type = 'MEASURE';
54.5228 -
54.5229 - CURSOR get_childs IS
54.5230 - SELECT scorecard
54.5231 - FROM scorecard
54.5232 - WHERE environment = environment_
54.5233 - AND parent = scorecard_
54.5234 - AND objstate IN ('Open','Planned');
54.5235 -
54.5236 - CURSOR get_childs_for_cons IS
54.5237 - SELECT scorecard
54.5238 - FROM scorecard
54.5239 - WHERE environment = environment_
54.5240 - START WITH parent = scorecard_
54.5241 - CONNECT BY parent = PRIOR scorecard
54.5242 - AND environment = PRIOR environment
54.5243 - AND objstate IN ('Open','Planned')
54.5244 - ORDER BY level_sequence desc;
54.5245 -
54.5246 -BEGIN
54.5247 - General_SYS.Init_Method(lu_name_, '&PKG', 'All_Hierarchical_Logic');
54.5248 - child_exists_ := 'TRUE';
54.5249 - OPEN get_childs;
54.5250 - FETCH get_childs INTO get_childs_;
54.5251 - IF (get_childs%NOTFOUND) THEN
54.5252 - CLOSE get_childs;
54.5253 - child_exists_ := 'FALSE';
54.5254 - ELSE
54.5255 - CLOSE get_childs;
54.5256 - END IF;
54.5257 -
54.5258 - IF (child_exists_ = 'TRUE') THEN
54.5259 -
54.5260 - FOR get_scorecard_objects_ IN get_scorecard_objects(scorecard_) LOOP
54.5261 - scorecard_object_ := get_scorecard_objects_.scorecard_object;
54.5262 - oldrec_:=Lock_By_Keys___(environment_,scorecard_,year_,version_,scorecard_object_);
54.5263 - newrec_:=oldrec_;
54.5264 - newrec_.action:='TRUE';
54.5265 - Update___(objid_,oldrec_,newrec_,attr_,objversion_,TRUE);
54.5266 - END LOOP;
54.5267 -
54.5268 - measures_ := null;
54.5269 - comp_level_ := scorecard_environment_api.Get_Component_Level(environment_ );
54.5270 -
54.5271 - OPEN get_period_count;
54.5272 - FETCH get_period_count INTO period_count_;
54.5273 - CLOSE get_period_count;
54.5274 -
54.5275 - IF (action_ = 'DISTRIBUTION') THEN
54.5276 - IF (comp_level_ = 'TRUE') THEN
54.5277 - FOR get_scorecard_measures_ IN get_scorecard_measures(scorecard_) LOOP
54.5278 - measures_ := get_scorecard_measures_.level_id;
54.5279 - Hierachical_Distribution(environment_,scorecard_,year_,version_ ,'COMPONENT',period_count_,measures_);
54.5280 - END LOOP;
54.5281 - ELSE
54.5282 - Hierachical_Distribution(environment_,scorecard_,year_,version_ ,'MEASURE',period_count_,measures_);
54.5283 - END IF;
54.5284 - FOR get_childs_ IN get_childs LOOP
54.5285 - All_Hierarchical_Logic(environment_,get_childs_.scorecard,year_,version_ ,action_);
54.5286 - END LOOP;
54.5287 -
54.5288 - ELSIF (action_ = 'CONSOLIDATION') THEN
54.5289 - FOR get_childs_for_cons_ IN get_childs_for_cons LOOP
54.5290 - FOR get_scorecard_objects_ IN get_scorecard_objects(get_childs_for_cons_.scorecard) LOOP
54.5291 - scorecard_object_ := get_scorecard_objects_.scorecard_object;
54.5292 - oldrec_:=Lock_By_Keys___(environment_,get_childs_for_cons_.scorecard,year_,version_,scorecard_object_);
54.5293 - newrec_:=oldrec_;
54.5294 - newrec_.action:='TRUE';
54.5295 - Update___(objid_,oldrec_,newrec_,attr_,objversion_,TRUE);
54.5296 - END LOOP;
54.5297 - IF (Scorecard_API.Get_Child_Count(get_childs_for_cons_.scorecard,environment_) >=1) THEN
54.5298 - IF (comp_level_ = 'TRUE') THEN
54.5299 - FOR get_scorecard_measures_ IN get_scorecard_measures(get_childs_for_cons_.scorecard) LOOP
54.5300 - measures_ := get_scorecard_measures_.level_id;
54.5301 - Hierarchical_Consolidation(environment_,get_childs_for_cons_.scorecard,year_,version_ ,'COMPONENT',period_count_,measures_);
54.5302 - END LOOP;
54.5303 - ELSE
54.5304 - Hierarchical_Consolidation(environment_,get_childs_for_cons_.scorecard,year_,version_ ,'MEASURE',period_count_,measures_);
54.5305 - END IF;
54.5306 - END IF;
54.5307 - END LOOP;
54.5308 - -- for the selected scorecard
54.5309 - IF (Scorecard_API.Get_Child_Count(scorecard_,environment_) >=1) THEN
54.5310 - IF (comp_level_ = 'TRUE') THEN
54.5311 - FOR get_scorecard_measures_ IN get_scorecard_measures(scorecard_) LOOP
54.5312 - measures_ := get_scorecard_measures_.level_id;
54.5313 - Hierarchical_Consolidation(environment_,scorecard_,year_,version_ ,'COMPONENT',period_count_,measures_);
54.5314 - END LOOP;
54.5315 - ELSE
54.5316 - Hierarchical_Consolidation(environment_,scorecard_,year_,version_ ,'MEASURE',period_count_,measures_);
54.5317 - END IF;
54.5318 - END IF;
54.5319 - END IF;
54.5320 - END IF;
54.5321 -END All_Hierarchical_Logic;
54.5322 -PROCEDURE Call_Hierarchical_Logic (
54.5323 - attr_ IN VARCHAR2 )
54.5324 -IS
54.5325 - environment_ Scorecard_Environment_Tab.environment%TYPE;
54.5326 - scorecard_ Scorecard_Tab.scorecard%TYPE;
54.5327 - year_ VARCHAR2(20);
54.5328 - version_ VARCHAR2(20);
54.5329 - action_ VARCHAR2(30);
54.5330 -BEGIN
54.5331 - General_SYS.Init_Method(lu_name_, '&PKG', 'Call_Hierarchical_Logic');
54.5332 - environment_ := Client_SYS.Get_Item_Value('ENVIRONMENT' ,attr_);
54.5333 - scorecard_ := Client_SYS.Get_Item_Value('SCORECARD' ,attr_);
54.5334 - year_ := Client_SYS.Get_Item_Value('YEAR' ,attr_);
54.5335 - version_ := Client_SYS.Get_Item_Value('VERSION' ,attr_);
54.5336 - action_ := Client_SYS.Get_Item_Value('ACTION' ,attr_);
54.5337 - Scorecard_Input_Value_API.All_Hierarchical_Logic(environment_,scorecard_,year_,version_,action_);
54.5338 -END Call_Hierarchical_Logic;
54.5339 -PROCEDURE Start_Hierarchical_Logic (
54.5340 - attr_ IN VARCHAR2 )
54.5341 -IS
54.5342 - new_attr_ VARCHAR2(2000) := attr_;
54.5343 - desc_ VARCHAR2(2000);
54.5344 -BEGIN
54.5345 - General_SYS.Init_Method(lu_name_, '&PKG', 'Start_Hierarchical_Logic');
54.5346 - desc_ := Language_SYS.Translate_Constant (lu_name_, 'BGJOB_HR_LOGIC:Update Scorecard objects in the scorecard input value according to the hierarchical logic.');
54.5347 - Transaction_SYS.Deferred_Call ('Scorecard_Input_Value_API.Call_Hierarchical_Logic',new_attr_, desc_);
54.5348 -END Start_Hierarchical_Logic;
54.5349 -PROCEDURE Background_Hierarchical_Logic (
54.5350 - environment_ IN VARCHAR2,
54.5351 - scorecard_ IN VARCHAR2,
54.5352 - year_ IN VARCHAR2,
54.5353 - version_ IN VARCHAR2,
54.5354 - action_ IN VARCHAR2,
54.5355 - execution_plan_ IN VARCHAR2 )
54.5356 -IS
54.5357 - job_id_ NUMBER;
54.5358 - method_ VARCHAR2(2000);
54.5359 - attr_ VARCHAR2(2000);
54.5360 -BEGIN
54.5361 - General_SYS.Init_Method(lu_name_, 'Scorecard_Input_Value_API','Background_Hierarchical_Logic');
54.5362 - Client_SYS.Clear_Attr(attr_);
54.5363 - Client_SYS.Add_To_Attr('ENVIRONMENT',environment_,attr_);
54.5364 - Client_SYS.Add_To_Attr('SCORECARD',scorecard_ ,attr_);
54.5365 - Client_SYS.Add_To_Attr('YEAR',year_ ,attr_);
54.5366 - Client_SYS.Add_To_Attr('VERSION',version_ ,attr_);
54.5367 - Client_SYS.Add_To_Attr('ACTION',action_ ,attr_);
54.5368 - method_:='Scorecard_Input_Value_API.Start_Hierarchical_Logic_('''''||attr_||''''')';
54.5369 - IF (execution_plan_ != 'NOW') THEN
54.5370 - Batch_SYS.New_Job(job_id_,method_,execution_plan_);
54.5371 - ELSE
54.5372 - Start_Hierarchical_Logic(attr_);
54.5373 - END IF;
54.5374 -END Background_Hierarchical_Logic;
54.5375 -PROCEDURE Set_To_Planned (
54.5376 - environment_ IN VARCHAR2,
54.5377 - scorecard_ IN VARCHAR2,
54.5378 - year_ IN VARCHAR2,
54.5379 - version_ IN VARCHAR2,
54.5380 - scorecard_object_ IN VARCHAR2 )
54.5381 -IS
54.5382 - rec_ SCORECARD_INPUT_VALUE%ROWTYPE;
54.5383 - rec2_ SCORECARD_INPUT_VALUE_TAB%ROWTYPE;
54.5384 - attr_ VARCHAR2(2000);
54.5385 - info_ VARCHAR2(32000);
54.5386 - objver_ VARCHAR2(2000);
54.5387 - CURSOR get_attr IS
54.5388 - SELECT *
54.5389 - FROM SCORECARD_INPUT_VALUE
54.5390 - WHERE environment=environment_
54.5391 - AND scorecard=scorecard_
54.5392 - AND year=year_
54.5393 - AND version=version_
54.5394 - AND scorecard_object=scorecard_object_;
54.5395 -BEGIN
54.5396 - General_SYS.Init_Method(lu_name_, 'SCORECARD_INPUT_VALUE_API', 'Set_To_Planned');
54.5397 - OPEN get_attr;
54.5398 - FETCH get_attr INTO rec_;
54.5399 - CLOSE get_attr;
54.5400 - Client_SYS.Clear_Attr(attr_);
54.5401 - Client_SYS.Add_To_Attr ('OBJID', rec_.objid, attr_);
54.5402 - Client_SYS.Add_To_Attr ('OBJVERSION', rec_.objversion, attr_);
54.5403 - --rec2_:=Lock_By_Keys___(environment_,scorecard_,year_,version_,scorecard_object_);
54.5404 - --objver_:= to_char(rec2_.rowversion,'YYYYMMDDHH24MISS');
54.5405 - --Plan__(info_,rec_.objid,objver_,attr_,'DO');
54.5406 - Plan__(info_,rec_.objid,rec_.objversion,attr_,'DO');
54.5407 - Client_SYS.Clear_Attr(attr_);
54.5408 -END Set_To_Planned;
54.5409 -FUNCTION Get_Sco_Obj_State_Date (
54.5410 - environment_ IN VARCHAR2,
54.5411 - scorecard_ IN VARCHAR2,
54.5412 - measure_ IN VARCHAR2 ) RETURN DATE
54.5413 -IS
54.5414 - temp_ &TABLE..mea_state_change_date%TYPE;
54.5415 - CURSOR get_attr IS
54.5416 - SELECT max(mea_state_change_date)
54.5417 - FROM &TABLE
54.5418 - WHERE environment = environment_
54.5419 - AND scorecard = scorecard_
54.5420 - AND scorecard_object = measure_;
54.5421 -BEGIN
54.5422 - OPEN get_attr;
54.5423 - FETCH get_attr INTO temp_;
54.5424 - CLOSE get_attr;
54.5425 - RETURN temp_;
54.5426 -END Get_Sco_Obj_State_Date;
54.5427 -PROCEDURE Budget_And_Calculate (
54.5428 - components_not_used_ OUT VARCHAR2,
54.5429 - company_ IN VARCHAR2,
54.5430 - environment_ IN VARCHAR2,
54.5431 - scorecard_ IN VARCHAR2,
54.5432 - year_ IN VARCHAR2,
54.5433 - measure_ IN VARCHAR2,
54.5434 - version_ IN VARCHAR2,
54.5435 - budget_version_ IN VARCHAR2,
54.5436 - component_list_ IN VARCHAR2 )
54.5437 -IS
54.5438 -
54.5439 - TYPE RefCurTyp IS REF CURSOR;
54.5440 - scorecard_input_rec_ RefCurTyp;
54.5441 - budget_period_rec_ RefCurTyp;
54.5442 - source_stmt_ VARCHAR2(2000);
54.5443 - code_part_str_ VARCHAR2(50);
54.5444 - code_part_values_ VARCHAR2(2000);
54.5445 - account_list_ VARCHAR2(2000);
54.5446 - component_rec_ SCORECARD_MEASURE_TAB%ROWTYPE;
54.5447 - period_val_ SCORECARD_PERIOD_TAB.PERIOD_MATCH_IDENTITY%TYPE;
54.5448 - temp_input_val_rec_ SCORECARD_INPUT_VALUE_TAB%ROWTYPE;
54.5449 - code_part_value_ VARCHAR2(20);
54.5450 - scr_code_part_ VARCHAR2(20);
54.5451 - in_values_ VARCHAR2(2000);
54.5452 - input_value_tab_stmt_ VARCHAR2(2000);
54.5453 - table_name_ VARCHAR2(50);
54.5454 - aggregated_value_ NUMBER;
54.5455 - budget_year_ NUMBER;
54.5456 - new_account_list_ VARCHAR2(2000);
54.5457 - replace_from_ VARCHAR2(1) ;
54.5458 - replace_with_ VARCHAR2(4);
54.5459 - count_period_ NUMBER;
54.5460 - TYPE PeriodMatchType IS TABLE OF NUMBER
54.5461 - INDEX BY BINARY_INTEGER;
54.5462 - per_match_identity_type_ PeriodMatchType;
54.5463 - newrec_ SCORECARD_INPUT_VALUE_TAB%ROWTYPE;
54.5464 - oldrec_ SCORECARD_INPUT_VALUE_TAB%ROWTYPE;
54.5465 - objid_ VARCHAR2(2000);
54.5466 - attr_ VARCHAR2(2000);
54.5467 - objversion_ VARCHAR2(2000);
54.5468 - is_visited_ BOOLEAN:=false;
54.5469 - field_separator_ CONSTANT VARCHAR2(1) := chr(31);
54.5470 - i NUMBER;
54.5471 - count_ NUMBER;
54.5472 - mea_type_ VARCHAR2(20);
54.5473 - total_value_ NUMBER;
54.5474 - avg_value_ NUMBER;
54.5475 -
54.5476 -CURSOR get_comp_details (comp_ VARCHAR2) IS
54.5477 - SELECT * FROM SCORECARD_MEASURE_TAB
54.5478 - WHERE measure = comp_;
54.5479 -
54.5480 -CURSOR get_period_details IS
54.5481 - SELECT period_match_identity FROM SCORECARD_PERIOD_TAB
54.5482 - WHERE Environment = environment_
54.5483 - AND YEAR = year_
54.5484 - ORDER BY end_date;
54.5485 -
54.5486 -CURSOR get_code_part IS
54.5487 - SELECT scorecard_code_part FROM SCORECARD_ENVIRONMENT_TAB
54.5488 - WHERE environment = environment_;
54.5489 -
54.5490 -
54.5491 -BEGIN
54.5492 - General_SYS.Init_Method(lu_name_, 'Scorecard_Input_Value_API','Budget_And_Calculate');
54.5493 - replace_from_:=',';
54.5494 - replace_with_:=''',''';
54.5495 - count_period_ :=1;
54.5496 -
54.5497 - in_values_:=Replace(component_list_,'^','''');
54.5498 -
54.5499 - table_name_ :='SCORECARD_INPUT_VALUE_TAB';
54.5500 - input_value_tab_stmt_ := ' SELECT * FROM ' || table_name_ ||
54.5501 - ' WHERE environment ='|| '''' ||environment_ || '''' ||
54.5502 - ' AND scorecard =' ||'''' ||scorecard_ || '''' ||
54.5503 - ' AND year =' ||'''' ||year_ || '''' ||
54.5504 - ' AND version =' ||'''' || version_ || '''' ||
54.5505 - ' AND scorecard_object in (' || in_values_ || ')';
54.5506 -
54.5507 - OPEN get_code_part;
54.5508 - FETCH get_code_part INTO scr_code_part_;
54.5509 - CLOSE get_code_part;
54.5510 -
54.5511 - IF NOT scr_code_part_ IS NULL THEN
54.5512 - code_part_values_ := scorecard_attribute_api.Get_Value(environment_,scorecard_,'CODE_PART_VALUE');
54.5513 - code_part_values_:=Replace(code_part_values_,replace_from_,replace_with_);
54.5514 - code_part_str_ :=' AND CODE_' || scr_code_part_ || ' IN ( ' || '''' || code_part_values_ || '''' ||' )';
54.5515 - ELSE
54.5516 - code_part_str_ :='';
54.5517 - END IF;
54.5518 -
54.5519 - -- since table_name_ is hardcoded we can set asserted
54.5520 - -- ifs_assert_safe shsalk 20060117
54.5521 - open scorecard_input_rec_ for input_value_tab_stmt_;
54.5522 -
54.5523 - OPEN get_period_details;
54.5524 - LOOP
54.5525 - FETCH get_period_details INTO period_val_;
54.5526 - EXIT WHEN get_period_details%NOTFOUND;
54.5527 - per_match_identity_type_(count_period_):=period_val_;
54.5528 - count_period_ :=count_period_+1;
54.5529 - END LOOP;
54.5530 -
54.5531 - CLOSE get_period_details;
54.5532 -
54.5533 - count_:= count_period_ - 1 ;
54.5534 -
54.5535 - LOOP
54.5536 - source_stmt_ :='SELECT ';
54.5537 -
54.5538 - FETCH scorecard_input_rec_ INTO temp_input_val_rec_;
54.5539 - EXIT WHEN scorecard_input_rec_%NOTFOUND;
54.5540 -
54.5541 - OPEN get_comp_details(temp_input_val_rec_.scorecard_object);
54.5542 - FETCH get_comp_details INTO component_rec_;
54.5543 - CLOSE get_comp_details;
54.5544 -
54.5545 - -- check amount type
54.5546 - --'AMTBAL^CURBAL^QTYBAL^PROJBAL^PROJQTY^PRJCURBAL^';
54.5547 - IF component_rec_.amount_type = 'AMTBAL' THEN
54.5548 - source_stmt_ := source_stmt_ || 'SUM(DECODE(LOGICAL_ACCOUNT_TYPE,' || '''' ||'L' || '''' ||',' || '-AMOUNT' || ',' || '''' || 'R' || '''' || ',' ||'-AMOUNT' || ',' || 'AMOUNT'|| '))' || ',YEAR_PERIOD_KEY ';
54.5549 - ELSIF component_rec_.amount_type = 'CURBAL' THEN
54.5550 - source_stmt_ := source_stmt_ || 'SUM(DECODE(LOGICAL_ACCOUNT_TYPE,' || '''' ||'L' || '''' ||',' || '-THIRD_CURRENCY_AMOUNT' || ',' || '''' || 'R' || '''' || ',' ||'-THIRD_CURRENCY_AMOUNT' || ',' || 'THIRD_CURRENCY_AMOUNT'|| '))' || ',YEAR_PERIOD_KEY ';
54.5551 - ELSIF component_rec_.amount_type = 'QTYBAL' THEN
54.5552 - source_stmt_ := source_stmt_ || 'SUM(DECODE(LOGICAL_ACCOUNT_TYPE,' || '''' ||'L' || '''' ||',' || '-QUANTITY' || ',' || '''' || 'R' || '''' || ',' ||'-QUANTITY' || ',' || 'QUANTITY'|| '))' || ',YEAR_PERIOD_KEY ';
54.5553 - ELSIF component_rec_.amount_type = 'PROJBAL' THEN
54.5554 - source_stmt_ := source_stmt_ || 'SUM(DECODE(LOGICAL_ACCOUNT_TYPE,' || '''' ||'L' || '''' ||',' || '-AMOUNT' || ',' || '''' || 'R' || '''' || ',' ||'-AMOUNT' || ',' || 'AMOUNT'|| '))' || ',YEAR_PERIOD_KEY ';
54.5555 - ELSIF component_rec_.amount_type = 'PRJCURBAL' THEN
54.5556 - source_stmt_ := source_stmt_ || 'SUM(DECODE(LOGICAL_ACCOUNT_TYPE,' || '''' ||'L' || '''' ||',' || '-THIRD_CURRENCY_AMOUNT' || ',' || '''' || 'R' || '''' || ',' ||'-THIRD_CURRENCY_AMOUNT' || ',' || 'THIRD_CURRENCY_AMOUNT'|| '))' || ',YEAR_PERIOD_KEY ';
54.5557 - ELSIF component_rec_.amount_type = 'PROJQTY' THEN
54.5558 - source_stmt_ := source_stmt_ || 'SUM(DECODE(LOGICAL_ACCOUNT_TYPE,' || '''' ||'L' || '''' ||',' || '-QUANTITY' || ',' || '''' || 'R' || '''' || ',' ||'-QUANTITY' || ',' || 'QUANTITY'|| '))' || ',YEAR_PERIOD_KEY ';
54.5559 - END IF;
54.5560 -
54.5561 - source_stmt_ :=source_stmt_ || ' FROM budget_period_amount_pub
54.5562 - WHERE COMPANY=:c_company
54.5563 - AND BUDGET_VERSION=:b_budget_Version
54.5564 - AND BUDGET_YEAR=:b_budget_year';
54.5565 -
54.5566 - source_stmt_ := source_stmt_ || code_part_str_ ;
54.5567 -
54.5568 -
54.5569 - -- Add ledger Id
54.5570 - source_stmt_ := source_stmt_ || ' AND LEDGER_ID=:l_ledger_id ' ;
54.5571 -
54.5572 - -- Add account list
54.5573 - account_list_:=bp_measure_accounts_api.Get_Measure_Accounts(temp_input_val_rec_.scorecard_object);
54.5574 - IF NOT account_list_ IS null THEN
54.5575 - new_account_list_ := '''' || Replace(account_list_,replace_from_,replace_with_) || '''' ;
54.5576 - source_stmt_ := source_stmt_ || ' AND ACCOUNT IN ( ' || new_account_list_ || ') ' ;
54.5577 - END IF;
54.5578 -
54.5579 - -- check amount type
54.5580 - IF component_rec_.amount_type = 'PROJBAL' OR component_rec_.amount_type = 'PROJQTY' OR component_rec_.amount_type ='PRJCURBAL' THEN
54.5581 - source_stmt_ := source_stmt_ || 'AND Project_Id IS NOT NULL';
54.5582 - END IF;
54.5583 - source_stmt_ := source_stmt_ || 'GROUP BY year_period_key';
54.5584 -
54.5585 - oldrec_:=scorecard_input_value_api.Lock_By_Keys___(environment_,scorecard_,year_,version_,temp_input_val_rec_.scorecard_object);
54.5586 - newrec_:=oldrec_;
54.5587 -
54.5588 - -- Initialize field values
54.5589 -
54.5590 - newrec_.p1_value :=NULL;
54.5591 - newrec_.p2_value :=NULL;
54.5592 - newrec_.p3_value :=NULL;
54.5593 - newrec_.p4_value :=NULL;
54.5594 - newrec_.p4_value :=NULL;
54.5595 - newrec_.p5_value :=NULL;
54.5596 - newrec_.p6_value :=NULL;
54.5597 - newrec_.p7_value :=NULL;
54.5598 - newrec_.p8_value :=NULL;
54.5599 - newrec_.p9_value :=NULL;
54.5600 - newrec_.p10_value :=NULL;
54.5601 - newrec_.p11_value :=NULL;
54.5602 - newrec_.p12_value :=NULL;
54.5603 -
54.5604 - -- ifs_assert_safe shsalk 20060117
54.5605 - OPEN budget_period_rec_ FOR source_stmt_ USING company_,budget_version_,year_,component_rec_.ledger_id;
54.5606 - count_period_ :=1;
54.5607 - is_visited_:=false;
54.5608 - LOOP
54.5609 - FETCH budget_period_rec_ INTO aggregated_value_,budget_year_;
54.5610 - EXIT WHEN budget_period_rec_%NOTFOUND;
54.5611 -
54.5612 - FOR i IN 1..count_ LOOP
54.5613 - IF budget_year_ = per_match_identity_type_(i) THEN
54.5614 - count_period_:=i;
54.5615 - EXIT;
54.5616 - END IF;
54.5617 - END LOOP;
54.5618 -
54.5619 - CASE count_period_
54.5620 - WHEN 1 THEN newrec_.p1_value :=aggregated_value_;
54.5621 - WHEN 2 THEN newrec_.p2_value :=aggregated_value_;
54.5622 - WHEN 3 THEN newrec_.p3_value :=aggregated_value_;
54.5623 - WHEN 4 THEN newrec_.p4_value :=aggregated_value_;
54.5624 - WHEN 5 THEN newrec_.p5_value :=aggregated_value_;
54.5625 - WHEN 6 THEN newrec_.p6_value :=aggregated_value_;
54.5626 - WHEN 7 THEN newrec_.p7_value :=aggregated_value_;
54.5627 - WHEN 8 THEN newrec_.p8_value :=aggregated_value_;
54.5628 - WHEN 9 THEN newrec_.p9_value :=aggregated_value_;
54.5629 - WHEN 10 THEN newrec_.p10_value:=aggregated_value_;
54.5630 - WHEN 11 THEN newrec_.p11_value:=aggregated_value_;
54.5631 - WHEN 12 THEN newrec_.p12_value:=aggregated_value_;
54.5632 - ELSE Error_SYS.Appl_General(lu_name_,'SCOINPUTVALLOADMES22: Invaild no of periods');
54.5633 - END CASE;
54.5634 -
54.5635 - is_visited_:=true;
54.5636 -
54.5637 - END LOOP;
54.5638 - CLOSE budget_period_rec_;
54.5639 -
54.5640 - IF NOT is_visited_ THEN
54.5641 - components_not_used_:=components_not_used_|| scorecard_measure_api.Get_Description(temp_input_val_rec_.scorecard_object) || field_separator_;
54.5642 - END IF;
54.5643 -
54.5644 - newrec_.budget_version:=budget_version_;
54.5645 -
54.5646 - newrec_.p1_value :=NVL(newrec_.p1_value,0);
54.5647 - newrec_.p2_value :=NVL(newrec_.p2_value,0);
54.5648 - newrec_.p3_value :=NVL(newrec_.p3_value,0);
54.5649 - newrec_.p4_value :=NVL(newrec_.p4_value,0);
54.5650 - newrec_.p5_value :=NVL(newrec_.p5_value,0);
54.5651 - newrec_.p6_value :=NVL(newrec_.p6_value,0);
54.5652 - newrec_.p7_value :=NVL(newrec_.p7_value,0);
54.5653 - newrec_.p8_value :=NVL(newrec_.p8_value,0);
54.5654 - newrec_.p9_value :=NVL(newrec_.p9_value,0);
54.5655 - newrec_.p10_value:=NVL(newrec_.p10_value,0);
54.5656 - newrec_.p11_value:=NVL(newrec_.p11_value,0);
54.5657 - newrec_.p12_value:=NVL(newrec_.p12_value,0);
54.5658 -
54.5659 - mea_type_ := scorecard_Measure_api.Get_Measure_Type_Db(temp_input_val_rec_.scorecard_object);
54.5660 - total_value_ := newrec_.p1_value+newrec_.p2_value+newrec_.p3_value+newrec_.p4_value+newrec_.p5_value+newrec_.p6_value+newrec_.p7_value+newrec_.p8_value+newrec_.p9_value+newrec_.p10_value+newrec_.p11_value+newrec_.p12_value;
54.5661 - IF mea_type_ = 'PERCENTAGE' THEN
54.5662 - avg_value_ := total_value_/count_;
54.5663 - newrec_.year_value := avg_value_;
54.5664 - ELSIF mea_type_ = 'VALUE' THEN
54.5665 - newrec_.year_value := total_value_;
54.5666 - END IF;
54.5667 - scorecard_input_value_api.Update___(objid_,oldrec_,newrec_,attr_,objversion_,TRUE);
54.5668 - END LOOP;
54.5669 - close scorecard_input_rec_;
54.5670 - scorecard_input_value_api.Calculate_Measures (environment_,scorecard_ ,year_,version_,measure_,12);
54.5671 -END Budget_And_Calculate;
54.5672 -
54.5673 -PROCEDURE Get_Error_Msg_For_Comp (
54.5674 - plan_formula_ IN OUT VARCHAR2,
54.5675 - check_value_ IN VARCHAR2 )
54.5676 -IS
54.5677 - invalid_comp_ NUMBER;
54.5678 -BEGIN
54.5679 - General_SYS.Init_Method(lu_name_, '&PKG', 'Get_Error_Msg_For_Comp');
54.5680 - IF (check_value_ = 'TRUE') THEN
54.5681 - plan_formula_ := 'NULL';
54.5682 - ELSE
54.5683 - invalid_comp_ := INSTR(plan_formula_,'COMP', 1, 1);
54.5684 - IF invalid_comp_ <> 0 THEN
54.5685 - Error_SYS.Appl_General(lu_name_,'INPVALCOMPNFND: A component in Calculation formula is not found ');
54.5686 - END IF;
54.5687 - END IF;
54.5688 -END Get_Error_Msg_For_Comp;
54.5689 -PROCEDURE Return_Periods (
54.5690 - period1_ OUT VARCHAR2,
54.5691 - period2_ OUT VARCHAR2,
54.5692 - period3_ OUT VARCHAR2,
54.5693 - period4_ OUT VARCHAR2,
54.5694 - period5_ OUT VARCHAR2,
54.5695 - period6_ OUT VARCHAR2,
54.5696 - period7_ OUT VARCHAR2,
54.5697 - period8_ OUT VARCHAR2,
54.5698 - period9_ OUT VARCHAR2,
54.5699 - period10_ OUT VARCHAR2,
54.5700 - period11_ OUT VARCHAR2,
54.5701 - period12_ OUT VARCHAR2,
54.5702 - env_ IN VARCHAR2,
54.5703 - year_ IN VARCHAR2 )
54.5704 -IS
54.5705 - per_no NUMBER;
54.5706 - period_ VARCHAR2(10);
54.5707 - CURSOR get_period IS
54.5708 - SELECT period
54.5709 - FROM scorecard_period_tab
54.5710 - WHERE environment = env_
54.5711 - AND year = year_
54.5712 - ORDER BY end_date;
54.5713 -
54.5714 - CURSOR get_periodCount IS
54.5715 - SELECT count (1)
54.5716 - FROM scorecard_period_tab
54.5717 - WHERE environment = env_
54.5718 - AND year = year_;
54.5719 -BEGIN
54.5720 - General_SYS.Init_Method(lu_name_, '&PKG', 'Return_Periods');
54.5721 - OPEN get_periodCount;
54.5722 - FETCH get_periodCount INTO per_no;
54.5723 - CLOSE get_periodCount;
54.5724 -
54.5725 - OPEN get_period;
54.5726 - period1_ := null;
54.5727 - period2_ := null;
54.5728 - period3_ := null;
54.5729 - period4_ := null;
54.5730 - period5_ := null;
54.5731 - period6_ := null;
54.5732 - period7_ := null;
54.5733 - period8_ := null;
54.5734 - period9_ := null;
54.5735 - period10_ := null;
54.5736 - period11_ := null;
54.5737 - period12_ := null;
54.5738 -
54.5739 - FOR i IN 1..per_no LOOP
54.5740 - FETCH get_period INTO period_;
54.5741 - IF (i = 1) THEN
54.5742 - period1_ := period_;
54.5743 - ELSIF (i = 2) THEN
54.5744 - period2_ := period_;
54.5745 - ELSIF (i = 3) THEN
54.5746 - period3_ := period_;
54.5747 - ELSIF (i = 4) THEN
54.5748 - period4_ := period_;
54.5749 - ELSIF (i = 5) THEN
54.5750 - period5_ := period_;
54.5751 - ELSIF (i = 6) THEN
54.5752 - period6_ := period_;
54.5753 - ELSIF (i = 7) THEN
54.5754 - period7_ := period_;
54.5755 - ELSIF (i = 8) THEN
54.5756 - period8_ := period_;
54.5757 - ELSIF (i = 9) THEN
54.5758 - period9_ := period_;
54.5759 - ELSIF (i = 10) THEN
54.5760 - period10_ := period_;
54.5761 - ELSIF (i = 11) THEN
54.5762 - period11_ := period_;
54.5763 - ELSIF (i = 12) THEN
54.5764 - period12_ := period_;
54.5765 - END IF;
54.5766 - END LOOP;
54.5767 - CLOSE get_period;
54.5768 -
54.5769 -END Return_Periods;
54.5770 -PROCEDURE Import_Planned_Values(
54.5771 - environment_ IN VARCHAR2,
54.5772 - scorecard_ IN VARCHAR2,
54.5773 - p_year_ IN VARCHAR2,
54.5774 - version_ IN VARCHAR2,
54.5775 - scorecard_object_ IN VARCHAR2,
54.5776 - key_value_attr_ IN VARCHAR2)
54.5777 -IS
54.5778 - year_ &TABLE..year%TYPE;
54.5779 - key_ &TABLE..p1_key%TYPE;
54.5780 - trans_value_ &TABLE..p1_value%TYPE;
54.5781 -
54.5782 - ptr_ NUMBER;
54.5783 - name_ VARCHAR2(30);
54.5784 - column_ VARCHAR2(30);
54.5785 - value_ VARCHAR2(2000);
54.5786 - info_ VARCHAR2(2000);
54.5787 - objid_ VARCHAR2(2000);
54.5788 - objversion_ VARCHAR2(2000);
54.5789 - attr_ VARCHAR2(2000);
54.5790 -
54.5791 - CURSOR get_update_record IS
54.5792 - SELECT objid, objversion
54.5793 - FROM &VIEW
54.5794 - WHERE environment = environment_
54.5795 - AND scorecard = scorecard_
54.5796 - AND year = year_
54.5797 - AND version = version_
54.5798 - AND scorecard_object = scorecard_object_;
54.5799 -BEGIN
54.5800 - General_SYS.Init_Method(lu_name_, '&PKG', 'Import_Planned_Values');
54.5801 - ptr_ := NULL;
54.5802 -
54.5803 - LOOP
54.5804 -
54.5805 - WHILE ( Client_SYS.Get_Next_From_Attr(key_value_attr_, ptr_, name_, value_) ) LOOP
54.5806 -
54.5807 - IF (name_ = 'KEY') THEN
54.5808 - key_ := value_;
54.5809 - year_ := Scorecard_Period_API.Get_Year(environment_,
54.5810 - key_);
54.5811 - ELSIF (name_ = 'VALUE') THEN
54.5812 - trans_value_ := value_;
54.5813 - EXIT;
54.5814 - END IF;
54.5815 -
54.5816 - END LOOP;
54.5817 -
54.5818 - column_ := Find_Column___(environment_,
54.5819 - scorecard_,
54.5820 - year_,
54.5821 - version_,
54.5822 - scorecard_object_,
54.5823 - key_);
54.5824 - OPEN get_update_record;
54.5825 - FETCH get_update_record INTO objid_, objversion_;
54.5826 -
54.5827 - IF ((get_update_record%FOUND) AND (column_ IS NOT NULL)) THEN
54.5828 - Client_SYS.Clear_Attr(attr_);
54.5829 - Client_SYS.Add_To_Attr(column_, trans_value_, attr_);
54.5830 - Client_SYS.Add_To_Attr('FROM_BUDPRO', 'TRUE', attr_);
54.5831 - Modify__(info_, objid_, objversion_, attr_, 'DO');
54.5832 - Calculate_Year_Value(environment_,
54.5833 - scorecard_,
54.5834 - year_,
54.5835 - version_,
54.5836 - scorecard_object_,
54.5837 - 'TRUE');
54.5838 - /*Calculate_Measures(environment_,
54.5839 - scorecard_,
54.5840 - year_,
54.5841 - version_,
54.5842 - scorecard_object_,
54.5843 - 12);*/
54.5844 - END IF;
54.5845 -
54.5846 - CLOSE get_update_record;
54.5847 - EXIT WHEN NOT (Client_SYS.Get_Next_From_Attr(key_value_attr_, ptr_, name_, value_));
54.5848 -
54.5849 - END LOOP;
54.5850 -
54.5851 -END Import_Planned_Values;
54.5852 -
54.5853 -PROCEDURE Calculate_Year_Value (
54.5854 - environment_ IN VARCHAR2,
54.5855 - scorecard_ IN VARCHAR2,
54.5856 - year_ IN VARCHAR2,
54.5857 - version_ IN VARCHAR2,
54.5858 - measure_ IN VARCHAR2,
54.5859 - from_budpro_ IN VARCHAR2 DEFAULT 'FALSE' )
54.5860 -IS
54.5861 - total_ &TABLE..year_value%TYPE := 0;
54.5862 - measure_type_ scorecard_measure_tab.measure_type%TYPE;
54.5863 -
54.5864 - objid_ VARCHAR2(2000);
54.5865 - objversion_ VARCHAR2(2000);
54.5866 - info_ VARCHAR2(2000);
54.5867 - attr_ VARCHAR2(2000);
54.5868 - count_ NUMBER := 0;
54.5869 - formula_p1_ NUMBER;
54.5870 - formula_p2_ NUMBER;
54.5871 - formula_p3_ NUMBER;
54.5872 - formula_p4_ NUMBER;
54.5873 - formula_p5_ NUMBER;
54.5874 - formula_p6_ NUMBER;
54.5875 - formula_p7_ NUMBER;
54.5876 - formula_p8_ NUMBER;
54.5877 - formula_p9_ NUMBER;
54.5878 - formula_p10_ NUMBER;
54.5879 - formula_p11_ NUMBER;
54.5880 - formula_p12_ NUMBER;
54.5881 -
54.5882 - CURSOR measure_value IS
54.5883 - SELECT objid,objversion,P1_Value,P2_Value,P3_Value,P4_Value,P5_Value,P6_Value,P7_Value,P8_Value,P9_Value,P10_Value,P11_Value,P12_Value
54.5884 - FROM &VIEW
54.5885 - WHERE environment = environment_
54.5886 - AND scorecard = scorecard_
54.5887 - AND year = year_
54.5888 - AND version = version_
54.5889 - AND scorecard_object = measure_;
54.5890 -BEGIN
54.5891 - General_SYS.Init_Method(lu_name_, '&PKG', 'Calculate_Year_Value');
54.5892 - measure_type_ := Scorecard_measure_API.Get_Measure_Type_Db(measure_);
54.5893 - OPEN measure_value;
54.5894 - FETCH measure_value INTO objid_, objversion_, formula_p1_, formula_p2_, formula_p3_, formula_p4_, formula_p5_,
54.5895 - formula_p6_, formula_p7_, formula_p8_, formula_p9_, formula_p10_, formula_p11_, formula_p12_;
54.5896 - CLOSE measure_value;
54.5897 -
54.5898 - IF (formula_p1_ IS NOT NULL) THEN
54.5899 - total_ := total_ + formula_p1_;
54.5900 - count_ := count_ + 1;
54.5901 - END IF;
54.5902 -
54.5903 - IF (formula_p2_ IS NOT NULL) THEN
54.5904 - total_ := total_ + formula_p2_;
54.5905 - count_ := count_ + 1;
54.5906 - END IF;
54.5907 -
54.5908 - IF (formula_p3_ IS NOT NULL) THEN
54.5909 - total_ := total_ + formula_p3_;
54.5910 - count_ := count_ + 1;
54.5911 - END IF;
54.5912 -
54.5913 - IF (formula_p4_ IS NOT NULL) THEN
54.5914 - total_ := total_ + formula_p4_;
54.5915 - count_ := count_ + 1;
54.5916 - END IF;
54.5917 -
54.5918 - IF (formula_p5_ IS NOT NULL) THEN
54.5919 - total_ := total_ + formula_p5_;
54.5920 - count_ := count_ + 1;
54.5921 - END IF;
54.5922 -
54.5923 - IF (formula_p6_ IS NOT NULL) THEN
54.5924 - total_ := total_ + formula_p6_;
54.5925 - count_ := count_ + 1;
54.5926 - END IF;
54.5927 -
54.5928 - IF (formula_p7_ IS NOT NULL) THEN
54.5929 - total_ := total_ + formula_p7_;
54.5930 - count_ := count_ + 1;
54.5931 - END IF;
54.5932 -
54.5933 - IF (formula_p8_ IS NOT NULL) THEN
54.5934 - total_ := total_ + formula_p8_;
54.5935 - count_ := count_ + 1;
54.5936 - END IF;
54.5937 -
54.5938 - IF (formula_p9_ IS NOT NULL) THEN
54.5939 - total_ := total_ + formula_p9_;
54.5940 - count_ := count_ + 1;
54.5941 - END IF;
54.5942 -
54.5943 - IF (formula_p10_ IS NOT NULL) THEN
54.5944 - total_ := total_ + formula_p10_;
54.5945 - count_ := count_ + 1;
54.5946 - END IF;
54.5947 -
54.5948 - IF (formula_p11_ IS NOT NULL) THEN
54.5949 - total_ := total_ + formula_p11_;
54.5950 - count_ := count_ + 1;
54.5951 - END IF;
54.5952 -
54.5953 - IF (formula_p12_ IS NOT NULL) THEN
54.5954 - total_ := total_ + formula_p12_;
54.5955 - count_ := count_ + 1;
54.5956 - END IF;
54.5957 -
54.5958 - IF (measure_type_ = 'PERCENTAGE' AND count_ > 0) THEN
54.5959 - total_ := total_ / count_;
54.5960 - ELSIF NOT(measure_type_ = 'VALUE') THEN
54.5961 - total_ := NULL;
54.5962 - END IF;
54.5963 -
54.5964 - IF (total_ IS NOT NULL) THEN
54.5965 - Client_SYS.Clear_Attr(attr_);
54.5966 - Client_SYS.Add_To_Attr('YEAR_VALUE', total_, attr_);
54.5967 - Client_SYS.Add_To_Attr('FROM_BUDPRO', from_budpro_, attr_);
54.5968 - Modify__(info_, objid_, objversion_, attr_ , 'DO');
54.5969 - END IF;
54.5970 -
54.5971 -END Calculate_Year_Value;
54.5972 -PROCEDURE Aggregate_Planned_Values(
54.5973 - environment_ IN VARCHAR2,
54.5974 - scorecard_ IN VARCHAR2,
54.5975 - year_ IN VARCHAR2,
54.5976 - version_ IN VARCHAR2,
54.5977 - scorecard_object_ IN VARCHAR2,
54.5978 - type_ IN VARCHAR2)
54.5979 -IS
54.5980 - my_year_ &TABLE..year%TYPE;
54.5981 - num_ NUMBER;
54.5982 -
54.5983 - CURSOR get_update_record IS
54.5984 - SELECT 1
54.5985 - FROM &VIEW
54.5986 - WHERE environment = environment_
54.5987 - AND scorecard = scorecard_
54.5988 - AND year = year_
54.5989 - AND version = version_
54.5990 - AND scorecard_object = scorecard_object_;
54.5991 -BEGIN
54.5992 - General_SYS.Init_Method(lu_name_, '&PKG', 'Aggregate_Planned_Values');
54.5993 - OPEN get_update_record;
54.5994 - FETCH get_update_record INTO num_;
54.5995 -
54.5996 - IF (get_update_record%FOUND) THEN
54.5997 - my_year_ := Scorecard_Period_API.Get_Year(environment_,
54.5998 - year_);
54.5999 - Hierarchical_Consolidation(environment_,
54.6000 - scorecard_,
54.6001 - my_year_,
54.6002 - version_,
54.6003 - type_,
54.6004 - 12,
54.6005 - scorecard_object_);
54.6006 - /*Calculate_Measures(environment_,
54.6007 - scorecard_,
54.6008 - year_,
54.6009 - version_,
54.6010 - scorecard_object_,
54.6011 - 12);*/
54.6012 - END IF;
54.6013 -
54.6014 - CLOSE get_update_record;
54.6015 -END Aggregate_Planned_Values;
54.6016 -
54.6017 -PROCEDURE Load_Planned_Values (
54.6018 - environment_ IN VARCHAR2,
54.6019 - scorecard_ IN VARCHAR2,
54.6020 - year_ IN VARCHAR2,
54.6021 - version_ IN VARCHAR2,
54.6022 - scorecard_object_ IN VARCHAR2,
54.6023 - from_ IN VARCHAR2,
54.6024 - period_count_ IN VARCHAR2 )
54.6025 -IS
54.6026 - stmt_bp_call_ VARCHAR2(2000);
54.6027 - attr_ VARCHAR2(2000);
54.6028 - dummy_ VARCHAR2(2000);
54.6029 -
54.6030 - TYPE GetTemplateNode IS REF CURSOR;
54.6031 - get_budpro GetTemplateNode;
54.6032 - --Bug 66984 Begin
54.6033 - get_budpro_node GetTemplateNode;
54.6034 - --Bug 66984 End
54.6035 - TYPE BudTemplateRec IS RECORD (company VARCHAR2(60),
54.6036 - budget_process_id VARCHAR2(30),
54.6037 - budget_template_id VARCHAR2(60));
54.6038 - template_rec_ BudTemplateRec;
54.6039 - TYPE BudNodeRec IS RECORD (company VARCHAR2(60),
54.6040 - budget_process_id VARCHAR2(30),
54.6041 - budget_structure_id VARCHAR2(90),
54.6042 - budget_node_id VARCHAR2(90));
54.6043 - node_rec_ BudNodeRec;
54.6044 -
54.6045 - rec_ &TABLE.%ROWTYPE;
54.6046 -
54.6047 - CURSOR get_keys IS
54.6048 - SELECT *
54.6049 - FROM &TABLE
54.6050 - WHERE environment = environment_
54.6051 - AND scorecard = scorecard_
54.6052 - AND year = year_
54.6053 - AND version = version_;
54.6054 -BEGIN
54.6055 - General_SYS.Init_Method(lu_name_, '&PKG', 'Load_Planned_Values');
54.6056 -
54.6057 - IF ( bp_installed_ ) THEN
54.6058 - Client_SYS.Clear_Attr(attr_);
54.6059 -
54.6060 - OPEN get_keys;
54.6061 - FETCH get_keys INTO rec_;
54.6062 - CLOSE get_keys;
54.6063 -
54.6064 - Client_SYS.Add_To_Attr('FROM', from_, attr_);
54.6065 -
54.6066 - IF (rec_.p1_key IS NOT NULL) THEN
54.6067 - Client_SYS.Add_To_Attr('P1_KEY', rec_.p1_key, attr_);
54.6068 - END IF;
54.6069 -
54.6070 - IF (rec_.p2_key IS NOT NULL) THEN
54.6071 - Client_SYS.Add_To_Attr('P2_KEY', rec_.p2_key, attr_);
54.6072 - END IF;
54.6073 -
54.6074 - IF (rec_.p3_key IS NOT NULL) THEN
54.6075 - Client_SYS.Add_To_Attr('P3_KEY', rec_.p3_key, attr_);
54.6076 - END IF;
54.6077 -
54.6078 - IF (rec_.p4_key IS NOT NULL) THEN
54.6079 - Client_SYS.Add_To_Attr('P4_KEY', rec_.p4_key, attr_);
54.6080 - END IF;
54.6081 -
54.6082 - IF (rec_.p5_key IS NOT NULL) THEN
54.6083 - Client_SYS.Add_To_Attr('P5_KEY', rec_.p5_key, attr_);
54.6084 - END IF;
54.6085 -
54.6086 - IF (rec_.p6_key IS NOT NULL) THEN
54.6087 - Client_SYS.Add_To_Attr('P6_KEY', rec_.p6_key, attr_);
54.6088 - END IF;
54.6089 -
54.6090 - IF (rec_.p7_key IS NOT NULL) THEN
54.6091 - Client_SYS.Add_To_Attr('P7_KEY', rec_.p7_key, attr_);
54.6092 - END IF;
54.6093 -
54.6094 - IF (rec_.p8_key IS NOT NULL) THEN
54.6095 - Client_SYS.Add_To_Attr('P8_KEY', rec_.p8_key, attr_);
54.6096 - END IF;
54.6097 -
54.6098 - IF (rec_.p9_key IS NOT NULL) THEN
54.6099 - Client_SYS.Add_To_Attr('P9_KEY', rec_.p9_key, attr_);
54.6100 - END IF;
54.6101 -
54.6102 - IF (rec_.p10_key IS NOT NULL) THEN
54.6103 - Client_SYS.Add_To_Attr('P10_KEY', rec_.p10_key, attr_);
54.6104 - END IF;
54.6105 -
54.6106 - IF (rec_.p11_key IS NOT NULL) THEN
54.6107 - Client_SYS.Add_To_Attr('P11_KEY', rec_.p11_key, attr_);
54.6108 - END IF;
54.6109 -
54.6110 - IF (rec_.p12_key IS NOT NULL) THEN
54.6111 - Client_SYS.Add_To_Attr('P12_KEY', rec_.p12_key, attr_);
54.6112 - END IF;
54.6113 -
54.6114 - IF (attr_ IS NOT NULL) THEN
54.6115 - attr_ := attr_ || scorecard_object_;
54.6116 - END IF;
54.6117 - -- Bug 66984 Begin,Added the line for Budget_Template_API.Is_Period_Matching() method call to stop loading values from templates which don't have matching periods
54.6118 - -- To handle multiple Budget Templates the single fetch was put inside a loop
54.6119 - stmt_bp_call_ := 'SELECT company, budget_process_id, budget_template_id
54.6120 - FROM budget_template_tab
54.6121 - WHERE scorecard = :scorecard
54.6122 - AND Budget_Process_API.Get_Environment(company,budget_process_id) = :environment
54.6123 - AND Budget_Template_API.Is_Period_Matching(company, budget_process_id, budget_template_id)= :value ';
54.6124 -
54.6125 - -- ifs_assert_safe iswalk 060111
54.6126 - OPEN get_budpro FOR stmt_bp_call_ USING scorecard_, environment_,'TRUE';
54.6127 - LOOP
54.6128 - FETCH get_budpro INTO template_rec_;
54.6129 - --Bug 66984 Begin,Added the if condition line and the else part
54.6130 - IF get_budpro%FOUND THEN
54.6131 - IF ((template_rec_.company IS NULL) AND (attr_ IS NOT NULL)) THEN
54.6132 - stmt_bp_call_ := 'SELECT company, budget_process_id, budget_structure_id, budget_node_id
54.6133 - FROM budget_node_tab
54.6134 - WHERE scorecard = :scorecard
54.6135 - AND Budget_Process_API.Get_Environment(company,
54.6136 - budget_process_id) = :environment';
54.6137 -
54.6138 - -- ifs_assert_safe iswalk 060111
54.6139 - OPEN get_budpro_node FOR stmt_bp_call_ USING scorecard_, environment_;
54.6140 - FETCH get_budpro_node INTO node_rec_;
54.6141 - CLOSE get_budpro_node;
54.6142 -
54.6143 - IF (node_rec_.company IS NOT NULL) THEN
54.6144 - --Load the value from Budget Node
54.6145 - dummy_ := 'NODE';
54.6146 - stmt_bp_call_ := 'BEGIN
54.6147 - Budget_Node_API.Export_Planned_Values(:company,
54.6148 - :budget_process_id,
54.6149 - :budget_structure_id,
54.6150 - :budget_node_id,
54.6151 - :record_type,
54.6152 - :attr);
54.6153 - END;';
54.6154 - -- ifs_assert_safe iswalk 060111
54.6155 - EXECUTE IMMEDIATE stmt_bp_call_ USING IN node_rec_.company,
54.6156 - IN node_rec_.budget_process_id,
54.6157 - IN node_rec_.budget_structure_id,
54.6158 - IN node_rec_.budget_node_id,
54.6159 - IN dummy_,
54.6160 - IN attr_;
54.6161 - ELSE
54.6162 - Error_SYS.Appl_General(lu_name_, 'BUSPERSCOIPNOBUD: Selected scorecard object is not connected to any budget template or budget node');
54.6163 - END IF;
54.6164 - ELSIF (attr_ IS NOT NULL) THEN
54.6165 - --Load the value from Budget Template
54.6166 - stmt_bp_call_ := 'BEGIN
54.6167 - Budget_Template_API.Export_Planned_Values(:company,
54.6168 - :budget_process_id,
54.6169 - :budget_template_id,
54.6170 - :attr);
54.6171 - END;';
54.6172 - -- ifs_assert_safe iswalk 060111
54.6173 - EXECUTE IMMEDIATE stmt_bp_call_ USING IN template_rec_.company,
54.6174 - IN template_rec_.budget_process_id,
54.6175 - IN template_rec_.budget_template_id,
54.6176 - IN attr_;
54.6177 - END IF;
54.6178 - IF (attr_ IS NOT NULL) THEN
54.6179 - Import_Fin_Values(environment_,
54.6180 - scorecard_,
54.6181 - year_,
54.6182 - version_,
54.6183 - scorecard_object_);
54.6184 - END IF;
54.6185 - ELSE
54.6186 - CLOSE get_budpro;
54.6187 - EXIT;
54.6188 - END IF;
54.6189 - --Bug 66984 End
54.6190 - END LOOP;
54.6191 - --Bug 66984 End
54.6192 - END IF;
54.6193 -
54.6194 -END Load_Planned_Values;
54.6195 -
54.6196 -FUNCTION Get_No_Of_Periods (
54.6197 - environment_ IN VARCHAR2,
54.6198 - scorecard_ IN VARCHAR2,
54.6199 - year_ IN VARCHAR2,
54.6200 - version_ IN VARCHAR2,
54.6201 - scorecard_object_ IN VARCHAR2 ) RETURN NUMBER
54.6202 -IS
54.6203 - no_of_periods_ NUMBER := 0;
54.6204 - rec_ &TABLE.%ROWTYPE;
54.6205 -
54.6206 - CURSOR get_record IS
54.6207 - SELECT *
54.6208 - FROM &TABLE
54.6209 - WHERE environment = environment_
54.6210 - AND scorecard = scorecard_
54.6211 - AND year = year_
54.6212 - AND version = version_
54.6213 - AND scorecard_object = scorecard_object_;
54.6214 -BEGIN
54.6215 - OPEN get_record;
54.6216 - FETCH get_record INTO rec_;
54.6217 - CLOSE get_record;
54.6218 -
54.6219 - IF (rec_.p1_key IS NOT NULL) THEN
54.6220 - no_of_periods_ := no_of_periods_ + 1;
54.6221 - END IF;
54.6222 -
54.6223 - IF (rec_.p2_key IS NOT NULL) THEN
54.6224 - no_of_periods_ := no_of_periods_ + 1;
54.6225 - END IF;
54.6226 -
54.6227 - IF (rec_.p3_key IS NOT NULL) THEN
54.6228 - no_of_periods_ := no_of_periods_ + 1;
54.6229 - END IF;
54.6230 -
54.6231 - IF (rec_.p4_key IS NOT NULL) THEN
54.6232 - no_of_periods_ := no_of_periods_ + 1;
54.6233 - END IF;
54.6234 -
54.6235 - IF (rec_.p5_key IS NOT NULL) THEN
54.6236 - no_of_periods_ := no_of_periods_ + 1;
54.6237 - END IF;
54.6238 -
54.6239 - IF (rec_.p6_key IS NOT NULL) THEN
54.6240 - no_of_periods_ := no_of_periods_ + 1;
54.6241 - END IF;
54.6242 -
54.6243 - IF (rec_.p7_key IS NOT NULL) THEN
54.6244 - no_of_periods_ := no_of_periods_ + 1;
54.6245 - END IF;
54.6246 -
54.6247 - IF (rec_.p8_key IS NOT NULL) THEN
54.6248 - no_of_periods_ := no_of_periods_ + 1;
54.6249 - END IF;
54.6250 -
54.6251 - IF (rec_.p9_key IS NOT NULL) THEN
54.6252 - no_of_periods_ := no_of_periods_ + 1;
54.6253 - END IF;
54.6254 -
54.6255 - IF (rec_.p10_key IS NOT NULL) THEN
54.6256 - no_of_periods_ := no_of_periods_ + 1;
54.6257 - END IF;
54.6258 -
54.6259 - IF (rec_.p11_key IS NOT NULL) THEN
54.6260 - no_of_periods_ := no_of_periods_ + 1;
54.6261 - END IF;
54.6262 -
54.6263 - IF (rec_.p12_key IS NOT NULL) THEN
54.6264 - no_of_periods_ := no_of_periods_ + 1;
54.6265 - END IF;
54.6266 -
54.6267 - RETURN no_of_periods_;
54.6268 -END Get_No_Of_Periods;
54.6269 -
54.6270 -PROCEDURE Import_Fin_Values(
54.6271 - environment_ IN VARCHAR2,
54.6272 - scorecard_ IN VARCHAR2,
54.6273 - year_ IN VARCHAR2,
54.6274 - version_ IN VARCHAR2,
54.6275 - scorecard_object_ IN VARCHAR2)
54.6276 -IS
54.6277 - TYPE GetTemplateNode IS REF CURSOR;
54.6278 - get_budpro GetTemplateNode;
54.6279 - -- Bug 71089, Begin
54.6280 - get_measure_acc GetTemplateNode;
54.6281 - -- Bug 71089, End
54.6282 - TYPE BudTemplateRec IS RECORD (company VARCHAR2(60),
54.6283 - budget_process_id VARCHAR2(30),
54.6284 - budget_template_id VARCHAR2(60));
54.6285 - template_rec_ BudTemplateRec;
54.6286 - TYPE BudNodeRec IS RECORD (company VARCHAR2(60),
54.6287 - budget_process_id VARCHAR2(30),
54.6288 - budget_structure_id VARCHAR2(90),
54.6289 - budget_node_id VARCHAR2(90));
54.6290 - node_rec_ BudNodeRec;
54.6291 - TYPE Totals IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
54.6292 -
54.6293 - name_ VARCHAR2(30);
54.6294 - mea_name_ VARCHAR2(30);
54.6295 - value_ VARCHAR2(2000);
54.6296 - mea_value_ VARCHAR2(2000);
54.6297 - stmt_bp_call_ VARCHAR2(2000);
54.6298 - -- Bug 71089, Begin
54.6299 - stmt_bp_temp_call_ VARCHAR2(2000);
54.6300 - -- Bug 71089, End
54.6301 - attr_ VARCHAR2(2000);
54.6302 - current_ VARCHAR2(2000);
54.6303 - p_value_attr_ VARCHAR2(2000);
54.6304 - cum_val_attr_ VARCHAR2(4000);
54.6305 - info_ VARCHAR2(2000);
54.6306 - objversion_ VARCHAR2(2000);
54.6307 -
54.6308 - measure_attr_ VARCHAR2(32000);
54.6309 - ptr_ NUMBER;
54.6310 - mea_ptr_ NUMBER;
54.6311 - totals_tab Totals;
54.6312 -
54.6313 - rec_ &VIEW.%ROWTYPE;
54.6314 - temp_rec_ &VIEW.%ROWTYPE;
54.6315 -
54.6316 - -- Bug 68118, Begin
54.6317 - company_ VARCHAR2(20);
54.6318 - budget_process_id_ VARCHAR2(10) ;
54.6319 - budget_template_id_ VARCHAR2(20);
54.6320 - item_value_id_ VARCHAR2(20);
54.6321 - temp_measure_ VARCHAR2(10);
54.6322 - -- Bug 68118, End
54.6323 -
54.6324 - CURSOR get_keys IS
54.6325 - SELECT *
54.6326 - FROM &VIEW
54.6327 - WHERE environment = environment_
54.6328 - AND scorecard = scorecard_
54.6329 - AND year = year_
54.6330 - AND version = version_
54.6331 - AND 'AUTOFIN' = Scorecard_Measure_API.Get_Measure_Update_Type_Db(scorecard_object);
54.6332 - CURSOR get_measure_accounts IS
54.6333 - SELECT account
54.6334 - FROM bp_measure_accounts_tab
54.6335 - WHERE measure = current_;
54.6336 -
54.6337 - -- Bug 68118, Begin
54.6338 - -- Bug 71089, Begin
54.6339 - -- The cursor get_measure_acc was removed
54.6340 - -- Bug 71089, End
54.6341 - -- Bug 68118, End
54.6342 -
54.6343 -BEGIN
54.6344 - General_SYS.Init_Method(lu_name_, '&PKG', 'Import_Fin_Values');
54.6345 -
54.6346 - IF ( bp_installed_ ) THEN
54.6347 - Client_SYS.Clear_Attr(attr_);
54.6348 -
54.6349 - -- Bug 71089, Begin
54.6350 - stmt_bp_temp_call_ := 'SELECT item_value_id
54.6351 - FROM budget_template_row_tab
54.6352 - WHERE company = :company
54.6353 - AND budget_process_id = :budget_process_id
54.6354 - AND budget_template_id = :budget_template_id
54.6355 - AND item_value_id = :item_value_id';
54.6356 -
54.6357 - -- ifs_assert_safe makrlk 080205
54.6358 - -- Bug 71089, End
54.6359 -
54.6360 - OPEN get_keys;
54.6361 - FETCH get_keys INTO temp_rec_;
54.6362 - CLOSE get_keys;
54.6363 -
54.6364 - IF (temp_rec_.p1_key IS NOT NULL) THEN
54.6365 - temp_rec_.p1_key := Scorecard_Period_API.Get_Period_Match_Identity(environment_,
54.6366 - temp_rec_.p1_key);
54.6367 - Client_SYS.Add_To_Attr('P1_KEY',
54.6368 - temp_rec_.p1_key,
54.6369 - attr_);
54.6370 - END IF;
54.6371 -
54.6372 - IF (temp_rec_.p2_key IS NOT NULL) THEN
54.6373 - temp_rec_.p2_key := Scorecard_Period_API.Get_Period_Match_Identity(environment_,
54.6374 - temp_rec_.p2_key);
54.6375 - Client_SYS.Add_To_Attr('P2_KEY',
54.6376 - temp_rec_.p2_key,
54.6377 - attr_);
54.6378 - END IF;
54.6379 -
54.6380 - IF (temp_rec_.p3_key IS NOT NULL) THEN
54.6381 - temp_rec_.p3_key := Scorecard_Period_API.Get_Period_Match_Identity(environment_,
54.6382 - temp_rec_.p3_key);
54.6383 - Client_SYS.Add_To_Attr('P3_KEY',
54.6384 - temp_rec_.p3_key,
54.6385 - attr_);
54.6386 - END IF;
54.6387 -
54.6388 - IF (temp_rec_.p4_key IS NOT NULL) THEN
54.6389 - temp_rec_.p4_key := Scorecard_Period_API.Get_Period_Match_Identity(environment_,
54.6390 - temp_rec_.p4_key);
54.6391 - Client_SYS.Add_To_Attr('P4_KEY',
54.6392 - temp_rec_.p4_key,
54.6393 - attr_);
54.6394 - END IF;
54.6395 -
54.6396 - IF (temp_rec_.p5_key IS NOT NULL) THEN
54.6397 - temp_rec_.p5_key := Scorecard_Period_API.Get_Period_Match_Identity(environment_,
54.6398 - temp_rec_.p5_key);
54.6399 - Client_SYS.Add_To_Attr('P5_KEY',
54.6400 - temp_rec_.p5_key,
54.6401 - attr_);
54.6402 - END IF;
54.6403 -
54.6404 - IF (temp_rec_.p6_key IS NOT NULL) THEN
54.6405 - temp_rec_.p6_key := Scorecard_Period_API.Get_Period_Match_Identity(environment_,
54.6406 - temp_rec_.p6_key);
54.6407 - Client_SYS.Add_To_Attr('P6_KEY',
54.6408 - temp_rec_.p6_key,
54.6409 - attr_);
54.6410 - END IF;
54.6411 -
54.6412 - IF (temp_rec_.p7_key IS NOT NULL) THEN
54.6413 - temp_rec_.p7_key := Scorecard_Period_API.Get_Period_Match_Identity(environment_,
54.6414 - temp_rec_.p7_key);
54.6415 - Client_SYS.Add_To_Attr('P7_KEY',
54.6416 - temp_rec_.p7_key,
54.6417 - attr_);
54.6418 - END IF;
54.6419 -
54.6420 - IF (temp_rec_.p8_key IS NOT NULL) THEN
54.6421 - temp_rec_.p8_key := Scorecard_Period_API.Get_Period_Match_Identity(environment_,
54.6422 - temp_rec_.p8_key);
54.6423 - Client_SYS.Add_To_Attr('P8_KEY',
54.6424 - temp_rec_.p8_key,
54.6425 - attr_);
54.6426 - END IF;
54.6427 -
54.6428 - IF (temp_rec_.p9_key IS NOT NULL) THEN
54.6429 - temp_rec_.p9_key := Scorecard_Period_API.Get_Period_Match_Identity(environment_,
54.6430 - temp_rec_.p9_key);
54.6431 - Client_SYS.Add_To_Attr('P9_KEY',
54.6432 - temp_rec_.p9_key,
54.6433 - attr_);
54.6434 - END IF;
54.6435 -
54.6436 - IF (temp_rec_.p10_key IS NOT NULL) THEN
54.6437 - temp_rec_.p10_key := Scorecard_Period_API.Get_Period_Match_Identity(environment_,
54.6438 - temp_rec_.p10_key);
54.6439 - Client_SYS.Add_To_Attr('P10_KEY',
54.6440 - temp_rec_.p10_key,
54.6441 - attr_);
54.6442 - END IF;
54.6443 -
54.6444 - IF (temp_rec_.p11_key IS NOT NULL) THEN
54.6445 - temp_rec_.p11_key := Scorecard_Period_API.Get_Period_Match_Identity(environment_,
54.6446 - temp_rec_.p11_key);
54.6447 - Client_SYS.Add_To_Attr('P11_KEY',
54.6448 - temp_rec_.p11_key,
54.6449 - attr_);
54.6450 - END IF;
54.6451 -
54.6452 - IF (temp_rec_.p12_key IS NOT NULL) THEN
54.6453 - temp_rec_.p12_key := Scorecard_Period_API.Get_Period_Match_Identity(environment_,
54.6454 - temp_rec_.p12_key);
54.6455 - Client_SYS.Add_To_Attr('P12_KEY',
54.6456 - temp_rec_.p12_key,
54.6457 - attr_);
54.6458 - END IF;
54.6459 -
54.6460 - IF (attr_ IS NOT NULL) THEN
54.6461 -
54.6462 - stmt_bp_call_ := 'SELECT company, budget_process_id, budget_template_id
54.6463 - FROM budget_template_tab
54.6464 - WHERE scorecard = :scorecard
54.6465 - AND Budget_Process_API.Get_Environment(company,
54.6466 - budget_process_id) = :environment';
54.6467 -
54.6468 - -- ifs_assert_safe iswalk 060220
54.6469 - OPEN get_budpro FOR stmt_bp_call_ USING scorecard_, environment_;
54.6470 - FETCH get_budpro INTO template_rec_;
54.6471 - CLOSE get_budpro;
54.6472 -
54.6473 - Client_SYS.Clear_Attr(measure_attr_);
54.6474 - IF (template_rec_.company IS NOT NULL) THEN
54.6475 -
54.6476 - FOR rec_ IN get_keys LOOP
54.6477 - Client_SYS.Clear_Attr(cum_val_attr_);
54.6478 -
54.6479 - FOR i IN 0..11 LOOP
54.6480 - totals_tab(i) := 0;
54.6481 - END LOOP;
54.6482 -
54.6483 - current_ := rec_.scorecard_object;
54.6484 -
54.6485 - Client_SYS.Add_To_Attr('OBJECT_ID',current_,measure_attr_);
54.6486 - mea_ptr_ := NULL;
54.6487 -
54.6488 - --the call has been made from busper side which means only selected measures should be updated
54.6489 - WHILE (Client_SYS.Get_Next_From_Attr(scorecard_object_, mea_ptr_, mea_name_, mea_value_)) LOOP
54.6490 -
54.6491 - IF (current_ = mea_value_) THEN
54.6492 - --get the list of accounts connected to the current measure...
54.6493 - FOR acc_rec_ IN get_measure_accounts LOOP
54.6494 - -- Bug 68118, Begin
54.6495 - company_ := template_rec_.company;
54.6496 - budget_process_id_ := template_rec_.budget_process_id;
54.6497 - budget_template_id_ := template_rec_.budget_template_id;
54.6498 - item_value_id_ := acc_rec_.account;
54.6499 -
54.6500 - -- Bug 71089, Begin. change the OPEN line
54.6501 - -- ifs_assert_safe nsillk 20080318
54.6502 - OPEN get_measure_acc FOR stmt_bp_temp_call_ USING company_, budget_process_id_, budget_template_id_, item_value_id_;
54.6503 - FETCH get_measure_acc INTO temp_measure_;
54.6504 - CLOSE get_measure_acc;
54.6505 - -- Bug 71089, End
54.6506 - -- Bug 68118, End
54.6507 -
54.6508 - -- Bug 68118, Begin added IF condition
54.6509 -
54.6510 - IF (temp_measure_ = acc_rec_.account) THEN
54.6511 - stmt_bp_call_ := 'BEGIN
54.6512 - :p_value_attr := Budget_Template_API.Get_Period_Fin_Values(:company,
54.6513 - :budget_process_id,
54.6514 - :budget_template_id,
54.6515 - :account,
54.6516 - :attr);
54.6517 - END;';
54.6518 - -- ifs_assert_safe iswalk 060220
54.6519 - EXECUTE IMMEDIATE stmt_bp_call_ USING OUT p_value_attr_,
54.6520 - IN template_rec_.company,
54.6521 - IN template_rec_.budget_process_id,
54.6522 - IN template_rec_.budget_template_id,
54.6523 - IN acc_rec_.account,
54.6524 - IN attr_;
54.6525 - cum_val_attr_ := cum_val_attr_ || p_value_attr_;
54.6526 - END IF;
54.6527 - -- Bug 68118, End the IF condition
54.6528 - END LOOP;
54.6529 - END IF;
54.6530 -
54.6531 - END LOOP;
54.6532 -
54.6533 - --the call has been made from budpro side which means all measures should be updated
54.6534 - IF (scorecard_object_ IS NULL) THEN
54.6535 - --get the list of accounts connected to the current measure...
54.6536 - FOR acc_rec_ IN get_measure_accounts LOOP
54.6537 - -- Bug 68118, Begin
54.6538 - company_ := template_rec_.company;
54.6539 - budget_process_id_ := template_rec_.budget_process_id;
54.6540 - budget_template_id_ := template_rec_.budget_template_id;
54.6541 - item_value_id_ := acc_rec_.account;
54.6542 -
54.6543 - -- Bug 71089, Begin. change the OPEN line
54.6544 - -- ifs_assert_safe nsillk 20080318
54.6545 - OPEN get_measure_acc FOR stmt_bp_temp_call_ USING company_, budget_process_id_, budget_template_id_, item_value_id_;
54.6546 - FETCH get_measure_acc INTO temp_measure_;
54.6547 - CLOSE get_measure_acc;
54.6548 - -- Bug 71089, End
54.6549 - -- Bug 68118, End
54.6550 -
54.6551 - -- Bug 68118, Begin added IF condition
54.6552 - IF (temp_measure_ = acc_rec_.account) THEN
54.6553 - stmt_bp_call_ := 'BEGIN
54.6554 - :p_value_attr := Budget_Template_API.Get_Period_Fin_Values(:company,
54.6555 - :budget_process_id,
54.6556 - :budget_template_id,
54.6557 - :account,
54.6558 - :attr);
54.6559 - END;';
54.6560 - -- ifs_assert_safe iswalk 060220
54.6561 - EXECUTE IMMEDIATE stmt_bp_call_ USING OUT p_value_attr_,
54.6562 - IN template_rec_.company,
54.6563 - IN template_rec_.budget_process_id,
54.6564 - IN template_rec_.budget_template_id,
54.6565 - IN acc_rec_.account,
54.6566 - IN attr_;
54.6567 - cum_val_attr_ := cum_val_attr_ || p_value_attr_;
54.6568 - END IF;
54.6569 - -- Bug 68118, End the IF condition
54.6570 -
54.6571 - END LOOP;
54.6572 - END IF;
54.6573 -
54.6574 - IF (cum_val_attr_ IS NOT NULL) THEN
54.6575 -
54.6576 - ptr_ := NULL;
54.6577 -
54.6578 - WHILE (Client_SYS.Get_Next_From_Attr(cum_val_attr_, ptr_, name_, value_)) LOOP
54.6579 -
54.6580 - IF (temp_rec_.p1_key = name_) THEN
54.6581 - totals_tab(0) := totals_tab(0) + Client_SYS.Attr_Value_To_Number(value_);
54.6582 - END IF;
54.6583 -
54.6584 - IF (temp_rec_.p2_key = name_) THEN
54.6585 - totals_tab(1) := totals_tab(1) + Client_SYS.Attr_Value_To_Number(value_);
54.6586 - END IF;
54.6587 -
54.6588 - IF (temp_rec_.p3_key = name_) THEN
54.6589 - totals_tab(2) := totals_tab(2) + Client_SYS.Attr_Value_To_Number(value_);
54.6590 - END IF;
54.6591 -
54.6592 - IF (temp_rec_.p4_key = name_) THEN
54.6593 - totals_tab(3) := totals_tab(3) + Client_SYS.Attr_Value_To_Number(value_);
54.6594 - END IF;
54.6595 -
54.6596 - IF (temp_rec_.p5_key = name_) THEN
54.6597 - totals_tab(4) := totals_tab(4) + Client_SYS.Attr_Value_To_Number(value_);
54.6598 - END IF;
54.6599 -
54.6600 - IF (temp_rec_.p6_key = name_) THEN
54.6601 - totals_tab(5) := totals_tab(5) + Client_SYS.Attr_Value_To_Number(value_);
54.6602 - END IF;
54.6603 -
54.6604 - IF (temp_rec_.p7_key = name_) THEN
54.6605 - totals_tab(6) := totals_tab(6) + Client_SYS.Attr_Value_To_Number(value_);
54.6606 - END IF;
54.6607 -
54.6608 - IF (temp_rec_.p8_key = name_) THEN
54.6609 - totals_tab(7) := totals_tab(7) + Client_SYS.Attr_Value_To_Number(value_);
54.6610 - END IF;
54.6611 -
54.6612 - IF (temp_rec_.p9_key = name_) THEN
54.6613 - totals_tab(8) := totals_tab(8) + Client_SYS.Attr_Value_To_Number(value_);
54.6614 - END IF;
54.6615 -
54.6616 - IF (temp_rec_.p10_key = name_) THEN
54.6617 - totals_tab(9) := totals_tab(9) + Client_SYS.Attr_Value_To_Number(value_);
54.6618 - END IF;
54.6619 -
54.6620 - IF (temp_rec_.p11_key = name_) THEN
54.6621 - totals_tab(10) := totals_tab(10) + Client_SYS.Attr_Value_To_Number(value_);
54.6622 - END IF;
54.6623 -
54.6624 - IF (temp_rec_.p12_key = name_) THEN
54.6625 - totals_tab(11) := totals_tab(11) + Client_SYS.Attr_Value_To_Number(value_);
54.6626 - END IF;
54.6627 -
54.6628 - END LOOP;
54.6629 -
54.6630 - Client_SYS.Clear_Attr(cum_val_attr_);
54.6631 -
54.6632 - FOR i IN 0..11 LOOP
54.6633 -
54.6634 - -- Bug 68118, Begin remove the the IF condition
54.6635 - Client_SYS.Add_To_Attr('P'|| (i + 1) || '_VALUE', totals_tab(i), cum_val_attr_);
54.6636 - -- Bug 68118, End
54.6637 -
54.6638 - END LOOP;
54.6639 -
54.6640 - objversion_ := rec_.objversion;
54.6641 - Client_SYS.Add_To_Attr('FROM_BUDPRO', 'TRUE', cum_val_attr_);
54.6642 - Modify__(info_, rec_.objid, objversion_, cum_val_attr_, 'DO');
54.6643 - Calculate_Year_Value(environment_,
54.6644 - scorecard_,
54.6645 - year_,
54.6646 - version_,
54.6647 - rec_.scorecard_object);
54.6648 -
54.6649 - END IF;
54.6650 -
54.6651 - END LOOP;
54.6652 -
54.6653 - Calc_Measure_From_Budpro (environment_ ,scorecard_,measure_attr_);
54.6654 - END IF;
54.6655 -
54.6656 - END IF;
54.6657 -
54.6658 - END IF;
54.6659 -END Import_Fin_Values;
54.6660 -PROCEDURE Calc_Measure_From_Budpro (
54.6661 - environment_ IN VARCHAR2,
54.6662 - scorecard_ IN VARCHAR2,
54.6663 - comp_attr_ IN VARCHAR2 )
54.6664 -IS
54.6665 - ptr_ NUMBER;
54.6666 - count_ NUMBER;
54.6667 - period_count_ NUMBER;
54.6668 -
54.6669 - name_ VARCHAR2(30);
54.6670 - value_ VARCHAR2(2000);
54.6671 - level_type_val_ VARCHAR2(20);
54.6672 - measure_version_ VARCHAR2(30);
54.6673 -
54.6674 - object_id_ scorecard_measure_tab.measure%TYPE;
54.6675 - level_type_ scorecard_structure_tab.child_level_type%TYPE;
54.6676 - year_ scorecard_period_tab.year%TYPE;
54.6677 - budget_version_ measure_version_tab.version%TYPE;
54.6678 -
54.6679 - CURSOR get_level_type IS
54.6680 - SELECT child_level_type
54.6681 - FROM Scorecard_structure_tab
54.6682 - WHERE environment = environment_
54.6683 - AND scorecard = scorecard_
54.6684 - AND level_id = object_id_;
54.6685 -
54.6686 - CURSOR get_measures_planform IS
54.6687 - SELECT level_id,measure_calc_formula
54.6688 - FROM Scorecard_Structure_TAB
54.6689 - WHERE environment = environment_
54.6690 - AND scorecard = scorecard_
54.6691 - AND measure_calc_formula IS NOT NULL;
54.6692 -
54.6693 - CURSOR get_years IS
54.6694 - SELECT DISTINCT year
54.6695 - FROM Scorecard_Period_TAB
54.6696 - WHERE environment = environment_;
54.6697 -
54.6698 - CURSOR get_period_count IS
54.6699 - SELECT COUNT(period)
54.6700 - FROM Scorecard_Period_TAB
54.6701 - WHERE environment = environment_
54.6702 - AND year = year_;
54.6703 -
54.6704 - TYPE MeasuresTable IS TABLE OF VARCHAR2(2000) INDEX BY BINARY_INTEGER;
54.6705 - measures_tab MeasuresTable ;
54.6706 -
54.6707 -
54.6708 -
54.6709 -BEGIN
54.6710 - General_SYS.Init_Method(lu_name_, '&PKG', 'Calc_Measure_From_Budpro');
54.6711 - ptr_ := NULL;
54.6712 -
54.6713 - WHILE ( Client_SYS.Get_Next_From_Attr(comp_attr_, ptr_, name_, value_) ) LOOP
54.6714 - IF (name_ = 'OBJECT_ID') THEN
54.6715 - object_id_ := value_;
54.6716 - END IF;
54.6717 -
54.6718 - OPEN get_level_type;
54.6719 - FETCH get_level_type INTO level_type_;
54.6720 - CLOSE get_level_type;
54.6721 -
54.6722 - IF(level_type_ = 'COMPONENT') THEN
54.6723 - count_ := 0;
54.6724 - FOR get_measures_planform_ IN get_measures_planform LOOP
54.6725 - IF( INSTR(get_measures_planform_.measure_calc_formula,object_id_) > 0) THEN
54.6726 - measures_tab(count_) := get_measures_planform_.level_id;
54.6727 - END IF;
54.6728 - END LOOP;
54.6729 - budget_version_ := Scorecard_Environment_API.Get_Budget_Version(environment_);
54.6730 -
54.6731 - IF( measures_tab.COUNT > 0 ) THEN
54.6732 -
54.6733 - FOR x IN measures_tab.FIRST..measures_tab.LAST LOOP
54.6734 - FOR get_years_ IN get_years LOOP
54.6735 - year_ := get_years_.year;
54.6736 -
54.6737 - OPEN get_period_count;
54.6738 - FETCH get_period_count INTO period_count_;
54.6739 - CLOSE get_period_count;
54.6740 -
54.6741 - IF( Check_Exist___ (environment_,scorecard_,year_,budget_version_,measures_tab(x))) THEN
54.6742 - Calculate_Measures (environment_,
54.6743 - scorecard_,
54.6744 - year_,
54.6745 - budget_version_,
54.6746 - measures_tab(x),
54.6747 - period_count_,
54.6748 - 'TRUE' );
54.6749 - END IF;
54.6750 - END LOOP;
54.6751 - END LOOP;
54.6752 - END IF;
54.6753 - END IF;
54.6754 - END LOOP;
54.6755 -END Calc_Measure_From_Budpro;
54.6756 -
54.6757 -
54.6758 -FUNCTION Get (
54.6759 - environment_ IN VARCHAR2,
54.6760 - scorecard_ IN VARCHAR2,
54.6761 - year_ IN VARCHAR2,
54.6762 - version_ IN VARCHAR2,
54.6763 - scorecard_object_ IN VARCHAR2 ) RETURN Public_Rec
54.6764 -IS
54.6765 - temp_ Public_Rec;
54.6766 - CURSOR get_attr IS
54.6767 - SELECT action, mea_state_change_date
54.6768 - FROM &TABLE
54.6769 - WHERE environment = environment_
54.6770 - AND scorecard = scorecard_
54.6771 - AND year = year_
54.6772 - AND version = version_
54.6773 - AND scorecard_object = scorecard_object_;
54.6774 -BEGIN
54.6775 - OPEN get_attr;
54.6776 - FETCH get_attr INTO temp_;
54.6777 - CLOSE get_attr;
54.6778 - RETURN temp_;
54.6779 -END Get;
54.6780 ------------------------------------------------------------------------------
54.6781 --------------------- FOUNDATION1 METHODS ------------------------------------
54.6782 ------------------------------------------------------------------------------
54.6783 --- Init
54.6784 --- Dummy procedure that can be called at database startup to ensure that
54.6785 --- this package is loaded into memory for performance reasons only.
54.6786 ------------------------------------------------------------------------------
54.6787 -
54.6788 -PROCEDURE Init
54.6789 -IS
54.6790 -BEGIN
54.6791 - NULL;
54.6792 -END Init;
54.6793 -
54.6794 -
54.6795 -END &PKG;
54.6796 -/
54.6797 -SHOW ERROR
54.6798 -
54.6799 -UNDEFINE MODULE
54.6800 -UNDEFINE LU
54.6801 -UNDEFINE TABLE
54.6802 -UNDEFINE VIEW
54.6803 -UNDEFINE VIEW2
54.6804 -UNDEFINE VIEW3
54.6805 -UNDEFINE VIEW4
54.6806 -UNDEFINE VIEW5
54.6807 -UNDEFINE PKG
54.6808 -UNDEFINE OBJID
54.6809 -UNDEFINE OBJVERSION
54.6810 -UNDEFINE OBJSTATE
54.6811 -UNDEFINE OBJEVENTS
54.6812 -UNDEFINE STATE
54.6813 ------------------------------------------------------------------------------
55.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
55.2 +++ b/PLSQL/Lexer/test/unit/src/org/netbeans/modules/plsql/lexer/TestRecordPlayer.java Wed May 15 23:04:20 2013 +0200
55.3 @@ -0,0 +1,91 @@
55.4 +package org.netbeans.modules.plsql.lexer;
55.5 +
55.6 +import java.io.File;
55.7 +import java.io.IOException;
55.8 +import java.util.ArrayList;
55.9 +import java.util.List;
55.10 +import static junit.framework.Assert.assertEquals;
55.11 +import org.apache.commons.io.FileUtils;
55.12 +import org.netbeans.junit.NbTestCase;
55.13 +
55.14 +/**
55.15 + * This class contains both the framework for template testing and the test settings.
55.16 + *
55.17 + * RUN_LAYER_TEST map states if tests for that particular layer should be run or not. true = all tests for this layer
55.18 + * are executed, both for test data collection and for test output verification false = the layer is ignored completely,
55.19 + * both for testing and data collection
55.20 + *
55.21 + * RecordTestData is a switch for testing mode true = record test data and write expected data files to their correct
55.22 + * folders. those files should then be committed to the SVN repository NOTE: this flag should only be set when
55.23 + * collecting data and the be reset again. Never commit this class to SVN with this flag set to true !!! false = run the
55.24 + * test as normal
55.25 + */
55.26 +public class TestRecordPlayer extends NbTestCase {
55.27 +
55.28 + private boolean recordTestData = false; //NOTE: Must be false when committed !!!
55.29 +
55.30 + public TestRecordPlayer(String name) {
55.31 + super(name);
55.32 + }
55.33 +
55.34 + public void processBlocks(String plsqlFileName, List<PlsqlBlock> plsqlBlocks) throws IOException {
55.35 + List<PlsqlBlockType> expectedBlockTypes = new ArrayList<PlsqlBlockType>();
55.36 + populateListOfPlsqlBlocks(plsqlBlocks, expectedBlockTypes);
55.37 + if (recordTestData) {
55.38 + final File expectedDir = new File(getExpectedDir().replace(File.separator + "build" + File.separator, File.separator));
55.39 + expectedDir.mkdirs();
55.40 + FileUtils.writeLines(new File(expectedDir, plsqlFileName + ".structure"), expectedBlockTypes);
55.41 + } else {
55.42 + File expectedFile = new File(getExpectedDir(), plsqlFileName + ".structure");
55.43 + final File actualFile = new File(getWorkDir(), plsqlFileName + ".structure");
55.44 + FileUtils.writeLines(actualFile, expectedBlockTypes);
55.45 + assertStructure(expectedFile, actualFile);
55.46 + }
55.47 + }
55.48 +
55.49 + private void populateListOfPlsqlBlocks(List<PlsqlBlock> plsqlBlocks, List<PlsqlBlockType> blockTypes) {
55.50 +
55.51 + for (PlsqlBlock plsqlBlock : plsqlBlocks) {
55.52 + blockTypes.add(plsqlBlock.getType());
55.53 + final List<PlsqlBlock> childBlocks = plsqlBlock.getChildBlocks();
55.54 + if (childBlocks != null && !childBlocks.isEmpty()) {
55.55 + populateListOfPlsqlBlocks(childBlocks, blockTypes);
55.56 + }
55.57 + }
55.58 + }
55.59 +
55.60 + public void assertStructure(File expectedFile, File actualFile) throws IOException {
55.61 + assertLines(FileUtils.readFileToString(expectedFile, "utf-8"), FileUtils.readFileToString(actualFile, "utf-8"));
55.62 + }
55.63 +
55.64 + protected String getExpectedDir() {
55.65 + return getDataDir().getAbsolutePath() + File.separator + "expected" + File.separator;
55.66 + }
55.67 +
55.68 + public static void assertLines(String expResult, String result) {
55.69 + String[] expectedLine = expResult.replace("\r", "").split("[\\r\\n]");
55.70 + String[] resultLine = result.replace("\r", "").split("[\\r\\n]");
55.71 + for (int i = 0; i < resultLine.length && i < expectedLine.length; i++) {
55.72 + try {
55.73 + assertEquals(expectedLine[i].replaceAll("\\s+", " ").trim(), resultLine[i].replaceAll("\\s+", " ").trim());
55.74 + } catch (AssertionError e) {
55.75 + System.out.println("failed on line " + i);
55.76 + System.out.println("EXPECTED==========================================================");
55.77 + for (int j = -5; j < 8; j++) {
55.78 + if (i < expectedLine.length - j && i + j >= 0) {
55.79 + System.out.println((j == 0 ? "--> " : " ") + expectedLine[i + j]);
55.80 + }
55.81 + }
55.82 + System.out.println("RESULT============================================================");
55.83 + for (int j = -5; j < 8; j++) {
55.84 + if (i < resultLine.length - j && i + j >= 0) {
55.85 + System.out.println((j == 0 ? "--> " : " ") + resultLine[i + j]);
55.86 + }
55.87 + }
55.88 + System.out.println("==================================================================");
55.89 + throw e;
55.90 + }
55.91 + }
55.92 + assertEquals(expectedLine.length, resultLine.length);
55.93 + }
55.94 +}
56.1 --- a/PLSQL/Lexer/test/unit/src/org/netbeans/modules/plsql/lexer/Trainer.apy Wed May 15 16:07:35 2013 +0200
56.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
56.3 @@ -1,877 +0,0 @@
56.4 ------------------------------------------------------------------------------
56.5 ---
56.6 --- Logical unit: Trainer
56.7 ---
56.8 --- Purpose:
56.9 ---
56.10 --- IFS/Design Template Version 2.2
56.11 ---
56.12 --- Date Sign History
56.13 --- ------ ---- -----------------------------------------------------------
56.14 --- 040219 NIMULK made compatible with unicode. Substr
56.15 --- 010509 UlPe Remove call to dbms
56.16 --- 010509 UlPe Changes of General_Sys.Init_Method (technical directive)
56.17 --- 990426 ELZ Changed to New Template (2.2.1)
56.18 --- 981222 ELZ Created.
56.19 ------------------------------------------------------------------------------
56.20 -
56.21 -DEFINE MODULE = TRNADM
56.22 -DEFINE LU = Trainer
56.23 -DEFINE TABLE = TRAINER_TAB
56.24 -DEFINE VIEW = TRAINER
56.25 -DEFINE VIEW_LOV1 = TRAINER_LOV1
56.26 -DEFINE VIEW_LOV2 = TRAINER_LOV2
56.27 -DEFINE PKG = TRAINER_API
56.28 -
56.29 -DEFINE OBJID = t.rowid
56.30 -DEFINE OBJVERSION = ltrim(lpad(to_char(t.rowversion),2000))
56.31 -
56.32 ------------------------------------------------------------------------------
56.33 --------------------- VIEWS FOR SELECTS --------------------------------------
56.34 ------------------------------------------------------------------------------
56.35 -
56.36 -PROMPT Creating &VIEW view
56.37 -
56.38 -CREATE OR REPLACE FORCE VIEW &VIEW AS
56.39 -SELECT t.person_id person_id,
56.40 - internal internal,
56.41 - p.name1 fname,
56.42 - p.name4 lname,
56.43 - training_institution_no training_institution_no,
56.44 - Training_Institution_API.Decode(training_institution_no) training_institution_name,
56.45 - p.date_of_birth date_of_birth,
56.46 - Person_Sex_API.Decode(p.sex) sex,
56.47 - p.sex sex_db,
56.48 - remark remark,
56.49 - &OBJID objid,
56.50 - &OBJVERSION objversion
56.51 -FROM trainer_tab t, pers_tab p
56.52 -WHERE t.person_id = p.person_id
56.53 -WITH read only;
56.54 -
56.55 -COMMENT ON TABLE &VIEW
56.56 - IS 'LU=&LU^PROMPT=Trainer^MODULE=&MODULE^';
56.57 -
56.58 -COMMENT ON COLUMN &VIEW..person_id
56.59 - IS 'FLAGS=KMI-L^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Person Id^REF=Pers^';
56.60 -COMMENT ON COLUMN &VIEW..internal
56.61 - IS 'FLAGS=AMIUL^DATATYPE=STRING(1)^PROMPT=Internal^';
56.62 -COMMENT ON COLUMN &VIEW..fname
56.63 - IS 'FLAGS=A-IUL^DATATYPE=STRING(40)^PROMPT=First Name^';
56.64 -COMMENT ON COLUMN &VIEW..lname
56.65 - IS 'FLAGS=AMIUL^DATATYPE=STRING(40)^PROMPT=Last Name^';
56.66 -COMMENT ON COLUMN &VIEW..training_institution_no
56.67 - IS 'FLAGS=A-IU-^DATATYPE=NUMBER^PROMPT=Training Institution No^REF=TrainingInstitution^';
56.68 -COMMENT ON COLUMN &VIEW..training_institution_name
56.69 - IS 'FLAGS=A-IU-^DATATYPE=STRING(100)^PROMPT=Training Institution Name^';
56.70 -COMMENT ON COLUMN &VIEW..date_of_birth
56.71 - IS 'FLAGS=A-IU-^DATATYPE=DATE/DATE^PROMPT=Date of Birth^';
56.72 -COMMENT ON COLUMN &VIEW..sex
56.73 - IS 'FLAGS=A-IU-^DATATYPE=STRING(200)^PROMPT=Gender^REF=PersonSex^';
56.74 -COMMENT ON COLUMN &VIEW..remark
56.75 - IS 'FLAGS=A-IU-^DATATYPE=STRING(2000)^PROMPT=Remark^';
56.76 -
56.77 -
56.78 -PROMPT Creating &VIEW_LOV1 view
56.79 -
56.80 -CREATE OR REPLACE FORCE VIEW &VIEW_LOV1 AS
56.81 -SELECT person_id person_id,
56.82 - Trainer_API.Get_Name(person_id) name,
56.83 - Trainer_API.Get_Internal_External(internal) internal_external
56.84 -FROM trainer_tab
56.85 -WITH read only;
56.86 -
56.87 -COMMENT ON TABLE &VIEW_LOV1
56.88 - IS 'LU=&LU^PROMPT=Trainer^MODULE=&MODULE^SORT=Person_Id^';
56.89 -
56.90 -COMMENT ON COLUMN &VIEW_LOV1..person_id
56.91 - IS 'FLAGS=K---L^DATATYPE=STRING(20)/UPPERCASE^PROMPT=Person Id^';
56.92 -COMMENT ON COLUMN &VIEW_LOV1..name
56.93 - IS 'FLAGS=A---L^DATATYPE=STRING(100)^PROMPT=Name^';
56.94 -COMMENT ON COLUMN &VIEW_LOV1..internal_external
56.95 - IS 'FLAGS=A---L^DATATYPE=STRING(100)^PROMPT=Internal/External^';
56.96 -
56.97 ------------------------------------------------------------------------------
56.98 --------------------- PACKAGES FOR METHODS -----------------------------------
56.99 ------------------------------------------------------------------------------
56.100 -
56.101 -PROMPT Creating &PKG implementation
56.102 -
56.103 -CREATE OR REPLACE PACKAGE BODY &PKG IS
56.104 -
56.105 ------------------------------------------------------------------------------
56.106 --------------------- LU SPECIFIC IMPLEMENTATION METHOD DECLARATIONS ---------
56.107 ------------------------------------------------------------------------------
56.108 -
56.109 ------------------------------------------------------------------------------
56.110 --------------------- IMPLEMENTATION BASE METHODS ----------------------------
56.111 ------------------------------------------------------------------------------
56.112 --- Lock_By_Id___
56.113 --- Client-support to lock a specific instance of the logical unit.
56.114 ---
56.115 --- Lock_By_Keys___
56.116 --- Server support to lock a specific instance of the logical unit.
56.117 ---
56.118 --- Get_Object_By_Id___
56.119 --- Get LU-record from the database with a specified object identity.
56.120 ---
56.121 --- Get_Object_By_Keys___
56.122 --- Get LU-record from the database with specified key columns.
56.123 ---
56.124 --- Check_Exist___
56.125 --- Check if a specific LU-instance already exist in the database.
56.126 ---
56.127 --- Get_Id_Version_By_Keys___
56.128 --- Get the current OBJID and OBJVERSION for a specific LU-instance.
56.129 ------------------------------------------------------------------------------
56.130 -FUNCTION Lock_By_Id___ (
56.131 - objid_ IN VARCHAR2,
56.132 - objversion_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
56.133 -IS
56.134 - row_changed EXCEPTION;
56.135 - row_deleted EXCEPTION;
56.136 - row_locked EXCEPTION;
56.137 - PRAGMA exception_init(row_locked, -0054);
56.138 - rec_ &TABLE%ROWTYPE;
56.139 - dummy_ NUMBER;
56.140 - CURSOR lock_control IS
56.141 - SELECT *
56.142 - FROM &TABLE t
56.143 - WHERE &OBJID = objid_
56.144 - AND &OBJVERSION = objversion_
56.145 - FOR UPDATE NOWAIT;
56.146 - CURSOR exist_control IS
56.147 - SELECT 1
56.148 - FROM &TABLE t
56.149 - WHERE &OBJID = objid_;
56.150 -BEGIN
56.151 - OPEN lock_control;
56.152 - FETCH lock_control INTO rec_;
56.153 - IF (lock_control%FOUND) THEN
56.154 - CLOSE lock_control;
56.155 - RETURN rec_;
56.156 - END IF;
56.157 - CLOSE lock_control;
56.158 - OPEN exist_control;
56.159 - FETCH exist_control INTO dummy_;
56.160 - IF (exist_control%FOUND) THEN
56.161 - CLOSE exist_control;
56.162 - RAISE row_changed;
56.163 - ELSE
56.164 - CLOSE exist_control;
56.165 - RAISE row_deleted;
56.166 - END IF;
56.167 -EXCEPTION
56.168 - WHEN row_locked THEN
56.169 - Error_SYS.Record_Locked(lu_name_);
56.170 - WHEN row_changed THEN
56.171 - Error_SYS.Record_Modified(lu_name_);
56.172 - WHEN row_deleted THEN
56.173 - Error_SYS.Record_Removed(lu_name_);
56.174 -END Lock_By_Id___;
56.175 -
56.176 -FUNCTION Lock_By_Keys___ (
56.177 - person_id_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
56.178 -IS
56.179 - row_deleted EXCEPTION;
56.180 - rec_ &TABLE%ROWTYPE;
56.181 - CURSOR lock_control IS
56.182 - SELECT *
56.183 - FROM &TABLE
56.184 - WHERE person_id = person_id_
56.185 - FOR UPDATE;
56.186 -BEGIN
56.187 - OPEN lock_control;
56.188 - FETCH lock_control INTO rec_;
56.189 - IF (lock_control%FOUND) THEN
56.190 - CLOSE lock_control;
56.191 - RETURN rec_;
56.192 - ELSE
56.193 - CLOSE lock_control;
56.194 - RAISE row_deleted;
56.195 - END IF;
56.196 -EXCEPTION
56.197 - WHEN row_deleted THEN
56.198 - Error_SYS.Record_Removed(lu_name_);
56.199 -END Lock_By_Keys___;
56.200 -
56.201 -FUNCTION Get_Object_By_Id___ (
56.202 - objid_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
56.203 -IS
56.204 - lu_rec_ &TABLE%ROWTYPE;
56.205 - CURSOR getrec IS
56.206 - SELECT *
56.207 - FROM &TABLE t
56.208 - WHERE &OBJID = objid_;
56.209 -BEGIN
56.210 - OPEN getrec;
56.211 - FETCH getrec INTO lu_rec_;
56.212 - IF (getrec%NOTFOUND) THEN
56.213 - CLOSE getrec;
56.214 - Error_SYS.Record_Removed(lu_name_);
56.215 - END IF;
56.216 - CLOSE getrec;
56.217 - RETURN(lu_rec_);
56.218 -END Get_Object_By_Id___;
56.219 -
56.220 -FUNCTION Get_Object_By_Keys___ (
56.221 - person_id_ IN VARCHAR2 ) RETURN &TABLE%ROWTYPE
56.222 -IS
56.223 - lu_rec_ &TABLE%ROWTYPE;
56.224 - CURSOR getrec IS
56.225 - SELECT *
56.226 - FROM &TABLE
56.227 - WHERE person_id = person_id_;
56.228 -BEGIN
56.229 - OPEN getrec;
56.230 - FETCH getrec INTO lu_rec_;
56.231 - CLOSE getrec;
56.232 - RETURN(lu_rec_);
56.233 -END Get_Object_By_Keys___;
56.234 -
56.235 -FUNCTION Check_Exist___ (
56.236 - person_id_ IN VARCHAR2 ) RETURN BOOLEAN
56.237 -IS
56.238 - dummy_ NUMBER;
56.239 - CURSOR exist_control IS
56.240 - SELECT 1
56.241 - FROM &TABLE
56.242 - WHERE person_id = person_id_;
56.243 -BEGIN
56.244 - OPEN exist_control;
56.245 - FETCH exist_control INTO dummy_;
56.246 - IF (exist_control%FOUND) THEN
56.247 - CLOSE exist_control;
56.248 - RETURN(TRUE);
56.249 - END IF;
56.250 - CLOSE exist_control;
56.251 - RETURN(FALSE);
56.252 -END Check_Exist___;
56.253 -
56.254 -PROCEDURE Get_Id_Version_By_Keys___ (
56.255 - objid_ IN OUT VARCHAR2,
56.256 - objversion_ IN OUT VARCHAR2,
56.257 - person_id_ IN VARCHAR2)
56.258 -IS
56.259 - CURSOR get_version IS
56.260 - SELECT &OBJID, &OBJVERSION
56.261 - FROM &TABLE t
56.262 - WHERE person_id = person_id_;
56.263 -BEGIN
56.264 - OPEN get_version;
56.265 - FETCH get_version INTO objid_, objversion_;
56.266 - CLOSE get_version;
56.267 -END Get_Id_Version_By_Keys___;
56.268 ------------------------------------------------------------------------------
56.269 --------------------- IMPLEMENTATION BASE METHODS FOR INSERT -----------------
56.270 ------------------------------------------------------------------------------
56.271 --- Prepare_Insert___
56.272 --- Set all default values for a new instance (ON-NEW-RECORD) of this
56.273 --- logical unit by calling procedure Add_Attr.
56.274 ---
56.275 --- Unpack_Check_Insert___
56.276 --- Unpack the attribute list, check all attributes from the client
56.277 --- and generate all default values before creation of the new object.
56.278 ---
56.279 --- Insert___
56.280 --- Insert a new LU-instance into the database and return the values
56.281 --- for OBJID and OBJVERSION.
56.282 ------------------------------------------------------------------------------
56.283 -
56.284 -PROCEDURE Prepare_Insert___ (
56.285 - attr_ IN OUT VARCHAR2 )
56.286 -IS
56.287 -BEGIN
56.288 - Client_SYS.Clear_Attr(attr_);
56.289 -END Prepare_Insert___;
56.290 -
56.291 -
56.292 -PROCEDURE Unpack_Check_Insert___ (
56.293 - attr_ IN OUT VARCHAR2,
56.294 - newrec_ IN OUT &TABLE%ROWTYPE,
56.295 - dummy_rec_ IN OUT Dummy_Rec )
56.296 -IS
56.297 - ptr_ NUMBER;
56.298 - name_ VARCHAR2(30);
56.299 - value_ VARCHAR2(2000);
56.300 - name1_ VARCHAR2(200);
56.301 - name4_ VARCHAR2(200);
56.302 -BEGIN
56.303 - ptr_ := NULL;
56.304 - WHILE (Client_SYS.Get_Next_From_Attr(attr_, ptr_, name_, value_)) LOOP
56.305 - IF (name_ = 'PERSON_ID') THEN
56.306 - newrec_.person_id := value_;
56.307 - ELSIF (name_ = 'INTERNAL') THEN
56.308 - newrec_.internal := value_;
56.309 - ELSIF (name_ = 'FNAME') THEN
56.310 - dummy_rec_.name1 := value_;
56.311 - ELSIF (name_ = 'LNAME') THEN
56.312 - dummy_rec_.name4 := value_;
56.313 - ELSIF (name_ = 'TRAINING_INSTITUTION_NAME') THEN
56.314 - newrec_.training_institution_no := Training_Institution_API.Encode(value_);
56.315 - IF (value_ IS NOT NULL) THEN
56.316 - Training_Institution_API.Exist(newrec_.training_institution_no);
56.317 - END IF;
56.318 - ELSIF (name_ = 'DATE_OF_BIRTH') THEN
56.319 - dummy_rec_.date_of_birth := Client_SYS.Attr_Value_To_Date(value_);
56.320 - ELSIF (name_ = 'SEX') THEN
56.321 - dummy_rec_.sex := Person_Sex_API.Encode(value_);
56.322 - IF (value_ IS NOT NULL) THEN
56.323 - Person_Sex_API.Exist(value_);
56.324 - END IF;
56.325 - ELSIF (name_ = 'REMARK') THEN
56.326 - newrec_.remark := value_;
56.327 - ELSE
56.328 - Error_SYS.Item_Not_Exist(lu_name_, name_, value_);
56.329 - END IF;
56.330 - END LOOP;
56.331 - Client_SYS.Clear_Attr(attr_);
56.332 - Error_SYS.Check_Not_Null(lu_name_, 'PERSON_ID', newrec_.person_id);
56.333 - IF (dummy_rec_.name1 IS NULL) OR (dummy_rec_.name4 IS NULL) THEN
56.334 - Pers_API.Get_Names(name1_, name4_, newrec_.person_id);
56.335 - IF (dummy_rec_.name1 IS NULL) THEN
56.336 - dummy_rec_.name1 := name1_;
56.337 - END IF;
56.338 - IF (dummy_rec_.name4 IS NULL) THEN
56.339 - dummy_rec_.name4 := name4_;
56.340 - END IF;
56.341 - END IF;
56.342 - Error_SYS.Check_Not_Null(lu_name_, 'LNAME', dummy_rec_.name4);
56.343 -
56.344 - IF (dummy_rec_.date_of_birth IS NULL) THEN
56.345 - dummy_rec_.date_of_birth := Pers_API.Get_Date_Of_Birth(newrec_.person_id);
56.346 - END IF;
56.347 - IF (dummy_rec_.sex IS NULL) THEN
56.348 - dummy_rec_.sex := Person_Sex_API.Encode(Pers_API.Get_Sex(newrec_.person_id));
56.349 - END IF;
56.350 - Error_SYS.Check_Not_Null(lu_name_, 'INTERNAL', newrec_.internal);
56.351 - IF (newrec_.internal = '1') THEN
56.352 - IF (Trainer_API.Check_Person_Internal(newrec_.person_id) = 0) THEN
56.353 - Error_SYS.Item_General(lu_name_, 'INTERNAL', 'EXTTYPE: Type of the trainer should be External. ');
56.354 - END IF;
56.355 - ELSE
56.356 - IF (Trainer_API.Check_Person_Internal(newrec_.person_id) = 1) THEN
56.357 - Error_SYS.Item_General(lu_name_, 'INTERNAL', 'INTTYPE: Type of the trainer should be Internal. ');
56.358 - END IF;
56.359 - END IF;
56.360 -
56.361 -EXCEPTION
56.362 - WHEN value_error THEN
56.363 - Error_SYS.Item_Format(lu_name_, name_, value_);
56.364 -END Unpack_Check_Insert___;
56.365 -
56.366 -
56.367 -PROCEDURE Insert___ (
56.368 - objid_ OUT VARCHAR2,
56.369 - objversion_ OUT VARCHAR2,
56.370 - newrec_ IN OUT &TABLE%ROWTYPE,
56.371 - attr_ IN OUT VARCHAR2,
56.372 - dummy_rec_ IN Dummy_Rec,
56.373 - get_objid_ IN BOOLEAN DEFAULT TRUE)
56.374 -IS
56.375 - temp_attr_ VARCHAR2(2000);
56.376 - CURSOR get_objid IS
56.377 - SELECT &OBJID
56.378 - FROM &TABLE t
56.379 - WHERE person_id = newrec_.person_id;
56.380 -BEGIN
56.381 - newrec_.rowversion := 1;
56.382 - objversion_ := to_char(newrec_.rowversion);
56.383 - INSERT
56.384 - INTO trainer_tab (
56.385 - person_id,
56.386 - internal,
56.387 - training_institution_no,
56.388 - remark,
56.389 - rowversion)
56.390 - VALUES (
56.391 - newrec_.person_id,
56.392 - newrec_.internal,
56.393 - newrec_.training_institution_no,
56.394 - newrec_.remark,
56.395 - newrec_.rowversion);
56.396 ---
56.397 --- update person register
56.398 ---
56.399 - Client_SYS.Clear_Attr(temp_attr_);
56.400 - Client_SYS.Add_To_Attr('PERSON_ID', newrec_.person_id, temp_attr_);
56.401 - Client_SYS.Add_To_Attr('NAME1', dummy_rec_.name1, temp_attr_);
56.402 - Client_SYS.Add_To_Attr('NAME4', dummy_rec_.name4, temp_attr_);
56.403 - Client_SYS.Add_To_Attr('SEX', Person_Sex_API.Decode(dummy_rec_.sex), temp_attr_);
56.404 - Client_SYS.Add_To_Attr('DATE_OF_BIRTH', dummy_rec_.date_of_birth, temp_attr_);
56.405 - Pers_API.New_Modify(temp_attr_);
56.406 -
56.407 - IF (get_objid_) THEN
56.408 - OPEN get_objid;
56.409 - FETCH get_objid INTO objid_;
56.410 - CLOSE get_objid;
56.411 - END IF;
56.412 -EXCEPTION
56.413 - WHEN dup_val_on_index THEN
56.414 - Error_SYS.Record_Exist(lu_name_);
56.415 -END Insert___;
56.416 -
56.417 ------------------------------------------------------------------------------
56.418 --------------------- IMPLEMENTATION BASE METHODS FOR UPDATE -----------------
56.419 ------------------------------------------------------------------------------
56.420 --- Unpack_Check_Update___
56.421 --- Unpack the attribute list, check all attributes from the client
56.422 --- and generate all default values before modifying the object.
56.423 ---
56.424 --- Update___
56.425 --- Update an existing LU-instance in the database and return the
56.426 --- the new OBJVERSION.
56.427 ------------------------------------------------------------------------------
56.428 -
56.429 -PROCEDURE Unpack_Check_Update___ (
56.430 - attr_ IN OUT VARCHAR2,
56.431 - newrec_ IN OUT &TABLE%ROWTYPE,
56.432 - objid_ IN VARCHAR2,
56.433 - dummy_rec_ IN OUT Dummy_Rec )
56.434 -IS
56.435 - ptr_ NUMBER;
56.436 - name_ VARCHAR2(30);
56.437 - value_ VARCHAR2(2000);
56.438 - name1_ VARCHAR2(200);
56.439 - name4_ VARCHAR2(200);
56.440 -
56.441 -BEGIN
56.442 - ptr_ := NULL;
56.443 - WHILE (Client_SYS.Get_Next_From_Attr(attr_, ptr_, name_, value_)) LOOP
56.444 - IF (name_ = 'PERSON_ID') THEN
56.445 - Error_SYS.Item_Update(lu_name_, 'PERSON_ID');
56.446 - ELSIF (name_ = 'INTERNAL') THEN
56.447 - newrec_.internal := value_;
56.448 - ELSIF (name_ = 'FNAME') THEN
56.449 - dummy_rec_.name1 := value_;
56.450 - ELSIF (name_ = 'LNAME') THEN
56.451 - dummy_rec_.name4 := value_;
56.452 - ELSIF (name_ = 'TRAINING_INSTITUTION_NAME') THEN
56.453 - newrec_.training_institution_no := Training_institution_API.Encode(value_);
56.454 - IF (value_ IS NOT NULL) THEN
56.455 - Training_Institution_API.Exist(newrec_.training_institution_no);
56.456 - END IF;
56.457 - ELSIF (name_ = 'DATE_OF_BIRTH') THEN
56.458 - dummy_rec_.date_of_birth := Client_SYS.Attr_Value_To_Date(value_);
56.459 - ELSIF (name_ = 'SEX') THEN
56.460 - dummy_rec_.sex := Person_Sex_API.Encode(value_);
56.461 - IF (value_ IS NOT NULL) THEN
56.462 - Person_Sex_API.Exist(value_);
56.463 - END IF;
56.464 - ELSIF (name_ = 'REMARK') THEN
56.465 - newrec_.remark := value_;
56.466 - ELSE
56.467 - Error_SYS.Item_Not_Exist(lu_name_, name_, value_);
56.468 - END IF;
56.469 - END LOOP;
56.470 - Client_SYS.Clear_Attr(attr_);
56.471 - IF (dummy_rec_.name1 IS NULL) OR (dummy_rec_.name4 IS NULL) THEN
56.472 - Pers_API.Get_Names(name1_, name4_, newrec_.person_id);
56.473 - IF (dummy_rec_.name1 IS NULL) THEN
56.474 - dummy_rec_.name1 := name1_;
56.475 - END IF;
56.476 - IF (dummy_rec_.name4 IS NULL) THEN
56.477 - dummy_rec_.name4 := name4_;
56.478 - END IF;
56.479 - END IF;
56.480 - Error_SYS.Check_Not_Null(lu_name_, 'LNAME', dummy_rec_.name4);
56.481 -
56.482 - IF (dummy_rec_.date_of_birth IS NULL) THEN
56.483 - dummy_rec_.date_of_birth := Pers_API.Get_Date_Of_Birth(newrec_.person_id);
56.484 - END IF;
56.485 - IF (dummy_rec_.sex IS NULL) THEN
56.486 - dummy_rec_.sex := Person_Sex_API.Encode(Pers_API.Get_Sex(newrec_.person_id));
56.487 - END IF;
56.488 - Error_SYS.Check_Not_Null(lu_name_, 'INTERNAL', newrec_.internal);
56.489 - IF (newrec_.internal = '1') THEN
56.490 - IF (Trainer_API.Check_Person_Internal(newrec_.person_id) = 0) THEN
56.491 - Error_SYS.Item_General(lu_name_, 'INTERNAL', 'EXTTYPE: Type of the trainer should be External. ');
56.492 - END IF;
56.493 - ELSE
56.494 - IF (Trainer_API.Check_Person_Internal(newrec_.person_id) = 1) THEN
56.495 - Error_SYS.Item_General(lu_name_, 'INTERNAL', 'INTTYPE: Type of the trainer should be Internal. ');
56.496 - END IF;
56.497 - END IF;
56.498 -EXCEPTION
56.499 - WHEN value_error THEN
56.500 - Error_SYS.Item_Format(lu_name_, name_, value_);
56.501 -END Unpack_Check_Update___;
56.502 -
56.503 -
56.504 -PROCEDURE Update___ (
56.505 - objid_ IN VARCHAR2,
56.506 - oldrec_ IN &TABLE%ROWTYPE,
56.507 - newrec_ IN OUT &TABLE%ROWTYPE,
56.508 - attr_ IN OUT VARCHAR2,
56.509 - objversion_ IN OUT VARCHAR2,
56.510 - dummy_rec_ IN Dummy_Rec,
56.511 - by_keys_ IN BOOLEAN DEFAULT FALSE )
56.512 -IS
56.513 - temp_attr_ VARCHAR2(2000);
56.514 -BEGIN
56.515 - newrec_.rowversion := newrec_.rowversion + 1;
56.516 - objversion_ := to_char(newrec_.rowversion);
56.517 - IF by_keys_ THEN
56.518 - UPDATE trainer_tab t
56.519 - SET person_id = newrec_.person_id,
56.520 - internal = newrec_.internal,
56.521 - training_institution_no = newrec_.training_institution_no,
56.522 - remark = newrec_.remark,
56.523 - rowversion = newrec_.rowversion
56.524 - WHERE person_id = newrec_.person_id;
56.525 - ELSE
56.526 - UPDATE trainer_tab t
56.527 - SET person_id = newrec_.person_id,
56.528 - internal = newrec_.internal,
56.529 - training_institution_no = newrec_.training_institution_no,
56.530 - remark = newrec_.remark,
56.531 - rowversion = newrec_.rowversion
56.532 - WHERE &OBJID = objid_;
56.533 - END IF;
56.534 -
56.535 - --
56.536 - -- update person register
56.537 - --
56.538 - Client_SYS.Clear_Attr(temp_attr_);
56.539 - Client_SYS.Add_To_Attr('PERSON_ID', newrec_.person_id, temp_attr_);
56.540 - Client_SYS.Add_To_Attr('NAME1', dummy_rec_.name1, temp_attr_);
56.541 - Client_SYS.Add_To_Attr('NAME4', dummy_rec_.name4, temp_attr_);
56.542 - Client_SYS.Add_To_Attr('SEX', Person_Sex_API.Decode(dummy_rec_.sex), temp_attr_);
56.543 - Client_SYS.Add_To_Attr('DATE_OF_BIRTH', dummy_rec_.date_of_birth, temp_attr_);
56.544 - Pers_API.New_Modify(temp_attr_);
56.545 -
56.546 -EXCEPTION
56.547 - WHEN dup_val_on_index THEN
56.548 - Error_SYS.Record_Exist(lu_name_);
56.549 - END Update___;
56.550 -
56.551 ------------------------------------------------------------------------------
56.552 --------------------- IMPLEMENTATION BASE METHODS FOR DELETE -----------------
56.553 ------------------------------------------------------------------------------
56.554 --- Check_Delete___
56.555 --- Checks whether a specific LU-record may be removed or not.
56.556 --- The procedure should check business rules like attribute values
56.557 --- as well as database constraints (defined or not).
56.558 ---
56.559 --- Delete___
56.560 --- Deletion of the specific LU-object from the database.
56.561 ------------------------------------------------------------------------------
56.562 -
56.563 -PROCEDURE Check_Delete___ (
56.564 - remrec_ IN &TABLE%ROWTYPE )
56.565 -IS
56.566 - key_ VARCHAR2(2000);
56.567 -BEGIN
56.568 - key_ := remrec_.person_id || '^';
56.569 - Reference_SYS.Check_Restricted_Delete(lu_name_, key_);
56.570 -END Check_Delete___;
56.571 -
56.572 -
56.573 -PROCEDURE Delete___ (
56.574 - objid_ IN VARCHAR2,
56.575 - remrec_ IN &TABLE%ROWTYPE,
56.576 - by_keys_ IN BOOLEAN DEFAULT FALSE )
56.577 -IS
56.578 - key_ VARCHAR2(2000);
56.579 - newrec_ &TABLE%ROWTYPE;
56.580 -BEGIN
56.581 - key_ := remrec_.person_id || '^';
56.582 - Reference_SYS.Do_Cascade_Delete(lu_name_, key_);
56.583 - IF (by_keys_) THEN
56.584 - newrec_ := remrec_;
56.585 - DELETE FROM &TABLE
56.586 - WHERE person_id = newrec_.person_id;
56.587 - ELSE
56.588 - DELETE
56.589 - FROM trainer_tab t
56.590 - WHERE &OBJID = objid_;
56.591 - END IF;
56.592 -END Delete___;
56.593 -
56.594 ------------------------------------------------------------------------------
56.595 --------------------- PRIVATE BASE METHODS -----------------------------------
56.596 ------------------------------------------------------------------------------
56.597 --- Lock__
56.598 --- Client-support to lock a specific instance of the logical unit.
56.599 ---
56.600 --- New__
56.601 --- Client-support interface to create LU instances.
56.602 --- action_ = 'PREPARE'
56.603 --- Default values and handle of information to client.
56.604 --- The default values are set in procedure Prepare_Insert___.
56.605 --- action_ = 'CHECK'
56.606 --- Check all attributes before creating new object and handle of
56.607 --- information to client. The attribute list is unpacked, checked
56.608 --- and prepared (defaults) in procedure Unpack_Check_Insert___.
56.609 --- action_ = 'DO'
56.610 --- Creation of new instances of the logical unit and handle of
56.611 --- information to client. The attribute list is unpacked, checked
56.612 --- and prepared (defaults) in procedure Unpack_Check_Insert___
56.613 --- before calling procedure Insert___.
56.614 ---
56.615 --- Modify__
56.616 --- Client-support interface to modify attributes for LU instances.
56.617 --- action_ = 'CHECK'
56.618 --- Check all attributes before modifying an existing object and
56.619 --- handle of information to client. The attribute list is unpacked,
56.620 --- checked and prepared(defaults) in procedure Unpack_Check_Update___.
56.621 --- action_ = 'DO'
56.622 --- Modification of an existing instance of the logical unit. The
56.623 --- procedure unpacks the attributes, checks all values before
56.624 --- procedure Update___ is called.
56.625 ---
56.626 --- Remove__
56.627 --- Client-support interface to remove LU instances.
56.628 --- action_ = 'CHECK'
56.629 --- Check whether a specific LU-instance may be removed or not.
56.630 --- The procedure fetches the complete record by calling procedure
56.631 --- Get_Record___. Then the check is made by calling procedure
56.632 --- Check_Delete___.
56.633 --- action_ = 'DO'
56.634 --- Remove an existing instance of the logical unit. The procedure
56.635 --- fetches the complete LU-record, checks for a delete and then
56.636 --- deletes the record by calling procedure Delete___.
56.637 ------------------------------------------------------------------------------
56.638 -
56.639 -PROCEDURE Lock__ (
56.640 - info_ OUT VARCHAR2,
56.641 - objid_ IN VARCHAR2,
56.642 - objversion_ IN VARCHAR2 )
56.643 -IS
56.644 - dummy_ &TABLE%ROWTYPE;
56.645 -BEGIN
56.646 - General_SYS.Init_Method(lu_name_, '&PKG', 'Lock__');
56.647 - dummy_ := Lock_By_Id___(objid_, objversion_);
56.648 - info_ := Client_SYS.Get_All_Info;
56.649 -END Lock__;
56.650 -
56.651 -
56.652 -PROCEDURE New__ (
56.653 - info_ OUT VARCHAR2,
56.654 - objid_ OUT VARCHAR2,
56.655 - objversion_ OUT VARCHAR2,
56.656 - attr_ IN OUT VARCHAR2,
56.657 - action_ IN VARCHAR2 )
56.658 -IS
56.659 - newrec_ &TABLE%ROWTYPE;
56.660 - dummy_rec_ Dummy_Rec;
56.661 -BEGIN
56.662 - General_SYS.Init_Method(lu_name_, '&PKG', 'New__');
56.663 - IF (action_ = 'PREPARE') THEN
56.664 - Prepare_Insert___(attr_);
56.665 - ELSIF (action_ = 'CHECK') THEN
56.666 - Unpack_Check_Insert___(attr_, newrec_,dummy_rec_);
56.667 - ELSIF (action_ = 'DO') THEN
56.668 - Unpack_Check_Insert___(attr_, newrec_,dummy_rec_);
56.669 - Insert___(objid_, objversion_, newrec_, attr_,dummy_rec_);
56.670 - END IF;
56.671 - info_ := Client_SYS.Get_All_Info;
56.672 -END New__;
56.673 -
56.674 -
56.675 -PROCEDURE Modify__ (
56.676 - info_ OUT VARCHAR2,
56.677 - objid_ IN VARCHAR2,
56.678 - objversion_ IN OUT VARCHAR2,
56.679 - attr_ IN OUT VARCHAR2,
56.680 - action_ IN VARCHAR2 )
56.681 -IS
56.682 - oldrec_ &TABLE%ROWTYPE;
56.683 - newrec_ &TABLE%ROWTYPE;
56.684 - dummy_rec_ Dummy_Rec;
56.685 -BEGIN
56.686 - General_SYS.Init_Method(lu_name_, '&PKG', 'Modify__');
56.687 - IF (action_ = 'CHECK') THEN
56.688 - newrec_ := Get_Object_By_Id___(objid_);
56.689 - Unpack_Check_Update___(attr_, newrec_, objid_,dummy_rec_);
56.690 - ELSIF (action_ = 'DO') THEN
56.691 - oldrec_ := Lock_By_Id___(objid_, objversion_);
56.692 - newrec_ := oldrec_;
56.693 - Unpack_Check_Update___(attr_, newrec_, objid_,dummy_rec_);
56.694 - Update___(objid_, oldrec_, newrec_, attr_, objversion_,dummy_rec_);
56.695 - END IF;
56.696 - info_ := Client_SYS.Get_All_Info;
56.697 -END Modify__;
56.698 -
56.699 -
56.700 -PROCEDURE Remove__ (
56.701 - info_ OUT VARCHAR2,
56.702 - objid_ IN VARCHAR2,
56.703 - objversion_ IN VARCHAR2,
56.704 - action_ IN VARCHAR2 )
56.705 -IS
56.706 - remrec_ &TABLE%ROWTYPE;
56.707 -BEGIN
56.708 - General_SYS.Init_Method(lu_name_, '&PKG', 'Remove__');
56.709 - IF (action_ = 'CHECK') THEN
56.710 - remrec_ := Get_Object_By_Id___(objid_);
56.711 - Check_Delete___(remrec_);
56.712 - ELSIF (action_ = 'DO') THEN
56.713 - remrec_ := Lock_By_Id___(objid_, objversion_);
56.714 - Check_Delete___(remrec_);
56.715 - Delete___(objid_, remrec_);
56.716 - END IF;
56.717 - info_ := Client_SYS.Get_All_Info;
56.718 -END Remove__;
56.719 -
56.720 ------------------------------------------------------------------------------
56.721 --------------------- PUBLIC BASE METHODS ------------------------------------
56.722 ------------------------------------------------------------------------------
56.723 --- Exist
56.724 --- Checks if given pointer (e.g. primary key) to an instance of this
56.725 --- logical unit exists. If not an exception will be raised.
56.726 ------------------------------------------------------------------------------
56.727 -
56.728 -PROCEDURE Exist (
56.729 - person_id_ IN VARCHAR2 )
56.730 -IS
56.731 -BEGIN
56.732 - General_SYS.Init_Method(lu_name_, '&PKG', 'Exist', TRUE);
56.733 - IF (NOT Check_Exist___(person_id_)) THEN
56.734 - Error_SYS.Record_Not_Exist(lu_name_);
56.735 - END IF;
56.736 -END Exist;
56.737 -
56.738 ------------------------------------------------------------------------------
56.739 --------------------- LU SPECIFIC IMPLEMENTATION METHODS ---------------------
56.740 ------------------------------------------------------------------------------
56.741 -
56.742 ------------------------------------------------------------------------------
56.743 --------------------- LU SPECIFIC PRIVATE METHODS ----------------------------
56.744 ------------------------------------------------------------------------------
56.745 -
56.746 -
56.747 ------------------------------------------------------------------------------
56.748 --------------------- LU SPECIFIC PROTECTED METHODS --------------------------
56.749 ------------------------------------------------------------------------------
56.750 -
56.751 -
56.752 ------------------------------------------------------------------------------
56.753 --------------------- LU SPECIFIC PUBLIC METHODS -----------------------------
56.754 ------------------------------------------------------------------------------
56.755 -
56.756 -FUNCTION Get_Training_Institution_Name (
56.757 - person_id_ IN VARCHAR2 ) RETURN VARCHAR2
56.758 -IS
56.759 - temp_ &TABLE..training_institution_no%TYPE;
56.760 - CURSOR get_attr IS
56.761 - SELECT training_institution_no
56.762 - FROM &TABLE
56.763 - WHERE person_id = person_id_;
56.764 -BEGIN
56.765 - OPEN get_attr;
56.766 - FETCH get_attr INTO temp_;
56.767 - CLOSE get_attr;
56.768 - RETURN Training_Institution_API.Decode(temp_);
56.769 -END Get_Training_Institution_Name;
56.770 -
56.771 -
56.772 -FUNCTION Get_Fname (
56.773 - person_id_ IN VARCHAR2 ) RETURN VARCHAR2
56.774 -IS
56.775 -BEGIN
56.776 - RETURN Pers_Api.Get_Name1(person_id_);
56.777 -END Get_Fname;
56.778 -
56.779 -
56.780 -FUNCTION Get_Lname (
56.781 - person_id_ IN VARCHAR2 ) RETURN VARCHAR2
56.782 -IS
56.783 -BEGIN
56.784 - RETURN Pers_Api.Get_Name4(person_id_);
56.785 -END Get_Lname;
56.786 -
56.787 -FUNCTION Get_Name (
56.788 - person_id_ IN VARCHAR2 ) RETURN VARCHAR2
56.789 -IS
56.790 -BEGIN
56.791 - RETURN Pers_Api.Get_Name(person_id_,'FIRST');
56.792 -END Get_Name;
56.793 -
56.794 -FUNCTION Check_Person_Internal(
56.795 - person_id_ IN VARCHAR2 ) RETURN VARCHAR2
56.796 -IS
56.797 -BEGIN
56.798 - RETURN Company_Person_API.Check_Person_Internal(person_id_);
56.799 -END Check_Person_Internal;
56.800 -
56.801 -FUNCTION Get_Internal_External(
56.802 - internal_ IN VARCHAR2) RETURN VARCHAR2
56.803 -IS
56.804 -
56.805 -BEGIN
56.806 - IF (internal_ = '0') THEN
56.807 - RETURN Relationship_Type_API.Decode(internal_ + 2);
56.808 - ELSIF (internal_ = '1') THEN
56.809 - RETURN Relationship_Type_API.Decode(internal_);
56.810 - END IF;
56.811 - RETURN null;
56.812 -END Get_Internal_External;
56.813 -
56.814 -FUNCTION Replace_Person_Id (
56.815 - new_person_id_ IN VARCHAR2,
56.816 - old_person_id_ IN VARCHAR2 ) RETURN VARCHAR2
56.817 -IS
56.818 - CURSOR get_pers IS
56.819 - SELECT &OBJID, &OBJVERSION
56.820 - FROM &TABLE t
56.821 - WHERE person_id = old_person_id_;
56.822 - objid_ VARCHAR2(2000);
56.823 - objversion_ VARCHAR2(2000);
56.824 - oldrec_ &TABLE%ROWTYPE;
56.825 -BEGIN
56.826 - General_SYS.Init_Method(lu_name_, '&PKG', 'Replace_Person_Id');
56.827 - IF (new_person_id_ = old_person_id_) THEN
56.828 - RETURN 'TRUE';
56.829 - END IF;
56.830 - IF (Check_Exist___(new_person_id_) = TRUE) THEN
56.831 - RETURN 'FALSE';
56.832 - END IF;
56.833 - OPEN get_pers;
56.834 - FETCH get_pers INTO objid_, objversion_;
56.835 - WHILE (get_pers%FOUND) LOOP
56.836 - oldrec_ := Lock_By_Id___(objid_, objversion_);
56.837 - UPDATE trainer_tab t
56.838 - SET person_id = new_person_id_,
56.839 - rowversion = rowversion + 1
56.840 - WHERE &OBJID = objid_;
56.841 - FETCH get_pers INTO objid_, objversion_;
56.842 - END LOOP;
56.843 - CLOSE get_pers;
56.844 -
56.845 - RETURN 'TRUE';
56.846 -END Replace_Person_Id;
56.847 ------------------------------------------------------------------------------
56.848 --------------------- FOUNDATION1 METHODS ------------------------------------
56.849 ------------------------------------------------------------------------------
56.850 --- Init
56.851 --- Dummy procedure that can be called at database startup to ensure that
56.852 --- this package is loaded into memory for performance reasons only.
56.853 ------------------------------------------------------------------------------
56.854 -
56.855 -PROCEDURE Init
56.856 -IS
56.857 -BEGIN
56.858 - NULL;
56.859 -END Init;
56.860 -
56.861 -
56.862 -END &PKG;
56.863 -/
56.864 -SHOW ERROR
56.865 -
56.866 ------------------------------------------------------------------------------
56.867 -
56.868 -
56.869 -
56.870 -UNDEFINE MODULE
56.871 -UNDEFINE LU
56.872 -UNDEFINE TABLE
56.873 -UNDEFINE VIEW
56.874 -UNDEFINE VIEW_LOV1
56.875 -UNDEFINE VIEW_LOV2
56.876 -UNDEFINE PKG
56.877 -UNDEFINE OBJID
56.878 -UNDEFINE OBJVERSION
56.879 -
56.880 -
57.1 --- a/PLSQL/Lexer/test/unit/src/org/netbeans/modules/plsql/lexer/fndbas_ora.cre Wed May 15 16:07:35 2013 +0200
57.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
57.3 @@ -1,83 +0,0 @@
57.4 ---------------------------------------------------------------------------------------
57.5 --- File : fndbas_ora.cre
57.6 ---
57.7 ---------------------------------------------------------------------------------------
57.8 -
57.9 --- CREATE tables and indexes
57.10 -
57.11 -CREATE TABLE &AO..X_ACTIVITY_GRANT_FILTER_TAB
57.12 -(
57.13 - PERMISSION_SET_ID VARCHAR2(30) NOT NULL,
57.14 - ACTIVITY_NAME VARCHAR2(100) NOT NULL,
57.15 - FILTER_ID VARCHAR2(100) NOT NULL,
57.16 - GRANTED_FILTER_TYPE VARCHAR2(100) NOT NULL
57.17 -)
57.18 -TABLESPACE &fnd_data
57.19 -/
57.20 -ALTER TABLE &AO..X_ACTIVITY_GRANT_FILTER_TAB
57.21 - ADD (CONSTRAINT X_ACTIVITY_GRANT_FILTER_PK PRIMARY KEY (FILTER_ID, PERMISSION_SET_ID, ACTIVITY_NAME)
57.22 - USING INDEX
57.23 - TABLESPACE &fnd_index
57.24 - )
57.25 -/
57.26 -
57.27 -CREATE TABLE &AO..X_FNDDR_ACTIVITY_ENT_USAGE_TAB
57.28 -(
57.29 - USAGE VARCHAR2(100),
57.30 - ENTITY_ID VARCHAR2(100),
57.31 - ORDINAL NUMBER,
57.32 - ACTIVITY_ID VARCHAR2(100),
57.33 - WORKSPACE_ID VARCHAR2(100)
57.34 -)
57.35 -TABLESPACE &fnd_data
57.36 -/
57.37 -ALTER TABLE &AO..X_FNDDR_ACTIVITY_ENT_USAGE_TAB
57.38 - ADD (CONSTRAINT X_FNDDR_ACTIVITY_ENT_USEAGE_PK PRIMARY KEY (ACTIVITY_ID, ORDINAL, WORKSPACE_ID)
57.39 - USING INDEX
57.40 - TABLESPACE &fnd_index
57.41 - )
57.42 -/
57.43 -CREATE INDEX &AO..X_FNDDR_ACTIVITY_ENT_USEAGE_FK
57.44 - ON &AO..X_FNDDR_ACTIVITY_ENT_USAGE_TAB (ENTITY_ID, WORKSPACE_ID)
57.45 - TABLESPACE &fnd_index
57.46 -/
57.47 -
57.48 --- CREATE sequence
57.49 -
57.50 -CREATE SEQUENCE &AO..X_Ext_File_Batch_Param_Seq;
57.51 -
57.52 --- CREATE trigger
57.53 -
57.54 -create or replace trigger &AO..x_vmogss_base_usermap_change
57.55 - after insert or update or delete on &AO..vmo_base_gss_usermap_change
57.56 - referencing old as oldrec new as newrec
57.57 - for each row
57.58 -begin
57.59 - if updating or inserting then
57.60 - insert into &AO..vmo_base_gss_scope(gss_id, created, source_tbl, source_info) values(:newrec.gss_id, sysdate, 'VMO_BASE_GSS_USERMAP_CHANGE', :newrec.gss_id);
57.61 - end if;
57.62 -end x_vmogss_base_usermap_change;
57.63 -/
57.64 -
57.65 --- CREATE trigger dynamically
57.66 -
57.67 -BEGIN
57.68 -EXECUTE IMMEDIATE('create or replace trigger &AO..x_vmogss_base_sync_scope
57.69 - after insert on &AO..vmo_base_sync_scope
57.70 - referencing old as oldrec new as newrec
57.71 - for each row
57.72 -begin
57.73 - if inserting then
57.74 - insert into &AO..vmo_base_gss_scope(gss_id, created, source_tbl, source_info) values(''ALL_GSS_ID'', sysdate, :newrec.tablename, :newrec.guid);
57.75 - end if;
57.76 -end x_vmogss_base_sync_scope;');
57.77 -EXCEPTION
57.78 - WHEN OTHERS THEN
57.79 - -- OK if ORA -00942: table or view does not exist
57.80 - IF INSTR(SQLERRM,'-00942') != 0 THEN NULL;
57.81 - ELSE raise_application_error ( -20000, SQLERRM );
57.82 - END IF;
57.83 -END;
57.84 -/
57.85 -
57.86 -
58.1 --- a/PLSQL/Lexer/test/unit/src/org/netbeans/modules/plsql/lexer/person.ins Wed May 15 16:07:35 2013 +0200
58.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
58.3 @@ -1,481 +0,0 @@
58.4 ------------------------------------------------------------------------------
58.5 --- Module: PERSON
58.6 ---
58.7 --- File: PERSON.INS
58.8 ---
58.9 --- IFS/Design Template Version 2.0.0
58.10 ---
58.11 --- Date Sign History
58.12 --- ------ ---- -----------------------------------------------------------
58.13 --- 080425 Deidlk Bug 73297, Added the property codes EMPPREFIX and EMPMASK to PROPERTY_RULE_TAB
58.14 --- 070525 Cprilk B145522,Modified the DATA_TYPE_DB of property code 'EMPLOYEEID'.
58.15 --- 070418 Cprilk B142452,Added data in to PROTECTED_INFORMATION_TAB.
58.16 --- 070409 Cprilk Call 142241,Added property code 'EMPLOYEEID'
58.17 --- 070320 Nueklk Insert data into Marital_Status_Tab
58.18 --- 061003 ChBalk Bug 58601, Modified hardcoded date values to Database_SYS.get_first_calendar_date
58.19 --- and Database_SYS.get_last_calendar_date.
58.20 --- 040921 HiMa Made CompanyPerson LU DOCMAN aware.
58.21 --- 030717 Lara Added property rule 'Allow Access to Myself'
58.22 --- 030717 Rasi Added property rule 'Transfer Employee Information to Biz API'
58.23 --- 000404 WaPe Added data insert to employee_name_configurator_tab
58.24 --- 000222 Shir Removed batch job for User_Access_API.Generate_Access
58.25 --- 000215 Shir Added code to update companies from finance to HR
58.26 --- 000127 WaPe Corrected the methods OBJECT_PROPERTY_API.add_value and ATTRIBUTE_DEFINITION_API.Set_Length
58.27 --- 000124 Ravi Called methods OBJECT_PROPERTY_API.add_value and ATTRIBUTE_DEFINITION_API.Set_Length
58.28 --- 991201 Shir Added default value authority_time_tab
58.29 --- 991201 Shir Created a batch job for User_Access_API.Generate_Access
58.30 --- 991201 Shir Created
58.31 --- ------ ---- -----------------------------------------------------------
58.32 -
58.33 -
58.34 -BEGIN
58.35 -INSERT
58.36 - INTO authority_time_tab
58.37 - (Time_stamp,
58.38 - rowversion)
58.39 - VALUES
58.40 - (sysdate,
58.41 - sysdate);
58.42 -END;
58.43 -/
58.44 -DECLARE
58.45 - val_ VARCHAR2(1000);
58.46 -BEGIN
58.47 - val_ := Object_Property_API.Get_Value('PersonCompany','*','All HR Modules 2001');
58.48 - IF (val_ is NULL or val_='Yes,No') THEN -- old bug Yes,No means Yes
58.49 - OBJECT_PROPERTY_API.Set_Value('PersonCompany','*','All HR Modules 2001','Yes');
58.50 - END IF;
58.51 -END;
58.52 -/
58.53 --- Transfer companies from finance to hr
58.54 -PROMPT *******************************************************************
58.55 -PROMPT Insert companies defined in IFS Financials into IFS Human Resources
58.56 -PROMPT *******************************************************************
58.57 -
58.58 -BEGIN
58.59 -INSERT INTO person_company_tab (
58.60 - company_id, parent_company, create_cost_center, rowversion )
58.61 - SELECT DISTINCT
58.62 - company,'0','0',1
58.63 - FROM company_finance_tab
58.64 - WHERE company NOT IN
58.65 - (SELECT DISTINCT company_id
58.66 - FROM person_company_tab);
58.67 -END;
58.68 -/
58.69 -DECLARE
58.70 - CURSOR check_exits(company_id_ VARCHAR2,emp_no_ VARCHAR2)IS
58.71 - SELECT 1
58.72 - FROM company_person_tab
58.73 - WHERE company_id = company_id_
58.74 - AND emp_no = emp_no_;
58.75 - temp_ NUMBER;
58.76 -BEGIN
58.77 -FOR rec_ IN (SELECT * FROM company_emp_tab) LOOP
58.78 - OPEN check_exits(rec_.company,rec_.employee_id);
58.79 - FETCH check_exits INTO temp_;
58.80 - IF (check_exits%NOTFOUND) THEN
58.81 - INSERT INTO company_person_tab(company_id,emp_no,master_employment,operator,rowversion)
58.82 - VALUES (rec_.company,rec_.employee_id,'0',User,rec_.rowversion);
58.83 - END IF;
58.84 - CLOSE check_exits;
58.85 -END LOOP;
58.86 -END;
58.87 -/
58.88 -DECLARE
58.89 - CURSOR check_exits(person_id_ VARCHAR2) IS
58.90 - SELECT 1
58.91 - FROM pers_tab
58.92 - WHERE person_id = person_id_;
58.93 - temp_ NUMBER;
58.94 -
58.95 -BEGIN
58.96 - FOR rec_ IN (SELECT * FROM person_info_tab) LOOP
58.97 - OPEN check_exits(rec_.person_id);
58.98 - FETCH check_exits INTO temp_;
58.99 - IF (check_exits%NOTFOUND) THEN
58.100 - INSERT INTO pers_tab(person_id,have_child,external_display_name,rowversion)
58.101 - VALUES (rec_.person_id,'0',rec_.name,1);
58.102 - END IF;
58.103 - CLOSE check_exits;
58.104 - END LOOP;
58.105 -END;
58.106 -/
58.107 -BEGIN
58.108 -INSERT INTO employee_name_configurator_tab
58.109 - (first_name_int_seq_no,
58.110 - last_name_int_seq_no,
58.111 - first_name_ext_seq_no,
58.112 - last_name_ext_seq_no,
58.113 - rowversion)
58.114 -SELECT 1, 2,1, 2,1 FROM DUAL
58.115 -WHERE NOT EXISTS
58.116 -(SELECT 1 FROM employee_name_configurator_tab);
58.117 -END;
58.118 -/
58.119 -commit
58.120 -/
58.121 -DECLARE
58.122 - attr_ VARCHAR2(2000);
58.123 -BEGIN
58.124 - ---
58.125 - Client_SYS.Clear_Attr(attr_);
58.126 - Client_SYS.Add_To_Attr('PROPERTY_CODE', 'EMPBIZAPI', attr_);
58.127 - Client_SYS.Add_To_Attr('DATA_TYPE_DB', '1', attr_); -- String
58.128 - Client_SYS.Add_To_Attr('LENGTH', 3 , attr_);
58.129 - Client_SYS.Add_To_Attr('MULTIPLE_INSTANCES_ALLOWED', 'FALSE' , attr_);
58.130 - Client_SYS.Add_To_Attr('USE_LOV_FOR_VALIDATION', '1' , attr_);
58.131 - Client_SYS.Add_To_Attr('PROPERTY_OBJECT_DB', '1', attr_); -- Company
58.132 - Client_SYS.Add_To_Attr('DEFAULT_DESCRIPTION',
58.133 - 'Employee Details BizAPI', attr_);
58.134 - Property_Rule_API.New_Modify(attr_);
58.135 - Commit;
58.136 - ---
58.137 - Client_SYS.Clear_Attr(attr_);
58.138 - Client_SYS.Add_To_Attr('PROPERTY_CODE', 'EMPBIZAPI', attr_);
58.139 - Client_SYS.Add_To_Attr('PROPERTY_VALUE', 'YES', attr_);
58.140 - Client_SYS.Add_To_Attr('DESCRIPTION', 'Transfer employee information', attr_);
58.141 - -- Bug 58601, Modified hardcoded date values to Database_SYS.get_first_calendar_date and get_last_calendar_date.
58.142 - Client_SYS.Add_To_Attr('VALID_FROM', Database_SYS.get_first_calendar_date, attr_);
58.143 - Client_SYS.Add_To_Attr('VALID_TO', Database_SYS.get_last_calendar_date, attr_);
58.144 - Property_Value_API.New_Modify(attr_);
58.145 - Commit;
58.146 - ---
58.147 - Client_SYS.Clear_Attr(attr_);
58.148 - Client_SYS.Add_To_Attr('PROPERTY_CODE', 'EMPBIZAPI', attr_);
58.149 - Client_SYS.Add_To_Attr('PROPERTY_VALUE', 'NO', attr_);
58.150 - Client_SYS.Add_To_Attr('DESCRIPTION', 'Do not transfer employee information', attr_);
58.151 - -- Bug 58601, Modified hardcoded date values to Database_SYS.get_first_calendar_date and get_last_calendar_date.
58.152 - Client_SYS.Add_To_Attr('VALID_FROM', Database_SYS.get_first_calendar_date, attr_);
58.153 - Client_SYS.Add_To_Attr('VALID_TO', Database_SYS.get_last_calendar_date, attr_);
58.154 - Property_Value_API.New_Modify(attr_);
58.155 - Commit;
58.156 -END;
58.157 -/
58.158 -commit;
58.159 -
58.160 -DECLARE
58.161 - attr_ VARCHAR2(2000);
58.162 -BEGIN
58.163 - ---
58.164 - Client_SYS.Clear_Attr(attr_);
58.165 - Client_SYS.Add_To_Attr('PROPERTY_CODE', 'SELFACCESS', attr_);
58.166 - Client_SYS.Add_To_Attr('DATA_TYPE_DB', '1', attr_); -- String
58.167 - Client_SYS.Add_To_Attr('LENGTH', 3 , attr_);
58.168 - Client_SYS.Add_To_Attr('MULTIPLE_INSTANCES_ALLOWED', 'FALSE' , attr_);
58.169 - Client_SYS.Add_To_Attr('USE_LOV_FOR_VALIDATION', '1' , attr_);
58.170 - Client_SYS.Add_To_Attr('PROPERTY_OBJECT_DB', '1', attr_); -- Company
58.171 - Client_SYS.Add_To_Attr('DEFAULT_DESCRIPTION',
58.172 - 'Allow Access to Myself', attr_);
58.173 - Property_Rule_API.New_Modify(attr_);
58.174 - Commit;
58.175 - ---
58.176 - Client_SYS.Clear_Attr(attr_);
58.177 - Client_SYS.Add_To_Attr('PROPERTY_CODE', 'SELFACCESS', attr_);
58.178 - Client_SYS.Add_To_Attr('PROPERTY_VALUE', 'YES', attr_);
58.179 - Client_SYS.Add_To_Attr('DESCRIPTION', 'Access to Myself', attr_);
58.180 - -- Bug 58601, Modified hardcoded date values to Database_SYS.get_first_calendar_date and get_last_calendar_date.
58.181 - Client_SYS.Add_To_Attr('VALID_FROM', Database_SYS.get_first_calendar_date, attr_);
58.182 - Client_SYS.Add_To_Attr('VALID_TO', Database_SYS.get_last_calendar_date, attr_);
58.183 - Property_Value_API.New_Modify(attr_);
58.184 - Commit;
58.185 - ---
58.186 - Client_SYS.Clear_Attr(attr_);
58.187 - Client_SYS.Add_To_Attr('PROPERTY_CODE', 'SELFACCESS', attr_);
58.188 - Client_SYS.Add_To_Attr('PROPERTY_VALUE', 'NO', attr_);
58.189 - Client_SYS.Add_To_Attr('DESCRIPTION', 'No Access to Myself', attr_);
58.190 - -- Bug 58601, Modified hardcoded date values to Database_SYS.get_first_calendar_date and get_last_calendar_date.
58.191 - Client_SYS.Add_To_Attr('VALID_FROM', Database_SYS.get_first_calendar_date, attr_);
58.192 - Client_SYS.Add_To_Attr('VALID_TO', Database_SYS.get_last_calendar_date, attr_);
58.193 - Property_Value_API.New_Modify(attr_);
58.194 - Commit;
58.195 -END;
58.196 -/
58.197 -commit;
58.198 -
58.199 -DECLARE
58.200 - attr_ VARCHAR2(2000);
58.201 -BEGIN
58.202 - ---
58.203 - Client_SYS.Clear_Attr(attr_);
58.204 - Client_SYS.Add_To_Attr('PROPERTY_CODE', 'EMPLOYEEID', attr_);
58.205 - Client_SYS.Add_To_Attr('DATA_TYPE_DB', '2', attr_); -- Number
58.206 - Client_SYS.Add_To_Attr('LENGTH', 10 , attr_);
58.207 - Client_SYS.Add_To_Attr('MULTIPLE_INSTANCES_ALLOWED', 'FALSE' , attr_);
58.208 - Client_SYS.Add_To_Attr('USE_LOV_FOR_VALIDATION', '0' , attr_);
58.209 - Client_SYS.Add_To_Attr('PROPERTY_OBJECT_DB', '1', attr_); -- Company
58.210 - Client_SYS.Add_To_Attr('DEFAULT_DESCRIPTION',
58.211 - 'Next Employee ID', attr_);
58.212 - Property_Rule_API.New_Modify(attr_);
58.213 - Commit;
58.214 -END;
58.215 -/
58.216 -Commit;
58.217 -
58.218 -DECLARE
58.219 - CURSOR check_comp_exist(company_id_ VARCHAR2) IS
58.220 - SELECT 1
58.221 - FROM employee_status_tab
58.222 - WHERE company_id = company_id_
58.223 - AND seq_no = 1;
58.224 - chk_comp_exist_ NUMBER;
58.225 -BEGIN
58.226 - FOR get_company_ IN (SELECT DISTINCT company_id FROM person_company_tab) LOOP
58.227 - OPEN check_comp_exist(get_company_.company_id);
58.228 - FETCH check_comp_exist INTO chk_comp_exist_;
58.229 - IF (check_comp_exist%NOTFOUND) THEN
58.230 - INSERT INTO EMPLOYEE_STATUS_TAB(company_id, seq_no, employee_status, active, status_obsolete, rowversion)
58.231 - VALUES (get_company_.company_id, 1, '*', 'TRUE', 'FALSE', 1);
58.232 - END IF;
58.233 - CLOSE check_comp_exist;
58.234 - END LOOP;
58.235 -END;
58.236 -/
58.237 -BEGIN
58.238 - Module_Translate_Attr_Util_API.Insert_Prog_Translation( 'PERSON', 'EmployeeStatus', 'TRUE', 'True');
58.239 - Module_Translate_Attr_Util_API.Insert_Prog_Translation( 'PERSON', 'EmployeeStatus', 'FALSE', 'False');
58.240 -
58.241 - Module_Translate_Attr_Util_API.Insert_Prog_Translation( 'PERSON', 'WizardConfiguration', 'TRUE', 'True');
58.242 - Module_Translate_Attr_Util_API.Insert_Prog_Translation( 'PERSON', 'WizardConfiguration', 'FALSE', 'False');
58.243 -
58.244 - Module_Translate_Attr_Util_API.Insert_Prog_Translation( 'PERSON', 'CompanyPosition', 'TRUE', 'True');
58.245 - Module_Translate_Attr_Util_API.Insert_Prog_Translation( 'PERSON', 'CompanyPosition', 'FALSE', 'False');
58.246 -
58.247 -END;
58.248 -/
58.249 -commit
58.250 -/
58.251 -prompt Insert data into PERSON_DOCUMENT_TAB
58.252 -
58.253 -
58.254 -prompt creating temporary procedure for insert
58.255 -
58.256 -CREATE OR REPLACE procedure Temp_Person_Document_Default(document_ VARCHAR2,
58.257 - description_ VARCHAR2,
58.258 - active_ VARCHAR2,
58.259 - rcruit_document_type_ VARCHAR2)
58.260 -IS
58.261 - CURSOR existdoc(c_document_ IN VARCHAR2) IS
58.262 - SELECT 1
58.263 - FROM person_word_document_tab
58.264 - WHERE document = c_document_;
58.265 - exist_ NUMBER;
58.266 -BEGIN
58.267 - OPEN existdoc(document_);
58.268 - FETCH existdoc INTO exist_;
58.269 - IF existdoc%NOTFOUND THEN
58.270 - INSERT
58.271 - INTO person_word_document_tab(
58.272 - document,
58.273 - description,
58.274 - active,
58.275 - person_document_type,
58.276 - inc_comp_data,
58.277 - inc_emp_data,
58.278 - inc_salary_data,
58.279 - inc_free_field_data,
58.280 - rowversion)
58.281 - VALUES (
58.282 - document_,
58.283 - description_,
58.284 - 'TRUE',
58.285 - rcruit_document_type_,
58.286 - 'TRUE',
58.287 - 'TRUE',
58.288 - 'TRUE',
58.289 - 'TRUE',
58.290 - SYSDATE);
58.291 - Module_Translate_Attr_Util_API.Insert_Prog_Translation(
58.292 - 'PERSON',
58.293 - 'PersonWordDocument',
58.294 - document_,
58.295 - description_);
58.296 - END IF;
58.297 - CLOSE existdoc;
58.298 -END Temp_Person_Document_Default;
58.299 -/
58.300 -DECLARE
58.301 - document_type_ VARCHAR2(1) := '5';
58.302 -BEGIN
58.303 -
58.304 -Temp_Person_Document_Default('Certificate of Employmenten.doc' , 'Certificate of Employment - English', '1', document_type_);
58.305 -
58.306 -END;
58.307 -/
58.308 -COMMIT;
58.309 -
58.310 -
58.311 -prompt dropping temporary procedure
58.312 -
58.313 -DROP PROCEDURE Temp_Person_Document_Default;
58.314 -
58.315 -
58.316 -BEGIN
58.317 - Object_Connection_SYS.Disable_Logical_Unit('CompanyPerson');
58.318 - Object_Connection_SYS.Enable_Logical_Unit('CompanyPerson', 'DocReferenceObject^', 'COMPANY_PERSON_ALL', 'COMPANY_PERSON_API');
58.319 -END;
58.320 -/
58.321 -COMMIT;
58.322 -
58.323 -
58.324 -prompt ************************************************************************
58.325 -prompt Insert data into Marital_Status_Tab
58.326 -prompt ************************************************************************
58.327 -
58.328 -DECLARE
58.329 - CURSOR check_exits IS
58.330 - SELECT 1
58.331 - FROM marital_status_tab
58.332 - WHERE marital_status = 'MARRIED';
58.333 - temp_ NUMBER;
58.334 - married_seq_ NUMBER;
58.335 - unmarried_seq_ NUMBER;
58.336 - widower_seq_ NUMBER;
58.337 -BEGIN
58.338 - OPEN check_exits;
58.339 - FETCH check_exits INTO temp_;
58.340 - IF (check_exits%NOTFOUND) THEN
58.341 - SELECT MARITAL_STATUS_ID.NEXTVAL INTO married_seq_ FROM dual;
58.342 - INSERT
58.343 - INTO marital_status_tab (
58.344 - marital_status,
58.345 - marital_status_id,
58.346 - system_defined,
58.347 - rowversion)
58.348 - VALUES (
58.349 - 'MARRIED',
58.350 - married_seq_,
58.351 - 'TRUE',
58.352 - 1);
58.353 -
58.354 - Module_Translate_Attr_Util_API.Insert_Prog_Translation( 'PERSON',
58.355 - 'MaritalStatus',
58.356 - 'MARRIED',
58.357 - 'Married');
58.358 -
58.359 - SELECT MARITAL_STATUS_ID.NEXTVAL INTO unmarried_seq_ FROM dual;
58.360 - INSERT
58.361 - INTO marital_status_tab (
58.362 - marital_status,
58.363 - marital_status_id,
58.364 - system_defined,
58.365 - rowversion)
58.366 - VALUES (
58.367 - 'UNMARRIED',
58.368 - unmarried_seq_,
58.369 - 'TRUE',
58.370 - 1);
58.371 -
58.372 - Module_Translate_Attr_Util_API.Insert_Prog_Translation( 'PERSON',
58.373 - 'MaritalStatus',
58.374 - 'UNMARRIED',
58.375 - 'Unmarried');
58.376 -
58.377 - SELECT MARITAL_STATUS_ID.NEXTVAL INTO widower_seq_ FROM dual;
58.378 - INSERT
58.379 - INTO marital_status_tab (
58.380 - marital_status,
58.381 - marital_status_id,
58.382 - system_defined,
58.383 - rowversion)
58.384 - VALUES (
58.385 - 'WIDOW(ER)',
58.386 - widower_seq_,
58.387 - 'TRUE',
58.388 - 1);
58.389 -
58.390 - Module_Translate_Attr_Util_API.Insert_Prog_Translation( 'PERSON',
58.391 - 'MaritalStatus',
58.392 - 'WIDOW(ER)',
58.393 - 'Widow(er)');
58.394 - END IF;
58.395 - CLOSE check_exits;
58.396 -END;
58.397 -/
58.398 -COMMIT;
58.399 -
58.400 -PROMPT ADD Translations
58.401 -BEGIN
58.402 - Module_Translate_Attr_Util_API.Insert_Prog_Translation( 'PERSON', 'MaritalStatus', 'TRUE', 'True');
58.403 - Module_Translate_Attr_Util_API.Insert_Prog_Translation( 'PERSON', 'MaritalStatus', 'FALSE', 'False');
58.404 -END;
58.405 -/
58.406 -COMMIT;
58.407 -/
58.408 -prompt ************************************************************************
58.409 -prompt Insert data into PROTECTED_INFORMATION_TAB
58.410 -prompt ************************************************************************
58.411 -
58.412 -DECLARE
58.413 - CURSOR check_exits IS
58.414 - SELECT 1
58.415 - FROM protected_information_tab
58.416 - WHERE protected_field = 'Personal Communication Methods';
58.417 - temp_ NUMBER;
58.418 -BEGIN
58.419 - OPEN check_exits;
58.420 - FETCH check_exits INTO temp_;
58.421 - IF (check_exits%NOTFOUND) THEN
58.422 - INSERT INTO protected_information_tab(Protected_Field,Protected_Value,Rowversion)
58.423 - VALUES ('Personal Address','TRUE',SYSDATE);
58.424 - INSERT INTO protected_information_tab(Protected_Field,Protected_Value,Rowversion)
58.425 - VALUES ('Country','TRUE',SYSDATE);
58.426 - INSERT INTO protected_information_tab(Protected_Field,Protected_Value,Rowversion)
58.427 - VALUES ('Personal Communication Methods','TRUE',SYSDATE);
58.428 - INSERT INTO protected_information_tab(Protected_Field,Protected_Value,Rowversion)
58.429 - VALUES ('Date of Birth','FALSE',SYSDATE);
58.430 - INSERT INTO protected_information_tab(Protected_Field,Protected_Value,Rowversion)
58.431 - VALUES ('Place of Birth','FALSE',SYSDATE);
58.432 - INSERT INTO protected_information_tab(Protected_Field,Protected_Value,Rowversion)
58.433 - VALUES ('Citizen Of','FALSE',SYSDATE);
58.434 - INSERT INTO protected_information_tab(Protected_Field,Protected_Value,Rowversion)
58.435 - VALUES ('Insurance Id','FALSE',SYSDATE);
58.436 - INSERT INTO protected_information_tab(Protected_Field,Protected_Value,Rowversion)
58.437 - VALUES ('Gender','FALSE',SYSDATE);
58.438 - INSERT INTO protected_information_tab(Protected_Field,Protected_Value,Rowversion)
58.439 - VALUES ('Blood Type','FALSE',SYSDATE);
58.440 - INSERT INTO protected_information_tab(Protected_Field,Protected_Value,Rowversion)
58.441 - VALUES ('Marital Status','FALSE',SYSDATE);
58.442 - INSERT INTO protected_information_tab(Protected_Field,Protected_Value,Rowversion)
58.443 - VALUES ('Have Children','FALSE',SYSDATE);
58.444 - END IF;
58.445 - CLOSE check_exits;
58.446 -END;
58.447 -/
58.448 -COMMIT;
58.449 -
58.450 ---Bug 73297, Start
58.451 -PROMPT ************************************************************************
58.452 -PROMPT Insert data INTO PROPERTY_RULE_TAB - Enhanced Automatic Employee Numbering
58.453 -PROMPT ************************************************************************
58.454 -
58.455 -DECLARE
58.456 - attr_ VARCHAR2(2000);
58.457 -BEGIN
58.458 - ---
58.459 - Client_SYS.Clear_Attr(attr_);
58.460 - Client_SYS.Add_To_Attr('PROPERTY_CODE', 'EMPMASK', attr_);
58.461 - Client_SYS.Add_To_Attr('DATA_TYPE_DB', '1', attr_); -- String
58.462 - Client_SYS.Add_To_Attr('LENGTH', 15 , attr_);
58.463 - Client_SYS.Add_To_Attr('MULTIPLE_INSTANCES_ALLOWED', 'FALSE' , attr_);
58.464 - Client_SYS.Add_To_Attr('USE_LOV_FOR_VALIDATION', '0' , attr_);
58.465 - Client_SYS.Add_To_Attr('PROPERTY_OBJECT_DB', '1', attr_); -- Company
58.466 - Client_SYS.Add_To_Attr('DEFAULT_DESCRIPTION', 'Automatic Employee Numbering Mask', attr_);
58.467 - Property_Rule_API.New_Modify(attr_);
58.468 - COMMIT;
58.469 -
58.470 - ---
58.471 - Client_SYS.Clear_Attr(attr_);
58.472 - Client_SYS.Add_To_Attr('PROPERTY_CODE', 'EMPPREFIX', attr_);
58.473 - Client_SYS.Add_To_Attr('DATA_TYPE_DB', '1', attr_); -- String
58.474 - Client_SYS.Add_To_Attr('LENGTH', 10 , attr_);
58.475 - Client_SYS.Add_To_Attr('MULTIPLE_INSTANCES_ALLOWED', 'FALSE' , attr_);
58.476 - Client_SYS.Add_To_Attr('USE_LOV_FOR_VALIDATION', '0' , attr_);
58.477 - Client_SYS.Add_To_Attr('PROPERTY_OBJECT_DB', '1', attr_); -- Company
58.478 - Client_SYS.Add_To_Attr('DEFAULT_DESCRIPTION', 'Automatic Employee Numbering Prefix ', attr_);
58.479 - Property_Rule_API.New_Modify(attr_);
58.480 - COMMIT;
58.481 -END;
58.482 -/
58.483 -COMMIT;
58.484 ---Bug 73297, End
59.1 --- a/PLSQL/Lexer/test/unit/src/org/netbeans/modules/plsql/lexer/sys_IalObjectSlave.api Wed May 15 16:07:35 2013 +0200
59.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
59.3 @@ -1,82 +0,0 @@
59.4 ------------------------------------------------------------------------------
59.5 ---
59.6 --- Logical unit: IalObjectSlave
59.7 ---
59.8 --- IFS/Design Template Version 2.2
59.9 ---
59.10 --- Date Sign History
59.11 --- ------ ---- -----------------------------------------------------------
59.12 --- 990301 MANY Project Invader for IAL (ToDo #3177).
59.13 --- 030131 ROOD Removed unused public interfaces (Bug#35022).
59.14 --- 030225 ROOD Changed module to FNDBAS (ToDo#4149).
59.15 ------------------------------------------------------------------------------
59.16 -
59.17 -DEFINE MODULE = FNDBAS
59.18 -DEFINE LU = IalObjectSlave
59.19 -DEFINE PKG = IAL_OBJECT_SLAVE_API
59.20 -
59.21 -
59.22 -
59.23 -PROMPT Creating &INFO_OWNER..&PKG specification
59.24 -
59.25 -CREATE OR REPLACE PACKAGE &INFO_OWNER..&PKG IS
59.26 -
59.27 -module_ CONSTANT VARCHAR2(25) := '&MODULE';
59.28 -lu_name_ CONSTANT VARCHAR2(25) := '&LU';
59.29 -
59.30 ------------------------------------------------------------------------------
59.31 --------------------- LU SPECIFIC PRIVATE METHODS ----------------------------
59.32 ------------------------------------------------------------------------------
59.33 -
59.34 -
59.35 ------------------------------------------------------------------------------
59.36 --------------------- LU SPECIFIC PROTECTED METHODS --------------------------
59.37 ------------------------------------------------------------------------------
59.38 -
59.39 -
59.40 ------------------------------------------------------------------------------
59.41 --------------------- LU SPECIFIC PUBLIC METHODS -----------------------------
59.42 ------------------------------------------------------------------------------
59.43 -
59.44 -PROCEDURE Exec_Ddl_Statement (
59.45 - stmt_ IN VARCHAR2 );
59.46 -
59.47 -PROCEDURE Enumerate_Column_Info (
59.48 - attr_ OUT VARCHAR2,
59.49 - name_ IN VARCHAR2 );
59.50 -
59.51 -PROCEDURE Enumerate_Index_Info (
59.52 - index_list_ OUT VARCHAR2,
59.53 - name_ IN VARCHAR2 );
59.54 -
59.55 -PROCEDURE Add_Index (
59.56 - name_ IN VARCHAR2,
59.57 - column_name_ IN VARCHAR2 );
59.58 -
59.59 -PROCEDURE Remove_Index (
59.60 - name_ IN VARCHAR2,
59.61 - column_name_ IN VARCHAR2 );
59.62 -
59.63 -PROCEDURE Get_Object_Info (
59.64 - attr_ OUT VARCHAR2,
59.65 - name_ IN VARCHAR2 );
59.66 -
59.67 -FUNCTION Check_Index (
59.68 - name_ IN VARCHAR2,
59.69 - column_name_ IN VARCHAR2 ) RETURN VARCHAR2;
59.70 -
59.71 -PROCEDURE Get_Table_Info (
59.72 - table_info_ OUT VARCHAR2,
59.73 - name_ IN VARCHAR2 );
59.74 -
59.75 ------------------------------------------------------------------------------
59.76 --------------------- FOUNDATION1 METHODS ------------------------------------
59.77 ------------------------------------------------------------------------------
59.78 -
59.79 -PROCEDURE Init;
59.80 -
59.81 -END &PKG;
59.82 -/
59.83 -SHOW ERROR
59.84 -
59.85 ------------------------------------------------------------------------------
60.1 --- a/PLSQL/Lexer/test/unit/src/org/netbeans/modules/plsql/lexer/sys_IalObjectSlave.apy Wed May 15 16:07:35 2013 +0200
60.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
60.3 @@ -1,376 +0,0 @@
60.4 ------------------------------------------------------------------------------
60.5 ---
60.6 --- Logical unit: IalObjectSlave
60.7 ---
60.8 --- Purpose:
60.9 ---
60.10 --- IFS/Design Template Version 2.2
60.11 ---
60.12 --- Date Sign History
60.13 --- ------ ---- -----------------------------------------------------------
60.14 --- 990301 MANY Project Invader for IAL (ToDo #3177).
60.15 --- 990301 ERFO Corrected table name paramters for Add/Remove_Index.
60.16 --- 990322 MANY Implemented partial replication (ToDo #3222).
60.17 --- 030113 ROOD Made Get_Table_Info handle locally managed tablespaces (Bug#35022).
60.18 --- 030130 ROOD Handling for locally managed tablespaces for indexes too (Bug#35022).
60.19 --- Removed unused public interfaces. Added implementation help methods.
60.20 --- Some other implementation modifications.
60.21 --- 030225 ROOD Changed module to FNDBAS (ToDo#4149).
60.22 --- 090107 HASP Increased length of indexes_ variable in Enumerate_Index_Info method (Bug#79640).
60.23 --- 090817 NABA Certified the assert safe for dynamic SQLs (Bug#84218)
60.24 ------------------------------------------------------------------------------
60.25 -
60.26 -DEFINE MODULE = FNDBAS
60.27 -DEFINE LU = IalObjectSlave
60.28 -DEFINE PKG = IAL_OBJECT_SLAVE_API
60.29 -
60.30 ------------------------------------------------------------------------------
60.31 --------------------- PACKAGES FOR METHODS -----------------------------------
60.32 ------------------------------------------------------------------------------
60.33 -
60.34 -PROMPT Creating &INFO_OWNER..&PKG implementation
60.35 -
60.36 -CREATE OR REPLACE PACKAGE BODY &INFO_OWNER..&PKG IS
60.37 -
60.38 ------------------------------------------------------------------------------
60.39 --------------------- LU SPECIFIC IMPLEMENTATION METHOD DECLARATIONS ---------
60.40 ------------------------------------------------------------------------------
60.41 -
60.42 -FUNCTION Is_Locally_Managed___ (
60.43 - tablespace_ IN VARCHAR2 ) RETURN BOOLEAN;
60.44 -
60.45 -FUNCTION Is_Column_Indexed___ (
60.46 - name_ IN VARCHAR2,
60.47 - column_name_ IN VARCHAR2 ) RETURN VARCHAR2;
60.48 -
60.49 -FUNCTION Get_Column_Id___ (
60.50 - table_name_ IN VARCHAR2,
60.51 - column_name_ IN VARCHAR2 ) RETURN VARCHAR2;
60.52 -
60.53 -FUNCTION Table_Exist___ (
60.54 - table_name_ IN VARCHAR2 ) RETURN BOOLEAN;
60.55 -
60.56 ------------------------------------------------------------------------------
60.57 --------------------- LU SPECIFIC IMPLEMENTATION METHODS ---------------------
60.58 ------------------------------------------------------------------------------
60.59 -
60.60 -FUNCTION Is_Locally_Managed___ (
60.61 - tablespace_ IN VARCHAR2 ) RETURN BOOLEAN
60.62 -IS
60.63 - extent_management_ VARCHAR2(10);
60.64 -
60.65 - CURSOR get_extent_management IS
60.66 - SELECT extent_management
60.67 - FROM user_tablespaces
60.68 - WHERE tablespace_name = tablespace_;
60.69 -BEGIN
60.70 - OPEN get_extent_management;
60.71 - FETCH get_extent_management INTO extent_management_;
60.72 - CLOSE get_extent_management;
60.73 - RETURN extent_management_ = 'LOCAL';
60.74 -END Is_Locally_Managed___;
60.75 -
60.76 -FUNCTION Is_Column_Indexed___ (
60.77 - name_ IN VARCHAR2,
60.78 - column_name_ IN VARCHAR2 ) RETURN VARCHAR2
60.79 -IS
60.80 - column_id_ VARCHAR2(10) := Get_Column_Id___(name_||'_TAB', column_name_);
60.81 - dummy_ NUMBER;
60.82 - found_ VARCHAR2(5);
60.83 -
60.84 - CURSOR get_index(index_name_ IN VARCHAR2) IS
60.85 - SELECT 1
60.86 - FROM user_indexes
60.87 - WHERE index_name = index_name_;
60.88 -
60.89 -BEGIN
60.90 - OPEN get_index(name_||'_X'||column_id_);
60.91 - FETCH get_index INTO dummy_;
60.92 - IF get_index%FOUND THEN
60.93 - found_ := 'TRUE';
60.94 - ELSE
60.95 - found_ := 'FALSE';
60.96 - END IF;
60.97 - CLOSE get_index;
60.98 - RETURN found_;
60.99 -END Is_Column_Indexed___;
60.100 -
60.101 -FUNCTION Get_Column_Id___ (
60.102 - table_name_ IN VARCHAR2,
60.103 - column_name_ IN VARCHAR2 ) RETURN VARCHAR2
60.104 -IS
60.105 - id_ NUMBER;
60.106 -
60.107 - CURSOR get_id IS
60.108 - SELECT column_id
60.109 - FROM user_tab_columns
60.110 - WHERE table_name = table_name_
60.111 - AND column_name = column_name_;
60.112 -BEGIN
60.113 - OPEN get_id;
60.114 - FETCH get_id INTO id_;
60.115 - CLOSE get_id;
60.116 - RETURN to_char(id_);
60.117 -END Get_Column_Id___;
60.118 -
60.119 -FUNCTION Table_Exist___ (
60.120 - table_name_ IN VARCHAR2 ) RETURN BOOLEAN
60.121 -IS
60.122 - dummy_ NUMBER;
60.123 -
60.124 - CURSOR exist_control IS
60.125 - SELECT 1
60.126 - FROM user_tables
60.127 - WHERE table_name = table_name_;
60.128 -BEGIN
60.129 - OPEN exist_control;
60.130 - FETCH exist_control INTO dummy_;
60.131 - IF exist_control%FOUND THEN
60.132 - CLOSE exist_control;
60.133 - RETURN (TRUE);
60.134 - END IF;
60.135 - CLOSE exist_control;
60.136 - RETURN (FALSE);
60.137 -END Table_Exist___;
60.138 -
60.139 ------------------------------------------------------------------------------
60.140 --------------------- LU SPECIFIC PRIVATE METHODS ----------------------------
60.141 ------------------------------------------------------------------------------
60.142 -
60.143 -
60.144 ------------------------------------------------------------------------------
60.145 --------------------- LU SPECIFIC PROTECTED METHODS --------------------------
60.146 ------------------------------------------------------------------------------
60.147 -
60.148 -
60.149 ------------------------------------------------------------------------------
60.150 --------------------- LU SPECIFIC PUBLIC METHODS -----------------------------
60.151 ------------------------------------------------------------------------------
60.152 -
60.153 -PROCEDURE Exec_Ddl_Statement (
60.154 - stmt_ IN VARCHAR2 )
60.155 -IS
60.156 -BEGIN
60.157 - -- Safe as package is in IAL Owner schema
60.158 - -- ifs_assert_safe nabalk 20090817
60.159 - EXECUTE IMMEDIATE stmt_;
60.160 -END Exec_Ddl_Statement;
60.161 -
60.162 -PROCEDURE Enumerate_Column_Info (
60.163 - attr_ OUT VARCHAR2,
60.164 - name_ IN VARCHAR2 )
60.165 -IS
60.166 - out_attr_ VARCHAR2(19000);
60.167 - tmp_attr_ VARCHAR2(32000);
60.168 - table_name_ VARCHAR2(30) := name_||'_TAB';
60.169 - view_name_ VARCHAR2(30) := name_||'_IAL';
60.170 -
60.171 - CURSOR get_column_info(table_or_view_name_ IN VARCHAR2) IS
60.172 - SELECT * FROM user_tab_columns
60.173 - WHERE table_name = table_or_view_name_;
60.174 -BEGIN
60.175 - IF Table_Exist___(table_name_) THEN
60.176 - FOR rec_ IN get_column_info(table_name_) LOOP
60.177 - tmp_attr_ := NULL;
60.178 - tmp_attr_ := tmp_attr_ || 'NAME' || chr(31) || rec_.column_name || chr(30);
60.179 - tmp_attr_ := tmp_attr_ || 'DATATYPE' || chr(31) || rec_.data_type || chr(30);
60.180 - tmp_attr_ := tmp_attr_ || 'INDEXED' || chr(31) || Is_Column_Indexed___(name_, rec_.column_name) || chr(30);
60.181 - out_attr_ := out_attr_ || tmp_attr_ ||chr(29);
60.182 - END LOOP;
60.183 - ELSE
60.184 - FOR rec_ IN get_column_info(view_name_) LOOP
60.185 - tmp_attr_ := NULL;
60.186 - tmp_attr_ := tmp_attr_ || 'NAME' || chr(31) || rec_.column_name || chr(30);
60.187 - tmp_attr_ := tmp_attr_ || 'DATATYPE' || chr(31) || rec_.data_type || chr(30);
60.188 - tmp_attr_ := tmp_attr_ || 'INDEXED' || chr(31) || 'FALSE' || chr(30);
60.189 - out_attr_ := out_attr_ || tmp_attr_ ||chr(29);
60.190 - END LOOP;
60.191 - END IF;
60.192 - attr_ := out_attr_;
60.193 -END Enumerate_Column_Info;
60.194 -
60.195 -PROCEDURE Enumerate_Index_Info (
60.196 - index_list_ OUT VARCHAR2,
60.197 - name_ IN VARCHAR2 )
60.198 -IS
60.199 - indexes_ VARCHAR2(32000);
60.200 - index_ VARCHAR2(2000);
60.201 - col_list_ VARCHAR2(400);
60.202 - delim_ VARCHAR2(1);
60.203 - table_name_ VARCHAR2(30) := name_ || '_TAB';
60.204 -
60.205 - CURSOR get_index_info IS
60.206 - SELECT *
60.207 - FROM user_indexes
60.208 - WHERE table_name = table_name_;
60.209 -
60.210 - CURSOR get_columns(index_name_ IN VARCHAR2) IS
60.211 - SELECT column_name
60.212 - FROM user_ind_columns
60.213 - WHERE index_name = index_name_
60.214 - ORDER BY column_position;
60.215 -BEGIN
60.216 - FOR ind_ IN get_index_info LOOP
60.217 - IF (ind_.uniqueness = 'UNIQUE') THEN
60.218 - index_ := 'CREATE UNIQUE INDEX ' || ind_.index_name || ' ON ' || ind_.table_name || '(';
60.219 - ELSE
60.220 - index_ := 'CREATE INDEX ' || ind_.index_name || ' ON ' || ind_.table_name || '(';
60.221 - END IF;
60.222 - col_list_ := NULL;
60.223 - delim_ := NULL;
60.224 - FOR col_ IN get_columns(ind_.index_name) LOOP
60.225 - col_list_ := col_list_ || delim_ || col_.column_name;
60.226 - delim_ := ',';
60.227 - END LOOP;
60.228 - IF (col_list_ IS NOT NULL) THEN -- Can a index have zero columns? Well, just in case...
60.229 - index_ := index_ || col_list_ || ') TABLESPACE ' || ind_.tablespace_name || ' ';
60.230 - -- Statements only necessary if not locally managed tablespace
60.231 - IF NOT Is_Locally_Managed___(ind_.tablespace_name) THEN
60.232 - index_ := index_ || 'INITRANS ' || ind_.ini_trans || ' ';
60.233 - index_ := index_ || 'MAXTRANS ' || ind_.max_trans || ' ';
60.234 - index_ := index_ || 'PCTFREE ' || ind_.pct_free || ' ';
60.235 - index_ := index_ || 'STORAGE (INITIAL ' || ind_.initial_extent || ' NEXT ' || ind_.next_extent || ' ';
60.236 - index_ := index_ || 'MINEXTENTS ' || ind_.min_extents || ' MAXEXTENTS ' || ind_.max_extents || ' ';
60.237 - index_ := index_ || 'PCTINCREASE ' || ind_.pct_increase || ' FREELISTS ' || ind_.freelists || ' ';
60.238 - index_ := index_ || 'FREELIST GROUPS ' || ind_.freelist_groups || ')';
60.239 - END IF;
60.240 - -- Add this index to the list for all indexes
60.241 - indexes_ := indexes_ || index_ || chr(31);
60.242 - END IF;
60.243 - END LOOP;
60.244 - index_list_ := indexes_;
60.245 -END Enumerate_Index_Info;
60.246 -
60.247 -PROCEDURE Add_Index (
60.248 - name_ IN VARCHAR2,
60.249 - column_name_ IN VARCHAR2 )
60.250 -IS
60.251 - column_id_ VARCHAR2(10) := Get_Column_Id___(name_||'_TAB', column_name_);
60.252 -BEGIN
60.253 - Exec_Ddl_Statement('CREATE INDEX '||name_||'_X'||column_id_||' ON '||name_||'_TAB ('||column_name_||')');
60.254 -END Add_Index;
60.255 -
60.256 -PROCEDURE Remove_Index (
60.257 - name_ IN VARCHAR2,
60.258 - column_name_ IN VARCHAR2 )
60.259 -IS
60.260 - column_id_ VARCHAR2(10) := Get_Column_Id___(name_||'_TAB', column_name_);
60.261 -BEGIN
60.262 - Exec_Ddl_Statement('DROP INDEX '||name_||'_X'||column_id_);
60.263 -END Remove_Index;
60.264 -
60.265 -PROCEDURE Get_Object_Info (
60.266 - attr_ OUT VARCHAR2,
60.267 - name_ IN VARCHAR2 )
60.268 -IS
60.269 - tmp_attr_ VARCHAR2(100) := NULL;
60.270 - dummy_ NUMBER;
60.271 - table_name_ VARCHAR2(30) := name_||'_TAB';
60.272 -
60.273 - CURSOR find_objdate_column IS
60.274 - SELECT 1
60.275 - FROM user_tab_columns
60.276 - WHERE table_name = table_name_
60.277 - AND column_name = 'OBJDATE';
60.278 -BEGIN
60.279 - IF Table_Exist___(table_name_) THEN
60.280 - -- Add table name
60.281 - tmp_attr_ := tmp_attr_ || 'TABLE_NAME' || chr(31) || table_name_ || chr(30);
60.282 -
60.283 - -- Add info about objdate column
60.284 - OPEN find_objdate_column;
60.285 - FETCH find_objdate_column INTO dummy_;
60.286 - IF find_objdate_column%FOUND THEN
60.287 - tmp_attr_ := tmp_attr_ || 'OBJDATE' || chr(31) || 'TRUE' || chr(30);
60.288 - ELSE
60.289 - tmp_attr_ := tmp_attr_ || 'OBJDATE' || chr(31) || 'FALSE' || chr(30);
60.290 - END IF;
60.291 - CLOSE find_objdate_column;
60.292 - ELSE
60.293 - -- If no table exist, then no objdate column will exist either...
60.294 - tmp_attr_ := tmp_attr_ || 'OBJDATE' || chr(31) || 'FALSE' || chr(30);
60.295 - END IF;
60.296 - attr_ := tmp_attr_;
60.297 -END Get_Object_Info;
60.298 -
60.299 -FUNCTION Check_Index (
60.300 - name_ IN VARCHAR2,
60.301 - column_name_ IN VARCHAR2 ) RETURN VARCHAR2
60.302 -IS
60.303 - dummy_ NUMBER;
60.304 - table_name_ VARCHAR2(30) := name_ || '_TAB';
60.305 -
60.306 - CURSOR get_indexes IS
60.307 - SELECT index_name
60.308 - FROM user_indexes
60.309 - WHERE table_name = table_name_;
60.310 -
60.311 - CURSOR find_index_column(index_name_ IN VARCHAR2) IS
60.312 - SELECT 1
60.313 - FROM user_ind_columns
60.314 - WHERE index_name = index_name_
60.315 - AND column_name = column_name_;
60.316 -BEGIN
60.317 - FOR rec_ IN get_indexes LOOP
60.318 - OPEN find_index_column(rec_.index_name);
60.319 - FETCH find_index_column INTO dummy_;
60.320 - IF find_index_column%FOUND THEN -- There is an index on this column that is probably better.
60.321 - CLOSE find_index_column;
60.322 - RETURN 'FALSE';
60.323 - END IF;
60.324 - CLOSE find_index_column;
60.325 - END LOOP;
60.326 - RETURN ('TRUE');
60.327 -END Check_Index;
60.328 -
60.329 -PROCEDURE Get_Table_Info (
60.330 - table_info_ OUT VARCHAR2,
60.331 - name_ IN VARCHAR2 )
60.332 -IS
60.333 - table_ VARCHAR2(2000);
60.334 -
60.335 - CURSOR get_table_information(table_name_ IN VARCHAR2) IS
60.336 - SELECT *
60.337 - FROM user_tables
60.338 - WHERE table_name = table_name_;
60.339 -BEGIN
60.340 - FOR tab_ IN get_table_information(name_ || '_TAB') LOOP
60.341 - -- Initial statement
60.342 - table_ := 'CREATE TABLE ' || tab_.table_name;
60.343 - table_ := table_ || ' TABLESPACE ' || tab_.tablespace_name;
60.344 - -- Statements only necessary if not locally managed tablespace
60.345 - IF NOT Is_Locally_Managed___(tab_.tablespace_name) THEN
60.346 - table_ := table_ || ' INITRANS ' || tab_.ini_trans;
60.347 - table_ := table_ || ' MAXTRANS ' || tab_.max_trans;
60.348 - table_ := table_ || ' PCTFREE ' || tab_.pct_free;
60.349 - table_ := table_ || ' STORAGE (INITIAL ' || tab_.initial_extent || ' NEXT ' || tab_.next_extent;
60.350 - table_ := table_ || ' MINEXTENTS ' || tab_.min_extents || ' MAXEXTENTS ' || tab_.max_extents;
60.351 - table_ := table_ || ' PCTINCREASE ' || tab_.pct_increase || ' FREELISTS ' || tab_.freelists;
60.352 - table_ := table_ || ' FREELIST GROUPS ' || tab_.freelist_groups || ')';
60.353 - END IF;
60.354 - -- Final statement
60.355 - table_ := table_ || ' AS (SELECT * FROM ' || name_ || '_IAL)';
60.356 - END LOOP;
60.357 - table_info_ := table_;
60.358 -END Get_Table_Info;
60.359 -
60.360 ------------------------------------------------------------------------------
60.361 --------------------- FOUNDATION1 METHODS ------------------------------------
60.362 ------------------------------------------------------------------------------
60.363 --- Init
60.364 --- Dummy procedure that can be called at database startup to ensure that
60.365 --- this package is loaded into memory for performance reasons only.
60.366 ------------------------------------------------------------------------------
60.367 -
60.368 -PROCEDURE Init
60.369 -IS
60.370 -BEGIN
60.371 - NULL;
60.372 -END Init;
60.373 -
60.374 -
60.375 -END &PKG;
60.376 -/
60.377 -SHOW ERROR
60.378 -
60.379 ------------------------------------------------------------------------------
61.1 --- a/PLSQL/Lexer/test/unit/src/org/netbeans/modules/plsql/lexer/test.api Wed May 15 16:07:35 2013 +0200
61.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
61.3 @@ -1,1 +0,0 @@
61.4 ------------------------------------------------------------------------------
61.5 --
61.6 -- Logical unit: Formula
61.7 --
61.8 -- IFS/Design Template Version 2.5
61.9 --
61.10 -- Date Sign History
61.11 -- ------ ------ ---------------------------------------------------------
61.12 -----------------------------------------------------------------------------
61.13
61.14 DEFINE MODULE = APPSRV
61.15 DEFINE LU = Formula
61.16 DEFINE PKG = FORMULA_API
61.17
61.18 PROMPT Creating &PKG context
61.19
61.20 BEGIN
61.21 Installation_SYS.Create_Context('&LU'||'_CTX', 'DOMAIN_SYS', NULL, 'GLOBALLY', TRUE);
61.22 END;
61.23 /
61.24
61.25 PROMPT Creating &PKG specification
61.26
61.27 CREATE OR REPLACE PACKAGE &PKG IS
61.28
61.29 TYPE Public_Rec IS RECORD
61.30 (description FORMULA_TAB.description%TYPE,
61.31 formula_uom FORMULA_TAB.formula_uom%TYPE,
61.32 uom_description FORMULA_TAB.uom_description%TYPE);
61.33
61.34 -----------------------------------------------------------------------------
61.35 -------------------- PRIVATE FINITE STATE MACHINE ---------------------------
61.36 -----------------------------------------------------------------------------
61.37
61.38 FUNCTION Finite_State_Decode__ (
61.39 db_state_ IN VARCHAR2 ) RETURN VARCHAR2;
61.40 PRAGMA restrict_references(Finite_State_Decode__, WNDS, TRUST);
61.41
61.42 PROCEDURE Enumerate_States_Db__ (
61.43 db_values_ OUT VARCHAR2);
61.44
61.45 -----------------------------------------------------------------------------
61.46 -------------------- LU SPECIFIC PUBLIC METHODS -----------------------------
61.47 -----------------------------------------------------------------------------
61.48
61.49 END &PKG;
61.50 /
61.51 SHOW ERROR
61.52
61.53 UNDEFINE MODULE
61.54 UNDEFINE LU
61.55 UNDEFINE PKG
61.56 \ No newline at end of file
62.1 --- a/PLSQL/Lexer/test/unit/src/org/netbeans/modules/plsql/lexer/test.apy Wed May 15 16:07:35 2013 +0200
62.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
62.3 @@ -1,129 +0,0 @@
62.4 ------------------------------------------------------------------------------
62.5 ---
62.6 --- Logical unit: Formula
62.7 ---
62.8 --- Purpose:
62.9 ---
62.10 --- IFS/Design Template Version 2.5
62.11 ---
62.12 --- Date Sign History
62.13 --- ------ ------ ---------------------------------------------------------
62.14 ------------------------------------------------------------------------------
62.15 -
62.16 -DEFINE MODULE = APPSRV
62.17 -DEFINE LU = Formula
62.18 -DEFINE TABLE = FORMULA_TAB
62.19 -DEFINE VIEW = FORMULA
62.20 -DEFINE PKG = FORMULA_API
62.21 -
62.22 -DEFINE OBJID = rowid
62.23 -DEFINE OBJVERSION = "ltrim(lpad(to_char(rowversion,'YYYYMMDDHH24MISS'),2000))"
62.24 -DEFINE OBJSTATE = rowstate
62.25 -DEFINE OBJEVENTS = &PKG..Finite_State_Events__(&OBJSTATE)
62.26 -DEFINE STATE = &PKG..Finite_State_Decode__(&OBJSTATE)
62.27 -
62.28 -PROMPT Creating &VIEW view
62.29 -
62.30 -CREATE OR REPLACE VIEW &VIEW AS
62.31 -SELECT formula_id formula_id,
62.32 - description description,
62.33 - formula_uom formula_uom,
62.34 - uom_description uom_description,
62.35 - &OBJID objid,
62.36 - &OBJVERSION objversion,
62.37 - &OBJSTATE objstate,
62.38 - &OBJEVENTS objevents,
62.39 - &STATE state
62.40 -FROM formula_tab
62.41 -WITH read only;
62.42 -
62.43 -COMMENT ON TABLE &VIEW
62.44 - IS 'LU=&LU^PROMPT=Formula^MODULE=&MODULE^';
62.45 -
62.46 -COMMENT ON COLUMN &VIEW..formula_id
62.47 - IS 'FLAGS=KMI-L^DATATYPE=STRING(30)/UPPERCASE^PROMPT=Formula Id^';
62.48 -COMMENT ON COLUMN &VIEW..description
62.49 - IS 'FLAGS=AMIUL^DATATYPE=STRING(100)^PROMPT=Description^';
62.50 -COMMENT ON COLUMN &VIEW..formula_uom
62.51 - IS 'FLAGS=AMIUL^DATATYPE=STRING(30)^PROMPT=Formula Uom^REF=IsoUnit/NOCHECK^';
62.52 -COMMENT ON COLUMN &VIEW..uom_description
62.53 - IS 'FLAGS=AMIUL^DATATYPE=STRING(200)^PROMPT=Uom Description^';
62.54 -
62.55 -PROMPT Creating &PKG implementation
62.56 -
62.57 -CREATE OR REPLACE PACKAGE BODY &PKG IS
62.58 -
62.59 -state_separator_ CONSTANT VARCHAR2(1) := Client_SYS.field_separator_;
62.60 -
62.61 ------------------------------------------------------------------------------
62.62 --------------------- LU SPECIFIC IMPLEMENTATION METHOD DECLARATIONS ---------
62.63 ------------------------------------------------------------------------------
62.64 -
62.65 -PROCEDURE Check_Formula_State___ (
62.66 - rec_ IN OUT &TABLE%ROWTYPE,
62.67 - attr_ IN OUT VARCHAR2 );
62.68 -
62.69 -FUNCTION Get_Db_Values___ RETURN VARCHAR2 DETERMINISTIC;
62.70 -
62.71 -PROCEDURE Exist (
62.72 - formula_id_ IN VARCHAR2 )
62.73 -IS
62.74 -BEGIN
62.75 - General_SYS.Init_Method(lu_name_, '&PKG', 'Exist', TRUE);
62.76 - IF (NOT Check_Exist___(formula_id_)) THEN
62.77 - Error_SYS.Record_Not_Exist(lu_name_);
62.78 - END IF;
62.79 -END Exist;
62.80 -
62.81 -/**Example block comment inside a package spec**/
62.82 -
62.83 -FUNCTION Get (
62.84 - formula_id_ IN VARCHAR2 ) RETURN Public_Rec
62.85 -IS
62.86 - temp_ Public_Rec;
62.87 - CURSOR get_attr IS
62.88 - SELECT description, formula_uom, uom_description
62.89 - FROM &TABLE
62.90 - WHERE formula_id = formula_id_;
62.91 -BEGIN
62.92 - OPEN get_attr;
62.93 - FETCH get_attr INTO temp_;
62.94 - CLOSE get_attr;
62.95 - RETURN temp_;
62.96 -END Get;
62.97 -
62.98 ------------------------------------------------------------------------------
62.99 --------------------- FOUNDATION1 METHODS ------------------------------------
62.100 ------------------------------------------------------------------------------
62.101 --- Init
62.102 --- Dummy procedure that can be called at database startup to ensure that
62.103 --- this package is loaded into memory for performance reasons only.
62.104 ------------------------------------------------------------------------------
62.105 -
62.106 -PROCEDURE Init
62.107 -IS
62.108 -BEGIN
62.109 - Domain_SYS.Load_State(lu_name_, Get_Client_Values___, Get_Db_Values___);
62.110 -END Init;
62.111 -
62.112 -END &PKG;
62.113 -/
62.114 -SHOW ERROR
62.115 -
62.116 -
62.117 -BEGIN
62.118 - FORMULA_API.Language_Refreshed;
62.119 -END;
62.120 -/
62.121 -
62.122 -UNDEFINE MODULE
62.123 -UNDEFINE LU
62.124 -UNDEFINE TABLE
62.125 -UNDEFINE VIEW
62.126 -UNDEFINE PKG
62.127 -UNDEFINE OBJID
62.128 -UNDEFINE OBJVERSION
62.129 -UNDEFINE OBJSTATE
62.130 -UNDEFINE OBJEVENTS
62.131 -UNDEFINE STATE
62.132 ------------------------------------------------------------------------------
62.133 \ No newline at end of file
63.1 --- a/PLSQL/Lexer/test/unit/src/org/netbeans/modules/plsql/lexer/test.upg Wed May 15 16:07:35 2013 +0200
63.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
63.3 @@ -1,254 +0,0 @@
63.4 -create or replace java source named "AvQuery" as
63.5 -
63.6 - import java.util.*;
63.7 -
63.8 - class WordData {
63.9 - String text;
63.10 - String fieldName;
63.11 - }
63.12 -
63.13 - public class AvQuery {
63.14 -
63.15 - static Vector reqWords = new Vector();
63.16 - static Vector optWords = new Vector();
63.17 - static Vector notWords = new Vector();
63.18 -
63.19 - public static final int required = 1;
63.20 - public static final int optional = 2;
63.21 - public static final int notwanted = 3;
63.22 -
63.23 - public static String translate (String input) {
63.24 - processString(input);
63.25 - return getQuery();
63.26 - }
63.27 -
63.28 - private static void addWord (String word, int wordType, String field) {
63.29 -
63.30 - WordData wd = new WordData();
63.31 -
63.32 - wd.text = word;
63.33 - wd.fieldName = field;
63.34 -
63.35 - switch (wordType) {
63.36 - case required:
63.37 - reqWords.addElement(wd);
63.38 - break;
63.39 - case optional:
63.40 - optWords.addElement(wd);
63.41 - break;
63.42 - case notwanted:
63.43 - notWords.addElement(wd);
63.44 - break;
63.45 - }
63.46 - }
63.47 -
63.48 - public static void processString (String input) {
63.49 - int p = 0;
63.50 - int pp;
63.51 - int startWord;
63.52 - int flag;
63.53 - String theWord;
63.54 - String fieldName;
63.55 -
63.56 -
63.57 - reqWords = new Vector();
63.58 - optWords = new Vector();
63.59 - notWords = new Vector();
63.60 -
63.61 - while (true) { // Loop over all words
63.62 -
63.63 - startWord = p;
63.64 - while (p < input.length() && input.charAt(p) != ' ') {
63.65 - // Check for quoted phrase
63.66 - if (input.charAt(p) == '"') { // Quote - skip to next or end
63.67 - p++; // skip the actual quote
63.68 - while (p < input.length() && input.charAt(p) != '"') {
63.69 - p++;
63.70 - }
63.71 - if (p < input.length()) p++; // Skip the final quote if found
63.72 - }
63.73 - else {
63.74 - p++;
63.75 - }
63.76 - }
63.77 -
63.78 - // Got a word. Check for required/not wanted flags (+-)
63.79 -
63.80 - theWord = input.substring(startWord, p);
63.81 -
63.82 - flag = optional;
63.83 - fieldName = "";
63.84 -
63.85 - if (theWord.charAt(0) == '+') {
63.86 - flag = required;
63.87 - theWord = theWord.substring(1);
63.88 - }
63.89 -
63.90 - else if (theWord.charAt(0) == '-') {
63.91 - flag = notwanted;
63.92 - theWord = theWord.substring(1);
63.93 - }
63.94 -
63.95 - // Replace * wild cards with %
63.96 -
63.97 - theWord = theWord.replace('*', '%');
63.98 -
63.99 - // Find field indicator ":"
63.100 -
63.101 - pp = theWord.indexOf(":");
63.102 - if (pp > 0) {
63.103 - fieldName = theWord.substring(0, pp);
63.104 - theWord = theWord.substring(pp+1, theWord.length());
63.105 - }
63.106 -
63.107 - addWord(theWord, flag, fieldName);
63.108 -
63.109 - p++;
63.110 - if (p >= input.length()) break;
63.111 - }
63.112 - }
63.113 -
63.114 - // Get word gets a single word from the "words" vector,
63.115 - // surrounds it in braces (to avoid reserved words)
63.116 - // and attaches a WITHIN clause if appropriate.
63.117 -
63.118 - private static String getWord (Vector words, int pos) {
63.119 -
63.120 - String ts = "{" + ((WordData) words.elementAt(pos)).text + "}";
63.121 - if (((WordData)words.elementAt(pos)).fieldName.length() > 0) {
63.122 - ts += " WITHIN " + ((WordData)words.elementAt(pos)).fieldName;
63.123 - }
63.124 - return ts;
63.125 - }
63.126 -
63.127 -
63.128 - // getQuery returns a formatted, ready-to-run ConText query.
63.129 - // In order to satisfy the altavista syntax, we have to generate
63.130 - // the following query:
63.131 -
63.132 - // ( req1 & req2 & ... reqN)
63.133 - // | ( (req1 & req2 & .. reqN)*10*10
63.134 - // & (req1, req2 , ... reqN , opt1 , opt2 , ... optN) )
63.135 - // NOT (not1 | not2 | ... notN)
63.136 -
63.137 - public static String getQuery () {
63.138 - String tempString = "";
63.139 -
63.140 - String boolOp = ""; // AND, OR, NOT operator
63.141 - int reqCount; // Count of required words
63.142 - int optCount; // Count of optional words
63.143 - int notCount; // Count of not wanted words
63.144 - int i; // Loop control
63.145 -
63.146 - boolOp = "";
63.147 - reqCount = reqWords.size();
63.148 - optCount = optWords.size();
63.149 - notCount = notWords.size();
63.150 -
63.151 - if (reqWords.size() > 0) {
63.152 - // Required words - first time
63.153 -
63.154 - tempString = "((";
63.155 - for (i = 0; i < reqCount; i++) {
63.156 - tempString += boolOp + getWord(reqWords,i);
63.157 - boolOp = " & ";
63.158 - }
63.159 -
63.160 - if (reqCount > 0 && optCount > 0) {
63.161 - tempString += ") | ";
63.162 - tempString += "((";
63.163 - // Required words - second time (anded with optional words)
63.164 - boolOp = "";
63.165 - for (i = 0; i < reqCount; i++) {
63.166 - tempString += boolOp + getWord(reqWords,i);
63.167 - boolOp = " & ";
63.168 - }
63.169 - tempString += ")*10*10";
63.170 -
63.171 - tempString += " & (";
63.172 -
63.173 - // Required words - third time as part of accumulate
63.174 - boolOp = "";
63.175 - for (i = 0; i < reqCount; i++) {
63.176 - tempString += boolOp + getWord(reqWords,i);
63.177 - // tempString += "*2";// Uncomment to double weight of required words
63.178 - boolOp = " , ";
63.179 - }
63.180 - }
63.181 - }
63.182 - else
63.183 - tempString = "(";
63.184 -
63.185 - // Optional words
63.186 - // Don't reset boolOp
63.187 - for (i = 0; i < optCount; i++) {
63.188 - tempString += boolOp + getWord(optWords,i);
63.189 - boolOp = " , "; // Accumulate
63.190 - }
63.191 -
63.192 - if (reqCount > 0)
63.193 - if (optCount > 0 )
63.194 - tempString += ")) )";
63.195 - else
63.196 - tempString += ")) ";
63.197 - else
63.198 - tempString += ")";
63.199 -
63.200 - if (tempString.length() > 0)
63.201 - boolOp = " NOT ";
63.202 - else
63.203 - boolOp = "";
63.204 -
63.205 - for (i = 0; i < notCount; i++) {
63.206 - tempString += boolOp + getWord(notWords,i);
63.207 - boolOp = " NOT ";
63.208 - }
63.209 - return tempString;
63.210 - }
63.211 -}
63.212 -/
63.213 -
63.214 -DECLARE
63.215 - CURSOR check_exits(company_id_ VARCHAR2,emp_no_ VARCHAR2)IS
63.216 - SELECT 1
63.217 - FROM company_person_tab
63.218 - WHERE company_id = company_id_
63.219 - AND emp_no = emp_no_;
63.220 - temp_ NUMBER;
63.221 -BEGIN
63.222 -FOR rec_ IN (SELECT * FROM company_emp_tab) LOOP
63.223 - OPEN check_exits(rec_.company,rec_.employee_id);
63.224 - FETCH check_exits INTO temp_;
63.225 - IF (check_exits%NOTFOUND) THEN
63.226 - INSERT INTO company_person_tab(company_id,emp_no,master_employment,operator,rowversion)
63.227 - VALUES (rec_.company,rec_.employee_id,'0',User,rec_.rowversion);
63.228 - END IF;
63.229 - CLOSE check_exits;
63.230 -END LOOP;
63.231 -END;
63.232 -/
63.233 -
63.234 -UPDATE search_domain_attribute_tab
63.235 -SET model_datatype = CASE datatype
63.236 - WHEN 'VARCHAR2' THEN 'TEXT'
63.237 - WHEN 'CHAR' THEN 'TEXT'
63.238 - WHEN 'NUMBER' THEN 'NUMBER'
63.239 - WHEN 'DATE' THEN 'DATE'
63.240 - WHEN 'CLOB' THEN 'LONG_TEXT'
63.241 - WHEN 'BLOB' THEN 'BINARY'
63.242 - ELSE 'TEXT'
63.243 - END
63.244 -WHERE model_datatype IS NULL
63.245 -/
63.246 -
63.247 -
63.248 -create or replace trigger vmogss_base_tablerestrict_tr
63.249 - after insert or update on vmo_base_tablerestriction
63.250 - referencing old as oldrec new as newrec
63.251 - for each row
63.252 -begin
63.253 - if updating or inserting then
63.254 - insert into vmo_base_gss_scope(gss_id, created, source_tbl, source_info) values('ALL_GSS_ID', sysdate, 'VMO_BASE_TABLERESTRICTION', :newrec.idrole);
63.255 - end if;
63.256 -end vmogss_base_tablerestrict_tr;
63.257 -/
63.258 \ No newline at end of file
64.1 --- a/PLSQL/Lexer/test/unit/src/org/netbeans/modules/plsql/lexer/test1.apy Wed May 15 16:07:35 2013 +0200
64.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
64.3 @@ -1,338 +0,0 @@
64.4 -PROMPT Creating &VIEW view
64.5 -CREATE OR REPLACE VIEW &VIEW AS
64.6 -SELECT s.sid sid,
64.7 - s.audsid audsid,
64.8 - u.identity fnd_user,
64.9 - s.osuser os_user,
64.10 - s.username oracle_user,
64.11 - s.machine machine,
64.12 - s.program program,
64.13 - s.module package,
64.14 - s.action method,
64.15 - logon_time log_on_time,
64.16 - s.status status,
64.17 - decode(s.status, 'ACTIVE', SYSDATE, sysdate - last_call_et/(24*3600)) last_query,
64.18 - nvl(f.info, '!FNDBAS.SESSION.INFO') info,
64.19 - s.serial# serial_no,
64.20 - Fnd_Session_API.Get_Sql_Statement(s.sql_address, s.sql_hash_value, s.sql_id) sql_statement,
64.21 - Fnd_Session_API.Get_Sql_Statement(s.prev_sql_addr, s.prev_hash_value, s.prev_sql_id) previous_sql_statement
64.22 -FROM &TABLE1 s, &TABLE2 f, &TABLE3 u
64.23 - WHERE rtrim(substr(s.client_info, 1, 30)) = u.identity
64.24 - AND s.audsid = f.session_id (+)
64.25 - AND s.audsid != 0
64.26 -WITH read only;
64.27 -
64.28 -DECLARE
64.29 - CURSOR Insert_Module_Data IS
64.30 - SELECT *
64.31 - FROM MODULE_TAB;
64.32 -
64.33 -PROCEDURE Insert_data(module_ VARCHAR2,module_name_ VARCHAR2) IS
64.34 -
64.35 - tmp_attribute_key_ VARCHAR2(120);
64.36 - newrec_ LANGUAGE_SYS_TAB%ROWTYPE;
64.37 - lu_ VARCHAR2(120) :='Module';
64.38 - path_ VARCHAR2(500);
64.39 - base_module_ VARCHAR2(120) :='FNDBAS';
64.40 -
64.41 -BEGIN
64.42 - tmp_attribute_key_ := Replace (module_, '^','~');
64.43 - newrec_.main_type := 'LU';
64.44 - newrec_.type := 'Basic Data';
64.45 - newrec_.path := lu_||'_'||base_module_||'.'||module_;
64.46 - path_ := newrec_.path;
64.47 - newrec_.attribute := 'Text';
64.48 - DECLARE
64.49 - BEGIN
64.50 - INSERT
64.51 - INTO language_sys_tab (
64.52 - main_type,
64.53 - type,
64.54 - path,
64.55 - attribute,
64.56 - lang_code,
64.57 - module,
64.58 - text,
64.59 - installation_text,
64.60 - system_defined,
64.61 - term_usage_version_id,
64.62 - bulk,
64.63 - rowversion)
64.64 - VALUES (
64.65 - newrec_.main_type,
64.66 - newrec_.type,
64.67 - newrec_.path,
64.68 - newrec_.attribute,
64.69 - 'PROG',
64.70 - base_module_,
64.71 - module_name_,
64.72 - module_name_,
64.73 - 'FALSE',
64.74 - NULL,
64.75 - 0,
64.76 - SYSDATE);
64.77 - EXCEPTION
64.78 - WHEN dup_val_on_index THEN
64.79 - UPDATE language_sys_tab
64.80 - SET main_type = newrec_.main_type,
64.81 - type = newrec_.type,
64.82 - path = newrec_.path,
64.83 - attribute = newrec_.attribute,
64.84 - lang_code = 'PROG',
64.85 - module = base_module_,
64.86 - text = module_name_,
64.87 - installation_text = module_name_,
64.88 - system_defined = 'FALSE',
64.89 - rowversion = SYSDATE
64.90 - WHERE main_type = newrec_.main_type
64.91 - AND type = newrec_.type
64.92 - AND path = newrec_.path
64.93 - AND attribute = newrec_.attribute
64.94 - AND lang_code = 'PROG';
64.95 -
64.96 - WHEN OTHERS THEN
64.97 - NULL;
64.98 - END;
64.99 -
64.100 -
64.101 -END Insert_data;
64.102 -
64.103 -
64.104 -BEGIN
64.105 - IF NOT Installation_SYS.Is_Db_Patch_Registered('FNDBAS', '70745') THEN
64.106 - FOR rec_ IN Insert_Module_Data LOOP
64.107 - Insert_data(rec_.module,rec_.name);
64.108 - END LOOP;
64.109 - END IF;
64.110 - Installation_SYS.Register_Db_Patch('FNDBAS', '70745','Insert Basic Data Transations for Module Name');
64.111 - COMMIT;
64.112 -END;
64.113 -/
64.114 -
64.115 -EXEC Installation_SYS.Log_Detail_Time_Stamp('ORDER', '100512_90590_ORDER.cdb', 'Timestamp_2');
64.116 -PROMPT Updating the value of column SHIP_ADDR_NO in CUSTOMER_ORDER_DELIVERY_TAB
64.117 -BEGIN
64.118 - IF (NOT Database_SYS.Is_Db_Patch_Registered('ORDER', 90590)) THEN
64.119 - DECLARE
64.120 - column_ Database_SYS.ColRec;
64.121 - table_name_ VARCHAR2(30) := 'CUSTOMER_ORDER_DELIVERY_TAB';
64.122 -
64.123 - BEGIN
64.124 -
64.125 - UPDATE customer_order_delivery_tab cod
64.126 - SET cod.ship_addr_no = (CASE WHEN (cod.delnote_no IS NOT NULL) THEN
64.127 - (SELECT codn.ship_addr_no
64.128 - FROM customer_order_deliv_note_tab codn
64.129 - WHERE codn.delnote_no = cod.delnote_no)
64.130 - WHEN (cod.delnote_no IS NULL AND cod.shipment_id IS NOT NULL) THEN
64.131 - (SELECT ship.ship_addr_no
64.132 - FROM shipment_tab ship
64.133 - WHERE ship.shipment_id = cod.shipment_id)
64.134 - ELSE
64.135 - (SELECT col.ship_addr_no
64.136 - FROM customer_order_line_tab col
64.137 - WHERE col.order_no = cod.order_no
64.138 - AND col.line_no = cod.line_no
64.139 - AND col.rel_no = cod.rel_no
64.140 - AND col.line_item_no = cod.line_item_no)
64.141 - END)
64.142 - WHERE cod.ship_addr_no IS NULL;
64.143 - END;
64.144 - Database_SYS.Register_Db_Patch('ORDER', 90590, 'Adding column SHIP_ADDR_NO into CUSTOMER_ORDER_DELIVERY_TAB');
64.145 - END IF;
64.146 -END;
64.147 -/
64.148 -COMMIT;
64.149 -
64.150 -exec Installation_SYS.Log_Detail_Time_Stamp('ORDER','1340.upg','Timestamp_14');
64.151 -PROMPT Updating the value of D3, DELIVERY_DATE in INVOICE_TAB.
64.152 -UPDATE INVOICE_TAB
64.153 - SET D3 = CASE
64.154 - WHEN CREATOR = 'CUSTOMER_ORDER_INV_HEAD_API' THEN
64.155 - DELIVERY_DATE
64.156 - ELSE
64.157 - D3
64.158 - END,
64.159 - DELIVERY_DATE = CASE
64.160 - WHEN CREATOR = 'CUSTOMER_ORDER_INV_HEAD_API' AND INVOICE_TYPE NOT IN('CUSTORDDEB','CUSTCOLDEB','SELFBILLDEB','SELFBILLCRE','CUSTORDCRE','CUSTCOLCRE','CUSTCOLCOR','CUSTORDCOR') THEN
64.161 - NULL
64.162 - ELSE
64.163 - DELIVERY_DATE
64.164 - END;
64.165 -ROLLBACK;
64.166 -
64.167 -PROMPT Creating &VIEW._DEF view
64.168 -
64.169 -CREATE OR REPLACE VIEW &VIEW._DEF AS
64.170 -SELECT doc_class doc_class,
64.171 - Language_Text_API.Decode(doc_name) doc_name,
64.172 - doc_name db_doc_name,
64.173 - &OBJID objid,
64.174 - &OBJVERSION objversion
64.175 -FROM doc_class_tab
64.176 -WHERE DOC_CLASS > ' '
64.177 -WITH read only;
64.178 -
64.179 -COMMENT ON TABLE &VIEW._DEF
64.180 - IS 'LU=&LU^PROMPT=Document Class^MODULE=&MODULE^';
64.181 -
64.182 -DECLARE
64.183 - execution_date_ DATE := SYSDATE + 30/86400;
64.184 -BEGIN
64.185 - NULL;
64.186 -END;
64.187 -
64.188 -DECLARE
64.189 - CURSOR check_exits(company_id_ VARCHAR2,emp_no_ VARCHAR2)IS
64.190 - SELECT 1
64.191 - FROM company_person_tab
64.192 - WHERE company_id = company_id_
64.193 - AND emp_no = emp_no_;
64.194 - temp_ NUMBER;
64.195 -BEGIN
64.196 -FOR rec_ IN (SELECT * FROM company_emp_tab) LOOP
64.197 - OPEN check_exits(rec_.company,rec_.employee_id);
64.198 - FETCH check_exits INTO temp_;
64.199 - IF (check_exits%NOTFOUND) THEN
64.200 - INSERT INTO company_person_tab(company_id,emp_no,master_employment,operator,rowversion)
64.201 - VALUES (rec_.company,rec_.employee_id,'0',User,rec_.rowversion);
64.202 - END IF;
64.203 - CLOSE check_exits;
64.204 -END LOOP;
64.205 -END;
64.206 -/
64.207 -
64.208 -PROMPT dropping temporary procedure
64.209 -
64.210 -DROP PROCEDURE Temp_Person_Document_Default;
64.211 -
64.212 -BEGIN
64.213 - Object_Connection_SYS.Disable_Logical_Unit('CompanyPerson');
64.214 - Object_Connection_SYS.Enable_Logical_Unit('CompanyPerson', 'DocReferenceObject^', 'COMPANY_PERSON_ALL', 'COMPANY_PERSON_API');
64.215 -END;
64.216 -/
64.217 -
64.218 -CREATE UNIQUE INDEX Report_Grouping_Detail_Ux ON Report_Grouping_Detail_Tab
64.219 - ( company,
64.220 - internal_key )
64.221 - TABLESPACE &FINREP_INDEX
64.222 - STORAGE
64.223 - ( INITIAL &FINREP_LARGE_IX
64.224 -);
64.225 -
64.226 -CREATE VIEW &MODULE_VIEW1
64.227 -( ORDER_NO, RELEASE_NO, SEQUENCE_NO, LINE_ITEM_NO, PART_NO, CONTRACT, CONFIGURATION_ID ,
64.228 -LOCATION_NO, LOT_BATCH_NO, SERIAL_NO, WAIV_DEV_REJ_NO, ENG_CHG_LEVEL, ACTIVITY_SEQ,
64.229 -QTY_ASSIGNED, LAST_ACTIVITY_DATE)
64.230 -AS
64.231 -SELECT
64.232 - ' ', ' ', ' ', 0,' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 0, 0, SYSDATE
64.233 - FROM DUAL WHERE 1 = 2
64.234 -/
64.235 -
64.236 -CREATE OR REPLACE VIEW &VIEW3 AS
64.237 -SELECT contract contract,
64.238 - work_center_no work_center_no,
64.239 - work_day work_day,
64.240 - Work_Center_Int_API.Get_Work_Center_Prod_Line(contract,work_center_no) production_line,
64.241 - Work_Center_Int_API.Get_Department_No(contract,work_center_no) department,
64.242 - Shop_Order_Operation_Int_API.Planned_Load(work_day,contract,work_center_no) planned,
64.243 - Shop_Order_Operation_Int_API.Released_Load(work_day,contract,work_center_no) released,
64.244 - nvl(Crp_Mach_Op_Load_Util_API.Get_Work_Center_Load(contract,work_center_no, work_day, work_day),0) requisitioned,
64.245 - nvl(Crp_Mach_Op_Load_Util_API.Get_W_C_Dop_Load(contract,work_center_no, work_day, work_day),0) unreleased_dop,
64.246 - nvl(CRP_MACH_OP_LOAD_UTIL_API.Get_Crp_Capac_Workday(contract,work_center_no, work_day),0) wc_cap,
64.247 - nvl((nvl(Crp_Mach_Op_Load_Util_API.Get_Work_Center_Load(contract,work_center_no, work_day, work_day),0)
64.248 - + nvl(Crp_Mach_Op_Load_Util_API.Get_W_C_Dop_Load(contract,work_center_no, work_day, work_day),0)
64.249 - + Shop_Order_Operation_Int_API.Planned_Load(work_day,contract,work_center_no)
64.250 - + Shop_Order_Operation_Int_API.Released_Load(work_day,contract,work_center_no))
64.251 - / DECODE(Work_Center_Capacity_API.Get_Range_Avail_Capacity(contract,work_center_no, work_day, work_day), 0, .00001,
64.252 - CRP_MACH_OP_LOAD_UTIL_API.Get_Crp_Capac_Workday(contract,work_center_no, work_day)) * 100,0) load_pct,
64.253 - objid objid,
64.254 - objversion objversion
64.255 -FROM CRP_MACH_OP_LOAD2;
64.256 -
64.257 -CREATE TRIGGER VMOL_BASE_FIELDDEPVALUES_TIB BEFORE INSERT ON
64.258 - VMOL_BASE_FIELDDEPVALUES REFERENCING OLD AS OLDREC NEW AS NEWREC FOR EACH ROW
64.259 - BEGIN
64.260 - SELECT VMOL_ID_SEQ.NEXTVAL INTO :NEWREC.ID_ FROM DUAL;
64.261 - END;
64.262 -/
64.263 -
64.264 -BEGIN
64.265 -EXECUTE IMMEDIATE('
64.266 - create sequence vmo_gss_usermap_seq
64.267 - minvalue 1
64.268 - nomaxvalue
64.269 - start with 1
64.270 - increment by 1
64.271 - nocache
64.272 - order
64.273 -');
64.274 -EXCEPTION
64.275 - WHEN OTHERS THEN
64.276 - --OK if ORA -00955: name is already used by an existing object
64.277 - IF INSTR(SQLERRM,'-00955') != 0 THEN NULL;
64.278 - ELSE raise_application_error ( -20000, SQLERRM );
64.279 - END IF;
64.280 -END;
64.281 -/
64.282 -
64.283 -create or replace trigger VMO_BASE_GSS_SYNCED_RECORDS_TR before
64.284 -insert or update
64.285 -on VMO_BASE_GSS_SYNCED_RECORDS referencing old as oldrec new as newrec for each row
64.286 -
64.287 ---This trigger is only used to make sure that an old version of GSS still can be tested
64.288 ---against this database after this database has been upgraded to version 3.15.1.15
64.289 ---Reason is that GSS_USER is part of the primary key and is not set by previous versions.
64.290 -
64.291 -declare
64.292 -
64.293 - FUNCTION GET_GSS_USER (
64.294 - GSS_ID_ in VARCHAR2,
64.295 - VMO_TABLE_ in VARCHAR2,
64.296 - GSS_TABLE_ in VARCHAR2,
64.297 - VMO_USER_ in VARCHAR2
64.298 - ) RETURN VARCHAR2 IS
64.299 -
64.300 - GSS_USER_ VARCHAR2(32);
64.301 -
64.302 - BEGIN
64.303 - SELECT U.GSS_USER INTO GSS_USER_
64.304 - FROM VMO_BASE_GSS_USERMAP U
64.305 - WHERE U.GSS_ID = GSS_ID_
64.306 - AND U.VMO_TABLE = VMO_TABLE_
64.307 - AND U.GSS_TABLE = GSS_TABLE_
64.308 - AND U.VMO_USER = VMO_USER_
64.309 - AND U.ACTIVE = 1;
64.310 -
64.311 - RETURN GSS_USER_;
64.312 -
64.313 - EXCEPTION WHEN OTHERS THEN
64.314 - RETURN NULL; --Should not be happen in working configuration.
64.315 -
64.316 - END GET_GSS_USER;
64.317 -
64.318 -begin
64.319 -
64.320 - IF :newREC.GSS_USER IS NULL THEN
64.321 - :newREC.GSS_USER := GET_GSS_USER(:newREC.GSS_ID, :newREC.VMO_TABLE, :newREC.GSS_TABLE, :newREC.IDUSER);
64.322 - END IF;
64.323 -
64.324 -end;
64.325 -/
64.326 -
64.327 -
64.328 -UPDATE search_domain_attribute_tab
64.329 -SET model_datatype = CASE datatype
64.330 - WHEN 'VARCHAR2' THEN 'TEXT'
64.331 - WHEN 'CHAR' THEN 'TEXT'
64.332 - WHEN 'NUMBER' THEN 'NUMBER'
64.333 - WHEN 'DATE' THEN 'DATE'
64.334 - WHEN 'CLOB' THEN 'LONG_TEXT'
64.335 - WHEN 'BLOB' THEN 'BINARY'
64.336 - ELSE 'TEXT'
64.337 - END
64.338 -WHERE model_datatype IS NULL
64.339 -/
64.340 -
64.341 -
65.1 --- a/PLSQL/Lexer/test/unit/src/org/netbeans/modules/plsql/lexer/test2.apy Wed May 15 16:07:35 2013 +0200
65.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
65.3 @@ -1,916 +0,0 @@
65.4 -
65.5 -PROCEDURE Evaluate_Level___ (
65.6 - evaluation_rec_ IN OUT evaluation_record,
65.7 - eval_log_rec_ IN OUT config_evaluation_api.evaluation_log_record,
65.8 - complete_eval_log_rec_ IN OUT config_evaluation_api.complete_evaluation_log_record,
65.9 - parent_part_ IN VARCHAR2 )
65.10 -IS
65.11 - operation_rec_ Routing_Int_API.operation_record;
65.12 - oper_work_guide_rec_ Routing_Int_API.oper_work_guide_record;
65.13 - oper_tool_rec_ Routing_Int_API.oper_tool_record;
65.14 - component_rec_ Manuf_Structure_Int_API.component_record;
65.15 - comp_work_guide_rec_ Manuf_Structure_Int_API.comp_work_guide_record;
65.16 - config_spec_rec_ Config_Evaluation_API.eval_config_spec_record;
65.17 - parent_supply_rec_ interim_order_tab%ROWTYPE;
65.18 - --
65.19 - oper_valid_ BOOLEAN;
65.20 - supply_interim_order_no_ interim_order_tab.interim_order_no%TYPE;
65.21 - configurable_ VARCHAR2(20);
65.22 - dop_part_ VARCHAR2(20);
65.23 - part_type_code_ VARCHAR2(20);
65.24 - comp_bom_type_db_ VARCHAR2(20);
65.25 - comp_bom_type_ VARCHAR2(200);
65.26 - comp_eng_chg_level_ manuf_structure_tab.eng_chg_level%TYPE;
65.27 - structure_alternative_no_ manuf_struct_alternate_tab.alternative_no%TYPE;
65.28 - comp_struct_alternative_no_ manuf_struct_alternate_tab.alternative_no%TYPE;
65.29 - comp_routing_revision_ routing_head_tab.routing_revision%TYPE;
65.30 - routing_alternative_no_ routing_alternate_tab.alternative_no%TYPE;
65.31 - comp_rout_alternative_no_ routing_alternate_tab.alternative_no%TYPE;
65.32 -
65.33 -
65.34 - e_row_ NUMBER;
65.35 - comp_alt_state_ manuf_struct_alternate_tab.rowstate%TYPE;
65.36 - comp_rout_alt_state_ routing_alternate_tab.rowstate%TYPE;
65.37 - get_comp_flag_ BOOLEAN;
65.38 - qty_avail_ NUMBER;
65.39 - primary_comp_qty_ NUMBER;
65.40 - phatom_part_exist_ BOOLEAN;
65.41 - parent_interim_order_no_ VARCHAR2(12);
65.42 - Parent_part_mrp_Code_ VARCHAR2(2);
65.43 -
65.44 -
65.45 - multi_site_part_exist_ BOOLEAN := FALSE;
65.46 - stmt_ VARCHAR2(2000);
65.47 - check_source_ VARCHAR2(5) := 'FALSE';
65.48 -
65.49 - interim_required_date_ Date;--interim_demand_head_tab.required_date%TYPE;
65.50 - interim_start_date_ interim_order_tab.start_date%TYPE;
65.51 - parent_supply_date_ interim_order_tab.supply_date%TYPE;
65.52 - parent_start_date_ interim_order_tab.start_date%TYPE;
65.53 - parent_order_no_ interim_order_tab.interim_order_no%TYPE;
65.54 - line_item_no_ interim_order_component_tab.line_item_no%TYPE;
65.55 - calendar_id_ work_time_calendar_tab.calendar_id%TYPE;
65.56 - leadtime_offset_ NUMBER;
65.57 - operation_no_ NUMBER;
65.58 - found_ BOOLEAN;
65.59 -
65.60 - CURSOR get_line_item_no(interim_header_ IN VARCHAR2,interim_order_no_ IN VARCHAR2) IS
65.61 - SELECT leadtime_offset,line_item_no, supply_interim_order_no
65.62 - FROM interim_order_component_tab
65.63 - WHERE interim_header_id = interim_header_
65.64 - AND interim_order_no = interim_order_no_;
65.65 - CURSOR get_parent_supply IS
65.66 - SELECT *
65.67 - FROM interim_order_tab
65.68 - WHERE interim_header_id = evaluation_rec_.interim_header_id
65.69 - AND interim_structure_level = evaluation_rec_.current_level;
65.70 -BEGIN
65.71 - General_SYS.Init_Method(lu_name_, '&PKG', 'Evaluate_Level___',TRUE);
65.72 -
65.73 --- FOR-LOOP #1: Loop thru interim order records inserted by calling method.
65.74 - FOR parent_supply_ IN get_parent_supply LOOP
65.75 - -- Set parent_supply_rec_ as Parent_supply_
65.76 - parent_supply_rec_ := parent_supply_;
65.77 - --
65.78 - configurable_ := Part_Catalog_API.Get_Configurable_Db(parent_supply_.part_no);
65.79 - --
65.80 - dop_part_ := Inventory_Part_Planning_API.Get_Order_Requisition_Db(
65.81 - parent_supply_.contract,
65.82 - parent_supply_.part_no);
65.83 - --
65.84 - part_type_code_ := Inventory_Part_API.Get_type_code_Db(parent_supply_.contract,
65.85 - parent_supply_.part_no);
65.86 -
65.87 - dbms_output.put_line('-----> parent supply part no = ' ||parent_supply_.part_no );
65.88 - dbms_output.put_line('---> before ctp planned = .... '|| evaluation_rec_.ctp_planned);
65.89 - --
65.90 - IF (part_type_code_ IN ( '1','2')) THEN
65.91 - comp_bom_type_db_ := 'M';
65.92 - ELSIF (part_type_code_ IN ('3', '4')) THEN
65.93 - comp_bom_type_db_ := 'P';
65.94 - END IF;
65.95 - comp_bom_type_ := Shop_Ord_Code_API.Decode(comp_bom_type_db_);
65.96 - --
65.97 --- begin CTP
65.98 - dbms_output.put_line('---> before ctp part struct level = .... '|| parent_supply_.interim_structure_level);
65.99 -
65.100 --- If ctp planned, check multi-site and if true, create interim demand.
65.101 - multi_site_part_exist_ := FALSE;
65.102 - IF evaluation_rec_.ctp_planned = 1 AND
65.103 - --parent_supply_.interim_structure_level > 0 AND
65.104 - part_type_code_ IN ('3','4') THEN
65.105 -
65.106 - -- check for multi-site supplies...
65.107 - dbms_output.put_line('---> before check_source installed = .... ');
65.108 - check_source_ := 'FALSE';
65.109 - IF Dictionary_SYS.Logical_Unit_Is_Installed('SupplySourcePartManager') THEN
65.110 - stmt_ := 'BEGIN :check_source := Supply_Source_Part_Manager_API.Is_Part_Internally_Sourced(:contract, :part_no); END;';
65.111 - -- ifs_assert_safe pemase 20051221
65.112 - EXECUTE IMMEDIATE stmt_
65.113 - USING OUT check_source_,
65.114 - IN parent_supply_.contract,
65.115 - IN parent_supply_.part_no;
65.116 - END IF;
65.117 - dbms_output.put_line('---> check source = '|| check_source_);
65.118 -
65.119 - IF check_source_ = 'TRUE' THEN
65.120 - multi_site_part_exist_ := TRUE;
65.121 -
65.122 - Interim_Ctp_Manager_API.Create_Child_Interim_Demand(evaluation_rec_.interim_header_id,
65.123 - parent_supply_.interim_order_no,
65.124 - parent_supply_.part_no,
65.125 - parent_supply_.configuration_id,
65.126 - parent_supply_.supply_date,
65.127 - parent_supply_.supply_qty,
65.128 - evaluation_rec_.interim_demand_usage_type_db,
65.129 - evaluation_rec_.identity1,
65.130 - evaluation_rec_.identity2,
65.131 - evaluation_rec_.identity3,
65.132 - evaluation_rec_.identity4,
65.133 - NULL, -- lot_batch_no_
65.134 - NULL, -- serial_begin
65.135 - NULL, -- serial_end
65.136 - 'COMPANY OWNED', -- part_ownership
65.137 - NULL, -- owning_customer_no_
65.138 - parent_supply_.interim_structure_level,
65.139 - evaluation_rec_.ctp_level
65.140 - );
65.141 -
65.142 - END IF; -- check_source = TRUE
65.143 -
65.144 - END IF; -- IF evaluation_rec_.ctp_planned = 1 AND parent_supply_.interim_structure_level > 0 THEN
65.145 -
65.146 --- No further evaluation if multisite part.
65.147 - IF NOT multi_site_part_exist_ THEN
65.148 - dbms_output.put_line('---> not multi site part = ');
65.149 -
65.150 --- IF-ELSIF #1: If configured/manufactured or DOP requistion/manufactured,
65.151 --- get buildable manuf structure revision.
65.152 - IF ((configurable_ = 'CONFIGURED') AND (part_type_code_ = '1')) OR
65.153 - ((dop_part_ = 'D') AND (part_type_code_ = '1')) THEN
65.154 - IF (evaluation_rec_.alternate_status = 'Buildable') THEN
65.155 - comp_eng_chg_level_ := NULL;
65.156 - comp_struct_alternative_no_ := NULL;
65.157 -
65.158 - IF Manuf_Part_Attribute_API.Get_Structure_Effectivity(parent_supply_.contract, parent_supply_.part_no)
65.159 - = Effectivity_Control_API.Decode('SERIAL') THEN
65.160 -
65.161 - Manuf_Structure_Util_API.Get_Buildable_Date_Alt (comp_eng_chg_level_,
65.162 - comp_struct_alternative_no_,
65.163 - parent_supply_.contract,
65.164 - parent_supply_.part_no,
65.165 - comp_bom_type_,
65.166 - parent_supply_.start_date );
65.167 -
65.168 -
65.169 - ELSE
65.170 - Manuf_Structure_Int_API.Get_Buildable_Alternative (comp_eng_chg_level_,
65.171 - comp_struct_alternative_no_,
65.172 - parent_supply_.contract,
65.173 - parent_supply_.part_no,
65.174 - comp_bom_type_,
65.175 - parent_supply_.start_date,
65.176 - evaluation_rec_.serial_begin,
65.177 - evaluation_rec_.serial_end );
65.178 - END IF;
65.179 -
65.180 - END IF;
65.181 - evaluation_rec_.configuration_id := parent_supply_.configuration_id;
65.182 - config_spec_rec_ := NULL;
65.183 - config_spec_rec_.spec_row_count := 0;
65.184 -
65.185 --- Retrieve configured part routing if manufactured part.
65.186 - IF (comp_bom_type_db_ = 'M') THEN
65.187 - Config_Evaluation_API.Determine_Routing (routing_alternative_no_,
65.188 - parent_supply_.routing_revision,
65.189 - operation_rec_,
65.190 - oper_work_guide_rec_,
65.191 - oper_tool_rec_,
65.192 - config_spec_rec_,
65.193 - complete_eval_log_rec_,
65.194 - eval_log_rec_,
65.195 - parent_supply_.contract,
65.196 - parent_supply_.part_no,
65.197 - parent_supply_.start_date,
65.198 - parent_supply_.order_code,
65.199 - evaluation_rec_.alternate_status,
65.200 - evaluation_rec_.configuration_id );
65.201 - IF (NVL(operation_rec_.operation_row_count,0) > 0) THEN
65.202 - IF (routing_alternative_no_ IS NOT NULL) THEN
65.203 -
65.204 - FOR ops IN 1..operation_rec_.operation_row_count LOOP
65.205 - dbms_output.Put_Line('>>>>>> ' ||operation_rec_.operation_no_tab(ops) || operation_rec_.mach_run_factor_tab(ops));
65.206 - END LOOP;
65.207 - -- Note; Set Routing_alternative on InterimOrder After DetermineRouting
65.208 - Interim_Order_API.Set_Rout_Rev_Alternative__(evaluation_rec_.interim_header_id,
65.209 - parent_supply_.interim_order_no,
65.210 - parent_supply_.routing_revision,
65.211 - routing_alternative_no_ );
65.212 - --
65.213 - IF (NOT Routing_Int_API.Is_Routing_Buildable(parent_supply_.contract,
65.214 - parent_supply_.part_no,
65.215 - parent_supply_.routing_revision,
65.216 - comp_bom_type_,
65.217 - routing_alternative_no_)) THEN
65.218 - Set_Rout_Rev_Alt_Warning___ (complete_eval_log_rec_,
65.219 - parent_supply_.contract,
65.220 - parent_supply_.part_no,
65.221 - parent_supply_.routing_revision,
65.222 - routing_alternative_no_,
65.223 - comp_bom_type_db_);
65.224 - END IF;
65.225 - --
65.226 - END IF;
65.227 - END IF;
65.228 - -- Note; Create Operations that is evaluated
65.229 - Create_Interim_Routing___ (operation_rec_,
65.230 - oper_work_guide_rec_,
65.231 - oper_tool_rec_,
65.232 - evaluation_rec_.interim_header_id,
65.233 - parent_supply_.interim_order_no);
65.234 -
65.235 - END IF; -- of IF (comp_bom_type_db_ = 'M') THEN
65.236 - -- Correct the top order start date before determine the structure
65.237 - IF parent_supply_.interim_order_no ='1' THEN
65.238 - Interim_Order_API.Set_Interim_Order_Dates__ (evaluation_rec_.interim_header_id,
65.239 - parent_supply_.interim_order_no,
65.240 - parent_supply_.supply_date);
65.241 - parent_start_date_ := interim_order_api.get_start_date( evaluation_rec_.interim_header_id, parent_supply_.interim_order_no);
65.242 - ELSE
65.243 - parent_start_date_ := parent_supply_.start_date;
65.244 - END IF;
65.245 -
65.246 --- Retrieve the components for configured part.
65.247 - Config_Evaluation_API.Determine_Structure (structure_alternative_no_,
65.248 - parent_supply_.eng_chg_level,
65.249 - component_rec_,
65.250 - comp_work_guide_rec_,
65.251 - config_spec_rec_,
65.252 - complete_eval_log_rec_,
65.253 - eval_log_rec_,
65.254 - evaluation_rec_.contract,
65.255 - parent_supply_.part_no,
65.256 - parent_start_date_,
65.257 - parent_supply_.supply_qty,
65.258 - parent_supply_.order_code,
65.259 - evaluation_rec_.alternate_status,
65.260 - evaluation_rec_.configuration_id );
65.261 - --
65.262 - -- Note; Set Structure_alternative on InterimOrder After DetermineStructure
65.263 - IF (structure_alternative_no_ IS NOT NULL) THEN
65.264 - Interim_Order_API.Set_Struct_Alternative_No__(evaluation_rec_.interim_header_id,
65.265 - parent_supply_.interim_order_no,
65.266 - structure_alternative_no_ );
65.267 - END IF;
65.268 -
65.269 --- IF-ELSIF #1: Else if not configured part, get routing and manuf structure.
65.270 - ELSIF (Part_Catalog_API.Get_Configurable_Db(evaluation_rec_.part_no) = 'NOT CONFIGURED') THEN
65.271 - -- Note; If interim demand head part is not configured then do normal explosion
65.272 - -- Note; otherwise only explode Configured and manufactured Dop parts.
65.273 - evaluation_rec_.configuration_id := NULL;
65.274 - config_spec_rec_ := NULL;
65.275 - config_spec_rec_.spec_row_count := 0;
65.276 -
65.277 --- Get routing revision and alternate for non-configured manufactured part.
65.278 - comp_routing_revision_ := NULL;
65.279 - comp_rout_alternative_no_ := NULL;
65.280 - IF (comp_bom_type_db_ = 'M') THEN
65.281 - IF (evaluation_rec_.alternate_status = 'Buildable') THEN
65.282 - Routing_Int_API.Get_Buildable_Alternative( comp_routing_revision_,
65.283 - comp_rout_alternative_no_,
65.284 - parent_supply_.contract,
65.285 - parent_supply_.part_no,
65.286 - comp_bom_type_,
65.287 - parent_supply_.start_date,
65.288 - evaluation_rec_.serial_begin,
65.289 - evaluation_rec_.serial_end );
65.290 -
65.291 - IF comp_routing_revision_ IS NULL THEN
65.292 - Error_Sys.Record_General(lu_name_, 'NOBUILDALTFOUND: No Buildable routing revision/alternative exists for part :P1 site :P2 on the date :P3.'
65.293 - ,parent_supply_.part_no,parent_supply_.contract,parent_supply_.start_date);
65.294 - END IF ;
65.295 - ELSE
65.296 -
65.297 - Routing_Int_API.Get_Any_Revision_Alternative( comp_routing_revision_,
65.298 - comp_rout_alternative_no_,
65.299 - comp_rout_alt_state_,
65.300 - parent_supply_.contract,
65.301 - parent_supply_.part_no,
65.302 - evaluation_rec_.mfg_order_code,
65.303 - parent_supply_.start_date,
65.304 - evaluation_rec_.serial_begin,
65.305 - evaluation_rec_.serial_end );
65.306 -
65.307 - IF comp_routing_revision_ IS NULL THEN
65.308 - Error_Sys.Record_General(lu_name_, 'NOREVALTFOUND: No Tentative/Plannable/Buildable structure revision/alternative exists for part :P1 site :P2 on the date :P3.'
65.309 - ,parent_supply_.part_no,parent_supply_.contract,parent_supply_.start_date);
65.310 - END IF ;
65.311 - END IF;
65.312 -
65.313 - Manuf_Structure_Int_API.Get_Buildable_Alternative(comp_eng_chg_level_,
65.314 - comp_struct_alternative_no_,
65.315 - parent_supply_.contract,
65.316 - parent_supply_.part_no,
65.317 - comp_bom_type_,
65.318 - parent_supply_.start_date,
65.319 - evaluation_rec_.serial_begin,
65.320 - evaluation_rec_.serial_end );
65.321 - IF comp_struct_alternative_no_ IS NULL THEN
65.322 - Error_Sys.Record_General(lu_name_, 'NOBUILDSTRUCTFOUND: No Buildable Structure/Alternate exists for part :P1 site :P2 on the date :P3 .',
65.323 - parent_supply_.part_no, parent_supply_.contract, parent_supply_.start_date);
65.324 - END IF;
65.325 - -- Get routing revision and alternate for non-configured purchased part.
65.326 - ELSIF (comp_bom_type_db_ = 'P') THEN
65.327 - comp_routing_revision_ := Routing_Int_API.Get_Revision_By_Date (parent_supply_.contract,
65.328 - parent_supply_.part_no,
65.329 - comp_bom_type_,
65.330 - parent_supply_.start_date );
65.331 - END IF; -- of IF (comp_bom_type_db_ = 'M') THEN
65.332 -
65.333 --- If manufactured, retrieve routing operations for non-configured part.
65.334 - IF (comp_bom_type_db_ = 'M') THEN
65.335 - Routing_Int_API.Determine_Mfgstd_Routing (operation_rec_,
65.336 - oper_work_guide_rec_,
65.337 - oper_tool_rec_,
65.338 - parent_supply_.contract,
65.339 - parent_supply_.part_no,
65.340 - NVL(comp_routing_revision_,parent_supply_.routing_revision),
65.341 - Shop_Ord_Code_API.Decode(parent_supply_.order_code),
65.342 - NVL(comp_rout_alternative_no_,parent_supply_.routing_alternative_no));
65.343 - --
65.344 - IF (NVL(operation_rec_.operation_row_count,0) > 0) THEN
65.345 - IF (comp_rout_alternative_no_ IS NOT NULL) THEN
65.346 - -- Note; Set Routing_alternative on InterimOrder After DetermineRouting
65.347 - Interim_Order_API.Set_Rout_Rev_Alternative__(evaluation_rec_.interim_header_id,
65.348 - parent_supply_.interim_order_no,
65.349 - comp_routing_revision_,
65.350 - comp_rout_alternative_no_ );
65.351 - END IF;
65.352 - END IF;
65.353 -
65.354 - -- Note; Create Operations that is evaluated
65.355 - Create_Interim_Routing___ (operation_rec_,
65.356 - oper_work_guide_rec_,
65.357 - oper_tool_rec_,
65.358 - evaluation_rec_.interim_header_id,
65.359 - parent_supply_.interim_order_no);
65.360 - END IF;
65.361 -
65.362 --- Retrieve components for non-configured part.
65.363 - Manuf_Structure_Int_API.Determine_Mfgstd_Structure (component_rec_,
65.364 - comp_work_guide_rec_,
65.365 - parent_supply_.contract,
65.366 - parent_supply_.part_no,
65.367 - parent_supply_.eng_chg_level,
65.368 - Shop_Ord_Code_API.Decode(parent_supply_.order_code),
65.369 - parent_supply_.structure_alternative_no,
65.370 - parent_supply_.start_date,
65.371 - parent_supply_.supply_qty);
65.372 - END IF; -- of IF ((configurable_ = 'CONFIGURED') AND (part_type_code_ = '1')) OR...
65.373 --- End of IF-ELSIF #1
65.374 -
65.375 - calendar_id_ := Site_Api.Get_Manuf_Calendar_Id(evaluation_rec_.contract);
65.376 -
65.377 --- If top-level order, set dates from there, else calculate from top-level order.
65.378 - IF parent_supply_.interim_order_no ='1' THEN
65.379 - Interim_Order_API.Set_Interim_Order_Dates__ ( evaluation_rec_.interim_header_id,
65.380 - parent_supply_.interim_order_no, parent_supply_.supply_date);
65.381 - parent_start_date_ := Interim_Order_API.Get_Start_Date( evaluation_rec_.interim_header_id, parent_supply_.interim_order_no);
65.382 - ELSE
65.383 - parent_order_no_ := interim_order_api.get_parent_interim_order_no( evaluation_rec_.interim_header_id, parent_supply_.interim_order_no);
65.384 - parent_supply_date_ := interim_order_api.get_supply_date( evaluation_rec_.interim_header_id, parent_order_no_);
65.385 - parent_start_date_ := interim_order_api.get_start_date( evaluation_rec_.interim_header_id, parent_order_no_);
65.386 -
65.387 - FOR component_line_item_rec_ IN get_line_item_no(evaluation_rec_.interim_header_id, parent_order_no_) LOOP
65.388 - IF (component_line_item_rec_.supply_interim_order_no = parent_supply_.interim_order_no) THEN
65.389 - line_item_no_ := component_line_item_rec_.line_item_no;
65.390 - leadtime_offset_ := component_line_item_rec_.leadtime_offset;
65.391 - END IF;
65.392 - END LOOP;
65.393 - IF (leadtime_offset_ > 0) THEN
65.394 - interim_required_date_ := work_time_calendar_api.get_next_work_day(calendar_id_, calculate_start_date__(evaluation_rec_.contract,parent_supply_date_ , leadtime_offset_));
65.395 - interim_required_date_ := Greatest(interim_required_date_, parent_start_date_);
65.396 - ELSE
65.397 - interim_required_date_ := parent_start_date_;
65.398 - END IF;
65.399 - Interim_Order_API.Set_Interim_Order_Dates__(evaluation_rec_.interim_header_id,
65.400 - parent_supply_.interim_order_no,
65.401 - Work_time_Calendar_API.Get_Previous_Work_Day(calendar_id_,interim_required_date_));
65.402 - END IF;
65.403 -
65.404 --- FOR-LOOP #2: Loop thru retrieved component records.
65.405 - FOR i IN 1..NVL(component_rec_.comp_row_count,0) LOOP
65.406 - evaluation_rec_.interim_supply_date := parent_supply_.supply_date;
65.407 - part_type_code_ := Inventory_Part_API.Get_type_code_Db(component_rec_.contract_tab(i),
65.408 - component_rec_.component_part_tab(i));
65.409 -
65.410 - calendar_id_ := Site_Api.Get_Manuf_Calendar_Id(component_rec_.contract_tab(i));
65.411 -
65.412 - configurable_ := Part_Catalog_API.Get_Configurable_Db(component_rec_.component_part_tab(i));
65.413 -
65.414 - dop_part_ := Inventory_Part_Planning_API.Get_Order_Requisition_Db(
65.415 - component_rec_.contract_tab(i),
65.416 - component_rec_.component_part_tab(i));
65.417 -
65.418 - comp_routing_revision_ := NULL;
65.419 - comp_rout_alternative_no_ := NULL;
65.420 -
65.421 --- If by-product component line, then create warning and ignore.
65.422 - IF (component_rec_.qty_per_assembly_tab(i) < 0) THEN
65.423 - e_row_ := NVL(complete_eval_log_rec_.warning.warning_row_count,0) + 1;
65.424 - complete_eval_log_rec_.warning.warning_row_count := e_row_;
65.425 -
65.426 - complete_eval_log_rec_.warning.explosion_row_type_db(e_row_) := 'PartRevision';
65.427 - complete_eval_log_rec_.warning.contract(e_row_) := component_rec_.contract_tab(i);
65.428 - complete_eval_log_rec_.warning.part_no(e_row_) := parent_part_;
65.429 - complete_eval_log_rec_.warning.eng_chg_level(e_row_) := NULL;
65.430 - complete_eval_log_rec_.warning.routing_revision(e_row_) := NULL;
65.431 - complete_eval_log_rec_.warning.bom_type_db(e_row_) := NULL;
65.432 - complete_eval_log_rec_.warning.routing_alternative_no(e_row_) := NULL;
65.433 - complete_eval_log_rec_.warning.operation_id(e_row_) := NULL;
65.434 - complete_eval_log_rec_.warning.routing_guideline_no(e_row_) := NULL;
65.435 - complete_eval_log_rec_.warning.tool_sequence(e_row_) := NULL;
65.436 - complete_eval_log_rec_.warning.structure_alternative_no(e_row_) := NULL;
65.437 - complete_eval_log_rec_.warning.line_item_no(e_row_) := NULL;
65.438 - complete_eval_log_rec_.warning.structure_guideline_no(e_row_) := NULL;
65.439 - complete_eval_log_rec_.warning.action_id(e_row_) := NULL;
65.440 - complete_eval_log_rec_.warning.action_line_no(e_row_) := NULL;
65.441 - complete_eval_log_rec_.warning.condition_id(e_row_) := NULL;
65.442 - complete_eval_log_rec_.warning.condition_line_no(e_row_) := NULL;
65.443 - complete_eval_log_rec_.warning.formula_id(e_row_) := NULL;
65.444 -
65.445 - complete_eval_log_rec_.warning.warning_message(e_row_) :=
65.446 - Language_SYS.Translate_Constant(lu_name_, 'IOMNOBYPRODUCTS: Component part :P1 as a by-product is not handled by DOP. Hence ignored.',
65.447 - Fnd_Session_API.Get_Language, component_rec_.component_part_tab(i));
65.448 - END IF; -- of IF (component_rec_.qty_per_assembly_tab(i) < 0) THEN...
65.449 -
65.450 - phatom_part_exist_ := FALSE;
65.451 - parent_interim_order_no_ := parent_supply_.interim_order_no;
65.452 - WHILE (parent_interim_order_no_ > 0) and (NOT phatom_part_exist_ ) LOOP
65.453 - parent_part_mrp_code_ := Inventory_Part_Planning_API.Get_Mrp_Order_Code(evaluation_rec_.contract,Interim_Order_Api.Get_Part_No(parent_supply_.interim_header_id,parent_interim_order_no_));
65.454 - IF parent_part_mrp_code_ = 'P' then
65.455 - phatom_part_exist_ := TRUE;
65.456 - END IF;
65.457 - parent_interim_order_no_ := Interim_Order_Api.Get_Parent_Interim_Order_No(parent_supply_.interim_header_id,parent_interim_order_no_);
65.458 - END LOOP;
65.459 -
65.460 --- If expense component line, then create warning and ignore.
65.461 - IF (part_type_code_ = '6') THEN
65.462 - e_row_ := NVL(complete_eval_log_rec_.warning.warning_row_count,0) + 1;
65.463 - complete_eval_log_rec_.warning.warning_row_count := e_row_;
65.464 -
65.465 - complete_eval_log_rec_.warning.explosion_row_type_db(e_row_) := 'ExpensePart';
65.466 - complete_eval_log_rec_.warning.contract(e_row_) := component_rec_.contract_tab(i);
65.467 - complete_eval_log_rec_.warning.part_no(e_row_) := component_rec_.component_part_tab(i);
65.468 - complete_eval_log_rec_.warning.eng_chg_level(e_row_) := NULL;
65.469 - complete_eval_log_rec_.warning.routing_revision(e_row_) := NULL;
65.470 - complete_eval_log_rec_.warning.bom_type_db(e_row_) := NULL;
65.471 - complete_eval_log_rec_.warning.routing_alternative_no(e_row_) := NULL;
65.472 - complete_eval_log_rec_.warning.operation_id(e_row_) := NULL;
65.473 - complete_eval_log_rec_.warning.routing_guideline_no(e_row_) := NULL;
65.474 - complete_eval_log_rec_.warning.tool_sequence(e_row_) := NULL;
65.475 - complete_eval_log_rec_.warning.structure_alternative_no(e_row_) := NULL;
65.476 - complete_eval_log_rec_.warning.line_item_no(e_row_) := NULL;
65.477 - complete_eval_log_rec_.warning.structure_guideline_no(e_row_) := NULL;
65.478 - complete_eval_log_rec_.warning.action_id(e_row_) := NULL;
65.479 - complete_eval_log_rec_.warning.action_line_no(e_row_) := NULL;
65.480 - complete_eval_log_rec_.warning.condition_id(e_row_) := NULL;
65.481 - complete_eval_log_rec_.warning.condition_line_no(e_row_) := NULL;
65.482 - complete_eval_log_rec_.warning.formula_id(e_row_) := NULL;
65.483 -
65.484 - complete_eval_log_rec_.warning.warning_message(e_row_) :=
65.485 - Language_SYS.Translate_Constant(lu_name_, 'IOMINVPARTTYPE: Component part :P1 with part type Expense is not handled by DOP. Hence ignored.',
65.486 - Fnd_Session_API.Get_Language, component_rec_.component_part_tab(i));
65.487 -
65.488 --- Else if not phantom parent part, process.
65.489 - ELSIF (parent_interim_order_no_ = 0) THEN
65.490 - IF (part_type_code_ IN ( '1','2')) THEN
65.491 - comp_bom_type_db_ := 'M';
65.492 - ELSIF (part_type_code_ IN ('3', '4')) THEN
65.493 - comp_bom_type_db_ := 'P';
65.494 - END IF;
65.495 - comp_bom_type_ := Shop_Ord_Code_API.Decode(comp_bom_type_db_);
65.496 -
65.497 --- IF-ELSE #4 If phantom/blow-thru, process.
65.498 - IF (component_rec_.mrp_order_code_tab(i) IN ('P','K') AND
65.499 - (part_type_code_ = '1')) THEN
65.500 - operation_no_:=component_rec_.comp_operation_no_tab(i);
65.501 - get_comp_flag_ := TRUE;
65.502 - IF component_rec_.mrp_order_code_tab(i) = 'P' THEN
65.503 - qty_avail_ :=
65.504 - inventory_part_in_stock_api.Get_Inventory_Qty_Onhand( component_rec_.contract_tab(i), component_rec_.component_part_tab(i), NULL) -
65.505 - inventory_part_in_stock_api.Get_Inventory_Qty_Reserved( component_rec_.contract_tab(i),component_rec_.component_part_tab(i), NULL)-
65.506 - inventory_part_in_stock_api.Get_Inventory_Qty_Rejected( component_rec_.contract_tab(i), component_rec_.component_part_tab(i),NULL, NULL);
65.507 -
65.508 - primary_comp_qty_ := (((( component_rec_.qty_required_tab(i))
65.509 - / (1 - ( component_rec_.shrinkage_factor_tab(i) / 100)))
65.510 - + component_rec_.component_scrap_tab(i)));
65.511 - IF (qty_avail_ >= primary_comp_qty_ ) OR (component_rec_.consumption_item_db_tab(i) = 'Not Consumed') THEN
65.512 - get_comp_flag_ := FALSE;
65.513 - ELSE
65.514 - get_comp_flag_ := TRUE;
65.515 - END IF;
65.516 - END IF;
65.517 -
65.518 - IF get_comp_flag_ = TRUE THEN
65.519 - Process_Evaluate_Phantom___ (evaluation_rec_,
65.520 - parent_supply_rec_,
65.521 - config_spec_rec_,
65.522 - eval_log_rec_,
65.523 - complete_eval_log_rec_,
65.524 - component_rec_.contract_tab(i),
65.525 - component_rec_.component_part_tab(i),
65.526 - component_rec_.date_required_tab(i),
65.527 - component_rec_.qty_required_tab(i),
65.528 - comp_bom_type_db_,
65.529 - evaluation_rec_.alternate_status,
65.530 - component_rec_.configuration_id_tab(i),
65.531 - operation_no_);
65.532 - ELSIF get_comp_flag_ = FALSE THEN
65.533 - interim_required_date_ := Work_time_Calendar_API.Get_Previous_Work_Day(calendar_id_,interim_order_api.get_start_date(evaluation_rec_.interim_header_id,parent_supply_.interim_order_no));
65.534 - interim_start_date_ := Least( interim_required_date_,
65.535 - component_rec_.date_required_tab(i) );
65.536 - supply_interim_order_no_ := NULL;
65.537 - Interim_Order_API.New(supply_interim_order_no_,
65.538 - evaluation_rec_.interim_header_id,
65.539 - parent_supply_.interim_order_no,
65.540 - evaluation_rec_.next_level,
65.541 - component_rec_.contract_tab(i),
65.542 - component_rec_.component_part_tab(i),
65.543 - component_rec_.qty_required_tab(i),
65.544 - interim_required_date_,
65.545 - interim_start_date_,
65.546 - comp_eng_chg_level_,
65.547 - comp_bom_type_db_,
65.548 - comp_struct_alternative_no_,
65.549 - comp_routing_revision_,
65.550 - comp_rout_alternative_no_,
65.551 - component_rec_.promise_planned_db_tab(i),
65.552 - component_rec_.configuration_id_tab(i),
65.553 - NULL,
65.554 - evaluation_rec_.part_ownership,
65.555 - evaluation_rec_.owning_customer_no );
65.556 - Trace_SYS.Message('Supply created for : '||component_rec_.component_part_tab(i));
65.557 - evaluation_rec_.line_item_no := NVL(evaluation_rec_.line_item_no,0) + 1;
65.558 - -- Create InterimOrderComponent
65.559 - Interim_Order_Component_API.New(evaluation_rec_.line_item_no,
65.560 - evaluation_rec_.interim_header_id,
65.561 - parent_supply_.interim_order_no,
65.562 - evaluation_rec_.line_item_no,
65.563 - evaluation_rec_.contract,
65.564 - component_rec_.component_part_tab(i),
65.565 - supply_interim_order_no_,
65.566 - component_rec_.qty_required_tab(i),
65.567 - interim_required_date_,
65.568 - component_rec_.qty_per_assembly_tab(i),
65.569 - component_rec_.component_scrap_tab(i),
65.570 - component_rec_.shrinkage_factor_tab(i),
65.571 - component_rec_.comp_operation_no_tab(i),
65.572 - component_rec_.leadtime_offset_tab(i),
65.573 - component_rec_.consumption_item_db_tab(i),
65.574 - evaluation_rec_.line_item_no,
65.575 - component_rec_.issue_to_loc_tab(i),
65.576 - component_rec_.draw_pos_no_tab(i),
65.577 - component_rec_.note_text_tab(i),
65.578 - component_rec_.configuration_id_tab(i) );
65.579 - Trace_SYS.Message('Component created for : '||component_rec_.component_part_tab(i));
65.580 - END IF; -- of IF get_comp_flag_ = TRUE THEN
65.581 -
65.582 - IF (evaluation_rec_.single_level_explosion = 0) THEN
65.583 - evaluation_rec_.orders_exist_to_evaluate := TRUE;
65.584 - ELSE
65.585 - evaluation_rec_.orders_exist_to_evaluate := FALSE;
65.586 - END IF;
65.587 -
65.588 --- IF-ELSE #4 Else process non-phantom/blow-thru part.
65.589 - ELSE
65.590 - -- If ctp planned record check for orders to evaluate.
65.591 - IF evaluation_rec_.ctp_planned = 1 THEN
65.592 - IF configurable_ = 'CONFIGURED' THEN
65.593 - IF part_type_code_ IN ('3','4') THEN
65.594 - IF Dictionary_SYS.Logical_Unit_Is_Installed('SupplySourcePartManager') THEN
65.595 - stmt_ := 'BEGIN
65.596 - :check_source := Supply_Source_Part_Manager_API.Is_Part_Internally_Sourced(:contract, :part_no);
65.597 - END;';
65.598 - -- ifs_assert_safe pemase 20051221
65.599 - EXECUTE IMMEDIATE stmt_
65.600 - USING OUT check_source_,
65.601 - IN evaluation_rec_.contract,
65.602 - IN component_rec_.component_part_tab(i);
65.603 - END IF;
65.604 -
65.605 - IF check_source_ = 'TRUE' THEN
65.606 - evaluation_rec_.orders_exist_to_evaluate := TRUE;
65.607 - ELSE
65.608 - evaluation_rec_.orders_exist_to_evaluate := FALSE;
65.609 - END IF;
65.610 - ELSE
65.611 - IF (evaluation_rec_.single_level_explosion = 0) THEN
65.612 - evaluation_rec_.orders_exist_to_evaluate := TRUE;
65.613 - ELSE
65.614 - evaluation_rec_.orders_exist_to_evaluate := FALSE;
65.615 - END IF;
65.616 - END IF;
65.617 - ELSE
65.618 - IF (evaluation_rec_.single_level_explosion = 0) THEN
65.619 - evaluation_rec_.orders_exist_to_evaluate := TRUE;
65.620 - ELSE
65.621 - evaluation_rec_.orders_exist_to_evaluate := FALSE;
65.622 - END IF;
65.623 - END IF;
65.624 - -- Not ctp planned, check for orders to evaluate.
65.625 - ELSE
65.626 - IF ((configurable_ = 'CONFIGURED') AND (part_type_code_ = '1')) OR
65.627 - ((dop_part_ = 'D') AND (part_type_code_ = '1')) THEN
65.628 -
65.629 - IF (evaluation_rec_.single_level_explosion = 0) THEN
65.630 - evaluation_rec_.orders_exist_to_evaluate := TRUE;
65.631 - ELSE
65.632 - evaluation_rec_.orders_exist_to_evaluate := FALSE;
65.633 - END IF;
65.634 -
65.635 - END IF;
65.636 - END IF; -- of IF evaluation_rec_.ctp_planned = 1 THEN..ELSE..
65.637 -
65.638 - interim_required_date_ := Work_time_Calendar_API.Get_Previous_Work_Day(calendar_id_,parent_start_date_);
65.639 -
65.640 - interim_start_date_ := Least( interim_required_date_,
65.641 - component_rec_.date_required_tab(i) );
65.642 -
65.643 - supply_interim_order_no_ := NULL;
65.644 -
65.645 - -- Note; Create InterimOrder
65.646 - -- Note; Get revision and alternate both for routing and structure
65.647 - comp_eng_chg_level_ := NULL;
65.648 - comp_struct_alternative_no_ := NULL;
65.649 -
65.650 - IF (comp_bom_type_db_ = 'M') THEN
65.651 - -- Note; For Component part even tentative alternative is allowed as a leaf.
65.652 - -- Note; Component as a leaf will always be 'Tentative'
65.653 -
65.654 - IF Manuf_Part_Attribute_API.Get_Structure_Effectivity(component_rec_.contract_tab(i), component_rec_.component_part_tab(i))
65.655 - = Effectivity_Control_API.Decode('SERIAL') THEN
65.656 - Manuf_Structure_Util_API.Get_Any_Date_Revision_Alt(comp_eng_chg_level_,
65.657 - comp_struct_alternative_no_,
65.658 - comp_alt_state_,
65.659 - component_rec_.contract_tab(i),
65.660 - component_rec_.component_part_tab(i),
65.661 - comp_bom_type_,
65.662 - interim_required_date_ );
65.663 -
65.664 - e_row_ := NVL(complete_eval_log_rec_.warning.warning_row_count,0) + 1;
65.665 - complete_eval_log_rec_.warning.warning_row_count := e_row_;
65.666 -
65.667 - complete_eval_log_rec_.warning.explosion_row_type_db(e_row_) := 'PartRevision';
65.668 - complete_eval_log_rec_.warning.contract(e_row_) := component_rec_.contract_tab(i);
65.669 - complete_eval_log_rec_.warning.part_no(e_row_) := component_rec_.component_part_tab(i);
65.670 - complete_eval_log_rec_.warning.eng_chg_level(e_row_) := NULL;
65.671 - complete_eval_log_rec_.warning.routing_revision(e_row_) := NULL;
65.672 - complete_eval_log_rec_.warning.bom_type_db(e_row_) := NULL;
65.673 - complete_eval_log_rec_.warning.routing_alternative_no(e_row_) := NULL;
65.674 - complete_eval_log_rec_.warning.operation_id(e_row_) := NULL;
65.675 - complete_eval_log_rec_.warning.routing_guideline_no(e_row_) := NULL;
65.676 - complete_eval_log_rec_.warning.tool_sequence(e_row_) := NULL;
65.677 - complete_eval_log_rec_.warning.structure_alternative_no(e_row_) := NULL;
65.678 - complete_eval_log_rec_.warning.line_item_no(e_row_) := NULL;
65.679 - complete_eval_log_rec_.warning.structure_guideline_no(e_row_) := NULL;
65.680 - complete_eval_log_rec_.warning.action_id(e_row_) := NULL;
65.681 - complete_eval_log_rec_.warning.action_line_no(e_row_) := NULL;
65.682 - complete_eval_log_rec_.warning.condition_id(e_row_) := NULL;
65.683 - complete_eval_log_rec_.warning.condition_line_no(e_row_) := NULL;
65.684 - complete_eval_log_rec_.warning.formula_id(e_row_) := NULL;
65.685 -
65.686 - complete_eval_log_rec_.warning.warning_message(e_row_) :=
65.687 - Language_SYS.Translate_Constant(lu_name_, 'STRUCTSERIALEFF: Component part :P1 uses serial structure effectivity which is not handled. Date effectivity is used instead.',
65.688 - Fnd_Session_API.Get_Language,
65.689 - component_rec_.component_part_tab(i));
65.690 -
65.691 -
65.692 - ELSE
65.693 - Manuf_Structure_Int_API.Get_Any_Revision_Alternative(comp_eng_chg_level_,
65.694 - comp_struct_alternative_no_,
65.695 - comp_alt_state_,
65.696 - component_rec_.contract_tab(i),
65.697 - component_rec_.component_part_tab(i),
65.698 - comp_bom_type_,
65.699 - interim_required_date_,
65.700 - evaluation_rec_.serial_begin,
65.701 - evaluation_rec_.serial_end );
65.702 -
65.703 - IF (evaluation_rec_.alternate_status = 'Buildable') THEN
65.704 - Routing_Int_API.Get_Buildable_Alternative( comp_routing_revision_,
65.705 - comp_rout_alternative_no_,
65.706 - component_rec_.contract_tab(i),
65.707 - component_rec_.component_part_tab(i),
65.708 - comp_bom_type_,
65.709 - interim_required_date_,
65.710 - evaluation_rec_.serial_begin,
65.711 - evaluation_rec_.serial_end );
65.712 -
65.713 - IF comp_routing_revision_ IS NULL THEN
65.714 - Error_Sys.Record_General(lu_name_, 'NOBUILDALTFOUND: No Buildable routing revision/alternative exists for part :P1 site :P2 on the date :P3.'
65.715 - ,component_rec_.component_part_tab(i),component_rec_.contract_tab(i),interim_required_date_);
65.716 - END IF ;
65.717 -
65.718 - ELSE
65.719 - Routing_Int_API.Get_Any_Revision_Alternative( comp_routing_revision_,
65.720 - comp_rout_alternative_no_,
65.721 - comp_rout_alt_state_,
65.722 - component_rec_.contract_tab(i),
65.723 - component_rec_.component_part_tab(i),
65.724 - comp_bom_type_,
65.725 - interim_required_date_,
65.726 - evaluation_rec_.serial_begin,
65.727 - evaluation_rec_.serial_end );
65.728 -
65.729 - IF comp_routing_revision_ IS NULL THEN
65.730 - Error_Sys.Record_General(lu_name_, 'NOREVALTFOUND: No Tentative/Plannable/Buildable structure revision/alternative exists for part :P1 site :P2 on the date :P3.'
65.731 - ,component_rec_.component_part_tab(i),component_rec_.contract_tab(i),interim_required_date_);
65.732 - END IF ;
65.733 -
65.734 - END IF;
65.735 - END IF; -- = Effectivity_Control_API.Decode('SERIAL') THEN
65.736 -
65.737 - ELSIF (comp_bom_type_db_ = 'P') THEN
65.738 -
65.739 - comp_eng_chg_level_ := Part_Revision_API.Get_Revision_By_Date (component_rec_.contract_tab(i),
65.740 - component_rec_.component_part_tab(i),
65.741 - interim_required_date_);
65.742 - -- Bug 77319, start
65.743 - Calculate_Purch_Dates___ (interim_required_date_,
65.744 - interim_start_date_,
65.745 - evaluation_rec_,
65.746 - component_rec_.contract_tab(i),
65.747 - component_rec_.component_part_tab(i),
65.748 - parent_supply_.interim_order_no,
65.749 - component_rec_.leadtime_offset_tab(i));
65.750 - -- Bug 77319, end
65.751 - END IF; --IF (comp_bom_type_db_ = 'M') THEN
65.752 -
65.753 - IF (comp_eng_chg_level_ IS NULL) THEN
65.754 - -- Note; Set a error message for part revision being null for component
65.755 - e_row_ := NVL(complete_eval_log_rec_.error.error_row_count,0) + 1;
65.756 - complete_eval_log_rec_.error.error_row_count := e_row_;
65.757 -
65.758 - complete_eval_log_rec_.error.explosion_row_type_db(e_row_) := 'PartRevision';
65.759 - complete_eval_log_rec_.error.contract(e_row_) := component_rec_.contract_tab(i);
65.760 - complete_eval_log_rec_.error.part_no(e_row_) := component_rec_.component_part_tab(i);
65.761 - complete_eval_log_rec_.error.eng_chg_level(e_row_) := NULL;
65.762 - complete_eval_log_rec_.error.routing_revision(e_row_) := NULL;
65.763 - complete_eval_log_rec_.error.bom_type_db(e_row_) := NULL;
65.764 - complete_eval_log_rec_.error.routing_alternative_no(e_row_) := NULL;
65.765 - complete_eval_log_rec_.error.operation_id(e_row_) := NULL;
65.766 - complete_eval_log_rec_.error.routing_guideline_no(e_row_) := NULL;
65.767 - complete_eval_log_rec_.error.tool_sequence(e_row_) := NULL;
65.768 - complete_eval_log_rec_.error.structure_alternative_no(e_row_) := NULL;
65.769 - complete_eval_log_rec_.error.line_item_no(e_row_) := NULL;
65.770 - complete_eval_log_rec_.error.structure_guideline_no(e_row_) := NULL;
65.771 - complete_eval_log_rec_.error.action_id(e_row_) := NULL;
65.772 - complete_eval_log_rec_.error.action_line_no(e_row_) := NULL;
65.773 - complete_eval_log_rec_.error.condition_id(e_row_) := NULL;
65.774 - complete_eval_log_rec_.error.condition_line_no(e_row_) := NULL;
65.775 - complete_eval_log_rec_.error.formula_id(e_row_) := NULL;
65.776 -
65.777 - complete_eval_log_rec_.error.error_message(e_row_) :=
65.778 - Language_SYS.Translate_Constant(lu_name_, 'IOMNOREV: Part revision does not exist for component part :P1 contract :P2 required date :P3',
65.779 - Fnd_Session_API.Get_Language,
65.780 - component_rec_.component_part_tab(i),
65.781 - component_rec_.contract_tab(i),
65.782 - interim_required_date_);
65.783 - END IF; -- of IF (comp_eng_chg_level_ IS NULL) THEN
65.784 - --
65.785 - --
65.786 - found_:=FALSE;
65.787 - FOR j IN 1..NVL(operation_rec_.operation_row_count,0) LOOP
65.788 - IF (component_rec_.comp_operation_no_tab(i)=operation_rec_.operation_no_tab(j)) THEN
65.789 - found_ := TRUE;
65.790 - EXIT;
65.791 - END IF;
65.792 - END LOOP;
65.793 - IF (NOT found_) THEN
65.794 - component_rec_.comp_operation_no_tab(i):=NULL;
65.795 - END IF;
65.796 -
65.797 - IF (component_rec_.comp_operation_no_tab(i) IS NOT NULL) THEN
65.798 - Validate_Oper_On_Comp___(oper_valid_,
65.799 - complete_eval_log_rec_,
65.800 - operation_rec_,
65.801 - component_rec_.contract_tab(i),
65.802 - component_rec_.component_part_tab(i),
65.803 - component_rec_.line_item_no_tab(i),
65.804 - component_rec_.comp_operation_no_tab(i),
65.805 - parent_supply_.eng_chg_level,
65.806 - parent_supply_.structure_alternative_no,
65.807 - parent_supply_.order_code,
65.808 - parent_supply_.routing_revision,
65.809 - parent_supply_.routing_alternative_no,
65.810 - parent_part_);
65.811 - END IF;
65.812 - --
65.813 - IF ( ( (component_rec_.comp_operation_no_tab(i) IS NULL) OR
65.814 - ( (component_rec_.comp_operation_no_tab(i) IS NOT NULL) AND
65.815 - (oper_valid_) ) ) AND
65.816 - ( (component_rec_.qty_per_assembly_tab(i) > 0) OR
65.817 - (component_rec_.consumption_item_db_tab(i) = 'Not Consumed') ) ) THEN
65.818 - IF component_rec_.consumption_item_db_tab(i) = 'Not Consumed' THEN
65.819 - component_rec_.qty_required_tab(i) := 0;
65.820 - END IF;
65.821 - Interim_Order_API.New(supply_interim_order_no_,
65.822 - evaluation_rec_.interim_header_id,
65.823 - parent_supply_.interim_order_no,
65.824 - evaluation_rec_.next_level,
65.825 - component_rec_.contract_tab(i),
65.826 - component_rec_.component_part_tab(i),
65.827 - component_rec_.qty_required_tab(i),
65.828 - interim_required_date_,
65.829 - interim_start_date_,
65.830 - comp_eng_chg_level_,
65.831 - comp_bom_type_db_,
65.832 - comp_struct_alternative_no_,
65.833 - comp_routing_revision_,
65.834 - comp_rout_alternative_no_,
65.835 - component_rec_.promise_planned_db_tab(i),
65.836 - component_rec_.configuration_id_tab(i),
65.837 - NULL,
65.838 - evaluation_rec_.part_ownership,
65.839 - evaluation_rec_.owning_customer_no );
65.840 -
65.841 - evaluation_rec_.line_item_no := NVL(evaluation_rec_.line_item_no,0) + 1;
65.842 -
65.843 - -- Note; Create InterimOrderComponent
65.844 - Interim_Order_Component_API.New(evaluation_rec_.line_item_no,
65.845 - evaluation_rec_.interim_header_id,
65.846 - parent_supply_.interim_order_no,
65.847 - evaluation_rec_.line_item_no,
65.848 - evaluation_rec_.contract,
65.849 - component_rec_.component_part_tab(i),
65.850 - supply_interim_order_no_,
65.851 - component_rec_.qty_required_tab(i),
65.852 - interim_required_date_,
65.853 - component_rec_.qty_per_assembly_tab(i),
65.854 - component_rec_.component_scrap_tab(i),
65.855 - component_rec_.shrinkage_factor_tab(i),
65.856 - component_rec_.comp_operation_no_tab(i),
65.857 - component_rec_.leadtime_offset_tab(i),
65.858 - component_rec_.consumption_item_db_tab(i),
65.859 - evaluation_rec_.line_item_no,
65.860 - component_rec_.issue_to_loc_tab(i),
65.861 - component_rec_.draw_pos_no_tab(i),
65.862 - component_rec_.note_text_tab(i),
65.863 - component_rec_.configuration_id_tab(i),
65.864 - NULL,
65.865 - evaluation_rec_.part_ownership,
65.866 - evaluation_rec_.owning_customer_no );
65.867 -
65.868 - -- Note; Create InterimCompWorkGuide
65.869 - FOR j IN 1..comp_work_guide_rec_.comp_work_guide_count LOOP
65.870 - IF (component_rec_.line_item_no_tab(i) = comp_work_guide_rec_.comp_line_item_no_tab(j)) THEN
65.871 - --
65.872 - Interim_Comp_Work_Guide_API.NEW(comp_work_guide_rec_.comp_guideline_no_tab(j),
65.873 - evaluation_rec_.interim_header_id,
65.874 - parent_supply_.interim_order_no,
65.875 - evaluation_rec_.line_item_no, -- component_rec_.line_item_no_tab(i),
65.876 - comp_work_guide_rec_.comp_guideline_seq_tab(j),
65.877 - comp_work_guide_rec_.comp_guideline_desc_tab(j),
65.878 - comp_work_guide_rec_.comp_guideline_text_tab(j),
65.879 - comp_work_guide_rec_.comp_guideline_type_tab(j),
65.880 - comp_work_guide_rec_.x_coordinate_tab(j),
65.881 - comp_work_guide_rec_.y_coordinate_tab(j),
65.882 - comp_work_guide_rec_.z_coordinate_tab(j),
65.883 - comp_work_guide_rec_.reference_qty_tab(j) );
65.884 - END IF;
65.885 - END LOOP; -- comp_work_guide_rec loop
65.886 - END IF; -- of IF ( ( (component_rec_.comp_operation_no_tab(i) IS NULL) OR
65.887 -
65.888 - END IF; -- of IF (component_rec_.mrp_order_code_tab(i) IN ('P','K') AND
65.889 --- End IF-ELSE #4
65.890 -
65.891 - END IF; -- of IF (part_type_code_ = '6') THEN..ELSIF (NOT phatom_part_exist_) THEN..
65.892 -
65.893 - END LOOP;
65.894 --- End FOR-LOOP #2: Loop thru retrieved component records.
65.895 -
65.896 - END IF; --of IF NOT multi_site_part_exist_ THEN
65.897 -
65.898 --- Note; Initialize all records for the next interim order
65.899 - operation_rec_ := NULL;
65.900 - operation_rec_.operation_row_count := 0;
65.901 - oper_work_guide_rec_ := NULL;
65.902 - oper_work_guide_rec_.oper_work_guide_row_count := 0;
65.903 - oper_tool_rec_ := NULL;
65.904 - oper_tool_rec_.oper_tool_row_count := 0;
65.905 - component_rec_ := NULL;
65.906 - component_rec_.comp_row_count := 0;
65.907 - comp_work_guide_rec_ := NULL;
65.908 - comp_work_guide_rec_.comp_work_guide_count := 0;
65.909 - config_spec_rec_ := NULL;
65.910 - config_spec_rec_.spec_row_count := 0;
65.911 - --
65.912 - evaluation_rec_.line_item_no := 0;
65.913 - -- Bug 74483, start
65.914 - comp_eng_chg_level_ := NULL;
65.915 - comp_struct_alternative_no_ := NULL;
65.916 - -- Bug 74483, end
65.917 - END LOOP;
65.918 --- End FOR-LOOP #1: Loop thru interim order records inserted by calling method.
65.919 -END Evaluate_Level___;
65.920 \ No newline at end of file
66.1 --- a/PLSQL/Lexer/test/unit/src/org/netbeans/modules/plsql/lexer/txtser.ins Wed May 15 16:07:35 2013 +0200
66.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
66.3 @@ -1,322 +0,0 @@
66.4 ------------------------------------------------------------------------------
66.5 ---
66.6 --- File: txtser.ins
66.7 ---
66.8 --- Purpose: Creates the Java Implementation of AltaVista Search. (The Source comes from Oracle).
66.9 --- Creates Schedules for Index Synchronization AND Optimization.
66.10 ---
66.11 --- Date Sign History
66.12 --- ------ ---- -----------------------------------------------------------
66.13 --- 040701 NiSilk Version 1.0.0 Created.
66.14 --- 040713 ChCrlk Removed input values for parameter "parameters_" in method call to Batch_SYS.New_Batch_Schedule.
66.15 --- 041203 ChCrlk Add statements to create datastore preferences and content indexes
66.16 --- 050110 ChCrlk Modified creation of datastore preferences.
66.17 --- 050125 Nifrse Moved the Oracle Text indexes from CALLKS to PCM and CALLC modules.
66.18 --- 070410 NIJALK Bug 64641, Added check on scheduled tasks to avoid duplicates.
66.19 --- 070621 ILSOLK Merged Bug Id 64641.
66.20 ------------------------------------------------------------------------------
66.21 -
66.22 -set define off
66.23 -
66.24 -create or replace java source named "AvQuery" as
66.25 -
66.26 - import java.util.*;
66.27 -
66.28 - class WordData {
66.29 - String text;
66.30 - String fieldName;
66.31 - }
66.32 -
66.33 - public class AvQuery {
66.34 -
66.35 - static Vector reqWords = new Vector();
66.36 - static Vector optWords = new Vector();
66.37 - static Vector notWords = new Vector();
66.38 -
66.39 - public static final int required = 1;
66.40 - public static final int optional = 2;
66.41 - public static final int notwanted = 3;
66.42 -
66.43 - public static String translate (String input) {
66.44 - processString(input);
66.45 - return getQuery();
66.46 - }
66.47 -
66.48 - private static void addWord (String word, int wordType, String field) {
66.49 -
66.50 - WordData wd = new WordData();
66.51 -
66.52 - wd.text = word;
66.53 - wd.fieldName = field;
66.54 -
66.55 - switch (wordType) {
66.56 - case required:
66.57 - reqWords.addElement(wd);
66.58 - break;
66.59 - case optional:
66.60 - optWords.addElement(wd);
66.61 - break;
66.62 - case notwanted:
66.63 - notWords.addElement(wd);
66.64 - break;
66.65 - }
66.66 - }
66.67 -
66.68 - public static void processString (String input) {
66.69 - int p = 0;
66.70 - int pp;
66.71 - int startWord;
66.72 - int flag;
66.73 - String theWord;
66.74 - String fieldName;
66.75 -
66.76 -
66.77 - reqWords = new Vector();
66.78 - optWords = new Vector();
66.79 - notWords = new Vector();
66.80 -
66.81 - while (true) { // Loop over all words
66.82 -
66.83 - startWord = p;
66.84 - while (p < input.length() && input.charAt(p) != ' ') {
66.85 - // Check for quoted phrase
66.86 - if (input.charAt(p) == '"') { // Quote - skip to next or end
66.87 - p++; // skip the actual quote
66.88 - while (p < input.length() && input.charAt(p) != '"') {
66.89 - p++;
66.90 - }
66.91 - if (p < input.length()) p++; // Skip the final quote if found
66.92 - }
66.93 - else {
66.94 - p++;
66.95 - }
66.96 - }
66.97 -
66.98 - // Got a word. Check for required/not wanted flags (+-)
66.99 -
66.100 - theWord = input.substring(startWord, p);
66.101 -
66.102 - flag = optional;
66.103 - fieldName = "";
66.104 -
66.105 - if (theWord.charAt(0) == '+') {
66.106 - flag = required;
66.107 - theWord = theWord.substring(1);
66.108 - }
66.109 -
66.110 - else if (theWord.charAt(0) == '-') {
66.111 - flag = notwanted;
66.112 - theWord = theWord.substring(1);
66.113 - }
66.114 -
66.115 - // Replace * wild cards with %
66.116 -
66.117 - theWord = theWord.replace('*', '%');
66.118 -
66.119 - // Find field indicator ":"
66.120 -
66.121 - pp = theWord.indexOf(":");
66.122 - if (pp > 0) {
66.123 - fieldName = theWord.substring(0, pp);
66.124 - theWord = theWord.substring(pp+1, theWord.length());
66.125 - }
66.126 -
66.127 - addWord(theWord, flag, fieldName);
66.128 -
66.129 - p++;
66.130 - if (p >= input.length()) break;
66.131 - }
66.132 - }
66.133 -
66.134 - // Get word gets a single word from the "words" vector,
66.135 - // surrounds it in braces (to avoid reserved words)
66.136 - // and attaches a WITHIN clause if appropriate.
66.137 -
66.138 - private static String getWord (Vector words, int pos) {
66.139 -
66.140 - String ts = "{" + ((WordData) words.elementAt(pos)).text + "}";
66.141 - if (((WordData)words.elementAt(pos)).fieldName.length() > 0) {
66.142 - ts += " WITHIN " + ((WordData)words.elementAt(pos)).fieldName;
66.143 - }
66.144 - return ts;
66.145 - }
66.146 -
66.147 -
66.148 - // getQuery returns a formatted, ready-to-run ConText query.
66.149 - // In order to satisfy the altavista syntax, we have to generate
66.150 - // the following query:
66.151 -
66.152 - // ( req1 & req2 & ... reqN)
66.153 - // | ( (req1 & req2 & .. reqN)*10*10
66.154 - // & (req1, req2 , ... reqN , opt1 , opt2 , ... optN) )
66.155 - // NOT (not1 | not2 | ... notN)
66.156 -
66.157 - public static String getQuery () {
66.158 - String tempString = "";
66.159 -
66.160 - String boolOp = ""; // AND, OR, NOT operator
66.161 - int reqCount; // Count of required words
66.162 - int optCount; // Count of optional words
66.163 - int notCount; // Count of not wanted words
66.164 - int i; // Loop control
66.165 -
66.166 - boolOp = "";
66.167 - reqCount = reqWords.size();
66.168 - optCount = optWords.size();
66.169 - notCount = notWords.size();
66.170 -
66.171 - if (reqWords.size() > 0) {
66.172 - // Required words - first time
66.173 -
66.174 - tempString = "((";
66.175 - for (i = 0; i < reqCount; i++) {
66.176 - tempString += boolOp + getWord(reqWords,i);
66.177 - boolOp = " & ";
66.178 - }
66.179 -
66.180 - if (reqCount > 0 && optCount > 0) {
66.181 - tempString += ") | ";
66.182 - tempString += "((";
66.183 - // Required words - second time (anded with optional words)
66.184 - boolOp = "";
66.185 - for (i = 0; i < reqCount; i++) {
66.186 - tempString += boolOp + getWord(reqWords,i);
66.187 - boolOp = " & ";
66.188 - }
66.189 - tempString += ")*10*10";
66.190 -
66.191 - tempString += " & (";
66.192 -
66.193 - // Required words - third time as part of accumulate
66.194 - boolOp = "";
66.195 - for (i = 0; i < reqCount; i++) {
66.196 - tempString += boolOp + getWord(reqWords,i);
66.197 - // tempString += "*2";// Uncomment to double weight of required words
66.198 - boolOp = " , ";
66.199 - }
66.200 - }
66.201 - }
66.202 - else
66.203 - tempString = "(";
66.204 -
66.205 - // Optional words
66.206 - // Don't reset boolOp
66.207 - for (i = 0; i < optCount; i++) {
66.208 - tempString += boolOp + getWord(optWords,i);
66.209 - boolOp = " , "; // Accumulate
66.210 - }
66.211 -
66.212 - if (reqCount > 0)
66.213 - if (optCount > 0 )
66.214 - tempString += ")) )";
66.215 - else
66.216 - tempString += ")) ";
66.217 - else
66.218 - tempString += ")";
66.219 -
66.220 - if (tempString.length() > 0)
66.221 - boolOp = " NOT ";
66.222 - else
66.223 - boolOp = "";
66.224 -
66.225 - for (i = 0; i < notCount; i++) {
66.226 - tempString += boolOp + getWord(notWords,i);
66.227 - boolOp = " NOT ";
66.228 - }
66.229 - return tempString;
66.230 - }
66.231 -}
66.232 -/
66.233 -
66.234 -
66.235 --- Creation of Schedules
66.236 -
66.237 -Prompt Creating Schedules for Index Synchronization AND Optimization
66.238 -DECLARE
66.239 - schedule_id_ NUMBER;
66.240 - action_ VARCHAR2(200);
66.241 - description_ VARCHAR2(200);
66.242 - execution_date_ DATE := SYSDATE + 30/86400;
66.243 - plan_ VARCHAR2(200);
66.244 - msg_ VARCHAR2(2000);
66.245 - schedule_method_id_ NUMBER;
66.246 - start_date_ DATE := SYSDATE;
66.247 - dummy_ NUMBER;
66.248 -
66.249 - CURSOR check_exist IS
66.250 - SELECT 1
66.251 - FROM BATCH_SCHEDULE_TAB
66.252 - WHERE SCHEDULE_NAME = description_;
66.253 -
66.254 -BEGIN
66.255 - --------------- Sync Index
66.256 - action_ := 'Text_Search_Indexer_API.Sync_Index';
66.257 - description_ := 'Synchronize Context Indexes';
66.258 - plan_ := 'EVERY 00:10';
66.259 -
66.260 - OPEN check_exist;
66.261 - FETCH check_exist INTO dummy_;
66.262 - IF (check_exist%NOTFOUND) THEN
66.263 - msg_ := Message_SYS.Construct('');
66.264 - Message_SYS.Add_Attribute (msg_, 'METHOD_NAME', 'Text_Search_Indexer_API.Sync_Index');
66.265 - Message_SYS.Add_Attribute (msg_, 'DESCRIPTION', 'Synchronize Context Indexes');
66.266 - Message_SYS.Add_Attribute (msg_, 'MODULE', 'TXTSER');
66.267 - Message_SYS.Add_Attribute (msg_, 'SINGLE_EXECUTION_DB', 'FALSE');
66.268 - Message_SYS.Add_Attribute (msg_, 'ARGUMENT_TYPE_DB', 'ATTRIBUTE');
66.269 - Batch_SYS.Register_Batch_Schedule_Method (schedule_method_id_, msg_);
66.270 - Batch_SYS.New_Batch_Schedule (schedule_id_, execution_date_, start_date_, NULL, description_, action_, 'TRUE', plan_);
66.271 - END IF;
66.272 - CLOSE check_exist;
66.273 -
66.274 -
66.275 -
66.276 - --------------- Optimize Index
66.277 - action_ := 'Text_Search_Indexer_API.Optimize_Index';
66.278 - description_ := 'Optimize Context Indexes';
66.279 - plan_ := 'WEEKLY ON sun AT 00:00';
66.280 - schedule_method_id_ := NULL;
66.281 -
66.282 - OPEN check_exist;
66.283 - FETCH check_exist INTO dummy_;
66.284 - IF (check_exist%NOTFOUND) THEN
66.285 - msg_ := Message_SYS.Construct('');
66.286 - Message_SYS.Add_Attribute (msg_, 'METHOD_NAME', 'Text_Search_Indexer_API.Optimize_Index');
66.287 - Message_SYS.Add_Attribute (msg_, 'DESCRIPTION', 'Optimize Context Indexes');
66.288 - Message_SYS.Add_Attribute (msg_, 'MODULE', 'TXTSER');
66.289 - Message_SYS.Add_Attribute (msg_, 'SINGLE_EXECUTION_DB', 'FALSE');
66.290 - Message_SYS.Add_Attribute (msg_, 'ARGUMENT_TYPE_DB', 'ATTRIBUTE');
66.291 - Batch_SYS.Register_Batch_Schedule_Method (schedule_method_id_, msg_);
66.292 - Batch_SYS.New_Batch_Schedule (schedule_id_, execution_date_, start_date_, NULL, description_, action_, 'TRUE', plan_);
66.293 - END IF;
66.294 - CLOSE check_exist;
66.295 -
66.296 - ---------------- Delete old Search Results
66.297 - -- To run Text_Search_API.Delete_Old_Results with a value for save_days that
66.298 - -- isn't default, create a parameters_ string to pass to New_Batch_Schedule.
66.299 - action_ := 'Text_Search_API.Delete_Old_Results';
66.300 - description_ := 'Delete old Text Search Results';
66.301 - plan_ := 'DAILY AT 00:00';
66.302 - schedule_method_id_ := NULL;
66.303 -
66.304 - OPEN check_exist;
66.305 - FETCH check_exist INTO dummy_;
66.306 - IF (check_exist%NOTFOUND) THEN
66.307 - msg_ := Message_SYS.Construct('');
66.308 - Message_SYS.Add_Attribute (msg_, 'METHOD_NAME', 'Text_Search_API.Delete_Old_Results');
66.309 - Message_SYS.Add_Attribute (msg_, 'DESCRIPTION', 'Delete old Text Search Results');
66.310 - Message_SYS.Add_Attribute (msg_, 'MODULE', 'TXTSER');
66.311 - Message_SYS.Add_Attribute (msg_, 'SINGLE_EXECUTION_DB', 'FALSE');
66.312 - Message_SYS.Add_Attribute (msg_, 'ARGUMENT_TYPE_DB', 'ATTRIBUTE');
66.313 - Batch_SYS.Register_Batch_Schedule_Method (schedule_method_id_, msg_);
66.314 - Batch_SYS.New_Batch_Schedule (schedule_id_,execution_date_, start_date_, NULL, description_, action_, 'TRUE', plan_);
66.315 - END IF;
66.316 - CLOSE check_exist;
66.317 -
66.318 - END;
66.319 -/
66.320 -
66.321 -COMMIT;
66.322 -/
66.323 -
66.324 -
66.325 -