DBA Data[Home] [Help]

PACKAGE BODY: APPS.AME_CALLING_APPS_API

Source


1 PACKAGE BODY AME_CALLING_APPS_API AS
2 /* $Header: amecaapi.pkb 120.6 2006/08/09 06:53:23 pvelugul noship $ */
3 X_AME_INSTALLATION_LEVEL varchar2(255);
4 procedure OWNER_TO_WHO (
5   X_OWNER in VARCHAR2,
6   X_CREATED_BY out nocopy NUMBER,
7   X_LAST_UPDATED_BY out nocopy NUMBER,
8   X_LAST_UPDATE_LOGIN out nocopy NUMBER
9 ) is
10 begin
11   X_CREATED_BY := AME_SEED_UTILITY.OWNER_AS_INTEGER(X_OWNER);
12   X_LAST_UPDATED_BY := AME_SEED_UTILITY.OWNER_AS_INTEGER(X_OWNER);
13   X_LAST_UPDATE_LOGIN := 0;
14 end OWNER_TO_WHO;
15 
16 procedure KEY_TO_IDS (
17   X_APPLICATION_SHORT_NAME   in           VARCHAR2,
18   X_TRANSACTION_TYPE_ID      in           VARCHAR2,
19   X_CALLING_APPS_ROWID       out nocopy   VARCHAR2,
20   X_FND_APPLICATION_ID       out nocopy   NUMBER,
21   X_APPLICATION_ID           out nocopy   NUMBER,
22   X_CURRENT_OWNER            out nocopy   NUMBER,
23   X_CURRENT_LAST_UPDATE_DATE out nocopy   VARCHAR2,
24   X_USAGE_ROWID              out nocopy   VARCHAR2,
25   X_CURRENT_USAGE_OWNER      out nocopy   NUMBER,
26   X_CURRENT_USAGE_LUD        out nocopy   VARCHAR2,
27   X_CURRENT_ITEM_ID_QUERY    out nocopy   VARCHAR2,
28   X_CURRENT_APP_OVN          out nocopy   VARCHAR2,
29   X_CURRENT_USAGE_OVN        out nocopy   VARCHAR2
30 ) is
31 
32   cursor CSR_GET_FND_APPLICATION_ID is
33   select APPLICATION_ID
34     from FND_APPLICATION_VL
35    where APPLICATION_SHORT_NAME = X_APPLICATION_SHORT_NAME;
36 
37   cursor CSR_GET_CURRENT_CALLING_APP
38    (
39    X_FND_APPLICATION_ID in NUMBER,
40    X_TRANSACTION_TYPE_ID in VARCHAR2
41    )
42    is select ROWID, nvl(OBJECT_VERSION_NUMBER,1),APPLICATION_ID,
43          LAST_UPDATED_BY,
44           to_char(LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS')
45     from AME_CALLING_APPS
46    where FND_APPLICATION_ID = X_FND_APPLICATION_ID
47      and nvl(TRANSACTION_TYPE_ID,'NULL')
48        = nvl(X_TRANSACTION_TYPE_ID,'NULL')
49      and sysdate between START_DATE
50      and nvl(END_DATE  - (1/86400), sysdate);
51 
52   cursor CSR_GET_CURRENT_USAGE
53    (
54    X_APPLICATION_ID in NUMBER
55    ) is
56    select ROWID,
57          nvl(OBJECT_VERSION_NUMBER,1),
58          LAST_UPDATED_BY,
59          to_char(LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
60          ITEM_ID_QUERY
61    from AME_ITEM_CLASS_USAGES
62    where APPLICATION_ID = X_APPLICATION_ID
63      and ITEM_CLASS_ID  = 2
64      and sysdate between START_DATE
65      and nvl(END_DATE  - (1/86400), sysdate);
66   applicationId number;
67 begin
68   X_CURRENT_APP_OVN := 1;
69   X_CURRENT_USAGE_OVN := 1;
70   open  CSR_GET_FND_APPLICATION_ID;
71   fetch CSR_GET_FND_APPLICATION_ID into X_FND_APPLICATION_ID;
72   if (CSR_GET_FND_APPLICATION_ID%notfound) then
73      X_FND_APPLICATION_ID := null;
74   end if;
75   close CSR_GET_FND_APPLICATION_ID;
76 --
77 -- this sets the x_application_id if there
78 -- dependant on the x_transaction_type_id value passed in
79 --
80   if X_TRANSACTION_TYPE_ID is null then
81     X_APPLICATION_ID := X_FND_APPLICATION_ID;
82   else
83     X_APPLICATION_ID := null;
84   end if;
85 --
86 -- if there is a current row as well as retrieving the rowid
87 -- assign the x_application_id as well.
88 --
89   if X_FND_APPLICATION_ID is not null then
90      -- check for current calling applications row
91     open CSR_GET_CURRENT_CALLING_APP
92     (
93       X_FND_APPLICATION_ID,
94       X_TRANSACTION_TYPE_ID
95     );
96     fetch CSR_GET_CURRENT_CALLING_APP into X_CALLING_APPS_ROWID,
97                                            X_CURRENT_APP_OVN,
98                                            applicationId,
99                                            X_CURRENT_OWNER,
100                                            X_CURRENT_LAST_UPDATE_DATE;
101     X_APPLICATION_ID := applicationId;
102     if (CSR_GET_CURRENT_CALLING_APP%notfound) then
103        X_CALLING_APPS_ROWID:= null;
104     end if;
105     close CSR_GET_CURRENT_CALLING_APP;
106     --
107     -- get current item class usage from ame_item_class_usages, if AME11510
108     -- patch is already applied
109     --
110     if(X_AME_INSTALLATION_LEVEL is not null and applicationId is not null) then
111       open CSR_GET_CURRENT_USAGE(applicationId);
112       fetch CSR_GET_CURRENT_USAGE into X_USAGE_ROWID,
113                                        X_CURRENT_USAGE_OVN,
114                                        X_CURRENT_USAGE_OWNER,
115                                        X_CURRENT_USAGE_LUD,
116                                        X_CURRENT_ITEM_ID_QUERY;
117       if CSR_GET_CURRENT_USAGE%notfound then
118         X_USAGE_ROWID := null;
119       end if;
120       close CSR_GET_CURRENT_USAGE;
121     end if;
122   end if;
123 end KEY_TO_IDS;
124 function DO_UPDATE_INSERT(X_OWNER in NUMBER,
125                    X_CURRENT_OWNER in NUMBER,
126                    X_LAST_UPDATE_DATE in VARCHAR2,
127                    X_CURRENT_LAST_UPDATE_DATE in VARCHAR2,
128                    X_CUSTOM_MODE in VARCHAR2 default null)
129 return boolean as
130 begin
131   return AME_SEED_UTILITY.MERGE_ROW_TEST
132     (X_OWNER                     => X_OWNER
133     ,X_CURRENT_OWNER             => X_CURRENT_OWNER
134     ,X_LAST_UPDATE_DATE          => X_LAST_UPDATE_DATE
135     ,X_CURRENT_LAST_UPDATE_DATE  => X_CURRENT_LAST_UPDATE_DATE
136     ,X_CUSTOM_MODE               => X_CUSTOM_MODE
137     );
138 end DO_UPDATE_INSERT;
139 function DO_TL_UPDATE_INSERT(X_OWNER in NUMBER,
140                    X_CURRENT_OWNER in NUMBER,
141                    X_LAST_UPDATE_DATE in VARCHAR2,
142                    X_CURRENT_LAST_UPDATE_DATE in VARCHAR2,
143                    X_CREATED_BY in varchar2,
144                    X_CUSTOM_MODE in VARCHAR2 default null)
145 return boolean as
146 begin
147   if X_CUSTOM_MODE = 'FORCE' then
148     return true;
149   end if;
150   if AME_SEED_UTILITY.IS_SEED_USER(X_CREATED_BY) then
151     return true;
152   else
153     return AME_SEED_UTILITY.TL_MERGE_ROW_TEST
154       (X_OWNER                     => X_OWNER
155       ,X_CURRENT_OWNER             => X_CURRENT_OWNER
156       ,X_LAST_UPDATE_DATE          => X_LAST_UPDATE_DATE
157       ,X_CURRENT_LAST_UPDATE_DATE  => X_CURRENT_LAST_UPDATE_DATE
158       ,X_CUSTOM_MODE               => X_CUSTOM_MODE
159       );
160   end if;
161   return(false);
162 end DO_TL_UPDATE_INSERT;
163 procedure INSERT_ROW (
164  X_FND_APPLICATION_ID                in NUMBER,
165  X_APPLICATION_NAME                  in VARCHAR2,
166  X_TRANSACTION_TYPE_ID               in VARCHAR2,
167  X_APPLICATION_ID                    in NUMBER,
168  X_CREATED_BY                        in NUMBER,
169  X_CREATION_DATE                     in DATE,
170  X_LAST_UPDATED_BY                   in NUMBER,
171  X_LAST_UPDATE_DATE                  in DATE,
172  X_LAST_UPDATE_LOGIN                 in NUMBER,
173  X_START_DATE                        in DATE,
174  X_LINE_ITEM_ID_QUERY                in VARCHAR2,
175  X_OBJECT_VERSION_NUMBER             in NUMBER
176  )
177  is
178  begin
179 
180   insert into AME_CALLING_APPS
181   (
182    FND_APPLICATION_ID,
183    APPLICATION_NAME,
184    TRANSACTION_TYPE_ID,
185    APPLICATION_ID,
186    CREATED_BY,
187    CREATION_DATE,
188    LAST_UPDATED_BY,
189    LAST_UPDATE_DATE,
190    LAST_UPDATE_LOGIN,
191    START_DATE,
192    END_DATE,
193    LINE_ITEM_ID_QUERY,
194    OBJECT_VERSION_NUMBER
195   )  select
196    X_FND_APPLICATION_ID,
197    X_APPLICATION_NAME,
198    X_TRANSACTION_TYPE_ID,
199    X_APPLICATION_ID,
200    X_CREATED_BY,
201    X_CREATION_DATE,
202    X_LAST_UPDATED_BY,
203    X_LAST_UPDATE_DATE,
204    X_LAST_UPDATE_LOGIN,
205    X_START_DATE,
206    AME_SEED_UTILITY.GET_DEFAULT_END_DATE,
207    X_LINE_ITEM_ID_QUERY,
208    X_OBJECT_VERSION_NUMBER
209    from sys.dual;
210 end INSERT_ROW;
211 --
212 procedure FORCE_UPDATE_ROW (
213   X_ROWID                      in VARCHAR2,
214   X_APPLICATION_NAME           in VARCHAR2,
215   X_APPLICATION_ID             in NUMBER,
216   X_LINE_ITEM_ID_QUERY         in VARCHAR2,
217   X_CREATED_BY                 in NUMBER,
218   X_CREATION_DATE              in DATE,
219   X_LAST_UPDATED_BY            in NUMBER,
220   X_LAST_UPDATE_DATE           in DATE,
221   X_LAST_UPDATE_LOGIN          in NUMBER,
222   X_START_DATE                 in DATE,
223   X_END_DATE                   in DATE,
224   X_OBJECT_VERSION_NUMBER      in NUMBER
225 ) is
226 begin
227   update AME_CALLING_APPS
228      set APPLICATION_NAME = X_APPLICATION_NAME,
229          APPLICATION_ID = X_APPLICATION_ID,
230          LINE_ITEM_ID_QUERY = X_LINE_ITEM_ID_QUERY,
231          CREATED_BY = X_CREATED_BY,
232          CREATION_DATE = X_CREATION_DATE,
233          LAST_UPDATED_BY = X_LAST_UPDATED_BY,
234          LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
235          LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
236          START_DATE = X_START_DATE,
237          END_DATE = X_END_DATE,
238          OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER
239    where ROWID = X_ROWID;
240 end FORCE_UPDATE_ROW;
241 
242 procedure INSERT_USAGE_ROW (
243  X_APPLICATION_ID              in NUMBER,
244  X_ITEM_CLASS_ID                   in NUMBER,
245  X_ITEM_ID_QUERY                   in VARCHAR2,
246  X_ITEM_CLASS_ORDER_NUMBER         in NUMBER,
247  X_ITEM_CLASS_PAR_MODE             in VARCHAR2,
248  X_ITEM_CLASS_SUBLIST_MODE         in VARCHAR2,
249  X_CREATED_BY                      in NUMBER,
250  X_CREATION_DATE                   in DATE,
251  X_LAST_UPDATED_BY                 in NUMBER,
252  X_LAST_UPDATE_DATE                in DATE,
253  X_LAST_UPDATE_LOGIN               in NUMBER,
254  X_START_DATE                      in DATE,
255  X_OBJECT_VERSION_NUMBER           in NUMBER
256  )
257  is
258 begin
259   --do not populate usage row if AME11510 full patch has not been applied
260   if X_AME_INSTALLATION_LEVEL IS NULL then
261     return;
262   end if;
263   insert into AME_ITEM_CLASS_USAGES
264   (
265    APPLICATION_ID,
266    ITEM_CLASS_ID,
267    ITEM_ID_QUERY,
268    ITEM_CLASS_ORDER_NUMBER,
269    ITEM_CLASS_PAR_MODE,
270    ITEM_CLASS_SUBLIST_MODE,
271    CREATED_BY,
272    CREATION_DATE,
273    LAST_UPDATED_BY,
274    LAST_UPDATE_DATE,
275    LAST_UPDATE_LOGIN,
276    START_DATE,
277    END_DATE,
278    OBJECT_VERSION_NUMBER
279   ) values (
280    X_APPLICATION_ID,
281    X_ITEM_CLASS_ID,
282    X_ITEM_ID_QUERY,
283    X_ITEM_CLASS_ORDER_NUMBER,
284    X_ITEM_CLASS_PAR_MODE,
285    X_ITEM_CLASS_SUBLIST_MODE,
286    X_CREATED_BY,
287    X_CREATION_DATE,
288    X_LAST_UPDATED_BY,
289    X_LAST_UPDATE_DATE,
290    X_LAST_UPDATE_LOGIN,
291    X_START_DATE,
292    AME_SEED_UTILITY.GET_DEFAULT_END_DATE,
293    X_OBJECT_VERSION_NUMBER);
294 end INSERT_USAGE_ROW;
295 
296 procedure FORCE_UPDATE_USAGE_ROW (
297   X_ROWID                      in VARCHAR2,
298   X_ITEM_ID_QUERY              in VARCHAR2,
299   X_ITEM_CLASS_ORDER_NUMBER    in NUMBER,
300   X_ITEM_CLASS_PAR_MODE        in VARCHAR2,
301   X_ITEM_CLASS_SUBLIST_MODE    in VARCHAR2,
302   X_CREATED_BY                 in NUMBER,
303   X_CREATION_DATE              in DATE,
304   X_LAST_UPDATED_BY            in NUMBER,
305   X_LAST_UPDATE_DATE           in DATE,
306   X_LAST_UPDATE_LOGIN          in NUMBER,
307   X_START_DATE                 in DATE,
308   X_END_DATE                   in DATE,
309   X_OBJECT_VERSION_NUMBER      in NUMBER
310 ) is
311 begin
312   update AME_ITEM_CLASS_USAGES
313      set ITEM_ID_QUERY = X_ITEM_ID_QUERY,
314          ITEM_CLASS_ORDER_NUMBER = X_ITEM_CLASS_ORDER_NUMBER,
315          ITEM_CLASS_PAR_MODE = X_ITEM_CLASS_PAR_MODE,
316          ITEM_CLASS_SUBLIST_MODE = X_ITEM_CLASS_SUBLIST_MODE,
317          CREATED_BY = X_CREATED_BY,
318          CREATION_DATE = X_CREATION_DATE,
319          LAST_UPDATED_BY = X_LAST_UPDATED_BY,
320          LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
321          LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
322          START_DATE = X_START_DATE,
323          END_DATE = X_END_DATE,
324          OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER
325    where ROWID = X_ROWID;
326 end FORCE_UPDATE_USAGE_ROW;
327 
328 procedure INSERT_TL_ROW (
329   X_APPLICATION_ID in NUMBER,
330   X_APPLICATION_NAME in VARCHAR2,
331   X_CREATED_BY in NUMBER,
332   X_CREATION_DATE in DATE,
333   X_LAST_UPDATED_BY in NUMBER,
334   X_LAST_UPDATE_DATE in DATE,
338     return;
335   X_LAST_UPDATE_LOGIN in NUMBER) is
336  begin
337   if not AME_SEED_UTILITY.MLS_ENABLED then
339   end if;
340 
341   insert into AME_CALLING_APPS_TL
342     (APPLICATION_ID
343     ,APPLICATION_NAME
344     ,CREATED_BY
345     ,CREATION_DATE
346     ,LAST_UPDATED_BY
347     ,LAST_UPDATE_DATE
348     ,LAST_UPDATE_LOGIN
349     ,LANGUAGE
350     ,SOURCE_LANG
351     ) select X_APPLICATION_ID,
352              X_APPLICATION_NAME,
353              X_CREATED_BY,
354              X_CREATION_DATE,
355              X_LAST_UPDATED_BY,
356              X_LAST_UPDATE_DATE,
357              X_LAST_UPDATE_LOGIN,
358              L.LANGUAGE_CODE,
359              userenv('LANG')
360         from FND_LANGUAGES L
361        where L.INSTALLED_FLAG in ('I', 'B')
362          and not exists (select null
363                            from AME_CALLING_APPS_TL T
364                           where T.APPLICATION_ID = X_APPLICATION_ID
365                             and T.LANGUAGE = L.LANGUAGE_CODE);
366   END insert_tl_row;
367 
368 procedure UPDATE_TL_ROW (
369   X_APPLICATION_ID in NUMBER,
370   X_APPLICATION_NAME in VARCHAR2,
371   X_CREATED_BY in NUMBER,
372   X_CREATION_DATE in DATE,
373   X_LAST_UPDATED_BY in NUMBER,
374   X_LAST_UPDATE_DATE in DATE,
375   X_LAST_UPDATE_LOGIN in NUMBER,
376   X_CUSTOM_MODE in VARCHAR2) is
377   X_CURRENT_OWNER  NUMBER;
378   X_CURRENT_LAST_UPDATE_DATE DATE;
379   begin
380     if not AME_SEED_UTILITY.MLS_ENABLED then
381       return;
382     end if;
383 
384     select LAST_UPDATED_BY,
385            LAST_UPDATE_DATE
386        into X_CURRENT_OWNER,
387             X_CURRENT_LAST_UPDATE_DATE
388        FROM AME_CALLING_APPS_TL
389        WHERE APPLICATION_ID = X_APPLICATION_ID
390        AND LANGUAGE = USERENV('LANG');
391 
392    if DO_UPDATE_INSERT
393      (X_LAST_UPDATED_BY
394      ,X_CURRENT_OWNER
395      ,AME_SEED_UTILITY.DATE_AS_STRING(X_LAST_UPDATE_DATE)
396      ,AME_SEED_UTILITY.DATE_AS_STRING(X_CURRENT_LAST_UPDATE_DATE)
397      ,X_CUSTOM_MODE) then
398       update AME_CALLING_APPS_TL
399          set APPLICATION_NAME = nvl(X_APPLICATION_NAME,APPLICATION_NAME),
400              SOURCE_LANG = userenv('LANG'),
401              LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
402              LAST_UPDATED_BY = X_LAST_UPDATED_BY,
403              LAST_UPDATE_LOGIN = 0
404        where APPLICATION_ID = X_APPLICATION_ID
405          and userenv('LANG') in (LANGUAGE,SOURCE_LANG);
406    end if;
407 exception
408   when no_data_found then
409     null;
410 end UPDATE_TL_ROW;
411 
412 procedure UPDATE_ROW (
416 begin
413  X_CALLING_APPS_ROWID                in VARCHAR2,
414  X_END_DATE                          in DATE)
415  is
417   update AME_CALLING_APPS set
418    END_DATE            = X_END_DATE
419   where ROWID          = X_CALLING_APPS_ROWID;
420 end UPDATE_ROW;
421 
422 procedure UPDATE_USAGE_ROW (
423          X_USAGE_ROWID        in VARCHAR2,
424          X_END_DATE           in DATE) is
425 begin
426 --do not populate usage row if AME11510 full patch has not been applied
427   if X_AME_INSTALLATION_LEVEL IS NULL then
428     return;
429   end if;
430   update AME_ITEM_CLASS_USAGES
431   set END_DATE  = X_END_DATE
432   where ROWID   = X_USAGE_ROWID;
433 end UPDATE_USAGE_ROW;
434 
435 procedure DELETE_ROW (
436   X_FND_APPLICATION_ID   in NUMBER,
437   X_TRANSACTION_TYPE_ID  in VARCHAR2,
438   X_APPLICATION_ID       in NUMBER
439 ) is
440 begin
441   if AME_SEED_UTILITY.MLS_ENABLED then
442     delete from AME_CALLING_APPS_TL
443     where APPLICATION_ID in (select APPLICATION_ID
444                                from AME_CALLING_APPS
445                               where FND_APPLICATION_ID = X_FND_APPLICATION_ID
446                                 and nvl(TRANSACTION_TYPE_ID,'NULL') = nvl(X_TRANSACTION_TYPE_ID,'NULL'));
447   end if;
448   delete from AME_CALLING_APPS
449   where FND_APPLICATION_ID = X_FND_APPLICATION_ID
450     and nvl(TRANSACTION_TYPE_ID,'NULL') = nvl(X_TRANSACTION_TYPE_ID,'NULL');
451   if (sql%notfound) then
452     raise no_data_found;
453   end if;
454 end DELETE_ROW;
455 --
456 -- this piece of code runs when an AME seed data patch based upon the
457 -- older style of ldts is run.
458 -- this logic is also represented in amem0031.sql and amem0032.sql.
459 -- it runs within this api when a transaction type is being applied
460 -- after the AME mother patch has been run.
461 -- it inserts rows into the ame_action_type_config
462 -- and ame_approval_group_config tables and
463 -- attribute usages for USE_WORKFLOW, REJECTION_RESPONSE and
464 -- REPEAT_SUBSTITUTION attributes where they do not exist.
465 --
466 procedure RUN_CONFIG_USAGES_ROWS(X_APPLICATION_ID in NUMBER,
467                                  X_LAST_UPDATE_DATE in VARCHAR2,
468                                  X_CREATED_BY in NUMBER
469 )
470 is
471   cursor getApprovalGroup is
472   select aag.approval_group_id, aag.name, aag.start_date, aag.end_date
473   from   ame_approval_groups aag
474   where  aag.start_date =
475     (select max(start_date)
476        from ame_approval_groups aag2
477       where aag.approval_group_id = aag2.approval_group_id)
478   order by aag.approval_group_id;
479   cursor getActionType is
480   select aat.action_type_id,
481          aat.name,
482          aat.created_by,
483          aat.last_updated_by,
484          aat.start_date,
485          aat.end_date
486   from   ame_action_types aat
487   where  aat.start_date =
488     (select max(start_date)
489        from ame_action_types aat2
490       where aat.action_type_id = aat2.action_type_id)
491   and ((end_date is null)
492      or (aat.start_date <> aat.end_date))
493     order by aat.action_type_id;
494  -- REJECTION_RESPONSE
495  cursor getRejectionAttributeId is
496   select attribute_id
497     from ame_attributes
498    where name = ame_util.rejectionResponseAttribute
499      and (sysdate between start_date
500      and nvl(end_date - (1/86400),sysdate));
501  -- USE_WORKFLOW
502  cursor getUseWorkflowId is
503   select attribute_id
504     from ame_attributes
505    where name = ame_util.useWorkflowAttribute
506      and (sysdate between start_date
507      and nvl(end_date - (1/86400),sysdate));
508  --REPEAT_SUBSTITUTIONS
509  cursor getRepeatSubAttributeId is
510   select attribute_id
511     from ame_attributes
512    where name = 'REPEAT_SUBSTITUTIONS'
513      and (sysdate between start_date
514      and nvl(end_date - (1/86400),sysdate));
515 authorityRuleTypeCount      integer     :=0;
516 customOrderNumber           integer     :=20;
517 votingRegimeValue           varchar2(1) := null;
518 -- variable to hold approval group order number
519 groupOrderNumber            integer     :=0;
520 X_REJECTION_RESPONSE_ID     number;
521 X_REPEAT_SUBSTITUTIONS_ID   number;
522 X_USE_WORKFLOW_ID           number;
523 begin
524   -- if AME11510 full patch is not applied then return
525   if X_AME_INSTALLATION_LEVEL is null then
526     return;
527   end if;
528   if X_AME_INSTALLATION_LEVEL is not null and to_number(X_AME_INSTALLATION_LEVEL) < 2 then
529     for groupsRec in getApprovalGroup loop
530       groupOrderNumber := groupOrderNumber + 1;
531         insert into ame_approval_group_config
532          (application_id,
533           approval_group_id,
534           voting_regime,
535           order_number,
536           created_by,
537           creation_date,
538           last_updated_by,
539           last_update_date,
540           last_update_login,
541           start_date,
542           end_date,
543           object_version_number)
544           select X_APPLICATION_ID,
545           groupsRec.approval_group_id,
546           ame_util.orderNumberVoting,
547           groupOrderNumber,
551           sysdate,
548           x_created_by,
549           sysdate,
550           x_created_by,
552           null,
553           groupsRec.start_date,
554           groupsRec.end_date,
555           1
556         from sys.dual
557         where not exists
558          (select null
559             from ame_approval_group_config
560            where application_id = X_APPLICATION_ID
561              and approval_group_id = groupsRec.approval_group_id
562              and ((sysdate between start_date
563                    and nvl(end_date - (1/86400),sysdate))
564                     or (groupsRec.start_date between start_date
565                         and nvl(end_date,start_date))));
566     end loop;
567     for actionRec in getActionType loop
568       -- determine the value for the voting regime column
569       select count(*)
570       into   authorityRuleTypeCount
571       from   ame_action_type_usages
572       where  action_type_id = actionRec.action_type_id
573       and    rule_type      = ame_util.authorityRuleType;
574       if authorityRuleTypeCount > 0 then
575         votingRegimeValue := ame_util.serializedVoting;
576       else
577         votingRegimeValue := null;
578       end if;
579       if actionRec.created_by <> ame_util.seededDataCreatedById then
580         customOrderNumber := customOrderNumber + 1;
581       end if;
582       insert into ame_action_type_config
583            (application_id,
584             action_type_id,
585             voting_regime,
586             order_number,
587             chain_ordering_mode,
588             created_by,
589             creation_date,
590             last_updated_by,
591             last_update_date,
592             last_update_login,
593             start_date,
594             end_date,
595             object_version_number)
596           select
597             X_APPLICATION_ID,
598             actionRec.action_type_id,
599             votingRegimeValue,
600             decode(actionRec.name,
601                    ame_util.preApprovalTypeName, 1,
602                    ame_util.dynamicPreApprover, 2,
603                    ame_util.absoluteJobLevelTypeName, 1,
604                    ame_util.relativeJobLevelTypeName, 2,
605                    ame_util.supervisoryLevelTypeName, 3,
606                    ame_util.positionTypeName, 4,
607                    ame_util.positionLevelTypeName, 5,
608                    ame_util.managerFinalApproverTypeName, 6,
609                    ame_util.finalApproverOnlyTypeName, 7,
610                    ame_util.lineItemJobLevelTypeName, 8,
611                    ame_util.dualChainsAuthorityTypeName, 9,
612                    ame_util.groupChainApprovalTypeName, 10,
613                    ame_util.nonFinalAuthority, 1,
614                    ame_util.finalAuthorityTypeName, 2,
615                    ame_util.substitutionTypeName, 1,
616                    ame_util.postApprovalTypeName, 1,
617                    ame_util.dynamicPostApprover, 2,
618                    customOrderNumber),
619             ame_util.serialChainsMode,
620             actionRec.created_by,
621             sysdate,
622             actionRec.last_updated_by,
623             sysdate,
624             null,
625             actionRec.start_date,
626             actionRec.end_date,
627             1
628            from sys.dual
629            where not exists
630                 (select null
631                    from ame_action_type_config
632                   where application_id = X_APPLICATION_ID
633                     and action_type_id = actionRec.action_type_id
634                     and ((sysdate between start_date
635                     and nvl(end_date - (1/86400),sysdate))
636                     or (actionRec.start_date between start_date
637                         and nvl(end_date,start_date))));
638     end loop;
639   end if;
640   -- insert an attribute usage for rejectionResponse
641   open  getRejectionAttributeId;
642   fetch getRejectionAttributeId into X_REJECTION_RESPONSE_ID;
643   if (getRejectionAttributeId%found) then
644     insert into AME_ATTRIBUTE_USAGES
645     (ATTRIBUTE_ID,
646     APPLICATION_ID,
647     QUERY_STRING,
648     USE_COUNT,
649     IS_STATIC,
650     CREATED_BY,
651     CREATION_DATE,
652     LAST_UPDATED_BY,
653     LAST_UPDATE_DATE,
654     LAST_UPDATE_LOGIN,
655     START_DATE,
656     END_DATE,
657     USER_EDITABLE,
658     VALUE_SET_ID,
659     OBJECT_VERSION_NUMBER
660    )
661     select
662     X_REJECTION_RESPONSE_ID,
663     X_APPLICATION_ID,
664     ame_util.stopAllItems,
665     0,
666     ame_util.booleanTrue,
667     x_created_by,
668     to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
669     x_created_by,
670     to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
671     0,
672     to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
673     AME_SEED_UTILITY.GET_DEFAULT_END_DATE,
674     ame_util.booleanTrue,
675     null,
676     1
677     from sys.dual
678     where not exists
679         (select null
680            from ame_attribute_usages
681           where application_id = X_APPLICATION_ID
682             and attribute_id = X_REJECTION_RESPONSE_ID
683             and (sysdate between start_date
684             and nvl(end_date - (1/86400),sysdate)));
685   end if;
686   close getRejectionAttributeId;
687   -- insert an attribute usage for useWorkflow
688   open  getUseWorkflowId;
689   fetch getUseWorkflowId into X_USE_WORKFLOW_ID;
690   if (getUseWorkflowId%found) then
691     insert into AME_ATTRIBUTE_USAGES
692    (ATTRIBUTE_ID,
693     APPLICATION_ID,
694     QUERY_STRING,
695     USE_COUNT,
696     IS_STATIC,
697     CREATED_BY,
698     CREATION_DATE,
699     LAST_UPDATED_BY,
700     LAST_UPDATE_DATE,
701     LAST_UPDATE_LOGIN,
702     START_DATE,
703     END_DATE,
704     USER_EDITABLE,
705     VALUE_SET_ID,
706     OBJECT_VERSION_NUMBER
707    )
708     select
709     X_USE_WORKFLOW_ID,
710     X_APPLICATION_ID,
711     ame_util.booleanAttributeTrue,
712     0,
713     ame_util.booleanTrue,
714     x_created_by,
715     to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
716     x_created_by,
717     to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
718     0,
719     to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
720     AME_SEED_UTILITY.GET_DEFAULT_END_DATE,
721     ame_util.booleanTrue,
722     null,
723     1
724     from sys.dual
725     where not exists
726          (select null
727             from ame_attribute_usages
728            where application_id = X_APPLICATION_ID
729              and attribute_id   = X_USE_WORKFLOW_ID
730              and (sysdate between start_date
731              and nvl(end_date - (1/86400),sysdate)));
732   end if;
733   close getUseWorkflowId;
734   --
735   -- Create usage for REPEAT_SUBSTITUTIONS mandatory attributes
736   --
737   open  getRepeatSubAttributeId;
738   fetch getRepeatSubAttributeId into X_REPEAT_SUBSTITUTIONS_ID;
739   if (getRepeatSubAttributeId%found) then
740     insert into AME_ATTRIBUTE_USAGES
741     (ATTRIBUTE_ID,
742     APPLICATION_ID,
743     QUERY_STRING,
744     USE_COUNT,
745     IS_STATIC,
746     CREATED_BY,
747     CREATION_DATE,
748     LAST_UPDATED_BY,
749     LAST_UPDATE_DATE,
750     LAST_UPDATE_LOGIN,
751     START_DATE,
752     END_DATE,
753     USER_EDITABLE,
754     VALUE_SET_ID,
755     OBJECT_VERSION_NUMBER
756    )
757     select
758     X_REPEAT_SUBSTITUTIONS_ID,
759     X_APPLICATION_ID,
760     ame_util.booleanAttributeFalse,
761     0,
762     ame_util.booleanTrue,
763     x_created_by,
764     to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
765     x_created_by,
766     to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
767     0,
768     to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
769     AME_SEED_UTILITY.GET_DEFAULT_END_DATE,
770     ame_util.booleanTrue,
771     null,
772     1
773     from sys.dual
774     where not exists
775         (select null
776            from ame_attribute_usages
777           where application_id = X_APPLICATION_ID
778             and attribute_id   = X_REPEAT_SUBSTITUTIONS_ID
779             and (sysdate between start_date
780             and nvl(end_date - (1/86400),sysdate)));
781   end if;
782   close getRepeatSubAttributeId;
783 end RUN_CONFIG_USAGES_ROWS;
784 procedure LOAD_ROW (
785           X_APPLICATION_SHORT_NAME in VARCHAR2,
786           X_TRANSACTION_TYPE_ID in VARCHAR2,
787           X_APPLICATION_NAME    in VARCHAR2,
788           X_BASE_APPLICATION_NAME in VARCHAR2,
789           X_LINE_ITEM_ID_QUERY  in VARCHAR2,
790           X_OWNER               in VARCHAR2,
791           X_LAST_UPDATE_DATE    in VARCHAR2,
792           X_CUSTOM_MODE         in VARCHAR2
793 )
794 is
795   X_APPLICATION_ID              NUMBER;
796   X_CALLING_APPS_ROWID          ROWID;
797   X_CREATED_BY                  NUMBER;
801   X_CURRENT_USAGE_OWNER         NUMBER;
798   X_CURRENT_ITEM_ID_QUERY       ame_item_class_usages.item_id_query%type;
799   X_CURRENT_LAST_UPDATE_DATE    VARCHAR2(19);
800   X_CURRENT_OWNER               NUMBER;
802   X_CURRENT_USAGE_LUD           VARCHAR2(19);
803   X_FND_APPLICATION_ID          NUMBER;
804   X_LAST_UPDATED_BY             NUMBER;
805   X_LAST_UPDATE_LOGIN           NUMBER;
806   X_USAGE_ROWID                 ROWID;
807   X_NEW_LINE_ITEM_ID_QUERY      VARCHAR2(4000);
808   X_CURRENT_APP_OVN             NUMBER;
809   X_CURRENT_USAGE_OVN           NUMBER;
810   X_BASE_APP_NAME               VARCHAR2(240);
811 --
812 begin
813   --detect current installation level of AME
814   X_AME_INSTALLATION_LEVEL:= fnd_profile.value('AME_INSTALLATION_LEVEL');
815   if X_BASE_APPLICATION_NAME is null then
816     X_BASE_APP_NAME := X_APPLICATION_NAME;
817   else
818     X_BASE_APP_NAME := X_BASE_APPLICATION_NAME;
819   end if;
820  -- retrieve information for the current row
821   KEY_TO_IDS (
822     X_APPLICATION_SHORT_NAME,
823     X_TRANSACTION_TYPE_ID,
824     X_CALLING_APPS_ROWID,
825     X_FND_APPLICATION_ID,
826     X_APPLICATION_ID,
827     X_CURRENT_OWNER,
828     X_CURRENT_LAST_UPDATE_DATE,
829     X_USAGE_ROWID,
830     X_CURRENT_USAGE_OWNER,
831     X_CURRENT_USAGE_LUD,
832     X_CURRENT_ITEM_ID_QUERY,
833     X_CURRENT_APP_OVN,
834     X_CURRENT_USAGE_OVN);
835 
836  -- obtain who column details
837   OWNER_TO_WHO (
838     X_OWNER,
839     X_CREATED_BY,
840     X_LAST_UPDATED_BY,
841     X_LAST_UPDATE_LOGIN
842   );
843 --
844 -- detect whether the config rows have to be inserted for this transaction type
845 
846 --
847 --chang line_item_id_query value
848 --case 1: if full patch is applied make it null
849 --case 2: if not applied , retain its value
850   X_NEW_LINE_ITEM_ID_QUERY:= X_LINE_ITEM_ID_QUERY;
851   if X_AME_INSTALLATION_LEVEL is not null then
852     X_NEW_LINE_ITEM_ID_QUERY:= null;
853   end if;
854   begin
855   -- the current row was not found insert a new row for
856   -- ame_calling_apps, a new item class usages
857   -- for header (required) and line item class (optional)
858    if X_FND_APPLICATION_ID is not null then
859      if (X_CALLING_APPS_ROWID is null) and
860         (X_APPLICATION_ID is null) then
861        -- derive a new application id
862        select ame_applications_s.nextval
863        into X_APPLICATION_ID
864        from dual;
865        INSERT_ROW (
866          X_FND_APPLICATION_ID,
867          X_BASE_APP_NAME,
868          X_TRANSACTION_TYPE_ID,
869          X_APPLICATION_ID,
870          X_CREATED_BY,
871          to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
872          X_LAST_UPDATED_BY,
873          to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
874          X_LAST_UPDATE_LOGIN,
875          to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
876          X_NEW_LINE_ITEM_ID_QUERY,
877          1);
878        INSERT_TL_ROW
879          (
880          X_APPLICATION_ID,
881          X_APPLICATION_NAME,
882          X_CREATED_BY,
883          to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
884          X_LAST_UPDATED_BY,
885          to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
886          X_LAST_UPDATE_LOGIN
887          );
888        -- insert new row for ame_item_class_usages header
889        INSERT_USAGE_ROW (
890          X_APPLICATION_ID,
891          1,
892          'select :transactionId from dual',
893          1,
894          'S',
895          'S',
896          X_CREATED_BY,
897          to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
898          X_LAST_UPDATED_BY,
899          to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
900          X_LAST_UPDATE_LOGIN,
901          to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
902          1);
903          if X_LINE_ITEM_ID_QUERY is not null then
904          -- insert new row for ame_item_class_usages header
905            INSERT_USAGE_ROW (
906              X_APPLICATION_ID,
907              2,
908              X_LINE_ITEM_ID_QUERY,
909              2,
910              'S',
911              'S',
912              X_CREATED_BY,
913              to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
914              X_LAST_UPDATED_BY,
915              to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
916              X_LAST_UPDATE_LOGIN,
917              to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
918              1);
919          end if;
920 
921          RUN_CONFIG_USAGES_ROWS(X_APPLICATION_ID,
922                                 X_LAST_UPDATE_DATE,
923                                 X_CREATED_BY);
924   -- the current row was found end date the current row
925   -- insert a row with the same application id
926      else
927        if X_CUSTOM_MODE = 'FORCE' then
928          FORCE_UPDATE_ROW (
929            X_CALLING_APPS_ROWID,
930            X_BASE_APP_NAME,
931            X_APPLICATION_ID,
932            X_NEW_LINE_ITEM_ID_QUERY,
933            X_CREATED_BY,
934            to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
935            X_LAST_UPDATED_BY,
936            to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
937            X_LAST_UPDATE_LOGIN,
938            to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
939            AME_SEED_UTILITY.GET_DEFAULT_END_DATE,
940            X_CURRENT_APP_OVN + 1
941            );
942          UPDATE_TL_ROW
943            (
944            X_APPLICATION_ID,
945            X_APPLICATION_NAME,
946            X_CREATED_BY,
947            to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
951            X_CUSTOM_MODE
948            X_LAST_UPDATED_BY,
949            to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
950            X_LAST_UPDATE_LOGIN,
952            );
953          if X_LINE_ITEM_ID_QUERY is not null and
954             X_LINE_ITEM_ID_QUERY <> X_CURRENT_ITEM_ID_QUERY then
955            FORCE_UPDATE_USAGE_ROW (
956              X_USAGE_ROWID,
957              X_LINE_ITEM_ID_QUERY,
958              2,
959              'S',
960              'S',
961              X_CREATED_BY,
962              to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
963              X_LAST_UPDATED_BY,
964              to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
965              X_LAST_UPDATE_LOGIN,
966              to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
967              AME_SEED_UTILITY.GET_DEFAULT_END_DATE,
968              X_CURRENT_USAGE_OVN + 1
969              );
970          end if;
971        else
972          if DO_UPDATE_INSERT
973           (AME_SEED_UTILITY.OWNER_AS_INTEGER(X_OWNER),
974            X_CURRENT_OWNER,
975            X_LAST_UPDATE_DATE,
976            X_CURRENT_LAST_UPDATE_DATE) then
977            UPDATE_ROW (
978              X_CALLING_APPS_ROWID,
979              to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS')-(1/86400));
980            INSERT_ROW (
981              X_FND_APPLICATION_ID,
982              X_BASE_APP_NAME,
983              X_TRANSACTION_TYPE_ID,
984              X_APPLICATION_ID,
985              X_CREATED_BY,
986              to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
987              X_LAST_UPDATED_BY,
988              to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
989              X_LAST_UPDATE_LOGIN,
990              to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
991              X_NEW_LINE_ITEM_ID_QUERY,
992              X_CURRENT_APP_OVN + 1);
993 
994              UPDATE_TL_ROW
995              (
996              X_APPLICATION_ID,
997              X_APPLICATION_NAME,
998              X_CREATED_BY,
999              to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
1000              X_LAST_UPDATED_BY,
1001              to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
1002              X_LAST_UPDATE_LOGIN,
1003              X_CUSTOM_MODE
1004              );
1005              --+
1006              if X_LINE_ITEM_ID_QUERY is not null and
1007                 X_LINE_ITEM_ID_QUERY <> X_CURRENT_ITEM_ID_QUERY and
1008                 DO_UPDATE_INSERT(AME_SEED_UTILITY.OWNER_AS_INTEGER(X_OWNER),
1009                                  X_CURRENT_USAGE_OWNER,
1010                                  X_LAST_UPDATE_DATE,
1011                                  X_CURRENT_USAGE_LUD) then
1012                 UPDATE_USAGE_ROW (
1013                            X_USAGE_ROWID,
1014                            to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS')-(1/86400)
1015                            );
1016                INSERT_USAGE_ROW (
1017                  X_APPLICATION_ID,
1018                  2,
1019                  X_LINE_ITEM_ID_QUERY,
1020                  2,
1021                  'S',
1022                  'S',
1023                  X_CREATED_BY,
1024                  to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
1025                  X_LAST_UPDATED_BY,
1026                  to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
1027                  X_LAST_UPDATE_LOGIN,
1028                  to_date(X_LAST_UPDATE_DATE,'YYYY/MM/DD HH24:MI:SS'),
1029                  X_CURRENT_USAGE_OVN + 1);
1030              end if;
1031          end if;
1032        end if;
1033       end if;
1034     end if;
1035   end;
1036 exception
1037     when others then
1038     ame_util.runtimeException('ame_calling_apps_api',
1039                          'load_row',
1040                          sqlcode,
1041                          sqlerrm);
1042         raise;
1043 end LOAD_ROW;
1044 
1045   procedure TRANSLATE_ROW
1046     (X_APPLICATION_SHORT_NAME in varchar2
1047     ,X_TRANSACTION_TYPE_ID    in varchar2
1048     ,X_APPLICATION_NAME       in varchar2
1049     ,X_OWNER                  in varchar2
1050     ,X_LAST_UPDATE_DATE       in varchar2
1051     ,X_CUSTOM_MODE            in varchar2
1052     ) as
1053     X_CURRENT_OWNER            NUMBER;
1054     X_CURRENT_LAST_UPDATE_DATE varchar2(20);
1055     X_CREATED_BY               varchar2(100);
1056     X_APPLICATION_ID           number;
1057   begin
1058     if not AME_SEED_UTILITY.MLS_ENABLED then
1059       return;
1060     end if;
1061 
1062     begin
1063       select ACATL.LAST_UPDATED_BY,
1064              AME_SEED_UTILITY.DATE_AS_STRING(ACATL.LAST_UPDATE_DATE),
1065              AME_SEED_UTILITY.OWNER_AS_STRING(ACATL.CREATED_BY),
1066              ACA.APPLICATION_ID
1067         into X_CURRENT_OWNER,
1068              X_CURRENT_LAST_UPDATE_DATE,
1069              X_CREATED_BY,
1070              X_APPLICATION_ID
1071         from AME_CALLING_APPS_TL ACATL,
1072              AME_CALLING_APPS ACA,
1073              FND_APPLICATION_VL FAV
1074        where FAV.APPLICATION_SHORT_NAME = X_APPLICATION_SHORT_NAME
1075          and FAV.APPLICATION_ID = ACA.FND_APPLICATION_ID
1076          and ((ACA.TRANSACTION_TYPE_ID is null and X_TRANSACTION_TYPE_ID is null) or
1077              ACA.TRANSACTION_TYPE_ID = X_TRANSACTION_TYPE_ID)
1078          and sysdate between ACA.START_DATE and nvl(ACA.END_DATE - (1/86400),sysdate)
1079          and ACATL.APPLICATION_ID = ACA.APPLICATION_ID
1080          and ACATL.LANGUAGE = userenv('LANG');
1081       if  DO_TL_UPDATE_INSERT
1082           (X_OWNER                     => AME_SEED_UTILITY.OWNER_AS_INTEGER(X_OWNER),
1083            X_CURRENT_OWNER             => X_CURRENT_OWNER,
1084            X_LAST_UPDATE_DATE          => X_LAST_UPDATE_DATE,
1085            X_CURRENT_LAST_UPDATE_DATE  => X_CURRENT_LAST_UPDATE_DATE,
1086            X_CREATED_BY                => X_CREATED_BY,
1087            X_CUSTOM_MODE               => X_CUSTOM_MODE) then
1088         update AME_CALLING_APPS_TL ACATL
1089            set APPLICATION_NAME = nvl(X_APPLICATION_NAME,APPLICATION_NAME),
1090                SOURCE_LANG = userenv('LANG'),
1091                LAST_UPDATE_DATE = AME_SEED_UTILITY.DATE_AS_DATE(X_LAST_UPDATE_DATE),
1092                LAST_UPDATED_BY = AME_SEED_UTILITY.OWNER_AS_INTEGER(X_OWNER),
1093                LAST_UPDATE_LOGIN = 0
1094          where ACATL.APPLICATION_ID = X_APPLICATION_ID
1095            and userenv('LANG') in (ACATL.LANGUAGE,ACATL.SOURCE_LANG);
1096       end if;
1097     exception
1098       when no_data_found then
1099         null;
1100     end;
1101   end TRANSLATE_ROW;
1102 
1103   procedure LOAD_SEED_ROW
1104     (X_APPLICATION_SHORT_NAME in varchar2
1105     ,X_TRANSACTION_TYPE_ID    in varchar2
1106     ,X_APPLICATION_NAME       in varchar2
1107     ,X_BASE_APPLICATION_NAME  in varchar2
1108     ,X_LINE_ITEM_ID_QUERY     in varchar2
1109     ,X_OWNER                  in varchar2
1110     ,X_LAST_UPDATE_DATE       in varchar2
1111     ,X_UPLOAD_MODE            in varchar2
1112     ,X_CUSTOM_MODE            in varchar2
1113     ) as
1114   begin
1115     if X_UPLOAD_MODE = 'NLS' then
1116       TRANSLATE_ROW
1117         (X_APPLICATION_SHORT_NAME  => X_APPLICATION_SHORT_NAME
1118         ,X_TRANSACTION_TYPE_ID     => X_TRANSACTION_TYPE_ID
1119         ,X_APPLICATION_NAME        => X_APPLICATION_NAME
1120         ,X_OWNER                   => X_OWNER
1121         ,X_LAST_UPDATE_DATE        => X_LAST_UPDATE_DATE
1122         ,X_CUSTOM_MODE             => X_CUSTOM_MODE
1123         );
1124     else
1125       LOAD_ROW
1126         (X_APPLICATION_SHORT_NAME  => X_APPLICATION_SHORT_NAME
1127         ,X_TRANSACTION_TYPE_ID     => X_TRANSACTION_TYPE_ID
1128         ,X_APPLICATION_NAME        => X_APPLICATION_NAME
1129         ,X_BASE_APPLICATION_NAME   => X_BASE_APPLICATION_NAME
1130         ,X_LINE_ITEM_ID_QUERY      => X_LINE_ITEM_ID_QUERY
1131         ,X_OWNER                   => X_OWNER
1132         ,X_LAST_UPDATE_DATE        => X_LAST_UPDATE_DATE
1133         ,X_CUSTOM_MODE             => X_CUSTOM_MODE
1134         );
1135     end if;
1136   end LOAD_SEED_ROW;
1137 END AME_CALLING_APPS_API;