DBA Data[Home] [Help]

PACKAGE BODY: APPS.XDO_TEMPLATE_FIELDS_PKG

Source


1 package body XDO_TEMPLATE_FIELDS_PKG as
2 /* $Header: XDOTMFDB.pls 120.1 2005/07/02 05:05:32 appldev noship $ */
3 procedure INSERT_ROW (
4   X_ROWID in out nocopy VARCHAR2,
5   X_APPLICATION_SHORT_NAME in VARCHAR2,
6   X_TEMPLATE_CODE in VARCHAR2,
7   X_FIELD_NAME in VARCHAR2,
8   X_ALIAS_NAME in VARCHAR2,
9   X_CREATION_DATE in DATE,
10   X_CREATED_BY in NUMBER,
11   X_LAST_UPDATE_DATE in DATE,
12   X_LAST_UPDATED_BY in NUMBER,
13   X_LAST_UPDATE_LOGIN in NUMBER
14 ) is
15   cursor C is
16     select ROWID
17     from   XDO_TEMPLATE_FIELDS
18     where  APPLICATION_SHORT_NAME = X_APPLICATION_SHORT_NAME
19     and    TEMPLATE_CODE = X_TEMPLATE_CODE
20     and    FIELD_NAME = X_FIELD_NAME;
21 begin
22   insert into xdo_template_fields (
23     APPLICATION_SHORT_NAME,
24     TEMPLATE_CODE,
25     FIELD_NAME,
26     ALIAS_NAME,
27     CREATION_DATE,
28     CREATED_BY,
29     LAST_UPDATE_DATE,
30     LAST_UPDATED_BY,
31     LAST_UPDATE_LOGIN
32   ) values (
33     X_APPLICATION_SHORT_NAME,
34     X_TEMPLATE_CODE,
35     X_FIELD_NAME,
36     X_ALIAS_NAME,
37     X_CREATION_DATE,
38     X_CREATED_BY,
39     X_LAST_UPDATE_DATE,
40     X_LAST_UPDATED_BY,
41     X_LAST_UPDATE_LOGIN
42   );
43 
44   open c;
45   fetch c into X_ROWID;
46   if (c%notfound) then
47     close c;
48     raise no_data_found;
49   end if;
50   close c;
51 
52 end INSERT_ROW;
53 
54 procedure LOCK_ROW (
55   X_APPLICATION_SHORT_NAME in VARCHAR2,
56   X_TEMPLATE_CODE in VARCHAR2,
57   X_FIELD_NAME in VARCHAR2,
58   X_ALIAS_NAME in VARCHAR2
59 ) is
60   cursor c is select
61                     APPLICATION_SHORT_NAME,
62                     TEMPLATE_CODE,
63                     FIELD_NAME,
64                     ALIAS_NAME
65                from XDO_TEMPLATE_FIELDS
66               where APPLICATION_SHORT_NAME = X_APPLICATION_SHORT_NAME
67               and   TEMPLATE_CODE = X_TEMPLATE_CODE
68               and   FIELD_NAME = X_FIELD_NAME
69       for update of APPLICATION_SHORT_NAME, TEMPLATE_CODE, FIELD_NAME nowait;
70   recinfo c%rowtype;
71 begin
72   open c;
73   fetch c into recinfo;
74   if (c%notfound) then
75     close c;
76     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
77     app_exception.raise_exception;
78   end if;
79   close c;
80   if  (recinfo.ALIAS_NAME = X_ALIAS_NAME) then
81     null;
82   else
83     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
84     app_exception.raise_exception;
85   end if;
86   return;
87 
88 end LOCK_ROW;
89 
90 procedure UPDATE_ROW (
91   X_APPLICATION_SHORT_NAME in VARCHAR2,
92   X_TEMPLATE_CODE in VARCHAR2,
93   X_FIELD_NAME in VARCHAR2,
94   X_ALIAS_NAME in VARCHAR2,
95   X_LAST_UPDATE_DATE in DATE,
96   X_LAST_UPDATED_BY in NUMBER,
97   X_LAST_UPDATE_LOGIN in NUMBER
98 ) is
99 begin
100   update XDO_TEMPLATE_FIELDS set
101     ALIAS_NAME = X_ALIAS_NAME,
102     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
103     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
104     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
105   where APPLICATION_SHORT_NAME = X_APPLICATION_SHORT_NAME
106   and TEMPLATE_CODE = X_TEMPLATE_CODE
107   and   FIELD_NAME = X_FIELD_NAME;
108 
109   if (sql%notfound) then
110     raise no_data_found;
111   end if;
112 
113 end UPDATE_ROW;
114 
115 procedure DELETE_ROW (
116   X_APPLICATION_SHORT_NAME in VARCHAR2,
117   X_TEMPLATE_CODE in VARCHAR2,
118   X_FIELD_NAME in VARCHAR2
119 ) is
120 begin
121 
122   delete from XDO_TEMPLATE_FIELDS
123    where  TEMPLATE_CODE=X_TEMPLATE_CODE
124      and  APPLICATION_SHORT_NAME=X_APPLICATION_SHORT_NAME
125      and  FIELD_NAME = X_FIELD_NAME;
126 
127   if (sql%notfound) then
128     raise no_data_found;
129   end if;
130 end DELETE_ROW;
131 
132 /* There is no translation for this entity */
133 -- procedure ADD_LANGUAGE;
134 
135 -- procedure TRANSLATE_ROW;
136 
137 
138 procedure LOAD_ROW (
139   X_APPLICATION_SHORT_NAME in VARCHAR2,
140   X_TEMPLATE_CODE          in VARCHAR2,
141   X_FIELD_NAME             in VARCHAR2,
142   X_ALIAS_NAME             in VARCHAR2,
143   X_OWNER                  in VARCHAR2,
144   X_LAST_UPDATE_DATE       in VARCHAR2,
145   X_CUSTOM_MODE            in VARCHAR2
146 ) is
147   row_id varchar2(64);
148   f_luby number;
149   f_ludate date;
150   db_luby   number; -- entity owner in db
151   db_ludate date;   -- entity update in db
152 begin
153 
154     -- Translate owner to file_last_updated_by
155   f_luby := fnd_load_util.owner_id(x_owner);
156 
157   -- Translate char last_update_date to date
158   f_ludate := nvl(to_date(x_last_update_date, 'YYYY/MM/DD'), sysdate);
159 
160   begin
161 
162     select  LAST_UPDATED_BY, LAST_UPDATE_DATE
163     into  db_luby, db_ludate
164     from xdo_template_fields
165     where application_short_name = x_application_short_name
166     and   template_code = x_template_code
167     and   field_name = x_field_name;
168 
169     -- Update record, honoring customization mode.
170     -- Record should be updated only if:
171     -- a. CUSTOM_MODE = FORCE, or
172     -- b. file owner is CUSTOM, db owner is SEED
173     -- c. owners are the same, and file_date > db_date
174     if (fnd_load_util.UPLOAD_TEST(
175                 p_file_id     => f_luby,
176                 p_file_lud     => f_ludate,
177                 p_db_id        => db_luby,
178                 p_db_lud       => db_ludate,
179                 p_custom_mode  => x_custom_mode))
180     then
181       XDO_TEMPLATE_FIELDS_PKG.UPDATE_ROW (
182         X_APPLICATION_SHORT_NAME => X_APPLICATION_SHORT_NAME,
183         X_TEMPLATE_CODE          => X_TEMPLATE_CODE,
184         X_FIELD_NAME             => x_field_name,
185         X_ALIAS_NAME             => x_alias_name,
186         X_LAST_UPDATE_DATE       => f_ludate,
187         X_LAST_UPDATED_BY        => f_luby,
188         X_LAST_UPDATE_LOGIN      => 0
189       );
190     end if;
191   exception when no_data_found then
192       XDO_TEMPLATE_FIELDS_PKG.INSERT_ROW (
193         X_ROWID             => row_id,
194         X_APPLICATION_SHORT_NAME => X_APPLICATION_SHORT_NAME,
195         X_TEMPLATE_CODE          => X_TEMPLATE_CODE,
196         X_FIELD_NAME        => x_field_name,
197         X_ALIAS_NAME        => x_alias_name,
198         X_CREATION_DATE     => f_ludate,
199         X_CREATED_BY        => f_luby,
200         X_LAST_UPDATE_DATE  => f_ludate,
201         X_LAST_UPDATED_BY   => f_luby,
202         X_LAST_UPDATE_LOGIN => 0
203     );
204   end;
205 end LOAD_ROW;
206 
207 end XDO_TEMPLATE_FIELDS_PKG;