57: /* Main public procedure which is called for the printing */
58:
59: PROCEDURE Generate_file(
60: p_api_version IN NUMBER,
61: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
62: p_commit IN VARCHAR2 := FND_API.G_FALSE,
63: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_NONE,
64: x_return_status OUT NOCOPY VARCHAR2,
65: x_msg_count OUT NOCOPY NUMBER,
58:
59: PROCEDURE Generate_file(
60: p_api_version IN NUMBER,
61: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
62: p_commit IN VARCHAR2 := FND_API.G_FALSE,
63: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_NONE,
64: x_return_status OUT NOCOPY VARCHAR2,
65: x_msg_count OUT NOCOPY NUMBER,
66: x_msg_data OUT NOCOPY VARCHAR2,
59: PROCEDURE Generate_file(
60: p_api_version IN NUMBER,
61: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
62: p_commit IN VARCHAR2 := FND_API.G_FALSE,
63: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_NONE,
64: x_return_status OUT NOCOPY VARCHAR2,
65: x_msg_count OUT NOCOPY NUMBER,
66: x_msg_data OUT NOCOPY VARCHAR2,
67: p_obj_type_id IN NUMBER,
68: p_doc_inst_id IN NUMBER,
69: p_dirpath IN VARCHAR2,
70: p_file_name IN VARCHAR2,
71: p_form_id IN NUMBER ,
72: p_debug_mode IN VARCHAR2 := FND_API.G_FALSE
73: )
74: IS
75:
76: l_api_name CONSTANT VARCHAR2(30) := 'Generate_file';
100: -- Standard Start of API savepoint
101: SAVEPOINT Generate_file;
102:
103: -- Standard call to check for call compatibility.
104: IF NOT FND_API.Compatible_API_Call ('1.0',
105: p_api_version,
106: l_api_name,
107: G_PKG_NAME)
108: THEN
105: p_api_version,
106: l_api_name,
107: G_PKG_NAME)
108: THEN
109: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
110: END IF;
111:
112: -- Initialize message list if p_init_msg_list is set to TRUE.
113:
110: END IF;
111:
112: -- Initialize message list if p_init_msg_list is set to TRUE.
113:
114: x_return_status := FND_API.G_RET_STS_SUCCESS;
115:
116: IF FND_API.to_Boolean (p_init_msg_list) THEN
117: FND_MSG_PUB.initialize;
118: END IF;
112: -- Initialize message list if p_init_msg_list is set to TRUE.
113:
114: x_return_status := FND_API.G_RET_STS_SUCCESS;
115:
116: IF FND_API.to_Boolean (p_init_msg_list) THEN
117: FND_MSG_PUB.initialize;
118: END IF;
119:
120: g_debug_mode := FND_API.TO_BOOLEAN(p_debug_mode);
116: IF FND_API.to_Boolean (p_init_msg_list) THEN
117: FND_MSG_PUB.initialize;
118: END IF;
119:
120: g_debug_mode := FND_API.TO_BOOLEAN(p_debug_mode);
121: --Opening file
122: Put_Debug_Msg('Opening file: '||p_dirpath||p_file_name);
123:
124: l_file_ptr := UTL_FILE.FOPEN ( p_dirpath, p_file_name, 'a' );
180:
181: EXCEPTION
182: WHEN UTL_FILE.INVALID_PATH THEN
183: ROLLBACK TO Generate_file;
184: x_return_status := FND_API.G_RET_STS_ERROR;
185: FND_MESSAGE.set_name('IGS', 'IGS_EN_INVALID_PATH');
186: FND_MSG_PUB.Add;
187:
188: WHEN UTL_FILE.WRITE_ERROR THEN
186: FND_MSG_PUB.Add;
187:
188: WHEN UTL_FILE.WRITE_ERROR THEN
189: ROLLBACK TO Generate_file;
190: x_return_status := FND_API.G_RET_STS_ERROR;
191: FND_MESSAGE.set_name('IGS', 'IGS_EN_WRITE_ERROR');
192: FND_MSG_PUB.Add;
193:
194: WHEN UTL_FILE.INVALID_FILEHANDLE THEN
192: FND_MSG_PUB.Add;
193:
194: WHEN UTL_FILE.INVALID_FILEHANDLE THEN
195: ROLLBACK TO Generate_file;
196: x_return_status := FND_API.G_RET_STS_ERROR;
197: FND_MESSAGE.set_name('IGS', 'IGS_EN_INVALID_FILEHANDLE');
198: FND_MSG_PUB.Add;
199:
200: WHEN FND_API.G_EXC_ERROR THEN
196: x_return_status := FND_API.G_RET_STS_ERROR;
197: FND_MESSAGE.set_name('IGS', 'IGS_EN_INVALID_FILEHANDLE');
198: FND_MSG_PUB.Add;
199:
200: WHEN FND_API.G_EXC_ERROR THEN
201:
202: ROLLBACK TO Generate_file;
203: Put_Debug_Msg('EXC_ERROR exception');
204: x_return_status := FND_API.G_RET_STS_ERROR;
200: WHEN FND_API.G_EXC_ERROR THEN
201:
202: ROLLBACK TO Generate_file;
203: Put_Debug_Msg('EXC_ERROR exception');
204: x_return_status := FND_API.G_RET_STS_ERROR;
205: IF (UTL_FILE.IS_OPEN ( l_file_ptr )) THEN
206: UTL_FILE.FCLOSE ( l_file_ptr );
207: END IF;
208: FND_MSG_PUB.Count_And_Get (p_count => x_msg_count,
207: END IF;
208: FND_MSG_PUB.Count_And_Get (p_count => x_msg_count,
209: p_data => x_msg_data );
210:
211: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
212:
213: ROLLBACK TO Generate_file;
214: Put_Debug_Msg('UNEXPECTED_ERROR exception');
215:
212:
213: ROLLBACK TO Generate_file;
214: Put_Debug_Msg('UNEXPECTED_ERROR exception');
215:
216: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
217: IF (UTL_FILE.IS_OPEN ( l_file_ptr )) THEN
218: UTL_FILE.FCLOSE ( l_file_ptr );
219: END IF;
220: FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count,
223: WHEN OTHERS THEN
224:
225: ROLLBACK TO Generate_file;
226: Put_Debug_Msg('Others exception');
227: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
228:
229: IF (FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)) THEN
230: FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME, l_api_name);
231: END IF;