DBA Data[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;