1 PACKAGE BODY AHL_OSP_ORDERS_PUB AS
2 --/* $Header: AHLPOSPB.pls 120.2 2005/09/15 13:24:54 jaramana noship $ */
3
4
5 G_PKG_NAME CONSTANT VARCHAR2(30) := 'AHL_OSP_ORDERS_PUB';
6
7 ------------------------
8 -- Declare Procedures --
9 ------------------------
10
11 -- Start of Comments --
12 -- Procedure name : process_osp_order
13 -- Type : Public
14 -- Function : For a given set of osp order header and lines, will validate and insert/update/delete
15 -- the osp order information.
16 -- Pre-reqs :
17 -- Parameters :
18 --
19 -- Standard IN Parameters :
20 -- p_api_version IN NUMBER Default 1.0
21 -- p_init_msg_list IN VARCHAR2 Default FND_API.G_TRUE
22 -- p_commit IN VARCHAR2 Default FND_API.G_FALSE
23 -- p_validation_level IN NUMBER Default FND_API.G_VALID_LEVEL_FULL
24 -- Standard OUT Parameters :
25 -- x_return_status OUT VARCHAR2 Required
26 -- x_msg_count OUT NUMBER Required
27 -- x_msg_data OUT VARCHAR2 Required
28 --
29 -- p_module_type IN VARCHAR2 Required.
30 --
31 -- This parameter indicates the front-end form interface. The default value is 'JSP'. If the value
32 -- is JSP, then this API clears out all id columns and validations are done using the values based
33 -- on which the Id's are populated.
34 --
35 -- process_osp_order Parameters:
36 --
37 -- p_x_osp_order_rec IN OUT AHL_OSP_ORDERS_PVT.osp_order_rec_type Required
38 -- OSP Order Header record
39 -- p_x_osp_order_lines_tbl IN OUT AHL_OSP_ORDERS_PVT.osp_order_lines_tbl_type Required
40 -- OSP Order Lines
41 -- p_org_id IN NUMBER
42 -- Optional Org Id Parameter for R12 MOAC Compliance.
43 --
44 -- Version :
45 -- Initial Version 1.0
46 --
47 -- End of Comments.
48
49 PROCEDURE process_osp_order(
50 p_api_version IN NUMBER := 1.0,
51 p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
52 p_commit IN VARCHAR2 := FND_API.G_FALSE,
53 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
54 p_module_type IN VARCHAR2 := NULL,
55 p_x_osp_order_rec IN OUT NOCOPY AHL_OSP_ORDERS_PVT.osp_order_rec_type,
56 p_x_osp_order_lines_tbl IN OUT NOCOPY AHL_OSP_ORDERS_PVT.osp_order_lines_tbl_type,
57 p_org_id IN NUMBER := NULL,
58 x_return_status OUT NOCOPY VARCHAR2,
59 x_msg_count OUT NOCOPY NUMBER,
60 x_msg_data OUT NOCOPY VARCHAR2) IS
61
62 l_api_name CONSTANT VARCHAR2(30) := 'process_osp_order';
63 l_api_version CONSTANT NUMBER := 1.0;
64 l_curr_org_id NUMBER;
65 l_org_id NUMBER := p_org_id;
66
67 BEGIN
68
69 -- Standard start of API savepoint
70 SAVEPOINT process_osp_order_pub;
71
72 -- Standard call to check for call compatibility
73 IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name,
74 G_PKG_NAME) THEN
75 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
76 END IF;
77
78 -- Initialize message list if p_init_msg_list is set to TRUE
79 IF FND_API.To_Boolean(p_init_msg_list) THEN
80 FND_MSG_PUB.Initialize;
81 END IF;
82
83 -- Initialize API return status to success
84 x_return_status := FND_API.G_RET_STS_SUCCESS;
85
86 /*
87 * R12 MOAC Related Changes
88 * Made by jaramana on 9/9/05
89 * Corrected on 9/15/05
90 */
91 MO_GLOBAL.validate_orgid_pub_api(org_id => l_org_id, -- IN OUT Parameter
92 status => x_return_status);
93
94 l_curr_org_id := MO_GLOBAL.get_current_org_id();
95
96 IF (l_curr_org_id IS NULL AND l_org_id IS NOT NULL) THEN
97 -- MO Initialization not done
98 -- Use the Org Id returned by validate_orgid_pub_api and do the initialization.
99 MO_GLOBAL.set_org_context(p_org_id_char => TO_CHAR(p_org_id),
100 p_sp_id_char => null,
101 p_appl_short_name => 'AHL');
102 -- Cannot use set_policy_context since it only sets the
103 -- current org_id, but does not populate the temp table
104 END IF;
105 /* End MOAC Related Changes */
106
107 -- Call Private API.
108 AHL_OSP_ORDERS_PVT.process_osp_order (
109 p_api_version => 1.0,
110 p_x_osp_order_rec => p_x_osp_order_rec,
111 p_x_osp_order_lines_tbl => p_x_osp_order_lines_tbl,
112 x_return_status => x_return_status,
113 x_msg_count => x_msg_count,
114 x_msg_data => x_msg_data );
115
116
117
118 IF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
119 RAISE FND_API.G_EXC_ERROR;
120 ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
121 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
122 END IF;
123
124 -- Standard check of p_commit
125 IF FND_API.To_Boolean(p_commit) THEN
126 COMMIT WORK;
127 END IF;
128
129 -- Standard call to get message count and if count is 1, get message
130 FND_MSG_PUB.Count_And_Get
131 ( p_count => x_msg_count,
132 p_data => x_msg_data,
133 p_encoded => fnd_api.g_false);
134
135 --
136 EXCEPTION
137 WHEN FND_API.G_EXC_ERROR THEN
138 x_return_status := FND_API.G_RET_STS_ERROR;
139 Rollback to process_uf_Pub;
140 FND_MSG_PUB.count_and_get( p_count => x_msg_count,
141 p_data => x_msg_data,
142 p_encoded => fnd_api.g_false);
143 --AHL_UTIL_PKG.Err_Mesg_To_Table(x_err_mesg_tbl);
144
145
146 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
147 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
148 Rollback to process_uf_Pub;
149 FND_MSG_PUB.count_and_get( p_count => x_msg_count,
150 p_data => x_msg_data,
151 p_encoded => fnd_api.g_false);
152 --AHL_UTIL_PKG.Err_Mesg_To_Table(x_err_mesg_tbl);
153
154 WHEN OTHERS THEN
155 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
156 Rollback to process_osp_order_pub;
157 --IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
158 fnd_msg_pub.add_exc_msg(p_pkg_name => G_PKG_NAME,
159 p_procedure_name => 'process_osp_order',
160 p_error_text => SQLERRM);
161 --END IF;
162 FND_MSG_PUB.count_and_get( p_count => x_msg_count,
163 p_data => x_msg_data,
164 p_encoded => fnd_api.g_false);
165 --AHL_UTIL_PKG.Err_Mesg_To_Table(x_err_mesg_tbl);
166
167
168 END process_osp_order;
169
170 END AHL_OSP_ORDERS_PUB;
171 ----------------------------------------------