DBA Data[Home] [Help]

PACKAGE BODY: APPS.EAM_ASSET_ACTIVITIES_PVT

Source


1 PACKAGE BODY EAM_ASSET_ACTIVITIES_PVT as
2 /* $Header: EAMVASOB.pls 120.1 2005/09/19 06:18:57 yjhabak noship $ */
3  -- Start of comments
4  -- API name    : EAM_ASSET_ACTIVITIES_PVT
5  -- Type     : Private
6  -- Function :
7  -- Pre-reqs : None.
8  -- Parameters  :
9  -- IN       P_API_VERSION                 IN NUMBER       REQUIRED
10  --          P_INIT_MSG_LIST               IN VARCHAR2     OPTIONAL
11  --             DEFAULT = FND_API.G_FALSE
12  --          P_COMMIT                      IN VARCHAR2     OPTIONAL
13  --             DEFAULT = FND_API.G_FALSE
14  --          P_VALIDATION_LEVEL            IN NUMBER       OPTIONAL
15  --             DEFAULT = FND_API.G_VALID_LEVEL_FULL
16  --          P_ROWID                       IN OUT VARCHAR2 REQUIRED
17  --          P_ACTIVITY_ASSOCIATION_ID     IN OUT NUMBER   REQUIRED
18  --          P_ORGANIZATION_ID             IN  NUMBER      REQUIRED
19  --          P_ASSET_ACTIVITY_ID           IN  NUMBER      REQUIRED
20  --          P_INVENTORY_ITEM_ID           IN  NUMBER      REQUIRED
21  --          P_SERIAL_NUMBER               IN  VARCHAR2    OPTIONAL
22  --          P_START_DATE_ACTIVE           IN  DATE        OPTIONAL
23  --          P_END_DATE_ACTIVE             IN  DATE        OPTIONAL
24  --          P_PRIORITY_CODE               IN  VARCHAR2    OPTIONAL
25  --          P_ACTIVITY_CAUSE_CODE         IN  VARCHAR2    OPTIONAL
26  --          P_ACTIVITY_TYPE_CODE          IN  VARCHAR2    OPTIONAL
27  --          P_OWNING_DEPARTMENT_ID        IN  NUMBER      REQUIRED
28  --          P_LAST_UPDATE_DATE            IN  DATE        REQUIRED
29  --          P_LAST_UPDATED_BY             IN  NUMBER      REQUIRED
30  --          P_CREATION_DATE               IN  DATE        REQUIRED
31  --          P_CREATED_BY                  IN  NUMBER      REQUIRED
32  --          P_LAST_UPDATE_LOGIN           IN  NUMBER      REQUIRED
33  --          P_ATTRIBUTE_CATEGORY          IN  VARCHAR2    OPTIONAL
34  --          P_ATTRIBUTE1                  IN  VARCHAR2    OPTIONAL
35  --          P_ATTRIBUTE2                  IN  VARCHAR2    OPTIONAL
36  --          P_ATTRIBUTE3                  IN  VARCHAR2    OPTIONAL
37  --          P_ATTRIBUTE4                  IN  VARCHAR2    OPTIONAL
38  --          P_ATTRIBUTE5                  IN  VARCHAR2    OPTIONAL
39  --          P_ATTRIBUTE6                  IN  VARCHAR2    OPTIONAL
40  --          P_ATTRIBUTE7                  IN  VARCHAR2    OPTIONAL
41  --          P_ATTRIBUTE8                  IN  VARCHAR2    OPTIONAL
42  --          P_ATTRIBUTE9                  IN  VARCHAR2    OPTIONAL
43  --          P_ATTRIBUTE10                 IN  VARCHAR2    OPTIONAL
44  --          P_ATTRIBUTE11                 IN  VARCHAR2    OPTIONAL
45  --          P_ATTRIBUTE12                 IN  VARCHAR2    OPTIONAL
46  --          P_ATTRIBUTE13                 IN  VARCHAR2    OPTIONAL
47  --          P_ATTRIBUTE14                 IN  VARCHAR2    OPTIONAL
48  --          P_ATTRIBUTE15                 IN  VARCHAR2    OPTIONAL
49  --          P_REQUEST_ID                  IN  NUMBER DEFAULT NULL OPTIONAL
50  --          P_PROGRAM_APPLICATION_ID      IN  NUMBER DEFAULT NULL OPTIONAL
51  --          P_PROGRAM_ID                  IN  NUMBER DEFAULT NULL OPTIONAL
52  --          P_PROGRAM_UPDATE_DATE         IN  DATE DEFAULT NULL
53  -- OUT      X_RETURN_STATUS               OUT VARCHAR2(1)
54  --          X_MSG_COUNT                   OUT NUMBER
55  --          X_MSG_DATA                    OUT VARCHAR2(2000)
56  --
57  -- Version  Current version 115.0
58  --
59  -- Notes    : Note text
60  --
61  -- End of comments
62 
63    g_pkg_name    CONSTANT VARCHAR2(30):= 'eam_asset_activities_pvt';
64 
65 FUNCTION to_fnd_std_num(p_value NUMBER)
66 RETURN NUMBER IS
67 BEGIN
68    IF (p_value IS NULL) THEN
69      RETURN fnd_api.g_miss_num;
70    ELSE
71      RETURN p_value;
72    END IF;
73 END to_fnd_std_num;
74 
75 FUNCTION to_fnd_std_char(p_value VARCHAR2)
76 RETURN VARCHAR2 IS
77 BEGIN
78    IF (p_value IS NULL) THEN
79      RETURN fnd_api.g_miss_char;
80    ELSE
81      RETURN p_value;
82    END IF;
83 END to_fnd_std_char;
84 
85 PROCEDURE INSERT_ROW(
86   P_API_VERSION IN NUMBER,
87   P_INIT_MSG_LIST IN VARCHAR2 := FND_API.G_FALSE,
88   P_COMMIT IN VARCHAR2 := FND_API.G_FALSE,
89   P_VALIDATION_LEVEL IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
90   P_ROWID                         IN OUT NOCOPY VARCHAR2,
91   P_ACTIVITY_ASSOCIATION_ID       IN OUT NOCOPY NUMBER,
92   P_ORGANIZATION_ID               NUMBER,
93   P_ASSET_ACTIVITY_ID             NUMBER,
94   P_INVENTORY_ITEM_ID             NUMBER,
95   P_SERIAL_NUMBER                 VARCHAR2,
96   P_START_DATE_ACTIVE             DATE,
97   P_END_DATE_ACTIVE               DATE,
98   P_PRIORITY_CODE                 VARCHAR2,
99   P_ACTIVITY_CAUSE_CODE           VARCHAR2,
100   P_ACTIVITY_TYPE_CODE            VARCHAR2,
101   P_ACTIVITY_SOURCE_CODE          VARCHAR2,
102   P_CLASS_CODE                    VARCHAR2,
103   P_OWNING_DEPARTMENT_ID          NUMBER,
104   P_TAGGING_REQUIRED_FLAG         VARCHAR2,
105   P_SHUTDOWN_TYPE_CODE            VARCHAR2,
106   P_LAST_UPDATE_DATE              DATE,
107   P_LAST_UPDATED_BY               NUMBER,
108   P_CREATION_DATE                 DATE,
109   P_CREATED_BY                    NUMBER,
110   P_LAST_UPDATE_LOGIN             NUMBER,
111   P_ATTRIBUTE_CATEGORY            VARCHAR2,
112   P_ATTRIBUTE1                    VARCHAR2,
113   P_ATTRIBUTE2                    VARCHAR2,
114   P_ATTRIBUTE3                    VARCHAR2,
115   P_ATTRIBUTE4                    VARCHAR2,
116   P_ATTRIBUTE5                    VARCHAR2,
117   P_ATTRIBUTE6                    VARCHAR2,
118   P_ATTRIBUTE7                    VARCHAR2,
119   P_ATTRIBUTE8                    VARCHAR2,
120   P_ATTRIBUTE9                    VARCHAR2,
121   P_ATTRIBUTE10                   VARCHAR2,
122   P_ATTRIBUTE11                   VARCHAR2,
123   P_ATTRIBUTE12                   VARCHAR2,
124   P_ATTRIBUTE13                   VARCHAR2,
125   P_ATTRIBUTE14                   VARCHAR2,
126   P_ATTRIBUTE15                   VARCHAR2,
127   P_REQUEST_ID                    NUMBER,
128   P_PROGRAM_APPLICATION_ID        NUMBER,
129   P_PROGRAM_ID                    NUMBER,
130   P_PROGRAM_UPDATE_DATE           DATE,
131   P_TMPL_FLAG			VARCHAR2,
132   P_MAINTENANCE_OBJECT_ID	NUMBER,
133   P_MAINTENANCE_OBJECT_TYPE	NUMBER,
134   P_CREATION_ORGANIZATION_ID	NUMBER,
135   X_RETURN_STATUS OUT NOCOPY VARCHAR2,
136   X_MSG_COUNT OUT NOCOPY NUMBER,
137   X_MSG_DATA OUT NOCOPY VARCHAR2
138   ) IS
139     l_api_name       CONSTANT VARCHAR2(30) := 'insert_row';
140     l_api_version    CONSTANT NUMBER       := 1.0;
141     l_full_name      CONSTANT VARCHAR2(60) := g_pkg_name || '.' || l_api_name;
142     l_object_type             NUMBER;
143 
144     CURSOR C IS SELECT rowid FROM MTL_EAM_ASSET_ACTIVITIES
145                  WHERE ACTIVITY_ASSOCIATION_ID = P_ACTIVITY_ASSOCIATION_ID;
146 
147    BEGIN
148 
149    -- Standard Start of API savepoint
150       SAVEPOINT insert_row;
151 
152    -- Standard call to check for call compatibility.
153       IF NOT fnd_api.compatible_api_call(l_api_version, p_api_version, l_api_name, g_pkg_name) THEN
154          RAISE fnd_api.g_exc_unexpected_error;
155       END IF;
156 
157    -- Initialize message list if p_init_msg_list is set to TRUE.
158       IF fnd_api.to_boolean(p_init_msg_list) THEN
159          fnd_msg_pub.initialize;
160       END IF;
161 
162    -- Initialize API return status to success
163       x_return_status := fnd_api.g_ret_sts_success;
164 
165    -- API body
166 
167        INSERT INTO MTL_EAM_ASSET_ACTIVITIES(
168        ACTIVITY_ASSOCIATION_ID,
169        ASSET_ACTIVITY_ID,
170        INVENTORY_ITEM_ID,
171        SERIAL_NUMBER,
172        START_DATE_ACTIVE,
173        END_DATE_ACTIVE,
174        PRIORITY_CODE,
175        LAST_UPDATE_DATE,
176        LAST_UPDATED_BY,
177        CREATION_DATE,
178        CREATED_BY,
179        LAST_UPDATE_LOGIN,
180        ATTRIBUTE_CATEGORY,
181        ATTRIBUTE1,
182        ATTRIBUTE2,
183        ATTRIBUTE3,
184        ATTRIBUTE4,
185        ATTRIBUTE5,
186        ATTRIBUTE6,
187        ATTRIBUTE7,
188        ATTRIBUTE8,
189        ATTRIBUTE9,
190        ATTRIBUTE10,
191        ATTRIBUTE11,
192        ATTRIBUTE12,
193        ATTRIBUTE13,
194        ATTRIBUTE14,
195        ATTRIBUTE15,
196        REQUEST_ID,
197        PROGRAM_APPLICATION_ID,
198        PROGRAM_ID,
199        PROGRAM_UPDATE_DATE,
200 	TMPL_FLAG,
201 	MAINTENANCE_OBJECT_ID,
202 	MAINTENANCE_OBJECT_TYPE
203        ) VALUES (
204        mtl_eam_asset_activities_s.nextval,
205        P_ASSET_ACTIVITY_ID,
206        P_INVENTORY_ITEM_ID,
207        P_SERIAL_NUMBER,
208        P_START_DATE_ACTIVE,
209        P_END_DATE_ACTIVE,
210        P_PRIORITY_CODE,
211        P_LAST_UPDATE_DATE,
212        P_LAST_UPDATED_BY,
213        P_CREATION_DATE,
214        P_CREATED_BY,
215        P_LAST_UPDATE_LOGIN,
216        P_ATTRIBUTE_CATEGORY,
217        P_ATTRIBUTE1,
218        P_ATTRIBUTE2,
219        P_ATTRIBUTE3,
220        P_ATTRIBUTE4,
221        P_ATTRIBUTE5,
222        P_ATTRIBUTE6,
223        P_ATTRIBUTE7,
224        P_ATTRIBUTE8,
225        P_ATTRIBUTE9,
226        P_ATTRIBUTE10,
227        P_ATTRIBUTE11,
228        P_ATTRIBUTE12,
229        P_ATTRIBUTE13,
230        P_ATTRIBUTE14,
231        P_ATTRIBUTE15,
232        P_REQUEST_ID,
233        P_PROGRAM_APPLICATION_ID,
234        P_PROGRAM_ID,
235        P_PROGRAM_UPDATE_DATE,
236        P_TMPL_FLAG,
237        P_MAINTENANCE_OBJECT_ID,
238        P_MAINTENANCE_OBJECT_TYPE
239        ) returning activity_association_id, rowid into P_ACTIVITY_ASSOCIATION_ID, P_ROWID;
240 
241        IF p_maintenance_object_type = 2 THEN
242           l_object_type := 40;
243        ELSE
244           l_object_type := 60;
245        END IF;
246 
247        eam_org_maint_defaults_pvt.insert_row
248 	(
249 	      p_api_version           => 1.0
250 	     ,p_object_type           => l_object_type
251 	     ,p_object_id             => p_activity_association_id
252 	     ,p_organization_id       => p_organization_Id
253 	     ,p_owning_department_id  => p_owning_department_id
254 	     ,p_accounting_class_code => p_class_code
255 	     ,p_activity_cause_code   => p_activity_cause_code
256 	     ,p_activity_type_code    => p_activity_type_code
257 	     ,p_activity_source_code  => p_activity_source_code
258 	     ,p_shutdown_type_code    => p_shutdown_type_code
259 	     ,p_tagging_required_flag => p_tagging_required_flag
260 	     ,x_return_status         => x_return_status
261 	     ,x_msg_count             => x_msg_count
262 	     ,x_msg_data              => x_msg_data
263 	);
264 
265        IF x_return_status <> fnd_api.g_ret_sts_success THEN
266 	  RAISE fnd_api.g_exc_error;
267        END IF;
268 
269 
270     OPEN C;
271     FETCH C INTO P_Rowid;
272     if (C%NOTFOUND) then
273       CLOSE C;
274       Raise NO_DATA_FOUND;
275     end if;
276     CLOSE C;
277 
278    -- End of API body.
279    -- Standard check of p_commit.
280       IF fnd_api.to_boolean(p_commit) THEN
281          COMMIT WORK;
282       END IF;
283 
284    -- Standard call to get message count and if count is 1, get message info.
285       fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
286    EXCEPTION
287       WHEN fnd_api.g_exc_error THEN
288          ROLLBACK TO insert_row;
289          x_return_status := fnd_api.g_ret_sts_error;
290          fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
291       WHEN fnd_api.g_exc_unexpected_error THEN
292          ROLLBACK TO insert_row;
293          x_return_status := fnd_api.g_ret_sts_unexp_error;
294          fnd_msg_pub.count_and_get(
295             p_count => x_msg_count
296            ,p_data => x_msg_data);
297       WHEN OTHERS THEN
298          ROLLBACK TO insert_row;
299          x_return_status := fnd_api.g_ret_sts_unexp_error;
300 
301          IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
302             fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
303          END IF;
304 
305          fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
306 
307   END Insert_Row;
308 
309 PROCEDURE LOCK_ROW(
310   P_API_VERSION IN NUMBER,
311   P_INIT_MSG_LIST IN VARCHAR2 := FND_API.G_FALSE,
312   P_COMMIT IN VARCHAR2 := FND_API.G_FALSE,
313   P_VALIDATION_LEVEL IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
314   P_ROWID                           VARCHAR2,
315   P_ACTIVITY_ASSOCIATION_ID         NUMBER,
316   P_ORGANIZATION_ID                 NUMBER,
317   P_ASSET_ACTIVITY_ID               NUMBER,
318   P_INVENTORY_ITEM_ID               NUMBER,
319   P_SERIAL_NUMBER                   VARCHAR2,
320   P_START_DATE_ACTIVE               DATE,
321   P_END_DATE_ACTIVE                 DATE,
322   P_PRIORITY_CODE                   VARCHAR2,
323   P_ACTIVITY_CAUSE_CODE             VARCHAR2,
324   P_ACTIVITY_TYPE_CODE              VARCHAR2,
325   P_ACTIVITY_SOURCE_CODE          VARCHAR2,
326   P_CLASS_CODE                      VARCHAR2,
327   P_OWNING_DEPARTMENT_ID            NUMBER,
328   P_TAGGING_REQUIRED_FLAG           VARCHAR2,
329   P_SHUTDOWN_TYPE_CODE              VARCHAR2,
330   P_ATTRIBUTE_CATEGORY              VARCHAR2,
331   P_ATTRIBUTE1                      VARCHAR2,
332   P_ATTRIBUTE2                      VARCHAR2,
333   P_ATTRIBUTE3                      VARCHAR2,
334   P_ATTRIBUTE4                      VARCHAR2,
335   P_ATTRIBUTE5                      VARCHAR2,
336   P_ATTRIBUTE6                      VARCHAR2,
337   P_ATTRIBUTE7                      VARCHAR2,
338   P_ATTRIBUTE8                      VARCHAR2,
339   P_ATTRIBUTE9                      VARCHAR2,
340   P_ATTRIBUTE10                     VARCHAR2,
341   P_ATTRIBUTE11                     VARCHAR2,
342   P_ATTRIBUTE12                     VARCHAR2,
343   P_ATTRIBUTE13                     VARCHAR2,
344   P_ATTRIBUTE14                       VARCHAR2,
345   P_ATTRIBUTE15                       VARCHAR2,
346   P_REQUEST_ID                        NUMBER,
347   P_PROGRAM_APPLICATION_ID            NUMBER,
348   P_PROGRAM_ID                        NUMBER,
349   P_PROGRAM_UPDATE_DATE               DATE,
350   P_MAINTENANCE_OBJECT_ID	NUMBER,
351   P_MAINTENANCE_OBJECT_TYPE	NUMBER,
352   X_RETURN_STATUS OUT NOCOPY VARCHAR2,
353   X_MSG_COUNT OUT NOCOPY NUMBER,
354   X_MSG_DATA OUT NOCOPY VARCHAR2
355   ) IS
356     l_api_name       CONSTANT VARCHAR2(30) := 'lock_row';
357     l_api_version    CONSTANT NUMBER       := 1.0;
358     l_full_name      CONSTANT VARCHAR2(60)   := g_pkg_name || '.' || l_api_name;
359 
360     CURSOR C IS
361         SELECT *
362         FROM   MTL_EAM_ASSET_ACTIVITIES
363         WHERE  rowid = P_Rowid
364         FOR UPDATE of ASSET_ACTIVITY_ID NOWAIT;
365     Recinfo C%ROWTYPE;
366 
367   BEGIN
368 
369    -- Standard Start of API savepoint
370       SAVEPOINT lock_row;
371 
372    -- Standard call to check for call compatibility.
373       IF NOT fnd_api.compatible_api_call(l_api_version, p_api_version, l_api_name, g_pkg_name) THEN
374          RAISE fnd_api.g_exc_unexpected_error;
375       END IF;
376 
377    -- Initialize message list if p_init_msg_list is set to TRUE.
378       IF fnd_api.to_boolean(p_init_msg_list) THEN
379          fnd_msg_pub.initialize;
380       END IF;
381 
382    -- Initialize API return status to success
383       x_return_status := fnd_api.g_ret_sts_success;
384 
385    -- API body
386 
387     OPEN C;
388     FETCH C INTO Recinfo;
389     if (C%NOTFOUND) then
390       CLOSE C;
391       FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_DELETED');
392       APP_EXCEPTION.Raise_Exception;
393     end if;
394     CLOSE C;
395     if (
396        (Recinfo.ACTIVITY_ASSOCIATION_ID =  P_ACTIVITY_ASSOCIATION_ID)
397        AND (Recinfo.ASSET_ACTIVITY_ID =  P_ASSET_ACTIVITY_ID)
398        AND (   (Recinfo.START_DATE_ACTIVE =  P_START_DATE_ACTIVE)
402             OR (    (Recinfo.END_DATE_ACTIVE IS NULL)
399             OR (    (Recinfo.START_DATE_ACTIVE IS NULL)
400                 AND (P_START_DATE_ACTIVE IS NULL)))
401        AND (   (Recinfo.END_DATE_ACTIVE =  P_END_DATE_ACTIVE)
403                 AND (P_END_DATE_ACTIVE IS NULL)))
404        AND (   (Recinfo.PRIORITY_CODE =  P_PRIORITY_CODE)
405             OR (    (Recinfo.PRIORITY_CODE IS NULL)
406                 AND (P_PRIORITY_CODE IS NULL)))
407        AND (   (Recinfo.attribute_category =  P_Attribute_Category)
408             OR (    (Recinfo.attribute_category IS NULL)
409                 AND (P_Attribute_Category IS NULL)))
410        AND (   (Recinfo.attribute1 =  P_Attribute1)
411             OR (    (Recinfo.attribute1 IS NULL)
412                 AND (P_Attribute1 IS NULL)))
413        AND (   (Recinfo.attribute2 =  P_Attribute2)
414             OR (    (Recinfo.attribute2 IS NULL)
415                 AND (P_Attribute2 IS NULL)))
416        AND (   (Recinfo.attribute3 =  P_Attribute3)
417             OR (    (Recinfo.attribute3 IS NULL)
418                 AND (P_Attribute3 IS NULL)))
419        AND (   (Recinfo.attribute4 =  P_Attribute4)
420             OR (    (Recinfo.attribute4 IS NULL)
421                 AND (P_Attribute4 IS NULL)))
422        AND (   (Recinfo.attribute5 =  P_Attribute5)
423             OR (    (Recinfo.attribute5 IS NULL)
424                 AND (P_Attribute5 IS NULL)))
425        AND (   (Recinfo.attribute6 =  P_Attribute6)
426             OR (    (Recinfo.attribute6 IS NULL)
427                 AND (P_Attribute6 IS NULL)))
428        AND (   (Recinfo.attribute7 =  P_Attribute7)
429             OR (    (Recinfo.attribute7 IS NULL)
430                 AND (P_Attribute7 IS NULL)))
431        AND (   (Recinfo.attribute8 =  P_Attribute8)
432             OR (    (Recinfo.attribute8 IS NULL)
433                 AND (P_Attribute8 IS NULL)))
434        AND (   (Recinfo.attribute9 =  P_Attribute9)
435             OR (    (Recinfo.attribute9 IS NULL)
436                 AND (P_Attribute9 IS NULL)))
437        AND (   (Recinfo.attribute10 =  P_Attribute10)
438             OR (    (Recinfo.attribute10 IS NULL)
439                 AND (P_Attribute10 IS NULL)))
440        AND (   (Recinfo.attribute11 =  P_Attribute11)
441             OR (    (Recinfo.attribute11 IS NULL)
442                 AND (P_Attribute11 IS NULL)))
443        AND (   (Recinfo.attribute12 =  P_Attribute12)
444             OR (    (Recinfo.attribute12 IS NULL)
445                 AND (P_Attribute12 IS NULL)))
446        AND (   (Recinfo.attribute13 =  P_Attribute13)
447             OR (    (Recinfo.attribute13 IS NULL)
448                 AND (P_Attribute13 IS NULL)))
449        AND (   (Recinfo.attribute14 =  P_Attribute14)
450             OR (    (Recinfo.attribute14 IS NULL)
451                 AND (P_Attribute14 IS NULL)))
452        AND (   (Recinfo.attribute15 =  P_Attribute15)
453             OR (    (Recinfo.attribute15 IS NULL)
454                 AND (P_Attribute15 IS NULL)))
455        AND (   (Recinfo.REQUEST_ID = P_REQUEST_ID)
456             OR (    (Recinfo.REQUEST_ID IS NULL)
457                 AND (P_REQUEST_ID IS NULL)))
458        AND (   (Recinfo.PROGRAM_APPLICATION_ID = P_PROGRAM_APPLICATION_ID)
459             OR (    (Recinfo.PROGRAM_APPLICATION_ID IS NULL)
460                 AND (P_PROGRAM_APPLICATION_ID IS NULL)))
461        AND (   (Recinfo.PROGRAM_ID = P_PROGRAM_ID)
462             OR (    (Recinfo.PROGRAM_ID IS NULL)
463                 AND (P_PROGRAM_ID IS NULL)))
464        AND (   (Recinfo.PROGRAM_UPDATE_DATE = P_PROGRAM_UPDATE_DATE)
465             OR (    (Recinfo.PROGRAM_UPDATE_DATE IS NULL)
466                 AND (P_PROGRAM_UPDATE_DATE IS NULL)))
467        AND (   (Recinfo.MAINTENANCE_OBJECT_ID = P_MAINTENANCE_OBJECT_ID)
468             OR (    (Recinfo.MAINTENANCE_OBJECT_ID IS NULL)
469                 AND (P_MAINTENANCE_OBJECT_ID IS NULL)))
470        AND (   (Recinfo.MAINTENANCE_OBJECT_TYPE = P_MAINTENANCE_OBJECT_TYPE)
471             OR (    (Recinfo.MAINTENANCE_OBJECT_TYPE IS NULL)
472                 AND (P_MAINTENANCE_OBJECT_TYPE IS NULL)))
473       ) then
474       return;
475     else
476       FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
477       APP_EXCEPTION.Raise_Exception;
478     end if;
479 
480    -- End of API body.
481    -- Standard check of p_commit.
482       IF fnd_api.to_boolean(p_commit) THEN
483          COMMIT WORK;
484       END IF;
485 
486    -- Standard call to get message count and if count is 1, get message info.
487       fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
488    EXCEPTION
489       WHEN fnd_api.g_exc_error THEN
490          ROLLBACK TO lock_row;
491          x_return_status := fnd_api.g_ret_sts_error;
492          fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
493       WHEN fnd_api.g_exc_unexpected_error THEN
494          ROLLBACK TO lock_row;
495          x_return_status := fnd_api.g_ret_sts_unexp_error;
496          fnd_msg_pub.count_and_get(
497             p_count => x_msg_count
498            ,p_data => x_msg_data);
499       WHEN OTHERS THEN
500          ROLLBACK TO lock_row;
501          x_return_status := fnd_api.g_ret_sts_unexp_error;
502 
503          IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
504             fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
505          END IF;
506 
510 
507          fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
508 
509   END Lock_Row;
511 PROCEDURE UPDATE_ROW(
512   P_API_VERSION IN NUMBER,
513   P_INIT_MSG_LIST IN VARCHAR2 := FND_API.G_FALSE,
514   P_COMMIT IN VARCHAR2 := FND_API.G_FALSE,
515   P_VALIDATION_LEVEL IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
516   P_ROWID                         VARCHAR2,
517   P_ACTIVITY_ASSOCIATION_ID       NUMBER,
518   P_ORGANIZATION_ID               NUMBER,
519   P_ASSET_ACTIVITY_ID             NUMBER,
520   P_INVENTORY_ITEM_ID             NUMBER,
521   P_SERIAL_NUMBER                 VARCHAR2,
522   P_START_DATE_ACTIVE             DATE,
523   P_END_DATE_ACTIVE               DATE,
524   P_PRIORITY_CODE                 VARCHAR2,
525   P_ACTIVITY_CAUSE_CODE           VARCHAR2,
526   P_ACTIVITY_TYPE_CODE            VARCHAR2,
527   P_ACTIVITY_SOURCE_CODE          VARCHAR2,
528   P_CLASS_CODE                    VARCHAR2,
529   P_OWNING_DEPARTMENT_ID          NUMBER,
530   P_TAGGING_REQUIRED_FLAG         VARCHAR2,
531   P_SHUTDOWN_TYPE_CODE            VARCHAR2,
532   P_LAST_UPDATE_DATE              DATE,
533   P_LAST_UPDATED_BY               NUMBER,
534   P_LAST_UPDATE_LOGIN             NUMBER,
535   P_ATTRIBUTE_CATEGORY            VARCHAR2,
536   P_ATTRIBUTE1                    VARCHAR2,
537   P_ATTRIBUTE2                    VARCHAR2,
538   P_ATTRIBUTE3                    VARCHAR2,
539   P_ATTRIBUTE4                    VARCHAR2,
540   P_ATTRIBUTE5                    VARCHAR2,
541   P_ATTRIBUTE6                    VARCHAR2,
542   P_ATTRIBUTE7                    VARCHAR2,
543   P_ATTRIBUTE8                    VARCHAR2,
544   P_ATTRIBUTE9                    VARCHAR2,
545   P_ATTRIBUTE10                   VARCHAR2,
546   P_ATTRIBUTE11                   VARCHAR2,
547   P_ATTRIBUTE12                   VARCHAR2,
548   P_ATTRIBUTE13                   VARCHAR2,
549   P_ATTRIBUTE14                   VARCHAR2,
550   P_ATTRIBUTE15                   VARCHAR2,
551   P_REQUEST_ID                    NUMBER,
552   P_PROGRAM_APPLICATION_ID        NUMBER,
553   P_PROGRAM_ID                    NUMBER,
554   P_PROGRAM_UPDATE_DATE           DATE,
555   P_MAINTENANCE_OBJECT_ID	NUMBER,
556   P_MAINTENANCE_OBJECT_TYPE	NUMBER,
557   X_RETURN_STATUS OUT NOCOPY VARCHAR2,
558   X_MSG_COUNT OUT NOCOPY NUMBER,
559   X_MSG_DATA OUT NOCOPY VARCHAR2
560   ) IS
561     l_api_name       CONSTANT VARCHAR2(30) := 'update_row';
562     l_api_version    CONSTANT NUMBER       := 1.0;
563     l_full_name      CONSTANT VARCHAR2(60) := g_pkg_name || '.' || l_api_name;
564     l_object_type             NUMBER;
565   BEGIN
566    -- Standard Start of API savepoint
567       SAVEPOINT update_row;
568 
569    -- Standard call to check for call compatibility.
570       IF NOT fnd_api.compatible_api_call(l_api_version, p_api_version, l_api_name, g_pkg_name) THEN
571          RAISE fnd_api.g_exc_unexpected_error;
572       END IF;
573 
574    -- Initialize message list if p_init_msg_list is set to TRUE.
575       IF fnd_api.to_boolean(p_init_msg_list) THEN
576          fnd_msg_pub.initialize;
577       END IF;
578 
579    -- Initialize API return status to success
580       x_return_status := fnd_api.g_ret_sts_success;
581 
582    -- API body
583 
584     UPDATE MTL_EAM_ASSET_ACTIVITIES
585     SET
586 --     INVENTORY_ITEM_ID               =     P_INVENTORY_ITEM_ID,
587 --     SERIAL_NUMBER                   =     P_SERIAL_NUMBER,
588      START_DATE_ACTIVE               =     P_START_DATE_ACTIVE,
589      END_DATE_ACTIVE                 =     P_END_DATE_ACTIVE,
590      PRIORITY_CODE                   =     P_PRIORITY_CODE,
591      LAST_UPDATE_DATE                =     P_LAST_UPDATE_DATE,
592      LAST_UPDATED_BY                 =     P_LAST_UPDATED_BY,
593      LAST_UPDATE_LOGIN               =     P_LAST_UPDATE_LOGIN,
594      ATTRIBUTE_CATEGORY              =     P_ATTRIBUTE_CATEGORY,
595      ATTRIBUTE1                      =     P_ATTRIBUTE1,
596      ATTRIBUTE2                      =     P_ATTRIBUTE2,
597      ATTRIBUTE3                      =     P_ATTRIBUTE3,
598      ATTRIBUTE4                      =     P_ATTRIBUTE4,
599      ATTRIBUTE5                      =     P_ATTRIBUTE5,
600      ATTRIBUTE6                      =     P_ATTRIBUTE6,
601      ATTRIBUTE7                      =     P_ATTRIBUTE7,
602      ATTRIBUTE8                      =     P_ATTRIBUTE8,
603      ATTRIBUTE9                      =     P_ATTRIBUTE9,
604      ATTRIBUTE10                     =     P_ATTRIBUTE10,
605      ATTRIBUTE11                     =     P_ATTRIBUTE11,
606      ATTRIBUTE12                     =     P_ATTRIBUTE12,
607      ATTRIBUTE13                     =     P_ATTRIBUTE13,
608      ATTRIBUTE14                     =     P_ATTRIBUTE14,
609      ATTRIBUTE15                     =     P_ATTRIBUTE15,
610      REQUEST_ID                      =     P_REQUEST_ID,
611      PROGRAM_APPLICATION_ID          =     P_PROGRAM_APPLICATION_ID,
612      PROGRAM_ID                      =     P_PROGRAM_ID,
613      PROGRAM_UPDATE_DATE             =     P_PROGRAM_UPDATE_DATE,
614 	MAINTENANCE_OBJECT_ID	=	P_MAINTENANCE_OBJECT_ID,
615  	MAINTENANCE_OBJECT_TYPE	=	P_MAINTENANCE_OBJECT_TYPE
616     WHERE ROWID = P_ROWID;
617 
618     if (SQL%NOTFOUND) then
619       Raise NO_DATA_FOUND;
620     end if;
621 
622     IF p_maintenance_object_type = 2 THEN
623        l_object_type := 40;
624     ELSE
625        l_object_type := 60;
626     END IF;
627 
628     eam_org_maint_defaults_pvt.update_insert_row
629     (
630       p_api_version           => 1.0
634      ,p_owning_department_id  => to_fnd_std_num(p_owning_department_id)
631      ,p_object_type           => l_object_type
632      ,p_object_id             => p_activity_association_id
633      ,p_organization_id       => p_organization_Id
635      ,p_accounting_class_code => to_fnd_std_char(p_class_code)
636      ,p_activity_cause_code   => to_fnd_std_char(p_activity_cause_code)
637      ,p_activity_type_code    => to_fnd_std_char(p_activity_type_code)
638      ,p_activity_source_code  => to_fnd_std_char(p_activity_source_code)
639      ,p_shutdown_type_code    => to_fnd_std_char(p_shutdown_type_code)
640      ,p_tagging_required_flag => to_fnd_std_char(p_tagging_required_flag)
641      ,x_return_status         => x_return_status
642      ,x_msg_count             => x_msg_count
643      ,x_msg_data              => x_msg_data
644     );
645 
646     IF x_return_status <> fnd_api.g_ret_sts_success THEN
647        RAISE fnd_api.g_exc_error;
648     END IF;
649 
650    -- End of API body.
651    -- Standard check of p_commit.
652       IF fnd_api.to_boolean(p_commit) THEN
653          COMMIT WORK;
654       END IF;
655 
656    -- Standard call to get message count and if count is 1, get message info.
657       fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
658    EXCEPTION
659       WHEN fnd_api.g_exc_error THEN
660          ROLLBACK TO update_row;
661          x_return_status := fnd_api.g_ret_sts_error;
662          fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
663       WHEN fnd_api.g_exc_unexpected_error THEN
664          ROLLBACK TO update_row;
665          x_return_status := fnd_api.g_ret_sts_unexp_error;
666          fnd_msg_pub.count_and_get(
667             p_count => x_msg_count
668            ,p_data => x_msg_data);
669       WHEN OTHERS THEN
670          ROLLBACK TO update_row;
671          x_return_status := fnd_api.g_ret_sts_unexp_error;
672 
673          IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
674             fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
675          END IF;
676 
677          fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
678 
679   END Update_Row;
680 
681 END EAM_ASSET_ACTIVITIES_PVT;