DBA Data[Home] [Help]

PACKAGE BODY: APPS.WIP_MASS_LOAD_PROCESSOR

Source


1 PACKAGE BODY WIP_MASS_LOAD_PROCESSOR AS
2 /* $Header: wipmlprb.pls 120.1 2006/01/30 02:00:51 panagara noship $ */
3 
4 
5 PROCEDURE Delete_Completed_Records(P_Group_Id IN NUMBER) IS
6 
7   -- Here, we fetch all requests that were processed successfully
8   -- or that had a kanban reference. The kanban reference is a special
9   -- case: we want these rows deleted regardless of whether they
10   -- were processed correctly.
11   cursor old_requests is
12   select rowid, interface_id, header_id
13   from wip_job_schedule_interface
14   where
15     group_id = p_group_id and
16     ((process_phase = WIP_CONSTANTS.ML_COMPLETE and
17       process_status = WIP_CONSTANTS.ML_COMPLETE) or
18      (kanban_card_id is not null))
19   for update ;
20 
21 BEGIN
22 
23   for old_request in old_requests loop
24 
25     delete from wip_interface_errors
26     where interface_id = old_request.interface_id ;
27 
28     delete from wip_job_dtls_interface
29     where  group_id = p_group_id
30     and    parent_header_id = old_request.header_id;
31 
32     delete from wip_job_schedule_interface
33     where rowid = old_request.rowid ;
34 
35   end loop ;
36 
37 END Delete_Completed_Records;
38 
39 
40 PROCEDURE ML_Release(P_Wip_Entity_Id IN NUMBER,
41                     P_Organization_Id IN NUMBER,
42                     P_Class_Code IN VARCHAR2,
43                     P_New_Status_Type IN NUMBER,
44                     P_Success_Flag OUT NOCOPY NUMBER,
45                     P_Error_Msg OUT NOCOPY VARCHAR2,
46                     P_Release_Date IN Date DEFAULT NULL) IS /* 2424987 */
47 x_dummy NUMBER;
48 BEGIN
49         WIP_CHANGE_STATUS.Release
50         (P_Wip_Entity_Id,
51          P_Organization_Id,
52          NULL, NULL,
53          P_Class_Code,
54          WIP_CONSTANTS.UNRELEASED,
55          P_New_Status_Type,
56          x_dummy,
57          nvl(P_Release_Date,sysdate)); /* 2424987 */
58 
59         P_Success_Flag := 1;
60 EXCEPTION
61         WHEN OTHERS THEN
62                 P_Success_Flag := 0;
63                 P_Error_Msg := SUBSTR(FND_MESSAGE.get,1,500);
64 END ML_Release;
65 
66 PROCEDURE ML_Status_Change(P_Wip_Entity_Id IN NUMBER,
67                     P_Organization_Id IN NUMBER,
68                     P_Class_Code IN VARCHAR2,
69                     P_New_Status_Type IN NUMBER,
70                     P_Old_Status_Type IN NUMBER,
71                     P_Success_Flag OUT NOCOPY NUMBER,
72                     P_Error_Msg OUT NOCOPY VARCHAR2,
73                     P_Release_Date IN Date DEFAULT NULL) IS /* 2424987 */
74 BEGIN
75 
76         /* bug#3388658: added more combination of new and old job status
77              types instead of just P_New_Status_Type=RELEASED */
78         /* Bug 4955616. Removed WIP_CONSTANTS.CANCELLED from new status list and added to old status list*/
79         IF(P_New_Status_Type IN (WIP_CONSTANTS.RELEASED,
80                              WIP_CONSTANTS.COMP_CHRG,
81                              WIP_CONSTANTS.HOLD) AND
82            P_Old_Status_Type IN (WIP_CONSTANTS.UNRELEASED,
83                                   WIP_CONSTANTS.FAIL_BOM,
84                                   WIP_CONSTANTS.FAIL_ROUT,
85                                   WIP_CONSTANTS.PEND_SCHED,
86                                   WIP_CONSTANTS.CANCELLED)) THEN
87                 ML_Release(P_Wip_Entity_Id,
88                            P_Organization_Id,
89                            P_Class_Code,
90                            P_New_Status_Type,
91                            P_Success_Flag,
92                            P_Error_Msg,
93                            nvl(P_Release_Date,sysdate)); /* 2424987 */
94 
95         ELSIF(P_New_Status_Type = WIP_CONSTANTS.UNRELEASED) THEN
96                 WIP_UNRELEASE.Unrelease(P_Organization_Id,
97                                         P_Wip_Entity_Id,
98                                         NULL,
99                                         NULL,
100                                         1);
101 
102         END IF;
103 
104         P_Success_Flag := 1;
105 
106 EXCEPTION
107         WHEN OTHERS THEN
108                 P_Success_Flag := 0;
109                 P_Error_Msg := SUBSTR(FND_MESSAGE.get,1,500);
110 END;
111 
112 PROCEDURE Raise_Sql_Error(P_Group_Id IN NUMBER) IS
113 err_num NUMBER;
114 error_text varchar2(500);
115 BEGIN
116 
117         UPDATE WIP_JOB_SCHEDULE_INTERFACE
118         SET PROCESS_STATUS = WIP_CONSTANTS.ERROR
119         WHERE GROUP_ID = P_Group_Id
120         AND PROCESS_PHASE <> WIP_CONSTANTS.ML_COMPLETE;
121 
122         err_num := SQLCODE;
123         error_text := SUBSTR(SQLERRM, 1, 500);
124 
125         INSERT INTO WIP_INTERFACE_ERRORS(
126                         interface_id,
127                         error_type,
128                         error,
129                         last_update_date,
130                         creation_date,
131                         created_by,
132                         last_update_login,
133                         last_updated_by)
134         SELECT  interface_id, 1,
135                 Error_Text, sysdate, sysdate,
136                 created_by, last_update_login,
137                 last_updated_by
138         FROM    WIP_JOB_SCHEDULE_INTERFACE
139         WHERE GROUP_ID = P_Group_Id
140         AND PROCESS_PHASE <> WIP_CONSTANTS.ML_COMPLETE;
141 
142 END Raise_Sql_Error;
143 
144 END WIP_MASS_LOAD_PROCESSOR;