1 package body OKE_WORKFLOWS_PKG as
2 /* $Header: OKEOWXXB.pls 115.0 2003/10/22 22:23:27 ybchen noship $ */
3 procedure INSERT_ROW (
4 X_ROWID in out NOCOPY VARCHAR2
5 , X_SOURCE_CODE in VARCHAR2
6 , X_USAGE_CODE in VARCHAR2
7 , X_CREATION_DATE in DATE
8 , X_CREATED_BY in NUMBER
9 , X_LAST_UPDATE_DATE in DATE
10 , X_LAST_UPDATED_BY in NUMBER
11 , X_LAST_UPDATE_LOGIN in NUMBER
12 , X_WF_ITEM_TYPE in VARCHAR2
13 , X_WF_PROCESS in VARCHAR2
14 ) is
15 cursor C is select ROWID from OKE_WORKFLOWS
16 where SOURCE_CODE = X_SOURCE_CODE
17 and USAGE_CODE = X_USAGE_CODE
18 ;
19 begin
20 insert into OKE_WORKFLOWS (
21 SOURCE_CODE
22 , USAGE_CODE
23 , CREATION_DATE
24 , CREATED_BY
25 , LAST_UPDATE_DATE
26 , LAST_UPDATED_BY
27 , LAST_UPDATE_LOGIN
28 , WF_ITEM_TYPE
29 , WF_PROCESS
30 ) values (
31 X_SOURCE_CODE
32 , X_USAGE_CODE
33 , X_CREATION_DATE
34 , X_CREATED_BY
35 , X_LAST_UPDATE_DATE
36 , X_LAST_UPDATED_BY
37 , X_LAST_UPDATE_LOGIN
38 , X_WF_ITEM_TYPE
39 , X_WF_PROCESS
40 );
41
42 open c;
43 fetch c into X_ROWID;
44 if (c%notfound) then
45 close c;
46 raise no_data_found;
47 end if;
48 close c;
49
50 end INSERT_ROW;
51
52 procedure LOCK_ROW (
53 X_SOURCE_CODE in VARCHAR2
54 , X_USAGE_CODE in VARCHAR2
55 , X_WF_ITEM_TYPE in VARCHAR2
56 , X_WF_PROCESS in VARCHAR2
57 ) is
58 cursor c is select
59 SOURCE_CODE
60 , USAGE_CODE
61 , WF_ITEM_TYPE
62 , WF_PROCESS
63 from OKE_WORKFLOWS
64 where SOURCE_CODE = X_SOURCE_CODE
65 and USAGE_CODE = X_USAGE_CODE
66 for update nowait;
67 recinfo c%rowtype;
68
69 begin
70 open c;
71 fetch c into recinfo;
72 if (c%notfound) then
73 close c;
74 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
75 app_exception.raise_exception;
76 end if;
77 close c;
78
79 if ( (recinfo.USAGE_CODE = X_USAGE_CODE AND recinfo.SOURCE_CODE =
80 X_SOURCE_CODE)
81 AND ((recinfo.WF_ITEM_TYPE = X_WF_ITEM_TYPE)
82 OR ((recinfo.WF_ITEM_TYPE is null) AND (X_WF_ITEM_TYPE is null)))
83 AND ((recinfo.WF_PROCESS = X_WF_PROCESS)
84 OR ((recinfo.WF_PROCESS is null) AND (X_WF_PROCESS is null)))
85 ) then
86 null;
87 else
88 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
89 app_exception.raise_exception;
90 end if;
91
92 return;
93 end LOCK_ROW;
94
95 procedure UPDATE_ROW (
96 X_SOURCE_CODE in VARCHAR2
97 , X_USAGE_CODE in VARCHAR2
98 , X_LAST_UPDATE_DATE in DATE
99 , X_LAST_UPDATED_BY in NUMBER
100 , X_LAST_UPDATE_LOGIN in NUMBER
101 , X_WF_ITEM_TYPE in VARCHAR2
102 , X_WF_PROCESS in VARCHAR2
103 ) is
104 begin
105 update OKE_WORKFLOWS set
106 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE
107 , LAST_UPDATED_BY = X_LAST_UPDATED_BY
108 , LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
109 , WF_ITEM_TYPE = X_WF_ITEM_TYPE
110 , WF_PROCESS = X_WF_PROCESS
111 where SOURCE_CODE = X_SOURCE_CODE
112 and USAGE_CODE = X_USAGE_CODE
113 ;
114
115 if (sql%notfound) then
116 raise no_data_found;
117 end if;
118
119 end UPDATE_ROW;
120
121 end OKE_WORKFLOWS_PKG;