1 package body HR_NAVIGATION_UNITS_LCT_PKG as
2 /* $Header: penut01t.pkb 115.3 1999/11/05 01:37:54 pkm ship $ */
3
4 procedure INSERT_ROW (
5 X_NAV_UNIT_ID in out NUMBER,
6 X_FORM_NAME in VARCHAR2,
7 X_BLOCK_NAME in VARCHAR2,
8 X_DEFAULT_WORKFLOW_ID in NUMBER,
9 X_APPLICATION_ABBREV in VARCHAR2,
10 X_MAX_NUMBER_OF_NAV_BUTTONS in NUMBER,
11 X_DEFAULT_LABEL in VARCHAR2
12 ) is
13 cursor CSR_SEQUENCE is
14 select HR_NAVIGATION_UNITS_S.nextval
15 from dual;
16 begin
17 if X_NAV_UNIT_ID is null then
18 open CSR_SEQUENCE;
19 fetch CSR_SEQUENCE into X_NAV_UNIT_ID;
20 close CSR_SEQUENCE;
21 end if;
22 insert into HR_NAVIGATION_UNITS (
23 NAV_UNIT_ID,
24 FORM_NAME,
25 BLOCK_NAME,
26 DEFAULT_WORKFLOW_ID,
27 APPLICATION_ABBREV,
28 MAX_NUMBER_OF_NAV_BUTTONS,
29 DEFAULT_LABEL
30 ) values (
31 X_NAV_UNIT_ID,
32 X_FORM_NAME,
33 X_BLOCK_NAME,
34 X_DEFAULT_WORKFLOW_ID,
35 X_APPLICATION_ABBREV,
36 X_MAX_NUMBER_OF_NAV_BUTTONS,
37 X_DEFAULT_LABEL
38 );
39 end INSERT_ROW;
40 --
41 procedure LOCK_ROW (
42 X_NAV_UNIT_ID in NUMBER,
43 X_FORM_NAME in VARCHAR2,
44 X_BLOCK_NAME in VARCHAR2,
45 X_DEFAULT_WORKFLOW_ID in NUMBER,
46 X_APPLICATION_ABBREV in VARCHAR2,
47 X_MAX_NUMBER_OF_NAV_BUTTONS in NUMBER
48 ) is
49 cursor CSR_NAVIGATION_UNIT (
50 X_NAV_UNIT_ID in NUMBER
51 ) is
52 select FORM_NAME,
53 BLOCK_NAME,
54 DEFAULT_WORKFLOW_ID,
55 APPLICATION_ABBREV,
56 MAX_NUMBER_OF_NAV_BUTTONS
57 from HR_NAVIGATION_UNITS
58 where NAV_UNIT_ID = X_NAV_UNIT_ID
59 for update of NAV_UNIT_ID nowait;
60 RECINFO CSR_NAVIGATION_UNIT%rowtype;
61 begin
62 open CSR_NAVIGATION_UNIT(X_NAV_UNIT_ID);
63 fetch CSR_NAVIGATION_UNIT into RECINFO;
64 if (CSR_NAVIGATION_UNIT%notfound) then
65 close CSR_NAVIGATION_UNIT;
66 fnd_message.set_name('FND','FORM_RECORD_DELETED');
67 app_exception.raise_exception;
68 end if;
69 close CSR_NAVIGATION_UNIT;
70 if ( ( (RECINFO.FORM_NAME = X_FORM_NAME)
71 or (RECINFO.FORM_NAME is null and X_FORM_NAME is null))
72 and ( (RECINFO.BLOCK_NAME = X_BLOCK_NAME)
73 or (RECINFO.BLOCK_NAME is null and X_BLOCK_NAME is null))
74 and ( (RECINFO.DEFAULT_WORKFLOW_ID = X_DEFAULT_WORKFLOW_ID)
75 or (RECINFO.DEFAULT_WORKFLOW_ID is null and X_DEFAULT_WORKFLOW_ID is null))
76 and ( (RECINFO.APPLICATION_ABBREV = X_APPLICATION_ABBREV)
77 or (RECINFO.APPLICATION_ABBREV is null and X_APPLICATION_ABBREV is null))
78 and ( (RECINFO.MAX_NUMBER_OF_NAV_BUTTONS = X_MAX_NUMBER_OF_NAV_BUTTONS)
79 or (RECINFO.MAX_NUMBER_OF_NAV_BUTTONS is null and X_MAX_NUMBER_OF_NAV_BUTTONS is null))
80 ) then
81 null;
82 else
83 fnd_message.set_name('FND','FORM_RECORD_CHANGED');
84 app_exception.raise_exception;
85 end if;
86 end LOCK_ROW;
87 --
88 procedure UPDATE_ROW (
89 X_NAV_UNIT_ID in NUMBER,
90 X_FORM_NAME in VARCHAR2,
91 X_BLOCK_NAME in VARCHAR2,
92 X_DEFAULT_WORKFLOW_ID in NUMBER,
93 X_APPLICATION_ABBREV in VARCHAR2,
94 X_MAX_NUMBER_OF_NAV_BUTTONS in NUMBER,
95 X_DEFAULT_LABEL in VARCHAR2
96 ) is
97 begin
98 update HR_NAVIGATION_UNITS set
99 FORM_NAME = X_FORM_NAME,
100 BLOCK_NAME = X_BLOCK_NAME,
101 DEFAULT_WORKFLOW_ID = X_DEFAULT_WORKFLOW_ID,
102 APPLICATION_ABBREV = X_APPLICATION_ABBREV,
103 MAX_NUMBER_OF_NAV_BUTTONS = X_MAX_NUMBER_OF_NAV_BUTTONS,
104 DEFAULT_LABEL = X_DEFAULT_LABEL
105 where NAV_UNIT_ID = X_NAV_UNIT_ID;
106 if (sql%notfound) then
107 raise no_data_found;
108 end if;
109 end UPDATE_ROW;
110 --
111 procedure DELETE_ROW (
112 X_NAV_UNIT_ID in NUMBER
113 ) is
114 begin
115 delete from HR_NAVIGATION_UNITS
116 where NAV_UNIT_ID = X_NAV_UNIT_ID;
117 if (sql%notfound) then
118 raise no_data_found;
119 end if;
120 end DELETE_ROW;
121 --
122 procedure LOAD_ROW (
123 X_FORM_NAME in VARCHAR2,
124 X_BLOCK_NAME in VARCHAR2,
125 X_DEFAULT_WORKFLOW_NAME in VARCHAR2,
126 X_APPLICATION_ABBREV in VARCHAR2,
127 X_MAX_NUMBER_OF_NAV_BUTTONS in NUMBER,
128 X_DEFAULT_LABEL in VARCHAR2,
129 X_OWNER in VARCHAR2
130 ) is
131 cursor CSR_NAVIGATION_UNIT (
132 X_FORM_NAME in VARCHAR2,
133 X_BLOCK_NAME in VARCHAR2
134 ) is
135 select NAV_UNIT_ID
136 from HR_NAVIGATION_UNITS
137 where FORM_NAME = X_FORM_NAME
138 and ( (BLOCK_NAME = X_BLOCK_NAME)
139 or (BLOCK_NAME is null and X_BLOCK_NAME is null));
140 cursor CSR_WORKFLOW (
141 X_WORKFLOW_NAME in VARCHAR2
142 ) is
143 select WORKFLOW_ID
144 from HR_WORKFLOWS
145 where WORKFLOW_NAME = X_WORKFLOW_NAME;
146 X_NAV_UNIT_ID NUMBER;
147 X_DEFAULT_WORKFLOW_ID NUMBER;
148 begin
149 open CSR_NAVIGATION_UNIT(X_FORM_NAME,X_BLOCK_NAME);
150 fetch CSR_NAVIGATION_UNIT into X_NAV_UNIT_ID;
151 close CSR_NAVIGATION_UNIT;
152 open CSR_WORKFLOW(X_DEFAULT_WORKFLOW_NAME);
153 fetch CSR_WORKFLOW into X_DEFAULT_WORKFLOW_ID;
154 close CSR_WORKFLOW;
155 begin
156 UPDATE_ROW (
157 X_NAV_UNIT_ID,
158 X_FORM_NAME,
159 X_BLOCK_NAME,
160 X_DEFAULT_WORKFLOW_ID,
161 X_APPLICATION_ABBREV,
162 X_MAX_NUMBER_OF_NAV_BUTTONS,
163 X_DEFAULT_LABEL
164 );
165 exception
166 when no_data_found then
167 INSERT_ROW (
168 X_NAV_UNIT_ID,
169 X_FORM_NAME,
170 X_BLOCK_NAME,
171 X_DEFAULT_WORKFLOW_ID,
172 X_APPLICATION_ABBREV,
173 X_MAX_NUMBER_OF_NAV_BUTTONS,
174 X_DEFAULT_LABEL
175 );
176 end;
177 end LOAD_ROW;
178 --
179 procedure TRANSLATE_ROW (
180 X_FORM_NAME in VARCHAR2,
181 X_BLOCK_NAME in VARCHAR2,
182 X_DEFAULT_LABEL in VARCHAR2,
183 X_OWNER in VARCHAR2
184 ) is
185 begin
186 update HR_NAVIGATION_UNITS set
187 DEFAULT_LABEL = X_DEFAULT_LABEL
188 where FORM_NAME = X_FORM_NAME
189 and ( (BLOCK_NAME = X_BLOCK_NAME)
190 or (BLOCK_NAME is null and X_BLOCK_NAME is null))
191 and userenv('LANG') = (select LANGUAGE_CODE
192 from FND_LANGUAGES
193 where INSTALLED_FLAG = 'B');
194 end TRANSLATE_ROW;
195 --
196 end HR_NAVIGATION_UNITS_LCT_PKG;