1 PACKAGE BODY AHL_UMP_UF_PUB AS
2 --/* $Header: AHLPUMFB.pls 115.2 2002/12/04 23:20:29 sikumar noship $ */
3
4 G_PKG_NAME CONSTANT VARCHAR2(30) := 'AHL_UMP_UF_PUB';
5
6 ------------------------
7 -- Declare Procedures --
8 ------------------------
9
10 -- Start of Comments --
11 -- Procedure name : process_utilization_forecast
12 -- Type : Public
13 -- Function : For a given set of utilization forecast header and details, will validate and insert/update
14 -- the utilization forecast information.
15 -- Pre-reqs :
16 -- Parameters :
17 --
18 -- Standard IN Parameters :
19 -- p_api_version IN NUMBER Default 1.0
20 -- p_init_msg_list IN VARCHAR2 Default FND_API.G_TRUE
21 -- p_commit IN VARCHAR2 Default FND_API.G_FALSE
22 -- p_validation_level IN NUMBER Default FND_API.G_VALID_LEVEL_FULL
23 -- Standard OUT Parameters :
24 -- x_return_status OUT VARCHAR2 Required
25 -- x_msg_count OUT NUMBER Required
26 -- x_msg_data OUT VARCHAR2 Required
27 --
28 -- p_module_type IN VARCHAR2 Required.
29 --
30 -- This parameter indicates the front-end form interface. The default value is 'JSP'. If the value
31 -- is JSP, then this API clears out all id columns and validations are done using the values based
32 -- on which the Id's are populated.
33 --
34 -- process_utilization_forecast Parameters:
35 --
36 -- p_x_uf_header_rec IN OUT AHL_UMP_UF_PVT.uf_header_rec_type Required
37 -- Utilization Forecast Header Details
38 -- p_x_uf_detail_tbl IN OUT AHL_UMP_UF_PVT.uf_detail_tbl_type Required
39 -- Utilization Forecast details
40 --
41 --
42 -- Version :
43 -- Initial Version 1.0
44 --
45 -- End of Comments.
46
47 PROCEDURE process_utilization_forecast (
48 p_api_version IN NUMBER := 1.0,
49 p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
50 p_commit IN VARCHAR2 := FND_API.G_FALSE,
51 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
52 p_module_type IN VARCHAR2 := NULL,
53 p_x_uf_header_rec IN OUT NOCOPY AHL_UMP_UF_PVT.uf_header_rec_type,
54 p_x_uf_details_tbl IN OUT NOCOPY AHL_UMP_UF_PVT.uf_details_tbl_type,
55 x_return_status OUT NOCOPY VARCHAR2,
56 x_msg_count OUT NOCOPY NUMBER,
57 x_msg_data OUT NOCOPY VARCHAR2) IS
58
59 l_api_name CONSTANT VARCHAR2(30) := 'process_utilization_forecast';
60 l_api_version CONSTANT NUMBER := 1.0;
61
62 BEGIN
63
64 -- Standard start of API savepoint
65 SAVEPOINT process_uf_Pub;
66
67 -- Standard call to check for call compatibility
68 IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name,
69 G_PKG_NAME) THEN
70 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
71 END IF;
72
73 -- Initialize message list if p_init_msg_list is set to TRUE
74 IF FND_API.To_Boolean(p_init_msg_list) THEN
75 FND_MSG_PUB.Initialize;
76 END IF;
77
78 -- Initialize API return status to success
79 x_return_status := FND_API.G_RET_STS_SUCCESS;
80
81 -- Call Private API.
82 AHL_UMP_UF_PVT.process_utilization_forecast (
83 p_api_version => 1.0,
84 p_x_uf_header_rec => p_x_uf_header_rec,
85 p_x_uf_details_tbl => p_x_uf_details_tbl,
86 x_return_status => x_return_status,
87 x_msg_count => x_msg_count,
88 x_msg_data => x_msg_data );
89
90
91
92 IF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
93 RAISE FND_API.G_EXC_ERROR;
94 ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
95 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
96 END IF;
97
98 -- Standard check of p_commit
99 IF FND_API.To_Boolean(p_commit) THEN
100 COMMIT WORK;
101 END IF;
102
103 -- Standard call to get message count and if count is 1, get message
104 FND_MSG_PUB.Count_And_Get
105 ( p_count => x_msg_count,
106 p_data => x_msg_data,
107 p_encoded => fnd_api.g_false);
108
109 --
110 EXCEPTION
111 WHEN FND_API.G_EXC_ERROR THEN
112 x_return_status := FND_API.G_RET_STS_ERROR;
113 Rollback to process_uf_Pub;
114 FND_MSG_PUB.count_and_get( p_count => x_msg_count,
115 p_data => x_msg_data,
116 p_encoded => fnd_api.g_false);
117 --AHL_UTIL_PKG.Err_Mesg_To_Table(x_err_mesg_tbl);
118
119
120 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
121 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
122 Rollback to process_uf_Pub;
123 FND_MSG_PUB.count_and_get( p_count => x_msg_count,
124 p_data => x_msg_data,
125 p_encoded => fnd_api.g_false);
126 --AHL_UTIL_PKG.Err_Mesg_To_Table(x_err_mesg_tbl);
127
128 WHEN OTHERS THEN
129 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
130 Rollback to process_uf_Pub;
131 --IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
132 fnd_msg_pub.add_exc_msg(p_pkg_name => G_PKG_NAME,
133 p_procedure_name => 'process_utilization_forecast',
134 p_error_text => SQLERRM);
135 --END IF;
136 FND_MSG_PUB.count_and_get( p_count => x_msg_count,
137 p_data => x_msg_data,
138 p_encoded => fnd_api.g_false);
139 --AHL_UTIL_PKG.Err_Mesg_To_Table(x_err_mesg_tbl);
140
141
142 END process_utilization_forecast;
143
144 END AHL_UMP_UF_PUB;