DBA Data[Home] [Help]

PACKAGE BODY: APPS.HXC_MPC_UPLOAD_PKG

Source


1 PACKAGE BODY hxc_mpc_upload_pkg AS
2 /* $Header: hxcmpcupl.pkb 115.7 2002/06/10 13:30:25 pkm ship      $ */
3 
4 FUNCTION find_bld_blk_info_type_id ( p_bld_Blk_info_type VARCHAR2 ) RETURN number IS
5 
6 CURSOR	csr_get_bld_blk_info_type_id IS
7 SELECT	bld_blk_info_type_id
8 FROM	hxc_bld_blk_info_types
9 WHERE	bld_blk_info_type	= p_bld_blk_info_type;
10 
11 l_bld_blk_info_type_id hxc_bld_blk_info_types.bld_blk_info_type_id%TYPE;
12 
13 BEGIN
14 
15 OPEN  csr_get_bld_blk_info_type_id;
16 FETCH csr_get_bld_blk_info_type_id INTO l_bld_blk_info_type_id;
17 CLOSE csr_get_bld_blk_info_type_id;
18 
19 RETURN l_bld_blk_info_type_id;
20 
21 END find_bld_blk_info_type_id;
22 
23 
24 PROCEDURE load_mapping_component_row (
25           p_name                IN VARCHAR2
26 	, p_field_name		IN VARCHAR2
27 	, p_bld_blk_info_type	IN VARCHAR2
28 	, p_segment		IN VARCHAR2
29 	, p_owner		IN VARCHAR2
30 	, p_custom_mode		IN VARCHAR2 ) IS
31 
32 l_bld_blk_info_type_id	hxc_bld_blk_info_types.bld_blk_info_type_id%TYPE;
33 l_bld_blk_info_type	hxc_bld_blk_info_types.bld_blk_info_type%TYPE;
34 l_segment		hxc_mapping_components.segment%TYPE;
35 l_field_name		hxc_mapping_components.field_name%TYPE;
36 l_mapping_component_id  hxc_mapping_components.mapping_component_id%TYPE;
37 l_ovn			hxc_mapping_components.object_version_number%TYPE;
38 l_owner			VARCHAR2(6);
39 
40 BEGIN
41 
42 l_bld_blk_info_type_id := find_bld_blk_info_type_id ( p_bld_blk_info_type );
43 
44 BEGIN
45 
46 	SELECT	mapping_component_id
47 	,	object_version_number
48 	,	DECODE( NVL(last_updated_by,-1), 1, 'SEED', 'CUSTOM')
49 	,	field_name
50 	,	bld_blk_info_type
51 	,	segment
52 	INTO	l_mapping_component_id
53 	,	l_ovn
54 	,	l_owner
55 	,	l_field_name
56 	,	l_bld_blk_info_type
57 	,	l_segment
58 	FROM	hxc_mapping_components_v
59 	WHERE	name	= P_NAME;
60 
61 /* ALLOW UPDATE TO FLAG THAT MAPPING COMPONENTS CANNOT BE UPDATED
62   THROUGH THE LOADER IF THEY ARE REFERENCED BY MAPPING */
63 
64 	IF ( p_custom_mode = 'FORCE' OR l_owner = 'SEED' )
65 	THEN
66 
67 		-- only update if the mapping component has actually changed
68 
69 		-- v115.3 - if mpc being used need to use hcdelmpc.sql first
70 
71 		IF ( ( p_segment <> l_segment ) OR ( p_field_name <> l_field_name )
72                   OR ( p_bld_blk_info_type <> l_bld_blk_info_type ) )
73 		THEN
74 
75 		hxc_mpc_upd.upd (
76 				p_mapping_component_id	=> l_mapping_component_id
77   			,	p_object_version_number => l_ovn
78   			,	p_field_name		=> p_field_name
79   			,	p_name			=> p_name
80   			,	p_bld_blk_info_type_id	=> l_bld_blk_info_type_id
81   			,	p_segment		=> p_segment );
82 
83 		END IF;
84 
85 	END IF;
86 
87 EXCEPTION WHEN NO_DATA_FOUND
88 THEN
89 
90 	hxc_mapping_component_api.create_mapping_component (
91    		p_field_name		=> p_field_name
92 	,	p_name			=> p_name
93   	,	p_bld_blk_info_type_id	=> l_bld_blk_info_type_id
94   	,	p_segment		=> p_segment
95   	,	p_mapping_component_id 	=> l_mapping_component_id
96   	,	p_object_version_number	=> l_ovn );
97 
98 END;
99 
100 END load_mapping_component_row;
101 
102 END hxc_mpc_upload_pkg;