[Home] [Help]
PACKAGE BODY: APPS.XLE_ASSOCIATIONS_INFO
Source
1 PACKAGE BODY XLE_ASSOCIATIONS_INFO AS
2 /* $Header: xleasinb.pls 120.2 2006/04/17 07:39:59 akonatha ship $ */
3
4 /* =======================================================================
5 | Global Data Types
6 * ======================================================================*/
7
8 G_PKG_NAME CONSTANT VARCHAR2(30) := 'XLE_ASSOCIATIONS_INFO';
9
10 G_MSG_UERROR CONSTANT NUMBER := FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR;
11 G_MSG_ERROR CONSTANT NUMBER := FND_MSG_PUB.G_MSG_LVL_ERROR;
12 G_MSG_SUCCESS CONSTANT NUMBER := FND_MSG_PUB.G_MSG_LVL_SUCCESS;
13 G_MSG_HIGH CONSTANT NUMBER := FND_MSG_PUB.G_MSG_LVL_DEBUG_HIGH;
14 G_MSG_MEDIUM CONSTANT NUMBER := FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM;
15 G_MSG_LOW CONSTANT NUMBER := FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW;
16
17 /*==========================================================================
18 | PROCEDURE
19 | Get_Associations_info
20 |
21 | DESCRIPTION
22 | Retrieves Legal Association Info
23 |
24 | ARGUMENTS
25 | IN :
26 | p_init_msg_list
27 | p_commit
28 | p_context
29 | p_object_type
30 | p_subject_type
31 | p_legal_entity_id
32 | p_object_id
33 | p_subject_id
34 |
35 |
36 | OUT :
37 | x_return_status
38 | x_msg_count
39 | x_msg_data
40 | p_assocs
41 |
42 | IN/OUT :
43 |
44 |
45 | MODIFICATION HISTORY
46 | | 18-MAR-2005 T.Tran Created.
47 |
48 |===========================================================================*/
49
50
51 PROCEDURE Get_Associations_Info(
52
53 -- ***** Standard API parameters *****
54 p_init_msg_list IN VARCHAR2,
55 p_commit IN VARCHAR2,
56 x_return_status OUT NOCOPY VARCHAR2,
57 x_msg_count OUT NOCOPY NUMBER,
58 x_msg_data OUT NOCOPY VARCHAR2,
59
60
61 -- ***** Legal Association information parameters *****
62 p_context IN XLE_ASSOCIATION_TYPES.Context%TYPE,
63 p_object_type IN XLE_ASSOC_OBJECT_TYPES.Name%TYPE,
64 p_subject_type IN XLE_ASSOC_OBJECT_TYPES.Name%TYPE,
65 p_legal_entity_id IN XLE_ASSOCIATIONS.SUBJECT_PARENT_ID%TYPE,
66 p_object_id IN XLE_ASSOCIATIONS.Object_Id%TYPE,
67 p_subject_id IN XLE_ASSOCIATIONS.Subject_Id%TYPE,
68 p_assocs OUT NOCOPY tab_assoc)
69
70
71 IS
72
73 l_api_name CONSTANT VARCHAR2(40) := 'Get_Associations_Info';
74 l_subject_type_id XLE_ASSOCIATIONS.Subject_Id%TYPE;
75 l_object_type_id XLE_ASSOCIATIONS.Object_Id%TYPE;
76 l_init_msg_list VARCHAR2(40);
77 l_commit VARCHAR2(40);
78 x_association_type_id NUMBER;
79
80
81 BEGIN
82
83 x_msg_count := NULL;
84 x_msg_data := NULL;
85 l_init_msg_list := FND_API.G_TRUE;
86 l_commit := FND_API.G_FALSE;
87
88 -- **** Standard start of API savepoint ****
89 -- SAVEPOINT Get_Associations_Info_SP;
90
91
92 -- **** Initialize message list if l_init_msg_list is set to TRUE. ****
93 IF FND_API.to_Boolean( l_init_msg_list ) THEN
94 FND_MSG_PUB.initialize;
95 END IF;
96
97
98 -- **** Initialize return status to SUCCESS *****
99 x_return_status := FND_API.G_RET_STS_SUCCESS;
100
101
102 /*-----------------------------------------------+
103 | ======== START OF API BODY ============ |
104 +-----------------------------------------------*/
105
106 -- Validation of the Manadatory Input Parameters
107
108
109 XLE_ASSOC_VALIDATIONS_PVT.Validate_Mandatory('p_context',p_context);
110 XLE_ASSOC_VALIDATIONS_PVT.Validate_Mandatory('p_object_type',p_object_type);
111 XLE_ASSOC_VALIDATIONS_PVT.Validate_Mandatory('p_subject_type',p_subject_type);
112
113
114 -- Validating parameter combinations
115
116 XLE_ASSOC_VALIDATIONS_PVT.Default_Association_Type(p_context,p_subject_type,p_object_type,x_association_type_id);
117
118
119 IF (p_subject_id is NULL)
120 THEN
121
122 XLE_ASSOC_VALIDATIONS_PVT.Validate_Mandatory('p_object_id',p_object_id);
123 XLE_ASSOC_VALIDATIONS_PVT.Validate_Object(p_object_type, p_object_id, 'Object Type', 'Object_Id', l_object_type_id);
124
125
126 select assoc.subject_id
127 BULK COLLECT
128 INTO p_assocs
129 from XLE_ASSOCIATIONS assoc, XLE_ASSOCIATION_TYPES assoc_types
130 where assoc.object_id = p_object_id
131 and assoc_types.ASSOCIATION_TYPE_ID = assoc.ASSOCIATION_TYPE_ID
132 and assoc.association_type_id = x_association_type_id
133 and assoc.subject_parent_id = NVL(p_legal_entity_id,assoc.subject_parent_id)
134 and assoc_types.context = p_context
135 and assoc_types.effective_to is null;
136
137
138 END IF;
139
140 IF (p_object_id is NULL)
141 THEN
142
143 XLE_ASSOC_VALIDATIONS_PVT.Validate_Mandatory('p_subject_id',p_subject_id);
144 XLE_ASSOC_VALIDATIONS_PVT.Validate_Object(p_subject_type, p_subject_id, 'Subject Type','Subject_Id',l_subject_type_id);
145
146 select assoc.object_id
147 BULK COLLECT
148 INTO p_assocs
149 from XLE_ASSOCIATIONS assoc, XLE_ASSOCIATION_TYPES assoc_types
150 where assoc.subject_id = p_subject_id
151 and assoc_types.ASSOCIATION_TYPE_ID = assoc.ASSOCIATION_TYPE_ID
152 and assoc.association_type_id = x_association_type_id
153 and assoc.subject_parent_id = NVL(p_legal_entity_id,assoc.subject_parent_id)
154 and assoc_types.context = p_context
155 and assoc_types.effective_to is null;
156
157
158 END IF;
159
160
161
162 /*-----------------------------------------------+
163 | ======== END OF API BODY ============ |
164 +-----------------------------------------------*/
165
166
167 -- Standard call to get message count and if count is 1,
168 -- get message info.
169 FND_MSG_PUB.Count_And_Get (
170 p_count => x_msg_count,
171 p_data => x_msg_data );
172
173 EXCEPTION
174
175 WHEN FND_API.G_EXC_ERROR THEN
176 -- ROLLBACK TO Get_Associations_Info_SP;
177 x_return_status := FND_API.G_RET_STS_ERROR;
178 FND_MSG_PUB.Count_And_Get (
179 p_count => x_msg_count,
180 p_data => x_msg_data );
181
182 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
183 -- ROLLBACK TO Get_Associations_Info_SP;
184 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
185 FND_MSG_PUB.Count_And_Get (
186 p_count => x_msg_count,
187 p_data => x_msg_data );
188
189 WHEN OTHERS THEN
190 -- ROLLBACK TO Get_Associations_Info_SP;
191 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
192 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
193 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME, l_api_name);
194 END IF;
195 FND_MSG_PUB.Count_And_Get (
196 p_count => x_msg_count,
197 p_data => x_msg_data );
198
199 END Get_Associations_Info;
200
201 END XLE_ASSOCIATIONS_INFO;
202