DBA Data[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;