[Home] [Help]
PACKAGE BODY: APPS.ASO_FFM_INT
Source
1 PACKAGE BODY ASO_FFM_INT as
2 /* $Header: asoiffmb.pls 120.1 2005/06/29 12:33:23 appldev ship $ */
3 -- Start of Comments
4 -- Package name : ASO_FFM_INT
5 -- Purpose :
6 -- History :
7 -- NOTE :
8 -- End of Comments
9
10
11 G_PKG_NAME CONSTANT VARCHAR2(30):= 'ASO_FFM_INT';
12 G_FILE_NAME CONSTANT VARCHAR2(12) := 'asoiffmb.pls';
13
14 PROCEDURE Submit_FFM_Request(
15 P_Api_Version_Number IN NUMBER,
16 p_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
17 p_Commit IN VARCHAR2 := FND_API.G_FALSE,
18 p_validation_Level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
19 p_ffm_request_rec IN FFM_REQUEST_REC_TYPE,
20 p_ffm_content_tbl IN FFM_CONTENT_TBL_TYPE,
21 p_bind_tbl IN FFM_Bind_Tbl_Type,
22 X_Request_ID OUT NOCOPY /* file.sql.39 change */ NUMBER,
23 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
24 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
25 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
26 IS
27 l_api_name CONSTANT VARCHAR2(30) := 'Submit_FFM_Request';
28 l_api_version_number CONSTANT NUMBER := 1.0;
29
30 l_bind_var_tbl JTF_FM_REQUEST_GRP.G_VARCHAR_TBL_TYPE;
31 l_bind_val_tbl JTF_FM_REQUEST_GRP.G_VARCHAR_TBL_TYPE;
32 l_bind_var_type_tbl JTF_FM_REQUEST_GRP.G_VARCHAR_TBL_TYPE;
33 l_index NUMBER;
34 l_content_xml VARCHAR2(2000) := '';
35 l_tmp_content_xml VARCHAR2(2000);
36 BEGIN
37 SAVEPOINT Submit_FFM_Request_INT;
38
39 -- Standard call to check for call compatibility.
40 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
41 p_api_version_number,
42 l_api_name,
43 G_PKG_NAME) THEN
44 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
45 END IF;
46
47 -- Initialize API return status to SUCCESS
48 x_return_status := FND_API.G_RET_STS_SUCCESS;
49
50 JTF_FM_REQUEST_GRP.Start_Request(
51 p_api_version => 1.0,
52 p_init_msg_list => FND_API.G_FALSE,
53 p_commit => FND_API.G_FALSE,
54 X_Return_Status => x_Return_Status,
55 X_Msg_Count => x_Msg_Count,
56 X_Msg_Data => x_Msg_Data,
57 X_request_id => x_request_id);
58
59 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
60 RAISE FND_API.G_EXC_ERROR;
61 END IF;
62
63 FOR i IN 1..p_ffm_content_tbl.count LOOP
64 l_bind_var_tbl := JTF_FM_REQUEST_GRP.L_VARCHAR_TBL;
65 l_bind_val_tbl := JTF_FM_REQUEST_GRP.L_VARCHAR_TBL;
66 l_bind_var_type_tbl := JTF_FM_REQUEST_GRP.L_VARCHAR_TBL;
67 l_index := 1;
68 FOR j IN 1..p_bind_tbl.count LOOP
69 IF p_bind_tbl(j).content_index = i THEN
70 l_bind_var_tbl(l_index) := p_bind_tbl(j).bind_var;
71 l_bind_val_tbl(l_index) := p_bind_tbl(j).bind_val;
72 l_bind_var_type_tbl(l_index) := p_bind_tbl(j).bind_var_type;
73 l_index := l_index+1;
74 END IF;
75 END LOOP;
76 JTF_FM_REQUEST_GRP.Get_Content_XML(
77 p_api_version => 1.0,
78 p_init_msg_list => FND_API.G_FALSE,
79 p_commit => FND_API.G_FALSE,
80 p_validation_level => p_validation_level,
81 p_content_id => p_ffm_content_tbl(i).content_id,
82 p_content_nm => p_ffm_content_tbl(i).content_name,
83 p_document_type => p_ffm_content_tbl(i).document_type,
84 p_quantity => p_ffm_content_tbl(i).quantity,
85 p_media_type => p_ffm_content_tbl(i).media_type,
86 p_printer => p_ffm_content_tbl(i).printer,
87 p_email => p_ffm_content_tbl(i).email,
88 p_fax => p_ffm_content_tbl(i).fax,
89 p_file_path => p_ffm_content_tbl(i).file_path,
90 p_user_note => p_ffm_content_tbl(i).user_note,
91 p_content_type => p_ffm_content_tbl(i).content_type,
92 p_bind_var => l_bind_var_tbl,
93 p_bind_val => l_bind_val_tbl,
94 p_bind_var_type => l_bind_var_type_tbl,
95 p_request_id => x_request_id,
96 x_content_xml => l_tmp_content_xml,
97 X_Return_Status => x_Return_Status,
98 X_Msg_Count => x_Msg_Count,
99 X_Msg_Data => x_Msg_Data);
100 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
101 RAISE FND_API.G_EXC_ERROR;
102 END IF;
103 IF (length(l_content_xml)+length(l_tmp_content_xml)) > 2000 THEN
104 x_return_status := FND_API.G_RET_STS_ERROR;
105 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
106 FND_MESSAGE.Set_Name('ASO', 'ASO_API_CONTENT_XML_TOO_LONG');
107 FND_MSG_PUB.ADD;
108 END IF;
109 RAISE FND_API.G_EXC_ERROR;
110 END IF;
111 l_content_xml := l_content_xml||l_tmp_content_xml;
112 END LOOP;
113 JTF_FM_REQUEST_GRP.Submit_Request(
114 p_api_version => 1.0,
115 p_init_msg_list => FND_API.G_FALSE,
116 p_commit => FND_API.G_FALSE,
117 p_validation_level => p_validation_level,
118 p_template_id => p_ffm_request_rec.template_id,
119 p_subject => p_ffm_request_rec.subject,
120 p_party_id => p_ffm_request_rec.party_id,
121 p_user_id => p_ffm_request_rec.user_id,
122 p_priority => p_ffm_request_rec.priority,
123 p_source_code_id => p_ffm_request_rec.source_code_id,
124 p_source_code => p_ffm_request_rec.source_code,
125 p_object_type => p_ffm_request_rec.object_type,
126 p_object_id => p_ffm_request_rec.object_id,
127 p_order_id => p_ffm_request_rec.order_id,
128 p_server_id => p_ffm_request_rec.server_id,
129 p_queue_response => p_ffm_request_rec.queue_response,
130 p_content_xml => l_content_xml,
131 p_request_id => x_request_id,
132 X_Return_Status => x_Return_Status,
133 X_Msg_Count => x_Msg_Count,
134 X_Msg_Data => x_Msg_Data);
135 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
136 RAISE FND_API.G_EXC_ERROR;
137 END IF;
138
139 -- Standard check for p_commit
140 IF FND_API.to_Boolean( p_commit ) THEN
141 COMMIT WORK;
142 END IF;
143
144
145
146
147 -- Standard call to get message count and if count is 1, get message info.
148 FND_MSG_PUB.Count_And_Get
149 ( p_count => x_msg_count,
150 p_data => x_msg_data
151 );
152
153 EXCEPTION
154 WHEN FND_API.G_EXC_ERROR THEN
155 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
156 P_API_NAME => L_API_NAME
157 ,P_PKG_NAME => G_PKG_NAME
158 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
159 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_INT
160 ,X_MSG_COUNT => X_MSG_COUNT
161 ,X_MSG_DATA => X_MSG_DATA
162 ,X_RETURN_STATUS => X_RETURN_STATUS);
163
164 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
165 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
166 P_API_NAME => L_API_NAME
167 ,P_PKG_NAME => G_PKG_NAME
168 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
169 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_INT
170 ,X_MSG_COUNT => X_MSG_COUNT
171 ,X_MSG_DATA => X_MSG_DATA
172 ,X_RETURN_STATUS => X_RETURN_STATUS);
173
174 WHEN OTHERS THEN
175 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
176 P_API_NAME => L_API_NAME
177 ,P_PKG_NAME => G_PKG_NAME
178 ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
179 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_INT
180 ,P_SQLCODE => SQLCODE
181 ,P_SQLERRM => SQLERRM
182 ,X_MSG_COUNT => X_MSG_COUNT
183 ,X_MSG_DATA => X_MSG_DATA
184 ,X_RETURN_STATUS => X_RETURN_STATUS);
185 END Submit_FFM_Request;
186
187 End ASO_FFM_INT;