19: --Added NOCOPY hint to x_return_status,x_msg_count,x_msg_data to comply
20: --with GSCC File.Sql.39 standard Bug:4410902
21: PROCEDURE Create_Unscheduled_Counts
22: ( p_api_version IN NUMBER ,
23: p_init_msg_list IN VARCHAR2 := fnd_api.g_false ,
24: p_commit IN VARCHAR2 := fnd_api.g_false ,
25: x_return_status OUT NOCOPY VARCHAR2 ,
26: x_msg_count OUT NOCOPY NUMBER ,
27: x_msg_data OUT NOCOPY VARCHAR2 ,
20: --with GSCC File.Sql.39 standard Bug:4410902
21: PROCEDURE Create_Unscheduled_Counts
22: ( p_api_version IN NUMBER ,
23: p_init_msg_list IN VARCHAR2 := fnd_api.g_false ,
24: p_commit IN VARCHAR2 := fnd_api.g_false ,
25: x_return_status OUT NOCOPY VARCHAR2 ,
26: x_msg_count OUT NOCOPY NUMBER ,
27: x_msg_data OUT NOCOPY VARCHAR2 ,
28: p_organization_id IN NUMBER ,
48: BEGIN
49: -- Standard Start of API savepoint
50: SAVEPOINT Create_Unscheduled_Counts_PVT;
51: -- Standard call to check for call compatibility.
52: IF NOT FND_API.Compatible_API_Call ( l_api_version ,
53: p_api_version ,
54: l_api_name ,
55: G_PKG_NAME )
56: THEN
55: G_PKG_NAME )
56: THEN
57: FND_MESSAGE.SET_NAME('WMS', 'WMS_CONT_INCOMPATIBLE_API_CALL');
58: FND_MSG_PUB.ADD;
59: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
60: END IF;
61: -- Initialize message list if p_init_msg_list is set to TRUE.
62: IF FND_API.to_Boolean( p_init_msg_list ) THEN
63: FND_MSG_PUB.initialize;
58: FND_MSG_PUB.ADD;
59: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
60: END IF;
61: -- Initialize message list if p_init_msg_list is set to TRUE.
62: IF FND_API.to_Boolean( p_init_msg_list ) THEN
63: FND_MSG_PUB.initialize;
64: END IF;
65: -- Initialize API return status to success
66: x_return_status := FND_API.G_RET_STS_SUCCESS;
62: IF FND_API.to_Boolean( p_init_msg_list ) THEN
63: FND_MSG_PUB.initialize;
64: END IF;
65: -- Initialize API return status to success
66: x_return_status := FND_API.G_RET_STS_SUCCESS;
67:
68: -- API body
69: /* Validate all inputs */
70:
80: l_result := INV_Validate.Organization(l_org);
81: IF (l_result = INV_Validate.F) THEN
82: FND_MESSAGE.SET_NAME('WMS', 'WMS_CONT_INVALID_ORG');
83: FND_MSG_PUB.ADD;
84: RAISE FND_API.G_EXC_ERROR;
85: END IF;
86:
87: /* Validate Subinventory */
88: IF (p_subinventory IS NOT NULL) THEN
90: l_result := INV_Validate.subinventory(l_sub, l_org);
91: IF (l_result = INV_Validate.F) THEN
92: FND_MESSAGE.SET_NAME('WMS', 'WMS_CONT_INVALID_SUB');
93: FND_MSG_PUB.ADD;
94: RAISE FND_API.G_EXC_ERROR;
95: END IF;
96: END IF;
97:
98: /* Validate Locator */
100: IF (l_sub.locator_type IN (2,3)) THEN
101: IF (p_locator_id IS NULL) THEN
102: FND_MESSAGE.SET_NAME('WMS', 'WMS_CONT_MISS_REQ_LOC');
103: FND_MSG_PUB.ADD;
104: RAISE FND_API.G_EXC_ERROR;
105: END IF;
106: l_locator.inventory_location_id := p_locator_id;
107: l_result := INV_Validate.validateLocator(l_locator, l_org, l_sub);
108: IF (l_result = INV_Validate.F) THEN
107: l_result := INV_Validate.validateLocator(l_locator, l_org, l_sub);
108: IF (l_result = INV_Validate.F) THEN
109: FND_MESSAGE.SET_NAME('WMS', 'WMS_CONT_INVALID_LOC');
110: FND_MSG_PUB.ADD;
111: RAISE FND_API.G_EXC_ERROR;
112: END IF;
113: END IF;
114: END IF;
115:
116: /* Validate the default cycle count header */
117: IF (l_org.default_cyc_count_header_id IS NULL) THEN
118: FND_MESSAGE.SET_NAME('INV', 'INV_CCEOI_INVALID_HEADER');
119: FND_MSG_PUB.ADD;
120: RAISE FND_API.G_EXC_ERROR;
121: ELSE
122: l_cycle_count_header_id := l_org.default_cyc_count_header_id;
123: END IF;
124:
130: AND organization_id = p_organization_id;
131: IF (l_unscheduled_count_entry = 2) THEN
132: FND_MESSAGE.SET_NAME('INV', 'INV_CCEOI_NO_UNSCHED_COUNTS');
133: FND_MSG_PUB.ADD;
134: RAISE FND_API.G_EXC_ERROR;
135: END IF;
136: IF (l_debug = 1) THEN
137: print_debug('Finished Validations');
138: END IF;
197: IF (l_req_id <= 0 OR l_req_id IS NULL) THEN
198: IF (l_debug = 1) THEN
199: print_debug('Error in calling the generate count requests program');
200: END IF;
201: RAISE FND_API.G_EXC_ERROR;
202: ELSE
203: COMMIT;
204: END IF;
205:
232: END IF;
233:
234: -- End of API body
235: -- Standard check of p_commit.
236: IF FND_API.To_Boolean( p_commit ) THEN
237: COMMIT WORK;
238: END IF;
239: -- Standard call to get message count and if count is 1,
240: -- get message info.
246: print_debug('Successfully called the procedure Create_Unscheduled_Counts');
247: END IF;
248:
249: EXCEPTION
250: WHEN FND_API.G_EXC_ERROR THEN
251: ROLLBACK TO Create_Unscheduled_Counts_PVT;
252: x_return_status := FND_API.G_RET_STS_ERROR;
253: IF (l_debug = 1) THEN
254: print_debug('Execution error!');
248:
249: EXCEPTION
250: WHEN FND_API.G_EXC_ERROR THEN
251: ROLLBACK TO Create_Unscheduled_Counts_PVT;
252: x_return_status := FND_API.G_RET_STS_ERROR;
253: IF (l_debug = 1) THEN
254: print_debug('Execution error!');
255: END IF;
256: FND_MSG_PUB.Count_And_Get
256: FND_MSG_PUB.Count_And_Get
257: ( p_count => x_msg_count,
258: p_data => x_msg_data
259: );
260: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
261: ROLLBACK TO Create_Unscheduled_Counts_PVT;
262: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
263: IF (l_debug = 1) THEN
264: print_debug('Unexpected error!');
258: p_data => x_msg_data
259: );
260: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
261: ROLLBACK TO Create_Unscheduled_Counts_PVT;
262: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
263: IF (l_debug = 1) THEN
264: print_debug('Unexpected error!');
265: END IF;
266: FND_MSG_PUB.Count_And_Get
268: p_data => x_msg_data
269: );
270: WHEN OTHERS THEN
271: ROLLBACK TO Create_Unscheduled_Counts_PVT;
272: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
273: IF (l_debug = 1) THEN
274: print_debug('Others error!');
275: END IF;
276: IF FND_MSG_PUB.Check_Msg_Level