DBA Data[Home] [Help]

PACKAGE BODY: APPS.AME_ACTIONS_API

Source


1 PACKAGE BODY AME_ACTIONS_API AS
2 /* $Header: ameanapi.pkb 120.8.12000000.2 2007/04/19 08:04:56 prasashe noship $ */
3 procedure OWNER_TO_WHO (
4   X_OWNER in VARCHAR2,
5   X_CREATED_BY out nocopy NUMBER,
6   X_LAST_UPDATED_BY out nocopy NUMBER,
7   X_LAST_UPDATE_LOGIN out nocopy NUMBER
8 ) is
9 begin
10   X_CREATED_BY := AME_SEED_UTILITY.OWNER_AS_INTEGER(X_OWNER);
11   X_LAST_UPDATED_BY := AME_SEED_UTILITY.OWNER_AS_INTEGER(X_OWNER);
12   X_LAST_UPDATE_LOGIN := 0;
13 end OWNER_TO_WHO;
14 procedure KEY_TO_IDS (
15   X_ACTION_TYPE_NAME in VARCHAR2,
16   X_PARAMETER_TWO    in VARCHAR2,
17   X_PARAMETER        in out nocopy VARCHAR2,
18   X_ACTION_ID        out nocopy NUMBER,
19   X_ACTION_ROWID     out nocopy VARCHAR2,
20   X_ACTION_TYPE_ID   out nocopy NUMBER,
21   X_CURRENT_OWNER    out nocopy NUMBER,
22   X_CURRENT_LAST_UPDATE_DATE out nocopy VARCHAR2,
23   X_CURRENT_OVN      out nocopy NUMBER
24 ) is
25   cursor CSR_GET_ACTION_TYPE_ID
26   (
27     X_ACTION_TYPE_NAME in VARCHAR2
28   ) is
29    select ACTION_TYPE_ID
30    from   AME_ACTION_TYPES
31    where  NAME = X_ACTION_TYPE_NAME
32 	    and sysdate between START_DATE
33 			 and nvl(END_DATE  - (1/86400), sysdate);
34   cursor CSR_GET_CURRENT_ACTION
35   (
36     X_ACTION_TYPE_ID in NUMBER,
37     X_PARAMETER      in VARCHAR2,
38     X_PARAMETER_TWO  in VARCHAR2
39   ) is select ACTION_ID, ROWID,
40           LAST_UPDATED_BY,
41           to_char(LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
42           nvl(OBJECT_VERSION_NUMBER,1)
43      from AME_ACTIONS
44     where ACTION_TYPE_ID = X_ACTION_TYPE_ID
45       and nvl(PARAMETER,'NULL')      = nvl(X_PARAMETER,'NULL')
46       and nvl(PARAMETER_TWO,'NULL')  = nvl(X_PARAMETER_TWO,'NULL')
47 	    and sysdate between START_DATE
48 			 and nvl(END_DATE  - (1/86400), sysdate)
49     order by LAST_UPDATE_DATE desc;
50   cursor CSR_GET_APPROVAL_GROUP_ID
51   (
52     X_APPROVAL_GROUP_NAME in VARCHAR2
53   ) is
54    select APPROVAL_GROUP_ID
55    from   AME_APPROVAL_GROUPS
56    where  NAME = X_APPROVAL_GROUP_NAME
57    and    sysdate between START_DATE
58                   and nvl(end_date - (1/86400), sysdate);
59   L_PARAMETER   NUMBER;
60 begin
61   X_CURRENT_OVN := 1;
62   open CSR_GET_ACTION_TYPE_ID (
63     X_ACTION_TYPE_NAME
64   );
65   fetch CSR_GET_ACTION_TYPE_ID into X_ACTION_TYPE_ID;
66     if (CSR_GET_ACTION_TYPE_ID%notfound) then
67       X_ACTION_TYPE_ID := null;
68     end if;
69   close CSR_GET_ACTION_TYPE_ID;
70 
71   if X_ACTION_TYPE_ID is not null
72   then
73   --
74   -- Determine if the action type is one that is based on groups.
75   --
76   if X_ACTION_TYPE_NAME in ('approval-group chain of authority'
77                            ,'pre-chain-of-authority approvals'
78                            ,'post-chain-of-authority approvals'
79                            ) then
80     open CSR_GET_APPROVAL_GROUP_ID(X_PARAMETER);
81     fetch CSR_GET_APPROVAL_GROUP_ID into L_PARAMETER;
82     if (CSR_GET_APPROVAL_GROUP_ID%found) then
83       X_PARAMETER := TO_CHAR(L_PARAMETER);
84     else
85       X_PARAMETER := null;
86     end if;
87     close CSR_GET_APPROVAL_GROUP_ID;
88   end if;
89   open CSR_GET_CURRENT_ACTION (
90     X_ACTION_TYPE_ID,
91     X_PARAMETER,
92     X_PARAMETER_TWO
93   );
94   fetch CSR_GET_CURRENT_ACTION into X_ACTION_ID, X_ACTION_ROWID,
95                       X_CURRENT_OWNER, X_CURRENT_LAST_UPDATE_DATE,X_CURRENT_OVN;
96     if (CSR_GET_CURRENT_ACTION%notfound) then
97       X_ACTION_ROWID := null;
98     end if;
99   close CSR_GET_CURRENT_ACTION;
100   end if;
101 end KEY_TO_IDS;
102 function DO_UPDATE_INSERT(X_OWNER in NUMBER,
103                    X_CURRENT_OWNER in NUMBER,
104                    X_LAST_UPDATE_DATE in VARCHAR2,
105                    X_CURRENT_LAST_UPDATE_DATE in VARCHAR2,
106                    X_CUSTOM_MODE in VARCHAR2 default null)
107 return boolean as
108 begin
109   if X_CUSTOM_MODE = 'FORCE' then
110     return true;
111   end if;
112   return AME_SEED_UTILITY.MERGE_ROW_TEST
113     (X_OWNER                     => X_OWNER
114     ,X_CURRENT_OWNER             => X_CURRENT_OWNER
115     ,X_LAST_UPDATE_DATE          => X_LAST_UPDATE_DATE
116     ,X_CURRENT_LAST_UPDATE_DATE  => X_CURRENT_LAST_UPDATE_DATE
117     ,X_CUSTOM_MODE               => X_CUSTOM_MODE
118     );
119 end DO_UPDATE_INSERT;
120 function DO_TL_UPDATE_INSERT(X_OWNER in NUMBER,
121                    X_CURRENT_OWNER in NUMBER,
122                    X_LAST_UPDATE_DATE in VARCHAR2,
123                    X_CURRENT_LAST_UPDATE_DATE in VARCHAR2,
124                    X_CREATED_BY in VARCHAR2,
125                    X_CUSTOM_MODE in VARCHAR2 default null)
126 return boolean as
127 begin
128   if X_CUSTOM_MODE = 'FORCE' then
129     return true;
130   end if;
131   if AME_SEED_UTILITY.IS_SEED_USER(X_CREATED_BY) then
132     return true;
133   else
134     return AME_SEED_UTILITY.TL_MERGE_ROW_TEST
135       (X_OWNER                     => X_OWNER
136       ,X_CURRENT_OWNER             => X_CURRENT_OWNER
137       ,X_LAST_UPDATE_DATE          => X_LAST_UPDATE_DATE
138       ,X_CURRENT_LAST_UPDATE_DATE  => X_CURRENT_LAST_UPDATE_DATE
139       ,X_CUSTOM_MODE               => X_CUSTOM_MODE
140       );
141   end if;
142   return(false);
143 end DO_TL_UPDATE_INSERT;
144 procedure INSERT_ROW (
145  X_ACTION_ID                       in NUMBER,
146  X_ACTION_TYPE_ID                  in NUMBER,
147  X_PARAMETER                       in VARCHAR2,
148  X_PARAMETER_TWO                   in VARCHAR2,
149  X_CREATED_BY                      in NUMBER,
150  X_CREATION_DATE                   in DATE,
151  X_LAST_UPDATED_BY                 in NUMBER,
152  X_LAST_UPDATE_DATE                in DATE,
153  X_LAST_UPDATE_LOGIN               in NUMBER,
154  X_START_DATE                      in DATE,
155  X_DESCRIPTION                     in VARCHAR2,
156  X_OBJECT_VERSION_NUMBER           in NUMBER
157  )
158  is
159 begin
160   insert into AME_ACTIONS
161   (
162    ACTION_ID,
163    ACTION_TYPE_ID,
164    PARAMETER,
165    PARAMETER_TWO,
166    CREATED_BY,
167    CREATION_DATE,
168    LAST_UPDATED_BY,
169    LAST_UPDATE_DATE,
170    LAST_UPDATE_LOGIN,
171    START_DATE,
172    END_DATE,
173    DESCRIPTION,
174    OBJECT_VERSION_NUMBER
175   ) values (
176    X_ACTION_ID,
177    X_ACTION_TYPE_ID,
178    X_PARAMETER,
179    X_PARAMETER_TWO,
180    X_CREATED_BY,
181    X_CREATION_DATE,
182    X_LAST_UPDATED_BY,
183    X_LAST_UPDATE_DATE,
184    X_LAST_UPDATE_LOGIN,
185    X_START_DATE,
186    AME_SEED_UTILITY.GET_DEFAULT_END_DATE,
187    X_DESCRIPTION,
188    X_OBJECT_VERSION_NUMBER);
189 end INSERT_ROW;
190 
191 procedure INSERT_TL_ROW (
192   X_ACTION_ID in NUMBER,
193   X_DESCRIPTION in VARCHAR2,
194   X_CREATED_BY in NUMBER,
195   X_CREATION_DATE in DATE,
196   X_LAST_UPDATED_BY in NUMBER,
197   X_LAST_UPDATE_DATE in DATE,
198   X_LAST_UPDATE_LOGIN in NUMBER) is
199  begin
200     if not AME_SEED_UTILITY.MLS_ENABLED then
201       return;
202     end if;
203   insert into AME_ACTIONS_TL
204     (ACTION_ID
205     ,DESCRIPTION
206     ,CREATED_BY
207     ,CREATION_DATE
208     ,LAST_UPDATED_BY
209     ,LAST_UPDATE_DATE
210     ,LAST_UPDATE_LOGIN
211     ,LANGUAGE
212     ,SOURCE_LANG
213     ) select X_ACTION_ID,
214              X_DESCRIPTION,
215              X_CREATED_BY,
216              X_CREATION_DATE,
217              X_LAST_UPDATED_BY,
218              X_LAST_UPDATE_DATE,
219              X_LAST_UPDATE_LOGIN,
220              L.LANGUAGE_CODE,
221              userenv('LANG')
222         from FND_LANGUAGES L
223        where L.INSTALLED_FLAG in ('I', 'B')
224          and not exists (select null
225                            from AME_ACTIONS_TL T
226                           where T.ACTION_ID = X_ACTION_ID
227                             and T.LANGUAGE = L.LANGUAGE_CODE);
228 END insert_tl_row;
229 
230 procedure UPDATE_TL_ROW (
231   X_ACTION_ID in NUMBER,
232   X_DESCRIPTION in VARCHAR2,
233   X_CREATED_BY in NUMBER,
234   X_CREATION_DATE in DATE,
235   X_LAST_UPDATED_BY in NUMBER,
236   X_LAST_UPDATE_DATE in DATE,
237   X_LAST_UPDATE_LOGIN in NUMBER,
238   X_CUSTOM_MODE in VARCHAR2) is
239   X_CURRENT_OWNER  NUMBER;
240   X_CURRENT_LAST_UPDATE_DATE DATE;
241   begin
242     if not AME_SEED_UTILITY.MLS_ENABLED then
243       return;
244     end if;
245 
246     select LAST_UPDATED_BY,
247            LAST_UPDATE_DATE
248        into X_CURRENT_OWNER,
249             X_CURRENT_LAST_UPDATE_DATE
250        FROM AME_ACTIONS_TL
251        WHERE ACTION_ID = X_ACTION_ID
252        AND LANGUAGE = USERENV('LANG');
253 
254    if DO_UPDATE_INSERT
255      (X_LAST_UPDATED_BY
256      ,X_CURRENT_OWNER
257      ,AME_SEED_UTILITY.DATE_AS_STRING(X_LAST_UPDATE_DATE)
258      ,AME_SEED_UTILITY.DATE_AS_STRING(X_CURRENT_LAST_UPDATE_DATE)
259      ,X_CUSTOM_MODE) then
260       update AME_ACTIONS_TL
261          set DESCRIPTION = nvl(X_DESCRIPTION,DESCRIPTION),
262              SOURCE_LANG = userenv('LANG'),
263              LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
264              LAST_UPDATED_BY = X_LAST_UPDATED_BY,
265              LAST_UPDATE_LOGIN = 0
266        where ACTION_ID = X_ACTION_ID
267          and userenv('LANG') in (LANGUAGE,SOURCE_LANG);
268    end if;
269 exception
270   when no_data_found then
271     null;
272 end UPDATE_TL_ROW;
273 
274 procedure UPDATE_ROW (
275  X_ACTION_ROWID             in VARCHAR2,
276  X_END_DATE                 in DATE)
277  is
278 begin
279   update AME_ACTIONS set
280    END_DATE            = X_END_DATE
281   where ROWID          = X_ACTION_ROWID;
282 end UPDATE_ROW;
283 
284 procedure FORCE_UPDATE_ROW (
285   X_ROWID                      in VARCHAR2,
286   X_DESCRIPTION                in VARCHAR2,
287   X_CREATED_BY                 in NUMBER,
288   X_CREATION_DATE              in DATE,
289   X_LAST_UPDATED_BY            in NUMBER,
290   X_LAST_UPDATE_DATE           in DATE,
291   X_LAST_UPDATE_LOGIN          in NUMBER,
292   X_START_DATE                 in DATE,
293   X_END_DATE                   in DATE,
294   X_OBJECT_VERSION_NUMBER      in NUMBER
295 ) is
296 begin
297   update AME_ACTIONS
298      set DESCRIPTION = X_DESCRIPTION,
299          CREATED_BY = X_CREATED_BY,
300          CREATION_DATE = X_CREATION_DATE,
301          LAST_UPDATED_BY = X_LAST_UPDATED_BY,
302          LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
303          LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
304          START_DATE = X_START_DATE,
305          END_DATE = X_END_DATE,
306          OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER
307    where ROWID = X_ROWID;
308 end FORCE_UPDATE_ROW;
309 
310 procedure DELETE_ROW (
311   X_ACTION_ID      in NUMBER
312 ) is
313 begin
314   if AME_SEED_UTILITY.MLS_ENABLED then
315     delete from AME_ACTIONS_TL
316     where ACTION_ID = X_ACTION_ID;
317   end if;
318   delete from AME_ACTIONS
319   where ACTION_ID =   X_ACTION_ID;
320   if (sql%notfound) then
321     raise no_data_found;
322   end if;
323 end DELETE_ROW;
324 procedure LOAD_ROW (
325           X_ACTION_TYPE_NAME in VARCHAR2,
326           X_PARAMETER        in VARCHAR2,
327           X_PARAMETER_TWO    in VARCHAR2,
328           X_DESCRIPTION      in VARCHAR2,
329           X_OWNER            in VARCHAR2,
330           X_LAST_UPDATE_DATE in VARCHAR2,
331           X_CUSTOM_MODE      in VARCHAR2
332 )
333 is
334   X_ACTION_ID NUMBER;
335   X_ACTION_ROWID ROWID;
336   X_ACTION_TYPE_ID NUMBER;
337   X_CREATED_BY NUMBER;
338   X_CURRENT_LAST_UPDATE_DATE VARCHAR2(19);
339   X_CURRENT_OWNER NUMBER;
340   X_LAST_UPDATED_BY NUMBER;
341   X_LAST_UPDATE_LOGIN NUMBER;
342   L_PARAMETER VARCHAR2(320);
343   X_CURRENT_OVN NUMBER;
344 begin
345 -- retrieve information for the current row
346   L_PARAMETER := X_PARAMETER;
347   KEY_TO_IDS (
348   X_ACTION_TYPE_NAME,
349   X_PARAMETER_TWO,
350   L_PARAMETER,
351   X_ACTION_ID,
352   X_ACTION_ROWID,
353   X_ACTION_TYPE_ID,
354   X_CURRENT_OWNER,
355   X_CURRENT_LAST_UPDATE_DATE,
356   X_CURRENT_OVN
357   );
358 -- obtain who column details
359   OWNER_TO_WHO (
360     X_OWNER,
361     X_CREATED_BY,
362     X_LAST_UPDATED_BY,
363     X_LAST_UPDATE_LOGIN
364   );
365    begin
366 -- the current row was not found insert a new row
367    if X_ACTION_TYPE_ID is not null then
368      if X_ACTION_ROWID is null then
369        if X_ACTION_ID is null then
370          select ame_actions_s.nextval
371          into X_ACTION_ID
372          from dual;
373        end if;
374        INSERT_ROW (
375          X_ACTION_ID,
376          X_ACTION_TYPE_ID,
377          L_PARAMETER,
378          X_PARAMETER_TWO,
379          X_CREATED_BY,
380          to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
381          X_LAST_UPDATED_BY,
382          to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
383          X_LAST_UPDATE_LOGIN,
384          to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
385          X_DESCRIPTION,
386          1
387          );
388        INSERT_TL_ROW
389        (
390        X_ACTION_ID,
391        X_DESCRIPTION,
392        X_CREATED_BY,
393        to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
394        X_LAST_UPDATED_BY,
395        to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
396        X_LAST_UPDATE_LOGIN
397        );
398      else
399        if X_CUSTOM_MODE = 'FORCE' then
400          FORCE_UPDATE_ROW
401            (
402            X_ACTION_ROWID,
403            X_DESCRIPTION,
404            X_CREATED_BY,
405            to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
406            X_LAST_UPDATED_BY,
407            to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
408            X_LAST_UPDATE_LOGIN,
412            );
409            to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
410            AME_SEED_UTILITY.GET_DEFAULT_END_DATE,
411            X_CURRENT_OVN + 1
413          UPDATE_TL_ROW
414            (
415            X_ACTION_ID,
416            X_DESCRIPTION,
417            X_CREATED_BY,
418            to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
419            X_LAST_UPDATED_BY,
420            to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
421            X_LAST_UPDATE_LOGIN,
422            X_CUSTOM_MODE
423            );
424        else
425 -- the current row was found end date the current row
426 -- insert a row with the same action type id
427          if DO_UPDATE_INSERT(AME_SEED_UTILITY.OWNER_AS_INTEGER(X_OWNER),
428                       X_CURRENT_OWNER,
429                       X_LAST_UPDATE_DATE,
430                       X_CURRENT_LAST_UPDATE_DATE) then
431            UPDATE_ROW (
432              X_ACTION_ROWID,
433              to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS')-(1/86400));
434            INSERT_ROW (
435              X_ACTION_ID,
436              X_ACTION_TYPE_ID,
437              L_PARAMETER,
438              X_PARAMETER_TWO,
439              X_CREATED_BY,
440              to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
441              X_LAST_UPDATED_BY,
442              to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
443              X_LAST_UPDATE_LOGIN,
444              to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
445              X_DESCRIPTION,
446              X_CURRENT_OVN + 1
447              );
448            UPDATE_TL_ROW
449              (
450              X_ACTION_ID,
451              X_DESCRIPTION,
452              X_CREATED_BY,
453              to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
454              X_LAST_UPDATED_BY,
455              to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
456              X_LAST_UPDATE_LOGIN,
457              X_CUSTOM_MODE
458              );
459          end if;
460        end if;
461      end if;
462    else
463 -- nothing was found do not process
464      null;
465    end if;
466   end;
467 exception
468     when others then
469     ame_util.runtimeException('ame_actions_usages_api',
470                          'load_row',
471                          sqlcode,
472                          sqlerrm);
473         raise;
474 end LOAD_ROW;
475 
476 procedure LOAD_ROW (
477           X_ACTION_TYPE_NAME in VARCHAR2,
478           X_PARAMETER        in VARCHAR2,
479           X_DESCRIPTION      in VARCHAR2,
480           X_OWNER            in VARCHAR2,
481           X_LAST_UPDATE_DATE in VARCHAR2,
482           X_CUSTOM_MODE      in VARCHAR2
483 )
484 is
485 begin
486 null;
487 end LOAD_ROW;
488 
489 procedure TRANSLATE_ROW (
490   X_ACTION_TYPE_NAME          in VARCHAR2,
491   X_PARAMETER                 in VARCHAR2,
492   X_PARAMETER_TWO             in VARCHAR2,
493   X_DESCRIPTION               in VARCHAR2,
494   X_OWNER                     in VARCHAR2,
495   X_LAST_UPDATE_DATE          in VARCHAR2,
496   X_CUSTOM_MODE               in VARCHAR2) as
497   X_CURRENT_OWNER            NUMBER;
498   X_CURRENT_LAST_UPDATE_DATE varchar2(20);
499   X_CREATED_BY               varchar2(100);
500   X_ACTION_ID           number;
501   X_APPROVAL_GROUP_ID   number;
502   X_TEMP_PARAMETER      varchar2(320);
503   begin
504     if not AME_SEED_UTILITY.MLS_ENABLED then
505       return;
506     end if;
507     begin
508       X_TEMP_PARAMETER := X_PARAMETER;
509       if X_ACTION_TYPE_NAME  in (ame_util.groupChainApprovalTypeName
510                                 ,ame_util.preApprovalTypeName
511                                 ,ame_util.postApprovalTypeName) then
512         begin
513           select approval_group_id
514             into X_APPROVAL_GROUP_ID
515             from ame_approval_groups
516            where name = X_PARAMETER
517              and sysdate between start_date and nvl(end_date, sysdate);
518         X_TEMP_PARAMETER := to_char(X_APPROVAL_GROUP_ID);
519         exception
520           when no_data_found then
521             null;
522         end;
523       end if;
524       select ACTTL.LAST_UPDATED_BY,
525              AME_SEED_UTILITY.DATE_AS_STRING(ACTTL.LAST_UPDATE_DATE),
526              AME_SEED_UTILITY.OWNER_AS_STRING(ACTTL.CREATED_BY),
527              ACT.ACTION_ID
528         into X_CURRENT_OWNER,
529              X_CURRENT_LAST_UPDATE_DATE,
530              X_CREATED_BY,
531              X_ACTION_ID
532         from AME_ACTIONS_TL ACTTL,
533              AME_ACTIONS ACT,
534              AME_ACTION_TYPES AAT
535        where AAT.NAME = X_ACTION_TYPE_NAME
536          and AAT.ACTION_TYPE_ID = ACT.ACTION_TYPE_ID
537          and nvl(ACT.PARAMETER,'NULL') = nvl(X_TEMP_PARAMETER,'NULL')
538          and nvl(ACT.PARAMETER_TWO,'NULL') = nvl(X_PARAMETER_TWO,'NULL')
539          and sysdate between AAT.START_DATE and nvl(AAT.END_DATE - (1/86400),sysdate)
540          and sysdate between ACT.START_DATE and nvl(ACT.END_DATE - (1/86400),sysdate)
541          and ACTTL.ACTION_ID = ACT.ACTION_ID
545                   ACT.ACTION_ID = (
542          and ACTTL.LANGUAGE = userenv('LANG')
543          and (X_ACTION_TYPE_NAME <> ame_util.finalAuthorityTypeName
544               or (X_ACTION_TYPE_NAME = ame_util.finalAuthorityTypeName and
546                                    select MIN(ACTION_ID)
547                                      from ame_actions aac,ame_action_types aaty
548                                     where aac.action_type_id = aaty.action_type_id
549                                       and aaty.name = X_ACTION_TYPE_NAME
550                                       and sysdate between aac.start_date
551                                                       and nvl(aac.end_date,sysdate)
552                                       and sysdate between aaty.start_date
553                                                       and nvl(aaty.end_date,sysdate)
554                                   )
555                  )
556              );
557       if  DO_TL_UPDATE_INSERT
558           (X_OWNER                     => AME_SEED_UTILITY.OWNER_AS_INTEGER(X_OWNER),
559            X_CURRENT_OWNER             => X_CURRENT_OWNER,
560            X_LAST_UPDATE_DATE          => X_LAST_UPDATE_DATE,
561            X_CURRENT_LAST_UPDATE_DATE  => X_CURRENT_LAST_UPDATE_DATE,
562            X_CREATED_BY                => X_CREATED_BY,
563            X_CUSTOM_MODE               => X_CUSTOM_MODE) then
564         update AME_ACTIONS_TL ACTTL
565            set DESCRIPTION = nvl(X_DESCRIPTION,DESCRIPTION),
566                SOURCE_LANG = userenv('LANG'),
567                LAST_UPDATE_DATE = AME_SEED_UTILITY.DATE_AS_DATE(X_LAST_UPDATE_DATE),
568                LAST_UPDATED_BY = AME_SEED_UTILITY.OWNER_AS_INTEGER(X_OWNER),
569                LAST_UPDATE_LOGIN = 0
570          where ACTTL.ACTION_ID = X_ACTION_ID
571            and userenv('LANG') in (ACTTL.LANGUAGE,ACTTL.SOURCE_LANG);
572       end if;
573     exception
574       when no_data_found then
575         null;
576     end;
577   end TRANSLATE_ROW;
578 
579 END AME_ACTIONS_API;