26: l_Transacted_By NUMBER;
27:
28: BEGIN
29:
30: X_Return_Status := FND_API.G_RET_STS_SUCCESS;
31: X_Error_Message := Null;
32:
33: Xnp_Xml_Utils.Decode(P_Msg_Text,'ITEM_ID',l_Item_Id);
34: Xnp_Xml_Utils.Decode(P_Msg_Text,'REVISION',l_Revision);
64: WHEN OTHERS THEN
65: fnd_message.set_name('CSE','CSE_OTHERS_EXCEPTION');
66: fnd_message.set_token('ERR_MSG',l_Api_Name||'='|| SQLERRM);
67: x_error_message := fnd_message.get;
68: x_Return_Status := FND_API.G_RET_STS_UNEXP_ERROR;
69:
70: END Decode_Message;
71:
72: PROCEDURE Update_Ib_Repository(
75: X_Error_Message OUT NOCOPY VARCHAR2) IS
76:
77: l_Api_Name CONSTANT VARCHAR2(30) :='CSE_ITEM_MOVE_PKG';
78: l_api_version NUMBER DEFAULT 1.0;
79: l_Commit VARCHAR2(1) DEFAULT FND_API.G_FALSE;
80: l_Init_Msg_List VARCHAR2(1) DEFAULT FND_API.G_TRUE;
81: l_Resolve_Id_Columns VARCHAR2(1) DEFAULT FND_API.G_FALSE;
82: l_Create_Dest_Inst_Flag VARCHAR2(1) DEFAULT FND_API.G_FALSE;
83: l_Active_Instance_Only VARCHAR2(1) DEFAULT FND_API.G_FALSE;
76:
77: l_Api_Name CONSTANT VARCHAR2(30) :='CSE_ITEM_MOVE_PKG';
78: l_api_version NUMBER DEFAULT 1.0;
79: l_Commit VARCHAR2(1) DEFAULT FND_API.G_FALSE;
80: l_Init_Msg_List VARCHAR2(1) DEFAULT FND_API.G_TRUE;
81: l_Resolve_Id_Columns VARCHAR2(1) DEFAULT FND_API.G_FALSE;
82: l_Create_Dest_Inst_Flag VARCHAR2(1) DEFAULT FND_API.G_FALSE;
83: l_Active_Instance_Only VARCHAR2(1) DEFAULT FND_API.G_FALSE;
84: l_Validation_Level NUMBER := fnd_api.g_valid_level_full;
77: l_Api_Name CONSTANT VARCHAR2(30) :='CSE_ITEM_MOVE_PKG';
78: l_api_version NUMBER DEFAULT 1.0;
79: l_Commit VARCHAR2(1) DEFAULT FND_API.G_FALSE;
80: l_Init_Msg_List VARCHAR2(1) DEFAULT FND_API.G_TRUE;
81: l_Resolve_Id_Columns VARCHAR2(1) DEFAULT FND_API.G_FALSE;
82: l_Create_Dest_Inst_Flag VARCHAR2(1) DEFAULT FND_API.G_FALSE;
83: l_Active_Instance_Only VARCHAR2(1) DEFAULT FND_API.G_FALSE;
84: l_Validation_Level NUMBER := fnd_api.g_valid_level_full;
85: l_Resolve_Id_Column VARCHAR2(1) DEFAULT FND_API.G_FALSE;
78: l_api_version NUMBER DEFAULT 1.0;
79: l_Commit VARCHAR2(1) DEFAULT FND_API.G_FALSE;
80: l_Init_Msg_List VARCHAR2(1) DEFAULT FND_API.G_TRUE;
81: l_Resolve_Id_Columns VARCHAR2(1) DEFAULT FND_API.G_FALSE;
82: l_Create_Dest_Inst_Flag VARCHAR2(1) DEFAULT FND_API.G_FALSE;
83: l_Active_Instance_Only VARCHAR2(1) DEFAULT FND_API.G_FALSE;
84: l_Validation_Level NUMBER := fnd_api.g_valid_level_full;
85: l_Resolve_Id_Column VARCHAR2(1) DEFAULT FND_API.G_FALSE;
86: l_Instance_Header_Tbl_Out csi_datastructures_pub.instance_header_tbl;
79: l_Commit VARCHAR2(1) DEFAULT FND_API.G_FALSE;
80: l_Init_Msg_List VARCHAR2(1) DEFAULT FND_API.G_TRUE;
81: l_Resolve_Id_Columns VARCHAR2(1) DEFAULT FND_API.G_FALSE;
82: l_Create_Dest_Inst_Flag VARCHAR2(1) DEFAULT FND_API.G_FALSE;
83: l_Active_Instance_Only VARCHAR2(1) DEFAULT FND_API.G_FALSE;
84: l_Validation_Level NUMBER := fnd_api.g_valid_level_full;
85: l_Resolve_Id_Column VARCHAR2(1) DEFAULT FND_API.G_FALSE;
86: l_Instance_Header_Tbl_Out csi_datastructures_pub.instance_header_tbl;
87: l_Instance_Rec csi_datastructures_pub.Instance_Rec;
80: l_Init_Msg_List VARCHAR2(1) DEFAULT FND_API.G_TRUE;
81: l_Resolve_Id_Columns VARCHAR2(1) DEFAULT FND_API.G_FALSE;
82: l_Create_Dest_Inst_Flag VARCHAR2(1) DEFAULT FND_API.G_FALSE;
83: l_Active_Instance_Only VARCHAR2(1) DEFAULT FND_API.G_FALSE;
84: l_Validation_Level NUMBER := fnd_api.g_valid_level_full;
85: l_Resolve_Id_Column VARCHAR2(1) DEFAULT FND_API.G_FALSE;
86: l_Instance_Header_Tbl_Out csi_datastructures_pub.instance_header_tbl;
87: l_Instance_Rec csi_datastructures_pub.Instance_Rec;
88: l_Dest_Instance_Rec csi_datastructures_pub.Instance_Rec;
81: l_Resolve_Id_Columns VARCHAR2(1) DEFAULT FND_API.G_FALSE;
82: l_Create_Dest_Inst_Flag VARCHAR2(1) DEFAULT FND_API.G_FALSE;
83: l_Active_Instance_Only VARCHAR2(1) DEFAULT FND_API.G_FALSE;
84: l_Validation_Level NUMBER := fnd_api.g_valid_level_full;
85: l_Resolve_Id_Column VARCHAR2(1) DEFAULT FND_API.G_FALSE;
86: l_Instance_Header_Tbl_Out csi_datastructures_pub.instance_header_tbl;
87: l_Instance_Rec csi_datastructures_pub.Instance_Rec;
88: l_Dest_Instance_Rec csi_datastructures_pub.Instance_Rec;
89: l_Instance_Query_Rec csi_datastructures_pub.Instance_Query_Rec;
136: WHERE upper(name) ='EXPIRED';
137: Update_Ib_Exp EXCEPTION;
138:
139: BEGIN
140: l_Commit := FND_API.G_FALSE;
141: l_Init_Msg_List := FND_API.G_TRUE;
142: l_Resolve_Id_Columns := FND_API.G_FALSE;
143: l_Create_Dest_Inst_Flag:= FND_API.G_FALSE;
144: l_Active_Instance_Only := FND_API.G_FALSE;
137: Update_Ib_Exp EXCEPTION;
138:
139: BEGIN
140: l_Commit := FND_API.G_FALSE;
141: l_Init_Msg_List := FND_API.G_TRUE;
142: l_Resolve_Id_Columns := FND_API.G_FALSE;
143: l_Create_Dest_Inst_Flag:= FND_API.G_FALSE;
144: l_Active_Instance_Only := FND_API.G_FALSE;
145: l_Validation_Level := fnd_api.g_valid_level_full;
138:
139: BEGIN
140: l_Commit := FND_API.G_FALSE;
141: l_Init_Msg_List := FND_API.G_TRUE;
142: l_Resolve_Id_Columns := FND_API.G_FALSE;
143: l_Create_Dest_Inst_Flag:= FND_API.G_FALSE;
144: l_Active_Instance_Only := FND_API.G_FALSE;
145: l_Validation_Level := fnd_api.g_valid_level_full;
146: l_Resolve_Id_Column := FND_API.G_FALSE;
139: BEGIN
140: l_Commit := FND_API.G_FALSE;
141: l_Init_Msg_List := FND_API.G_TRUE;
142: l_Resolve_Id_Columns := FND_API.G_FALSE;
143: l_Create_Dest_Inst_Flag:= FND_API.G_FALSE;
144: l_Active_Instance_Only := FND_API.G_FALSE;
145: l_Validation_Level := fnd_api.g_valid_level_full;
146: l_Resolve_Id_Column := FND_API.G_FALSE;
147: t_transaction_id := -1;
140: l_Commit := FND_API.G_FALSE;
141: l_Init_Msg_List := FND_API.G_TRUE;
142: l_Resolve_Id_Columns := FND_API.G_FALSE;
143: l_Create_Dest_Inst_Flag:= FND_API.G_FALSE;
144: l_Active_Instance_Only := FND_API.G_FALSE;
145: l_Validation_Level := fnd_api.g_valid_level_full;
146: l_Resolve_Id_Column := FND_API.G_FALSE;
147: t_transaction_id := -1;
148: X_Return_Status := FND_API.G_RET_STS_SUCCESS;
141: l_Init_Msg_List := FND_API.G_TRUE;
142: l_Resolve_Id_Columns := FND_API.G_FALSE;
143: l_Create_Dest_Inst_Flag:= FND_API.G_FALSE;
144: l_Active_Instance_Only := FND_API.G_FALSE;
145: l_Validation_Level := fnd_api.g_valid_level_full;
146: l_Resolve_Id_Column := FND_API.G_FALSE;
147: t_transaction_id := -1;
148: X_Return_Status := FND_API.G_RET_STS_SUCCESS;
149: X_Error_Message := Null;
142: l_Resolve_Id_Columns := FND_API.G_FALSE;
143: l_Create_Dest_Inst_Flag:= FND_API.G_FALSE;
144: l_Active_Instance_Only := FND_API.G_FALSE;
145: l_Validation_Level := fnd_api.g_valid_level_full;
146: l_Resolve_Id_Column := FND_API.G_FALSE;
147: t_transaction_id := -1;
148: X_Return_Status := FND_API.G_RET_STS_SUCCESS;
149: X_Error_Message := Null;
150:
144: l_Active_Instance_Only := FND_API.G_FALSE;
145: l_Validation_Level := fnd_api.g_valid_level_full;
146: l_Resolve_Id_Column := FND_API.G_FALSE;
147: t_transaction_id := -1;
148: X_Return_Status := FND_API.G_RET_STS_SUCCESS;
149: X_Error_Message := Null;
150:
151: -- If the option is set turn on the debug log.
152:
200: l_Instance_Query_Rec.Serial_Number := P_Item_Move_Attr_Rec.Serial_Number;
201: l_Instance_Query_Rec.Location_Id := l_From_Hz_Location_Id;
202: l_Instance_Query_Rec.Location_Type_Code:= l_from_Location_Type_Code;
203: l_Instance_Query_Rec.Instance_Usage_Code:=CSE_DATASTRUCTURES_PUB.G_OUT_OF_SERVICE;
204: l_Active_Instance_Only := FND_API.G_TRUE; --Added for bug 7423694, base bug 7233717
205:
206: IF (l_debug = 'Y') THEN
207: CSE_DEBUG_PUB.ADD(l_Api_Name||' Before CSI_Item_Instance_Pub.Get_Item_Instance');
208: END IF;
224: x_msg_data =>l_Msg_Data );
225:
226: -- get the error message from the stack if there is any error
227:
228: IF NOT (l_Return_Status = FND_API.G_Ret_Sts_Success) THEN
229: l_msg_index := 1;
230: l_Error_Message:=l_Msg_Data;
231: WHILE l_msg_count > 0
232: LOOP
229: l_msg_index := 1;
230: l_Error_Message:=l_Msg_Data;
231: WHILE l_msg_count > 0
232: LOOP
233: l_Error_Message := FND_MSG_PUB.GET(l_msg_index,FND_API.G_FALSE);
234: l_msg_index := l_msg_index + 1;
235: l_Msg_Count := l_Msg_Count - 1;
236: END LOOP;
237: RAISE Update_Ib_Exp;
242: IF(l_Instance_Header_Tbl_Out.COUNT=0) THEN
243: fnd_message.set_name('CSE','CSE_SRC_RECORD_NOTFOUND');
244: fnd_message.set_token('ITEM',P_Item_Move_Attr_Rec.Item_Id);
245: l_error_message := fnd_message.get;
246: l_Return_Status := FND_API.G_RET_STS_ERROR;
247: RAISE Update_Ib_Exp;
248: END IF;
249:
250: -- check if there exist multiple source instances
252: IF(l_Instance_Header_Tbl_Out.COUNT>1) THEN
253: fnd_message.set_name('CSE','CSE_SRC_MULTIPLE_ITM_INSTANCES');
254: fnd_message.set_token('ITEM',P_Item_Move_Attr_Rec.Item_Id);
255: l_error_message := fnd_message.get;
256: l_Return_Status := FND_API.G_RET_STS_ERROR;
257: RAISE Update_Ib_Exp;
258: END IF;
259:
260: -- continue if there exist only one source item instance
279: l_Instance_Header_Tbl_Out(i).Quantity) THEN
280: fnd_message.set_name('CSE','CSE_SRC_ITEM_QUANTITY');
281: fnd_message.set_token('ITEM',P_Item_Move_Attr_Rec.Item_Id);
282: l_error_message := fnd_message.get;
283: l_Return_Status := FND_API.G_RET_STS_ERROR;
284: RAISE Update_Ib_Exp;
285: END IF;
286:
287:
336:
337:
338: -- get the error message from the stack if there is any error
339:
340: IF NOT (l_Return_Status = FND_API.G_Ret_Sts_Success) THEN
341: l_msg_index := 1;
342: l_Error_Message:=l_msg_data;
343: WHILE l_msg_count > 0 LOOP
344: l_Error_Message := FND_MSG_PUB.GET(l_msg_index,FND_API.G_FALSE);
340: IF NOT (l_Return_Status = FND_API.G_Ret_Sts_Success) THEN
341: l_msg_index := 1;
342: l_Error_Message:=l_msg_data;
343: WHILE l_msg_count > 0 LOOP
344: l_Error_Message := FND_MSG_PUB.GET(l_msg_index,FND_API.G_FALSE);
345: l_msg_index := l_msg_index + 1;
346: l_Msg_Count := l_Msg_Count - 1;
347: END LOOP;
348: RAISE Update_Ib_Exp;
345: l_msg_index := l_msg_index + 1;
346: l_Msg_Count := l_Msg_Count - 1;
347: END LOOP;
348: RAISE Update_Ib_Exp;
349: ELSIF l_Return_Status = FND_API.G_Ret_Sts_Success THEN
350: IF t_transaction_id =-1 THEN
351: t_transaction_id := l_txn_rec.transaction_id;
352: END IF;
353: END IF;
370: l_Instance_Query_Rec.Serial_Number := P_Item_Move_Attr_Rec.Serial_Number;
371: l_Instance_Query_Rec.Location_Id := l_To_Hz_Location_Id;
372: l_Instance_Query_Rec.Location_Type_Code:= l_to_Location_Type_Code;
373: l_Instance_Query_Rec.Instance_Usage_Code:=CSE_DATASTRUCTURES_PUB.G_OUT_OF_SERVICE;
374: l_Active_Instance_Only := FND_API.G_FALSE;
375:
376: IF (l_debug = 'Y') THEN
377: CSE_DEBUG_PUB.ADD('Before querying for the existence of destination record');
378: END IF;
395:
396:
397: -- get the error message from the stack if there is any error
398:
399: IF NOT (l_Return_Status = FND_API.G_Ret_Sts_Success) THEN
400: l_msg_index := 1;
401: l_Error_Message:=l_msg_data;
402: WHILE l_msg_count > 0
403: LOOP
400: l_msg_index := 1;
401: l_Error_Message:=l_msg_data;
402: WHILE l_msg_count > 0
403: LOOP
404: l_Error_Message := FND_MSG_PUB.GET(l_msg_index,FND_API.G_FALSE);
405: l_msg_index := l_msg_index + 1;
406: l_Msg_Count := l_Msg_Count - 1;
407: END LOOP;
408: RAISE Update_Ib_Exp;
460:
461:
462: -- get the error message from the stack if there is any error
463:
464: IF NOT (l_Return_Status = FND_API.G_Ret_Sts_Success) THEN
465: l_msg_index := 1;
466: l_Error_Message:=l_msg_data;
467: WHILE l_msg_count > 0 LOOP
468: l_Error_Message := FND_MSG_PUB.GET(l_msg_index,FND_API.G_FALSE);
464: IF NOT (l_Return_Status = FND_API.G_Ret_Sts_Success) THEN
465: l_msg_index := 1;
466: l_Error_Message:=l_msg_data;
467: WHILE l_msg_count > 0 LOOP
468: l_Error_Message := FND_MSG_PUB.GET(l_msg_index,FND_API.G_FALSE);
469: l_msg_index := l_msg_index + 1;
470: l_Msg_Count := l_Msg_Count - 1;
471: END LOOP;
472: RAISE Update_Ib_Exp;
469: l_msg_index := l_msg_index + 1;
470: l_Msg_Count := l_Msg_Count - 1;
471: END LOOP;
472: RAISE Update_Ib_Exp;
473: ELSIF l_Return_Status = FND_API.G_Ret_Sts_Success THEN
474: IF t_transaction_id =-1 THEN
475: t_transaction_id := l_txn_rec.transaction_id;
476: END IF;
477: END IF;
483: X_Instance_Rec => l_Dest_Instance_Rec,
484: X_Return_Status => l_Return_Status,
485: X_Error_Message => l_Error_Message);
486:
487: IF NOT(l_Return_Status = FND_API.G_RET_STS_SUCCESS) THEN
488: RAISE Update_Ib_Exp;
489: END IF;
490:
491: -- If destination item instance is found
553:
554:
555: -- get the error message from the stack if there is any error
556:
557: IF NOT (l_Return_Status = FND_API.G_Ret_Sts_Success) THEN
558: l_msg_index := 1;
559: l_Error_Message:=l_msg_data;
560: WHILE l_msg_count > 0 LOOP
561: l_Error_Message := FND_MSG_PUB.GET(l_msg_index,FND_API.G_FALSE);
557: IF NOT (l_Return_Status = FND_API.G_Ret_Sts_Success) THEN
558: l_msg_index := 1;
559: l_Error_Message:=l_msg_data;
560: WHILE l_msg_count > 0 LOOP
561: l_Error_Message := FND_MSG_PUB.GET(l_msg_index,FND_API.G_FALSE);
562: l_msg_index := l_msg_index + 1;
563: l_Msg_Count := l_Msg_Count - 1;
564: END LOOP;
565: RAISE Update_Ib_Exp;
562: l_msg_index := l_msg_index + 1;
563: l_Msg_Count := l_Msg_Count - 1;
564: END LOOP;
565: RAISE Update_Ib_Exp;
566: ELSIF l_Return_Status = FND_API.G_Ret_Sts_Success THEN
567: IF t_transaction_id =-1 THEN
568: t_transaction_id := l_txn_rec.transaction_id;
569: END IF;
570: END IF;
568: t_transaction_id := l_txn_rec.transaction_id;
569: END IF;
570: END IF;
571: ELSIF l_Dest_Instance_Rec.instance_id IS NULL THEN
572: l_Create_Dest_Inst_Flag :=FND_API.G_TRUE;
573: END IF;
574:
575: ELSIF (l_Instance_Header_Tbl_Out.COUNT=0) THEN
576: l_Create_Dest_Inst_Flag :=FND_API.G_TRUE;
572: l_Create_Dest_Inst_Flag :=FND_API.G_TRUE;
573: END IF;
574:
575: ELSIF (l_Instance_Header_Tbl_Out.COUNT=0) THEN
576: l_Create_Dest_Inst_Flag :=FND_API.G_TRUE;
577: END IF;
578:
579: --create destination item instance ,if the dest item instance is not found
580:
577: END IF;
578:
579: --create destination item instance ,if the dest item instance is not found
580:
581: IF (l_Create_Dest_Inst_Flag = FND_API.G_TRUE ) THEN
582:
583: IF (l_debug = 'Y') THEN
584: CSE_DEBUG_PUB.ADD('Initailizing instance Record for the creation Of dest inst - step5.1');
585: END IF;
645:
646:
647: -- get the error message from the stack if there is any error
648:
649: IF NOT (l_Return_Status = FND_API.G_Ret_Sts_Success) THEN
650: l_msg_index := 1;
651: l_Error_Message:=l_msg_data;
652: WHILE l_msg_count > 0 LOOP
653: l_Error_Message := FND_MSG_PUB.GET(l_msg_index,FND_API.G_FALSE);
649: IF NOT (l_Return_Status = FND_API.G_Ret_Sts_Success) THEN
650: l_msg_index := 1;
651: l_Error_Message:=l_msg_data;
652: WHILE l_msg_count > 0 LOOP
653: l_Error_Message := FND_MSG_PUB.GET(l_msg_index,FND_API.G_FALSE);
654: l_msg_index := l_msg_index + 1;
655: l_Msg_Count := l_Msg_Count - 1;
656: END LOOP;
657: RAISE Update_Ib_Exp;
654: l_msg_index := l_msg_index + 1;
655: l_Msg_Count := l_Msg_Count - 1;
656: END LOOP;
657: RAISE Update_Ib_Exp;
658: ELSIF l_Return_Status = FND_API.G_Ret_Sts_Success THEN
659: IF t_transaction_id =-1 THEN
660: t_transaction_id := l_txn_rec.transaction_id;
661: END IF;
662: END IF;
673: WHEN OTHERS THEN
674: fnd_message.set_name('CSE','CSE_OTHERS_EXCEPTION');
675: fnd_message.set_token('ERR_MSG',l_Api_Name||'='|| SQLERRM);
676: x_error_message := fnd_message.get;
677: x_Return_Status := FND_API.G_RET_STS_UNEXP_ERROR;
678:
679: END Update_Ib_Repository;
680: PROCEDURE Update_eib_instances(
681: P_Item_Move_Attr_tbl IN Item_Move_Attr_tbl_Type,