[Home] [Help]
PACKAGE BODY: APPS.WIP_GLOBALS
Source
1 PACKAGE BODY WIP_Globals AS
2 /* $Header: WIPSGLBB.pls 115.11 2002/12/01 16:16:23 rmahidha ship $ */
3
4 -- Global constant holding the package name
5
6 G_PKG_NAME CONSTANT VARCHAR2(30) := 'WIP_Globals';
7
8 -- Procedure Get_Entities_Tbl.
9 --
10 -- Used by generator to avoid overriding or duplicating existing
11 -- entity constants.
12 --
13 -- DO NOT REMOVE
14
15 PROCEDURE Get_Entities_Tbl
16 IS
17 I NUMBER:=0;
18 BEGIN
19
20 FND_API.g_entity_tbl.DELETE;
21
22 -- START GEN entities
23 I := I + 1;
24 FND_API.g_entity_tbl(I).name := 'ALL';
25 I := I + 1;
26 FND_API.g_entity_tbl(I).name := 'WIP_ENTITIES';
27 I := I + 1;
28 FND_API.g_entity_tbl(I).name := 'FLOWSCHEDULE';
29 I := I + 1;
30 FND_API.g_entity_tbl(I).name := 'DISCRETEJOB';
31 I := I + 1;
32 FND_API.g_entity_tbl(I).name := 'REPSCHEDULE';
33 I := I + 1;
34 FND_API.g_entity_tbl(I).name := 'WIPTRANSACTION';
35 I := I + 1;
36 FND_API.g_entity_tbl(I).name := 'COMPONENTISSUE';
37 I := I + 1;
38 FND_API.g_entity_tbl(I).name := 'OSP';
39 I := I + 1;
40 FND_API.g_entity_tbl(I).name := 'SHOPFLOORMOVE';
41 I := I + 1;
42 FND_API.g_entity_tbl(I).name := 'RESOURCE';
43 -- END GEN entities
44
45 END Get_Entities_Tbl;
46
47 -- Initialize control record.
48
49 FUNCTION Init_Control_Rec
50 ( p_action IN VARCHAR2
51 , p_control_rec IN Control_Rec_Type
52 )RETURN Control_Rec_Type
53 IS
54 l_control_rec Control_Rec_Type;
55 BEGIN
56
57 IF p_control_rec.controlled_operation THEN
58
59 RETURN p_control_rec;
60
61 ELSIF p_action = G_OPR_NONE OR p_action IS NULL THEN
62
63 l_control_rec.default_attributes:= FALSE;
64 l_control_rec.change_attributes := FALSE;
65 l_control_rec.validate_entity := FALSE;
66 l_control_rec.write_to_DB := FALSE;
67 l_control_rec.process := p_control_rec.process;
68 l_control_rec.process_entity := p_control_rec.process_entity;
69 l_control_rec.request_category := p_control_rec.request_category;
70 l_control_rec.request_name := p_control_rec.request_name;
71 l_control_rec.clear_api_cache := p_control_rec.clear_api_cache;
72 l_control_rec.clear_api_requests:= p_control_rec.clear_api_requests;
73
74 ELSIF p_action = G_OPR_CREATE THEN
75
76 l_control_rec.default_attributes:= TRUE;
77 l_control_rec.change_attributes := FALSE;
78 l_control_rec.validate_entity := TRUE;
79 l_control_rec.write_to_DB := TRUE;
80 l_control_rec.process := TRUE;
81 l_control_rec.process_entity := G_ENTITY_ALL;
82 l_control_rec.clear_api_cache := TRUE;
83 l_control_rec.clear_api_requests:= TRUE;
84
85 ELSIF p_action = G_OPR_UPDATE THEN
86
87 l_control_rec.default_attributes:= FALSE;
88 l_control_rec.change_attributes := TRUE;
89 l_control_rec.validate_entity := TRUE;
90 l_control_rec.write_to_DB := TRUE;
91 l_control_rec.process := TRUE;
92 l_control_rec.process_entity := G_ENTITY_ALL;
93 l_control_rec.clear_api_cache := TRUE;
94 l_control_rec.clear_api_requests:= TRUE;
95
96 ELSIF p_action = G_OPR_DELETE THEN
97
98 l_control_rec.default_attributes:= FALSE;
99 l_control_rec.change_attributes := FALSE;
100 l_control_rec.validate_entity := TRUE;
101 l_control_rec.write_to_DB := TRUE;
102 l_control_rec.process := TRUE;
103 l_control_rec.process_entity := G_ENTITY_ALL;
104 l_control_rec.clear_api_cache := TRUE;
105 l_control_rec.clear_api_requests:= TRUE;
106
107 ELSE
108
109 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
110 THEN
111 FND_MSG_PUB.Add_Exc_Msg
112 ( G_PKG_NAME
113 , 'Init_Control_Rec'
114 , 'Invalid action'
115 );
116 END IF;
117
118 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
119
120 END IF;
121
122 RETURN l_control_rec;
123
124 END Init_Control_Rec;
125
126 -- Function Equal
127 -- Number comparison.
128
129 FUNCTION Equal
130 ( p_attribute1 IN NUMBER
131 , p_attribute2 IN NUMBER
132 )RETURN BOOLEAN
133 IS
134 BEGIN
135
136 RETURN ( p_attribute1 IS NULL AND p_attribute2 IS NULL ) OR
137 ( p_attribute1 IS NOT NULL AND
138 p_attribute2 IS NOT NULL AND
139 p_attribute1 = p_attribute2 );
140
141 END Equal;
142
143 -- Varchar2 comparison.
144
145 FUNCTION Equal
146 ( p_attribute1 IN VARCHAR2
147 , p_attribute2 IN VARCHAR2
148 )RETURN BOOLEAN
149 IS
150 BEGIN
151
152 RETURN ( p_attribute1 IS NULL AND p_attribute2 IS NULL ) OR
153 ( p_attribute1 IS NOT NULL AND
154 p_attribute2 IS NOT NULL AND
155 p_attribute1 = p_attribute2 );
156
157 END Equal;
158
159 -- Date comparison.
160
161 FUNCTION Equal
162 ( p_attribute1 IN DATE
163 , p_attribute2 IN DATE
164 )RETURN BOOLEAN
165 IS
166 BEGIN
167
168 RETURN ( p_attribute1 IS NULL AND p_attribute2 IS NULL ) OR
169 ( p_attribute1 IS NOT NULL AND
170 p_attribute2 IS NOT NULL AND
171 p_attribute1 = p_attribute2 );
172
173 END Equal;
174
175
176 PROCEDURE Add_Error_Message(p_product VARCHAR2 := 'WIP',
177 p_message_name VARCHAR2,
178 p_token1_name VARCHAR2 := FND_API.G_MISS_CHAR,
179 p_token1_value VARCHAR2 := FND_API.G_MISS_CHAR,
180 p_token2_name VARCHAR2 := FND_API.G_MISS_CHAR,
181 p_token2_value VARCHAR2 := FND_API.G_MISS_CHAR,
182 p_token3_name VARCHAR2 := FND_API.G_MISS_CHAR,
183 p_token3_value VARCHAR2 := FND_API.G_MISS_CHAR,
184 p_token4_name VARCHAR2 := FND_API.G_MISS_CHAR,
185 p_token4_value VARCHAR2 := FND_API.G_MISS_CHAR,
186 p_token5_name VARCHAR2 := FND_API.G_MISS_CHAR,
187 p_token5_value VARCHAR2 := FND_API.G_MISS_CHAR)
188
189 IS
190 BEGIN
191
192 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
193
194 FND_MESSAGE.SET_NAME(p_product,p_message_name);
195
196 IF p_token1_name <> FND_API.G_MISS_CHAR
197 AND p_token1_value <> FND_API.G_MISS_CHAR THEN
198 FND_MESSAGE.SET_TOKEN(p_token1_name,p_token1_value);
199 END IF;
200 IF p_token2_name <> FND_API.G_MISS_CHAR
201 AND p_token2_value <> FND_API.G_MISS_CHAR THEN
202 FND_MESSAGE.SET_TOKEN(p_token2_name,p_token2_value);
203 END IF;
204 IF p_token3_name <> FND_API.G_MISS_CHAR
205 AND p_token3_value <> FND_API.G_MISS_CHAR THEN
206 FND_MESSAGE.SET_TOKEN(p_token3_name,p_token3_value);
207 END IF;
208 IF p_token4_name <> FND_API.G_MISS_CHAR
209 AND p_token4_value <> FND_API.G_MISS_CHAR THEN
210 FND_MESSAGE.SET_TOKEN(p_token4_name,p_token4_value);
211 END IF;
212 IF p_token5_name <> FND_API.G_MISS_CHAR
213 AND p_token5_value <> FND_API.G_MISS_CHAR THEN
214 FND_MESSAGE.SET_TOKEN(p_token5_name,p_token5_value);
215 END IF;
216
217 FND_MSG_PUB.Add;
218
219 END IF;
220
221 END Add_Error_Message;
222
223
224 -- Displays 'p_msg_count' messages to the screen (dbms) then clears
225 -- the message stack.
226
227 Procedure Display_all_msgs ( p_msg_count IN NUMBER) IS
228 i NUMBER;
229 cnt NUMBER;
230 msg_data VARCHAR2(240);
231 BEGIN
232 fnd_msg_pub.reset;
233 for i in 1..p_msg_count loop
234
235 fnd_msg_pub.get (p_encoded => FND_API.G_FALSE,
236 p_data => msg_data,
237 p_msg_index_out => cnt);
238
239 -- dbms_output.put_line('error # ' || cnt || ': ' || msg_data);
240 end loop ;
241 fnd_msg_pub.initialize;
242 END Display_all_msgs;
243
244
245
246 PROCEDURE Get_Locator_Control
247 ( p_org_id IN NUMBER,
248 p_subinventory_code IN VARCHAR2,
249 p_primary_item_id IN NUMBER,
250 x_return_status OUT NOCOPY VARCHAR2,
251 x_msg_count OUT NOCOPY NUMBER,
252 x_msg_data OUT NOCOPY VARCHAR2,
253 x_locator_control OUT NOCOPY NUMBER
254 ) IS
255 l_org_control NUMBER;
256 l_sub_control NUMBER;
257 l_item_control NUMBER;
258 x_level NUMBER;
259
260 CURSOR org_loc_control IS
261 SELECT STOCK_LOCATOR_CONTROL_CODE
262 FROM MTL_PARAMETERS
263 WHERE ORGANIZATION_ID = p_org_id;
264
265 CURSOR item_loc_control IS
266 SELECT Location_Control_Code
267 FROM mtl_system_items
268 WHERE inventory_item_id = p_primary_item_id
269 AND ORGANIZATION_ID = p_org_id;
270
271 CURSOR sub_loc_control IS
272 SELECT LOCATOR_TYPE
273 FROM mtl_secondary_inventories
274 WHERE ORGANIZATION_ID = p_org_id
275 AND SECONDARY_INVENTORY_NAME = p_subinventory_code;
276
277 BEGIN
278 OPEN org_loc_control;
279 FETCH org_loc_control INTO l_org_control;
280 CLOSE org_loc_control;
281
282 OPEN item_loc_control;
283 FETCH item_loc_control INTO l_item_control;
284 CLOSE item_loc_control;
285
286 OPEN sub_loc_control;
287 FETCH sub_loc_control INTO l_sub_control;
288 CLOSE sub_loc_control;
289
290 MTL_INV_VALIDATE_GRP.LOCATOR_CONTROL(
291 p_api_version => 0.9,
292 x_return_status => x_return_status,
293 x_msg_count => x_msg_count,
294 x_msg_data => x_msg_data,
295 p_org_control =>l_org_control,
296 p_sub_control => l_sub_control,
297 p_item_control => l_item_control,
298 x_locator_control => x_locator_control,
299 x_level => x_level);
300
301 EXCEPTION
302 WHEN FND_API.G_EXC_ERROR THEN
303
304 x_return_status := FND_API.G_RET_STS_ERROR;
305
306 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
307
308 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
309
310 WHEN OTHERS THEN
311
312 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
313 Add_Error_Message(p_message_name => 'UNEXPECTED_ERROR',
314 p_token1_name => 'TEXT',
315 p_token1_value => Sqlerrm);
316
317
318 END Get_Locator_Control;
319
320
321 function USE_PHANTOM_ROUTINGS(p_org_id in number) return number is
322 x_use_phantom_routings number;
323 begin
324
325 Select USE_PHANTOM_ROUTINGS
326 INTO x_use_phantom_routings
327 FROM BOM_PARAMETERS
328 WHERE organization_Id = p_org_id;
329
330 if (x_use_phantom_routings = 1 ) then
331 return 1 ;
332 else
333 return 2 ;
334 end if ;
335
336 exception
337 when no_data_found then
338 return -2 ;
339 when others then
340 return -1 ;
341
342 end USE_PHANTOM_ROUTINGS;
343
344 function INHERIT_PHANTOM_OP_SEQ(p_org_id in number) return number is
345 x_inherit_phantom_op_seq number;
346 begin
347
348 Select INHERIT_PHANTOM_OP_SEQ
349 INTO x_inherit_phantom_op_seq
350 FROM BOM_PARAMETERS
351 WHERE organization_Id = p_org_id;
352
353 if (x_inherit_phantom_op_seq = 1 ) then
354 return 1 ;
355 else
356 return 2 ;
357 end if ;
358
359 exception
360 when no_data_found then
361 return -2 ;
362 when others then
363 return -1 ;
364
365 end INHERIT_PHANTOM_OP_SEQ;
366
367
368
369 END WIP_Globals;