DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKE_CHG_REQUESTS_PKG

Source


1 package body OKE_CHG_REQUESTS_PKG as
2 /* $Header: OKEOCRXB.pls 120.0 2005/05/25 17:57:25 appldev noship $ */
3 
4 PROCEDURE Start_WF_Process
5 ( X_LAST_CHG_LOG_ID             IN      NUMBER
6 ) IS
7 
8   CURSOR c IS
9     SELECT wf_item_type
10     ,      wf_item_key
11     FROM   oke_chg_logs
12     WHERE  chg_log_id = X_Last_Chg_Log_ID;
13   crec c%rowtype;
14 
15 BEGIN
16 
17   OPEN c;
18   FETCH c INTO crec;
19   CLOSE c;
20 
21   IF ( crec.wf_item_key IS NOT NULL ) THEN
22     --
23     -- Start the Workflow Process
24     --
25     WF_ENGINE.StartProcess( itemtype => crec.wf_item_type
26                           , itemkey  => crec.wf_item_key );
27   END IF;
28 
29 EXCEPTION
30 WHEN OTHERS THEN
31   NULL;
32 END Start_WF_Process;
33 
34 
35 procedure INSERT_ROW
36 ( X_ROWID                       in out NOCOPY  VARCHAR2
37 , X_CHG_REQUEST_ID              in out NOCOPY  NUMBER
38 , X_CREATION_DATE               in      DATE
39 , X_CREATED_BY                  in      NUMBER
40 , X_LAST_UPDATE_DATE            in      DATE
41 , X_LAST_UPDATED_BY             in      NUMBER
42 , X_LAST_UPDATE_LOGIN           in      NUMBER
43 , X_K_HEADER_ID                 in      NUMBER
44 , X_CHG_REQUEST_NUM             in out NOCOPY  VARCHAR2
45 , X_CHG_TYPE_CODE               in      VARCHAR2
46 , X_CHG_STATUS_CODE             in      VARCHAR2
47 , X_CHG_REASON_CODE             in      VARCHAR2
48 , X_IMPACT_FUNDING_FLAG         in      VARCHAR2
49 , X_EFFECTIVE_DATE              in      DATE
50 , X_REQUESTED_BY_PERSON_ID      in      NUMBER
51 , X_REQUESTED_DATE              in      DATE
52 , X_RECEIVE_DATE                in      DATE
53 , X_APPROVE_DATE                in out NOCOPY  DATE
54 , X_IMPLEMENT_DATE              in out NOCOPY  DATE
55 , X_PREV_VERSION                in      NUMBER
56 , X_NEW_VERSION                 in      NUMBER
57 , X_DESCRIPTION                 in      VARCHAR2
58 , X_CHG_TEXT                    in      VARCHAR2
59 , X_LAST_CHG_LOG_ID             in out NOCOPY  NUMBER
60 , X_ATTRIBUTE_CATEGORY          in      VARCHAR2
61 , X_ATTRIBUTE1                  in      VARCHAR2
62 , X_ATTRIBUTE2                  in      VARCHAR2
63 , X_ATTRIBUTE3                  in      VARCHAR2
64 , X_ATTRIBUTE4                  in      VARCHAR2
65 , X_ATTRIBUTE5                  in      VARCHAR2
66 , X_ATTRIBUTE6                  in      VARCHAR2
67 , X_ATTRIBUTE7                  in      VARCHAR2
68 , X_ATTRIBUTE8                  in      VARCHAR2
69 , X_ATTRIBUTE9                  in      VARCHAR2
70 , X_ATTRIBUTE10                 in      VARCHAR2
71 , X_ATTRIBUTE11                 in      VARCHAR2
72 , X_ATTRIBUTE12                 in      VARCHAR2
73 , X_ATTRIBUTE13                 in      VARCHAR2
74 , X_ATTRIBUTE14                 in      VARCHAR2
75 , X_ATTRIBUTE15                 in      VARCHAR2
76 ) is
77 
78   cursor C1 is
79     SELECT oke_chg_requests_s.nextval
80     FROM   dual;
81 
82   cursor C2 is
83     SELECT ROWID
84     ,      LAST_CHG_LOG_ID
85     ,      APPROVE_DATE
86     ,      IMPLEMENT_DATE
87     FROM oke_chg_requests
88     WHERE chg_request_id = X_CHG_REQUEST_ID
89     ;
90 
91   Auto_ChgReq_Number  BOOLEAN := FALSE;
92 
93 begin
94 
95   OPEN c1;
96   FETCH c1 INTO X_Chg_Request_ID;
97   CLOSE c1;
98 
99   --
100   -- Assign a dummy Number first
101   --
102   IF ( X_Chg_Request_Num IS NULL ) THEN
103     Auto_ChgReq_Number := TRUE;
104     X_Chg_Request_Num := 'TEMP:' || rpad(X_Chg_Request_ID , 25 , '*');
105   END IF;
106 
107   SAVEPOINT OKE_CHG_REQUESTS_INSERT;
108 
109   insert into OKE_CHG_REQUESTS (
110   CHG_REQUEST_ID
111 , CREATION_DATE
112 , CREATED_BY
113 , LAST_UPDATE_DATE
114 , LAST_UPDATED_BY
115 , LAST_UPDATE_LOGIN
116 , K_HEADER_ID
117 , CHG_REQUEST_NUM
118 , CHG_TYPE_CODE
119 , CHG_STATUS_CODE
120 , CHG_REASON_CODE
121 , IMPACT_FUNDING_FLAG
122 , EFFECTIVE_DATE
123 , REQUESTED_BY_PERSON_ID
124 , REQUESTED_DATE
125 , RECEIVE_DATE
126 , APPROVE_DATE
127 , IMPLEMENT_DATE
128 , PREV_VERSION
129 , NEW_VERSION
130 , DESCRIPTION
131 , CHG_TEXT
132 , ATTRIBUTE_CATEGORY
133 , ATTRIBUTE1
134 , ATTRIBUTE2
135 , ATTRIBUTE3
136 , ATTRIBUTE4
137 , ATTRIBUTE5
138 , ATTRIBUTE6
139 , ATTRIBUTE7
140 , ATTRIBUTE8
141 , ATTRIBUTE9
142 , ATTRIBUTE10
143 , ATTRIBUTE11
144 , ATTRIBUTE12
145 , ATTRIBUTE13
146 , ATTRIBUTE14
147 , ATTRIBUTE15
148   ) values (
149   X_CHG_REQUEST_ID
150 , X_CREATION_DATE
151 , X_CREATED_BY
152 , X_LAST_UPDATE_DATE
153 , X_LAST_UPDATED_BY
154 , X_LAST_UPDATE_LOGIN
155 , X_K_HEADER_ID
156 , X_CHG_REQUEST_NUM
157 , X_CHG_TYPE_CODE
158 , X_CHG_STATUS_CODE
159 , X_CHG_REASON_CODE
160 , X_IMPACT_FUNDING_FLAG
161 , X_EFFECTIVE_DATE
162 , X_REQUESTED_BY_PERSON_ID
163 , X_REQUESTED_DATE
164 , X_RECEIVE_DATE
165 , X_APPROVE_DATE
166 , X_IMPLEMENT_DATE
167 , X_PREV_VERSION
168 , X_NEW_VERSION
169 , X_DESCRIPTION
170 , X_CHG_TEXT
171 , X_ATTRIBUTE_CATEGORY
172 , X_ATTRIBUTE1
173 , X_ATTRIBUTE2
174 , X_ATTRIBUTE3
175 , X_ATTRIBUTE4
176 , X_ATTRIBUTE5
177 , X_ATTRIBUTE6
178 , X_ATTRIBUTE7
179 , X_ATTRIBUTE8
180 , X_ATTRIBUTE9
181 , X_ATTRIBUTE10
182 , X_ATTRIBUTE11
183 , X_ATTRIBUTE12
184 , X_ATTRIBUTE13
185 , X_ATTRIBUTE14
186 , X_ATTRIBUTE15
187 );
188 
189   open c2;
190   fetch c2 into X_ROWID
191               , X_LAST_CHG_LOG_ID
192               , X_APPROVE_DATE
193               , X_IMPLEMENT_DATE;
194   if (c2%notfound) then
195     close c2;
196     raise no_data_found;
197   end if;
198   close c2;
199 
200   --
201   -- Now assign the real number to reduce lock time
202   --
203   IF ( Auto_ChgReq_Number ) THEN
204     X_Chg_Request_Num := OKE_NUMBER_SEQUENCES_PKG.Next_ChgReq_Number
205                         ( X_CHG_TYPE_CODE , X_K_HEADER_ID );
206 
207     UPDATE oke_chg_requests
208     SET    Chg_Request_Num = X_Chg_Request_Num
209     WHERE  Chg_Request_ID  = X_Chg_Request_ID;
210 
211   END IF;
212 
213   Start_WF_Process( X_Last_Chg_Log_ID );
214 
215 EXCEPTION
216 WHEN OTHERS THEN
217   ROLLBACK TO SAVEPOINT OKE_CHG_REQUESTS_INSERT;
218   RAISE;
219 
220 end INSERT_ROW;
221 
222 procedure LOCK_ROW
223 ( X_CHG_REQUEST_ID              in      NUMBER
224 , X_K_HEADER_ID                 in      NUMBER
225 , X_CHG_REQUEST_NUM             in      VARCHAR2
226 , X_CHG_TYPE_CODE               in      VARCHAR2
227 , X_CHG_STATUS_CODE             in      VARCHAR2
228 , X_CHG_REASON_CODE             in      VARCHAR2
229 , X_IMPACT_FUNDING_FLAG         in      VARCHAR2
230 , X_EFFECTIVE_DATE              in      DATE
231 , X_REQUESTED_BY_PERSON_ID      in      NUMBER
232 , X_REQUESTED_DATE              in      DATE
233 , X_RECEIVE_DATE                in      DATE
234 , X_APPROVE_DATE                in      DATE
235 , X_IMPLEMENT_DATE              in      DATE
236 , X_PREV_VERSION                in      NUMBER
237 , X_NEW_VERSION                 in      NUMBER
238 , X_DESCRIPTION                 in      VARCHAR2
239 , X_CHG_TEXT                    in      VARCHAR2
240 , X_ATTRIBUTE_CATEGORY          in      VARCHAR2
241 , X_ATTRIBUTE1                  in      VARCHAR2
242 , X_ATTRIBUTE2                  in      VARCHAR2
243 , X_ATTRIBUTE3                  in      VARCHAR2
244 , X_ATTRIBUTE4                  in      VARCHAR2
245 , X_ATTRIBUTE5                  in      VARCHAR2
246 , X_ATTRIBUTE6                  in      VARCHAR2
247 , X_ATTRIBUTE7                  in      VARCHAR2
248 , X_ATTRIBUTE8                  in      VARCHAR2
249 , X_ATTRIBUTE9                  in      VARCHAR2
250 , X_ATTRIBUTE10                 in      VARCHAR2
251 , X_ATTRIBUTE11                 in      VARCHAR2
252 , X_ATTRIBUTE12                 in      VARCHAR2
253 , X_ATTRIBUTE13                 in      VARCHAR2
254 , X_ATTRIBUTE14                 in      VARCHAR2
255 , X_ATTRIBUTE15                 in      VARCHAR2
256 ) is
257   cursor c is select
258        CHG_REQUEST_ID
259      , K_HEADER_ID
260      , CHG_REQUEST_NUM
261      , CHG_TYPE_CODE
262      , CHG_STATUS_CODE
263      , CHG_REASON_CODE
264      , IMPACT_FUNDING_FLAG
265      , EFFECTIVE_DATE
266      , REQUESTED_BY_PERSON_ID
267      , REQUESTED_DATE
268      , RECEIVE_DATE
269      , APPROVE_DATE
270      , IMPLEMENT_DATE
271      , PREV_VERSION
272      , NEW_VERSION
273      , DESCRIPTION
274      , CHG_TEXT
275      , ATTRIBUTE_CATEGORY
276      , ATTRIBUTE1
277      , ATTRIBUTE2
278      , ATTRIBUTE3
279      , ATTRIBUTE4
280      , ATTRIBUTE5
281      , ATTRIBUTE6
282      , ATTRIBUTE7
283      , ATTRIBUTE8
284      , ATTRIBUTE9
285      , ATTRIBUTE10
286      , ATTRIBUTE11
287      , ATTRIBUTE12
288      , ATTRIBUTE13
289      , ATTRIBUTE14
290      , ATTRIBUTE15
291     from OKE_CHG_REQUESTS
292     where CHG_REQUEST_ID = X_CHG_REQUEST_ID
293     for update of CHG_REQUEST_ID nowait;
294   recinfo c%rowtype;
295 
296 begin
297   open c;
298   fetch c into recinfo;
299   if (c%notfound) then
300     close c;
301     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
302     app_exception.raise_exception;
303   end if;
304   close c;
305 
306   if (    (recinfo.CHG_REQUEST_ID = X_CHG_REQUEST_ID)
307       AND ((recinfo.K_HEADER_ID = X_K_HEADER_ID)
308            OR ((recinfo.K_HEADER_ID is null) AND (X_K_HEADER_ID is null)))
309       AND ((recinfo.CHG_REQUEST_NUM = X_CHG_REQUEST_NUM)
310            OR ((recinfo.CHG_REQUEST_NUM is null) AND (X_CHG_REQUEST_NUM is null)))
311       AND ((recinfo.CHG_TYPE_CODE = X_CHG_TYPE_CODE)
312            OR ((recinfo.CHG_TYPE_CODE is null) AND (X_CHG_TYPE_CODE is null)))
313       AND ((recinfo.CHG_STATUS_CODE = X_CHG_STATUS_CODE)
314            OR ((recinfo.CHG_STATUS_CODE is null) AND (X_CHG_STATUS_CODE is null)))
315       AND ((recinfo.CHG_REASON_CODE = X_CHG_REASON_CODE)
316            OR ((recinfo.CHG_REASON_CODE is null) AND (X_CHG_REASON_CODE is null)))
317       AND ((recinfo.IMPACT_FUNDING_FLAG = X_IMPACT_FUNDING_FLAG)
318            OR ((recinfo.IMPACT_FUNDING_FLAG is null) AND (X_IMPACT_FUNDING_FLAG is null)))
319       AND ((recinfo.EFFECTIVE_DATE = X_EFFECTIVE_DATE)
320            OR ((recinfo.EFFECTIVE_DATE is null) AND (X_EFFECTIVE_DATE is null)))
321       AND ((recinfo.REQUESTED_BY_PERSON_ID = X_REQUESTED_BY_PERSON_ID)
322            OR ((recinfo.REQUESTED_BY_PERSON_ID is null) AND (X_REQUESTED_BY_PERSON_ID is null)))
323       AND ((recinfo.REQUESTED_DATE = X_REQUESTED_DATE)
324            OR ((recinfo.REQUESTED_DATE is null) AND (X_REQUESTED_DATE is null)))
325       AND ((recinfo.RECEIVE_DATE = X_RECEIVE_DATE)
326            OR ((recinfo.RECEIVE_DATE is null) AND (X_RECEIVE_DATE is null)))
327       AND ((recinfo.APPROVE_DATE = X_APPROVE_DATE)
328            OR ((recinfo.APPROVE_DATE is null) AND (X_APPROVE_DATE is null)))
329       AND ((recinfo.IMPLEMENT_DATE = X_IMPLEMENT_DATE)
330            OR ((recinfo.IMPLEMENT_DATE is null) AND (X_IMPLEMENT_DATE is null)))
331       AND ((recinfo.PREV_VERSION = X_PREV_VERSION)
332            OR ((recinfo.PREV_VERSION is null) AND (X_PREV_VERSION is null)))
333       AND ((recinfo.NEW_VERSION = X_NEW_VERSION)
334            OR ((recinfo.NEW_VERSION is null) AND (X_NEW_VERSION is null)))
335       AND ((recinfo.DESCRIPTION = X_DESCRIPTION)
336            OR ((recinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
337       AND ((recinfo.CHG_TEXT = X_CHG_TEXT)
338            OR ((recinfo.CHG_TEXT is null) AND (X_CHG_TEXT is null)))
339       AND ((recinfo.ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY)
340            OR ((recinfo.ATTRIBUTE_CATEGORY is null) AND (X_ATTRIBUTE_CATEGORY is null)))
341       AND ((recinfo.ATTRIBUTE1 = X_ATTRIBUTE1)
342            OR ((recinfo.ATTRIBUTE1 is null) AND (X_ATTRIBUTE1 is null)))
343       AND ((recinfo.ATTRIBUTE2 = X_ATTRIBUTE2)
344            OR ((recinfo.ATTRIBUTE2 is null) AND (X_ATTRIBUTE2 is null)))
345       AND ((recinfo.ATTRIBUTE3 = X_ATTRIBUTE3)
346            OR ((recinfo.ATTRIBUTE3 is null) AND (X_ATTRIBUTE3 is null)))
347       AND ((recinfo.ATTRIBUTE4 = X_ATTRIBUTE4)
348            OR ((recinfo.ATTRIBUTE4 is null) AND (X_ATTRIBUTE4 is null)))
349       AND ((recinfo.ATTRIBUTE5 = X_ATTRIBUTE5)
350            OR ((recinfo.ATTRIBUTE5 is null) AND (X_ATTRIBUTE5 is null)))
351       AND ((recinfo.ATTRIBUTE6 = X_ATTRIBUTE6)
352            OR ((recinfo.ATTRIBUTE6 is null) AND (X_ATTRIBUTE6 is null)))
353       AND ((recinfo.ATTRIBUTE7 = X_ATTRIBUTE7)
354            OR ((recinfo.ATTRIBUTE7 is null) AND (X_ATTRIBUTE7 is null)))
355       AND ((recinfo.ATTRIBUTE8 = X_ATTRIBUTE8)
356            OR ((recinfo.ATTRIBUTE8 is null) AND (X_ATTRIBUTE8 is null)))
357       AND ((recinfo.ATTRIBUTE9 = X_ATTRIBUTE9)
358            OR ((recinfo.ATTRIBUTE9 is null) AND (X_ATTRIBUTE9 is null)))
359       AND ((recinfo.ATTRIBUTE10 = X_ATTRIBUTE10)
360            OR ((recinfo.ATTRIBUTE10 is null) AND (X_ATTRIBUTE10 is null)))
361       AND ((recinfo.ATTRIBUTE11 = X_ATTRIBUTE11)
362            OR ((recinfo.ATTRIBUTE11 is null) AND (X_ATTRIBUTE11 is null)))
363       AND ((recinfo.ATTRIBUTE12 = X_ATTRIBUTE12)
364            OR ((recinfo.ATTRIBUTE12 is null) AND (X_ATTRIBUTE12 is null)))
365       AND ((recinfo.ATTRIBUTE13 = X_ATTRIBUTE13)
366            OR ((recinfo.ATTRIBUTE13 is null) AND (X_ATTRIBUTE13 is null)))
367       AND ((recinfo.ATTRIBUTE14 = X_ATTRIBUTE14)
368            OR ((recinfo.ATTRIBUTE14 is null) AND (X_ATTRIBUTE14 is null)))
369       AND ((recinfo.ATTRIBUTE15 = X_ATTRIBUTE15)
370            OR ((recinfo.ATTRIBUTE15 is null) AND (X_ATTRIBUTE15 is null)))
371   ) then
372     null;
373   else
374     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
375     app_exception.raise_exception;
376   end if;
377 
378   return;
379 end LOCK_ROW;
380 
381 procedure UPDATE_ROW
382 ( X_CHG_REQUEST_ID              in      NUMBER
383 , X_LAST_UPDATE_DATE            in      DATE
384 , X_LAST_UPDATED_BY             in      NUMBER
385 , X_LAST_UPDATE_LOGIN           in      NUMBER
386 , X_K_HEADER_ID                 in      NUMBER
387 , X_CHG_REQUEST_NUM             in      VARCHAR2
388 , X_CHG_TYPE_CODE               in      VARCHAR2
389 , X_CHG_STATUS_CODE             in      VARCHAR2
390 , X_CHG_REASON_CODE             in      VARCHAR2
391 , X_IMPACT_FUNDING_FLAG         in      VARCHAR2
392 , X_EFFECTIVE_DATE              in      DATE
393 , X_REQUESTED_BY_PERSON_ID      in      NUMBER
394 , X_REQUESTED_DATE              in      DATE
395 , X_RECEIVE_DATE                in      DATE
396 , X_APPROVE_DATE                in out NOCOPY  DATE
397 , X_IMPLEMENT_DATE              in out NOCOPY  DATE
398 , X_PREV_VERSION                in      NUMBER
399 , X_NEW_VERSION                 in      NUMBER
400 , X_DESCRIPTION                 in      VARCHAR2
401 , X_CHG_TEXT                    in      VARCHAR2
402 , X_LAST_CHG_LOG_ID             in out NOCOPY  NUMBER
403 , X_ATTRIBUTE_CATEGORY          in      VARCHAR2
404 , X_ATTRIBUTE1                  in      VARCHAR2
405 , X_ATTRIBUTE2                  in      VARCHAR2
406 , X_ATTRIBUTE3                  in      VARCHAR2
407 , X_ATTRIBUTE4                  in      VARCHAR2
408 , X_ATTRIBUTE5                  in      VARCHAR2
409 , X_ATTRIBUTE6                  in      VARCHAR2
410 , X_ATTRIBUTE7                  in      VARCHAR2
411 , X_ATTRIBUTE8                  in      VARCHAR2
412 , X_ATTRIBUTE9                  in      VARCHAR2
413 , X_ATTRIBUTE10                 in      VARCHAR2
414 , X_ATTRIBUTE11                 in      VARCHAR2
415 , X_ATTRIBUTE12                 in      VARCHAR2
416 , X_ATTRIBUTE13                 in      VARCHAR2
417 , X_ATTRIBUTE14                 in      VARCHAR2
418 , X_ATTRIBUTE15                 in      VARCHAR2
419 ) is
420 
421   cursor C is
422     SELECT LAST_CHG_LOG_ID
423     ,      APPROVE_DATE
424     ,      IMPLEMENT_DATE
425     FROM oke_chg_requests
426     WHERE chg_request_id = X_CHG_REQUEST_ID
427     ;
428 
429   cursor C2 is
430     SELECT LAST_CHG_LOG_ID
431     FROM oke_chg_requests
432     WHERE chg_request_id = X_CHG_REQUEST_ID
433     ;
434 
435   Prev_Chg_Log_ID   NUMBER;
436 
437 begin
438 
439   open c2;
440   fetch c2 into Prev_Chg_Log_ID;
441   close c2;
442 
443   update OKE_CHG_REQUESTS set
444   LAST_UPDATE_DATE      	= X_LAST_UPDATE_DATE
445 , LAST_UPDATED_BY 		= X_LAST_UPDATED_BY
446 , LAST_UPDATE_LOGIN   		= X_LAST_UPDATE_LOGIN
447 , K_HEADER_ID   		= X_K_HEADER_ID
448 , CHG_REQUEST_NUM   		= X_CHG_REQUEST_NUM
449 , CHG_TYPE_CODE   		= X_CHG_TYPE_CODE
450 , CHG_STATUS_CODE   		= X_CHG_STATUS_CODE
451 , CHG_REASON_CODE   		= X_CHG_REASON_CODE
452 , IMPACT_FUNDING_FLAG  		= X_IMPACT_FUNDING_FLAG
453 , EFFECTIVE_DATE   		= X_EFFECTIVE_DATE
454 , REQUESTED_BY_PERSON_ID	= X_REQUESTED_BY_PERSON_ID
455 , REQUESTED_DATE   		= X_REQUESTED_DATE
456 , RECEIVE_DATE   		= X_RECEIVE_DATE
457 , APPROVE_DATE   		= X_APPROVE_DATE
458 , IMPLEMENT_DATE   		= X_IMPLEMENT_DATE
459 , PREV_VERSION   		= X_PREV_VERSION
460 , NEW_VERSION   		= X_NEW_VERSION
461 , DESCRIPTION   		= X_DESCRIPTION
462 , CHG_TEXT   	        	= X_CHG_TEXT
463 , ATTRIBUTE_CATEGORY		= X_ATTRIBUTE_CATEGORY
464 , ATTRIBUTE1            	= X_ATTRIBUTE1
465 , ATTRIBUTE2			= X_ATTRIBUTE2
466 , ATTRIBUTE3    		= X_ATTRIBUTE3
467 , ATTRIBUTE4        		= X_ATTRIBUTE4
468 , ATTRIBUTE5            	= X_ATTRIBUTE5
469 , ATTRIBUTE6			= X_ATTRIBUTE6
470 , ATTRIBUTE7    		= X_ATTRIBUTE7
471 , ATTRIBUTE8        		= X_ATTRIBUTE8
472 , ATTRIBUTE9            	= X_ATTRIBUTE9
473 , ATTRIBUTE10           	= X_ATTRIBUTE10
474 , ATTRIBUTE11			= X_ATTRIBUTE11
475 , ATTRIBUTE12    		= X_ATTRIBUTE12
476 , ATTRIBUTE13        		= X_ATTRIBUTE13
477 , ATTRIBUTE14           	= X_ATTRIBUTE14
478 , ATTRIBUTE15           	= X_ATTRIBUTE15
479 where CHG_REQUEST_ID 	        = X_CHG_REQUEST_ID
480 ;
481 
482   if (sql%notfound) then
483     raise no_data_found;
484   end if;
485 
486   open c;
487   fetch c into X_LAST_CHG_LOG_ID
488              , X_APPROVE_DATE
489              , X_IMPLEMENT_DATE;
490   if (c%notfound) then
491     close c;
492     raise no_data_found;
493   end if;
494   close c;
495 
496   if ( Prev_Chg_Log_ID <> X_Last_Chg_Log_ID ) then
497     Start_WF_Process( X_Last_Chg_Log_ID );
498   end if;
499 
500 end UPDATE_ROW;
501 
502 FUNCTION Validate_Chg_Request_Num
503 ( X_K_HEADER_ID		in	NUMBER,
504   X_CHG_REQ_NUM		in	VARCHAR2,
505   X_CHG_REQ_ID		in	NUMBER
506 )RETURN VARCHAR2
507 is
508    Chg_Req_Num_Type varchar2(30);
509    Rec_Count  NUMBER;
510    Chg_Req_Num_OK varchar2(1);
511 
512    CURSOR c1
513    ( C_K_Header_ID      NUMBER
514    , C_Chg_Request_Num  VARCHAR2
515    , C_Chg_Request_ID   NUMBER
516    ) IS
517      SELECT count(1)
518      FROM   oke_chg_requests
519      WHERE  K_Header_ID = C_K_Header_ID
520      AND    Chg_Request_Num = C_Chg_Request_Num
521      AND    (  C_Chg_Request_ID IS NULL
522             OR Chg_Request_ID <> C_Chg_Request_ID );
523 
524 
525 begin
526 
527     Chg_Req_Num_OK := 'T';
528 
529     select Manual_ChgReq_Num_type
530       into Chg_Req_Num_Type
531       from oke_number_options N,
532            oke_k_headers EH,
533            okc_k_headers_b CH
534      WHERE EH.K_Header_ID = X_K_HEADER_ID
535        AND CH.ID          = EH.K_Header_ID
536        AND N.K_Type_Code  = EH.K_Type_Code
537        AND N.Buy_Or_Sell = CH.Buy_Or_Sell;
538 
539       --
540       -- If Number Type is numeric, check if entry is numeric
541       --
542       IF ( Chg_Req_Num_Type = 'NUMERIC'
543          AND OKE_NUMBER_SEQUENCES_PKG.Value_Is_Numeric
544                  (X_CHG_REQ_NUM) = 'N' ) THEN
545         FND_MESSAGE.SET_NAME('OKE','OKE_NUMSEQ_INVALID_NUMERIC');
546         Chg_Req_Num_OK := 'F';
547 --        FND_MESSAGE.Error;
548 --        RAISE Form_Trigger_Failure;
549       END IF;
550 
551       --
552       -- Check if entered number is unique for given document
553       --
554       OPEN c1 ( X_K_HEADER_ID,
555                 X_CHG_REQ_NUM,
556                 X_CHG_REQ_ID);
557       FETCH c1 INTO Rec_Count;
558       CLOSE c1;
559 
560      IF Rec_Count > 0 THEN
561 
562         FND_MESSAGE.SET_NAME('OKE', 'OKE_CHGREQ_DUP_NUMBER');
563         Chg_Req_Num_OK := 'F';
564 --        FND_MESSAGE.Error;
565 --        RAISE Form_Trigger_Failure;
566 
567      END IF;
568 
569      return Chg_Req_Num_OK;
570 
571 end Validate_Chg_Request_Num;
572 
573 FUNCTION Chg_Req_Num_Type
574 (X_K_HEADER_ID		in	NUMBER
575 )RETURN VARCHAR2 is
576  Num_Type varchar2(30);
577 BEGIN
578    select Manual_ChgReq_Num_Type
579      into Num_Type
580      from OKE_NUMBER_OPTIONS N,
581           OKE_K_HEADERS EH,
582           OKC_K_HEADERS_B CH
583     WHERE EH.K_HEADER_ID = X_K_HEADER_ID
584       AND CH.ID = EH.K_HEADER_ID
585       AND N.K_TYPE_CODE = EH.K_TYPE_CODE
586       AND N.BUY_OR_SELL = CH.BUY_OR_SELL;
587 
588 return Num_Type;
589 END Chg_Req_Num_Type;
590 
591 FUNCTION Chg_Req_Num_Mode
592 (X_K_HEADER_ID		in	NUMBER
593 )RETURN VARCHAR2 is
594  Num_Mode varchar2(30);
595 BEGIN
596    select ChgReq_Num_Mode
597      into Num_Mode
598      from OKE_NUMBER_OPTIONS N,
599           OKE_K_HEADERS EH,
600           OKC_K_HEADERS_B CH
601     WHERE EH.K_HEADER_ID = X_K_HEADER_ID
602       AND CH.ID = EH.K_HEADER_ID
603       AND N.K_TYPE_CODE = EH.K_TYPE_CODE
604       AND N.BUY_OR_SELL = CH.BUY_OR_SELL;
605 
606 return Num_Mode;
607 END Chg_Req_Num_Mode;
608 
609 end OKE_CHG_REQUESTS_PKG;