DBA Data[Home] [Help]

PACKAGE BODY: APPS.CSC_SERVICE_REQUEST_PVT

Source


1 PACKAGE BODY CSC_service_request_pvt AS
2 /* $Header: cscvcsrb.pls 115.6 2003/01/04 00:56:53 akalidin noship $ */
3 
4 
5 /*************GLOBAL VARIABLES*************************/
6 
7 G_PKG_NAME CONSTANT VARCHAR2(30) := 'CSC_Service_Request_PVT' ;
8 
9 /* ************************************************************************* *
10  *              Forward Declaration of Local Procedures                      *
11  *                                                                           *
12  *   The following local procedures are called by the APIs in this package.  *
13  *                                                                           *
14  * ************************************************************************* */
15 
16 --------------------------------------------------------------------------
17 -- Procedure Create_Service_Request
18 -- Description: Takes in the variables and calls the service request API
19 --   to create a service request.
20 --   On Success the service request number should be returned
21 -- Input Parameters
22 -- Out Parameters
23 -- service_request_number,
24 -- x_return_status, standard parameter for the return status
25 --------------------------------------------------------------------------
26 
27 FUNCTION Create_Service_Request(
28     p_api_version_number   IN  NUMBER,
29     x_return_status        OUT NOCOPY VARCHAR2,
30     x_msg_count            OUT NOCOPY NUMBER,
31     x_msg_string           OUT NOCOPY VARCHAR2,
32     CUSTOMER_ID            IN  NUMBER 		:= CSC_CORE_UTILS_PVT.G_MISS_NUM,
33     CUST_ACCOUNT_ID        IN  NUMBER 		:= CSC_CORE_UTILS_PVT.G_MISS_NUM,
34     CUSTOMER_TYPE          IN  VARCHAR2     	:= CSC_CORE_UTILS_PVT.G_MISS_CHAR,
35     SERIAL_NUMBER          IN  VARCHAR2     	:= CSC_CORE_UTILS_PVT.G_MISS_CHAR,
36     TYPE_ID                IN  NUMBER 		:= CSC_CORE_UTILS_PVT.G_MISS_NUM,
37     SUMMARY         	   IN  VARCHAR2     	:= CSC_CORE_UTILS_PVT.G_MISS_CHAR,
38     SEVERITY_ID            IN  NUMBER 		:= CSC_CORE_UTILS_PVT.G_MISS_NUM,
39     URGENCY_ID             IN  NUMBER 		:= CSC_CORE_UTILS_PVT.G_MISS_NUM,
40     NOTE_TYPE         	   IN  VARCHAR2      := CSC_CORE_UTILS_PVT.G_MISS_CHAR,
41     NOTE         		   IN  VARCHAR2      := CSC_CORE_UTILS_PVT.G_MISS_CHAR,
42     CONTACT_ID             IN  NUMBER 		:= CSC_CORE_UTILS_PVT.G_MISS_NUM,
43     CONTACT_POINT_ID       IN  NUMBER 		:= CSC_CORE_UTILS_PVT.G_MISS_NUM,
44     PRIMARY_FLAG           IN  VARCHAR2     := CSC_CORE_UTILS_PVT.G_MISS_CHAR,
45     CONTACT_POINT_TYPE     IN  VARCHAR2     	:= CSC_CORE_UTILS_PVT.G_MISS_CHAR,
46     CONTACT_TYPE           IN  VARCHAR2     	:= CSC_CORE_UTILS_PVT.G_MISS_CHAR,
47     x_service_request_number out NOCOPY VARCHAR2
48     ) return varchar2
49     is
50 	-- Declare variables and record,table types
51 	l_return				varchar2(100);
52 	l_return_status		varchar2(50);
53 	l_msg_count			number;
54 	l_msg_data			varchar2(10000);
55 	l_request_id			number;
56 	l_request_number		varchar2(50);
57 	l_interaction_id		number;
58 	l_incident_id			number;
59 	l_incident_number		varchar2(100);
60 	l_individual_owner		NUMBER;
61 	l_individual_type		VARCHAR2(2000);
62 	l_group_owner			NUMBER;
63 
64 	subtype r_service_request_rec_type is CS_SERVICEREQUEST_PVT.service_request_rec_type;
65 	r_service_request_rec	r_service_request_rec_type ;
66 
67 	subtype t_notes_table_type is CS_SERVICEREQUEST_PVT.notes_table;
68 	t_notes_table 			t_notes_table_type;
69 
70 	subtype t_contacts_table_type is CS_SERVICEREQUEST_PVT.contacts_table;
71 	t_contacts_table 		t_contacts_table_type;
72 
73 	l_rec_count			number;
74 	l_msg_index_out		number;
75 
76 	l_item_key			varchar2(100);
77 	l_return_Status_wkflw	varchar2(100);
78 
79 	counter				number;
80 	l_workflow_process_id	number;
81 	mesg					varchar2(100);
82 
83 	l_default_type_id			number;
84 	l_default_urgency_id		number;
85 	l_default_owner_id			number;
86 	l_default_severity_id		number;
87 	l_default_status_id			number;
88 
89 	l_default_act_severity_id		number;
90 	l_default_act_assignee_id		number;
91 	l_default_act_type_id			number;
92 
93 	l_default_type				varchar2(30) := null;
94 	l_default_type_cnt			number	 := 0;
95 	l_default_urgency			varchar2(30) := null;
96 	l_default_owner			varchar2(240) := null;
97 	l_default_severity			varchar2(30) := null;
98 	l_default_Status			varchar2(100);
99 	l_default_type_workflow		varchar2(30) := null;
100 	l_default_type_workflow_nm	varchar2(80) := null;
101 
102 	l_default_incident_date			date;
103 	l_default_resource_type			varchar2(100);
104 
105 	cursor C1(c_owner_id number) is
106 		select resource_type
107 		from cs_sr_owners_v
108 		where resource_id = c_owner_id;
109 
110     Begin
111 	-- Initialise the SR Rec
112 
113 		l_return := 'SRFailure';
114 
115 		cs_servicerequest_pvt.initialize_rec(r_service_request_rec);
116 
117 		CS_SR_UTIL_PKG.Get_Default_values(
118 		p_default_type_id		=>  l_default_type_id,
119 		p_default_type			=>  l_default_type,
120 		p_default_type_workflow	=>  l_default_type_workflow,
121 		p_default_type_workflow_nm	=>  l_default_type_workflow_nm,
122 		p_default_type_cnt		=>  l_default_type_cnt,
123 		p_default_severity_id	=>  l_default_severity_id,
124 		p_default_severity 		=>  l_default_severity,
125 		p_default_urgency_id	=>  l_default_urgency_id,
126 		p_default_urgency 	=>  l_default_urgency,
127 		p_default_owner_id	=>  l_default_owner_id,
128 		p_default_owner 	=>  l_default_owner,
129 		p_default_status_id	=>  l_default_status_id,
130 		p_default_status 	=>  l_default_status);
131 
132 		open C1(l_default_owner_id);
133 		fetch C1 into l_default_resourcE_type;
134 		close C1;
135 
136 
137 		-- Populate the values for the Rec
138 
139 		r_service_request_rec.request_date	:= sysdate;
140 		r_service_request_rec.account_id	:= Cust_account_id ; -- <<??
141 		r_service_request_Rec.status_id	:= l_default_Status_id;
142 
143 		if (type_id is null ) then
144 			r_service_request_Rec.type_id	:= l_default_type_id;
145 		else
146 			r_service_request_Rec.type_id	:= type_id;
147 		end if;
148 
149 		if (severity_id is null ) then
150 			r_service_request_Rec.severity_id	:= l_default_severity_id;
151 		else
152 			r_service_request_Rec.severity_id	:= severity_id;
153 		end if;
154 		if (urgency_id is null ) then
155 			r_service_request_Rec.urgency_id	:= l_default_urgency_id;
156 		else
157 			r_service_request_Rec.urgency_id	:= urgency_id;
158 		end if;
159 		r_service_request_rec.closed_date	:= null;
160 		r_service_request_Rec.owner_id		:= l_default_owner_id;
161 		r_service_request_Rec.current_Serial_number := serial_number ;
162 -----		r_service_request_Rec.problem_code  	:= problem_code ;
163 
164 		r_service_request_rec.summary		:= Summary ; -- <<??
165 		r_service_request_rec.caller_type	:= customer_type ; -- <<??
166 		r_service_request_rec.customer_id       := Customer_id; -- <<??
167 
168 		r_service_request_rec.resource_type 	:= l_default_resource_type ;
169 
170 		-- This line were added for 1159 service request API change
171 		r_service_request_rec.creation_program_code 	:= 'CSCCCQSR.SCR' ;
172 		r_service_request_rec.last_update_program_code 	:= 'CSCCCQSR.SCR' ;
173 
174 		t_notes_table(1).note_type		:= note_type ;--<< ??
175 		t_notes_table(1).note			:= note ;--<< ??
176 
177 		-- Contacts info..
178 		t_contacts_table(1).party_id		:= contact_id ; --<<??
179 		t_contacts_table(1).contact_point_id	:= contact_point_id ; --<<??
180 		t_contacts_table(1).contact_point_type	:= contact_point_type; --<<??
181 		t_contacts_table(1).contact_type	:= contact_type; --<<??
182 		t_contacts_table(1).primary_flag	:= primary_flag; --<<??
183 
184 
185 	-- Create the SR
186 
187 		CS_SERVICEREQUEST_PVT.Create_serviceRequest(
188 		p_api_version		=> 3,
189 		p_init_msg_list	=> csc_core_utils_pvt.g_true,
190 		p_commit			=> csc_core_utils_pvt.g_true,
191 		p_validation_level	=> csc_core_utils_pvt.g_valid_level_none,
192 		x_return_Status	=> l_return_Status,
193 		x_msg_count		=> l_msg_count,
194 		x_msg_data		=> l_msg_data,
195 		p_resp_appl_id		=> null,
196 		p_resp_id		=> null,
197 		p_user_id		=> FND_GLOBAL.USER_ID,
198 		p_login_id	=> FND_GLOBAL.CONC_LOGIN_ID,
199 		p_org_id		=> null,
200 		p_request_id		=> null,
201 		p_request_number	=> null,
202 		p_service_request_rec	=> r_service_request_Rec,
203 		p_notes			=> t_notes_table,
204 		p_contacts		=> t_contacts_table,
205 		x_request_id		=> l_incident_id,
206 		x_request_number	=> l_incident_number,
207 		x_interaction_id	=> l_interaction_id,
208 		x_workflow_process_id	=> l_workflow_process_id,
209 		x_individual_owner	=> l_individual_owner,
210 		x_individual_type	=> l_individual_type,
211 		x_group_owner		=> l_group_owner
212 		);
213 
214 		x_return_Status := l_return_Status;
215 
216 		if (l_return_status = csc_core_utils_pvt.g_ret_sts_success) then
217 			x_service_request_number := l_incident_number;
218 			l_return := 'SRSuccess';
219 			return l_return;
220 		else
221       		IF ( FND_MSG_PUB.Count_Msg > 0) THEN
222         		FOR i in 1..FND_MSG_PUB.Count_Msg
223         		LOOP
224 
225           		FND_MSG_PUB.Get(p_msg_index 	=> i,
226                         p_encoded 		=> 'F',
227                         p_data 		=> x_msg_string,
228                         p_msg_index_out => l_msg_index_out );
229 
230 	      		--dbms_output.put_line(substr(x_msg_string,1,1000));
231 
232         		END LOOP;
233 			end if;
234 			l_return := 'SRFailure';
235 			return l_return;
236 		end if;
237 
238     End Create_Service_Request ;
239 
240 END CSC_Service_Request_Pvt;