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