1 Package WMS_SEARCH_ORDER_GLOBALS_PVT AUTHID CURRENT_USER AS
2 /* $Header: WMSSOGBS.pls 120.1 2005/07/18 05:21:47 ajohnson noship $ */
3
4 -- File : WMSSOGBS.pls
5 -- Content : WMS_SEARCH_ORDER_GLOBALS_PVT package body
6 -- Description : This API is created to store Rules Engine Process flow
7 -- Variabls. This API Gobal Variable will be updated by
8 --- WMS_RULES_ENGINE_PVT and to be refrenced by WMSRLSIM.fmb
9
10 -- Notes :
11 -- List of Pl/SQL Tables,Functions and Procedures
12 --
13 -- TYPE pre_suggestions_record IS RECORD
14 -- TYPE pre_suggestions_record_tbl IS TABLE
15 -- FUNCTION get_object_type ( engine_type IN VARCHAR2) RETURN VARCHAR2;
16 -- FUNCTION get_object_name ( engine_type IN VARCHAR2, org_id number) RETURN VARCHAR2;
17 -- FUNCTION get_strategy_name ( engine_type IN VARCHAR2, org_id IN NUMBER) RETURN VARCHAR2;
18 -- FUNCTION get_rule_name ( engine_type IN VARCHAR2, org_id IN NUMBER) RETURN VARCHAR2;
19 -- FUNCTION get_costgroup_name ( engine_type IN VARCHAR2 , org_id IN NUMBER ) RETURN VARCHAR2;
20 -- FUNCTION get_costgroup_desc( engine_type IN VARCHAR2, org_id IN NUMBER ) RETURN VARCHAR2;
21 -- FUNCTION get_costgroup_desc( engine_type IN VARCHAR2, org_id IN NUMBER ) RETURN VARCHAR2;
22 -- FUNCTION IS_Object_selected(..) return ;
23 -- FUNCTION IS_BO_Object_selected(..) return ;
24 -- Procedure init_global_variables;
25 -- procedure simulate_rules( mo_line_id ..);
26 -- procedure insert_trace_header(..);
27 -- procedure insert_trace_lines(..)
28 -- Procedure insert_headers_row;
29 -- Procedure insert_lines_row;
30 -- procedure delete_trace_rows;
31 -- procedure insert_txn_trace_rows(p_txn_header_id, p_insert_lot_flag, p_insert_serial_flag);
32 -- Procedure set_global_variables (p_move_order_line_id );
33 -- Created By : Grao 06/21/01 Created
34 -- --------- ------ ------------------------------------------
35
36 ---- Trace Global Variables ------------
37
38 G_PICK_HEADER_ID NUMBER := 0 ;
39 G_PUTAWAY_HEADER_ID NUMBER := 0 ;
40
41
42
43
44 --- Pick Search order Global Variables
45
46 G_PICK_BUSINESS_OBJECT_ID NUMBER := NULL;
47 G_PICK_OBJECT VARCHAR2(50);
48 G_PICK_PK1_VALUE VARCHAR2(150);
49 G_PICK_PK2_VALUE VARCHAR2(150);
50 G_PICK_PK3_VALUE VARCHAR2(150);
51 G_PICK_PK4_VALUE VARCHAR2(150);
52 G_PICK_PK5_VALUE VARCHAR2(150);
53 G_PICK_STRATEGY_ID NUMBER := NULL;
54 G_PICK_RULE_ID NUMBER := NULL;
55
56 G_PICK_SEQ_NUM NUMBER := NULL;
57
58
59 --- Putaway Search order Global Variables
60
61 G_PUTAWAY_BUSINESS_OBJECT_ID NUMBER := NULL;
62 G_PUTAWAY_OBJECT VARCHAR2(50);
63 G_PUTAWAY_PK1_VALUE VARCHAR2(150);
64 G_PUTAWAY_PK2_VALUE VARCHAR2(150);
65 G_PUTAWAY_PK3_VALUE VARCHAR2(150);
66 G_PUTAWAY_PK4_VALUE VARCHAR2(150);
67 G_PUTAWAY_PK5_VALUE VARCHAR2(150);
68 G_PUTAWAY_STRATEGY_ID NUMBER := NULL;
69 G_PUTAWAY_RULE_ID NUMBER := NULL;
70
71 G_PUTAWAY_SEQ_NUM NUMBER := NULL;
72
73
74 --- Cost Group Search order Global Variables
75
76 G_COSTGROUP_BUSINESS_OBJECT_ID NUMBER := NULL;
77 G_COSTGROUP_OBJECT VARCHAR2(50);
78 G_COSTGROUP_PK1_VALUE VARCHAR2(150);
79 G_COSTGROUP_PK2_VALUE VARCHAR2(150);
80 G_COSTGROUP_PK3_VALUE VARCHAR2(150);
81 G_COSTGROUP_PK4_VALUE VARCHAR2(150);
82 G_COSTGROUP_PK5_VALUE VARCHAR2(150);
83 G_COSTGROUP_STRATEGY_ID NUMBER := NULL;
84 G_COSTGROUP_RULE_ID NUMBER := NULL;
85
86 G_COSTGROUP_SEQ_NUM NUMBER := NULL;
87
88
89 G_COSTGROUP_ID NUMBER := NULL;
90 -------------------------- To identify if Trace records or created for Simulation mode or Rule Execution Mode
91 ---- Default Non Simulation mode 'N' and for Simulation mode 'Y'
92 G_SIMULATION_MODE VARCHAR2(1) DEFAULT 'N' ;
93
94 ---------------------------------------------------------------------
95 -- Record type definition for a rule trace record in cache
96 -- Values for
97 --
98 -- Other Value used for these Flags are 'P' Partial Success and 'V' Default Value
99
100 -- same_subinv_loc_flag Default NULL, Success - 'Y' Failure - 'N'
101 -- ATT_qty_flag Default NULL, Success - 'Y' Failure - 'N'
102 -- consist_string_flag Default NULL, Success - 'Y' Failure - 'N'
103 -- order_string_flag Default NULL, Success - 'Y' Failure - 'N'
104 -- Material_status_flag Default NULL, Success - 'Y' Failure - 'N'
105 -- Pick_UOM_flag Default NULL, Success - 'Y' Failure - 'N'
106 -- partial_pick_flag Default NULL, Success - 'Y' Failure - 'N'
107 -- Serial_number_used_flag Default NULL, Success - 'Y' Failure - 'N'
108 -- CG_comingle_flag Default NULL, Success - 'Y' Failure - 'N'
109
110 TYPE pre_suggestions_record IS RECORD
111 (
112 revision wms_transactions_temp.revision%TYPE,
113 quantity wms_transactions_temp.transaction_quantity%TYPE,
114 lot_number wms_transactions_temp.lot_number%TYPE,
115 lot_expiration_date wms_transactions_temp.lot_expiration_date%TYPE,
116 serial_number wms_transactions_temp.serial_number%TYPE,
117 subinventory_code wms_transactions_temp.from_subinventory_code%TYPE,
118 locator_id wms_transactions_temp.from_locator_id%TYPE,
119 lpn_id wms_transactions_temp.lpn_id%TYPE,
120 cost_group_id wms_transactions_temp.to_cost_group_id%TYPE,
121 uom_code VARCHAR2(3),
122 remaining_qty wms_transactions_temp.transaction_quantity%TYPE,
123 ATT_qty wms_transactions_temp.transaction_quantity%TYPE,
124 suggested_qty wms_transactions_temp.transaction_quantity%TYPE,
125 -- LG convergence added
126 secondary_qty wms_transactions_temp.secondary_quantity%TYPE,
127 secondary_remaining_qty wms_transactions_temp.secondary_quantity%TYPE,
128 secondary_att_qty wms_transactions_temp.secondary_quantity%TYPE,
129 secondary_suggested_qty wms_transactions_temp.secondary_quantity%TYPE,
130 secondary_uom_code VARCHAR2(3),
131 grade_code VARCHAR2(150),
132 -- End of LG convergence
133 same_subinv_loc_flag VARCHAR2(1),
134 ATT_qty_flag VARCHAR2(1),
135 consist_string_flag VARCHAR2(1),
136 order_string_flag VARCHAR2(1),
137 Material_status_flag VARCHAR2(1),
138 Pick_UOM_flag VARCHAR2(1),
139 partial_pick_flag VARCHAR2(1),
140 Serial_number_used_flag VARCHAR2(1),
141 entire_lpn_flag VARCHAR2(1),
142 CG_comingle_flag VARCHAR2(1),
143 comments VARCHAR2(2000)
144 );
145
146
147 --------------------------------------------------------------------
148 -- Definition of table types for the caches
149 TYPE pre_suggestions_record_tbl IS TABLE OF pre_suggestions_record
150 INDEX BY BINARY_INTEGER;
151
152 -- LG convergence
153 TYPE available_inventory_record IS RECORD
154 (
155 revision VARCHAR2(30)
156 ,lot_number VARCHAR2(80)
157 ,lot_expiration_date date
158 ,subinventory_code varchar2(30)
159 ,locator_id NUMBER
160 ,cost_group_id NUMBER
161 ,transaction_uom varchar2(5)
162 ,lpn_id NUMBER
163 ,serial_number VARCHAR2(30)
164 ,onhand_qty NUMBER
165 ,secondary_onhand_qty NUMBER
166 ,grade_code VARCHAR2(150)
167 ,consist_string VARCHAR2(200)
168 ,order_by_string VARCHAR2(200)
169 );
170
171 -- Definition of table types for the caches
172 TYPE available_inventory_tbl IS TABLE OF available_inventory_record
173 INDEX BY BINARY_INTEGER;
174
175 g_available_inv_tbl WMS_SEARCH_ORDER_GLOBALS_PVT.available_inventory_tbl;
176 -- end of LG convergence
177
178 -----------------------------------------
179 --- Function to get the business_object_type name based on the G_PICK_BUSINESS_OBJECT_ID /
180 ---- G_PUTAWAY_BUSINESS_OBJECT_ID/G_COSTGROUP_BUSINESS_OBJECT_ID
181 --- G_PICK_BUSINESS_OBJECT_ID / G_PUTAWAY_BUSINESS_OBJECT_IDis /
182 ---- G_COSTGROUP_BUSINESS_OBJECT_ID get updated by Rules Engine API
183
184
185 FUNCTION get_object_type
186 ( engine_type IN VARCHAR2)
187 RETURN VARCHAR2;
188 -----------------------------------------
189 --- Function to get the object_ name based on the G_PICK_BUSINESS_OBJECT_ID /
190 ---- G_PUTAWAY_BUSINESS_OBJECT_ID/G_COSTGROUP_BUSINESS_OBJECT_ID
191 --- G_PICK_BUSINESS_OBJECT_ID / G_PUTAWAY_BUSINESS_OBJECT_IDis /
192 ---- G_COSTGROUP_BUSINESS_OBJECT_ID , ORGANIZATIONS_ID, PK_VALUES get updated by Rules Engine API
193
194
195
196 FUNCTION get_object_name
197 ( engine_type IN VARCHAR2,
198 org_id number)
199 RETURN VARCHAR2;
200
201 --- Function to get the Strategy name based on the G_PICK_STRATEGY_ID /G_PUTAWAY_STRATEGY_ID
202 --- G_PICK_STRATEGY_ID /G_PUTAWAY_STRATEGY_ID is get updated by Rules Engine API
203
204 FUNCTION get_strategy_name
205 ( engine_type IN VARCHAR2
206 , org_id IN NUMBER
207 )
208 RETURN VARCHAR2;
209
210
211 -- Function to get the Rule name based on the G_COSTGROUP_RULE_ID
212 -- G_COSTGROUP_RULE_ID is get updated by Rules Engine API
213
214
215 FUNCTION get_rule_name
216 ( engine_type IN VARCHAR2
217 , org_id IN NUMBER
218 )
219 RETURN VARCHAR2;
220
221
222 -- Function to get the Cost Group name based on the G_COSTGROUP_ID
223 -- G_COSTGROUP_ID is updated by Rules Engine API
224
225
226 FUNCTION get_costgroup_name
227 ( engine_type IN VARCHAR2
228 , org_id IN NUMBER
229 )
230 RETURN VARCHAR2;
231
232 -- Function to get the Cost Group Desc based on the G_COSTGROUP_ID
233 -- G_COSTGROUP_ID is updated by Rules Engine API
234
235
236 FUNCTION get_costgroup_desc
237 ( engine_type IN VARCHAR2
238 , org_id IN NUMBER
239 )
240 RETURN VARCHAR2;
241
242 ---- Initilize All Global Variables
243 ----
244 Procedure init_global_variables;
245
246 ---- Call Rules Engine - Create Suggestions ---
247 ---------------------------------------------
248
249 procedure simulate_rules
250 ( p_mo_line_id IN VARCHAR2,
251 p_simulation_flag IN NUMBER,
252 p_simulation_id IN NUMBER,
253 x_msg_data OUT NOCOPY varchar2,
254 x_return_status OUT NOCOPY varchar2,
255 x_return_status_qty OUT NOCOPY varchar2
256 );
257
258 ----------------Insert into Trace header table ------
259
260 procedure insert_trace_header
261 (
262 p_api_version in NUMBER
263 ,p_init_msg_list in VARCHAR2 DEFAULT fnd_api.g_false
264 ,p_validation_level in NUMBER DEFAULT fnd_api.g_valid_level_full
265 ,x_return_status out NOCOPY VARCHAR2
266 ,x_msg_count out NOCOPY NUMBER
267 ,x_msg_data out NOCOPY VARCHAR2
268 ,x_header_id out NOCOPY NUMBER
269 ,p_pick_header_id in NUMBER
270 ,p_move_order_line_id in NUMBER
271 ,p_total_qty in NUMBER
272 ,p_secondary_total_qty in NUMBER
273 ,p_type_code in NUMBER
274 ,p_business_object_id in NUMBER
275 ,p_object_id in NUMBER
276 ,p_strategy_id in NUMBER
277 );
278
279 --------------- Insert into trace lines table -------
280
281 procedure insert_trace_lines
282 (
283 p_api_version in NUMBER
284 ,p_init_msg_list in VARCHAR2 DEFAULT fnd_api.g_false
285 ,p_validation_level in NUMBER DEFAULT fnd_api.g_valid_level_full
286 ,x_return_status out NOCOPY VARCHAR2
287 ,x_msg_count out NOCOPY number
288 ,x_msg_data out NOCOPY varchar2
289 ,p_header_id in NUMBER
290 ,p_rule_id in NUMBER
291 ,p_pre_suggestions IN WMS_SEARCH_ORDER_GLOBALS_PVT.pre_suggestions_record_tbl
292 );
293 --------------------- called internally to insert a single row into trace headers
294 Procedure insert_headers_row
295 (
296 x_header_id IN NUMBER,
297 x_pick_header_id IN NUMBER,
298 x_move_order_line_id IN NUMBER,
299 x_total_qty IN NUMBER,
300 x_secondary_total_qty IN NUMBER, -- new
301 x_type_code IN NUMBER,
302 x_business_object_id IN NUMBER,
303 x_object_id IN NUMBER,
304 x_strategy_id IN NUMBER,
305 x_last_updated_by IN NUMBER,
306 x_last_update_date IN DATE ,
307 x_created_by IN NUMBER ,
308 x_creation_date IN DATE ,
309 x_last_update_login IN NUMBER ,
310 x_object_name IN VARCHAR2,
311 x_simulation_mode IN VARCHAR2,
312 x_sid IN NUMBER
313 ) ;
314
315 --------------------- called internally to insert a single row into trace lines
316 Procedure insert_lines_row
317 (
318 x_header_id IN NUMBER
319 ,x_line_id IN NUMBER
320 ,x_rule_id IN NUMBER
321 ,x_quantity IN NUMBER
322 ,x_revision IN VARCHAR2
323 ,x_lot_number IN VARCHAR2
324 ,x_lot_expiration_date IN DATE
325 ,x_serial_number IN VARCHAR2
326 ,x_subinventory_code IN VARCHAR2
327 ,x_locator_id IN NUMBER
328 ,x_lpn_id IN NUMBER
329 ,x_cost_group_id IN NUMBER
330 ,x_uom_code IN VARCHAR2
331 ,x_remaining_qty IN NUMBER
332 ,x_ATT_qty IN NUMBER
333 ,x_suggested_qty IN NUMBER
334 ,x_sec_uom_code IN VARCHAR2 -- new
335 ,x_sec_qty IN NUMBER -- new
336 ,x_sec_ATT_qty IN NUMBER -- new
337 ,x_sec_suggested_qty IN NUMBER -- new
338 ,x_grade_code IN VARCHAR2 -- new
339 ,x_same_subinv_loc_flag IN VARCHAR2
340 ,x_ATT_qty_flag IN VARCHAR2
341 , x_consist_string_flag IN VARCHAR2
342 , x_order_string_flag IN VARCHAR2
343 ,x_Material_status_flag IN VARCHAR2
344 ,x_Pick_UOM_flag IN VARCHAR2
345 ,x_partial_pick_flag IN VARCHAR2
346 ,x_Serial_number_used_flag IN VARCHAR2
347 ,x_CG_comingle_flag IN VARCHAR2
348 ,x_entire_lpn_flag IN VARCHAR2
349 ,x_comments IN VARCHAR2
350 ,x_creation_date IN DATE
351 ,x_created_by IN NUMBER
352 ,x_last_update_date IN DATE
353 ,x_last_updated_by IN NUMBER
354 ,x_last_update_login IN NUMBER
355 ) ;
356 -----------------------------------
357 -- Function that return 'TRUE' and 'FALSE' if the passed item_id is
358 -- in Global Variables
359
360 FUNCTION IS_Object_selected ( p_move_order_line_id number,
361 p_engine_type Varchar2,
362 p_object_type varchar2,
363 p_object_id number )
364 RETURN VARCHAR2;
365 -------------- Overloaded Function --------------
366 FUNCTION IS_BO_Object_selected ( p_move_order_line_id number,
367 p_engine_type Varchar2,
368 p_object_type varchar2,
369 p_object Varchar2 )
370 RETURN VARCHAR2;
371
372 PROCEDURE DELETE_TRACE_ROWS;
373
374 ---------------------------------------------------
375 --- This procedure call is used to populate records into
376 --- Three temp table one for each material suggestions, lot numbers
377 --- and serial number tables. Lot and Serial Tables will be populated
378 --- based on the lot_insert_flag and serial_insert_flags
379 --- '0' - for no records to be inserted and '1' for records to be inserted
380 --- The data in these three tables will be used by Run Time trace form
381
382 procedure insert_txn_trace_rows(
383 p_api_version in NUMBER
384 ,p_init_msg_list in VARCHAR2 DEFAULT fnd_api.g_false
385 ,p_validation_level in NUMBER DEFAULT fnd_api.g_valid_level_full
386 ,x_return_status out NOCOPY VARCHAR2
387 ,x_msg_count out NOCOPY number
388 ,x_msg_data out NOCOPY varchar2
389 ,p_txn_header_id in number
390 ,p_insert_lot_flag in number
391 ,p_insert_serial_flag in number);
392
393 ---------------------------------------------------------------------------------------
394 ---- This procedure is used by 'Run time trace form' to set the
395 ---- global variables based on WMS_RULE_TRACE_HEADERS record for a given move order
396 ---- so that the actual traceed path could be shown in the form.
397
398 procedure set_global_variables(
399 p_move_order_line_id in NUMBER
400 ,p_trace_date in DATE
401 ,x_return_status out NOCOPY VARCHAR2);
402 -------------------------------------------------
403 --- get Pick or Putaway header id from global variables
404
405 FUNCTION get_trace_line_header_id
406 ( engine_type IN VARCHAR2 )
407 RETURN NUMBER;
408
409 FUNCTION get_strategy_id( p_rule_type IN NUMBER )
410 RETURN NUMBER;
411
412 FUNCTION get_rule_id( p_rule_type IN NUMBER )
413 RETURN NUMBER;
414
415
416 FUNCTION get_seq_num ( p_rule_type IN NUMBER )
417 RETURN NUMBER;
418
419
420
421 END; -- Package Specification WMS_SEARCH_ORDER_GLOBALS_PVT