DBA Data[Home] [Help]

PACKAGE BODY: APPS.IES_TRANSACTION_UTIL_PUB

Source


1 PACKAGE BODY IES_TRANSACTION_UTIL_PUB AS
2    /* $Header: iestutlb.pls 115.0.1159.1 2003/05/23 22:12:47 prkotha noship $ */
3 
4 /*-------------------------------------------------------------------------*
5  |    PRIVATE CONSTANTS
6  *-------------------------------------------------------------------------*/
7 
8 G_PKG_NAME CONSTANT VARCHAR2(30) := 'IES_TRANSACTION_UTIL_PUB';
9 G_FILE_NAME CONSTANT VARCHAR2(12) := 'iestutlb.pls';
10 
11 
12 /* private functions */
13 
14 FUNCTION getTransactionStatus(p_transaction_id IN NUMBER) RETURN NUMBER IS
15    l_status NUMBER;
16        TYPE transaction_status_type   IS REF CURSOR;
17  trx_status transaction_status_type ;
18 BEGIN
19    OPEN trx_status FOR '
20    SELECT status
21      FROM ies_transactions
22     WHERE transaction_id = :1' using  p_transaction_id;
23     LOOP
24        FETCH trx_status INTO l_status;
25        EXIT WHEN trx_status%NOTFOUND;
26     END LOOP;
27     return l_status;
28 END;
29 
30 PROCEDURE update_status_to_completed
31 (
32    p_api_version                    IN     NUMBER,
33    p_init_msg_list                  IN     VARCHAR2        := FND_API.G_FALSE,
34    p_commit                         IN     VARCHAR2        := FND_API.G_TRUE,
35    p_validation_level               IN     NUMBER          := FND_API.G_VALID_LEVEL_FULL,
36    p_transaction_id                 IN     NUMBER,
37    x_return_status                  OUT NOCOPY     VARCHAR2,
38    x_msg_count                      OUT NOCOPY     NUMBER,
39    x_msg_data                       OUT NOCOPY     VARCHAR2
40 ) IS
41   l_api_name      CONSTANT VARCHAR2(30)   := 'update_status_to_completed';
42   l_api_version   CONSTANT NUMBER         := 1.0;
43   l_encoded       VARCHAR2(1)             := FND_API.G_FALSE;
44   l_status        NUMBER;
45 BEGIN
46   -- Standard Start of API savepoint
47   SAVEPOINT   update_status_to_completed_sp;
48   -- Standard call to check for call compatibility
49   IF NOT FND_API.Compatible_API_Call  ( l_api_version,
50                                         p_api_version,
51                                         l_api_name,
52                                         G_PKG_NAME)
53   THEN
54       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
55   END IF;
56   -- initialize message list if p_init_msg_list is set to TRUE
57   IF FND_API.To_Boolean( p_init_msg_list ) THEN
58      FND_MSG_PUB.initialize;
59   END IF;
60 
61   -- Initialize the API return status to success
62   x_return_status := FND_API.G_RET_STS_SUCCESS;
63   BEGIN
64     -- API body
65     l_status := getTransactionStatus(p_transaction_id);
66     if (l_status = 1) then
67       EXECUTE IMMEDIATE 'UPDATE ies_transactions SET status = 0 '||
68                     'WHERE transaction_id = :1' USING p_transaction_id;
69     else
70   	 FND_MESSAGE.SET_NAME('IES', 'IES_STATUS_UPDATE_ERROR');
71 	 FND_MSG_PUB.Add;
72 
73       RAISE FND_API.G_EXC_ERROR;
74     end if;
75   END;
76 
77   -- Signify Success
78   IF  FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_SUCCESS)
79   THEN
80       FND_MESSAGE.SET_NAME('IES', 'IES_STATUS_UPDATE_SUCCESS');
81       FND_MSG_PUB.Add;
82   END IF;
83 
84   -- End of API body
85 
86   -- Standard check of p_commit
87   IF FND_API.To_Boolean( p_commit ) THEN
88      COMMIT WORK;
89   END IF;
90 
91   -- Standard call to get message count and if count is 1, get message info
92   FND_MSG_PUB.Count_And_Get
93      (   p_encoded       =>      l_encoded,
94          p_count         =>      x_msg_count,
95          p_data          =>      x_msg_data
96      );
97 
98 EXCEPTION
99 WHEN FND_API.G_EXC_ERROR THEN
100   ROLLBACK TO update_status_to_completed_sp;
101   x_return_status := FND_API.G_RET_STS_ERROR;
102 
103   FND_MSG_PUB.Count_And_Get
104      (   p_encoded       =>      l_encoded,
105          p_count         =>      x_msg_count,
106          p_data          =>      x_msg_data
107      );
108 
109 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
110   ROLLBACK TO update_status_to_completed_sp;
111   x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
112 
113   FND_MSG_PUB.Count_And_Get
114      (   p_encoded       =>      l_encoded,
115          p_count         =>      x_msg_count,
116          p_data          =>      x_msg_data
117      );
118 
119 WHEN OTHERS THEN
120   ROLLBACK TO update_status_to_completed_sp;
121   x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
122 
123   IF     FND_MSG_PUB.Check_Msg_Level
124         (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
125   THEN
126      FND_MSG_PUB.Add_Exc_Msg
127      (      p_pkg_name            => G_PKG_NAME,
128             p_procedure_name      => l_api_name,
129             p_error_text          => 'G_MSG_LVL_UNEXP_ERROR'
130      );
131   END IF;
132   FND_MSG_PUB.Count_And_Get
133     (   p_encoded       =>      l_encoded,
134         p_count         =>      x_msg_count,
135         p_data          =>      x_msg_data
136     );
137 
138 END update_status_to_completed;
139 
140 END ies_transaction_util_pub;