14: l_record_identifier VARCHAR2(5000) := '';
15: l_put_comma VARCHAR2(5) :='N';
16: BEGIN
17: IF ( p_material_req_rec.item_group_name IS NOT NULL AND
18: p_material_req_rec.item_group_name <> FND_API.G_MISS_CHAR ) THEN
19: l_record_identifier := l_record_identifier || p_material_req_rec.item_group_name;
20: l_put_comma := 'Y';
21: ELSE
22: l_put_comma := 'N';
22: l_put_comma := 'N';
23: END IF;
24: l_record_identifier := l_record_identifier || ' ';
25: IF ( p_material_req_rec.item_number IS NOT NULL AND
26: p_material_req_rec.item_number <> FND_API.G_MISS_CHAR ) THEN
27: IF(l_put_comma = 'Y')
28: THEN
29: l_record_identifier := l_record_identifier || ',';
30: END IF;
33: END IF;
34: --sukhwsin: Code for SB Effectivity starts
35: l_record_identifier := l_record_identifier || ' ';
36: IF ( p_material_req_rec.MC_NAME IS NOT NULL AND
37: p_material_req_rec.MC_NAME <> FND_API.G_MISS_CHAR ) THEN
38: IF(l_put_comma = 'Y')
39: THEN
40: l_record_identifier := l_record_identifier || ',';
41: END IF;
43: l_put_comma := 'Y';
44: END IF;
45: l_record_identifier := l_record_identifier || ' ';
46: IF ( p_material_req_rec.MC_POSITION IS NOT NULL AND
47: p_material_req_rec.MC_POSITION <> FND_API.G_MISS_CHAR ) THEN
48: IF(l_put_comma = 'Y')
49: THEN
50: l_record_identifier := l_record_identifier || ',';
51: END IF;
54: END IF;
55: --sukhwsin: Code for SB Effectivity ends
56: l_record_identifier := l_record_identifier || ' ';
57: IF ( p_material_req_rec.POSITION_PATH IS NOT NULL AND
58: p_material_req_rec.POSITION_PATH <> FND_API.G_MISS_CHAR ) THEN
59: IF(l_put_comma = 'Y')
60: THEN
61: l_record_identifier := l_record_identifier || ',';
62: END IF;
71: IS
72: l_record_identifier VARCHAR2(2000) := '';
73: BEGIN
74: IF ( p_route_req_rec.ITEM_NUMBER IS NOT NULL AND
75: p_route_req_rec.ITEM_NUMBER <> FND_API.G_MISS_CHAR ) THEN
76: l_record_identifier := l_record_identifier || p_route_req_rec.ITEM_NUMBER ;
77: l_record_identifier := l_record_identifier || ' ';
78: END IF;
79: IF ( p_route_req_rec.ORGANIZATION_CODE IS NOT NULL AND
76: l_record_identifier := l_record_identifier || p_route_req_rec.ITEM_NUMBER ;
77: l_record_identifier := l_record_identifier || ' ';
78: END IF;
79: IF ( p_route_req_rec.ORGANIZATION_CODE IS NOT NULL AND
80: p_route_req_rec.ORGANIZATION_CODE <> FND_API.G_MISS_CHAR ) THEN
81: l_record_identifier := l_record_identifier || p_route_req_rec.ORGANIZATION_CODE;
82: l_record_identifier := l_record_identifier || ' ';
83: END IF;
84: IF ( p_route_req_rec.MC_NAME IS NOT NULL AND
81: l_record_identifier := l_record_identifier || p_route_req_rec.ORGANIZATION_CODE;
82: l_record_identifier := l_record_identifier || ' ';
83: END IF;
84: IF ( p_route_req_rec.MC_NAME IS NOT NULL AND
85: p_route_req_rec.MC_NAME <> FND_API.G_MISS_CHAR ) THEN
86: l_record_identifier := l_record_identifier || p_route_req_rec.MC_NAME;
87: l_record_identifier := l_record_identifier || ' ';
88: END IF;
89: IF ( p_route_req_rec.MC_REVISION IS NOT NULL AND
86: l_record_identifier := l_record_identifier || p_route_req_rec.MC_NAME;
87: l_record_identifier := l_record_identifier || ' ';
88: END IF;
89: IF ( p_route_req_rec.MC_REVISION IS NOT NULL AND
90: p_route_req_rec.MC_REVISION <> FND_API.G_MISS_CHAR ) THEN
91: l_record_identifier := l_record_identifier || p_route_req_rec.MC_REVISION;
92: END IF;
93: RETURN l_record_identifier;
94: END get_effct_identifier;
103: IS
104: l_return_status VARCHAR2(1);
105: l_msg_data VARCHAR2(2000);
106: BEGIN
107: x_return_status := FND_API.G_RET_STS_SUCCESS;
108: -- Check if a value is passed in p_object_id
109: IF ( p_object_id = FND_API.G_MISS_NUM OR
110: p_object_id IS NULL ) THEN
111: FND_MESSAGE.set_name( 'AHL', 'AHL_RM_OBJECT_ID_NULL' );
105: l_msg_data VARCHAR2(2000);
106: BEGIN
107: x_return_status := FND_API.G_RET_STS_SUCCESS;
108: -- Check if a value is passed in p_object_id
109: IF ( p_object_id = FND_API.G_MISS_NUM OR
110: p_object_id IS NULL ) THEN
111: FND_MESSAGE.set_name( 'AHL', 'AHL_RM_OBJECT_ID_NULL' );
112: FND_MSG_PUB.add;
113: x_return_status := FND_API.G_RET_STS_ERROR;
109: IF ( p_object_id = FND_API.G_MISS_NUM OR
110: p_object_id IS NULL ) THEN
111: FND_MESSAGE.set_name( 'AHL', 'AHL_RM_OBJECT_ID_NULL' );
112: FND_MSG_PUB.add;
113: x_return_status := FND_API.G_RET_STS_ERROR;
114: RETURN;
115: END IF;
116: -- Check if a value is passed in p_association_type
117: IF ( p_association_type = FND_API.G_MISS_CHAR OR
113: x_return_status := FND_API.G_RET_STS_ERROR;
114: RETURN;
115: END IF;
116: -- Check if a value is passed in p_association_type
117: IF ( p_association_type = FND_API.G_MISS_CHAR OR
118: p_association_type IS NULL ) THEN
119: FND_MESSAGE.set_name( 'AHL', 'AHL_RM_ASSOC_TYPE_NULL' );
120: FND_MSG_PUB.add;
121: x_return_status := FND_API.G_RET_STS_ERROR;
117: IF ( p_association_type = FND_API.G_MISS_CHAR OR
118: p_association_type IS NULL ) THEN
119: FND_MESSAGE.set_name( 'AHL', 'AHL_RM_ASSOC_TYPE_NULL' );
120: FND_MSG_PUB.add;
121: x_return_status := FND_API.G_RET_STS_ERROR;
122: RETURN;
123: END IF;
124: -- Check if a valid value is passed in p_association_type
125: IF ( p_association_type <> 'ROUTE' AND
127: p_association_type <> 'DISPOSITION' ) THEN
128: FND_MESSAGE.set_name( 'AHL', 'AHL_RM_ASSOC_TYPE_INVALID' );
129: FND_MESSAGE.set_token( 'FIELD', p_association_type );
130: FND_MSG_PUB.add;
131: x_return_status := FND_API.G_RET_STS_ERROR;
132: RETURN;
133: END IF;
134: -- Check if the Route / Operation is in Updatable status
135: IF ( p_association_type = 'ROUTE' ) THEN
153: x_msg_data => l_msg_data,
154: p_efct_id => p_object_id
155: );
156: END IF;
157: IF ( NVL( l_return_status, 'X' ) <> FND_API.G_RET_STS_SUCCESS ) THEN
158: FND_MESSAGE.set_name( 'AHL', l_msg_data );
159: FND_MSG_PUB.add;
160: x_return_status := l_return_status;
161: RETURN;
164: IF ( p_material_req_tbl.count < 1 ) THEN
165: FND_MESSAGE.set_name( 'AHL', 'AHL_COM_INVALID_PROCEDURE_CALL' );
166: FND_MESSAGE.set_token( 'PROCEDURE', G_PKG_NAME || '.' || G_API_NAME );
167: FND_MSG_PUB.add;
168: x_return_status := FND_API.G_RET_STS_ERROR;
169: RETURN;
170: END IF;
171: -- Validate DML Operation
172: FOR i IN 1..p_material_req_tbl.count LOOP
176: FND_MESSAGE.set_name( 'AHL', 'AHL_COM_INVALID_DML' );
177: FND_MESSAGE.set_token( 'FIELD', p_material_req_tbl(i).dml_operation );
178: FND_MESSAGE.set_token( 'RECORD', get_record_identifier( p_material_req_tbl(i) ) );
179: FND_MSG_PUB.add;
180: x_return_status := FND_API.G_RET_STS_ERROR;
181: RETURN;
182: END IF;
183: END LOOP;
184: END validate_api_inputs;
192: IS
193: l_return_status VARCHAR2(1);
194: l_msg_data VARCHAR2(2000);
195: BEGIN
196: x_return_status := FND_API.G_RET_STS_SUCCESS;
197: -- Check if a valid value is passed in p_rt_oper_resource_id
198: IF ( p_object_id = FND_API.G_MISS_NUM OR
199: p_object_id IS NULL ) THEN
200: FND_MESSAGE.set_name( 'AHL', 'AHL_RM_efct_OBJECT_NULL' );
194: l_msg_data VARCHAR2(2000);
195: BEGIN
196: x_return_status := FND_API.G_RET_STS_SUCCESS;
197: -- Check if a valid value is passed in p_rt_oper_resource_id
198: IF ( p_object_id = FND_API.G_MISS_NUM OR
199: p_object_id IS NULL ) THEN
200: FND_MESSAGE.set_name( 'AHL', 'AHL_RM_efct_OBJECT_NULL' );
201: FND_MSG_PUB.add;
202: x_return_status := FND_API.G_RET_STS_ERROR;
198: IF ( p_object_id = FND_API.G_MISS_NUM OR
199: p_object_id IS NULL ) THEN
200: FND_MESSAGE.set_name( 'AHL', 'AHL_RM_efct_OBJECT_NULL' );
201: FND_MSG_PUB.add;
202: x_return_status := FND_API.G_RET_STS_ERROR;
203: RAISE FND_API.G_EXC_ERROR;
204: END IF;
205: AHL_RM_ROUTE_UTIL.validate_route_status
206: (
199: p_object_id IS NULL ) THEN
200: FND_MESSAGE.set_name( 'AHL', 'AHL_RM_efct_OBJECT_NULL' );
201: FND_MSG_PUB.add;
202: x_return_status := FND_API.G_RET_STS_ERROR;
203: RAISE FND_API.G_EXC_ERROR;
204: END IF;
205: AHL_RM_ROUTE_UTIL.validate_route_status
206: (
207: p_route_id => p_object_id,
207: p_route_id => p_object_id,
208: x_return_status => l_return_status,
209: x_msg_data => l_msg_data
210: );
211: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
212: FND_MESSAGE.set_name( 'AHL', l_msg_data );
213: FND_MSG_PUB.add;
214: x_return_status := FND_API.G_RET_STS_ERROR;
215: RETURN;
210: );
211: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
212: FND_MESSAGE.set_name( 'AHL', l_msg_data );
213: FND_MSG_PUB.add;
214: x_return_status := FND_API.G_RET_STS_ERROR;
215: RETURN;
216: END IF;
217: -- Check if at least one record is passed in p_rt_oper_resource_tbl
218: IF ( p_route_efct_tbl.count < 1 ) THEN
218: IF ( p_route_efct_tbl.count < 1 ) THEN
219: FND_MESSAGE.set_name( 'AHL', 'AHL_COM_INVALID_PROCEDURE_CALL' );
220: FND_MESSAGE.set_token( 'PROCEDURE', G_PKG_NAME || '.' || G_API_NAME1 );
221: FND_MSG_PUB.add;
222: x_return_status := FND_API.G_RET_STS_ERROR;
223: RETURN;
224: END IF;
225: -- Validate DML Operation
226: FOR i IN 1..p_route_efct_tbl.count LOOP
230: FND_MESSAGE.set_name( 'AHL', 'AHL_COM_INVALID_DML' );
231: FND_MESSAGE.set_token( 'FIELD', p_route_efct_tbl(i).dml_operation );
232: -- FND_MESSAGE.set_token( 'RECORD', get_record_identifier( p_route_efct_tbl(i) ) );
233: FND_MSG_PUB.add;
234: x_return_status := FND_API.G_RET_STS_ERROR;
235: RETURN;
236: END IF;
237: END LOOP;
238: END validate_efct_api_inputs;
244: IS
245: BEGIN
246: IF ( p_x_material_req_rec.position_path IS NULL ) THEN
247: p_x_material_req_rec.position_path_id := NULL;
248: ELSIF ( p_x_material_req_rec.position_path = FND_API.G_MISS_CHAR ) THEN
249: p_x_material_req_rec.position_path_id := FND_API.G_MISS_NUM;
250: END IF;
251: IF ( p_x_material_req_rec.item_group_name IS NULL ) THEN
252: p_x_material_req_rec.item_group_id := NULL;
245: BEGIN
246: IF ( p_x_material_req_rec.position_path IS NULL ) THEN
247: p_x_material_req_rec.position_path_id := NULL;
248: ELSIF ( p_x_material_req_rec.position_path = FND_API.G_MISS_CHAR ) THEN
249: p_x_material_req_rec.position_path_id := FND_API.G_MISS_NUM;
250: END IF;
251: IF ( p_x_material_req_rec.item_group_name IS NULL ) THEN
252: p_x_material_req_rec.item_group_id := NULL;
253: ELSIF ( p_x_material_req_rec.item_group_name = FND_API.G_MISS_CHAR ) THEN
249: p_x_material_req_rec.position_path_id := FND_API.G_MISS_NUM;
250: END IF;
251: IF ( p_x_material_req_rec.item_group_name IS NULL ) THEN
252: p_x_material_req_rec.item_group_id := NULL;
253: ELSIF ( p_x_material_req_rec.item_group_name = FND_API.G_MISS_CHAR ) THEN
254: p_x_material_req_rec.item_group_id := FND_API.G_MISS_NUM;
255: END IF;
256: IF ( p_x_material_req_rec.item_number IS NULL ) THEN
257: p_x_material_req_rec.inventory_item_id := NULL;
250: END IF;
251: IF ( p_x_material_req_rec.item_group_name IS NULL ) THEN
252: p_x_material_req_rec.item_group_id := NULL;
253: ELSIF ( p_x_material_req_rec.item_group_name = FND_API.G_MISS_CHAR ) THEN
254: p_x_material_req_rec.item_group_id := FND_API.G_MISS_NUM;
255: END IF;
256: IF ( p_x_material_req_rec.item_number IS NULL ) THEN
257: p_x_material_req_rec.inventory_item_id := NULL;
258: p_x_material_req_rec.inventory_org_id := NULL;
255: END IF;
256: IF ( p_x_material_req_rec.item_number IS NULL ) THEN
257: p_x_material_req_rec.inventory_item_id := NULL;
258: p_x_material_req_rec.inventory_org_id := NULL;
259: ELSIF ( p_x_material_req_rec.item_number = FND_API.G_MISS_CHAR ) THEN
260: p_x_material_req_rec.inventory_item_id := FND_API.G_MISS_NUM;
261: p_x_material_req_rec.inventory_org_id := FND_API.G_MISS_NUM;
262: END IF;
263: IF ( p_x_material_req_rec.uom IS NULL ) THEN
256: IF ( p_x_material_req_rec.item_number IS NULL ) THEN
257: p_x_material_req_rec.inventory_item_id := NULL;
258: p_x_material_req_rec.inventory_org_id := NULL;
259: ELSIF ( p_x_material_req_rec.item_number = FND_API.G_MISS_CHAR ) THEN
260: p_x_material_req_rec.inventory_item_id := FND_API.G_MISS_NUM;
261: p_x_material_req_rec.inventory_org_id := FND_API.G_MISS_NUM;
262: END IF;
263: IF ( p_x_material_req_rec.uom IS NULL ) THEN
264: p_x_material_req_rec.uom_code := NULL;
257: p_x_material_req_rec.inventory_item_id := NULL;
258: p_x_material_req_rec.inventory_org_id := NULL;
259: ELSIF ( p_x_material_req_rec.item_number = FND_API.G_MISS_CHAR ) THEN
260: p_x_material_req_rec.inventory_item_id := FND_API.G_MISS_NUM;
261: p_x_material_req_rec.inventory_org_id := FND_API.G_MISS_NUM;
262: END IF;
263: IF ( p_x_material_req_rec.uom IS NULL ) THEN
264: p_x_material_req_rec.uom_code := NULL;
265: ELSIF ( p_x_material_req_rec.uom = FND_API.G_MISS_CHAR ) THEN
261: p_x_material_req_rec.inventory_org_id := FND_API.G_MISS_NUM;
262: END IF;
263: IF ( p_x_material_req_rec.uom IS NULL ) THEN
264: p_x_material_req_rec.uom_code := NULL;
265: ELSIF ( p_x_material_req_rec.uom = FND_API.G_MISS_CHAR ) THEN
266: p_x_material_req_rec.uom_code := FND_API.G_MISS_CHAR;
267: END IF;
268: --sukhwsin: Code changes for SB Effectivity starts
269: IF ( p_x_material_req_rec.mc_name IS NULL ) THEN
262: END IF;
263: IF ( p_x_material_req_rec.uom IS NULL ) THEN
264: p_x_material_req_rec.uom_code := NULL;
265: ELSIF ( p_x_material_req_rec.uom = FND_API.G_MISS_CHAR ) THEN
266: p_x_material_req_rec.uom_code := FND_API.G_MISS_CHAR;
267: END IF;
268: --sukhwsin: Code changes for SB Effectivity starts
269: IF ( p_x_material_req_rec.mc_name IS NULL ) THEN
270: p_x_material_req_rec.mc_id := NULL;
267: END IF;
268: --sukhwsin: Code changes for SB Effectivity starts
269: IF ( p_x_material_req_rec.mc_name IS NULL ) THEN
270: p_x_material_req_rec.mc_id := NULL;
271: ELSIF ( p_x_material_req_rec.mc_name = FND_API.G_MISS_CHAR ) THEN
272: p_x_material_req_rec.mc_id := FND_API.G_MISS_NUM;
273: END IF;
274: IF ( p_x_material_req_rec.mc_position IS NULL ) THEN
275: p_x_material_req_rec.mc_position_key := NULL;
268: --sukhwsin: Code changes for SB Effectivity starts
269: IF ( p_x_material_req_rec.mc_name IS NULL ) THEN
270: p_x_material_req_rec.mc_id := NULL;
271: ELSIF ( p_x_material_req_rec.mc_name = FND_API.G_MISS_CHAR ) THEN
272: p_x_material_req_rec.mc_id := FND_API.G_MISS_NUM;
273: END IF;
274: IF ( p_x_material_req_rec.mc_position IS NULL ) THEN
275: p_x_material_req_rec.mc_position_key := NULL;
276: ELSIF ( p_x_material_req_rec.mc_position = FND_API.G_MISS_CHAR ) THEN
272: p_x_material_req_rec.mc_id := FND_API.G_MISS_NUM;
273: END IF;
274: IF ( p_x_material_req_rec.mc_position IS NULL ) THEN
275: p_x_material_req_rec.mc_position_key := NULL;
276: ELSIF ( p_x_material_req_rec.mc_position = FND_API.G_MISS_CHAR ) THEN
277: p_x_material_req_rec.mc_position_key := FND_API.G_MISS_NUM;
278: END IF;
279: --sukhwsin: Code changes for SB Effectivity ends
280: END clear_lov_attribute_ids;
273: END IF;
274: IF ( p_x_material_req_rec.mc_position IS NULL ) THEN
275: p_x_material_req_rec.mc_position_key := NULL;
276: ELSIF ( p_x_material_req_rec.mc_position = FND_API.G_MISS_CHAR ) THEN
277: p_x_material_req_rec.mc_position_key := FND_API.G_MISS_NUM;
278: END IF;
279: --sukhwsin: Code changes for SB Effectivity ends
280: END clear_lov_attribute_ids;
281: -- Procedure to Default NULL / G_MISS Values for LOV attributes
287: BEGIN
288: IF ( p_x_route_efct_rec.mc_name IS NULL ) THEN
289: p_x_route_efct_rec.mc_id := NULL;
290: p_x_route_efct_rec.mc_header_id := NULL;
291: ELSIF ( p_x_route_efct_rec.mc_name = FND_API.G_MISS_CHAR ) THEN
292: p_x_route_efct_rec.mc_header_id := FND_API.G_MISS_NUM;
293: p_x_route_efct_rec.mc_id := FND_API.G_MISS_NUM;
294: END IF;
295: IF ( p_x_route_efct_rec.MC_REVISION IS NULL ) THEN
288: IF ( p_x_route_efct_rec.mc_name IS NULL ) THEN
289: p_x_route_efct_rec.mc_id := NULL;
290: p_x_route_efct_rec.mc_header_id := NULL;
291: ELSIF ( p_x_route_efct_rec.mc_name = FND_API.G_MISS_CHAR ) THEN
292: p_x_route_efct_rec.mc_header_id := FND_API.G_MISS_NUM;
293: p_x_route_efct_rec.mc_id := FND_API.G_MISS_NUM;
294: END IF;
295: IF ( p_x_route_efct_rec.MC_REVISION IS NULL ) THEN
296: p_x_route_efct_rec.mc_header_id := NULL;
289: p_x_route_efct_rec.mc_id := NULL;
290: p_x_route_efct_rec.mc_header_id := NULL;
291: ELSIF ( p_x_route_efct_rec.mc_name = FND_API.G_MISS_CHAR ) THEN
292: p_x_route_efct_rec.mc_header_id := FND_API.G_MISS_NUM;
293: p_x_route_efct_rec.mc_id := FND_API.G_MISS_NUM;
294: END IF;
295: IF ( p_x_route_efct_rec.MC_REVISION IS NULL ) THEN
296: p_x_route_efct_rec.mc_header_id := NULL;
297: ELSIF ( p_x_route_efct_rec.MC_REVISION = FND_API.G_MISS_CHAR ) THEN
293: p_x_route_efct_rec.mc_id := FND_API.G_MISS_NUM;
294: END IF;
295: IF ( p_x_route_efct_rec.MC_REVISION IS NULL ) THEN
296: p_x_route_efct_rec.mc_header_id := NULL;
297: ELSIF ( p_x_route_efct_rec.MC_REVISION = FND_API.G_MISS_CHAR ) THEN
298: p_x_route_efct_rec.mc_header_id := FND_API.G_MISS_NUM;
299: END IF;
300: IF ( p_x_route_efct_rec.item_number IS NULL OR p_x_route_efct_rec.ORGANIZATION_CODE IS NULL ) THEN
301: p_x_route_efct_rec.inventory_item_id := NULL;
294: END IF;
295: IF ( p_x_route_efct_rec.MC_REVISION IS NULL ) THEN
296: p_x_route_efct_rec.mc_header_id := NULL;
297: ELSIF ( p_x_route_efct_rec.MC_REVISION = FND_API.G_MISS_CHAR ) THEN
298: p_x_route_efct_rec.mc_header_id := FND_API.G_MISS_NUM;
299: END IF;
300: IF ( p_x_route_efct_rec.item_number IS NULL OR p_x_route_efct_rec.ORGANIZATION_CODE IS NULL ) THEN
301: p_x_route_efct_rec.inventory_item_id := NULL;
302: p_x_route_efct_rec.inventory_master_org_id := NULL;
299: END IF;
300: IF ( p_x_route_efct_rec.item_number IS NULL OR p_x_route_efct_rec.ORGANIZATION_CODE IS NULL ) THEN
301: p_x_route_efct_rec.inventory_item_id := NULL;
302: p_x_route_efct_rec.inventory_master_org_id := NULL;
303: ELSIF ( p_x_route_efct_rec.item_number = FND_API.G_MISS_CHAR OR p_x_route_efct_rec.ORGANIZATION_CODE = FND_API.G_MISS_CHAR ) THEN
304: p_x_route_efct_rec.inventory_item_id := FND_API.G_MISS_NUM;
305: p_x_route_efct_rec.inventory_master_org_id := FND_API.G_MISS_NUM;
306: END IF;
307: END clear_efct_attribute_ids;
300: IF ( p_x_route_efct_rec.item_number IS NULL OR p_x_route_efct_rec.ORGANIZATION_CODE IS NULL ) THEN
301: p_x_route_efct_rec.inventory_item_id := NULL;
302: p_x_route_efct_rec.inventory_master_org_id := NULL;
303: ELSIF ( p_x_route_efct_rec.item_number = FND_API.G_MISS_CHAR OR p_x_route_efct_rec.ORGANIZATION_CODE = FND_API.G_MISS_CHAR ) THEN
304: p_x_route_efct_rec.inventory_item_id := FND_API.G_MISS_NUM;
305: p_x_route_efct_rec.inventory_master_org_id := FND_API.G_MISS_NUM;
306: END IF;
307: END clear_efct_attribute_ids;
308: -- Procedure to perform Value to ID conversion for appropriate attributes
301: p_x_route_efct_rec.inventory_item_id := NULL;
302: p_x_route_efct_rec.inventory_master_org_id := NULL;
303: ELSIF ( p_x_route_efct_rec.item_number = FND_API.G_MISS_CHAR OR p_x_route_efct_rec.ORGANIZATION_CODE = FND_API.G_MISS_CHAR ) THEN
304: p_x_route_efct_rec.inventory_item_id := FND_API.G_MISS_NUM;
305: p_x_route_efct_rec.inventory_master_org_id := FND_API.G_MISS_NUM;
306: END IF;
307: END clear_efct_attribute_ids;
308: -- Procedure to perform Value to ID conversion for appropriate attributes
309: PROCEDURE convert_values_to_ids
340: l_return_status VARCHAR2(1);
341: l_msg_data VARCHAR2(2000);
342: l_item_comp_detail_id NUMBER;
343: BEGIN
344: x_return_status := FND_API.G_RET_STS_SUCCESS;
345: -- Convert / Validate Item Composition
346: IF ( p_association_type = 'DISPOSITION' AND
347: p_x_material_req_rec.item_comp_detail_id IS NOT NULL AND
348: p_x_material_req_rec.item_comp_detail_id <> FND_API.G_MISS_NUM ) THEN
344: x_return_status := FND_API.G_RET_STS_SUCCESS;
345: -- Convert / Validate Item Composition
346: IF ( p_association_type = 'DISPOSITION' AND
347: p_x_material_req_rec.item_comp_detail_id IS NOT NULL AND
348: p_x_material_req_rec.item_comp_detail_id <> FND_API.G_MISS_NUM ) THEN
349: AHL_RM_ROUTE_UTIL.validate_item_comp
350: (
351: x_return_status => l_return_status,
352: x_msg_data => l_msg_data,
351: x_return_status => l_return_status,
352: x_msg_data => l_msg_data,
353: p_x_item_comp_detail_id => p_x_material_req_rec.item_comp_detail_id
354: );
355: IF ( NVL( l_return_status, 'X' ) <> FND_API.G_RET_STS_SUCCESS ) THEN
356: FND_MESSAGE.set_name( 'AHL', l_msg_data );
357: FND_MESSAGE.set_token( 'FIELD', TO_CHAR( p_x_material_req_rec.item_comp_detail_id ) );
358: FND_MESSAGE.set_token( 'RECORD', get_record_identifier( p_x_material_req_rec ) );
359: FND_MSG_PUB.add;
362: END IF;
363: -- Convert / Validate Position path
364: IF ( p_association_type = 'DISPOSITION' AND
365: ( p_x_material_req_rec.position_path_id IS NOT NULL AND
366: p_x_material_req_rec.position_path_id <> FND_API.G_MISS_NUM ) OR
367: ( p_x_material_req_rec.position_path IS NOT NULL AND
368: p_x_material_req_rec.position_path <> FND_API.G_MISS_CHAR ) ) THEN
369: AHL_RM_ROUTE_UTIL.validate_position_path
370: (
364: IF ( p_association_type = 'DISPOSITION' AND
365: ( p_x_material_req_rec.position_path_id IS NOT NULL AND
366: p_x_material_req_rec.position_path_id <> FND_API.G_MISS_NUM ) OR
367: ( p_x_material_req_rec.position_path IS NOT NULL AND
368: p_x_material_req_rec.position_path <> FND_API.G_MISS_CHAR ) ) THEN
369: AHL_RM_ROUTE_UTIL.validate_position_path
370: (
371: x_return_status => l_return_status,
372: x_msg_data => l_msg_data,
372: x_msg_data => l_msg_data,
373: p_position_path => p_x_material_req_rec.position_path,
374: p_x_position_path_id => p_x_material_req_rec.position_path_id
375: );
376: IF ( NVL( l_return_status, 'X' ) <> FND_API.G_RET_STS_SUCCESS ) THEN
377: FND_MESSAGE.set_name( 'AHL', l_msg_data );
378: IF ( p_x_material_req_rec.position_path IS NULL OR
379: p_x_material_req_rec.position_path = FND_API.G_MISS_CHAR ) THEN
380: FND_MESSAGE.set_token( 'FIELD', TO_CHAR( p_x_material_req_rec.position_path_id ) );
375: );
376: IF ( NVL( l_return_status, 'X' ) <> FND_API.G_RET_STS_SUCCESS ) THEN
377: FND_MESSAGE.set_name( 'AHL', l_msg_data );
378: IF ( p_x_material_req_rec.position_path IS NULL OR
379: p_x_material_req_rec.position_path = FND_API.G_MISS_CHAR ) THEN
380: FND_MESSAGE.set_token( 'FIELD', TO_CHAR( p_x_material_req_rec.position_path_id ) );
381: ELSE
382: FND_MESSAGE.set_token( 'FIELD', p_x_material_req_rec.position_path );
383: END IF;
387: END IF;
388: END IF;
389: -- Convert / Validate Item Group
390: IF ( ( p_x_material_req_rec.item_group_id IS NOT NULL AND
391: p_x_material_req_rec.item_group_id <> FND_API.G_MISS_NUM ) OR
392: ( p_x_material_req_rec.item_group_name IS NOT NULL AND
393: p_x_material_req_rec.item_group_name <> FND_API.G_MISS_CHAR ) ) THEN
394: AHL_RM_ROUTE_UTIL.validate_item_group
395: (
389: -- Convert / Validate Item Group
390: IF ( ( p_x_material_req_rec.item_group_id IS NOT NULL AND
391: p_x_material_req_rec.item_group_id <> FND_API.G_MISS_NUM ) OR
392: ( p_x_material_req_rec.item_group_name IS NOT NULL AND
393: p_x_material_req_rec.item_group_name <> FND_API.G_MISS_CHAR ) ) THEN
394: AHL_RM_ROUTE_UTIL.validate_item_group
395: (
396: x_return_status => l_return_status,
397: x_msg_data => l_msg_data,
398: p_association_type => p_association_type,
399: p_item_group_name => p_x_material_req_rec.item_group_name,
400: p_x_item_group_id => p_x_material_req_rec.item_group_id
401: );
402: IF ( NVL( l_return_status, 'X' ) <> FND_API.G_RET_STS_SUCCESS ) THEN
403: FND_MESSAGE.set_name( 'AHL', l_msg_data );
404: IF ( p_x_material_req_rec.item_group_name IS NULL OR
405: p_x_material_req_rec.item_group_name = FND_API.G_MISS_CHAR ) THEN
406: FND_MESSAGE.set_token( 'FIELD', TO_CHAR( p_x_material_req_rec.item_group_id ) );
401: );
402: IF ( NVL( l_return_status, 'X' ) <> FND_API.G_RET_STS_SUCCESS ) THEN
403: FND_MESSAGE.set_name( 'AHL', l_msg_data );
404: IF ( p_x_material_req_rec.item_group_name IS NULL OR
405: p_x_material_req_rec.item_group_name = FND_API.G_MISS_CHAR ) THEN
406: FND_MESSAGE.set_token( 'FIELD', TO_CHAR( p_x_material_req_rec.item_group_id ) );
407: ELSE
408: FND_MESSAGE.set_token( 'FIELD', p_x_material_req_rec.item_group_name );
409: END IF;
416: IF p_x_material_req_rec.COMP_MATERIAL_FLAG = 'Y' OR p_x_material_req_rec.COMP_MATERIAL_FLAG = 'y'
417: THEN
418: -- Find if it a MC-Route Association or Item-Route Association
419: IF ( p_x_material_req_rec.position_path_id IS NULL OR
420: p_x_material_req_rec.position_path_id = FND_API.G_MISS_NUM ) AND
421: ( p_x_material_req_rec.item_comp_detail_id IS NULL OR
422: p_x_material_req_rec.item_comp_detail_id = FND_API.G_MISS_NUM )
423: THEN
424: OPEN get_item_comp_detail_id(p_object_id,
418: -- Find if it a MC-Route Association or Item-Route Association
419: IF ( p_x_material_req_rec.position_path_id IS NULL OR
420: p_x_material_req_rec.position_path_id = FND_API.G_MISS_NUM ) AND
421: ( p_x_material_req_rec.item_comp_detail_id IS NULL OR
422: p_x_material_req_rec.item_comp_detail_id = FND_API.G_MISS_NUM )
423: THEN
424: OPEN get_item_comp_detail_id(p_object_id,
425: p_x_material_req_rec.item_group_id);
426: FETCH get_item_comp_detail_id INTO l_item_comp_detail_id;
431: ELSE
432: FND_MESSAGE.set_name( 'AHL', 'AHL_RM_INV_ITEM_COMP_MAT' );
433: FND_MESSAGE.set_token( 'FIELD',p_x_material_req_rec.item_group_name);
434: FND_MSG_PUB.add;
435: x_return_status := FND_API.G_RET_STS_ERROR;
436: END IF; -- l_item_comp_detail_id is null
437: END IF; -- which association if
438: END IF;-- comp_material_flag check if
439: END IF; -- Item group id check
438: END IF;-- comp_material_flag check if
439: END IF; -- Item group id check
440: -- Convert / Validate Item
441: IF ( ( p_x_material_req_rec.inventory_item_id IS NOT NULL AND
442: p_x_material_req_rec.inventory_item_id <> FND_API.G_MISS_NUM AND
443: p_x_material_req_rec.inventory_org_id IS NOT NULL AND
444: p_x_material_req_rec.inventory_org_id <> FND_API.G_MISS_NUM ) OR
445: ( p_x_material_req_rec.item_number IS NOT NULL AND
446: p_x_material_req_rec.item_number <> FND_API.G_MISS_CHAR ) ) THEN
440: -- Convert / Validate Item
441: IF ( ( p_x_material_req_rec.inventory_item_id IS NOT NULL AND
442: p_x_material_req_rec.inventory_item_id <> FND_API.G_MISS_NUM AND
443: p_x_material_req_rec.inventory_org_id IS NOT NULL AND
444: p_x_material_req_rec.inventory_org_id <> FND_API.G_MISS_NUM ) OR
445: ( p_x_material_req_rec.item_number IS NOT NULL AND
446: p_x_material_req_rec.item_number <> FND_API.G_MISS_CHAR ) ) THEN
447: IF ( p_association_type <> 'DISPOSITION' )
448: THEN
442: p_x_material_req_rec.inventory_item_id <> FND_API.G_MISS_NUM AND
443: p_x_material_req_rec.inventory_org_id IS NOT NULL AND
444: p_x_material_req_rec.inventory_org_id <> FND_API.G_MISS_NUM ) OR
445: ( p_x_material_req_rec.item_number IS NOT NULL AND
446: p_x_material_req_rec.item_number <> FND_API.G_MISS_CHAR ) ) THEN
447: IF ( p_association_type <> 'DISPOSITION' )
448: THEN
449: AHL_RM_ROUTE_UTIL.validate_item
450: (
463: p_x_inventory_item_id => p_x_material_req_rec.inventory_item_id,
464: p_x_inventory_org_id => p_x_material_req_rec.inventory_org_id
465: );
466: END IF;
467: IF ( NVL( l_return_status, 'X' ) <> FND_API.G_RET_STS_SUCCESS ) THEN
468: IF ( l_msg_data = 'AHL_COM_INVALID_ITEM' ) THEN
469: FND_MESSAGE.set_name( 'AHL', 'AHL_RM_INVALID_ITEM' );
470: ELSIF ( l_msg_data = 'AHL_COM_TOO_MANY_ITEMS' ) THEN
471: FND_MESSAGE.set_name( 'AHL', 'AHL_RM_TOO_MANY_ITEMS' );
474: ELSE
475: FND_MESSAGE.set_name( 'AHL', l_msg_data );
476: END IF;
477: IF ( p_x_material_req_rec.item_number IS NULL OR
478: p_x_material_req_rec.item_number = FND_API.G_MISS_CHAR ) THEN
479: FND_MESSAGE.set_token( 'FIELD', TO_CHAR( p_x_material_req_rec.inventory_item_id ) || '-' || TO_CHAR( p_x_material_req_rec.inventory_org_id ) );
480: ELSE
481: FND_MESSAGE.set_token( 'FIELD', p_x_material_req_rec.item_number );
482: END IF;
486: END IF;
487: END IF;
488: -- Convert / Validate UOM
489: IF ( ( p_x_material_req_rec.uom_code IS NOT NULL AND
490: p_x_material_req_rec.uom_code <> FND_API.G_MISS_CHAR ) OR
491: ( p_x_material_req_rec.uom IS NOT NULL AND
492: p_x_material_req_rec.uom <> FND_API.G_MISS_CHAR ) )
493: THEN
494: AHL_RM_ROUTE_UTIL.validate_uom
488: -- Convert / Validate UOM
489: IF ( ( p_x_material_req_rec.uom_code IS NOT NULL AND
490: p_x_material_req_rec.uom_code <> FND_API.G_MISS_CHAR ) OR
491: ( p_x_material_req_rec.uom IS NOT NULL AND
492: p_x_material_req_rec.uom <> FND_API.G_MISS_CHAR ) )
493: THEN
494: AHL_RM_ROUTE_UTIL.validate_uom
495: (
496: x_return_status => l_return_status,
497: x_msg_data => l_msg_data,
498: p_uom => p_x_material_req_rec.uom,
499: p_x_uom_code => p_x_material_req_rec.uom_code
500: );
501: IF ( NVL( l_return_status, 'X' ) <> FND_API.G_RET_STS_SUCCESS ) THEN
502: FND_MESSAGE.set_name( 'AHL', l_msg_data );
503: IF ( p_x_material_req_rec.uom IS NULL OR
504: p_x_material_req_rec.uom = FND_API.G_MISS_CHAR ) THEN
505: FND_MESSAGE.set_token( 'FIELD', p_x_material_req_rec.uom_code );
500: );
501: IF ( NVL( l_return_status, 'X' ) <> FND_API.G_RET_STS_SUCCESS ) THEN
502: FND_MESSAGE.set_name( 'AHL', l_msg_data );
503: IF ( p_x_material_req_rec.uom IS NULL OR
504: p_x_material_req_rec.uom = FND_API.G_MISS_CHAR ) THEN
505: FND_MESSAGE.set_token( 'FIELD', p_x_material_req_rec.uom_code );
506: ELSE
507: FND_MESSAGE.set_token( 'FIELD', p_x_material_req_rec.uom );
508: END IF;
513: END IF;
514: --sukhwsin: Procedure calls for SB Effectivity starts
515: -- Convert / Validate MC Name
516: IF ( ( p_x_material_req_rec.MC_NAME IS NOT NULL AND
517: p_x_material_req_rec.MC_NAME <> FND_API.G_MISS_CHAR ) OR
518: ( p_x_material_req_rec.MC_ID IS NOT NULL AND
519: p_x_material_req_rec.MC_ID <> FND_API.G_MISS_NUM ) )
520: THEN
521: AHL_RM_ROUTE_UTIL.Validate_Master_Config
515: -- Convert / Validate MC Name
516: IF ( ( p_x_material_req_rec.MC_NAME IS NOT NULL AND
517: p_x_material_req_rec.MC_NAME <> FND_API.G_MISS_CHAR ) OR
518: ( p_x_material_req_rec.MC_ID IS NOT NULL AND
519: p_x_material_req_rec.MC_ID <> FND_API.G_MISS_NUM ) )
520: THEN
521: AHL_RM_ROUTE_UTIL.Validate_Master_Config
522: (
523: x_return_status => l_return_status,
524: x_msg_data => l_msg_data,
525: p_mc_name => p_x_material_req_rec.MC_NAME,
526: p_x_mc_id => p_x_material_req_rec.MC_ID
527: );
528: IF ( NVL( l_return_status, 'X' ) <> FND_API.G_RET_STS_SUCCESS ) THEN
529: FND_MESSAGE.set_name( 'AHL', l_msg_data );
530: IF ( p_x_material_req_rec.MC_NAME IS NULL OR
531: p_x_material_req_rec.MC_NAME = FND_API.G_MISS_CHAR ) THEN
532: FND_MESSAGE.set_token( 'FIELD', p_x_material_req_rec.MC_ID );
527: );
528: IF ( NVL( l_return_status, 'X' ) <> FND_API.G_RET_STS_SUCCESS ) THEN
529: FND_MESSAGE.set_name( 'AHL', l_msg_data );
530: IF ( p_x_material_req_rec.MC_NAME IS NULL OR
531: p_x_material_req_rec.MC_NAME = FND_API.G_MISS_CHAR ) THEN
532: FND_MESSAGE.set_token( 'FIELD', p_x_material_req_rec.MC_ID );
533: ELSE
534: FND_MESSAGE.set_token( 'FIELD', p_x_material_req_rec.MC_NAME );
535: END IF;
539: END IF;
540: END IF;
541: -- Convert / Validate MC Position
542: IF ( ( p_x_material_req_rec.MC_POSITION IS NOT NULL AND
543: p_x_material_req_rec.MC_POSITION <> FND_API.G_MISS_CHAR ) OR
544: ( p_x_material_req_rec.MC_POSITION_KEY IS NOT NULL AND
545: p_x_material_req_rec.MC_POSITION_KEY <> FND_API.G_MISS_NUM ) )
546: THEN
547: AHL_RM_ROUTE_UTIL.Validate_Mc_Position
541: -- Convert / Validate MC Position
542: IF ( ( p_x_material_req_rec.MC_POSITION IS NOT NULL AND
543: p_x_material_req_rec.MC_POSITION <> FND_API.G_MISS_CHAR ) OR
544: ( p_x_material_req_rec.MC_POSITION_KEY IS NOT NULL AND
545: p_x_material_req_rec.MC_POSITION_KEY <> FND_API.G_MISS_NUM ) )
546: THEN
547: AHL_RM_ROUTE_UTIL.Validate_Mc_Position
548: (
549: x_return_status => l_return_status,
551: p_mc_id => p_x_material_req_rec.MC_ID,
552: p_mc_position => p_x_material_req_rec.MC_POSITION,
553: p_x_mc_position_key => p_x_material_req_rec.MC_POSITION_KEY
554: );
555: IF ( NVL( l_return_status, 'X' ) <> FND_API.G_RET_STS_SUCCESS ) THEN
556: FND_MESSAGE.set_name( 'AHL', l_msg_data );
557: IF ( p_x_material_req_rec.MC_POSITION IS NULL OR
558: p_x_material_req_rec.MC_POSITION = FND_API.G_MISS_CHAR ) THEN
559: FND_MESSAGE.set_token( 'FIELD', p_x_material_req_rec.MC_POSITION_KEY );
554: );
555: IF ( NVL( l_return_status, 'X' ) <> FND_API.G_RET_STS_SUCCESS ) THEN
556: FND_MESSAGE.set_name( 'AHL', l_msg_data );
557: IF ( p_x_material_req_rec.MC_POSITION IS NULL OR
558: p_x_material_req_rec.MC_POSITION = FND_API.G_MISS_CHAR ) THEN
559: FND_MESSAGE.set_token( 'FIELD', p_x_material_req_rec.MC_POSITION_KEY );
560: ELSE
561: FND_MESSAGE.set_token( 'FIELD', p_x_material_req_rec.MC_POSITION );
562: END IF;
576: IS
577: l_return_status VARCHAR2(1);
578: l_msg_data VARCHAR2(2000);
579: BEGIN
580: x_return_status := FND_API.G_RET_STS_SUCCESS;
581: -- Convert / Validate MC
582: IF ( ( p_x_route_efct_rec.MC_ID IS NOT NULL AND
583: p_x_route_efct_rec.MC_ID <> FND_API.G_MISS_NUM ) OR
584: ( p_x_route_efct_rec.MC_NAME IS NOT NULL AND
579: BEGIN
580: x_return_status := FND_API.G_RET_STS_SUCCESS;
581: -- Convert / Validate MC
582: IF ( ( p_x_route_efct_rec.MC_ID IS NOT NULL AND
583: p_x_route_efct_rec.MC_ID <> FND_API.G_MISS_NUM ) OR
584: ( p_x_route_efct_rec.MC_NAME IS NOT NULL AND
585: p_x_route_efct_rec.MC_NAME <> FND_API.G_MISS_CHAR ) ) THEN
586: AHL_RM_ROUTE_UTIL.validate_master_configuration
587: (
581: -- Convert / Validate MC
582: IF ( ( p_x_route_efct_rec.MC_ID IS NOT NULL AND
583: p_x_route_efct_rec.MC_ID <> FND_API.G_MISS_NUM ) OR
584: ( p_x_route_efct_rec.MC_NAME IS NOT NULL AND
585: p_x_route_efct_rec.MC_NAME <> FND_API.G_MISS_CHAR ) ) THEN
586: AHL_RM_ROUTE_UTIL.validate_master_configuration
587: (
588: x_return_status => l_return_status,
589: x_msg_data => l_msg_data,
591: p_x_mc_id => p_x_route_efct_rec.MC_ID,
592: p_mc_revision_number => p_x_route_efct_rec.MC_REVISION,
593: p_x_mc_header_id => p_x_route_efct_rec.MC_HEADER_ID
594: );
595: IF ( NVL( l_return_status, 'X' ) <> FND_API.G_RET_STS_SUCCESS ) THEN
596: FND_MESSAGE.set_name( 'AHL', l_msg_data );
597: IF ( p_x_route_efct_rec.MC_NAME IS NULL OR
598: p_x_route_efct_rec.MC_NAME = FND_API.G_MISS_CHAR ) THEN
599: FND_MESSAGE.set_token( 'FIELD', TO_CHAR( p_x_route_efct_rec.MC_HEADER_ID ) );
594: );
595: IF ( NVL( l_return_status, 'X' ) <> FND_API.G_RET_STS_SUCCESS ) THEN
596: FND_MESSAGE.set_name( 'AHL', l_msg_data );
597: IF ( p_x_route_efct_rec.MC_NAME IS NULL OR
598: p_x_route_efct_rec.MC_NAME = FND_API.G_MISS_CHAR ) THEN
599: FND_MESSAGE.set_token( 'FIELD', TO_CHAR( p_x_route_efct_rec.MC_HEADER_ID ) );
600: ELSE
601: FND_MESSAGE.set_token( 'FIELD', p_x_route_efct_rec.MC_NAME );
602: END IF;
606: END IF;
607: END IF;
608: -- Convert / Validate Item
609: IF ( ( p_x_route_efct_rec.inventory_item_id IS NOT NULL AND
610: p_x_route_efct_rec.inventory_item_id <> FND_API.G_MISS_NUM AND
611: p_x_route_efct_rec.inventory_master_org_id IS NOT NULL AND
612: p_x_route_efct_rec.inventory_master_org_id <> FND_API.G_MISS_NUM ) OR
613: ( (p_x_route_efct_rec.ORGANIZATION_CODE IS NOT NULL AND p_x_route_efct_rec.ORGANIZATION_CODE <> FND_API.G_MISS_CHAR )
614: AND(p_x_route_efct_rec.item_number IS NOT NULL AND p_x_route_efct_rec.item_number <> FND_API.G_MISS_CHAR )
608: -- Convert / Validate Item
609: IF ( ( p_x_route_efct_rec.inventory_item_id IS NOT NULL AND
610: p_x_route_efct_rec.inventory_item_id <> FND_API.G_MISS_NUM AND
611: p_x_route_efct_rec.inventory_master_org_id IS NOT NULL AND
612: p_x_route_efct_rec.inventory_master_org_id <> FND_API.G_MISS_NUM ) OR
613: ( (p_x_route_efct_rec.ORGANIZATION_CODE IS NOT NULL AND p_x_route_efct_rec.ORGANIZATION_CODE <> FND_API.G_MISS_CHAR )
614: AND(p_x_route_efct_rec.item_number IS NOT NULL AND p_x_route_efct_rec.item_number <> FND_API.G_MISS_CHAR )
615: )
616: )THEN
609: IF ( ( p_x_route_efct_rec.inventory_item_id IS NOT NULL AND
610: p_x_route_efct_rec.inventory_item_id <> FND_API.G_MISS_NUM AND
611: p_x_route_efct_rec.inventory_master_org_id IS NOT NULL AND
612: p_x_route_efct_rec.inventory_master_org_id <> FND_API.G_MISS_NUM ) OR
613: ( (p_x_route_efct_rec.ORGANIZATION_CODE IS NOT NULL AND p_x_route_efct_rec.ORGANIZATION_CODE <> FND_API.G_MISS_CHAR )
614: AND(p_x_route_efct_rec.item_number IS NOT NULL AND p_x_route_efct_rec.item_number <> FND_API.G_MISS_CHAR )
615: )
616: )THEN
617: AHL_RM_ROUTE_UTIL.validate_effectivity_item
610: p_x_route_efct_rec.inventory_item_id <> FND_API.G_MISS_NUM AND
611: p_x_route_efct_rec.inventory_master_org_id IS NOT NULL AND
612: p_x_route_efct_rec.inventory_master_org_id <> FND_API.G_MISS_NUM ) OR
613: ( (p_x_route_efct_rec.ORGANIZATION_CODE IS NOT NULL AND p_x_route_efct_rec.ORGANIZATION_CODE <> FND_API.G_MISS_CHAR )
614: AND(p_x_route_efct_rec.item_number IS NOT NULL AND p_x_route_efct_rec.item_number <> FND_API.G_MISS_CHAR )
615: )
616: )THEN
617: AHL_RM_ROUTE_UTIL.validate_effectivity_item
618: (
622: p_org_code => p_x_route_efct_rec.ORGANIZATION_CODE,
623: p_x_inventory_item_id => p_x_route_efct_rec.inventory_item_id,
624: p_x_inventory_org_id => p_x_route_efct_rec.inventory_master_org_id
625: );
626: IF ( NVL( l_return_status, 'X' ) <> FND_API.G_RET_STS_SUCCESS ) THEN
627: IF ( l_msg_data = 'AHL_COM_INVALID_ITEM' ) THEN
628: FND_MESSAGE.set_name( 'AHL', 'AHL_RM_INVALID_ITEM' );
629: ELSIF ( l_msg_data = 'AHL_COM_TOO_MANY_ITEMS' ) THEN
630: FND_MESSAGE.set_name( 'AHL', 'AHL_RM_TOO_MANY_ITEMS' );
633: ELSE
634: FND_MESSAGE.set_name( 'AHL', l_msg_data );
635: END IF;
636: IF ( p_x_route_efct_rec.item_number IS NULL OR
637: p_x_route_efct_rec.item_number = FND_API.G_MISS_CHAR ) THEN
638: FND_MESSAGE.set_token( 'FIELD', TO_CHAR( p_x_route_efct_rec.inventory_item_id ) || '-' || TO_CHAR( p_x_route_efct_rec.inventory_master_org_id ) );
639: ELSE
640: FND_MESSAGE.set_token( 'FIELD', p_x_route_efct_rec.item_number );
641: END IF;
652: )
653: IS
654: BEGIN
655: -- Convert G_MISS values to NULL
656: IF ( p_x_material_req_rec.item_comp_detail_id = FND_API.G_MISS_NUM ) THEN
657: p_x_material_req_rec.item_comp_detail_id := null;
658: END IF;
659: IF ( p_x_material_req_rec.position_path_id = FND_API.G_MISS_NUM ) THEN
660: p_x_material_req_rec.position_path_id := null;
655: -- Convert G_MISS values to NULL
656: IF ( p_x_material_req_rec.item_comp_detail_id = FND_API.G_MISS_NUM ) THEN
657: p_x_material_req_rec.item_comp_detail_id := null;
658: END IF;
659: IF ( p_x_material_req_rec.position_path_id = FND_API.G_MISS_NUM ) THEN
660: p_x_material_req_rec.position_path_id := null;
661: END IF;
662: IF ( p_x_material_req_rec.position_path = FND_API.G_MISS_CHAR ) THEN
663: p_x_material_req_rec.position_path := null;
658: END IF;
659: IF ( p_x_material_req_rec.position_path_id = FND_API.G_MISS_NUM ) THEN
660: p_x_material_req_rec.position_path_id := null;
661: END IF;
662: IF ( p_x_material_req_rec.position_path = FND_API.G_MISS_CHAR ) THEN
663: p_x_material_req_rec.position_path := null;
664: END IF;
665: IF ( p_x_material_req_rec.item_group_id = FND_API.G_MISS_NUM ) THEN
666: p_x_material_req_rec.item_group_id := null;
661: END IF;
662: IF ( p_x_material_req_rec.position_path = FND_API.G_MISS_CHAR ) THEN
663: p_x_material_req_rec.position_path := null;
664: END IF;
665: IF ( p_x_material_req_rec.item_group_id = FND_API.G_MISS_NUM ) THEN
666: p_x_material_req_rec.item_group_id := null;
667: END IF;
668: IF ( p_x_material_req_rec.item_group_name = FND_API.G_MISS_CHAR ) THEN
669: p_x_material_req_rec.item_group_name := null;
664: END IF;
665: IF ( p_x_material_req_rec.item_group_id = FND_API.G_MISS_NUM ) THEN
666: p_x_material_req_rec.item_group_id := null;
667: END IF;
668: IF ( p_x_material_req_rec.item_group_name = FND_API.G_MISS_CHAR ) THEN
669: p_x_material_req_rec.item_group_name := null;
670: END IF;
671: IF ( p_x_material_req_rec.inventory_item_id = FND_API.G_MISS_NUM ) THEN
672: p_x_material_req_rec.inventory_item_id := null;
667: END IF;
668: IF ( p_x_material_req_rec.item_group_name = FND_API.G_MISS_CHAR ) THEN
669: p_x_material_req_rec.item_group_name := null;
670: END IF;
671: IF ( p_x_material_req_rec.inventory_item_id = FND_API.G_MISS_NUM ) THEN
672: p_x_material_req_rec.inventory_item_id := null;
673: END IF;
674: IF ( p_x_material_req_rec.inventory_org_id = FND_API.G_MISS_NUM ) THEN
675: p_x_material_req_rec.inventory_org_id := null;
670: END IF;
671: IF ( p_x_material_req_rec.inventory_item_id = FND_API.G_MISS_NUM ) THEN
672: p_x_material_req_rec.inventory_item_id := null;
673: END IF;
674: IF ( p_x_material_req_rec.inventory_org_id = FND_API.G_MISS_NUM ) THEN
675: p_x_material_req_rec.inventory_org_id := null;
676: END IF;
677: IF ( p_x_material_req_rec.item_number = FND_API.G_MISS_CHAR ) THEN
678: p_x_material_req_rec.item_number := null;
673: END IF;
674: IF ( p_x_material_req_rec.inventory_org_id = FND_API.G_MISS_NUM ) THEN
675: p_x_material_req_rec.inventory_org_id := null;
676: END IF;
677: IF ( p_x_material_req_rec.item_number = FND_API.G_MISS_CHAR ) THEN
678: p_x_material_req_rec.item_number := null;
679: END IF;
680: IF ( p_x_material_req_rec.uom_code = FND_API.G_MISS_CHAR ) THEN
681: p_x_material_req_rec.uom_code := null;
676: END IF;
677: IF ( p_x_material_req_rec.item_number = FND_API.G_MISS_CHAR ) THEN
678: p_x_material_req_rec.item_number := null;
679: END IF;
680: IF ( p_x_material_req_rec.uom_code = FND_API.G_MISS_CHAR ) THEN
681: p_x_material_req_rec.uom_code := null;
682: END IF;
683: IF ( p_x_material_req_rec.uom = FND_API.G_MISS_CHAR ) THEN
684: p_x_material_req_rec.uom := null;
679: END IF;
680: IF ( p_x_material_req_rec.uom_code = FND_API.G_MISS_CHAR ) THEN
681: p_x_material_req_rec.uom_code := null;
682: END IF;
683: IF ( p_x_material_req_rec.uom = FND_API.G_MISS_CHAR ) THEN
684: p_x_material_req_rec.uom := null;
685: END IF;
686: IF ( p_x_material_req_rec.quantity = FND_API.G_MISS_NUM ) THEN
687: p_x_material_req_rec.quantity := null;
682: END IF;
683: IF ( p_x_material_req_rec.uom = FND_API.G_MISS_CHAR ) THEN
684: p_x_material_req_rec.uom := null;
685: END IF;
686: IF ( p_x_material_req_rec.quantity = FND_API.G_MISS_NUM ) THEN
687: p_x_material_req_rec.quantity := null;
688: END IF;
689: IF ( p_x_material_req_rec.attribute_category = FND_API.G_MISS_CHAR ) THEN
690: p_x_material_req_rec.attribute_category := null;
685: END IF;
686: IF ( p_x_material_req_rec.quantity = FND_API.G_MISS_NUM ) THEN
687: p_x_material_req_rec.quantity := null;
688: END IF;
689: IF ( p_x_material_req_rec.attribute_category = FND_API.G_MISS_CHAR ) THEN
690: p_x_material_req_rec.attribute_category := null;
691: END IF;
692: IF ( p_x_material_req_rec.attribute1 = FND_API.G_MISS_CHAR ) THEN
693: p_x_material_req_rec.attribute1 := null;
688: END IF;
689: IF ( p_x_material_req_rec.attribute_category = FND_API.G_MISS_CHAR ) THEN
690: p_x_material_req_rec.attribute_category := null;
691: END IF;
692: IF ( p_x_material_req_rec.attribute1 = FND_API.G_MISS_CHAR ) THEN
693: p_x_material_req_rec.attribute1 := null;
694: END IF;
695: IF ( p_x_material_req_rec.attribute2 = FND_API.G_MISS_CHAR ) THEN
696: p_x_material_req_rec.attribute2 := null;
691: END IF;
692: IF ( p_x_material_req_rec.attribute1 = FND_API.G_MISS_CHAR ) THEN
693: p_x_material_req_rec.attribute1 := null;
694: END IF;
695: IF ( p_x_material_req_rec.attribute2 = FND_API.G_MISS_CHAR ) THEN
696: p_x_material_req_rec.attribute2 := null;
697: END IF;
698: IF ( p_x_material_req_rec.attribute3 = FND_API.G_MISS_CHAR ) THEN
699: p_x_material_req_rec.attribute3 := null;
694: END IF;
695: IF ( p_x_material_req_rec.attribute2 = FND_API.G_MISS_CHAR ) THEN
696: p_x_material_req_rec.attribute2 := null;
697: END IF;
698: IF ( p_x_material_req_rec.attribute3 = FND_API.G_MISS_CHAR ) THEN
699: p_x_material_req_rec.attribute3 := null;
700: END IF;
701: IF ( p_x_material_req_rec.attribute4 = FND_API.G_MISS_CHAR ) THEN
702: p_x_material_req_rec.attribute4 := null;
697: END IF;
698: IF ( p_x_material_req_rec.attribute3 = FND_API.G_MISS_CHAR ) THEN
699: p_x_material_req_rec.attribute3 := null;
700: END IF;
701: IF ( p_x_material_req_rec.attribute4 = FND_API.G_MISS_CHAR ) THEN
702: p_x_material_req_rec.attribute4 := null;
703: END IF;
704: IF ( p_x_material_req_rec.attribute5 = FND_API.G_MISS_CHAR ) THEN
705: p_x_material_req_rec.attribute5 := null;
700: END IF;
701: IF ( p_x_material_req_rec.attribute4 = FND_API.G_MISS_CHAR ) THEN
702: p_x_material_req_rec.attribute4 := null;
703: END IF;
704: IF ( p_x_material_req_rec.attribute5 = FND_API.G_MISS_CHAR ) THEN
705: p_x_material_req_rec.attribute5 := null;
706: END IF;
707: IF ( p_x_material_req_rec.attribute6 = FND_API.G_MISS_CHAR ) THEN
708: p_x_material_req_rec.attribute6 := null;
703: END IF;
704: IF ( p_x_material_req_rec.attribute5 = FND_API.G_MISS_CHAR ) THEN
705: p_x_material_req_rec.attribute5 := null;
706: END IF;
707: IF ( p_x_material_req_rec.attribute6 = FND_API.G_MISS_CHAR ) THEN
708: p_x_material_req_rec.attribute6 := null;
709: END IF;
710: IF ( p_x_material_req_rec.attribute7 = FND_API.G_MISS_CHAR ) THEN
711: p_x_material_req_rec.attribute7 := null;
706: END IF;
707: IF ( p_x_material_req_rec.attribute6 = FND_API.G_MISS_CHAR ) THEN
708: p_x_material_req_rec.attribute6 := null;
709: END IF;
710: IF ( p_x_material_req_rec.attribute7 = FND_API.G_MISS_CHAR ) THEN
711: p_x_material_req_rec.attribute7 := null;
712: END IF;
713: IF ( p_x_material_req_rec.attribute8 = FND_API.G_MISS_CHAR ) THEN
714: p_x_material_req_rec.attribute8 := null;
709: END IF;
710: IF ( p_x_material_req_rec.attribute7 = FND_API.G_MISS_CHAR ) THEN
711: p_x_material_req_rec.attribute7 := null;
712: END IF;
713: IF ( p_x_material_req_rec.attribute8 = FND_API.G_MISS_CHAR ) THEN
714: p_x_material_req_rec.attribute8 := null;
715: END IF;
716: IF ( p_x_material_req_rec.attribute9 = FND_API.G_MISS_CHAR ) THEN
717: p_x_material_req_rec.attribute9 := null;
712: END IF;
713: IF ( p_x_material_req_rec.attribute8 = FND_API.G_MISS_CHAR ) THEN
714: p_x_material_req_rec.attribute8 := null;
715: END IF;
716: IF ( p_x_material_req_rec.attribute9 = FND_API.G_MISS_CHAR ) THEN
717: p_x_material_req_rec.attribute9 := null;
718: END IF;
719: IF ( p_x_material_req_rec.attribute10 = FND_API.G_MISS_CHAR ) THEN
720: p_x_material_req_rec.attribute10 := null;
715: END IF;
716: IF ( p_x_material_req_rec.attribute9 = FND_API.G_MISS_CHAR ) THEN
717: p_x_material_req_rec.attribute9 := null;
718: END IF;
719: IF ( p_x_material_req_rec.attribute10 = FND_API.G_MISS_CHAR ) THEN
720: p_x_material_req_rec.attribute10 := null;
721: END IF;
722: IF ( p_x_material_req_rec.attribute11 = FND_API.G_MISS_CHAR ) THEN
723: p_x_material_req_rec.attribute11 := null;
718: END IF;
719: IF ( p_x_material_req_rec.attribute10 = FND_API.G_MISS_CHAR ) THEN
720: p_x_material_req_rec.attribute10 := null;
721: END IF;
722: IF ( p_x_material_req_rec.attribute11 = FND_API.G_MISS_CHAR ) THEN
723: p_x_material_req_rec.attribute11 := null;
724: END IF;
725: IF ( p_x_material_req_rec.attribute12 = FND_API.G_MISS_CHAR ) THEN
726: p_x_material_req_rec.attribute12 := null;
721: END IF;
722: IF ( p_x_material_req_rec.attribute11 = FND_API.G_MISS_CHAR ) THEN
723: p_x_material_req_rec.attribute11 := null;
724: END IF;
725: IF ( p_x_material_req_rec.attribute12 = FND_API.G_MISS_CHAR ) THEN
726: p_x_material_req_rec.attribute12 := null;
727: END IF;
728: IF ( p_x_material_req_rec.attribute13 = FND_API.G_MISS_CHAR ) THEN
729: p_x_material_req_rec.attribute13 := null;
724: END IF;
725: IF ( p_x_material_req_rec.attribute12 = FND_API.G_MISS_CHAR ) THEN
726: p_x_material_req_rec.attribute12 := null;
727: END IF;
728: IF ( p_x_material_req_rec.attribute13 = FND_API.G_MISS_CHAR ) THEN
729: p_x_material_req_rec.attribute13 := null;
730: END IF;
731: IF ( p_x_material_req_rec.attribute14 = FND_API.G_MISS_CHAR ) THEN
732: p_x_material_req_rec.attribute14 := null;
727: END IF;
728: IF ( p_x_material_req_rec.attribute13 = FND_API.G_MISS_CHAR ) THEN
729: p_x_material_req_rec.attribute13 := null;
730: END IF;
731: IF ( p_x_material_req_rec.attribute14 = FND_API.G_MISS_CHAR ) THEN
732: p_x_material_req_rec.attribute14 := null;
733: END IF;
734: IF ( p_x_material_req_rec.attribute15 = FND_API.G_MISS_CHAR ) THEN
735: p_x_material_req_rec.attribute15 := null;
730: END IF;
731: IF ( p_x_material_req_rec.attribute14 = FND_API.G_MISS_CHAR ) THEN
732: p_x_material_req_rec.attribute14 := null;
733: END IF;
734: IF ( p_x_material_req_rec.attribute15 = FND_API.G_MISS_CHAR ) THEN
735: p_x_material_req_rec.attribute15 := null;
736: END IF;
737: IF ( p_x_material_req_rec.replace_percent = FND_API.G_MISS_NUM ) THEN
738: p_x_material_req_rec.replace_percent := null;
733: END IF;
734: IF ( p_x_material_req_rec.attribute15 = FND_API.G_MISS_CHAR ) THEN
735: p_x_material_req_rec.attribute15 := null;
736: END IF;
737: IF ( p_x_material_req_rec.replace_percent = FND_API.G_MISS_NUM ) THEN
738: p_x_material_req_rec.replace_percent := null;
739: END IF;
740: IF ( p_x_material_req_rec.rework_percent = FND_API.G_MISS_NUM ) THEN
741: p_x_material_req_rec.rework_percent := null;
736: END IF;
737: IF ( p_x_material_req_rec.replace_percent = FND_API.G_MISS_NUM ) THEN
738: p_x_material_req_rec.replace_percent := null;
739: END IF;
740: IF ( p_x_material_req_rec.rework_percent = FND_API.G_MISS_NUM ) THEN
741: p_x_material_req_rec.rework_percent := null;
742: END IF;
743: IF ( p_x_material_req_rec.exclude_flag = FND_API.G_MISS_CHAR ) THEN
744: p_x_material_req_rec.exclude_flag := null;
739: END IF;
740: IF ( p_x_material_req_rec.rework_percent = FND_API.G_MISS_NUM ) THEN
741: p_x_material_req_rec.rework_percent := null;
742: END IF;
743: IF ( p_x_material_req_rec.exclude_flag = FND_API.G_MISS_CHAR ) THEN
744: p_x_material_req_rec.exclude_flag := null;
745: END IF;
746: --pdoki added for OGMA 105 issue
747: IF ( p_x_material_req_rec.in_service = FND_API.G_MISS_CHAR ) THEN
743: IF ( p_x_material_req_rec.exclude_flag = FND_API.G_MISS_CHAR ) THEN
744: p_x_material_req_rec.exclude_flag := null;
745: END IF;
746: --pdoki added for OGMA 105 issue
747: IF ( p_x_material_req_rec.in_service = FND_API.G_MISS_CHAR ) THEN
748: p_x_material_req_rec.in_service := null;
749: END IF;
750: --sukhwsin: Code for SB Effectivity starts
751: IF ( p_x_material_req_rec.mc_id = FND_API.G_MISS_NUM ) THEN
747: IF ( p_x_material_req_rec.in_service = FND_API.G_MISS_CHAR ) THEN
748: p_x_material_req_rec.in_service := null;
749: END IF;
750: --sukhwsin: Code for SB Effectivity starts
751: IF ( p_x_material_req_rec.mc_id = FND_API.G_MISS_NUM ) THEN
752: p_x_material_req_rec.mc_id := null;
753: END IF;
754: IF ( p_x_material_req_rec.mc_name = FND_API.G_MISS_CHAR ) THEN
755: p_x_material_req_rec.mc_name := null;
750: --sukhwsin: Code for SB Effectivity starts
751: IF ( p_x_material_req_rec.mc_id = FND_API.G_MISS_NUM ) THEN
752: p_x_material_req_rec.mc_id := null;
753: END IF;
754: IF ( p_x_material_req_rec.mc_name = FND_API.G_MISS_CHAR ) THEN
755: p_x_material_req_rec.mc_name := null;
756: END IF;
757: IF ( p_x_material_req_rec.mc_position_key = FND_API.G_MISS_NUM ) THEN
758: p_x_material_req_rec.mc_position_key := null;
753: END IF;
754: IF ( p_x_material_req_rec.mc_name = FND_API.G_MISS_CHAR ) THEN
755: p_x_material_req_rec.mc_name := null;
756: END IF;
757: IF ( p_x_material_req_rec.mc_position_key = FND_API.G_MISS_NUM ) THEN
758: p_x_material_req_rec.mc_position_key := null;
759: END IF;
760: IF ( p_x_material_req_rec.mc_position = FND_API.G_MISS_CHAR ) THEN
761: p_x_material_req_rec.mc_position := null;
756: END IF;
757: IF ( p_x_material_req_rec.mc_position_key = FND_API.G_MISS_NUM ) THEN
758: p_x_material_req_rec.mc_position_key := null;
759: END IF;
760: IF ( p_x_material_req_rec.mc_position = FND_API.G_MISS_CHAR ) THEN
761: p_x_material_req_rec.mc_position := null;
762: END IF;
763: --sukhwsin: Code for SB Effectivity ends
764: END default_missing_attributes;
769: )
770: IS
771: BEGIN
772: -- Convert G_MISS values to NULL
773: IF ( p_x_route_efct_rec.mc_id = FND_API.G_MISS_NUM ) THEN
774: p_x_route_efct_rec.mc_id := null;
775: END IF;
776: IF ( p_x_route_efct_rec.mc_header_id = FND_API.G_MISS_NUM ) THEN
777: p_x_route_efct_rec.mc_header_id := null;
772: -- Convert G_MISS values to NULL
773: IF ( p_x_route_efct_rec.mc_id = FND_API.G_MISS_NUM ) THEN
774: p_x_route_efct_rec.mc_id := null;
775: END IF;
776: IF ( p_x_route_efct_rec.mc_header_id = FND_API.G_MISS_NUM ) THEN
777: p_x_route_efct_rec.mc_header_id := null;
778: END IF;
779: IF ( p_x_route_efct_rec.mc_name = FND_API.G_MISS_CHAR ) THEN
780: p_x_route_efct_rec.mc_name := null;
775: END IF;
776: IF ( p_x_route_efct_rec.mc_header_id = FND_API.G_MISS_NUM ) THEN
777: p_x_route_efct_rec.mc_header_id := null;
778: END IF;
779: IF ( p_x_route_efct_rec.mc_name = FND_API.G_MISS_CHAR ) THEN
780: p_x_route_efct_rec.mc_name := null;
781: END IF;
782: IF ( p_x_route_efct_rec.inventory_item_id = FND_API.G_MISS_NUM ) THEN
783: p_x_route_efct_rec.inventory_item_id := null;
778: END IF;
779: IF ( p_x_route_efct_rec.mc_name = FND_API.G_MISS_CHAR ) THEN
780: p_x_route_efct_rec.mc_name := null;
781: END IF;
782: IF ( p_x_route_efct_rec.inventory_item_id = FND_API.G_MISS_NUM ) THEN
783: p_x_route_efct_rec.inventory_item_id := null;
784: END IF;
785: IF ( p_x_route_efct_rec.inventory_master_org_id = FND_API.G_MISS_NUM ) THEN
786: p_x_route_efct_rec.inventory_master_org_id := null;
781: END IF;
782: IF ( p_x_route_efct_rec.inventory_item_id = FND_API.G_MISS_NUM ) THEN
783: p_x_route_efct_rec.inventory_item_id := null;
784: END IF;
785: IF ( p_x_route_efct_rec.inventory_master_org_id = FND_API.G_MISS_NUM ) THEN
786: p_x_route_efct_rec.inventory_master_org_id := null;
787: END IF;
788: IF ( p_x_route_efct_rec.item_number = FND_API.G_MISS_CHAR ) THEN
789: p_x_route_efct_rec.item_number := null;
784: END IF;
785: IF ( p_x_route_efct_rec.inventory_master_org_id = FND_API.G_MISS_NUM ) THEN
786: p_x_route_efct_rec.inventory_master_org_id := null;
787: END IF;
788: IF ( p_x_route_efct_rec.item_number = FND_API.G_MISS_CHAR ) THEN
789: p_x_route_efct_rec.item_number := null;
790: END IF;
791: IF ( p_x_route_efct_rec.ORGANIZATION_CODE = FND_API.G_MISS_CHAR ) THEN
792: p_x_route_efct_rec.ORGANIZATION_CODE := null;
787: END IF;
788: IF ( p_x_route_efct_rec.item_number = FND_API.G_MISS_CHAR ) THEN
789: p_x_route_efct_rec.item_number := null;
790: END IF;
791: IF ( p_x_route_efct_rec.ORGANIZATION_CODE = FND_API.G_MISS_CHAR ) THEN
792: p_x_route_efct_rec.ORGANIZATION_CODE := null;
793: END IF;
794: IF ( p_x_route_efct_rec.attribute_category = FND_API.G_MISS_CHAR ) THEN
795: p_x_route_efct_rec.attribute_category := null;
790: END IF;
791: IF ( p_x_route_efct_rec.ORGANIZATION_CODE = FND_API.G_MISS_CHAR ) THEN
792: p_x_route_efct_rec.ORGANIZATION_CODE := null;
793: END IF;
794: IF ( p_x_route_efct_rec.attribute_category = FND_API.G_MISS_CHAR ) THEN
795: p_x_route_efct_rec.attribute_category := null;
796: END IF;
797: IF ( p_x_route_efct_rec.attribute1 = FND_API.G_MISS_CHAR ) THEN
798: p_x_route_efct_rec.attribute1 := null;
793: END IF;
794: IF ( p_x_route_efct_rec.attribute_category = FND_API.G_MISS_CHAR ) THEN
795: p_x_route_efct_rec.attribute_category := null;
796: END IF;
797: IF ( p_x_route_efct_rec.attribute1 = FND_API.G_MISS_CHAR ) THEN
798: p_x_route_efct_rec.attribute1 := null;
799: END IF;
800: IF ( p_x_route_efct_rec.attribute2 = FND_API.G_MISS_CHAR ) THEN
801: p_x_route_efct_rec.attribute2 := null;
796: END IF;
797: IF ( p_x_route_efct_rec.attribute1 = FND_API.G_MISS_CHAR ) THEN
798: p_x_route_efct_rec.attribute1 := null;
799: END IF;
800: IF ( p_x_route_efct_rec.attribute2 = FND_API.G_MISS_CHAR ) THEN
801: p_x_route_efct_rec.attribute2 := null;
802: END IF;
803: IF ( p_x_route_efct_rec.attribute3 = FND_API.G_MISS_CHAR ) THEN
804: p_x_route_efct_rec.attribute3 := null;
799: END IF;
800: IF ( p_x_route_efct_rec.attribute2 = FND_API.G_MISS_CHAR ) THEN
801: p_x_route_efct_rec.attribute2 := null;
802: END IF;
803: IF ( p_x_route_efct_rec.attribute3 = FND_API.G_MISS_CHAR ) THEN
804: p_x_route_efct_rec.attribute3 := null;
805: END IF;
806: IF ( p_x_route_efct_rec.attribute4 = FND_API.G_MISS_CHAR ) THEN
807: p_x_route_efct_rec.attribute4 := null;
802: END IF;
803: IF ( p_x_route_efct_rec.attribute3 = FND_API.G_MISS_CHAR ) THEN
804: p_x_route_efct_rec.attribute3 := null;
805: END IF;
806: IF ( p_x_route_efct_rec.attribute4 = FND_API.G_MISS_CHAR ) THEN
807: p_x_route_efct_rec.attribute4 := null;
808: END IF;
809: IF ( p_x_route_efct_rec.attribute5 = FND_API.G_MISS_CHAR ) THEN
810: p_x_route_efct_rec.attribute5 := null;
805: END IF;
806: IF ( p_x_route_efct_rec.attribute4 = FND_API.G_MISS_CHAR ) THEN
807: p_x_route_efct_rec.attribute4 := null;
808: END IF;
809: IF ( p_x_route_efct_rec.attribute5 = FND_API.G_MISS_CHAR ) THEN
810: p_x_route_efct_rec.attribute5 := null;
811: END IF;
812: IF ( p_x_route_efct_rec.attribute6 = FND_API.G_MISS_CHAR ) THEN
813: p_x_route_efct_rec.attribute6 := null;
808: END IF;
809: IF ( p_x_route_efct_rec.attribute5 = FND_API.G_MISS_CHAR ) THEN
810: p_x_route_efct_rec.attribute5 := null;
811: END IF;
812: IF ( p_x_route_efct_rec.attribute6 = FND_API.G_MISS_CHAR ) THEN
813: p_x_route_efct_rec.attribute6 := null;
814: END IF;
815: IF ( p_x_route_efct_rec.attribute7 = FND_API.G_MISS_CHAR ) THEN
816: p_x_route_efct_rec.attribute7 := null;
811: END IF;
812: IF ( p_x_route_efct_rec.attribute6 = FND_API.G_MISS_CHAR ) THEN
813: p_x_route_efct_rec.attribute6 := null;
814: END IF;
815: IF ( p_x_route_efct_rec.attribute7 = FND_API.G_MISS_CHAR ) THEN
816: p_x_route_efct_rec.attribute7 := null;
817: END IF;
818: IF ( p_x_route_efct_rec.attribute8 = FND_API.G_MISS_CHAR ) THEN
819: p_x_route_efct_rec.attribute8 := null;
814: END IF;
815: IF ( p_x_route_efct_rec.attribute7 = FND_API.G_MISS_CHAR ) THEN
816: p_x_route_efct_rec.attribute7 := null;
817: END IF;
818: IF ( p_x_route_efct_rec.attribute8 = FND_API.G_MISS_CHAR ) THEN
819: p_x_route_efct_rec.attribute8 := null;
820: END IF;
821: IF ( p_x_route_efct_rec.attribute9 = FND_API.G_MISS_CHAR ) THEN
822: p_x_route_efct_rec.attribute9 := null;
817: END IF;
818: IF ( p_x_route_efct_rec.attribute8 = FND_API.G_MISS_CHAR ) THEN
819: p_x_route_efct_rec.attribute8 := null;
820: END IF;
821: IF ( p_x_route_efct_rec.attribute9 = FND_API.G_MISS_CHAR ) THEN
822: p_x_route_efct_rec.attribute9 := null;
823: END IF;
824: IF ( p_x_route_efct_rec.attribute10 = FND_API.G_MISS_CHAR ) THEN
825: p_x_route_efct_rec.attribute10 := null;
820: END IF;
821: IF ( p_x_route_efct_rec.attribute9 = FND_API.G_MISS_CHAR ) THEN
822: p_x_route_efct_rec.attribute9 := null;
823: END IF;
824: IF ( p_x_route_efct_rec.attribute10 = FND_API.G_MISS_CHAR ) THEN
825: p_x_route_efct_rec.attribute10 := null;
826: END IF;
827: IF ( p_x_route_efct_rec.attribute11 = FND_API.G_MISS_CHAR ) THEN
828: p_x_route_efct_rec.attribute11 := null;
823: END IF;
824: IF ( p_x_route_efct_rec.attribute10 = FND_API.G_MISS_CHAR ) THEN
825: p_x_route_efct_rec.attribute10 := null;
826: END IF;
827: IF ( p_x_route_efct_rec.attribute11 = FND_API.G_MISS_CHAR ) THEN
828: p_x_route_efct_rec.attribute11 := null;
829: END IF;
830: IF ( p_x_route_efct_rec.attribute12 = FND_API.G_MISS_CHAR ) THEN
831: p_x_route_efct_rec.attribute12 := null;
826: END IF;
827: IF ( p_x_route_efct_rec.attribute11 = FND_API.G_MISS_CHAR ) THEN
828: p_x_route_efct_rec.attribute11 := null;
829: END IF;
830: IF ( p_x_route_efct_rec.attribute12 = FND_API.G_MISS_CHAR ) THEN
831: p_x_route_efct_rec.attribute12 := null;
832: END IF;
833: IF ( p_x_route_efct_rec.attribute13 = FND_API.G_MISS_CHAR ) THEN
834: p_x_route_efct_rec.attribute13 := null;
829: END IF;
830: IF ( p_x_route_efct_rec.attribute12 = FND_API.G_MISS_CHAR ) THEN
831: p_x_route_efct_rec.attribute12 := null;
832: END IF;
833: IF ( p_x_route_efct_rec.attribute13 = FND_API.G_MISS_CHAR ) THEN
834: p_x_route_efct_rec.attribute13 := null;
835: END IF;
836: IF ( p_x_route_efct_rec.attribute14 = FND_API.G_MISS_CHAR ) THEN
837: p_x_route_efct_rec.attribute14 := null;
832: END IF;
833: IF ( p_x_route_efct_rec.attribute13 = FND_API.G_MISS_CHAR ) THEN
834: p_x_route_efct_rec.attribute13 := null;
835: END IF;
836: IF ( p_x_route_efct_rec.attribute14 = FND_API.G_MISS_CHAR ) THEN
837: p_x_route_efct_rec.attribute14 := null;
838: END IF;
839: IF ( p_x_route_efct_rec.attribute15 = FND_API.G_MISS_CHAR ) THEN
840: p_x_route_efct_rec.attribute15 := null;
835: END IF;
836: IF ( p_x_route_efct_rec.attribute14 = FND_API.G_MISS_CHAR ) THEN
837: p_x_route_efct_rec.attribute14 := null;
838: END IF;
839: IF ( p_x_route_efct_rec.attribute15 = FND_API.G_MISS_CHAR ) THEN
840: p_x_route_efct_rec.attribute15 := null;
841: END IF;
842: END default_efct_miss_attributes;
843: -- Procedure to add Default values for unchanged attributes (UPDATE)
934: FND_MESSAGE.set_name( 'AHL', 'AHL_RM_INVALID_MTL_REC' );
935: FND_MESSAGE.set_token( 'RECORD', get_record_identifier( p_x_material_req_rec ) );
936: FND_MSG_PUB.add;
937: CLOSE get_old_rec;
938: RAISE FND_API.G_EXC_ERROR;
939: END IF;
940: CLOSE get_old_rec;
941: -- Convert G_MISS values to NULL and NULL values to Old values
942: IF ( p_x_material_req_rec.item_comp_detail_id = FND_API.G_MISS_NUM ) THEN
938: RAISE FND_API.G_EXC_ERROR;
939: END IF;
940: CLOSE get_old_rec;
941: -- Convert G_MISS values to NULL and NULL values to Old values
942: IF ( p_x_material_req_rec.item_comp_detail_id = FND_API.G_MISS_NUM ) THEN
943: p_x_material_req_rec.item_comp_detail_id := null;
944: ELSIF ( p_x_material_req_rec.item_comp_detail_id IS NULL ) THEN
945: p_x_material_req_rec.item_comp_detail_id := l_old_material_req_rec.item_comp_detail_id;
946: END IF;
943: p_x_material_req_rec.item_comp_detail_id := null;
944: ELSIF ( p_x_material_req_rec.item_comp_detail_id IS NULL ) THEN
945: p_x_material_req_rec.item_comp_detail_id := l_old_material_req_rec.item_comp_detail_id;
946: END IF;
947: IF ( p_x_material_req_rec.position_path_id = FND_API.G_MISS_NUM ) THEN
948: p_x_material_req_rec.position_path_id := null;
949: ELSIF ( p_x_material_req_rec.position_path_id IS NULL ) THEN
950: p_x_material_req_rec.position_path_id := l_old_material_req_rec.position_path_id;
951: END IF;
948: p_x_material_req_rec.position_path_id := null;
949: ELSIF ( p_x_material_req_rec.position_path_id IS NULL ) THEN
950: p_x_material_req_rec.position_path_id := l_old_material_req_rec.position_path_id;
951: END IF;
952: IF ( p_x_material_req_rec.position_path = FND_API.G_MISS_CHAR ) THEN
953: p_x_material_req_rec.position_path := null;
954: ELSIF ( p_x_material_req_rec.position_path IS NULL ) THEN
955: p_x_material_req_rec.position_path := l_old_material_req_rec.position_path;
956: END IF;
953: p_x_material_req_rec.position_path := null;
954: ELSIF ( p_x_material_req_rec.position_path IS NULL ) THEN
955: p_x_material_req_rec.position_path := l_old_material_req_rec.position_path;
956: END IF;
957: IF ( p_x_material_req_rec.item_group_id = FND_API.G_MISS_NUM ) THEN
958: p_x_material_req_rec.item_group_id := null;
959: ELSIF ( p_x_material_req_rec.item_group_id IS NULL ) THEN
960: p_x_material_req_rec.item_group_id := l_old_material_req_rec.item_group_id;
961: END IF;
958: p_x_material_req_rec.item_group_id := null;
959: ELSIF ( p_x_material_req_rec.item_group_id IS NULL ) THEN
960: p_x_material_req_rec.item_group_id := l_old_material_req_rec.item_group_id;
961: END IF;
962: IF ( p_x_material_req_rec.item_group_name = FND_API.G_MISS_CHAR ) THEN
963: p_x_material_req_rec.item_group_name := null;
964: ELSIF ( p_x_material_req_rec.item_group_name IS NULL ) THEN
965: p_x_material_req_rec.item_group_name := l_old_material_req_rec.item_group_name;
966: END IF;
963: p_x_material_req_rec.item_group_name := null;
964: ELSIF ( p_x_material_req_rec.item_group_name IS NULL ) THEN
965: p_x_material_req_rec.item_group_name := l_old_material_req_rec.item_group_name;
966: END IF;
967: IF ( p_x_material_req_rec.inventory_item_id = FND_API.G_MISS_NUM ) THEN
968: p_x_material_req_rec.inventory_item_id := null;
969: ELSIF ( p_x_material_req_rec.inventory_item_id IS NULL ) THEN
970: p_x_material_req_rec.inventory_item_id := l_old_material_req_rec.inventory_item_id;
971: END IF;
968: p_x_material_req_rec.inventory_item_id := null;
969: ELSIF ( p_x_material_req_rec.inventory_item_id IS NULL ) THEN
970: p_x_material_req_rec.inventory_item_id := l_old_material_req_rec.inventory_item_id;
971: END IF;
972: IF ( p_x_material_req_rec.inventory_org_id = FND_API.G_MISS_NUM ) THEN
973: p_x_material_req_rec.inventory_org_id := null;
974: ELSIF ( p_x_material_req_rec.inventory_org_id IS NULL ) THEN
975: p_x_material_req_rec.inventory_org_id := l_old_material_req_rec.inventory_org_id;
976: END IF;
973: p_x_material_req_rec.inventory_org_id := null;
974: ELSIF ( p_x_material_req_rec.inventory_org_id IS NULL ) THEN
975: p_x_material_req_rec.inventory_org_id := l_old_material_req_rec.inventory_org_id;
976: END IF;
977: IF ( p_x_material_req_rec.item_number = FND_API.G_MISS_CHAR ) THEN
978: p_x_material_req_rec.item_number := null;
979: ELSIF ( p_x_material_req_rec.item_number IS NULL ) THEN
980: p_x_material_req_rec.item_number := l_old_material_req_rec.item_number;
981: END IF;
978: p_x_material_req_rec.item_number := null;
979: ELSIF ( p_x_material_req_rec.item_number IS NULL ) THEN
980: p_x_material_req_rec.item_number := l_old_material_req_rec.item_number;
981: END IF;
982: IF ( p_x_material_req_rec.uom_code = FND_API.G_MISS_CHAR ) THEN
983: p_x_material_req_rec.uom_code := null;
984: ELSIF ( p_x_material_req_rec.uom_code IS NULL ) THEN
985: p_x_material_req_rec.uom_code := l_old_material_req_rec.uom_code;
986: END IF;
983: p_x_material_req_rec.uom_code := null;
984: ELSIF ( p_x_material_req_rec.uom_code IS NULL ) THEN
985: p_x_material_req_rec.uom_code := l_old_material_req_rec.uom_code;
986: END IF;
987: IF ( p_x_material_req_rec.uom = FND_API.G_MISS_CHAR ) THEN
988: p_x_material_req_rec.uom := null;
989: ELSIF ( p_x_material_req_rec.uom IS NULL ) THEN
990: p_x_material_req_rec.uom := l_old_material_req_rec.uom;
991: END IF;
988: p_x_material_req_rec.uom := null;
989: ELSIF ( p_x_material_req_rec.uom IS NULL ) THEN
990: p_x_material_req_rec.uom := l_old_material_req_rec.uom;
991: END IF;
992: IF ( p_x_material_req_rec.quantity = FND_API.G_MISS_NUM ) THEN
993: p_x_material_req_rec.quantity := null;
994: ELSIF ( p_x_material_req_rec.quantity IS NULL ) THEN
995: p_x_material_req_rec.quantity := l_old_material_req_rec.quantity;
996: END IF;
993: p_x_material_req_rec.quantity := null;
994: ELSIF ( p_x_material_req_rec.quantity IS NULL ) THEN
995: p_x_material_req_rec.quantity := l_old_material_req_rec.quantity;
996: END IF;
997: IF ( p_x_material_req_rec.attribute_category = FND_API.G_MISS_CHAR ) THEN
998: p_x_material_req_rec.attribute_category := null;
999: ELSIF ( p_x_material_req_rec.attribute_category IS NULL ) THEN
1000: p_x_material_req_rec.attribute_category := l_old_material_req_rec.attribute_category;
1001: END IF;
998: p_x_material_req_rec.attribute_category := null;
999: ELSIF ( p_x_material_req_rec.attribute_category IS NULL ) THEN
1000: p_x_material_req_rec.attribute_category := l_old_material_req_rec.attribute_category;
1001: END IF;
1002: IF ( p_x_material_req_rec.attribute1 = FND_API.G_MISS_CHAR ) THEN
1003: p_x_material_req_rec.attribute1 := null;
1004: ELSIF ( p_x_material_req_rec.attribute1 IS NULL ) THEN
1005: p_x_material_req_rec.attribute1 := l_old_material_req_rec.attribute1;
1006: END IF;
1003: p_x_material_req_rec.attribute1 := null;
1004: ELSIF ( p_x_material_req_rec.attribute1 IS NULL ) THEN
1005: p_x_material_req_rec.attribute1 := l_old_material_req_rec.attribute1;
1006: END IF;
1007: IF ( p_x_material_req_rec.attribute2 = FND_API.G_MISS_CHAR ) THEN
1008: p_x_material_req_rec.attribute2 := null;
1009: ELSIF ( p_x_material_req_rec.attribute2 IS NULL ) THEN
1010: p_x_material_req_rec.attribute2 := l_old_material_req_rec.attribute2;
1011: END IF;
1008: p_x_material_req_rec.attribute2 := null;
1009: ELSIF ( p_x_material_req_rec.attribute2 IS NULL ) THEN
1010: p_x_material_req_rec.attribute2 := l_old_material_req_rec.attribute2;
1011: END IF;
1012: IF ( p_x_material_req_rec.attribute3 = FND_API.G_MISS_CHAR ) THEN
1013: p_x_material_req_rec.attribute3 := null;
1014: ELSIF ( p_x_material_req_rec.attribute3 IS NULL ) THEN
1015: p_x_material_req_rec.attribute3 := l_old_material_req_rec.attribute3;
1016: END IF;
1013: p_x_material_req_rec.attribute3 := null;
1014: ELSIF ( p_x_material_req_rec.attribute3 IS NULL ) THEN
1015: p_x_material_req_rec.attribute3 := l_old_material_req_rec.attribute3;
1016: END IF;
1017: IF ( p_x_material_req_rec.attribute4 = FND_API.G_MISS_CHAR ) THEN
1018: p_x_material_req_rec.attribute4 := null;
1019: ELSIF ( p_x_material_req_rec.attribute4 IS NULL ) THEN
1020: p_x_material_req_rec.attribute4 := l_old_material_req_rec.attribute4;
1021: END IF;
1018: p_x_material_req_rec.attribute4 := null;
1019: ELSIF ( p_x_material_req_rec.attribute4 IS NULL ) THEN
1020: p_x_material_req_rec.attribute4 := l_old_material_req_rec.attribute4;
1021: END IF;
1022: IF ( p_x_material_req_rec.attribute5 = FND_API.G_MISS_CHAR ) THEN
1023: p_x_material_req_rec.attribute5 := null;
1024: ELSIF ( p_x_material_req_rec.attribute5 IS NULL ) THEN
1025: p_x_material_req_rec.attribute5 := l_old_material_req_rec.attribute5;
1026: END IF;
1023: p_x_material_req_rec.attribute5 := null;
1024: ELSIF ( p_x_material_req_rec.attribute5 IS NULL ) THEN
1025: p_x_material_req_rec.attribute5 := l_old_material_req_rec.attribute5;
1026: END IF;
1027: IF ( p_x_material_req_rec.attribute6 = FND_API.G_MISS_CHAR ) THEN
1028: p_x_material_req_rec.attribute6 := null;
1029: ELSIF ( p_x_material_req_rec.attribute6 IS NULL ) THEN
1030: p_x_material_req_rec.attribute6 := l_old_material_req_rec.attribute6;
1031: END IF;
1028: p_x_material_req_rec.attribute6 := null;
1029: ELSIF ( p_x_material_req_rec.attribute6 IS NULL ) THEN
1030: p_x_material_req_rec.attribute6 := l_old_material_req_rec.attribute6;
1031: END IF;
1032: IF ( p_x_material_req_rec.attribute7 = FND_API.G_MISS_CHAR ) THEN
1033: p_x_material_req_rec.attribute7 := null;
1034: ELSIF ( p_x_material_req_rec.attribute7 IS NULL ) THEN
1035: p_x_material_req_rec.attribute7 := l_old_material_req_rec.attribute7;
1036: END IF;
1033: p_x_material_req_rec.attribute7 := null;
1034: ELSIF ( p_x_material_req_rec.attribute7 IS NULL ) THEN
1035: p_x_material_req_rec.attribute7 := l_old_material_req_rec.attribute7;
1036: END IF;
1037: IF ( p_x_material_req_rec.attribute8 = FND_API.G_MISS_CHAR ) THEN
1038: p_x_material_req_rec.attribute8 := null;
1039: ELSIF ( p_x_material_req_rec.attribute8 IS NULL ) THEN
1040: p_x_material_req_rec.attribute8 := l_old_material_req_rec.attribute8;
1041: END IF;
1038: p_x_material_req_rec.attribute8 := null;
1039: ELSIF ( p_x_material_req_rec.attribute8 IS NULL ) THEN
1040: p_x_material_req_rec.attribute8 := l_old_material_req_rec.attribute8;
1041: END IF;
1042: IF ( p_x_material_req_rec.attribute9 = FND_API.G_MISS_CHAR ) THEN
1043: p_x_material_req_rec.attribute9 := null;
1044: ELSIF ( p_x_material_req_rec.attribute9 IS NULL ) THEN
1045: p_x_material_req_rec.attribute9 := l_old_material_req_rec.attribute9;
1046: END IF;
1043: p_x_material_req_rec.attribute9 := null;
1044: ELSIF ( p_x_material_req_rec.attribute9 IS NULL ) THEN
1045: p_x_material_req_rec.attribute9 := l_old_material_req_rec.attribute9;
1046: END IF;
1047: IF ( p_x_material_req_rec.attribute10 = FND_API.G_MISS_CHAR ) THEN
1048: p_x_material_req_rec.attribute10 := null;
1049: ELSIF ( p_x_material_req_rec.attribute10 IS NULL ) THEN
1050: p_x_material_req_rec.attribute10 := l_old_material_req_rec.attribute10;
1051: END IF;
1048: p_x_material_req_rec.attribute10 := null;
1049: ELSIF ( p_x_material_req_rec.attribute10 IS NULL ) THEN
1050: p_x_material_req_rec.attribute10 := l_old_material_req_rec.attribute10;
1051: END IF;
1052: IF ( p_x_material_req_rec.attribute11 = FND_API.G_MISS_CHAR ) THEN
1053: p_x_material_req_rec.attribute11 := null;
1054: ELSIF ( p_x_material_req_rec.attribute11 IS NULL ) THEN
1055: p_x_material_req_rec.attribute11 := l_old_material_req_rec.attribute11;
1056: END IF;
1053: p_x_material_req_rec.attribute11 := null;
1054: ELSIF ( p_x_material_req_rec.attribute11 IS NULL ) THEN
1055: p_x_material_req_rec.attribute11 := l_old_material_req_rec.attribute11;
1056: END IF;
1057: IF ( p_x_material_req_rec.attribute12 = FND_API.G_MISS_CHAR ) THEN
1058: p_x_material_req_rec.attribute12 := null;
1059: ELSIF ( p_x_material_req_rec.attribute12 IS NULL ) THEN
1060: p_x_material_req_rec.attribute12 := l_old_material_req_rec.attribute12;
1061: END IF;
1058: p_x_material_req_rec.attribute12 := null;
1059: ELSIF ( p_x_material_req_rec.attribute12 IS NULL ) THEN
1060: p_x_material_req_rec.attribute12 := l_old_material_req_rec.attribute12;
1061: END IF;
1062: IF ( p_x_material_req_rec.attribute13 = FND_API.G_MISS_CHAR ) THEN
1063: p_x_material_req_rec.attribute13 := null;
1064: ELSIF ( p_x_material_req_rec.attribute13 IS NULL ) THEN
1065: p_x_material_req_rec.attribute13 := l_old_material_req_rec.attribute13;
1066: END IF;
1063: p_x_material_req_rec.attribute13 := null;
1064: ELSIF ( p_x_material_req_rec.attribute13 IS NULL ) THEN
1065: p_x_material_req_rec.attribute13 := l_old_material_req_rec.attribute13;
1066: END IF;
1067: IF ( p_x_material_req_rec.attribute14 = FND_API.G_MISS_CHAR ) THEN
1068: p_x_material_req_rec.attribute14 := null;
1069: ELSIF ( p_x_material_req_rec.attribute14 IS NULL ) THEN
1070: p_x_material_req_rec.attribute14 := l_old_material_req_rec.attribute14;
1071: END IF;
1068: p_x_material_req_rec.attribute14 := null;
1069: ELSIF ( p_x_material_req_rec.attribute14 IS NULL ) THEN
1070: p_x_material_req_rec.attribute14 := l_old_material_req_rec.attribute14;
1071: END IF;
1072: IF ( p_x_material_req_rec.attribute15 = FND_API.G_MISS_CHAR ) THEN
1073: p_x_material_req_rec.attribute15 := null;
1074: ELSIF ( p_x_material_req_rec.attribute15 IS NULL ) THEN
1075: p_x_material_req_rec.attribute15 := l_old_material_req_rec.attribute15;
1076: END IF;
1073: p_x_material_req_rec.attribute15 := null;
1074: ELSIF ( p_x_material_req_rec.attribute15 IS NULL ) THEN
1075: p_x_material_req_rec.attribute15 := l_old_material_req_rec.attribute15;
1076: END IF;
1077: IF ( p_x_material_req_rec.exclude_flag = FND_API.G_MISS_CHAR ) THEN
1078: p_x_material_req_rec.exclude_flag := null;
1079: ELSIF ( p_x_material_req_rec.exclude_flag IS NULL ) THEN
1080: p_x_material_req_rec.exclude_flag := l_old_material_req_rec.exclude_flag;
1081: END IF;
1079: ELSIF ( p_x_material_req_rec.exclude_flag IS NULL ) THEN
1080: p_x_material_req_rec.exclude_flag := l_old_material_req_rec.exclude_flag;
1081: END IF;
1082: --pdoki added for OGMA 105 issue
1083: IF ( p_x_material_req_rec.in_service = FND_API.G_MISS_CHAR ) THEN
1084: p_x_material_req_rec.in_service := null;
1085: ELSIF ( p_x_material_req_rec.in_service IS NULL ) THEN
1086: p_x_material_req_rec.in_service := l_old_material_req_rec.in_service;
1087: END IF;
1084: p_x_material_req_rec.in_service := null;
1085: ELSIF ( p_x_material_req_rec.in_service IS NULL ) THEN
1086: p_x_material_req_rec.in_service := l_old_material_req_rec.in_service;
1087: END IF;
1088: IF ( p_x_material_req_rec.rework_percent = FND_API.G_MISS_NUM ) THEN
1089: p_x_material_req_rec.rework_percent := null;
1090: ELSIF ( p_x_material_req_rec.rework_percent IS NULL ) THEN
1091: p_x_material_req_rec.rework_percent := l_old_material_req_rec.rework_percent;
1092: END IF;
1089: p_x_material_req_rec.rework_percent := null;
1090: ELSIF ( p_x_material_req_rec.rework_percent IS NULL ) THEN
1091: p_x_material_req_rec.rework_percent := l_old_material_req_rec.rework_percent;
1092: END IF;
1093: IF ( p_x_material_req_rec.replace_percent = FND_API.G_MISS_NUM ) THEN
1094: p_x_material_req_rec.replace_percent := null;
1095: ELSIF ( p_x_material_req_rec.replace_percent IS NULL ) THEN
1096: p_x_material_req_rec.replace_percent := l_old_material_req_rec.replace_percent;
1097: END IF;
1095: ELSIF ( p_x_material_req_rec.replace_percent IS NULL ) THEN
1096: p_x_material_req_rec.replace_percent := l_old_material_req_rec.replace_percent;
1097: END IF;
1098: --sukhwsin: changes for SB Effectivity starts
1099: IF ( p_x_material_req_rec.mc_id = FND_API.G_MISS_NUM ) THEN
1100: p_x_material_req_rec.mc_id := null;
1101: ELSIF ( p_x_material_req_rec.mc_id IS NULL ) THEN
1102: p_x_material_req_rec.mc_id := l_old_material_req_rec.mc_id;
1103: END IF;
1100: p_x_material_req_rec.mc_id := null;
1101: ELSIF ( p_x_material_req_rec.mc_id IS NULL ) THEN
1102: p_x_material_req_rec.mc_id := l_old_material_req_rec.mc_id;
1103: END IF;
1104: IF ( p_x_material_req_rec.mc_name = FND_API.G_MISS_CHAR ) THEN
1105: p_x_material_req_rec.mc_name := null;
1106: ELSIF ( p_x_material_req_rec.mc_name IS NULL ) THEN
1107: p_x_material_req_rec.mc_name := l_old_material_req_rec.mc_name;
1108: END IF;
1105: p_x_material_req_rec.mc_name := null;
1106: ELSIF ( p_x_material_req_rec.mc_name IS NULL ) THEN
1107: p_x_material_req_rec.mc_name := l_old_material_req_rec.mc_name;
1108: END IF;
1109: IF ( p_x_material_req_rec.mc_position_key = FND_API.G_MISS_NUM ) THEN
1110: p_x_material_req_rec.mc_position_key := null;
1111: ELSIF ( p_x_material_req_rec.mc_position_key IS NULL ) THEN
1112: p_x_material_req_rec.mc_position_key := l_old_material_req_rec.mc_position_key;
1113: END IF;
1110: p_x_material_req_rec.mc_position_key := null;
1111: ELSIF ( p_x_material_req_rec.mc_position_key IS NULL ) THEN
1112: p_x_material_req_rec.mc_position_key := l_old_material_req_rec.mc_position_key;
1113: END IF;
1114: IF ( p_x_material_req_rec.mc_position = FND_API.G_MISS_CHAR ) THEN
1115: p_x_material_req_rec.mc_position := null;
1116: ELSIF ( p_x_material_req_rec.mc_position IS NULL ) THEN
1117: p_x_material_req_rec.mc_position := l_old_material_req_rec.mc_position;
1118: END IF;
1189: FND_MESSAGE.set_name( 'AHL', 'AHL_RM_INVALID_efct_REC' );
1190: -- FND_MESSAGE.set_token( 'RECORD', get_record_identifier( p_x_route_efct_rec ) );
1191: FND_MSG_PUB.add;
1192: CLOSE get_old_rec;
1193: RAISE FND_API.G_EXC_ERROR;
1194: END IF;
1195: CLOSE get_old_rec;
1196: -- Convert G_MISS values to NULL and NULL values to Old values
1197: IF ( p_x_route_efct_rec.mc_header_id = FND_API.G_MISS_NUM ) THEN
1193: RAISE FND_API.G_EXC_ERROR;
1194: END IF;
1195: CLOSE get_old_rec;
1196: -- Convert G_MISS values to NULL and NULL values to Old values
1197: IF ( p_x_route_efct_rec.mc_header_id = FND_API.G_MISS_NUM ) THEN
1198: p_x_route_efct_rec.mc_header_id := null;
1199: ELSIF ( p_x_route_efct_rec.mc_header_id IS NULL ) THEN
1200: p_x_route_efct_rec.mc_header_id := l_old_route_efct_rec.mc_header_id;
1201: END IF;
1198: p_x_route_efct_rec.mc_header_id := null;
1199: ELSIF ( p_x_route_efct_rec.mc_header_id IS NULL ) THEN
1200: p_x_route_efct_rec.mc_header_id := l_old_route_efct_rec.mc_header_id;
1201: END IF;
1202: IF ( p_x_route_efct_rec.mc_id = FND_API.G_MISS_NUM ) THEN
1203: p_x_route_efct_rec.mc_id := null;
1204: ELSIF ( p_x_route_efct_rec.mc_id IS NULL ) THEN
1205: p_x_route_efct_rec.mc_id := l_old_route_efct_rec.mc_id;
1206: END IF;
1203: p_x_route_efct_rec.mc_id := null;
1204: ELSIF ( p_x_route_efct_rec.mc_id IS NULL ) THEN
1205: p_x_route_efct_rec.mc_id := l_old_route_efct_rec.mc_id;
1206: END IF;
1207: IF ( p_x_route_efct_rec.mc_name = FND_API.G_MISS_CHAR ) THEN
1208: p_x_route_efct_rec.mc_name := null;
1209: ELSIF ( p_x_route_efct_rec.mc_name IS NULL ) THEN
1210: p_x_route_efct_rec.mc_name := l_old_route_efct_rec.mc_name;
1211: END IF;
1208: p_x_route_efct_rec.mc_name := null;
1209: ELSIF ( p_x_route_efct_rec.mc_name IS NULL ) THEN
1210: p_x_route_efct_rec.mc_name := l_old_route_efct_rec.mc_name;
1211: END IF;
1212: IF ( p_x_route_efct_rec.MC_REVISION = FND_API.G_MISS_CHAR ) THEN
1213: p_x_route_efct_rec.MC_REVISION := null;
1214: ELSIF ( p_x_route_efct_rec.MC_REVISION IS NULL ) THEN
1215: p_x_route_efct_rec.MC_REVISION := l_old_route_efct_rec.MC_REVISION;
1216: END IF;
1213: p_x_route_efct_rec.MC_REVISION := null;
1214: ELSIF ( p_x_route_efct_rec.MC_REVISION IS NULL ) THEN
1215: p_x_route_efct_rec.MC_REVISION := l_old_route_efct_rec.MC_REVISION;
1216: END IF;
1217: IF ( p_x_route_efct_rec.inventory_item_id = FND_API.G_MISS_NUM ) THEN
1218: p_x_route_efct_rec.inventory_item_id := null;
1219: ELSIF ( p_x_route_efct_rec.inventory_item_id IS NULL ) THEN
1220: p_x_route_efct_rec.inventory_item_id := l_old_route_efct_rec.inventory_item_id;
1221: END IF;
1218: p_x_route_efct_rec.inventory_item_id := null;
1219: ELSIF ( p_x_route_efct_rec.inventory_item_id IS NULL ) THEN
1220: p_x_route_efct_rec.inventory_item_id := l_old_route_efct_rec.inventory_item_id;
1221: END IF;
1222: IF ( p_x_route_efct_rec.inventory_master_org_id = FND_API.G_MISS_NUM ) THEN
1223: p_x_route_efct_rec.inventory_master_org_id := null;
1224: ELSIF ( p_x_route_efct_rec.inventory_master_org_id IS NULL ) THEN
1225: p_x_route_efct_rec.inventory_master_org_id := l_old_route_efct_rec.inventory_master_org_id;
1226: END IF;
1223: p_x_route_efct_rec.inventory_master_org_id := null;
1224: ELSIF ( p_x_route_efct_rec.inventory_master_org_id IS NULL ) THEN
1225: p_x_route_efct_rec.inventory_master_org_id := l_old_route_efct_rec.inventory_master_org_id;
1226: END IF;
1227: IF ( p_x_route_efct_rec.item_number = FND_API.G_MISS_CHAR ) THEN
1228: p_x_route_efct_rec.item_number := null;
1229: ELSIF ( p_x_route_efct_rec.item_number IS NULL ) THEN
1230: p_x_route_efct_rec.item_number := l_old_route_efct_rec.item_number;
1231: END IF;
1228: p_x_route_efct_rec.item_number := null;
1229: ELSIF ( p_x_route_efct_rec.item_number IS NULL ) THEN
1230: p_x_route_efct_rec.item_number := l_old_route_efct_rec.item_number;
1231: END IF;
1232: IF ( p_x_route_efct_rec.organization_code = FND_API.G_MISS_CHAR ) THEN
1233: p_x_route_efct_rec.organization_code := null;
1234: ELSIF ( p_x_route_efct_rec.organization_code IS NULL ) THEN
1235: p_x_route_efct_rec.organization_code := l_old_route_efct_rec.organization_code;
1236: END IF;
1233: p_x_route_efct_rec.organization_code := null;
1234: ELSIF ( p_x_route_efct_rec.organization_code IS NULL ) THEN
1235: p_x_route_efct_rec.organization_code := l_old_route_efct_rec.organization_code;
1236: END IF;
1237: IF ( p_x_route_efct_rec.attribute_category = FND_API.G_MISS_CHAR ) THEN
1238: p_x_route_efct_rec.attribute_category := null;
1239: ELSIF ( p_x_route_efct_rec.attribute_category IS NULL ) THEN
1240: p_x_route_efct_rec.attribute_category := l_old_route_efct_rec.attribute_category;
1241: END IF;
1238: p_x_route_efct_rec.attribute_category := null;
1239: ELSIF ( p_x_route_efct_rec.attribute_category IS NULL ) THEN
1240: p_x_route_efct_rec.attribute_category := l_old_route_efct_rec.attribute_category;
1241: END IF;
1242: IF ( p_x_route_efct_rec.attribute1 = FND_API.G_MISS_CHAR ) THEN
1243: p_x_route_efct_rec.attribute1 := null;
1244: ELSIF ( p_x_route_efct_rec.attribute1 IS NULL ) THEN
1245: p_x_route_efct_rec.attribute1 := l_old_route_efct_rec.attribute1;
1246: END IF;
1243: p_x_route_efct_rec.attribute1 := null;
1244: ELSIF ( p_x_route_efct_rec.attribute1 IS NULL ) THEN
1245: p_x_route_efct_rec.attribute1 := l_old_route_efct_rec.attribute1;
1246: END IF;
1247: IF ( p_x_route_efct_rec.attribute2 = FND_API.G_MISS_CHAR ) THEN
1248: p_x_route_efct_rec.attribute2 := null;
1249: ELSIF ( p_x_route_efct_rec.attribute2 IS NULL ) THEN
1250: p_x_route_efct_rec.attribute2 := l_old_route_efct_rec.attribute2;
1251: END IF;
1248: p_x_route_efct_rec.attribute2 := null;
1249: ELSIF ( p_x_route_efct_rec.attribute2 IS NULL ) THEN
1250: p_x_route_efct_rec.attribute2 := l_old_route_efct_rec.attribute2;
1251: END IF;
1252: IF ( p_x_route_efct_rec.attribute3 = FND_API.G_MISS_CHAR ) THEN
1253: p_x_route_efct_rec.attribute3 := null;
1254: ELSIF ( p_x_route_efct_rec.attribute3 IS NULL ) THEN
1255: p_x_route_efct_rec.attribute3 := l_old_route_efct_rec.attribute3;
1256: END IF;
1253: p_x_route_efct_rec.attribute3 := null;
1254: ELSIF ( p_x_route_efct_rec.attribute3 IS NULL ) THEN
1255: p_x_route_efct_rec.attribute3 := l_old_route_efct_rec.attribute3;
1256: END IF;
1257: IF ( p_x_route_efct_rec.attribute4 = FND_API.G_MISS_CHAR ) THEN
1258: p_x_route_efct_rec.attribute4 := null;
1259: ELSIF ( p_x_route_efct_rec.attribute4 IS NULL ) THEN
1260: p_x_route_efct_rec.attribute4 := l_old_route_efct_rec.attribute4;
1261: END IF;
1258: p_x_route_efct_rec.attribute4 := null;
1259: ELSIF ( p_x_route_efct_rec.attribute4 IS NULL ) THEN
1260: p_x_route_efct_rec.attribute4 := l_old_route_efct_rec.attribute4;
1261: END IF;
1262: IF ( p_x_route_efct_rec.attribute5 = FND_API.G_MISS_CHAR ) THEN
1263: p_x_route_efct_rec.attribute5 := null;
1264: ELSIF ( p_x_route_efct_rec.attribute5 IS NULL ) THEN
1265: p_x_route_efct_rec.attribute5 := l_old_route_efct_rec.attribute5;
1266: END IF;
1263: p_x_route_efct_rec.attribute5 := null;
1264: ELSIF ( p_x_route_efct_rec.attribute5 IS NULL ) THEN
1265: p_x_route_efct_rec.attribute5 := l_old_route_efct_rec.attribute5;
1266: END IF;
1267: IF ( p_x_route_efct_rec.attribute6 = FND_API.G_MISS_CHAR ) THEN
1268: p_x_route_efct_rec.attribute6 := null;
1269: ELSIF ( p_x_route_efct_rec.attribute6 IS NULL ) THEN
1270: p_x_route_efct_rec.attribute6 := l_old_route_efct_rec.attribute6;
1271: END IF;
1268: p_x_route_efct_rec.attribute6 := null;
1269: ELSIF ( p_x_route_efct_rec.attribute6 IS NULL ) THEN
1270: p_x_route_efct_rec.attribute6 := l_old_route_efct_rec.attribute6;
1271: END IF;
1272: IF ( p_x_route_efct_rec.attribute7 = FND_API.G_MISS_CHAR ) THEN
1273: p_x_route_efct_rec.attribute7 := null;
1274: ELSIF ( p_x_route_efct_rec.attribute7 IS NULL ) THEN
1275: p_x_route_efct_rec.attribute7 := l_old_route_efct_rec.attribute7;
1276: END IF;
1273: p_x_route_efct_rec.attribute7 := null;
1274: ELSIF ( p_x_route_efct_rec.attribute7 IS NULL ) THEN
1275: p_x_route_efct_rec.attribute7 := l_old_route_efct_rec.attribute7;
1276: END IF;
1277: IF ( p_x_route_efct_rec.attribute8 = FND_API.G_MISS_CHAR ) THEN
1278: p_x_route_efct_rec.attribute8 := null;
1279: ELSIF ( p_x_route_efct_rec.attribute8 IS NULL ) THEN
1280: p_x_route_efct_rec.attribute8 := l_old_route_efct_rec.attribute8;
1281: END IF;
1278: p_x_route_efct_rec.attribute8 := null;
1279: ELSIF ( p_x_route_efct_rec.attribute8 IS NULL ) THEN
1280: p_x_route_efct_rec.attribute8 := l_old_route_efct_rec.attribute8;
1281: END IF;
1282: IF ( p_x_route_efct_rec.attribute9 = FND_API.G_MISS_CHAR ) THEN
1283: p_x_route_efct_rec.attribute9 := null;
1284: ELSIF ( p_x_route_efct_rec.attribute9 IS NULL ) THEN
1285: p_x_route_efct_rec.attribute9 := l_old_route_efct_rec.attribute9;
1286: END IF;
1283: p_x_route_efct_rec.attribute9 := null;
1284: ELSIF ( p_x_route_efct_rec.attribute9 IS NULL ) THEN
1285: p_x_route_efct_rec.attribute9 := l_old_route_efct_rec.attribute9;
1286: END IF;
1287: IF ( p_x_route_efct_rec.attribute10 = FND_API.G_MISS_CHAR ) THEN
1288: p_x_route_efct_rec.attribute10 := null;
1289: ELSIF ( p_x_route_efct_rec.attribute10 IS NULL ) THEN
1290: p_x_route_efct_rec.attribute10 := l_old_route_efct_rec.attribute10;
1291: END IF;
1288: p_x_route_efct_rec.attribute10 := null;
1289: ELSIF ( p_x_route_efct_rec.attribute10 IS NULL ) THEN
1290: p_x_route_efct_rec.attribute10 := l_old_route_efct_rec.attribute10;
1291: END IF;
1292: IF ( p_x_route_efct_rec.attribute11 = FND_API.G_MISS_CHAR ) THEN
1293: p_x_route_efct_rec.attribute11 := null;
1294: ELSIF ( p_x_route_efct_rec.attribute11 IS NULL ) THEN
1295: p_x_route_efct_rec.attribute11 := l_old_route_efct_rec.attribute11;
1296: END IF;
1293: p_x_route_efct_rec.attribute11 := null;
1294: ELSIF ( p_x_route_efct_rec.attribute11 IS NULL ) THEN
1295: p_x_route_efct_rec.attribute11 := l_old_route_efct_rec.attribute11;
1296: END IF;
1297: IF ( p_x_route_efct_rec.attribute12 = FND_API.G_MISS_CHAR ) THEN
1298: p_x_route_efct_rec.attribute12 := null;
1299: ELSIF ( p_x_route_efct_rec.attribute12 IS NULL ) THEN
1300: p_x_route_efct_rec.attribute12 := l_old_route_efct_rec.attribute12;
1301: END IF;
1298: p_x_route_efct_rec.attribute12 := null;
1299: ELSIF ( p_x_route_efct_rec.attribute12 IS NULL ) THEN
1300: p_x_route_efct_rec.attribute12 := l_old_route_efct_rec.attribute12;
1301: END IF;
1302: IF ( p_x_route_efct_rec.attribute13 = FND_API.G_MISS_CHAR ) THEN
1303: p_x_route_efct_rec.attribute13 := null;
1304: ELSIF ( p_x_route_efct_rec.attribute13 IS NULL ) THEN
1305: p_x_route_efct_rec.attribute13 := l_old_route_efct_rec.attribute13;
1306: END IF;
1303: p_x_route_efct_rec.attribute13 := null;
1304: ELSIF ( p_x_route_efct_rec.attribute13 IS NULL ) THEN
1305: p_x_route_efct_rec.attribute13 := l_old_route_efct_rec.attribute13;
1306: END IF;
1307: IF ( p_x_route_efct_rec.attribute14 = FND_API.G_MISS_CHAR ) THEN
1308: p_x_route_efct_rec.attribute14 := null;
1309: ELSIF ( p_x_route_efct_rec.attribute14 IS NULL ) THEN
1310: p_x_route_efct_rec.attribute14 := l_old_route_efct_rec.attribute14;
1311: END IF;
1308: p_x_route_efct_rec.attribute14 := null;
1309: ELSIF ( p_x_route_efct_rec.attribute14 IS NULL ) THEN
1310: p_x_route_efct_rec.attribute14 := l_old_route_efct_rec.attribute14;
1311: END IF;
1312: IF ( p_x_route_efct_rec.attribute15 = FND_API.G_MISS_CHAR ) THEN
1313: p_x_route_efct_rec.attribute15 := null;
1314: ELSIF ( p_x_route_efct_rec.attribute15 IS NULL ) THEN
1315: p_x_route_efct_rec.attribute15 := l_old_route_efct_rec.attribute15;
1316: END IF;
1337: AND NVL( MI.end_date_active, SYSDATE );
1338:
1339: l_comms_nl_trackable_flag MTL_SYSTEM_ITEMS.COMMS_NL_TRACKABLE_FLAG%TYPE;
1340: BEGIN
1341: x_return_status := FND_API.G_RET_STS_SUCCESS;
1342:
1343: IF ( p_material_req_rec.dml_operation <> 'D' ) THEN
1344:
1345: -- Check if the Quantity does not column contains a null value.
1345: -- Check if the Quantity does not column contains a null value.
1346: -- Check if the Quantity does not column a value less than or equal to zero.
1347: IF ( p_material_req_rec.dml_operation = 'C' AND
1348: -- p_association_type <> 'DISPOSITION' AND
1349: (p_material_req_rec.quantity IS NULL OR p_material_req_rec.quantity = FND_API.G_MISS_NUM)
1350: ) THEN
1351: --sukhwsin: SB Effectivity code changes for modifying QTY validation for position based mat req. starts
1352: IF (p_association_type = 'DISPOSITION')
1353: THEN
1353: THEN
1354: FND_MESSAGE.set_name( 'AHL','AHL_RM_DISP_ITEM_QTY_NULL' );
1355: FND_MESSAGE.set_token( 'RECORD', get_record_identifier( p_material_req_rec ) );
1356: FND_MSG_PUB.add;
1357: x_return_status := FND_API.G_RET_STS_ERROR;
1358: ELSE
1359: --when association type is ROUTE or OPERATION
1360: --sukhwsin: raise QTY error only if item/ item group is given
1361: --do not raise error for position based requirement only if both QTY and UOM is missing.
1358: ELSE
1359: --when association type is ROUTE or OPERATION
1360: --sukhwsin: raise QTY error only if item/ item group is given
1361: --do not raise error for position based requirement only if both QTY and UOM is missing.
1362: IF ( ( p_material_req_rec.item_group_id IS NOT NULL AND p_material_req_rec.item_group_id <> FND_API.G_MISS_NUM ) OR
1363: ( p_material_req_rec.item_group_name IS NOT NULL AND p_material_req_rec.item_group_name <> FND_API.G_MISS_CHAR ) OR
1364: ( p_material_req_rec.item_number IS NOT NULL AND p_material_req_rec.item_number <> FND_API.G_MISS_CHAR )OR
1365: ( p_material_req_rec.inventory_item_id IS NOT NULL AND p_material_req_rec.inventory_item_id <> FND_API.G_MISS_NUM ) OR
1366: ( p_material_req_rec.inventory_org_id IS NOT NULL AND p_material_req_rec.inventory_org_id <> FND_API.G_MISS_NUM )
1359: --when association type is ROUTE or OPERATION
1360: --sukhwsin: raise QTY error only if item/ item group is given
1361: --do not raise error for position based requirement only if both QTY and UOM is missing.
1362: IF ( ( p_material_req_rec.item_group_id IS NOT NULL AND p_material_req_rec.item_group_id <> FND_API.G_MISS_NUM ) OR
1363: ( p_material_req_rec.item_group_name IS NOT NULL AND p_material_req_rec.item_group_name <> FND_API.G_MISS_CHAR ) OR
1364: ( p_material_req_rec.item_number IS NOT NULL AND p_material_req_rec.item_number <> FND_API.G_MISS_CHAR )OR
1365: ( p_material_req_rec.inventory_item_id IS NOT NULL AND p_material_req_rec.inventory_item_id <> FND_API.G_MISS_NUM ) OR
1366: ( p_material_req_rec.inventory_org_id IS NOT NULL AND p_material_req_rec.inventory_org_id <> FND_API.G_MISS_NUM )
1367: ) OR
1360: --sukhwsin: raise QTY error only if item/ item group is given
1361: --do not raise error for position based requirement only if both QTY and UOM is missing.
1362: IF ( ( p_material_req_rec.item_group_id IS NOT NULL AND p_material_req_rec.item_group_id <> FND_API.G_MISS_NUM ) OR
1363: ( p_material_req_rec.item_group_name IS NOT NULL AND p_material_req_rec.item_group_name <> FND_API.G_MISS_CHAR ) OR
1364: ( p_material_req_rec.item_number IS NOT NULL AND p_material_req_rec.item_number <> FND_API.G_MISS_CHAR )OR
1365: ( p_material_req_rec.inventory_item_id IS NOT NULL AND p_material_req_rec.inventory_item_id <> FND_API.G_MISS_NUM ) OR
1366: ( p_material_req_rec.inventory_org_id IS NOT NULL AND p_material_req_rec.inventory_org_id <> FND_API.G_MISS_NUM )
1367: ) OR
1368: (( p_material_req_rec.uom IS NOT NULL OR p_material_req_rec.uom <> FND_API.G_MISS_CHAR) OR
1361: --do not raise error for position based requirement only if both QTY and UOM is missing.
1362: IF ( ( p_material_req_rec.item_group_id IS NOT NULL AND p_material_req_rec.item_group_id <> FND_API.G_MISS_NUM ) OR
1363: ( p_material_req_rec.item_group_name IS NOT NULL AND p_material_req_rec.item_group_name <> FND_API.G_MISS_CHAR ) OR
1364: ( p_material_req_rec.item_number IS NOT NULL AND p_material_req_rec.item_number <> FND_API.G_MISS_CHAR )OR
1365: ( p_material_req_rec.inventory_item_id IS NOT NULL AND p_material_req_rec.inventory_item_id <> FND_API.G_MISS_NUM ) OR
1366: ( p_material_req_rec.inventory_org_id IS NOT NULL AND p_material_req_rec.inventory_org_id <> FND_API.G_MISS_NUM )
1367: ) OR
1368: (( p_material_req_rec.uom IS NOT NULL OR p_material_req_rec.uom <> FND_API.G_MISS_CHAR) OR
1369: ( p_material_req_rec.uom_code IS NOT NULL OR p_material_req_rec.uom_code <> FND_API.G_MISS_CHAR ))
1362: IF ( ( p_material_req_rec.item_group_id IS NOT NULL AND p_material_req_rec.item_group_id <> FND_API.G_MISS_NUM ) OR
1363: ( p_material_req_rec.item_group_name IS NOT NULL AND p_material_req_rec.item_group_name <> FND_API.G_MISS_CHAR ) OR
1364: ( p_material_req_rec.item_number IS NOT NULL AND p_material_req_rec.item_number <> FND_API.G_MISS_CHAR )OR
1365: ( p_material_req_rec.inventory_item_id IS NOT NULL AND p_material_req_rec.inventory_item_id <> FND_API.G_MISS_NUM ) OR
1366: ( p_material_req_rec.inventory_org_id IS NOT NULL AND p_material_req_rec.inventory_org_id <> FND_API.G_MISS_NUM )
1367: ) OR
1368: (( p_material_req_rec.uom IS NOT NULL OR p_material_req_rec.uom <> FND_API.G_MISS_CHAR) OR
1369: ( p_material_req_rec.uom_code IS NOT NULL OR p_material_req_rec.uom_code <> FND_API.G_MISS_CHAR ))
1370: THEN
1364: ( p_material_req_rec.item_number IS NOT NULL AND p_material_req_rec.item_number <> FND_API.G_MISS_CHAR )OR
1365: ( p_material_req_rec.inventory_item_id IS NOT NULL AND p_material_req_rec.inventory_item_id <> FND_API.G_MISS_NUM ) OR
1366: ( p_material_req_rec.inventory_org_id IS NOT NULL AND p_material_req_rec.inventory_org_id <> FND_API.G_MISS_NUM )
1367: ) OR
1368: (( p_material_req_rec.uom IS NOT NULL OR p_material_req_rec.uom <> FND_API.G_MISS_CHAR) OR
1369: ( p_material_req_rec.uom_code IS NOT NULL OR p_material_req_rec.uom_code <> FND_API.G_MISS_CHAR ))
1370: THEN
1371: FND_MESSAGE.set_name( 'AHL','AHL_RM_MTL_QTY_NULL' );
1372: FND_MESSAGE.set_token( 'RECORD', get_record_identifier( p_material_req_rec ) );
1365: ( p_material_req_rec.inventory_item_id IS NOT NULL AND p_material_req_rec.inventory_item_id <> FND_API.G_MISS_NUM ) OR
1366: ( p_material_req_rec.inventory_org_id IS NOT NULL AND p_material_req_rec.inventory_org_id <> FND_API.G_MISS_NUM )
1367: ) OR
1368: (( p_material_req_rec.uom IS NOT NULL OR p_material_req_rec.uom <> FND_API.G_MISS_CHAR) OR
1369: ( p_material_req_rec.uom_code IS NOT NULL OR p_material_req_rec.uom_code <> FND_API.G_MISS_CHAR ))
1370: THEN
1371: FND_MESSAGE.set_name( 'AHL','AHL_RM_MTL_QTY_NULL' );
1372: FND_MESSAGE.set_token( 'RECORD', get_record_identifier( p_material_req_rec ) );
1373: FND_MSG_PUB.add;
1370: THEN
1371: FND_MESSAGE.set_name( 'AHL','AHL_RM_MTL_QTY_NULL' );
1372: FND_MESSAGE.set_token( 'RECORD', get_record_identifier( p_material_req_rec ) );
1373: FND_MSG_PUB.add;
1374: x_return_status := FND_API.G_RET_STS_ERROR;
1375: END IF;
1376: END IF;
1377:
1378: ELSIF ( p_material_req_rec.dml_operation <> 'D' AND
1379: p_material_req_rec.quantity <= 0 ) THEN
1380: FND_MESSAGE.set_name( 'AHL','AHL_RM_MTL_QTY_LESS_ZERO' );
1381: FND_MESSAGE.set_token( 'RECORD', get_record_identifier( p_material_req_rec ) );
1382: FND_MSG_PUB.add;
1383: x_return_status := FND_API.G_RET_STS_ERROR;
1384: ELSIF ( p_material_req_rec.dml_operation <> 'D' AND
1385: p_association_type = 'DISPOSITION'
1386: AND
1387: (p_material_req_rec.INVENTORY_ITEM_ID IS NOT NULL OR p_material_req_rec.INVENTORY_ITEM_ID <> FND_API.G_MISS_NUM )
1383: x_return_status := FND_API.G_RET_STS_ERROR;
1384: ELSIF ( p_material_req_rec.dml_operation <> 'D' AND
1385: p_association_type = 'DISPOSITION'
1386: AND
1387: (p_material_req_rec.INVENTORY_ITEM_ID IS NOT NULL OR p_material_req_rec.INVENTORY_ITEM_ID <> FND_API.G_MISS_NUM )
1388: AND
1389: (p_material_req_rec.quantity IS NULL OR p_material_req_rec.quantity = FND_API.G_MISS_NUM) ) THEN
1390: FND_MESSAGE.set_name( 'AHL','AHL_RM_DISP_ITEM_QTY_NULL' );
1391: FND_MESSAGE.set_token( 'RECORD', get_record_identifier( p_material_req_rec ) );
1385: p_association_type = 'DISPOSITION'
1386: AND
1387: (p_material_req_rec.INVENTORY_ITEM_ID IS NOT NULL OR p_material_req_rec.INVENTORY_ITEM_ID <> FND_API.G_MISS_NUM )
1388: AND
1389: (p_material_req_rec.quantity IS NULL OR p_material_req_rec.quantity = FND_API.G_MISS_NUM) ) THEN
1390: FND_MESSAGE.set_name( 'AHL','AHL_RM_DISP_ITEM_QTY_NULL' );
1391: FND_MESSAGE.set_token( 'RECORD', get_record_identifier( p_material_req_rec ) );
1392: FND_MSG_PUB.add;
1393: x_return_status := FND_API.G_RET_STS_ERROR;
1389: (p_material_req_rec.quantity IS NULL OR p_material_req_rec.quantity = FND_API.G_MISS_NUM) ) THEN
1390: FND_MESSAGE.set_name( 'AHL','AHL_RM_DISP_ITEM_QTY_NULL' );
1391: FND_MESSAGE.set_token( 'RECORD', get_record_identifier( p_material_req_rec ) );
1392: FND_MSG_PUB.add;
1393: x_return_status := FND_API.G_RET_STS_ERROR;
1394: END IF;
1395:
1396: -- Check if the UOM not column contains a null value.
1397: IF ( ( p_material_req_rec.dml_operation <> 'D' AND
1397: IF ( ( p_material_req_rec.dml_operation <> 'D' AND
1398: -- p_association_type <> 'DISPOSITION' AND
1399: p_material_req_rec.uom IS NULL AND
1400: p_material_req_rec.uom_code IS NULL ) OR
1401: ( p_material_req_rec.uom = FND_API.G_MISS_CHAR AND
1402: p_material_req_rec.uom_code = FND_API.G_MISS_CHAR ) )
1403: THEN
1404: --sukhwsin: SB Effectivity code changes for modifying validation check for UOM for pos. based mat. req. starts
1405: --raise UOM error only if association type is disposition or
1398: -- p_association_type <> 'DISPOSITION' AND
1399: p_material_req_rec.uom IS NULL AND
1400: p_material_req_rec.uom_code IS NULL ) OR
1401: ( p_material_req_rec.uom = FND_API.G_MISS_CHAR AND
1402: p_material_req_rec.uom_code = FND_API.G_MISS_CHAR ) )
1403: THEN
1404: --sukhwsin: SB Effectivity code changes for modifying validation check for UOM for pos. based mat. req. starts
1405: --raise UOM error only if association type is disposition or
1406: --if association type is route/operation and either item or item group is given
1405: --raise UOM error only if association type is disposition or
1406: --if association type is route/operation and either item or item group is given
1407: --do not raise error for position based requirement only if both QTY and UOM is missing.
1408: IF ( p_association_type = 'DISPOSITION' OR
1409: ( p_material_req_rec.item_group_id IS NOT NULL AND p_material_req_rec.item_group_id <> FND_API.G_MISS_NUM ) OR
1410: ( p_material_req_rec.item_group_name IS NOT NULL AND p_material_req_rec.item_group_name <> FND_API.G_MISS_CHAR ) OR
1411: ( p_material_req_rec.item_number IS NOT NULL AND p_material_req_rec.item_number <> FND_API.G_MISS_CHAR )OR
1412: ( p_material_req_rec.inventory_item_id IS NOT NULL AND p_material_req_rec.inventory_item_id <> FND_API.G_MISS_NUM ) OR
1413: ( p_material_req_rec.inventory_org_id IS NOT NULL AND p_material_req_rec.inventory_org_id <> FND_API.G_MISS_NUM )
1406: --if association type is route/operation and either item or item group is given
1407: --do not raise error for position based requirement only if both QTY and UOM is missing.
1408: IF ( p_association_type = 'DISPOSITION' OR
1409: ( p_material_req_rec.item_group_id IS NOT NULL AND p_material_req_rec.item_group_id <> FND_API.G_MISS_NUM ) OR
1410: ( p_material_req_rec.item_group_name IS NOT NULL AND p_material_req_rec.item_group_name <> FND_API.G_MISS_CHAR ) OR
1411: ( p_material_req_rec.item_number IS NOT NULL AND p_material_req_rec.item_number <> FND_API.G_MISS_CHAR )OR
1412: ( p_material_req_rec.inventory_item_id IS NOT NULL AND p_material_req_rec.inventory_item_id <> FND_API.G_MISS_NUM ) OR
1413: ( p_material_req_rec.inventory_org_id IS NOT NULL AND p_material_req_rec.inventory_org_id <> FND_API.G_MISS_NUM )
1414: ) OR
1407: --do not raise error for position based requirement only if both QTY and UOM is missing.
1408: IF ( p_association_type = 'DISPOSITION' OR
1409: ( p_material_req_rec.item_group_id IS NOT NULL AND p_material_req_rec.item_group_id <> FND_API.G_MISS_NUM ) OR
1410: ( p_material_req_rec.item_group_name IS NOT NULL AND p_material_req_rec.item_group_name <> FND_API.G_MISS_CHAR ) OR
1411: ( p_material_req_rec.item_number IS NOT NULL AND p_material_req_rec.item_number <> FND_API.G_MISS_CHAR )OR
1412: ( p_material_req_rec.inventory_item_id IS NOT NULL AND p_material_req_rec.inventory_item_id <> FND_API.G_MISS_NUM ) OR
1413: ( p_material_req_rec.inventory_org_id IS NOT NULL AND p_material_req_rec.inventory_org_id <> FND_API.G_MISS_NUM )
1414: ) OR
1415: (p_material_req_rec.quantity IS NOT NULL OR p_material_req_rec.quantity <> FND_API.G_MISS_NUM)
1408: IF ( p_association_type = 'DISPOSITION' OR
1409: ( p_material_req_rec.item_group_id IS NOT NULL AND p_material_req_rec.item_group_id <> FND_API.G_MISS_NUM ) OR
1410: ( p_material_req_rec.item_group_name IS NOT NULL AND p_material_req_rec.item_group_name <> FND_API.G_MISS_CHAR ) OR
1411: ( p_material_req_rec.item_number IS NOT NULL AND p_material_req_rec.item_number <> FND_API.G_MISS_CHAR )OR
1412: ( p_material_req_rec.inventory_item_id IS NOT NULL AND p_material_req_rec.inventory_item_id <> FND_API.G_MISS_NUM ) OR
1413: ( p_material_req_rec.inventory_org_id IS NOT NULL AND p_material_req_rec.inventory_org_id <> FND_API.G_MISS_NUM )
1414: ) OR
1415: (p_material_req_rec.quantity IS NOT NULL OR p_material_req_rec.quantity <> FND_API.G_MISS_NUM)
1416: THEN
1409: ( p_material_req_rec.item_group_id IS NOT NULL AND p_material_req_rec.item_group_id <> FND_API.G_MISS_NUM ) OR
1410: ( p_material_req_rec.item_group_name IS NOT NULL AND p_material_req_rec.item_group_name <> FND_API.G_MISS_CHAR ) OR
1411: ( p_material_req_rec.item_number IS NOT NULL AND p_material_req_rec.item_number <> FND_API.G_MISS_CHAR )OR
1412: ( p_material_req_rec.inventory_item_id IS NOT NULL AND p_material_req_rec.inventory_item_id <> FND_API.G_MISS_NUM ) OR
1413: ( p_material_req_rec.inventory_org_id IS NOT NULL AND p_material_req_rec.inventory_org_id <> FND_API.G_MISS_NUM )
1414: ) OR
1415: (p_material_req_rec.quantity IS NOT NULL OR p_material_req_rec.quantity <> FND_API.G_MISS_NUM)
1416: THEN
1417: FND_MESSAGE.set_name( 'AHL','AHL_RM_UOM_NULL' );
1411: ( p_material_req_rec.item_number IS NOT NULL AND p_material_req_rec.item_number <> FND_API.G_MISS_CHAR )OR
1412: ( p_material_req_rec.inventory_item_id IS NOT NULL AND p_material_req_rec.inventory_item_id <> FND_API.G_MISS_NUM ) OR
1413: ( p_material_req_rec.inventory_org_id IS NOT NULL AND p_material_req_rec.inventory_org_id <> FND_API.G_MISS_NUM )
1414: ) OR
1415: (p_material_req_rec.quantity IS NOT NULL OR p_material_req_rec.quantity <> FND_API.G_MISS_NUM)
1416: THEN
1417: FND_MESSAGE.set_name( 'AHL','AHL_RM_UOM_NULL' );
1418: FND_MESSAGE.set_token( 'RECORD', get_record_identifier( p_material_req_rec ) );
1419: FND_MSG_PUB.add;
1416: THEN
1417: FND_MESSAGE.set_name( 'AHL','AHL_RM_UOM_NULL' );
1418: FND_MESSAGE.set_token( 'RECORD', get_record_identifier( p_material_req_rec ) );
1419: FND_MSG_PUB.add;
1420: x_return_status := FND_API.G_RET_STS_ERROR;
1421: END IF;
1422: --sukhwsin: SB Effectivity code changes for modifying validation check for UOM for pos. based mat. req. ends
1423: /*
1424: ELSIF
1425: p_material_req_rec.dml_operation <> 'D'
1426: AND p_association_type = 'DISPOSITION'
1427: AND (
1428: p_material_req_rec.quantity IS NOT NULL
1429: OR p_material_req_rec.quantity <> FND_API.G_MISS_NUM
1430: )
1431: AND (
1432: (p_material_req_rec.uom IS NULL AND p_material_req_rec.uom_code IS NULL )
1433: OR
1430: )
1431: AND (
1432: (p_material_req_rec.uom IS NULL AND p_material_req_rec.uom_code IS NULL )
1433: OR
1434: (p_material_req_rec.uom = FND_API.G_MISS_CHAR AND p_material_req_rec.uom_code = FND_API.G_MISS_CHAR)
1435: )
1436: THEN
1437: FND_MESSAGE.set_name( 'AHL','AHL_RM_UOM_NULL' );
1438: FND_MESSAGE.set_token( 'RECORD', get_record_identifier( p_material_req_rec ) );
1436: THEN
1437: FND_MESSAGE.set_name( 'AHL','AHL_RM_UOM_NULL' );
1438: FND_MESSAGE.set_token( 'RECORD', get_record_identifier( p_material_req_rec ) );
1439: FND_MSG_PUB.add;
1440: x_return_status := FND_API.G_RET_STS_ERROR;
1441: */
1442: END IF;
1443:
1444: END IF;
1445:
1446: IF ( p_association_type = 'DISPOSITION' AND
1447: p_material_req_rec.dml_operation <> 'D' AND
1448: (
1449: (p_material_req_rec.REPLACE_PERCENT IS NOT NULL OR p_material_req_rec.REPLACE_PERCENT <> FND_API.G_MISS_NUM )
1450: OR (p_material_req_rec.REWORK_PERCENT IS NOT NULL OR p_material_req_rec.REWORK_PERCENT <> FND_API.G_MISS_NUM )
1451: )
1452: AND
1453: (
1446: IF ( p_association_type = 'DISPOSITION' AND
1447: p_material_req_rec.dml_operation <> 'D' AND
1448: (
1449: (p_material_req_rec.REPLACE_PERCENT IS NOT NULL OR p_material_req_rec.REPLACE_PERCENT <> FND_API.G_MISS_NUM )
1450: OR (p_material_req_rec.REWORK_PERCENT IS NOT NULL OR p_material_req_rec.REWORK_PERCENT <> FND_API.G_MISS_NUM )
1451: )
1452: AND
1453: (
1454: (p_material_req_rec.POSITION_PATH_ID IS NULL OR p_material_req_rec.POSITION_PATH_ID = FND_API.G_MISS_NUM )
1450: OR (p_material_req_rec.REWORK_PERCENT IS NOT NULL OR p_material_req_rec.REWORK_PERCENT <> FND_API.G_MISS_NUM )
1451: )
1452: AND
1453: (
1454: (p_material_req_rec.POSITION_PATH_ID IS NULL OR p_material_req_rec.POSITION_PATH_ID = FND_API.G_MISS_NUM )
1455: AND (p_material_req_rec.ITEM_GROUP_ID IS NULL OR p_material_req_rec.ITEM_GROUP_ID = FND_API.G_MISS_NUM )
1456: AND (p_material_req_rec.INVENTORY_ITEM_ID IS NULL OR p_material_req_rec.INVENTORY_ITEM_ID = FND_API.G_MISS_NUM )
1457: )
1458: )
1451: )
1452: AND
1453: (
1454: (p_material_req_rec.POSITION_PATH_ID IS NULL OR p_material_req_rec.POSITION_PATH_ID = FND_API.G_MISS_NUM )
1455: AND (p_material_req_rec.ITEM_GROUP_ID IS NULL OR p_material_req_rec.ITEM_GROUP_ID = FND_API.G_MISS_NUM )
1456: AND (p_material_req_rec.INVENTORY_ITEM_ID IS NULL OR p_material_req_rec.INVENTORY_ITEM_ID = FND_API.G_MISS_NUM )
1457: )
1458: )
1459: THEN
1452: AND
1453: (
1454: (p_material_req_rec.POSITION_PATH_ID IS NULL OR p_material_req_rec.POSITION_PATH_ID = FND_API.G_MISS_NUM )
1455: AND (p_material_req_rec.ITEM_GROUP_ID IS NULL OR p_material_req_rec.ITEM_GROUP_ID = FND_API.G_MISS_NUM )
1456: AND (p_material_req_rec.INVENTORY_ITEM_ID IS NULL OR p_material_req_rec.INVENTORY_ITEM_ID = FND_API.G_MISS_NUM )
1457: )
1458: )
1459: THEN
1460: FND_MESSAGE.set_name( 'AHL','AHL_RM_DISP_REPLACE_INVALID' );
1460: FND_MESSAGE.set_name( 'AHL','AHL_RM_DISP_REPLACE_INVALID' );
1461: FND_MESSAGE.set_name( 'AHL','AHL_RM_DISP_REWORK_INVALID' );
1462: FND_MESSAGE.set_token( 'RECORD', get_record_identifier( p_material_req_rec ) );
1463: FND_MSG_PUB.add;
1464: x_return_status := FND_API.G_RET_STS_ERROR;
1465: END IF ;
1466:
1467: -- Check if the mandatory Replace column contains a null value.
1468: IF ( p_association_type = 'DISPOSITION' AND
1467: -- Check if the mandatory Replace column contains a null value.
1468: IF ( p_association_type = 'DISPOSITION' AND
1469: p_material_req_rec.dml_operation <> 'D' AND
1470: ( p_material_req_rec.REPLACE_PERCENT IS NULL OR
1471: p_material_req_rec.REPLACE_PERCENT = FND_API.G_MISS_NUM )
1472: )
1473: THEN
1474: FND_MESSAGE.set_name( 'AHL','AHL_RM_DISP_REPLACE_NULL' );
1475: FND_MESSAGE.set_token( 'RECORD', get_record_identifier( p_material_req_rec ) );
1473: THEN
1474: FND_MESSAGE.set_name( 'AHL','AHL_RM_DISP_REPLACE_NULL' );
1475: FND_MESSAGE.set_token( 'RECORD', get_record_identifier( p_material_req_rec ) );
1476: FND_MSG_PUB.add;
1477: x_return_status := FND_API.G_RET_STS_ERROR;
1478:
1479: ELSIF ( p_association_type = 'DISPOSITION' AND
1480: p_material_req_rec.dml_operation <> 'D' AND
1481: NOT ( p_material_req_rec.REPLACE_PERCENT BETWEEN 0 AND 100 )
1483: THEN
1484: FND_MESSAGE.set_name( 'AHL','AHL_RM_DISP_REPLACE_INVALID' );
1485: FND_MESSAGE.set_token( 'RECORD', get_record_identifier( p_material_req_rec ) );
1486: FND_MSG_PUB.add;
1487: x_return_status := FND_API.G_RET_STS_ERROR;
1488:
1489: END IF;
1490:
1491:
1498: IF (
1499: p_association_type = 'DISPOSITION' AND p_material_req_rec.dml_operation <> 'D'
1500: AND
1501: (
1502: ( ( p_material_req_rec.POSITION_PATH_ID IS NOT NULL AND p_material_req_rec.POSITION_PATH_ID <> FND_API.G_MISS_NUM )
1503: AND (p_material_req_rec.ITEM_GROUP_ID IS NULL OR p_material_req_rec.ITEM_GROUP_ID = FND_API.G_MISS_NUM )
1504: AND (p_material_req_rec.INVENTORY_ITEM_ID IS NULL OR p_material_req_rec.INVENTORY_ITEM_ID = FND_API.G_MISS_NUM )
1505: )
1506: OR
1499: p_association_type = 'DISPOSITION' AND p_material_req_rec.dml_operation <> 'D'
1500: AND
1501: (
1502: ( ( p_material_req_rec.POSITION_PATH_ID IS NOT NULL AND p_material_req_rec.POSITION_PATH_ID <> FND_API.G_MISS_NUM )
1503: AND (p_material_req_rec.ITEM_GROUP_ID IS NULL OR p_material_req_rec.ITEM_GROUP_ID = FND_API.G_MISS_NUM )
1504: AND (p_material_req_rec.INVENTORY_ITEM_ID IS NULL OR p_material_req_rec.INVENTORY_ITEM_ID = FND_API.G_MISS_NUM )
1505: )
1506: OR
1507: ( (p_material_req_rec.INVENTORY_ITEM_ID IS NOT NULL AND p_material_req_rec.INVENTORY_ITEM_ID <> FND_API.G_MISS_NUM)
1500: AND
1501: (
1502: ( ( p_material_req_rec.POSITION_PATH_ID IS NOT NULL AND p_material_req_rec.POSITION_PATH_ID <> FND_API.G_MISS_NUM )
1503: AND (p_material_req_rec.ITEM_GROUP_ID IS NULL OR p_material_req_rec.ITEM_GROUP_ID = FND_API.G_MISS_NUM )
1504: AND (p_material_req_rec.INVENTORY_ITEM_ID IS NULL OR p_material_req_rec.INVENTORY_ITEM_ID = FND_API.G_MISS_NUM )
1505: )
1506: OR
1507: ( (p_material_req_rec.INVENTORY_ITEM_ID IS NOT NULL AND p_material_req_rec.INVENTORY_ITEM_ID <> FND_API.G_MISS_NUM)
1508: AND (nvl(p_material_req_rec.COMP_MATERIAL_FLAG, 'N') = 'N' AND ((l_comms_nl_trackable_flag IS NOT NULL) AND (l_comms_nl_trackable_flag = 'Y')))
1503: AND (p_material_req_rec.ITEM_GROUP_ID IS NULL OR p_material_req_rec.ITEM_GROUP_ID = FND_API.G_MISS_NUM )
1504: AND (p_material_req_rec.INVENTORY_ITEM_ID IS NULL OR p_material_req_rec.INVENTORY_ITEM_ID = FND_API.G_MISS_NUM )
1505: )
1506: OR
1507: ( (p_material_req_rec.INVENTORY_ITEM_ID IS NOT NULL AND p_material_req_rec.INVENTORY_ITEM_ID <> FND_API.G_MISS_NUM)
1508: AND (nvl(p_material_req_rec.COMP_MATERIAL_FLAG, 'N') = 'N' AND ((l_comms_nl_trackable_flag IS NOT NULL) AND (l_comms_nl_trackable_flag = 'Y')))
1509: -- to throw this error , item has to be an Additional Material and also a trackable item.
1510: -- if the item is from Composition then we do not check whether its trackable or not as its possible to go to Inventory and change the trackable flag.
1511: -- and under any condition COMP_MATERIAL_FLAG = 'Y' this error will never be thrown
1511: -- and under any condition COMP_MATERIAL_FLAG = 'Y' this error will never be thrown
1512: )
1513: )
1514: AND
1515: ( p_material_req_rec.REWORK_PERCENT IS NULL OR p_material_req_rec.REWORK_PERCENT = FND_API.G_MISS_NUM )
1516: )
1517: THEN
1518: FND_MESSAGE.set_name( 'AHL','AHL_RM_DISP_REWORK_NULL' );
1519: FND_MESSAGE.set_token( 'RECORD', get_record_identifier( p_material_req_rec ) );
1517: THEN
1518: FND_MESSAGE.set_name( 'AHL','AHL_RM_DISP_REWORK_NULL' );
1519: FND_MESSAGE.set_token( 'RECORD', get_record_identifier( p_material_req_rec ) );
1520: FND_MSG_PUB.add;
1521: x_return_status := FND_API.G_RET_STS_ERROR;
1522: ELSIF ( p_association_type = 'DISPOSITION' AND
1523: p_material_req_rec.dml_operation <> 'D'
1524: AND
1525: (
1522: ELSIF ( p_association_type = 'DISPOSITION' AND
1523: p_material_req_rec.dml_operation <> 'D'
1524: AND
1525: (
1526: (p_material_req_rec.POSITION_PATH_ID IS NOT NULL AND p_material_req_rec.POSITION_PATH_ID <> FND_API.G_MISS_NUM )
1527:
1528: OR
1529: ( (p_material_req_rec.INVENTORY_ITEM_ID IS NOT NULL AND p_material_req_rec.INVENTORY_ITEM_ID <> FND_API.G_MISS_NUM)
1530: AND ((l_comms_nl_trackable_flag IS NOT NULL) AND (l_comms_nl_trackable_flag = 'Y'))
1525: (
1526: (p_material_req_rec.POSITION_PATH_ID IS NOT NULL AND p_material_req_rec.POSITION_PATH_ID <> FND_API.G_MISS_NUM )
1527:
1528: OR
1529: ( (p_material_req_rec.INVENTORY_ITEM_ID IS NOT NULL AND p_material_req_rec.INVENTORY_ITEM_ID <> FND_API.G_MISS_NUM)
1530: AND ((l_comms_nl_trackable_flag IS NOT NULL) AND (l_comms_nl_trackable_flag = 'Y'))
1531: )
1532: )
1533: AND NOT ( p_material_req_rec.REWORK_PERCENT BETWEEN 0 AND 100 )
1535: THEN
1536: FND_MESSAGE.set_name( 'AHL','AHL_RM_DISP_REWORK_INVALID' );
1537: FND_MESSAGE.set_token( 'RECORD', get_record_identifier( p_material_req_rec ) );
1538: FND_MSG_PUB.add;
1539: x_return_status := FND_API.G_RET_STS_ERROR;
1540:
1541: END IF;
1542: -- if item group then rework percent should not be allowed to be entered.
1543: IF
1546: AND
1547: (
1548: (
1549: (
1550: (p_material_req_rec.ITEM_GROUP_ID <> FND_API.G_MISS_NUM AND p_material_req_rec.ITEM_GROUP_ID IS NOT NULL )
1551: OR
1552: (p_material_req_rec.ITEM_GROUP_NAME <> FND_API.G_MISS_CHAR AND p_material_req_rec.ITEM_GROUP_NAME IS NOT NULL )
1553: )
1554: OR
1548: (
1549: (
1550: (p_material_req_rec.ITEM_GROUP_ID <> FND_API.G_MISS_NUM AND p_material_req_rec.ITEM_GROUP_ID IS NOT NULL )
1551: OR
1552: (p_material_req_rec.ITEM_GROUP_NAME <> FND_API.G_MISS_CHAR AND p_material_req_rec.ITEM_GROUP_NAME IS NOT NULL )
1553: )
1554: OR
1555: (
1556: ( p_material_req_rec.INVENTORY_ITEM_ID <> FND_API.G_MISS_NUM AND p_material_req_rec.INVENTORY_ITEM_ID IS NOT NULL )
1552: (p_material_req_rec.ITEM_GROUP_NAME <> FND_API.G_MISS_CHAR AND p_material_req_rec.ITEM_GROUP_NAME IS NOT NULL )
1553: )
1554: OR
1555: (
1556: ( p_material_req_rec.INVENTORY_ITEM_ID <> FND_API.G_MISS_NUM AND p_material_req_rec.INVENTORY_ITEM_ID IS NOT NULL )
1557: AND
1558: (p_material_req_rec.COMP_MATERIAL_FLAG = 'Y' OR ( nvl(p_material_req_rec.COMP_MATERIAL_FLAG, 'N') <> 'Y' AND l_comms_nl_trackable_flag <> 'Y'))
1559: )
1560: )
1558: (p_material_req_rec.COMP_MATERIAL_FLAG = 'Y' OR ( nvl(p_material_req_rec.COMP_MATERIAL_FLAG, 'N') <> 'Y' AND l_comms_nl_trackable_flag <> 'Y'))
1559: )
1560: )
1561: AND
1562: (p_material_req_rec.REWORK_PERCENT <> FND_API.G_MISS_NUM OR p_material_req_rec.REWORK_PERCENT IS NOT NULL )
1563: --if non trackable item then rework percent should not be allowed to be entered.
1564:
1565: )
1566: )
1567: THEN
1568: FND_MESSAGE.set_name( 'AHL','AHL_RM_DISP_REWORK_NOT_REQ' );
1569: FND_MESSAGE.set_token( 'RECORD', get_record_identifier( p_material_req_rec ) );
1570: FND_MSG_PUB.add;
1571: x_return_status := FND_API.G_RET_STS_ERROR;
1572: END IF;
1573:
1574:
1575: IF ( p_material_req_rec.dml_operation = 'C' ) THEN
1577: END IF;
1578:
1579: -- Check if the mandatory Effectivity ID column contains a null value.
1580: IF ( p_material_req_rec.rt_oper_material_id IS NULL OR
1581: p_material_req_rec.rt_oper_material_id = FND_API.G_MISS_NUM ) THEN
1582: FND_MESSAGE.set_name( 'AHL','AHL_RM_MTL_ID_NULL' );
1583: FND_MESSAGE.set_token( 'RECORD', get_record_identifier( p_material_req_rec ) );
1584: FND_MSG_PUB.add;
1585: x_return_status := FND_API.G_RET_STS_ERROR;
1581: p_material_req_rec.rt_oper_material_id = FND_API.G_MISS_NUM ) THEN
1582: FND_MESSAGE.set_name( 'AHL','AHL_RM_MTL_ID_NULL' );
1583: FND_MESSAGE.set_token( 'RECORD', get_record_identifier( p_material_req_rec ) );
1584: FND_MSG_PUB.add;
1585: x_return_status := FND_API.G_RET_STS_ERROR;
1586: RETURN;
1587: END IF;
1588:
1589: -- Check if the mandatory Object Version Number column contains a null value.
1587: END IF;
1588:
1589: -- Check if the mandatory Object Version Number column contains a null value.
1590: IF ( p_material_req_rec.object_version_number IS NULL OR
1591: p_material_req_rec.object_version_number = FND_API.G_MISS_NUM ) THEN
1592: FND_MESSAGE.set_name( 'AHL','AHL_RM_MTL_OBJ_VERSION_NULL' );
1593: FND_MESSAGE.set_token( 'RECORD', get_record_identifier( p_material_req_rec ) );
1594: FND_MSG_PUB.add;
1595: x_return_status := FND_API.G_RET_STS_ERROR;
1591: p_material_req_rec.object_version_number = FND_API.G_MISS_NUM ) THEN
1592: FND_MESSAGE.set_name( 'AHL','AHL_RM_MTL_OBJ_VERSION_NULL' );
1593: FND_MESSAGE.set_token( 'RECORD', get_record_identifier( p_material_req_rec ) );
1594: FND_MSG_PUB.add;
1595: x_return_status := FND_API.G_RET_STS_ERROR;
1596: RETURN;
1597: END IF;
1598:
1599: END validate_attributes;
1604: x_return_status OUT NOCOPY VARCHAR2
1605: )
1606: IS
1607: BEGIN
1608: x_return_status := FND_API.G_RET_STS_SUCCESS;
1609: IF ( p_route_efct_rec.dml_operation = 'C' ) THEN
1610: RETURN;
1611: END IF;
1612: -- Check if the mandatory column contains a null value.
1610: RETURN;
1611: END IF;
1612: -- Check if the mandatory column contains a null value.
1613: IF ( p_route_efct_rec.ROUTE_EFFECTIVITY_ID IS NULL OR
1614: p_route_efct_rec.ROUTE_EFFECTIVITY_ID = FND_API.G_MISS_NUM ) THEN
1615: FND_MESSAGE.set_name( 'AHL','AHL_RM_efct_ID_NULL' );
1616: -- FND_MESSAGE.set_token( 'RECORD', get_record_identifier( p_material_req_rec ) );
1617: FND_MSG_PUB.add;
1618: x_return_status := FND_API.G_RET_STS_ERROR;
1614: p_route_efct_rec.ROUTE_EFFECTIVITY_ID = FND_API.G_MISS_NUM ) THEN
1615: FND_MESSAGE.set_name( 'AHL','AHL_RM_efct_ID_NULL' );
1616: -- FND_MESSAGE.set_token( 'RECORD', get_record_identifier( p_material_req_rec ) );
1617: FND_MSG_PUB.add;
1618: x_return_status := FND_API.G_RET_STS_ERROR;
1619: RETURN;
1620: END IF;
1621: -- Check if the mandatory Object Version Number column contains a null value.
1622: IF ( p_route_efct_rec.object_version_number IS NULL OR
1619: RETURN;
1620: END IF;
1621: -- Check if the mandatory Object Version Number column contains a null value.
1622: IF ( p_route_efct_rec.object_version_number IS NULL OR
1623: p_route_efct_rec.object_version_number = FND_API.G_MISS_NUM ) THEN
1624: FND_MESSAGE.set_name( 'AHL','AHL_RM_efct_OBJ_VERSION_NULL' );
1625: -- FND_MESSAGE.set_token( 'RECORD', get_record_identifier( p_material_req_rec ) );
1626: FND_MSG_PUB.add;
1627: x_return_status := FND_API.G_RET_STS_ERROR;
1623: p_route_efct_rec.object_version_number = FND_API.G_MISS_NUM ) THEN
1624: FND_MESSAGE.set_name( 'AHL','AHL_RM_efct_OBJ_VERSION_NULL' );
1625: -- FND_MESSAGE.set_token( 'RECORD', get_record_identifier( p_material_req_rec ) );
1626: FND_MSG_PUB.add;
1627: x_return_status := FND_API.G_RET_STS_ERROR;
1628: RETURN;
1629: END IF;
1630: END validate_efct_attributes;
1631: -- Procedure to Perform cross attribute validation and missing attribute checks (Record level validation)
1650: l_msg_data VARCHAR2(2000);
1651: l_comb_count NUMBER :=0;
1652: l_pos_count NUMBER :=0;
1653: BEGIN
1654: x_return_status := FND_API.G_RET_STS_SUCCESS;
1655: -- Check if both Item Group and Item are NULL
1656: IF ( p_association_type <> 'DISPOSITION' AND
1657: p_material_req_rec.item_group_id IS NULL AND
1658: p_material_req_rec.item_group_name IS NULL AND
1669: --FND_MESSAGE.set_name( 'AHL','AHL_RM_ITEMGRP_ITEM_NULL' ); -- sukhwsin: commented old message
1670: FND_MESSAGE.set_name( 'AHL','AHL_RM_MATREQ_COMB_NULL' );
1671: FND_MESSAGE.set_token( 'RECORD', get_record_identifier( p_material_req_rec ) );
1672: FND_MSG_PUB.add;
1673: x_return_status := FND_API.G_RET_STS_ERROR;
1674: END IF;
1675: --sukhwsin: changed validation for SB Effectivity starts
1676: --Check if Both MC and Position is given or not.
1677: IF (p_association_type <> 'DISPOSITION') THEN
1685: p_material_req_rec.mc_position IS NULL) THEN
1686: FND_MESSAGE.set_name( 'AHL','AHL_RM_MISSING_MCPOS_ERR' );
1687: FND_MESSAGE.set_token( 'RECORD', get_record_identifier( p_material_req_rec ) );
1688: FND_MSG_PUB.add;
1689: x_return_status := FND_API.G_RET_STS_ERROR;
1690: ELSE
1691: --if both mc and position is given then check whether position exist under mc
1692: OPEN get_position_key_count( p_material_req_rec.mc_id , p_material_req_rec.mc_position_key );
1693: FETCH get_position_key_count INTO l_pos_count;
1695: IF (l_pos_count = 0) THEN
1696: FND_MESSAGE.set_name( 'AHL','AHL_RM_INVALID_MC_POS_COMB' );
1697: FND_MESSAGE.set_token( 'RECORD', get_record_identifier( p_material_req_rec ) );
1698: FND_MSG_PUB.add;
1699: x_return_status := FND_API.G_RET_STS_ERROR;
1700: END IF;
1701: END IF;
1702: END IF;
1703: END IF;
1722: IF ( l_comb_count > 1) THEN
1723: FND_MESSAGE.set_name( 'AHL','AHL_RM_MAT_REQ_COMB_ERR' );
1724: FND_MESSAGE.set_token( 'RECORD', get_record_identifier( p_material_req_rec ) );
1725: FND_MSG_PUB.add;
1726: x_return_status := FND_API.G_RET_STS_ERROR;
1727: END IF;
1728: ELSE
1729: -- Check if both Item Group and Item contain values
1730: IF (
1737: ) THEN
1738: FND_MESSAGE.set_name( 'AHL','AHL_RM_ITEMGRP_ITEM_NOTNULL' );
1739: FND_MESSAGE.set_token( 'RECORD', get_record_identifier( p_material_req_rec ) );
1740: FND_MSG_PUB.add;
1741: x_return_status := FND_API.G_RET_STS_ERROR;
1742: END IF;
1743: END IF;
1744: --sukhwsin: changed validation for SB Effectivity ends
1745: -- Check if the given UOM is valid for the given Item
1755: p_inventory_item_id => p_material_req_rec.inventory_item_id,
1756: p_inventory_org_id => p_material_req_rec.inventory_org_id,
1757: p_uom_code => p_material_req_rec.uom_code
1758: );
1759: IF ( NVL( l_return_status, 'X' ) <> FND_API.G_RET_STS_SUCCESS ) THEN
1760: FND_MESSAGE.set_name( 'AHL', l_msg_data );
1761: IF ( p_material_req_rec.uom IS NULL ) THEN
1762: FND_MESSAGE.set_token( 'FIELD1', p_material_req_rec.uom_code );
1763: ELSE
1788: IS
1789: l_return_status VARCHAR2(1);
1790: l_msg_data VARCHAR2(2000);
1791: BEGIN
1792: x_return_status := FND_API.G_RET_STS_SUCCESS;
1793: -- Check if both MC and Item are NULL
1794: IF ( p_route_efct_rec.mc_id IS NULL AND
1795: p_route_efct_rec.mc_name IS NULL AND
1796: p_route_efct_rec.inventory_item_id IS NULL AND
1798: p_route_efct_rec.item_number IS NULL ) THEN
1799: FND_MESSAGE.set_name( 'AHL','AHL_RM_EFCT_ITEM_NULL' );
1800: -- FND_MESSAGE.set_token( 'RECORD', get_effct_identifier( p_route_efct_rec ) );
1801: FND_MSG_PUB.add;
1802: x_return_status := FND_API.G_RET_STS_ERROR;
1803: END IF;
1804: -- Check if both MC and Item contain values
1805: IF ( ( p_route_efct_rec.inventory_item_id IS NOT NULL OR
1806: p_route_efct_rec.inventory_master_org_id IS NOT NULL OR
1815: THEN
1816: FND_MESSAGE.set_name( 'AHL','AHL_RM_efct_ITEM_NOTNULL' );
1817: FND_MESSAGE.set_token( 'RECORD', get_effct_identifier( p_route_efct_rec ) );
1818: FND_MSG_PUB.add;
1819: x_return_status := FND_API.G_RET_STS_ERROR;
1820: END IF;
1821: -- Check if both Org and Item contain values
1822: IF ( ( p_route_efct_rec.inventory_item_id IS NOT NULL OR p_route_efct_rec.item_number IS NOT NULL )
1823: AND ( p_route_efct_rec.inventory_master_org_id IS NULL OR p_route_efct_rec.organization_code IS NULL)
1825: THEN
1826: FND_MESSAGE.set_name( 'AHL','AHL_RM_efct_ITEM_ORG_NOTNULL' );
1827: -- FND_MESSAGE.set_token( 'RECORD', get_effct_identifier( p_route_efct_rec ) );
1828: FND_MSG_PUB.add;
1829: x_return_status := FND_API.G_RET_STS_ERROR;
1830: END IF;
1831: END validate_efct_record;
1832: -- Procedure to Perform cross records validation and duplicate checks
1833: PROCEDURE validate_records
1874: ROMV.position_key
1875: HAVING count(*) > 1;
1876: --sukhwsin: Changes for SB Effectivity Pos based requirement ends
1877: BEGIN
1878: x_return_status := FND_API.G_RET_STS_SUCCESS;
1879: /*
1880: IF ( p_association_type = 'DISPOSITION' ) THEN
1881: RETURN ;
1882: END IF;
1912: --sukhwsin: Changes for SB Effectivity Pos based requirement ends
1913: END LOOP;
1914: IF ( get_dup_rec%ROWCOUNT > 0 ) THEN
1915: CLOSE get_dup_rec;
1916: x_return_status := FND_API.G_RET_STS_ERROR;
1917: RETURN;
1918: END IF;
1919: CLOSE get_dup_rec;
1920: END validate_records;
1996: BEGIN
1997: IF G_DEBUG='Y' THEN
1998: AHL_DEBUG_PUB.enable_debug;
1999: END IF;
2000: x_return_status := FND_API.G_RET_STS_SUCCESS;
2001: -- Check whether any duplicate records for the given OBJECT_ID
2002: OPEN get_dup_rec( p_object_id );
2003: LOOP
2004: FETCH get_dup_rec INTO
2028: END IF ;
2029: END LOOP;
2030: IF ( get_dup_rec%ROWCOUNT > 0 ) THEN
2031: CLOSE get_dup_rec;
2032: x_return_status := FND_API.G_RET_STS_ERROR;
2033: RETURN;
2034: END IF;
2035: CLOSE get_dup_rec;
2036: END validate_efct_records;
2036: END validate_efct_records;
2037: PROCEDURE process_material_req
2038: (
2039: p_api_version IN NUMBER := '1.0',
2040: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
2041: p_commit IN VARCHAR2 := FND_API.G_FALSE,
2042: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
2043: p_default IN VARCHAR2 := FND_API.G_FALSE,
2044: p_module_type IN VARCHAR2 := NULL,
2037: PROCEDURE process_material_req
2038: (
2039: p_api_version IN NUMBER := '1.0',
2040: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
2041: p_commit IN VARCHAR2 := FND_API.G_FALSE,
2042: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
2043: p_default IN VARCHAR2 := FND_API.G_FALSE,
2044: p_module_type IN VARCHAR2 := NULL,
2045: x_return_status OUT NOCOPY VARCHAR2,
2038: (
2039: p_api_version IN NUMBER := '1.0',
2040: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
2041: p_commit IN VARCHAR2 := FND_API.G_FALSE,
2042: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
2043: p_default IN VARCHAR2 := FND_API.G_FALSE,
2044: p_module_type IN VARCHAR2 := NULL,
2045: x_return_status OUT NOCOPY VARCHAR2,
2046: x_msg_count OUT NOCOPY NUMBER,
2039: p_api_version IN NUMBER := '1.0',
2040: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
2041: p_commit IN VARCHAR2 := FND_API.G_FALSE,
2042: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
2043: p_default IN VARCHAR2 := FND_API.G_FALSE,
2044: p_module_type IN VARCHAR2 := NULL,
2045: x_return_status OUT NOCOPY VARCHAR2,
2046: x_msg_count OUT NOCOPY NUMBER,
2047: x_msg_data OUT NOCOPY VARCHAR2,
2077: l_dummy_varchar VARCHAR2(1);
2078: l_dummy_number NUMBER;
2079: BEGIN
2080: -- Initialize API return status to success
2081: x_return_status := FND_API.G_RET_STS_SUCCESS;
2082: -- Standard Start of API savepoint
2083: SAVEPOINT process_material_req_PVT;
2084: -- Standard call to check for call compatibility.
2085: IF NOT FND_API.compatible_api_call
2081: x_return_status := FND_API.G_RET_STS_SUCCESS;
2082: -- Standard Start of API savepoint
2083: SAVEPOINT process_material_req_PVT;
2084: -- Standard call to check for call compatibility.
2085: IF NOT FND_API.compatible_api_call
2086: (
2087: l_api_version,
2088: p_api_version,
2089: G_API_NAME,
2089: G_API_NAME,
2090: G_PKG_NAME
2091: )
2092: THEN
2093: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2094: END IF;
2095: -- Initialize message list if p_init_msg_list is set to TRUE.
2096: IF FND_API.to_boolean( p_init_msg_list ) THEN
2097: FND_MSG_PUB.initialize;
2092: THEN
2093: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2094: END IF;
2095: -- Initialize message list if p_init_msg_list is set to TRUE.
2096: IF FND_API.to_boolean( p_init_msg_list ) THEN
2097: FND_MSG_PUB.initialize;
2098: END IF;
2099: -- Enable Debug (optional)
2100: IF ( G_DEBUG = 'Y' ) THEN
2114: x_return_status => x_return_status,
2115: x_msg_data => x_msg_data
2116: );
2117: -- If any severe error occurs, then, abort API.
2118: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2119: RAISE FND_API.G_EXC_ERROR;
2120: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2121: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2122: END IF;
2115: x_msg_data => x_msg_data
2116: );
2117: -- If any severe error occurs, then, abort API.
2118: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2119: RAISE FND_API.G_EXC_ERROR;
2120: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2121: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2122: END IF;
2123: END IF;
2116: );
2117: -- If any severe error occurs, then, abort API.
2118: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2119: RAISE FND_API.G_EXC_ERROR;
2120: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2121: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2122: END IF;
2123: END IF;
2124: -- Validate all the inputs of the API
2117: -- If any severe error occurs, then, abort API.
2118: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2119: RAISE FND_API.G_EXC_ERROR;
2120: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2121: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2122: END IF;
2123: END IF;
2124: -- Validate all the inputs of the API
2125: validate_api_inputs
2129: p_association_type, -- IN
2130: l_return_status -- OUT
2131: );
2132: -- If any severe error occurs, then, abort API.
2133: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2134: RAISE FND_API.G_EXC_ERROR;
2135: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2136: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2137: END IF;
2130: l_return_status -- OUT
2131: );
2132: -- If any severe error occurs, then, abort API.
2133: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2134: RAISE FND_API.G_EXC_ERROR;
2135: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2136: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2137: END IF;
2138: -- If the module type is JSP, then default values for ID columns of LOV attributes
2131: );
2132: -- If any severe error occurs, then, abort API.
2133: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2134: RAISE FND_API.G_EXC_ERROR;
2135: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2136: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2137: END IF;
2138: -- If the module type is JSP, then default values for ID columns of LOV attributes
2139: IF ( p_module_type = 'JSP' ) THEN
2132: -- If any severe error occurs, then, abort API.
2133: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2134: RAISE FND_API.G_EXC_ERROR;
2135: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2136: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2137: END IF;
2138: -- If the module type is JSP, then default values for ID columns of LOV attributes
2139: IF ( p_module_type = 'JSP' ) THEN
2140: FOR i IN 1..p_x_material_req_tbl.count LOOP
2156: p_association_type, -- IN
2157: l_return_status -- OUT
2158: );
2159: -- If any severe error occurs, then, abort API.
2160: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2161: RAISE FND_API.G_EXC_ERROR;
2162: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2163: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2164: END IF;
2157: l_return_status -- OUT
2158: );
2159: -- If any severe error occurs, then, abort API.
2160: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2161: RAISE FND_API.G_EXC_ERROR;
2162: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2163: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2164: END IF;
2165: END IF;
2158: );
2159: -- If any severe error occurs, then, abort API.
2160: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2161: RAISE FND_API.G_EXC_ERROR;
2162: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2163: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2164: END IF;
2165: END IF;
2166: END LOOP;
2159: -- If any severe error occurs, then, abort API.
2160: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2161: RAISE FND_API.G_EXC_ERROR;
2162: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2163: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2164: END IF;
2165: END IF;
2166: END LOOP;
2167: IF G_DEBUG = 'Y' THEN
2192: p_association_type, -- IN
2193: l_return_status -- OUT
2194: );
2195: -- If any severe error occurs, then, abort API.
2196: /* IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2197: RAISE FND_API.G_EXC_ERROR;
2198: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2199: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2200: END IF;*/
2193: l_return_status -- OUT
2194: );
2195: -- If any severe error occurs, then, abort API.
2196: /* IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2197: RAISE FND_API.G_EXC_ERROR;
2198: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2199: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2200: END IF;*/
2201: END LOOP;
2194: );
2195: -- If any severe error occurs, then, abort API.
2196: /* IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2197: RAISE FND_API.G_EXC_ERROR;
2198: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2199: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2200: END IF;*/
2201: END LOOP;
2202: IF G_DEBUG = 'Y' THEN
2195: -- If any severe error occurs, then, abort API.
2196: /* IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2197: RAISE FND_API.G_EXC_ERROR;
2198: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2199: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2200: END IF;*/
2201: END LOOP;
2202: IF G_DEBUG = 'Y' THEN
2203: AHL_DEBUG_PUB.debug( G_PKG_NAME || '.' || G_API_NAME || ' : after validate_attributes' );
2211: p_association_type, -- IN
2212: l_return_status -- OUT
2213: );
2214: -- If any severe error occurs, then, abort API.
2215: /* IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2216: RAISE FND_API.G_EXC_ERROR;
2217: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2218: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2219: END IF;*/
2212: l_return_status -- OUT
2213: );
2214: -- If any severe error occurs, then, abort API.
2215: /* IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2216: RAISE FND_API.G_EXC_ERROR;
2217: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2218: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2219: END IF;*/
2220: END IF;
2213: );
2214: -- If any severe error occurs, then, abort API.
2215: /* IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2216: RAISE FND_API.G_EXC_ERROR;
2217: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2218: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2219: END IF;*/
2220: END IF;
2221: END LOOP;
2214: -- If any severe error occurs, then, abort API.
2215: /* IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2216: RAISE FND_API.G_EXC_ERROR;
2217: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2218: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2219: END IF;*/
2220: END IF;
2221: END LOOP;
2222: -- Get all the error messages from the previous steps (if any) and raise the appropriate Exception
2222: -- Get all the error messages from the previous steps (if any) and raise the appropriate Exception
2223: l_msg_count := FND_MSG_PUB.count_msg;
2224: IF l_msg_count > 0 THEN
2225: x_msg_count := l_msg_count;
2226: RAISE FND_API.G_EXC_ERROR;
2227: END IF;
2228: IF G_DEBUG = 'Y' THEN
2229: AHL_DEBUG_PUB.debug( G_PKG_NAME || '.' || G_API_NAME || ' : after validate_record' );
2230: END IF;
2236: p_object_id,
2237: l_msg_data,
2238: l_return_status
2239: );
2240: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2241: FND_MESSAGE.SET_NAME('AHL',l_msg_data);
2242: FND_MSG_PUB.ADD;
2243: x_return_status := l_return_status;
2244: RETURN;
2261: THEN
2262: FND_MESSAGE.set_name( 'AHL', 'AHL_RM_INVALID_efct_REC' );
2263: FND_MSG_PUB.add;
2264: CLOSE get_efct_rec;
2265: RAISE FND_API.G_EXC_ERROR;
2266: END IF;
2267: CLOSE get_efct_rec;
2268: -- Check if the Route is existing and in Draft status
2269: AHL_RM_ROUTE_UTIL.validate_route_status
2271: l_dummy_number,
2272: l_msg_data,
2273: l_return_status
2274: );
2275: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2276: FND_MESSAGE.SET_NAME('AHL',l_msg_data);
2277: FND_MSG_PUB.ADD;
2278: x_return_status := l_return_status;
2279: RETURN;
2296: p_object_id,
2297: l_msg_data,
2298: l_return_status
2299: );
2300: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2301: FND_MESSAGE.SET_NAME('AHL',l_msg_data);
2302: FND_MSG_PUB.ADD;
2303: x_return_status := l_return_status;
2304: RETURN;
2317: -- Get all the error messages from the previous steps (if any) and raise the appropriate Exception
2318: l_msg_count := FND_MSG_PUB.count_msg;
2319: IF l_msg_count > 0 THEN
2320: x_msg_count := l_msg_count;
2321: RAISE FND_API.G_EXC_ERROR;
2322: END IF;
2323: -- Perform the DML statement directly.
2324: FOR i IN 1..p_x_material_req_tbl.count LOOP
2325: IF G_DEBUG = 'Y' THEN
2509: IF ( SQL%ROWCOUNT = 0 ) THEN
2510: FND_MESSAGE.set_name('AHL','AHL_RM_RECORD_CHANGED');
2511: FND_MESSAGE.set_token( 'RECORD', get_record_identifier( p_x_material_req_tbl(i) ) );
2512: FND_MSG_PUB.add;
2513: RAISE FND_API.G_EXC_ERROR;
2514: END IF;
2515: -- Set OUT values
2516: p_x_material_req_tbl(i).object_version_number := p_x_material_req_tbl(i).object_version_number + 1;
2517: EXCEPTION
2519: IF ( SQLCODE = -1 ) THEN
2520: FND_MESSAGE.set_name( 'AHL', 'AHL_RM_MATERIAL_REQ_REC_DUP' );
2521: FND_MESSAGE.set_token( 'RECORD', get_record_identifier( p_x_material_req_tbl(i) ) );
2522: FND_MSG_PUB.add;
2523: RAISE FND_API.G_EXC_ERROR;
2524: ELSE
2525: IF (fnd_log.level_unexpected >= fnd_log.g_current_runtime_level)
2526: THEN
2527: fnd_log.string
2542: IF ( SQL%ROWCOUNT = 0 ) THEN
2543: FND_MESSAGE.set_name('AHL','AHL_RM_RECORD_CHANGED');
2544: FND_MESSAGE.set_token( 'RECORD', TO_CHAR( i ) );
2545: FND_MSG_PUB.add;
2546: RAISE FND_API.G_EXC_ERROR;
2547: END IF;
2548: END IF;
2549: END LOOP;
2550: IF G_DEBUG = 'Y' THEN
2553: -- Get all the error messages from the previous steps (if any) and raise the appropriate Exception
2554: l_msg_count := FND_MSG_PUB.count_msg;
2555: IF l_msg_count > 0 THEN
2556: x_msg_count := l_msg_count;
2557: RAISE FND_API.G_EXC_ERROR;
2558: END IF;
2559: -- Perform cross records validations and duplicate records check
2560: validate_records
2561: (
2563: p_association_type, -- IN
2564: l_return_status -- OUT
2565: );
2566: -- If any severe error occurs, then, abort API.
2567: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2568: RAISE FND_API.G_EXC_ERROR;
2569: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2570: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2571: END IF;
2564: l_return_status -- OUT
2565: );
2566: -- If any severe error occurs, then, abort API.
2567: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2568: RAISE FND_API.G_EXC_ERROR;
2569: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2570: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2571: END IF;
2572: IF G_DEBUG = 'Y' THEN
2565: );
2566: -- If any severe error occurs, then, abort API.
2567: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2568: RAISE FND_API.G_EXC_ERROR;
2569: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2570: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2571: END IF;
2572: IF G_DEBUG = 'Y' THEN
2573: AHL_DEBUG_PUB.debug( G_PKG_NAME || '.' || G_API_NAME || ' : after validate_records' );
2566: -- If any severe error occurs, then, abort API.
2567: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2568: RAISE FND_API.G_EXC_ERROR;
2569: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2570: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2571: END IF;
2572: IF G_DEBUG = 'Y' THEN
2573: AHL_DEBUG_PUB.debug( G_PKG_NAME || '.' || G_API_NAME || ' : after validate_records' );
2574: END IF;
2572: IF G_DEBUG = 'Y' THEN
2573: AHL_DEBUG_PUB.debug( G_PKG_NAME || '.' || G_API_NAME || ' : after validate_records' );
2574: END IF;
2575: -- Perform the Commit (if requested)
2576: IF FND_API.to_boolean( p_commit ) THEN
2577: COMMIT WORK;
2578: END IF;
2579: -- Count and Get messages (optional)
2580: FND_MSG_PUB.count_and_get
2578: END IF;
2579: -- Count and Get messages (optional)
2580: FND_MSG_PUB.count_and_get
2581: (
2582: p_encoded => FND_API.G_FALSE,
2583: p_count => x_msg_count,
2584: p_data => x_msg_data
2585: );
2586: -- Disable debug (if enabled)
2587: IF ( G_DEBUG = 'Y' ) THEN
2588: AHL_DEBUG_PUB.disable_debug;
2589: END IF;
2590: EXCEPTION
2591: WHEN FND_API.G_EXC_ERROR THEN
2592: ROLLBACK TO process_material_req_PVT;
2593: x_return_status := FND_API.G_RET_STS_ERROR ;
2594: FND_MSG_PUB.count_and_get
2595: (
2589: END IF;
2590: EXCEPTION
2591: WHEN FND_API.G_EXC_ERROR THEN
2592: ROLLBACK TO process_material_req_PVT;
2593: x_return_status := FND_API.G_RET_STS_ERROR ;
2594: FND_MSG_PUB.count_and_get
2595: (
2596: p_encoded => FND_API.G_FALSE,
2597: p_count => x_msg_count,
2592: ROLLBACK TO process_material_req_PVT;
2593: x_return_status := FND_API.G_RET_STS_ERROR ;
2594: FND_MSG_PUB.count_and_get
2595: (
2596: p_encoded => FND_API.G_FALSE,
2597: p_count => x_msg_count,
2598: p_data => x_msg_data
2599: );
2600: -- Disable debug (if enabled)
2600: -- Disable debug (if enabled)
2601: IF ( G_DEBUG = 'Y' ) THEN
2602: AHL_DEBUG_PUB.disable_debug;
2603: END IF;
2604: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2605: ROLLBACK TO process_material_req_PVT;
2606: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2607: FND_MSG_PUB.count_and_get
2608: (
2602: AHL_DEBUG_PUB.disable_debug;
2603: END IF;
2604: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2605: ROLLBACK TO process_material_req_PVT;
2606: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2607: FND_MSG_PUB.count_and_get
2608: (
2609: p_encoded => FND_API.G_FALSE,
2610: p_count => x_msg_count,
2605: ROLLBACK TO process_material_req_PVT;
2606: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2607: FND_MSG_PUB.count_and_get
2608: (
2609: p_encoded => FND_API.G_FALSE,
2610: p_count => x_msg_count,
2611: p_data => x_msg_data
2612: );
2613: -- Disable debug (if enabled)
2615: AHL_DEBUG_PUB.disable_debug;
2616: END IF;
2617: WHEN OTHERS THEN
2618: ROLLBACK TO process_material_req_PVT;
2619: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2620: IF FND_MSG_PUB.check_msg_level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR )
2621: THEN
2622: FND_MSG_PUB.add_exc_msg
2623: (
2627: );
2628: END IF;
2629: FND_MSG_PUB.count_and_get
2630: (
2631: p_encoded => FND_API.G_FALSE,
2632: p_count => x_msg_count,
2633: p_data => x_msg_data
2634: );
2635: -- Disable debug (if enabled)
2639: END process_material_req;
2640: PROCEDURE process_route_efcts
2641: (
2642: p_api_version IN NUMBER := 1.0,
2643: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
2644: p_commit IN VARCHAR2 := FND_API.G_FALSE,
2645: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
2646: p_default IN VARCHAR2 := FND_API.G_FALSE,
2647: p_module_type IN VARCHAR2 := NULL,
2640: PROCEDURE process_route_efcts
2641: (
2642: p_api_version IN NUMBER := 1.0,
2643: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
2644: p_commit IN VARCHAR2 := FND_API.G_FALSE,
2645: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
2646: p_default IN VARCHAR2 := FND_API.G_FALSE,
2647: p_module_type IN VARCHAR2 := NULL,
2648: p_object_id IN NUMBER,
2641: (
2642: p_api_version IN NUMBER := 1.0,
2643: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
2644: p_commit IN VARCHAR2 := FND_API.G_FALSE,
2645: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
2646: p_default IN VARCHAR2 := FND_API.G_FALSE,
2647: p_module_type IN VARCHAR2 := NULL,
2648: p_object_id IN NUMBER,
2649: x_return_status OUT NOCOPY VARCHAR2,
2642: p_api_version IN NUMBER := 1.0,
2643: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
2644: p_commit IN VARCHAR2 := FND_API.G_FALSE,
2645: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
2646: p_default IN VARCHAR2 := FND_API.G_FALSE,
2647: p_module_type IN VARCHAR2 := NULL,
2648: p_object_id IN NUMBER,
2649: x_return_status OUT NOCOPY VARCHAR2,
2650: x_msg_count OUT NOCOPY NUMBER,
2666: l_x_operation_rec AHL_RM_OPERATION_PVT.operation_rec_type ;
2667: l_x_route_rec AHL_RM_ROUTE_PVT.route_rec_type ;
2668: BEGIN
2669: -- Initialize API return status to success
2670: x_return_status := FND_API.G_RET_STS_SUCCESS;
2671: -- Standard Start of API savepoint
2672: SAVEPOINT process_route_efcts;
2673: -- Standard call to check for call compatibility.
2674: IF NOT FND_API.compatible_api_call
2670: x_return_status := FND_API.G_RET_STS_SUCCESS;
2671: -- Standard Start of API savepoint
2672: SAVEPOINT process_route_efcts;
2673: -- Standard call to check for call compatibility.
2674: IF NOT FND_API.compatible_api_call
2675: (
2676: l_api_version,
2677: p_api_version,
2678: G_API_NAME1,
2678: G_API_NAME1,
2679: G_PKG_NAME
2680: )
2681: THEN
2682: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2683: END IF;
2684: -- Initialize message list if p_init_msg_list is set to TRUE.
2685: IF FND_API.to_boolean( p_init_msg_list ) THEN
2686: FND_MSG_PUB.initialize;
2681: THEN
2682: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2683: END IF;
2684: -- Initialize message list if p_init_msg_list is set to TRUE.
2685: IF FND_API.to_boolean( p_init_msg_list ) THEN
2686: FND_MSG_PUB.initialize;
2687: END IF;
2688: IF G_DEBUG = 'Y' THEN
2689: AHL_DEBUG_PUB.enable_debug;
2698: x_return_status => x_return_status,
2699: x_msg_data => x_msg_data
2700: );
2701: -- If any severe error occurs, then, abort API.
2702: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2703: RAISE FND_API.G_EXC_ERROR;
2704: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2705: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2706: END IF;
2699: x_msg_data => x_msg_data
2700: );
2701: -- If any severe error occurs, then, abort API.
2702: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2703: RAISE FND_API.G_EXC_ERROR;
2704: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2705: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2706: END IF;
2707: -- Validate all the inputs of the API
2700: );
2701: -- If any severe error occurs, then, abort API.
2702: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2703: RAISE FND_API.G_EXC_ERROR;
2704: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2705: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2706: END IF;
2707: -- Validate all the inputs of the API
2708: validate_efct_api_inputs
2701: -- If any severe error occurs, then, abort API.
2702: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2703: RAISE FND_API.G_EXC_ERROR;
2704: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2705: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2706: END IF;
2707: -- Validate all the inputs of the API
2708: validate_efct_api_inputs
2709: (
2711: p_object_id,
2712: l_return_status
2713: );
2714: -- If any severe error occurs, then, abort API.
2715: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2716: RAISE FND_API.G_EXC_ERROR;
2717: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2718: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2719: END IF;
2712: l_return_status
2713: );
2714: -- If any severe error occurs, then, abort API.
2715: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2716: RAISE FND_API.G_EXC_ERROR;
2717: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2718: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2719: END IF;
2720: -- If the module type is JSP, then default values for ID columns of LOV attributes
2713: );
2714: -- If any severe error occurs, then, abort API.
2715: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2716: RAISE FND_API.G_EXC_ERROR;
2717: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2718: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2719: END IF;
2720: -- If the module type is JSP, then default values for ID columns of LOV attributes
2721: IF ( p_module_type = 'JSP' ) THEN
2714: -- If any severe error occurs, then, abort API.
2715: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2716: RAISE FND_API.G_EXC_ERROR;
2717: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2718: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2719: END IF;
2720: -- If the module type is JSP, then default values for ID columns of LOV attributes
2721: IF ( p_module_type = 'JSP' ) THEN
2722: FOR i IN 1..p_x_route_efct_tbl.count LOOP
2736: p_x_route_efct_tbl(i) ,
2737: l_return_status
2738: );
2739: -- If any severe error occurs, then, abort API.
2740: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2741: RAISE FND_API.G_EXC_ERROR;
2742: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2743: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2744: END IF;
2737: l_return_status
2738: );
2739: -- If any severe error occurs, then, abort API.
2740: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2741: RAISE FND_API.G_EXC_ERROR;
2742: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2743: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2744: END IF;
2745: END IF;
2738: );
2739: -- If any severe error occurs, then, abort API.
2740: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2741: RAISE FND_API.G_EXC_ERROR;
2742: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2743: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2744: END IF;
2745: END IF;
2746: END LOOP;
2739: -- If any severe error occurs, then, abort API.
2740: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2741: RAISE FND_API.G_EXC_ERROR;
2742: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2743: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2744: END IF;
2745: END IF;
2746: END LOOP;
2747: IF G_DEBUG = 'Y' THEN
2754: p_x_route_efct_tbl(i),
2755: l_return_status
2756: );
2757: -- If any severe error occurs, then, abort API.
2758: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2759: RAISE FND_API.G_EXC_ERROR;
2760: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2761: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2762: END IF;
2755: l_return_status
2756: );
2757: -- If any severe error occurs, then, abort API.
2758: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2759: RAISE FND_API.G_EXC_ERROR;
2760: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2761: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2762: END IF;
2763: END LOOP;
2756: );
2757: -- If any severe error occurs, then, abort API.
2758: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2759: RAISE FND_API.G_EXC_ERROR;
2760: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2761: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2762: END IF;
2763: END LOOP;
2764: IF G_DEBUG = 'Y' THEN
2757: -- If any severe error occurs, then, abort API.
2758: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2759: RAISE FND_API.G_EXC_ERROR;
2760: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2761: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2762: END IF;
2763: END LOOP;
2764: IF G_DEBUG = 'Y' THEN
2765: AHL_DEBUG_PUB.debug( G_PKG_NAME || '.' || G_API_NAME1 || ' : after validate_attributes' );
2789: p_x_route_efct_tbl(i),
2790: l_return_status
2791: );
2792: -- If any severe error occurs, then, abort API.
2793: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2794: RAISE FND_API.G_EXC_ERROR;
2795: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2796: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2797: END IF;
2790: l_return_status
2791: );
2792: -- If any severe error occurs, then, abort API.
2793: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2794: RAISE FND_API.G_EXC_ERROR;
2795: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2796: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2797: END IF;
2798: END IF;
2791: );
2792: -- If any severe error occurs, then, abort API.
2793: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2794: RAISE FND_API.G_EXC_ERROR;
2795: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2796: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2797: END IF;
2798: END IF;
2799: END LOOP;
2792: -- If any severe error occurs, then, abort API.
2793: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2794: RAISE FND_API.G_EXC_ERROR;
2795: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2796: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2797: END IF;
2798: END IF;
2799: END LOOP;
2800: IF G_DEBUG = 'Y' THEN
2812: p_object_id,
2813: l_msg_data,
2814: l_return_status
2815: );
2816: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2817: FND_MESSAGE.SET_NAME('AHL',l_msg_data);
2818: FND_MSG_PUB.ADD;
2819: x_return_status := l_return_status;
2820: RETURN;
2977: -- Get all the error messages from the previous steps (if any) and raise the appropriate Exception
2978: l_msg_count := FND_MSG_PUB.count_msg;
2979: IF l_msg_count > 0 THEN
2980: x_msg_count := l_msg_count;
2981: RAISE FND_API.G_EXC_ERROR;
2982: END IF;
2983: -- Perform cross records validations and duplicate records check
2984: validate_efct_records
2985: (
2986: p_object_id,
2987: l_return_status
2988: );
2989: -- If any severe error occurs, then, abort API.
2990: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2991: RAISE FND_API.G_EXC_ERROR;
2992: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2993: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2994: END IF;
2987: l_return_status
2988: );
2989: -- If any severe error occurs, then, abort API.
2990: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2991: RAISE FND_API.G_EXC_ERROR;
2992: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2993: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2994: END IF;
2995: IF G_DEBUG = 'Y' THEN
2988: );
2989: -- If any severe error occurs, then, abort API.
2990: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2991: RAISE FND_API.G_EXC_ERROR;
2992: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2993: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2994: END IF;
2995: IF G_DEBUG = 'Y' THEN
2996: AHL_DEBUG_PUB.debug( G_PKG_NAME || '.' || G_API_NAME1 || ' : after validate_records' );
2989: -- If any severe error occurs, then, abort API.
2990: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2991: RAISE FND_API.G_EXC_ERROR;
2992: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2993: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2994: END IF;
2995: IF G_DEBUG = 'Y' THEN
2996: AHL_DEBUG_PUB.debug( G_PKG_NAME || '.' || G_API_NAME1 || ' : after validate_records' );
2997: END IF;
2995: IF G_DEBUG = 'Y' THEN
2996: AHL_DEBUG_PUB.debug( G_PKG_NAME || '.' || G_API_NAME1 || ' : after validate_records' );
2997: END IF;
2998: -- Perform the Commit (if requested)
2999: IF FND_API.to_boolean( p_commit ) THEN
3000: COMMIT WORK;
3001: END IF;
3002: -- Count and Get messages (optional)
3003: FND_MSG_PUB.count_and_get
3001: END IF;
3002: -- Count and Get messages (optional)
3003: FND_MSG_PUB.count_and_get
3004: (
3005: p_encoded => FND_API.G_FALSE,
3006: p_count => x_msg_count,
3007: p_data => x_msg_data
3008: );
3009: -- Disable debug (if enabled)
3010: IF G_DEBUG = 'Y' THEN
3011: AHL_DEBUG_PUB.disable_debug;
3012: END IF;
3013: EXCEPTION
3014: WHEN FND_API.G_EXC_ERROR THEN
3015: ROLLBACK TO process_route_efcts;
3016: x_return_status := FND_API.G_RET_STS_ERROR ;
3017: FND_MSG_PUB.count_and_get
3018: (
3012: END IF;
3013: EXCEPTION
3014: WHEN FND_API.G_EXC_ERROR THEN
3015: ROLLBACK TO process_route_efcts;
3016: x_return_status := FND_API.G_RET_STS_ERROR ;
3017: FND_MSG_PUB.count_and_get
3018: (
3019: p_encoded => FND_API.G_FALSE,
3020: p_count => x_msg_count,
3015: ROLLBACK TO process_route_efcts;
3016: x_return_status := FND_API.G_RET_STS_ERROR ;
3017: FND_MSG_PUB.count_and_get
3018: (
3019: p_encoded => FND_API.G_FALSE,
3020: p_count => x_msg_count,
3021: p_data => x_msg_data
3022: );
3023: -- Disable debug (if enabled)
3023: -- Disable debug (if enabled)
3024: IF G_DEBUG = 'Y' THEN
3025: AHL_DEBUG_PUB.disable_debug;
3026: END IF;
3027: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3028: ROLLBACK TO process_route_efcts;
3029: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3030: FND_MSG_PUB.count_and_get
3031: (
3025: AHL_DEBUG_PUB.disable_debug;
3026: END IF;
3027: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3028: ROLLBACK TO process_route_efcts;
3029: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3030: FND_MSG_PUB.count_and_get
3031: (
3032: p_encoded => FND_API.G_FALSE,
3033: p_count => x_msg_count,
3028: ROLLBACK TO process_route_efcts;
3029: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3030: FND_MSG_PUB.count_and_get
3031: (
3032: p_encoded => FND_API.G_FALSE,
3033: p_count => x_msg_count,
3034: p_data => x_msg_data
3035: );
3036: -- Disable debug (if enabled)
3038: AHL_DEBUG_PUB.disable_debug;
3039: END IF;
3040: WHEN OTHERS THEN
3041: ROLLBACK TO process_route_efcts;
3042: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3043: IF FND_MSG_PUB.check_msg_level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR )
3044: THEN
3045: FND_MSG_PUB.add_exc_msg
3046: (
3050: );
3051: END IF;
3052: FND_MSG_PUB.count_and_get
3053: (
3054: p_encoded => FND_API.G_FALSE,
3055: p_count => x_msg_count,
3056: p_data => x_msg_data
3057: );
3058: -- Disable debug (if enabled)