[Home] [Help]
PACKAGE BODY: APPS.CSE_REDO_PKG
Source
1 PACKAGE BODY cse_redo_pkg AS
2 -- $Header: CSEREDOB.pls 120.7 2010/11/22 11:03:17 dnema ship $
3
4 l_debug VARCHAR2(1) := NVL(FND_PROFILE.VALUE('CSE_DEBUG_OPTION'),'N');
5
6 PROCEDURE Redo_Logic(
7 P_Body_Text IN VARCHAR2,
8 P_Txn_Type_Id IN NUMBER,
9 P_Stage IN VARCHAR2,
10 X_Return_Status OUT NOCOPY VARCHAR2,
11 X_Error_Message OUT NOCOPY VARCHAR2)
12 IS
13
14 l_Txn_Type VARCHAR2(100);
15 l_Transaction_Id NUMBER;
16 l_Project_Id NUMBER;
17 l_Task_Id NUMBER;
18 l_Item_Id NUMBER;
19 l_Org_Id NUMBER;
20 l_Transaction_Date DATE;
21 l_Transaction_date_Str VARCHAR2(50);
22 l_Effective_Date DATE;
23 l_Effective_date_Str VARCHAR2(50);
24 l_Transacted_By NUMBER;
25 l_Quantity NUMBER;
26 l_Serial_Number VARCHAR2(50);
27 --l_Lot_Number VARCHAR2(30);
28 l_Lot_Number VARCHAR2(80); --bug 10322621
29 l_Revision VARCHAR2(30);
30 l_From_Network_Loc_id NUMBER;
31 l_To_Network_Loc_id NUMBER;
32 l_From_Party_Site_id NUMBER;
33 l_To_Party_Site_id NUMBER;
34 l_Work_order_number VARCHAR2(500);
35 l_Msg_Count NUMBER;
36 l_trx_error_message VARCHAR2(2000);
37 l_error_message VARCHAR2(2000);
38 l_return_status VARCHAR2(1);
39 l_date_str VARCHAR2(50);
40 l_asset_attributes_rec cse_Datastructures_pub.asset_attributes_rec_type;
41 l_file VARCHAR2(500);
42 l_sysdate DATE:=sysdate;
43 BEGIN
44
45 cse_util_pkg.set_debug;
46
47 l_Txn_type := nvl(CSE_UTIL_Pkg.Get_Txn_Type_Code(P_Txn_Type_Id),NULL);
48
49 IF (l_Txn_Type = 'PO_RECEIPT_INTO_PROJECT' AND p_Stage = 'IB_UPDATE') THEN
50
51 CSE_UTIL_PKG.Get_String_Value(P_Body_Text,'RCV_TRANSACTION_ID',l_Transaction_Id);
52
53 CSE_PO_NOQUEUE_PVT.Process_NoQueue_Txn(
54 P_Ref_Id => l_Transaction_Id,
55 p_txn_type => l_txn_type,
56 x_return_status => l_return_status,
57 x_msg_count => l_msg_count,
58 x_msg_data => l_error_message);
59
60 IF l_return_status <> fnd_api.g_ret_sts_success THEN
61 RAISE fnd_api.g_exc_error;
62 END IF;
63
64 ELSIF (l_Txn_Type = 'PO_RECEIPT_INTO_PROJECT' AND p_stage = 'PA_INTERFACE') THEN
65
66 CSE_UTIL_PKG.Get_String_Value(P_Body_Text,'RCV_TRANSACTION_ID',l_Transaction_Id);
67
68 CSE_PO_NOQUEUE_PVT.pa_interface(
69 P_Rcv_txn_Id => l_Transaction_Id,
70 x_return_status => l_return_status,
71 x_error_message => l_error_message);
72
73 IF l_return_status <> fnd_api.g_ret_sts_success THEN
74 RAISE fnd_api.g_exc_error;
75 END IF;
76
77 END IF;
78
79 -- Always return Success because we log our own error and we want IB to
80 -- update the existing error to P so we have a history.
81
82 x_return_status := fnd_api.g_ret_sts_success;
83
84 EXCEPTION
85 WHEN fnd_api.g_exc_error THEN
86 x_return_status := fnd_api.g_ret_sts_success;
87 l_error_message := x_error_message;
88 WHEN OTHERS THEN
89 x_error_message := SQLERRM;
90 x_Return_Status := FND_API.G_Ret_Sts_Unexp_Error;
91 END Redo_Logic;
92
93 END cse_redo_pkg;