DBA Data[Home] [Help]

PACKAGE BODY: APPS.INV_EAM_ASSET_NUMBER_PVT

Source


1 PACKAGE BODY INV_EAM_ASSET_NUMBER_PVT as
2 /* $Header: INVEANDB.pls 115.14 2003/10/10 19:45:16 hkarmach ship $ */
3  -- Start of comments
4  -- API name    : INV_EAM_ASSET_NUMBER_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_INVENTORY_ITEM_ID           IN  NUMBER
18  --          P_SERIAL_NUMBER               IN  VARCHAR2
19  --          P_START_DATE_ACTIVE           IN  DATE
20  --          P_DESCRIPTIVE_TEXT            IN  VARCHAR2
21  --          P_ORGANIZATION_ID             IN  NUMBER
22  --          P_CATEGORY_ID                 IN  NUMBER
23  --          P_PN_LOCATION_ID              IN  NUMBER
24  --          P_EAM_LOCATION_ID             IN  NUMBER
25  --          P_FA_ASSET_ID                 IN  NUMBER
26  --          P_ASSET_STATUS_CODE           IN  VARCHAR2
27  --          P_ASSET_CRITICALITY_CODE      IN  VARCHAR2
28  --          P_WIP_ACCOUNTING_CLASS_CODE   IN  VARCHAR2
29  --          P_MAINTAINABLE_FLAG           IN  VARCHAR2
30  --          P_NETWORK_ASSET_FLAG          IN  VARCHAR2
31  --          P_OWNING_DEPARTMENT_ID        IN  NUMBER
32  --          P_ATTRIBUTE_CATEGORY          IN  VARCHAR2    OPTIONAL
33  --          P_ATTRIBUTE1                  IN  VARCHAR2    OPTIONAL
34  --          P_ATTRIBUTE2                  IN  VARCHAR2    OPTIONAL
35  --          P_ATTRIBUTE3                  IN  VARCHAR2    OPTIONAL
36  --          P_ATTRIBUTE4                  IN  VARCHAR2    OPTIONAL
37  --          P_ATTRIBUTE5                  IN  VARCHAR2    OPTIONAL
38  --          P_ATTRIBUTE6                  IN  VARCHAR2    OPTIONAL
39  --          P_ATTRIBUTE7                  IN  VARCHAR2    OPTIONAL
40  --          P_ATTRIBUTE8                  IN  VARCHAR2    OPTIONAL
41  --          P_ATTRIBUTE9                  IN  VARCHAR2    OPTIONAL
42  --          P_ATTRIBUTE10                 IN  VARCHAR2    OPTIONAL
43  --          P_ATTRIBUTE11                 IN  VARCHAR2    OPTIONAL
44  --          P_ATTRIBUTE12                 IN  VARCHAR2    OPTIONAL
45  --          P_ATTRIBUTE13                 IN  VARCHAR2    OPTIONAL
46  --          P_ATTRIBUTE14                 IN  VARCHAR2    OPTIONAL
47  --          P_ATTRIBUTE15                 IN  VARCHAR2    OPTIONAL
48  --          P_LAST_UPDATE_DATE            IN  DATE        REQUIRED
49  --          P_LAST_UPDATED_BY             IN  NUMBER      REQUIRED
50  --          P_CREATION_DATE               IN  DATE        REQUIRED
51  --          P_CREATED_BY                  IN  NUMBER      REQUIRED
52  --          P_LAST_UPDATE_LOGIN           IN  NUMBER      REQUIRED
53  --          P_REQUEST_ID                  IN  NUMBER DEFAULT NULL OPTIONAL
54  --          P_PROGRAM_APPLICATION_ID      IN  NUMBER DEFAULT NULL OPTIONAL
55  --          P_PROGRAM_ID                  IN  NUMBER DEFAULT NULL OPTIONAL
56  --          P_PROGRAM_UPDATE_DATE         IN  DATE DEFAULT NULL
57  -- OUT      X_OBJECT_ID                   OUT NUMBER
58  --          X_RETURN_STATUS               OUT VARCHAR2(1)
59  --          X_MSG_COUNT                   OUT NUMBER
60  --          X_MSG_DATA                    OUT VARCHAR2(2000)
61  --
62  -- Version  Current version 115.0
63  --
64  -- Notes    : Note text
65  --
66  -- End of comments
67 
68    g_pkg_name    CONSTANT VARCHAR2(30):= 'inv_eam_asset_number_pvt';
69 
70 
71 PROCEDURE SERIAL_CHECK
72 ( p_api_version                IN    NUMBER,
73   p_init_msg_list              IN    VARCHAR2 DEFAULT FND_API.G_FALSE,
74   p_commit                     IN    VARCHAR2 DEFAULT FND_API.G_FALSE,
75   p_validation_level           IN    NUMBER DEFAULT FND_API.G_VALID_LEVEL_FULL,
76   x_return_status              OUT NOCOPY   VARCHAR2,
77   x_msg_count                  OUT NOCOPY   NUMBER,
78   x_msg_data                   OUT NOCOPY   VARCHAR2,
79   x_errorcode                  OUT NOCOPY   NUMBER,
80   x_ser_num_in_item_id		OUT NOCOPY boolean,
81   p_INVENTORY_ITEM_ID		IN NUMBER,
82   p_SERIAL_NUMBER              IN    VARCHAR2,
83   p_ORGANIZATION_ID            IN    NUMBER
84 ) IS
85     l_api_name       CONSTANT VARCHAR2(30) := 'serial_check';
86     l_api_version    CONSTANT NUMBER       := 1.0;
87     l_full_name      CONSTANT VARCHAR2(60) := g_pkg_name || '.' || l_api_name;
88     l_serial_number_type number;
89     l_count number;
90 BEGIN
91 
92       -- Standard Start of API savepoint
93       SAVEPOINT serial_check;
94 
95       -- Standard call to check for call compatibility.
96       IF NOT fnd_api.compatible_api_call(
97             l_api_version
98            ,p_api_version
99            ,l_api_name
100            ,g_pkg_name) THEN
101          RAISE fnd_api.g_exc_unexpected_error;
102       END IF;
103 
104       -- Initialize message list if p_init_msg_list is set to TRUE.
105       IF fnd_api.to_boolean(p_init_msg_list) THEN
106          fnd_msg_pub.initialize;
107       END IF;
108 
109       --  Initialize API return status to success
110       x_return_status := fnd_api.g_ret_sts_success;
111 
112       -- API body
113 
114    -- added to fix bug 2446341
115    -- get serial_number_type and pass it to mtl_serial_check.SNUniqueCheck
116 
117    x_ser_num_in_item_id := FALSE;
118    select serial_number_type
119    into l_serial_number_type
120    from mtl_parameters
121    where organization_id = p_organization_id;
122 
123     mtl_serial_check.SNUniqueCheck(
124       p_api_version         =>  0.9,
125       x_return_status       =>  x_return_status,
126       x_errorcode           =>  x_errorcode,
127       x_msg_count           =>  x_msg_count,
128       x_msg_data            =>  x_msg_data,
129       p_org_id              =>  p_organization_id,
130       p_serial_number_type  =>  l_serial_number_type,
131       p_serial_number       =>  p_Serial_number);
132 
133 
134     /*IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
135        RAISE FND_API.G_EXC_ERROR ;
136     END IF;
137     */
138 
139     -- check if serial number exists within asset group
140     select count(1) into l_count
141     from mtl_serial_numbers
142     where inventory_item_id = p_inventory_item_id
143     and serial_number = p_serial_number;
144 
145     if l_count > 0 then
146     	x_return_status := FND_API.G_RET_STS_ERROR;
147     	x_ser_num_in_item_id := TRUE;
148     else
149         x_ser_num_in_item_id := FALSE;
150     end if;
151 
152 
153 
154       -- End of API body.
155       -- Standard check of p_commit.
156       IF fnd_api.to_boolean(p_commit) THEN
157          COMMIT WORK;
158       END IF;
159 
160       -- Standard call to get message count and if count is 1, get message info.
161       fnd_msg_pub.count_and_get(
162          p_count => x_msg_count
163         ,p_data => x_msg_data);
164 
165 
166    EXCEPTION
167       WHEN fnd_api.g_exc_error THEN
168          ROLLBACK TO serial_check;
169          x_return_status := fnd_api.g_ret_sts_error;
170          fnd_msg_pub.count_and_get(
171             p_count => x_msg_count
172            ,p_data => x_msg_data);
173       WHEN fnd_api.g_exc_unexpected_error THEN
174          ROLLBACK TO serial_check;
175          x_return_status := fnd_api.g_ret_sts_unexp_error;
176          fnd_msg_pub.count_and_get(
177             p_count => x_msg_count
178            ,p_data => x_msg_data);
179       WHEN OTHERS THEN
180          ROLLBACK TO serial_check;
181          x_return_status := fnd_api.g_ret_sts_unexp_error;
182 
183          IF fnd_msg_pub.check_msg_level(
184                fnd_msg_pub.g_msg_lvl_unexp_error) THEN
185             fnd_msg_pub.add_exc_msg(G_PKG_NAME, l_api_name);
186          END IF;
187 
188          fnd_msg_pub.count_and_get(
189             p_count => x_msg_count
190            ,p_data => x_msg_data);
191 
192 END SERIAL_CHECK;
193 
194 
195 PROCEDURE INSERT_ROW(
196   P_API_VERSION                IN NUMBER,
197   P_INIT_MSG_LIST              IN VARCHAR2 := FND_API.G_FALSE,
198   P_COMMIT                     IN VARCHAR2 := FND_API.G_FALSE,
199   P_VALIDATION_LEVEL           IN NUMBER   := FND_API.G_VALID_LEVEL_FULL,
200   P_ROWID                  IN OUT NOCOPY VARCHAR2,
201   P_INVENTORY_ITEM_ID             NUMBER,
202   P_SERIAL_NUMBER                 VARCHAR2,
203   P_INITIALIZATION_DATE           DATE,
204   P_DESCRIPTIVE_TEXT              VARCHAR2,
205   P_ORGANIZATION_ID               NUMBER,
206   P_CATEGORY_ID                   NUMBER,
207   P_PROD_ORGANIZATION_ID          NUMBER,
208   P_EQUIPMENT_ITEM_ID             NUMBER,
209   P_EQP_SERIAL_NUMBER             VARCHAR2,
210   P_PN_LOCATION_ID                NUMBER,
211   P_EAM_LOCATION_ID               NUMBER,
212   P_FA_ASSET_ID                   NUMBER,
213   P_ASSET_CRITICALITY_CODE        VARCHAR2,
214   P_WIP_ACCOUNTING_CLASS_CODE     VARCHAR2,
215   P_MAINTAINABLE_FLAG             VARCHAR2,
216   P_NETWORK_ASSET_FLAG            VARCHAR2,
217   P_OWNING_DEPARTMENT_ID          NUMBER,
218   P_CURRENT_STATUS                NUMBER,
219   P_ATTRIBUTE_CATEGORY            VARCHAR2,
220   P_ATTRIBUTE1                    VARCHAR2,
221   P_ATTRIBUTE2                    VARCHAR2,
222   P_ATTRIBUTE3                    VARCHAR2,
223   P_ATTRIBUTE4                    VARCHAR2,
224   P_ATTRIBUTE5                    VARCHAR2,
225   P_ATTRIBUTE6                    VARCHAR2,
226   P_ATTRIBUTE7                    VARCHAR2,
227   P_ATTRIBUTE8                    VARCHAR2,
228   P_ATTRIBUTE9                    VARCHAR2,
229   P_ATTRIBUTE10                   VARCHAR2,
230   P_ATTRIBUTE11                   VARCHAR2,
231   P_ATTRIBUTE12                   VARCHAR2,
232   P_ATTRIBUTE13                   VARCHAR2,
233   P_ATTRIBUTE14                   VARCHAR2,
234   P_ATTRIBUTE15                   VARCHAR2,
235   P_COMPLETION_DATE               DATE     DEFAULT NULL,
236   P_SHIP_DATE                     DATE     DEFAULT NULL,
237   P_REVISION                      VARCHAR2 DEFAULT NULL,
238   P_LOT_NUMBER                    VARCHAR2 DEFAULT NULL,
239   P_FIXED_ASSET_TAG               VARCHAR2 DEFAULT NULL,
240   P_RESERVED_ORDER_ID             NUMBER   DEFAULT NULL,
241   P_PARENT_ITEM_ID                NUMBER   DEFAULT NULL,
242   P_PARENT_SERIAL_NUMBER          VARCHAR2 DEFAULT NULL,
243   P_ORIGINAL_WIP_ENTITY_ID        NUMBER   DEFAULT NULL,
244   P_ORIGINAL_UNIT_VENDOR_ID       NUMBER   DEFAULT NULL,
245   P_VENDOR_SERIAL_NUMBER          VARCHAR2 DEFAULT NULL,
246   P_VENDOR_LOT_NUMBER             VARCHAR2 DEFAULT NULL,
247   P_LAST_TXN_SOURCE_TYPE_ID       NUMBER   DEFAULT NULL,
248   P_LAST_TRANSACTION_ID           NUMBER   DEFAULT NULL,
249   P_LAST_RECEIPT_ISSUE_TYPE       NUMBER   DEFAULT NULL,
250   P_LAST_TXN_SOURCE_NAME          VARCHAR2 DEFAULT NULL,
251   P_LAST_TXN_SOURCE_ID            NUMBER   DEFAULT NULL,
252   P_CURRENT_SUBINVENTORY_CODE     VARCHAR2 DEFAULT NULL,
253   P_CURRENT_LOCATOR_ID            NUMBER   DEFAULT NULL,
254   P_GROUP_MARK_ID                 NUMBER   DEFAULT NULL,
255   P_LINE_MARK_ID                  NUMBER   DEFAULT NULL,
256   P_LOT_LINE_MARK_ID              NUMBER   DEFAULT NULL,
257   P_END_ITEM_UNIT_NUMBER          VARCHAR2 DEFAULT NULL,
258   P_SERIAL_ATTRIBUTE_CATEGORY     VARCHAR2 DEFAULT NULL,
259   P_ORIGINATION_DATE              DATE     DEFAULT NULL,
260   P_C_ATTRIBUTE1                  VARCHAR2 DEFAULT NULL,
261   P_C_ATTRIBUTE2                  VARCHAR2 DEFAULT NULL,
262   P_C_ATTRIBUTE3                  VARCHAR2 DEFAULT NULL,
263   P_C_ATTRIBUTE4                  VARCHAR2 DEFAULT NULL,
264   P_C_ATTRIBUTE5                  VARCHAR2 DEFAULT NULL,
265   P_C_ATTRIBUTE6                  VARCHAR2 DEFAULT NULL,
266   P_C_ATTRIBUTE7                  VARCHAR2 DEFAULT NULL,
267   P_C_ATTRIBUTE8                  VARCHAR2 DEFAULT NULL,
268   P_C_ATTRIBUTE9                  VARCHAR2 DEFAULT NULL,
269   P_C_ATTRIBUTE10                 VARCHAR2 DEFAULT NULL,
270   P_C_ATTRIBUTE11                 VARCHAR2 DEFAULT NULL,
271   P_C_ATTRIBUTE12                 VARCHAR2 DEFAULT NULL,
272   P_C_ATTRIBUTE13                 VARCHAR2 DEFAULT NULL,
273   P_C_ATTRIBUTE14                 VARCHAR2 DEFAULT NULL,
274   P_C_ATTRIBUTE15                 VARCHAR2 DEFAULT NULL,
275   P_C_ATTRIBUTE16                 VARCHAR2 DEFAULT NULL,
276   P_C_ATTRIBUTE17                 VARCHAR2 DEFAULT NULL,
277   P_C_ATTRIBUTE18                 VARCHAR2 DEFAULT NULL,
278   P_C_ATTRIBUTE19                 VARCHAR2 DEFAULT NULL,
279   P_C_ATTRIBUTE20                 VARCHAR2 DEFAULT NULL,
280   P_D_ATTRIBUTE1                  DATE     DEFAULT NULL,
281   P_D_ATTRIBUTE2                  DATE     DEFAULT NULL,
282   P_D_ATTRIBUTE3                  DATE     DEFAULT NULL,
283   P_D_ATTRIBUTE4                  DATE     DEFAULT NULL,
284   P_D_ATTRIBUTE5                  DATE     DEFAULT NULL,
285   P_D_ATTRIBUTE6                  DATE     DEFAULT NULL,
286   P_D_ATTRIBUTE7                  DATE     DEFAULT NULL,
287   P_D_ATTRIBUTE8                  DATE     DEFAULT NULL,
288   P_D_ATTRIBUTE9                  DATE     DEFAULT NULL,
289   P_D_ATTRIBUTE10                 DATE     DEFAULT NULL,
290   P_N_ATTRIBUTE1                  NUMBER   DEFAULT NULL,
291   P_N_ATTRIBUTE2                  NUMBER   DEFAULT NULL,
292   P_N_ATTRIBUTE3                  NUMBER   DEFAULT NULL,
293   P_N_ATTRIBUTE4                  NUMBER   DEFAULT NULL,
294   P_N_ATTRIBUTE5                  NUMBER   DEFAULT NULL,
295   P_N_ATTRIBUTE6                  NUMBER   DEFAULT NULL,
296   P_N_ATTRIBUTE7                  NUMBER   DEFAULT NULL,
297   P_N_ATTRIBUTE8                  NUMBER   DEFAULT NULL,
298   P_N_ATTRIBUTE9                  NUMBER   DEFAULT NULL,
299   P_N_ATTRIBUTE10                 NUMBER   DEFAULT NULL,
300   P_STATUS_ID                     NUMBER   DEFAULT NULL,
301   P_TERRITORY_CODE                VARCHAR2 DEFAULT NULL,
302   P_COST_GROUP_ID                 NUMBER   DEFAULT NULL,
303   P_TIME_SINCE_NEW                NUMBER   DEFAULT NULL,
304   P_CYCLES_SINCE_NEW              NUMBER   DEFAULT NULL,
305   P_TIME_SINCE_OVERHAUL           NUMBER   DEFAULT NULL,
306   P_CYCLES_SINCE_OVERHAUL         NUMBER   DEFAULT NULL,
307   P_TIME_SINCE_REPAIR             NUMBER   DEFAULT NULL,
308   P_CYCLES_SINCE_REPAIR           NUMBER   DEFAULT NULL,
309   P_TIME_SINCE_VISIT              NUMBER   DEFAULT NULL,
310   P_CYCLES_SINCE_VISIT            NUMBER   DEFAULT NULL,
311   P_TIME_SINCE_MARK               NUMBER   DEFAULT NULL,
312   P_CYCLES_SINCE_MARK             NUMBER   DEFAULT NULL,
313   P_LPN_ID                        NUMBER   DEFAULT NULL,
314   P_INSPECTION_STATUS             NUMBER   DEFAULT NULL,
315   P_PREVIOUS_STATUS               NUMBER   DEFAULT NULL,
316   P_LPN_TXN_ERROR_FLAG            VARCHAR2 DEFAULT NULL,
317   P_REQUEST_ID                    NUMBER DEFAULT NULL,
318   P_PROGRAM_APPLICATION_ID        NUMBER DEFAULT NULL,
319   P_PROGRAM_ID                    NUMBER DEFAULT NULL,
320   P_PROGRAM_UPDATE_DATE           DATE DEFAULT NULL,
321   P_LAST_UPDATE_DATE              DATE,
322   P_LAST_UPDATED_BY               NUMBER,
323   P_CREATION_DATE                 DATE,
324   P_CREATED_BY                    NUMBER,
325   P_LAST_UPDATE_LOGIN             NUMBER,
326   P_OWNING_ORGANIZATION_ID  	  NUMBER,
327   P_OWNING_ORGANIZATION_TYPE  	  NUMBER,
328   P_PLANNING_ORGANIZATION_ID  	  NUMBER,
329   P_PLANNING_ORGANIZATION_TYPE    NUMBER,
330   X_OBJECT_ID                 OUT NOCOPY NUMBER,
331   X_RETURN_STATUS             OUT NOCOPY VARCHAR2,
332   X_MSG_COUNT                 OUT NOCOPY NUMBER,
333   X_MSG_DATA                  OUT NOCOPY VARCHAR2,
334   P_WIP_ENTITY_ID                 NUMBER,  --added as a part of 'Serial Tracking in WIP project
335   P_OPERATION_SEQ_NUM             NUMBER,  --added as a part of 'Serial Tracking in WIP project
336   P_INTRAOPERATION_STEP_TYPE      NUMBER --added as a part of 'Serial Tracking in WIP project
337 
341     l_full_name      CONSTANT VARCHAR2(60) := g_pkg_name || '.' || l_api_name;
338   ) IS
339     l_api_name       CONSTANT VARCHAR2(30) := 'insert_row';
340     l_api_version    CONSTANT NUMBER       := 1.0;
342 
343     CURSOR C IS SELECT rowid FROM MTL_SERIAL_NUMBERS
344                  WHERE inventory_item_id = P_INVENTORY_ITEM_ID
345                    AND serial_number = P_SERIAL_NUMBER
346                    AND current_organization_id = P_ORGANIZATION_ID;
347 
348    BEGIN
349 
350    -- Standard Start of API savepoint
351       SAVEPOINT insert_row;
352 
353    -- Standard call to check for call compatibility.
354       IF NOT fnd_api.compatible_api_call(l_api_version, p_api_version, l_api_name, g_pkg_name) THEN
355          RAISE fnd_api.g_exc_unexpected_error;
356       END IF;
357 
358    -- Initialize message list if p_init_msg_list is set to TRUE.
359       IF fnd_api.to_boolean(p_init_msg_list) THEN
360          fnd_msg_pub.initialize;
361       END IF;
362 
363    -- Initialize API return status to success
364       x_return_status := fnd_api.g_ret_sts_success;
365 
366    -- API body
367 
368   --'Serial Tracking in WIP' project- insert WIP_ENTITY_ID, OPERATION_SEQ_NUM, INTRAOPERATION_STEP_TYPE
369   -- INTO MSN.
370 INSERT INTO MTL_SERIAL_NUMBERS(
371        INVENTORY_ITEM_ID,
372        SERIAL_NUMBER,
373        INITIALIZATION_DATE,
374        DESCRIPTIVE_TEXT,
375        CURRENT_ORGANIZATION_ID,
376        GEN_OBJECT_ID,
377        CATEGORY_ID,
378        PROD_ORGANIZATION_ID,
379        EQUIPMENT_ITEM_ID,
380        EQP_SERIAL_NUMBER,
381        PN_LOCATION_ID,
382        EAM_LOCATION_ID,
383        FA_ASSET_ID,
384        ASSET_CRITICALITY_CODE,
385        WIP_ACCOUNTING_CLASS_CODE,
386        MAINTAINABLE_FLAG,
387        NETWORK_ASSET_FLAG,
388        OWNING_DEPARTMENT_ID,
389        LAST_UPDATE_DATE,
390        LAST_UPDATED_BY,
391        CREATION_DATE,
392        CREATED_BY,
393        LAST_UPDATE_LOGIN,
394        CURRENT_STATUS,
395        ATTRIBUTE_CATEGORY,
396        ATTRIBUTE1,
397        ATTRIBUTE2,
398        ATTRIBUTE3,
399        ATTRIBUTE4,
400        ATTRIBUTE5,
401        ATTRIBUTE6,
402        ATTRIBUTE7,
403        ATTRIBUTE8,
404        ATTRIBUTE9,
405        ATTRIBUTE10,
406        ATTRIBUTE11,
407        ATTRIBUTE12,
408        ATTRIBUTE13,
409        ATTRIBUTE14,
410        ATTRIBUTE15,
411        COMPLETION_DATE,
412        SHIP_DATE,
413        REVISION,
414        LOT_NUMBER,
415        FIXED_ASSET_TAG,
416        RESERVED_ORDER_ID,
417        PARENT_ITEM_ID,
418        PARENT_SERIAL_NUMBER,
419        ORIGINAL_WIP_ENTITY_ID,
420        ORIGINAL_UNIT_VENDOR_ID,
421        VENDOR_SERIAL_NUMBER,
422        VENDOR_LOT_NUMBER,
423        LAST_TXN_SOURCE_TYPE_ID,
424        LAST_TRANSACTION_ID,
425        LAST_RECEIPT_ISSUE_TYPE,
426        LAST_TXN_SOURCE_NAME,
427        LAST_TXN_SOURCE_ID,
428        CURRENT_SUBINVENTORY_CODE,
429        CURRENT_LOCATOR_ID,
430        GROUP_MARK_ID,
431        LINE_MARK_ID,
432        LOT_LINE_MARK_ID,
433        END_ITEM_UNIT_NUMBER,
434        SERIAL_ATTRIBUTE_CATEGORY,
435        ORIGINATION_DATE,
436        C_ATTRIBUTE1,
437        C_ATTRIBUTE2,
438        C_ATTRIBUTE3,
439        C_ATTRIBUTE4,
440        C_ATTRIBUTE5,
441        C_ATTRIBUTE6,
442        C_ATTRIBUTE7,
443        C_ATTRIBUTE8,
444        C_ATTRIBUTE9,
445        C_ATTRIBUTE10,
446        C_ATTRIBUTE11,
447        C_ATTRIBUTE12,
448        C_ATTRIBUTE13,
449        C_ATTRIBUTE14,
450        C_ATTRIBUTE15,
451        C_ATTRIBUTE16,
452        C_ATTRIBUTE17,
453        C_ATTRIBUTE18,
454        C_ATTRIBUTE19,
455        C_ATTRIBUTE20,
456        D_ATTRIBUTE1,
457        D_ATTRIBUTE2,
458        D_ATTRIBUTE3,
459        D_ATTRIBUTE4,
460        D_ATTRIBUTE5,
461        D_ATTRIBUTE6,
462        D_ATTRIBUTE7,
463        D_ATTRIBUTE8,
464        D_ATTRIBUTE9,
465        D_ATTRIBUTE10,
466        N_ATTRIBUTE1,
467        N_ATTRIBUTE2,
468        N_ATTRIBUTE3,
469        N_ATTRIBUTE4,
470        N_ATTRIBUTE5,
471        N_ATTRIBUTE6,
472        N_ATTRIBUTE7,
473        N_ATTRIBUTE8,
474        N_ATTRIBUTE9,
475        N_ATTRIBUTE10,
476        STATUS_ID,
477        TERRITORY_CODE,
478        COST_GROUP_ID,
479        TIME_SINCE_NEW,
480        CYCLES_SINCE_NEW,
481        TIME_SINCE_OVERHAUL,
482        CYCLES_SINCE_OVERHAUL,
483        TIME_SINCE_REPAIR,
484        CYCLES_SINCE_REPAIR,
485        TIME_SINCE_VISIT,
486        CYCLES_SINCE_VISIT,
487        TIME_SINCE_MARK,
488        CYCLES_SINCE_MARK,
489        LPN_ID,
490        INSPECTION_STATUS,
491        PREVIOUS_STATUS,
492        LPN_TXN_ERROR_FLAG,
493        REQUEST_ID,
494        PROGRAM_APPLICATION_ID,
495        PROGRAM_ID,
496        PROGRAM_UPDATE_DATE,
497        OWNING_ORGANIZATION_ID,
498        OWNING_TP_TYPE,
499        PLANNING_ORGANIZATION_ID,
500        PLANNING_TP_TYPE,
501        WIP_ENTITY_ID,
502        OPERATION_SEQ_NUM,
503        INTRAOPERATION_STEP_TYPE
504        ) values (
505        P_INVENTORY_ITEM_ID,
506        P_SERIAL_NUMBER,
507        P_INITIALIZATION_DATE,
508        P_DESCRIPTIVE_TEXT,
509        P_ORGANIZATION_ID,
510        mtl_gen_object_id_s.nextval,
514        P_EQP_SERIAL_NUMBER,
511        P_CATEGORY_ID,
512        P_PROD_ORGANIZATION_ID,
513        P_EQUIPMENT_ITEM_ID,
515        P_PN_LOCATION_ID,
516        P_EAM_LOCATION_ID,
517        P_FA_ASSET_ID,
518        P_ASSET_CRITICALITY_CODE,
519        P_WIP_ACCOUNTING_CLASS_CODE,
520        P_MAINTAINABLE_FLAG,
521        P_NETWORK_ASSET_FLAG,
522        P_OWNING_DEPARTMENT_ID,
523        P_LAST_UPDATE_DATE,
524        P_LAST_UPDATED_BY,
525        P_CREATION_DATE,
526        P_CREATED_BY,
527        P_LAST_UPDATE_LOGIN,
528        P_CURRENT_STATUS,
529        P_ATTRIBUTE_CATEGORY,
530        P_ATTRIBUTE1,
531        P_ATTRIBUTE2,
532        P_ATTRIBUTE3,
533        P_ATTRIBUTE4,
534        P_ATTRIBUTE5,
535        P_ATTRIBUTE6,
536        P_ATTRIBUTE7,
537        P_ATTRIBUTE8,
538        P_ATTRIBUTE9,
539        P_ATTRIBUTE10,
540        P_ATTRIBUTE11,
541        P_ATTRIBUTE12,
542        P_ATTRIBUTE13,
543        P_ATTRIBUTE14,
544        P_ATTRIBUTE15,
545        P_COMPLETION_DATE,
546        P_SHIP_DATE,
547        P_REVISION,
548        P_LOT_NUMBER,
549        P_FIXED_ASSET_TAG,
550        P_RESERVED_ORDER_ID,
551        P_PARENT_ITEM_ID,
552        P_PARENT_SERIAL_NUMBER,
553        P_ORIGINAL_WIP_ENTITY_ID,
554        P_ORIGINAL_UNIT_VENDOR_ID,
555        P_VENDOR_SERIAL_NUMBER,
556        P_VENDOR_LOT_NUMBER,
557        P_LAST_TXN_SOURCE_TYPE_ID,
558        P_LAST_TRANSACTION_ID,
559        P_LAST_RECEIPT_ISSUE_TYPE,
560        P_LAST_TXN_SOURCE_NAME,
561        P_LAST_TXN_SOURCE_ID,
562        P_CURRENT_SUBINVENTORY_CODE,
563        P_CURRENT_LOCATOR_ID,
564        P_GROUP_MARK_ID,
565        P_LINE_MARK_ID,
566        P_LOT_LINE_MARK_ID,
567        P_END_ITEM_UNIT_NUMBER,
568        P_SERIAL_ATTRIBUTE_CATEGORY,
569        P_ORIGINATION_DATE,
570        P_C_ATTRIBUTE1,
571        P_C_ATTRIBUTE2,
572        P_C_ATTRIBUTE3,
573        P_C_ATTRIBUTE4,
574        P_C_ATTRIBUTE5,
575        P_C_ATTRIBUTE6,
576        P_C_ATTRIBUTE7,
577        P_C_ATTRIBUTE8,
578        P_C_ATTRIBUTE9,
579        P_C_ATTRIBUTE10,
580        P_C_ATTRIBUTE11,
581        P_C_ATTRIBUTE12,
582        P_C_ATTRIBUTE13,
583        P_C_ATTRIBUTE14,
584        P_C_ATTRIBUTE15,
585        P_C_ATTRIBUTE16,
586        P_C_ATTRIBUTE17,
587        P_C_ATTRIBUTE18,
588        P_C_ATTRIBUTE19,
589        P_C_ATTRIBUTE20,
590        P_D_ATTRIBUTE1,
591        P_D_ATTRIBUTE2,
592        P_D_ATTRIBUTE3,
593        P_D_ATTRIBUTE4,
594        P_D_ATTRIBUTE5,
595        P_D_ATTRIBUTE6,
596        P_D_ATTRIBUTE7,
597        P_D_ATTRIBUTE8,
598        P_D_ATTRIBUTE9,
599        P_D_ATTRIBUTE10,
600        P_N_ATTRIBUTE1,
601        P_N_ATTRIBUTE2,
602        P_N_ATTRIBUTE3,
603        P_N_ATTRIBUTE4,
604        P_N_ATTRIBUTE5,
605        P_N_ATTRIBUTE6,
606        P_N_ATTRIBUTE7,
607        P_N_ATTRIBUTE8,
608        P_N_ATTRIBUTE9,
609        P_N_ATTRIBUTE10,
610        P_STATUS_ID,
611        P_TERRITORY_CODE,
612        P_COST_GROUP_ID,
613        P_TIME_SINCE_NEW,
614        P_CYCLES_SINCE_NEW,
615        P_TIME_SINCE_OVERHAUL,
616        P_CYCLES_SINCE_OVERHAUL,
617        P_TIME_SINCE_REPAIR,
618        P_CYCLES_SINCE_REPAIR,
619        P_TIME_SINCE_VISIT,
620        P_CYCLES_SINCE_VISIT,
621        P_TIME_SINCE_MARK,
622        P_CYCLES_SINCE_MARK,
623        P_LPN_ID,
624        P_INSPECTION_STATUS,
625        P_PREVIOUS_STATUS,
626        P_LPN_TXN_ERROR_FLAG,
627        P_REQUEST_ID,
628        P_PROGRAM_APPLICATION_ID,
629        P_PROGRAM_ID,
630        P_PROGRAM_UPDATE_DATE,
631        P_OWNING_ORGANIZATION_ID,
632        P_OWNING_ORGANIZATION_TYPE,
633        P_PLANNING_ORGANIZATION_ID,
634        P_PLANNING_ORGANIZATION_TYPE,
635        P_WIP_ENTITY_ID,
636        P_OPERATION_SEQ_NUM,
637        P_INTRAOPERATION_STEP_TYPE
638        ) returning gen_object_id, rowid into x_object_id, p_rowid;
639 
640     OPEN C;
641     FETCH C INTO P_Rowid;
642     if (C%NOTFOUND) then
643       CLOSE C;
644       Raise NO_DATA_FOUND;
645     end if;
646     CLOSE C;
647 
648    -- End of API body.
649    -- Standard check of p_commit.
650       IF fnd_api.to_boolean(p_commit) THEN
651          COMMIT WORK;
652       END IF;
653 
654    -- Standard call to get message count and if count is 1, get message info.
655       fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
656    EXCEPTION
657       WHEN fnd_api.g_exc_error THEN
658          ROLLBACK TO insert_row;
659          x_return_status := fnd_api.g_ret_sts_error;
660          fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
661       WHEN fnd_api.g_exc_unexpected_error THEN
662          ROLLBACK TO insert_row;
663          x_return_status := fnd_api.g_ret_sts_unexp_error;
664          fnd_msg_pub.count_and_get(
665             p_count => x_msg_count
666            ,p_data => x_msg_data);
667       WHEN OTHERS THEN
668          ROLLBACK TO insert_row;
669          x_return_status := fnd_api.g_ret_sts_unexp_error;
670 
671          IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
672             fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
673          END IF;
674 
675          fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
676 
677   END Insert_Row;
681 
678 
679 
680 
682 PROCEDURE UPDATE_ROW(
683   P_API_VERSION IN NUMBER,
684   P_INIT_MSG_LIST              IN VARCHAR2 := FND_API.G_FALSE,
685   P_COMMIT                     IN VARCHAR2 := FND_API.G_FALSE,
686   P_VALIDATION_LEVEL           IN NUMBER   := FND_API.G_VALID_LEVEL_FULL,
687   P_ROWID                         VARCHAR2,
688   P_DESCRIPTIVE_TEXT              VARCHAR2,
689   P_CATEGORY_ID                   NUMBER,
690   P_PROD_ORGANIZATION_ID          NUMBER,
691   P_EQUIPMENT_ITEM_ID             NUMBER,
692   P_EQP_SERIAL_NUMBER             VARCHAR2,
693   P_PN_LOCATION_ID                NUMBER,
694   P_EAM_LOCATION_ID               NUMBER,
695   P_FA_ASSET_ID                   NUMBER,
696   P_ASSET_CRITICALITY_CODE        VARCHAR2,
697   P_WIP_ACCOUNTING_CLASS_CODE     VARCHAR2,
698   P_MAINTAINABLE_FLAG             VARCHAR2,
699   P_NETWORK_ASSET_FLAG            VARCHAR2,
700   P_OWNING_DEPARTMENT_ID          NUMBER,
701   P_ATTRIBUTE_CATEGORY            VARCHAR2,
702   P_ATTRIBUTE1                    VARCHAR2,
703   P_ATTRIBUTE2                    VARCHAR2,
704   P_ATTRIBUTE3                    VARCHAR2,
705   P_ATTRIBUTE4                    VARCHAR2,
706   P_ATTRIBUTE5                    VARCHAR2,
707   P_ATTRIBUTE6                    VARCHAR2,
708   P_ATTRIBUTE7                    VARCHAR2,
709   P_ATTRIBUTE8                    VARCHAR2,
710   P_ATTRIBUTE9                    VARCHAR2,
711   P_ATTRIBUTE10                   VARCHAR2,
712   P_ATTRIBUTE11                   VARCHAR2,
713   P_ATTRIBUTE12                   VARCHAR2,
714   P_ATTRIBUTE13                   VARCHAR2,
715   P_ATTRIBUTE14                   VARCHAR2,
716   P_ATTRIBUTE15                   VARCHAR2,
717   P_CURRENT_STATUS                NUMBER   DEFAULT NULL,
718   P_INITIALIZATION_DATE           DATE     DEFAULT NULL,
719   P_COMPLETION_DATE               DATE     DEFAULT NULL,
720   P_SHIP_DATE                     DATE     DEFAULT NULL,
721   P_REVISION                      VARCHAR2 DEFAULT NULL,
722   P_LOT_NUMBER                    VARCHAR2 DEFAULT NULL,
723   P_FIXED_ASSET_TAG               VARCHAR2 DEFAULT NULL,
724   P_RESERVED_ORDER_ID             NUMBER   DEFAULT NULL,
725   P_PARENT_ITEM_ID                NUMBER   DEFAULT NULL,
726   P_PARENT_SERIAL_NUMBER          VARCHAR2 DEFAULT NULL,
727   P_ORIGINAL_WIP_ENTITY_ID        NUMBER   DEFAULT NULL,
728   P_ORIGINAL_UNIT_VENDOR_ID       NUMBER   DEFAULT NULL,
729   P_VENDOR_SERIAL_NUMBER          VARCHAR2 DEFAULT NULL,
730   P_VENDOR_LOT_NUMBER             VARCHAR2 DEFAULT NULL,
731   P_LAST_TXN_SOURCE_TYPE_ID       NUMBER   DEFAULT NULL,
732   P_LAST_TRANSACTION_ID           NUMBER   DEFAULT NULL,
733   P_LAST_RECEIPT_ISSUE_TYPE       NUMBER   DEFAULT NULL,
734   P_LAST_TXN_SOURCE_NAME          VARCHAR2 DEFAULT NULL,
735   P_LAST_TXN_SOURCE_ID            NUMBER   DEFAULT NULL,
736   P_CURRENT_SUBINVENTORY_CODE     VARCHAR2 DEFAULT NULL,
737   P_CURRENT_LOCATOR_ID            NUMBER   DEFAULT NULL,
738   P_GROUP_MARK_ID                 NUMBER   DEFAULT NULL,
739   P_LINE_MARK_ID                  NUMBER   DEFAULT NULL,
740   P_LOT_LINE_MARK_ID              NUMBER   DEFAULT NULL,
741   P_END_ITEM_UNIT_NUMBER          VARCHAR2 DEFAULT NULL,
742   P_SERIAL_ATTRIBUTE_CATEGORY     VARCHAR2 DEFAULT NULL,
743   P_ORIGINATION_DATE              DATE     DEFAULT NULL,
744   P_C_ATTRIBUTE1                  VARCHAR2 DEFAULT NULL,
745   P_C_ATTRIBUTE2                  VARCHAR2 DEFAULT NULL,
746   P_C_ATTRIBUTE3                  VARCHAR2 DEFAULT NULL,
747   P_C_ATTRIBUTE4                  VARCHAR2 DEFAULT NULL,
748   P_C_ATTRIBUTE5                  VARCHAR2 DEFAULT NULL,
749   P_C_ATTRIBUTE6                  VARCHAR2 DEFAULT NULL,
750   P_C_ATTRIBUTE7                  VARCHAR2 DEFAULT NULL,
751   P_C_ATTRIBUTE8                  VARCHAR2 DEFAULT NULL,
752   P_C_ATTRIBUTE9                  VARCHAR2 DEFAULT NULL,
753   P_C_ATTRIBUTE10                 VARCHAR2 DEFAULT NULL,
754   P_C_ATTRIBUTE11                 VARCHAR2 DEFAULT NULL,
755   P_C_ATTRIBUTE12                 VARCHAR2 DEFAULT NULL,
756   P_C_ATTRIBUTE13                 VARCHAR2 DEFAULT NULL,
757   P_C_ATTRIBUTE14                 VARCHAR2 DEFAULT NULL,
758   P_C_ATTRIBUTE15                 VARCHAR2 DEFAULT NULL,
759   P_C_ATTRIBUTE16                 VARCHAR2 DEFAULT NULL,
760   P_C_ATTRIBUTE17                 VARCHAR2 DEFAULT NULL,
761   P_C_ATTRIBUTE18                 VARCHAR2 DEFAULT NULL,
762   P_C_ATTRIBUTE19                 VARCHAR2 DEFAULT NULL,
763   P_C_ATTRIBUTE20                 VARCHAR2 DEFAULT NULL,
764   P_D_ATTRIBUTE1                  DATE     DEFAULT NULL,
765   P_D_ATTRIBUTE2                  DATE     DEFAULT NULL,
766   P_D_ATTRIBUTE3                  DATE     DEFAULT NULL,
767   P_D_ATTRIBUTE4                  DATE     DEFAULT NULL,
768   P_D_ATTRIBUTE5                  DATE     DEFAULT NULL,
769   P_D_ATTRIBUTE6                  DATE     DEFAULT NULL,
770   P_D_ATTRIBUTE7                  DATE     DEFAULT NULL,
771   P_D_ATTRIBUTE8                  DATE     DEFAULT NULL,
772   P_D_ATTRIBUTE9                  DATE     DEFAULT NULL,
773   P_D_ATTRIBUTE10                 DATE     DEFAULT NULL,
774   P_N_ATTRIBUTE1                  NUMBER   DEFAULT NULL,
775   P_N_ATTRIBUTE2                  NUMBER   DEFAULT NULL,
776   P_N_ATTRIBUTE3                  NUMBER   DEFAULT NULL,
777   P_N_ATTRIBUTE4                  NUMBER   DEFAULT NULL,
778   P_N_ATTRIBUTE5                  NUMBER   DEFAULT NULL,
779   P_N_ATTRIBUTE6                  NUMBER   DEFAULT NULL,
780   P_N_ATTRIBUTE7                  NUMBER   DEFAULT NULL,
781   P_N_ATTRIBUTE8                  NUMBER   DEFAULT NULL,
785   P_TERRITORY_CODE                VARCHAR2 DEFAULT NULL,
782   P_N_ATTRIBUTE9                  NUMBER   DEFAULT NULL,
783   P_N_ATTRIBUTE10                 NUMBER   DEFAULT NULL,
784   P_STATUS_ID                     NUMBER   DEFAULT NULL,
786   P_COST_GROUP_ID                 NUMBER   DEFAULT NULL,
787   P_TIME_SINCE_NEW                NUMBER   DEFAULT NULL,
788   P_CYCLES_SINCE_NEW              NUMBER   DEFAULT NULL,
789   P_TIME_SINCE_OVERHAUL           NUMBER   DEFAULT NULL,
790   P_CYCLES_SINCE_OVERHAUL         NUMBER   DEFAULT NULL,
791   P_TIME_SINCE_REPAIR             NUMBER   DEFAULT NULL,
792   P_CYCLES_SINCE_REPAIR           NUMBER   DEFAULT NULL,
793   P_TIME_SINCE_VISIT              NUMBER   DEFAULT NULL,
794   P_CYCLES_SINCE_VISIT            NUMBER   DEFAULT NULL,
795   P_TIME_SINCE_MARK               NUMBER   DEFAULT NULL,
796   P_CYCLES_SINCE_MARK             NUMBER   DEFAULT NULL,
797   P_LPN_ID                        NUMBER   DEFAULT NULL,
798   P_INSPECTION_STATUS             NUMBER   DEFAULT NULL,
799   P_PREVIOUS_STATUS               NUMBER   DEFAULT NULL,
800   P_LPN_TXN_ERROR_FLAG            VARCHAR2 DEFAULT NULL,
801   P_REQUEST_ID                    NUMBER DEFAULT NULL,
802   P_PROGRAM_APPLICATION_ID        NUMBER DEFAULT NULL,
803   P_PROGRAM_ID                    NUMBER DEFAULT NULL,
804   P_PROGRAM_UPDATE_DATE           DATE DEFAULT NULL,
805   P_LAST_UPDATE_DATE              DATE,
806   P_LAST_UPDATED_BY               NUMBER,
807   P_LAST_UPDATE_LOGIN             NUMBER,
808   P_FROM_PUBLIC_API		  VARCHAR2 DEFAULT 'Y',
809   X_RETURN_STATUS             OUT NOCOPY VARCHAR2,
810   X_MSG_COUNT                 OUT NOCOPY NUMBER,
811   X_MSG_DATA                  OUT NOCOPY VARCHAR2,
812   P_WIP_ENTITY_ID                 NUMBER DEFAULT NULL,
813   P_OPERATION_SEQ_NUM             NUMBER DEFAULT NULL,
814   P_INTRAOPERATION_STEP_TYPE      NUMBER DEFAULT NULL
815 
816   ) IS
817     l_api_name       CONSTANT VARCHAR2(30) := 'update_row';
818     l_api_version    CONSTANT NUMBER       := 1.0;
819     l_full_name      CONSTANT VARCHAR2(60) := g_pkg_name || '.' || l_api_name;
820   BEGIN
821    -- Standard Start of API savepoint
822       SAVEPOINT update_row;
823 
824    -- Standard call to check for call compatibility.
825       IF NOT fnd_api.compatible_api_call(l_api_version, p_api_version, l_api_name, g_pkg_name) THEN
826          RAISE fnd_api.g_exc_unexpected_error;
827       END IF;
828 
829    -- Initialize message list if p_init_msg_list is set to TRUE.
830       IF fnd_api.to_boolean(p_init_msg_list) THEN
831          fnd_msg_pub.initialize;
832       END IF;
833 
834    -- Initialize API return status to success
835       x_return_status := fnd_api.g_ret_sts_success;
836 
837    -- API body
838 
839 
840 UPDATE MTL_SERIAL_NUMBERS
841     SET
842      DESCRIPTIVE_TEXT                =     decode(P_FROM_PUBLIC_API, 'N', P_DESCRIPTIVE_TEXT, decode(P_DESCRIPTIVE_TEXT, fnd_api.g_miss_char, null, decode(P_DESCRIPTIVE_TEXT, NULL, DESCRIPTIVE_TEXT, P_DESCRIPTIVE_TEXT))),
843      CATEGORY_ID                     =     decode(P_FROM_PUBLIC_API, 'N', P_CATEGORY_ID, decode(P_CATEGORY_ID, fnd_api.g_miss_num, null, decode(P_CATEGORY_ID, NULL, CATEGORY_ID, P_CATEGORY_ID))),
844      PROD_ORGANIZATION_ID            =     decode(P_FROM_PUBLIC_API, 'N', P_PROD_ORGANIZATION_ID, decode(P_PROD_ORGANIZATION_ID, fnd_api.g_miss_num, null, decode(P_PROD_ORGANIZATION_ID, NULL, PROD_ORGANIZATION_ID, P_PROD_ORGANIZATION_ID))),
845      EQUIPMENT_ITEM_ID               =     decode(P_FROM_PUBLIC_API, 'N', P_EQUIPMENT_ITEM_ID, decode(P_EQUIPMENT_ITEM_ID, fnd_api.g_miss_num, null, decode(P_EQUIPMENT_ITEM_ID, NULL, EQUIPMENT_ITEM_ID, P_EQUIPMENT_ITEM_ID))),
846      EQP_SERIAL_NUMBER               =     decode(P_FROM_PUBLIC_API, 'N', P_EQP_SERIAL_NUMBER, decode(P_EQP_SERIAL_NUMBER, fnd_api.g_miss_char, null, decode(P_EQP_SERIAL_NUMBER, NULL, EQP_SERIAL_NUMBER, P_EQP_SERIAL_NUMBER))),
847      PN_LOCATION_ID                  =     decode(P_FROM_PUBLIC_API, 'N', P_PN_LOCATION_ID, decode(P_PN_LOCATION_ID, fnd_api.g_miss_num, null, decode(P_PN_LOCATION_ID, NULL, PN_LOCATION_ID, P_PN_LOCATION_ID))),
848      EAM_LOCATION_ID                 =     decode(P_FROM_PUBLIC_API, 'N', P_EAM_LOCATION_ID, decode(P_EAM_LOCATION_ID, fnd_api.g_miss_num, null, decode(P_EAM_LOCATION_ID, NULL, EAM_LOCATION_ID, P_EAM_LOCATION_ID))),
849      FA_ASSET_ID                     =     decode(P_FROM_PUBLIC_API, 'N', P_FA_ASSET_ID, decode(P_FA_ASSET_ID, fnd_api.g_miss_num, null, decode(P_FA_ASSET_ID, NULL, FA_ASSET_ID, P_FA_ASSET_ID))),
850      ASSET_CRITICALITY_CODE          =     decode(P_FROM_PUBLIC_API, 'N', P_ASSET_CRITICALITY_CODE, decode(P_ASSET_CRITICALITY_CODE, fnd_api.g_miss_char, null, decode(P_ASSET_CRITICALITY_CODE, NULL, ASSET_CRITICALITY_CODE, P_ASSET_CRITICALITY_CODE))),
851      WIP_ACCOUNTING_CLASS_CODE       =     decode(P_FROM_PUBLIC_API, 'N',
852 P_WIP_ACCOUNTING_CLASS_CODE, decode(P_WIP_ACCOUNTING_CLASS_CODE, fnd_api.g_miss_char, null,
853 decode(P_WIP_ACCOUNTING_CLASS_CODE, NULL, WIP_ACCOUNTING_CLASS_CODE, P_WIP_ACCOUNTING_CLASS_CODE))),
854      NETWORK_ASSET_FLAG              =     decode(P_FROM_PUBLIC_API, 'N', P_NETWORK_ASSET_FLAG, decode(P_NETWORK_ASSET_FLAG, fnd_api.g_miss_char, null, decode(P_NETWORK_ASSET_FLAG, NULL, NETWORK_ASSET_FLAG, P_NETWORK_ASSET_FLAG))),
855      MAINTAINABLE_FLAG               =     decode(P_FROM_PUBLIC_API, 'N', P_MAINTAINABLE_FLAG, decode(P_MAINTAINABLE_FLAG, fnd_api.g_miss_char, null, decode(P_MAINTAINABLE_FLAG, NULL, MAINTAINABLE_FLAG, P_MAINTAINABLE_FLAG))),
856      OWNING_DEPARTMENT_ID            =     decode(P_FROM_PUBLIC_API, 'N', P_OWNING_DEPARTMENT_ID, decode(P_OWNING_DEPARTMENT_ID, fnd_api.g_miss_num, null, decode(P_OWNING_DEPARTMENT_ID, NULL, OWNING_DEPARTMENT_ID, P_OWNING_DEPARTMENT_ID))),
860      ATTRIBUTE_CATEGORY              =     decode(P_FROM_PUBLIC_API, 'N', P_ATTRIBUTE_CATEGORY, decode(P_ATTRIBUTE_CATEGORY, fnd_api.g_miss_char, null, decode(P_ATTRIBUTE_CATEGORY, NULL, ATTRIBUTE_CATEGORY, P_ATTRIBUTE_CATEGORY))),
857      LAST_UPDATE_DATE                =     decode(P_FROM_PUBLIC_API, 'N', P_LAST_UPDATE_DATE, decode(P_LAST_UPDATE_DATE, fnd_api.g_miss_date, null, decode(P_LAST_UPDATE_DATE, NULL, LAST_UPDATE_DATE, P_LAST_UPDATE_DATE))),
858      LAST_UPDATED_BY                 =     decode(P_FROM_PUBLIC_API, 'N', P_LAST_UPDATED_BY, decode(P_LAST_UPDATED_BY, fnd_api.g_miss_num, null, decode(P_LAST_UPDATED_BY, NULL, LAST_UPDATED_BY, P_LAST_UPDATED_BY))),
859      LAST_UPDATE_LOGIN               =     decode(P_FROM_PUBLIC_API, 'N', P_LAST_UPDATE_LOGIN, decode(P_LAST_UPDATE_LOGIN, fnd_api.g_miss_num, null, decode(P_LAST_UPDATE_LOGIN, NULL, LAST_UPDATE_LOGIN, P_LAST_UPDATE_LOGIN))),
861      ATTRIBUTE1                      =     decode(P_FROM_PUBLIC_API, 'N', P_ATTRIBUTE1, decode(P_ATTRIBUTE1, fnd_api.g_miss_char, null, decode(P_ATTRIBUTE1, NULL, ATTRIBUTE1, P_ATTRIBUTE1))),
862      ATTRIBUTE2                      =     decode(P_FROM_PUBLIC_API, 'N', P_ATTRIBUTE2, decode(P_ATTRIBUTE2, fnd_api.g_miss_char, null, decode(P_ATTRIBUTE2, NULL, ATTRIBUTE2, P_ATTRIBUTE2))),
863      ATTRIBUTE3                      =     decode(P_FROM_PUBLIC_API, 'N', P_ATTRIBUTE3, decode(P_ATTRIBUTE3, fnd_api.g_miss_char, null, decode(P_ATTRIBUTE3, NULL, ATTRIBUTE3, P_ATTRIBUTE3))),
864      ATTRIBUTE4                      =     decode(P_FROM_PUBLIC_API, 'N', P_ATTRIBUTE4, decode(P_ATTRIBUTE4, fnd_api.g_miss_char, null, decode(P_ATTRIBUTE4, NULL, ATTRIBUTE4, P_ATTRIBUTE4))),
865      ATTRIBUTE5                      =     decode(P_FROM_PUBLIC_API, 'N', P_ATTRIBUTE5, decode(P_ATTRIBUTE5, fnd_api.g_miss_char, null, decode(P_ATTRIBUTE5, NULL, ATTRIBUTE5, P_ATTRIBUTE5))),
866      ATTRIBUTE6                      =     decode(P_FROM_PUBLIC_API, 'N', P_ATTRIBUTE6, decode(P_ATTRIBUTE6, fnd_api.g_miss_char, null, decode(P_ATTRIBUTE6, NULL, ATTRIBUTE6, P_ATTRIBUTE6))),
867      ATTRIBUTE7                      =     decode(P_FROM_PUBLIC_API, 'N', P_ATTRIBUTE7, decode(P_ATTRIBUTE7, fnd_api.g_miss_char, null, decode(P_ATTRIBUTE7, NULL, ATTRIBUTE7, P_ATTRIBUTE7))),
868      ATTRIBUTE8                      =     decode(P_FROM_PUBLIC_API, 'N', P_ATTRIBUTE8, decode(P_ATTRIBUTE8, fnd_api.g_miss_char, null, decode(P_ATTRIBUTE8, NULL, ATTRIBUTE8, P_ATTRIBUTE8))),
869      ATTRIBUTE9                      =     decode(P_FROM_PUBLIC_API, 'N', P_ATTRIBUTE9, decode(P_ATTRIBUTE9, fnd_api.g_miss_char, null, decode(P_ATTRIBUTE9, NULL, ATTRIBUTE9, P_ATTRIBUTE9))),
870      ATTRIBUTE10                     =     decode(P_FROM_PUBLIC_API, 'N', P_ATTRIBUTE10, decode(P_ATTRIBUTE10, fnd_api.g_miss_char, null, decode(P_ATTRIBUTE10, NULL, ATTRIBUTE10, P_ATTRIBUTE10))),
871      ATTRIBUTE11                     =     decode(P_FROM_PUBLIC_API, 'N', P_ATTRIBUTE11, decode(P_ATTRIBUTE11, fnd_api.g_miss_char, null, decode(P_ATTRIBUTE11, NULL, ATTRIBUTE11, P_ATTRIBUTE11))),
872      ATTRIBUTE12                     =     decode(P_FROM_PUBLIC_API, 'N', P_ATTRIBUTE12, decode(P_ATTRIBUTE12, fnd_api.g_miss_char, null, decode(P_ATTRIBUTE12, NULL, ATTRIBUTE12, P_ATTRIBUTE12))),
873      ATTRIBUTE13                     =     decode(P_FROM_PUBLIC_API, 'N', P_ATTRIBUTE13, decode(P_ATTRIBUTE13, fnd_api.g_miss_char, null, decode(P_ATTRIBUTE13, NULL, ATTRIBUTE13, P_ATTRIBUTE13))),
874      ATTRIBUTE14                     =     decode(P_FROM_PUBLIC_API, 'N', P_ATTRIBUTE14, decode(P_ATTRIBUTE14, fnd_api.g_miss_char, null, decode(P_ATTRIBUTE14, NULL, ATTRIBUTE14, P_ATTRIBUTE14))),
875      ATTRIBUTE15                     =     decode(P_FROM_PUBLIC_API, 'N', P_ATTRIBUTE15, decode(P_ATTRIBUTE15, fnd_api.g_miss_char, null, decode(P_ATTRIBUTE15, NULL, ATTRIBUTE15, P_ATTRIBUTE15))),
876      CURRENT_STATUS                  =     decode(P_FROM_PUBLIC_API, 'N', P_CURRENT_STATUS, decode(P_CURRENT_STATUS, fnd_api.g_miss_num, null, decode(P_CURRENT_STATUS, NULL, CURRENT_STATUS, P_CURRENT_STATUS))),
877      INITIALIZATION_DATE             =     decode(P_FROM_PUBLIC_API, 'N', P_INITIALIZATION_DATE, decode(P_INITIALIZATION_DATE, fnd_api.g_miss_date, null, decode(P_INITIALIZATION_DATE, NULL, INITIALIZATION_DATE, P_INITIALIZATION_DATE))),
878      COMPLETION_DATE                 =     decode(P_FROM_PUBLIC_API, 'N', P_COMPLETION_DATE, decode(P_COMPLETION_DATE, fnd_api.g_miss_date, null, decode(P_COMPLETION_DATE, NULL, COMPLETION_DATE, P_COMPLETION_DATE))),
879      SHIP_DATE                       =     decode(P_FROM_PUBLIC_API, 'N', P_SHIP_DATE, decode(P_SHIP_DATE, fnd_api.g_miss_date, null, decode(P_SHIP_DATE, NULL, SHIP_DATE, P_SHIP_DATE))),
880      REVISION                        =     decode(P_FROM_PUBLIC_API, 'N', P_REVISION, decode(P_REVISION, fnd_api.g_miss_char, null, decode(P_REVISION, NULL, REVISION, P_REVISION))),
881 
882      LOT_NUMBER                      =     decode(P_FROM_PUBLIC_API, 'N', P_LOT_NUMBER, decode(P_LOT_NUMBER, fnd_api.g_miss_char, null, decode(P_LOT_NUMBER, NULL, LOT_NUMBER, P_LOT_NUMBER))),
883      FIXED_ASSET_TAG                 =     decode(P_FROM_PUBLIC_API, 'N', P_FIXED_ASSET_TAG, decode(P_FIXED_ASSET_TAG, fnd_api.g_miss_char, null, decode(P_FIXED_ASSET_TAG, NULL, FIXED_ASSET_TAG, P_FIXED_ASSET_TAG))),
884      RESERVED_ORDER_ID               =     decode(P_FROM_PUBLIC_API, 'N', P_RESERVED_ORDER_ID, decode(P_RESERVED_ORDER_ID, fnd_api.g_miss_num, null, decode(P_RESERVED_ORDER_ID, NULL, RESERVED_ORDER_ID, P_RESERVED_ORDER_ID))),
885      PARENT_ITEM_ID                  =     decode(P_FROM_PUBLIC_API, 'N', P_PARENT_ITEM_ID, decode(P_PARENT_ITEM_ID, fnd_api.g_miss_num, null, decode(P_PARENT_ITEM_ID, NULL, PARENT_ITEM_ID, P_PARENT_ITEM_ID))),
886      PARENT_SERIAL_NUMBER            =     decode(P_FROM_PUBLIC_API, 'N', P_PARENT_SERIAL_NUMBER, decode(P_PARENT_SERIAL_NUMBER, fnd_api.g_miss_char, null, decode(P_PARENT_SERIAL_NUMBER, NULL, PARENT_SERIAL_NUMBER, P_PARENT_SERIAL_NUMBER))),
887      ORIGINAL_WIP_ENTITY_ID          =     decode(P_FROM_PUBLIC_API, 'N', P_ORIGINAL_WIP_ENTITY_ID,
891      VENDOR_SERIAL_NUMBER            =     decode(P_FROM_PUBLIC_API, 'N', P_VENDOR_SERIAL_NUMBER, decode(P_VENDOR_SERIAL_NUMBER, fnd_api.g_miss_char, null, decode(P_VENDOR_SERIAL_NUMBER, NULL, VENDOR_SERIAL_NUMBER, P_VENDOR_SERIAL_NUMBER))),
888 decode(P_ORIGINAL_WIP_ENTITY_ID, fnd_api.g_miss_num, null, decode(P_ORIGINAL_WIP_ENTITY_ID, NULL, ORIGINAL_WIP_ENTITY_ID, P_ORIGINAL_WIP_ENTITY_ID))),
889      ORIGINAL_UNIT_VENDOR_ID         =     decode(P_FROM_PUBLIC_API, 'N', P_ORIGINAL_UNIT_VENDOR_ID,
890 decode(P_ORIGINAL_UNIT_VENDOR_ID, fnd_api.g_miss_num, null, decode(P_ORIGINAL_UNIT_VENDOR_ID, NULL, ORIGINAL_UNIT_VENDOR_ID, P_ORIGINAL_UNIT_VENDOR_ID))),
892      VENDOR_LOT_NUMBER               =     decode(P_FROM_PUBLIC_API, 'N', P_VENDOR_LOT_NUMBER, decode(P_VENDOR_LOT_NUMBER, fnd_api.g_miss_char, null, decode(P_VENDOR_LOT_NUMBER, NULL, VENDOR_LOT_NUMBER, P_VENDOR_LOT_NUMBER))),
893      LAST_TXN_SOURCE_TYPE_ID         =     decode(P_FROM_PUBLIC_API, 'N', P_LAST_TXN_SOURCE_TYPE_ID, decode(P_LAST_TXN_SOURCE_TYPE_ID, fnd_api.g_miss_num, null,
894 decode(P_LAST_TXN_SOURCE_TYPE_ID, NULL, LAST_TXN_SOURCE_TYPE_ID, P_LAST_TXN_SOURCE_TYPE_ID))),
895      LAST_TRANSACTION_ID             =     decode(P_FROM_PUBLIC_API, 'N', P_LAST_TRANSACTION_ID, decode(P_LAST_TRANSACTION_ID, fnd_api.g_miss_num, null, decode(P_LAST_TRANSACTION_ID, NULL, LAST_TRANSACTION_ID, P_LAST_TRANSACTION_ID))),
896      LAST_RECEIPT_ISSUE_TYPE         =     decode(P_FROM_PUBLIC_API, 'N', P_LAST_RECEIPT_ISSUE_TYPE, decode(P_LAST_RECEIPT_ISSUE_TYPE, fnd_api.g_miss_num, null,
897 decode(P_LAST_RECEIPT_ISSUE_TYPE, NULL, LAST_RECEIPT_ISSUE_TYPE, P_LAST_RECEIPT_ISSUE_TYPE))),
898      LAST_TXN_SOURCE_NAME            =     decode(P_FROM_PUBLIC_API, 'N', P_LAST_TXN_SOURCE_NAME, decode(P_LAST_TXN_SOURCE_NAME, fnd_api.g_miss_char, null, decode(P_LAST_TXN_SOURCE_NAME, NULL, LAST_TXN_SOURCE_NAME, P_LAST_TXN_SOURCE_NAME))),
899      LAST_TXN_SOURCE_ID              =     decode(P_FROM_PUBLIC_API, 'N', P_LAST_TXN_SOURCE_ID, decode(P_LAST_TXN_SOURCE_ID, fnd_api.g_miss_num, null, decode(P_LAST_TXN_SOURCE_ID, NULL, LAST_TXN_SOURCE_ID, P_LAST_TXN_SOURCE_ID))),
900      CURRENT_SUBINVENTORY_CODE       =     decode(P_FROM_PUBLIC_API, 'N', P_CURRENT_SUBINVENTORY_CODE, decode(P_CURRENT_SUBINVENTORY_CODE, fnd_api.g_miss_char, null,
901 decode(P_CURRENT_SUBINVENTORY_CODE, NULL, CURRENT_SUBINVENTORY_CODE, P_CURRENT_SUBINVENTORY_CODE))),
902      CURRENT_LOCATOR_ID              =     decode(P_FROM_PUBLIC_API, 'N', P_CURRENT_LOCATOR_ID, decode(P_CURRENT_LOCATOR_ID, fnd_api.g_miss_num, null, decode(P_CURRENT_LOCATOR_ID, NULL, CURRENT_LOCATOR_ID, P_CURRENT_LOCATOR_ID))),
903      GROUP_MARK_ID                   =     decode(P_FROM_PUBLIC_API, 'N', P_GROUP_MARK_ID, decode(P_GROUP_MARK_ID, fnd_api.g_miss_num, null, decode(P_GROUP_MARK_ID, NULL, GROUP_MARK_ID, P_GROUP_MARK_ID))),
904      LINE_MARK_ID                    =     decode(P_FROM_PUBLIC_API, 'N', P_LINE_MARK_ID, decode(P_LINE_MARK_ID, fnd_api.g_miss_num, null, decode(P_LINE_MARK_ID, NULL, LINE_MARK_ID, P_LINE_MARK_ID))),
905      LOT_LINE_MARK_ID                =     decode(P_FROM_PUBLIC_API, 'N', P_LOT_LINE_MARK_ID, decode(P_LOT_LINE_MARK_ID, fnd_api.g_miss_num, null, decode(P_LOT_LINE_MARK_ID, NULL, LOT_LINE_MARK_ID, P_LOT_LINE_MARK_ID))),
906      END_ITEM_UNIT_NUMBER            =     decode(P_FROM_PUBLIC_API, 'N', P_END_ITEM_UNIT_NUMBER, decode(P_END_ITEM_UNIT_NUMBER, fnd_api.g_miss_char, null, decode(P_END_ITEM_UNIT_NUMBER, NULL, END_ITEM_UNIT_NUMBER, P_END_ITEM_UNIT_NUMBER))),
907      SERIAL_ATTRIBUTE_CATEGORY       =     decode(P_FROM_PUBLIC_API, 'N', P_SERIAL_ATTRIBUTE_CATEGORY, decode(P_SERIAL_ATTRIBUTE_CATEGORY, fnd_api.g_miss_char, null,
908 decode(P_SERIAL_ATTRIBUTE_CATEGORY, NULL, SERIAL_ATTRIBUTE_CATEGORY, P_SERIAL_ATTRIBUTE_CATEGORY))),
909      ORIGINATION_DATE                =     decode(P_FROM_PUBLIC_API, 'N', P_ORIGINATION_DATE, decode(P_ORIGINATION_DATE, fnd_api.g_miss_date, null, decode(P_ORIGINATION_DATE, NULL, ORIGINATION_DATE, P_ORIGINATION_DATE))),
910 
911      C_ATTRIBUTE1                    =     decode(P_FROM_PUBLIC_API, 'N', P_C_ATTRIBUTE1, decode(P_C_ATTRIBUTE1, fnd_api.g_miss_char, null, decode(P_C_ATTRIBUTE1, NULL, C_ATTRIBUTE1, P_C_ATTRIBUTE1))),
912      C_ATTRIBUTE2                    =     decode(P_FROM_PUBLIC_API, 'N', P_C_ATTRIBUTE2, decode(P_C_ATTRIBUTE2, fnd_api.g_miss_char, null, decode(P_C_ATTRIBUTE2, NULL, C_ATTRIBUTE2, P_C_ATTRIBUTE2))),
913      C_ATTRIBUTE3                    =     decode(P_FROM_PUBLIC_API, 'N', P_C_ATTRIBUTE3, decode(P_C_ATTRIBUTE3, fnd_api.g_miss_char, null, decode(P_C_ATTRIBUTE3, NULL, C_ATTRIBUTE3, P_C_ATTRIBUTE3))),
914      C_ATTRIBUTE4                    =     decode(P_FROM_PUBLIC_API, 'N', P_C_ATTRIBUTE4, decode(P_C_ATTRIBUTE4, fnd_api.g_miss_char, null, decode(P_C_ATTRIBUTE4, NULL, C_ATTRIBUTE4, P_C_ATTRIBUTE4))),
915      C_ATTRIBUTE5                    =     decode(P_FROM_PUBLIC_API, 'N', P_C_ATTRIBUTE5, decode(P_C_ATTRIBUTE5, fnd_api.g_miss_char, null, decode(P_C_ATTRIBUTE5, NULL, C_ATTRIBUTE5, P_C_ATTRIBUTE5))),
916      C_ATTRIBUTE6                    =     decode(P_FROM_PUBLIC_API, 'N', P_C_ATTRIBUTE6, decode(P_C_ATTRIBUTE6, fnd_api.g_miss_char, null, decode(P_C_ATTRIBUTE6, NULL, C_ATTRIBUTE6, P_C_ATTRIBUTE6))),
917      C_ATTRIBUTE7                    =     decode(P_FROM_PUBLIC_API, 'N', P_C_ATTRIBUTE7, decode(P_C_ATTRIBUTE7, fnd_api.g_miss_char, null, decode(P_C_ATTRIBUTE7, NULL, C_ATTRIBUTE7, P_C_ATTRIBUTE7))),
918      C_ATTRIBUTE8                    =     decode(P_FROM_PUBLIC_API, 'N', P_C_ATTRIBUTE8, decode(P_C_ATTRIBUTE8, fnd_api.g_miss_char, null, decode(P_C_ATTRIBUTE8, NULL, C_ATTRIBUTE8, P_C_ATTRIBUTE8))),
919      C_ATTRIBUTE9                    =     decode(P_FROM_PUBLIC_API, 'N', P_C_ATTRIBUTE9, decode(P_C_ATTRIBUTE9, fnd_api.g_miss_char, null, decode(P_C_ATTRIBUTE9, NULL, C_ATTRIBUTE9, P_C_ATTRIBUTE9))),
920      C_ATTRIBUTE10                   =     decode(P_FROM_PUBLIC_API, 'N', P_C_ATTRIBUTE10, decode(P_C_ATTRIBUTE10, fnd_api.g_miss_char, null, decode(P_C_ATTRIBUTE10, NULL, C_ATTRIBUTE10, P_C_ATTRIBUTE10))),
924      C_ATTRIBUTE14                   =     decode(P_FROM_PUBLIC_API, 'N', P_C_ATTRIBUTE14, decode(P_C_ATTRIBUTE14, fnd_api.g_miss_char, null, decode(P_C_ATTRIBUTE14, NULL, C_ATTRIBUTE14, P_C_ATTRIBUTE14))),
921      C_ATTRIBUTE11                   =     decode(P_FROM_PUBLIC_API, 'N', P_C_ATTRIBUTE11, decode(P_C_ATTRIBUTE11, fnd_api.g_miss_char, null, decode(P_C_ATTRIBUTE11, NULL, C_ATTRIBUTE11, P_C_ATTRIBUTE11))),
922      C_ATTRIBUTE12                   =     decode(P_FROM_PUBLIC_API, 'N', P_C_ATTRIBUTE12, decode(P_C_ATTRIBUTE12, fnd_api.g_miss_char, null, decode(P_C_ATTRIBUTE12, NULL, C_ATTRIBUTE12, P_C_ATTRIBUTE12))),
923      C_ATTRIBUTE13                   =     decode(P_FROM_PUBLIC_API, 'N', P_C_ATTRIBUTE13, decode(P_C_ATTRIBUTE13, fnd_api.g_miss_char, null, decode(P_C_ATTRIBUTE13, NULL, C_ATTRIBUTE13, P_C_ATTRIBUTE13))),
925      C_ATTRIBUTE15                   =     decode(P_FROM_PUBLIC_API, 'N', P_C_ATTRIBUTE15, decode(P_C_ATTRIBUTE15, fnd_api.g_miss_char, null, decode(P_C_ATTRIBUTE15, NULL, C_ATTRIBUTE15, P_C_ATTRIBUTE15))),
926      C_ATTRIBUTE16                   =     decode(P_FROM_PUBLIC_API, 'N', P_C_ATTRIBUTE16, decode(P_C_ATTRIBUTE16, fnd_api.g_miss_char, null, decode(P_C_ATTRIBUTE16, NULL, C_ATTRIBUTE16, P_C_ATTRIBUTE16))),
927      C_ATTRIBUTE17                   =     decode(P_FROM_PUBLIC_API, 'N', P_C_ATTRIBUTE17, decode(P_C_ATTRIBUTE17, fnd_api.g_miss_char, null, decode(P_C_ATTRIBUTE17, NULL, C_ATTRIBUTE17, P_C_ATTRIBUTE17))),
928      C_ATTRIBUTE18                   =     decode(P_FROM_PUBLIC_API, 'N', P_C_ATTRIBUTE18, decode(P_C_ATTRIBUTE18, fnd_api.g_miss_char, null, decode(P_C_ATTRIBUTE18, NULL, C_ATTRIBUTE18, P_C_ATTRIBUTE18))),
929      C_ATTRIBUTE19                   =     decode(P_FROM_PUBLIC_API, 'N', P_C_ATTRIBUTE19, decode(P_C_ATTRIBUTE19, fnd_api.g_miss_char, null, decode(P_C_ATTRIBUTE19, NULL, C_ATTRIBUTE19, P_C_ATTRIBUTE19))),
930      C_ATTRIBUTE20                   =     decode(P_FROM_PUBLIC_API, 'N', P_C_ATTRIBUTE20, decode(P_C_ATTRIBUTE20, fnd_api.g_miss_char, null, decode(P_C_ATTRIBUTE20, NULL, C_ATTRIBUTE20, P_C_ATTRIBUTE20))),
931      D_ATTRIBUTE1                    =     decode(P_FROM_PUBLIC_API, 'N', P_D_ATTRIBUTE1, decode(P_D_ATTRIBUTE1, fnd_api.g_miss_date, null, decode(P_D_ATTRIBUTE1, NULL, D_ATTRIBUTE1, P_D_ATTRIBUTE1))),
932      D_ATTRIBUTE2                    =     decode(P_FROM_PUBLIC_API, 'N', P_D_ATTRIBUTE2, decode(P_D_ATTRIBUTE2, fnd_api.g_miss_date, null, decode(P_D_ATTRIBUTE2, NULL, D_ATTRIBUTE2, P_D_ATTRIBUTE2))),
933      D_ATTRIBUTE3                    =     decode(P_FROM_PUBLIC_API, 'N', P_D_ATTRIBUTE3, decode(P_D_ATTRIBUTE3, fnd_api.g_miss_date, null, decode(P_D_ATTRIBUTE3, NULL, D_ATTRIBUTE3, P_D_ATTRIBUTE3))),
934      D_ATTRIBUTE4                    =     decode(P_FROM_PUBLIC_API, 'N', P_D_ATTRIBUTE4, decode(P_D_ATTRIBUTE4, fnd_api.g_miss_date, null, decode(P_D_ATTRIBUTE4, NULL, D_ATTRIBUTE4, P_D_ATTRIBUTE4))),
935      D_ATTRIBUTE5                    =     decode(P_FROM_PUBLIC_API, 'N', P_D_ATTRIBUTE5, decode(P_D_ATTRIBUTE5, fnd_api.g_miss_date, null, decode(P_D_ATTRIBUTE5, NULL, D_ATTRIBUTE5, P_D_ATTRIBUTE5))),
936      D_ATTRIBUTE6                    =     decode(P_FROM_PUBLIC_API, 'N', P_D_ATTRIBUTE6, decode(P_D_ATTRIBUTE6, fnd_api.g_miss_date, null, decode(P_D_ATTRIBUTE6, NULL, D_ATTRIBUTE6, P_D_ATTRIBUTE6))),
937      D_ATTRIBUTE7                    =     decode(P_FROM_PUBLIC_API, 'N', P_D_ATTRIBUTE7, decode(P_D_ATTRIBUTE7, fnd_api.g_miss_date, null, decode(P_D_ATTRIBUTE7, NULL, D_ATTRIBUTE7, P_D_ATTRIBUTE7))),
938      D_ATTRIBUTE8                    =     decode(P_FROM_PUBLIC_API, 'N', P_D_ATTRIBUTE8, decode(P_D_ATTRIBUTE8, fnd_api.g_miss_date, null, decode(P_D_ATTRIBUTE8, NULL, D_ATTRIBUTE8, P_D_ATTRIBUTE8))),
939      D_ATTRIBUTE9                    =     decode(P_FROM_PUBLIC_API, 'N', P_D_ATTRIBUTE9, decode(P_D_ATTRIBUTE9, fnd_api.g_miss_date, null, decode(P_D_ATTRIBUTE9, NULL, D_ATTRIBUTE9, P_D_ATTRIBUTE9))),
940      D_ATTRIBUTE10                   =     decode(P_FROM_PUBLIC_API, 'N', P_D_ATTRIBUTE10, decode(P_D_ATTRIBUTE10, fnd_api.g_miss_date, null, decode(P_D_ATTRIBUTE10, NULL, D_ATTRIBUTE10, P_D_ATTRIBUTE10))),
941      N_ATTRIBUTE1                    =     decode(P_FROM_PUBLIC_API, 'N', P_N_ATTRIBUTE1, decode(P_N_ATTRIBUTE1, fnd_api.g_miss_num, null, decode(P_N_ATTRIBUTE1, NULL, N_ATTRIBUTE1, P_N_ATTRIBUTE1))),
942      N_ATTRIBUTE2                    =     decode(P_FROM_PUBLIC_API, 'N', P_N_ATTRIBUTE2, decode(P_N_ATTRIBUTE2, fnd_api.g_miss_num, null, decode(P_N_ATTRIBUTE2, NULL, N_ATTRIBUTE2, P_N_ATTRIBUTE2))),
943      N_ATTRIBUTE3                    =     decode(P_FROM_PUBLIC_API, 'N', P_N_ATTRIBUTE3, decode(P_N_ATTRIBUTE3, fnd_api.g_miss_num, null, decode(P_N_ATTRIBUTE3, NULL, N_ATTRIBUTE3, P_N_ATTRIBUTE3))),
944      N_ATTRIBUTE4                    =     decode(P_FROM_PUBLIC_API, 'N', P_N_ATTRIBUTE4, decode(P_N_ATTRIBUTE4, fnd_api.g_miss_num, null, decode(P_N_ATTRIBUTE4, NULL, N_ATTRIBUTE4, P_N_ATTRIBUTE4))),
945      N_ATTRIBUTE5                    =     decode(P_FROM_PUBLIC_API, 'N', P_N_ATTRIBUTE5, decode(P_N_ATTRIBUTE5, fnd_api.g_miss_num, null, decode(P_N_ATTRIBUTE5, NULL, N_ATTRIBUTE5, P_N_ATTRIBUTE5))),
946      N_ATTRIBUTE6                    =     decode(P_FROM_PUBLIC_API, 'N', P_N_ATTRIBUTE6, decode(P_N_ATTRIBUTE6, fnd_api.g_miss_num, null, decode(P_N_ATTRIBUTE6, NULL, N_ATTRIBUTE6, P_N_ATTRIBUTE6))),
947      N_ATTRIBUTE7                    =     decode(P_FROM_PUBLIC_API, 'N', P_N_ATTRIBUTE7, decode(P_N_ATTRIBUTE7, fnd_api.g_miss_num, null, decode(P_N_ATTRIBUTE7, NULL, N_ATTRIBUTE7, P_N_ATTRIBUTE7))),
948      N_ATTRIBUTE8                    =     decode(P_FROM_PUBLIC_API, 'N', P_N_ATTRIBUTE8, decode(P_N_ATTRIBUTE8, fnd_api.g_miss_num, null, decode(P_N_ATTRIBUTE8, NULL, N_ATTRIBUTE8, P_N_ATTRIBUTE8))),
949      N_ATTRIBUTE9                    =     decode(P_FROM_PUBLIC_API, 'N', P_N_ATTRIBUTE9, decode(P_N_ATTRIBUTE9, fnd_api.g_miss_num, null, decode(P_N_ATTRIBUTE9, NULL, N_ATTRIBUTE9, P_N_ATTRIBUTE9))),
950      N_ATTRIBUTE10                   =     decode(P_FROM_PUBLIC_API, 'N', P_N_ATTRIBUTE10, decode(P_N_ATTRIBUTE10, fnd_api.g_miss_num, null, decode(P_N_ATTRIBUTE10, NULL, N_ATTRIBUTE10, P_N_ATTRIBUTE10))),
951      STATUS_ID                       =     decode(P_FROM_PUBLIC_API, 'N', P_STATUS_ID, decode(P_STATUS_ID, fnd_api.g_miss_num, null, decode(P_STATUS_ID, NULL, STATUS_ID, STATUS_ID))),
955      CYCLES_SINCE_NEW                =     decode(P_FROM_PUBLIC_API, 'N', P_CYCLES_SINCE_NEW, decode(P_CYCLES_SINCE_NEW, fnd_api.g_miss_num, null, decode(P_CYCLES_SINCE_NEW, NULL, CYCLES_SINCE_NEW, P_CYCLES_SINCE_NEW))),
952      TERRITORY_CODE                  =     decode(P_FROM_PUBLIC_API, 'N', P_TERRITORY_CODE, decode(P_TERRITORY_CODE, fnd_api.g_miss_char, null, decode(P_TERRITORY_CODE, NULL, TERRITORY_CODE, P_TERRITORY_CODE))),
953      COST_GROUP_ID                   =     decode(P_FROM_PUBLIC_API, 'N', P_COST_GROUP_ID, decode(P_COST_GROUP_ID, fnd_api.g_miss_num, null, decode(P_COST_GROUP_ID, NULL, COST_GROUP_ID, P_COST_GROUP_ID))),
954      TIME_SINCE_NEW                  =     decode(P_FROM_PUBLIC_API, 'N', P_TIME_SINCE_NEW, decode(P_TIME_SINCE_NEW, fnd_api.g_miss_num, null, decode(P_TIME_SINCE_NEW, NULL, TIME_SINCE_NEW, P_TIME_SINCE_NEW))),
956      TIME_SINCE_OVERHAUL             =     decode(P_FROM_PUBLIC_API, 'N', P_TIME_SINCE_OVERHAUL, decode(P_TIME_SINCE_OVERHAUL, fnd_api.g_miss_num, null, decode(P_TIME_SINCE_OVERHAUL, NULL, TIME_SINCE_OVERHAUL, P_TIME_SINCE_OVERHAUL))),
957      CYCLES_SINCE_OVERHAUL           =     decode(P_FROM_PUBLIC_API, 'N', P_CYCLES_SINCE_OVERHAUL, decode(P_CYCLES_SINCE_OVERHAUL, fnd_api.g_miss_num, null, decode(P_CYCLES_SINCE_OVERHAUL, NULL, CYCLES_SINCE_OVERHAUL, P_CYCLES_SINCE_OVERHAUL))),
958      TIME_SINCE_REPAIR               =     decode(P_FROM_PUBLIC_API, 'N', P_TIME_SINCE_REPAIR, decode(P_TIME_SINCE_REPAIR, fnd_api.g_miss_num, null, decode(P_TIME_SINCE_REPAIR, NULL, TIME_SINCE_REPAIR, P_TIME_SINCE_REPAIR))),
959      CYCLES_SINCE_REPAIR             =     decode(P_FROM_PUBLIC_API, 'N', P_CYCLES_SINCE_REPAIR, decode(P_CYCLES_SINCE_REPAIR, fnd_api.g_miss_num, null, decode(P_CYCLES_SINCE_REPAIR, NULL, CYCLES_SINCE_REPAIR, P_CYCLES_SINCE_REPAIR))),
960      TIME_SINCE_VISIT                =     decode(P_FROM_PUBLIC_API, 'N', P_TIME_SINCE_VISIT, decode(P_TIME_SINCE_VISIT, fnd_api.g_miss_num, null, decode(P_TIME_SINCE_VISIT, NULL, TIME_SINCE_VISIT, P_TIME_SINCE_VISIT))),
961      CYCLES_SINCE_VISIT              =     decode(P_FROM_PUBLIC_API, 'N', P_CYCLES_SINCE_VISIT, decode(P_CYCLES_SINCE_VISIT, fnd_api.g_miss_num, null, decode(P_CYCLES_SINCE_VISIT, NULL, CYCLES_SINCE_VISIT, P_CYCLES_SINCE_VISIT))),
962      TIME_SINCE_MARK                 =     decode(P_FROM_PUBLIC_API, 'N', P_TIME_SINCE_MARK, decode(P_TIME_SINCE_MARK, fnd_api.g_miss_num, null, decode(P_TIME_SINCE_MARK, NULL, TIME_SINCE_MARK, P_TIME_SINCE_MARK))),
963      CYCLES_SINCE_MARK               =     decode(P_FROM_PUBLIC_API, 'N', P_CYCLES_SINCE_MARK, decode(P_CYCLES_SINCE_MARK, fnd_api.g_miss_num, null, decode(P_CYCLES_SINCE_MARK, NULL, CYCLES_SINCE_MARK, P_CYCLES_SINCE_MARK))),
964      LPN_ID                          =     decode(P_FROM_PUBLIC_API, 'N', P_LPN_ID, decode(P_LPN_ID, fnd_api.g_miss_num, null, decode(P_LPN_ID, NULL, LPN_ID, P_LPN_ID))),
965      INSPECTION_STATUS               =     decode(P_FROM_PUBLIC_API, 'N', P_INSPECTION_STATUS, decode(P_INSPECTION_STATUS, fnd_api.g_miss_num, null, decode(P_INSPECTION_STATUS, NULL, INSPECTION_STATUS, P_INSPECTION_STATUS))),
966      PREVIOUS_STATUS                 =     decode(P_FROM_PUBLIC_API, 'N', P_PREVIOUS_STATUS, decode(P_PREVIOUS_STATUS, fnd_api.g_miss_num, null, decode(P_PREVIOUS_STATUS, NULL, PREVIOUS_STATUS, P_PREVIOUS_STATUS))),
967      LPN_TXN_ERROR_FLAG              =     decode(P_FROM_PUBLIC_API, 'N', P_LPN_TXN_ERROR_FLAG, decode(P_LPN_TXN_ERROR_FLAG, fnd_api.g_miss_char, null, decode(P_LPN_TXN_ERROR_FLAG, NULL, LPN_TXN_ERROR_FLAG, P_LPN_TXN_ERROR_FLAG))),
968      REQUEST_ID                      =     decode(P_FROM_PUBLIC_API, 'N', P_REQUEST_ID, decode(P_REQUEST_ID, fnd_api.g_miss_num, null, decode(P_REQUEST_ID, NULL, REQUEST_ID, P_REQUEST_ID))),
969      PROGRAM_APPLICATION_ID          =     decode(P_FROM_PUBLIC_API, 'N', P_PROGRAM_APPLICATION_ID, decode(P_PROGRAM_APPLICATION_ID, fnd_api.g_miss_num, null, decode(P_PROGRAM_APPLICATION_ID, NULL, PROGRAM_APPLICATION_ID, P_PROGRAM_APPLICATION_ID))),
970      PROGRAM_ID                      =     decode(P_FROM_PUBLIC_API, 'N', P_PROGRAM_ID, decode(P_PROGRAM_ID, fnd_api.g_miss_num, null, decode(P_PROGRAM_ID, NULL, PROGRAM_ID, P_PROGRAM_ID))),
971 
972      PROGRAM_UPDATE_DATE             =     decode(P_FROM_PUBLIC_API, 'N', P_PROGRAM_UPDATE_DATE, decode(P_PROGRAM_UPDATE_DATE, fnd_api.g_miss_date, null, decode(P_PROGRAM_UPDATE_DATE, NULL, PROGRAM_UPDATE_DATE, P_PROGRAM_UPDATE_DATE))),
973 
974     --'Serial Tracking in WIP' project- update WIP_ENTITY_ID, OPERATION_SEQ_NUM, INTRAOPERATION_STEP_TYPE also
975      -- IN MSN.
976      WIP_ENTITY_ID                   =     decode(P_FROM_PUBLIC_API, 'N', P_WIP_ENTITY_ID, NULL, decode(P_WIP_ENTITY_ID,fnd_api.g_miss_num, NULL, decode(P_WIP_ENTITY_ID, NULL, WIP_ENTITY_ID,P_WIP_ENTITY_ID))),
977 
978      OPERATION_SEQ_NUM               =     decode(P_FROM_PUBLIC_API, 'N', P_OPERATION_SEQ_NUM,
979 decode(P_OPERATION_SEQ_NUM, fnd_api.g_miss_num, NULL, decode(P_OPERATION_SEQ_NUM, NULL, OPERATION_SEQ_NUM, P_OPERATION_SEQ_NUM))),
980 
981      INTRAOPERATION_STEP_TYPE        =     decode(P_FROM_PUBLIC_API, 'N', P_INTRAOPERATION_STEP_TYPE,
982 decode(P_INTRAOPERATION_STEP_TYPE, fnd_api.g_miss_num, NULL, decode(P_INTRAOPERATION_STEP_TYPE, NULL, INTRAOPERATION_STEP_TYPE, P_INTRAOPERATION_STEP_TYPE)))
983     WHERE ROWID = P_ROWID;
984 
985     if (SQL%NOTFOUND) then
986       Raise NO_DATA_FOUND;
987     end if;
988 
989    -- End of API body.
990    -- Standard check of p_commit.
991       IF fnd_api.to_boolean(p_commit) THEN
992          COMMIT WORK;
993       END IF;
994 
995    -- Standard call to get message count and if count is 1, get message info.
996       fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
997    EXCEPTION
998       WHEN fnd_api.g_exc_error THEN
999          ROLLBACK TO update_row;
1000          x_return_status := fnd_api.g_ret_sts_error;
1001          fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
1002       WHEN fnd_api.g_exc_unexpected_error THEN
1003          ROLLBACK TO update_row;
1007            ,p_data => x_msg_data);
1004          x_return_status := fnd_api.g_ret_sts_unexp_error;
1005          fnd_msg_pub.count_and_get(
1006             p_count => x_msg_count
1008       WHEN OTHERS THEN
1009          ROLLBACK TO update_row;
1010          x_return_status := fnd_api.g_ret_sts_unexp_error;
1011 
1012          IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
1013             fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
1014          END IF;
1015 
1016          fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
1017 
1018   END Update_Row;
1019 
1020 
1021 PROCEDURE LOCK_ROW(
1022   P_API_VERSION                IN NUMBER,
1023   P_INIT_MSG_LIST              IN VARCHAR2 := FND_API.G_FALSE,
1024   P_COMMIT                     IN VARCHAR2 := FND_API.G_FALSE,
1025   P_VALIDATION_LEVEL           IN NUMBER   := FND_API.G_VALID_LEVEL_FULL,
1026   P_ROWID                         VARCHAR2,
1027   P_INVENTORY_ITEM_ID             NUMBER,
1028   P_SERIAL_NUMBER                 VARCHAR2,
1029   P_START_DATE_ACTIVE             DATE,
1030   P_DESCRIPTIVE_TEXT              VARCHAR2,
1031   P_ORGANIZATION_ID               NUMBER,
1032   P_CATEGORY_ID                   NUMBER,
1033   P_PROD_ORGANIZATION_ID          NUMBER,
1034   P_EQUIPMENT_ITEM_ID             NUMBER,
1035   P_EQP_SERIAL_NUMBER             VARCHAR2,
1036   P_PN_LOCATION_ID                NUMBER,
1037   P_EAM_LOCATION_ID               NUMBER,
1038   P_FA_ASSET_ID                   NUMBER,
1039   P_ASSET_CRITICALITY_CODE        VARCHAR2,
1040   P_WIP_ACCOUNTING_CLASS_CODE     VARCHAR2,
1041   P_MAINTAINABLE_FLAG             VARCHAR2,
1042   P_NETWORK_ASSET_FLAG            VARCHAR2,
1043   P_OWNING_DEPARTMENT_ID          NUMBER,
1044   P_ATTRIBUTE_CATEGORY            VARCHAR2,
1045   P_ATTRIBUTE1                    VARCHAR2,
1046   P_ATTRIBUTE2                    VARCHAR2,
1047   P_ATTRIBUTE3                    VARCHAR2,
1048   P_ATTRIBUTE4                    VARCHAR2,
1049   P_ATTRIBUTE5                    VARCHAR2,
1050   P_ATTRIBUTE6                    VARCHAR2,
1051   P_ATTRIBUTE7                    VARCHAR2,
1052   P_ATTRIBUTE8                    VARCHAR2,
1053   P_ATTRIBUTE9                    VARCHAR2,
1054   P_ATTRIBUTE10                   VARCHAR2,
1055   P_ATTRIBUTE11                   VARCHAR2,
1056   P_ATTRIBUTE12                   VARCHAR2,
1057   P_ATTRIBUTE13                   VARCHAR2,
1058   P_ATTRIBUTE14                   VARCHAR2,
1059   P_ATTRIBUTE15                   VARCHAR2,
1060   P_REQUEST_ID                    NUMBER DEFAULT NULL,
1061   P_PROGRAM_APPLICATION_ID        NUMBER DEFAULT NULL,
1062   P_PROGRAM_ID                    NUMBER DEFAULT NULL,
1063   P_PROGRAM_UPDATE_DATE           DATE DEFAULT NULL,
1064   X_RETURN_STATUS             OUT NOCOPY VARCHAR2,
1065   X_MSG_COUNT                 OUT NOCOPY NUMBER,
1066   X_MSG_DATA                  OUT NOCOPY VARCHAR2,
1067   P_WIP_ENTITY_ID                 NUMBER,
1068   P_OPERATION_SEQ_NUM             NUMBER,
1069   P_INTRAOPERATION_STEP_TYPE      NUMBER
1070   ) IS
1071     l_api_name       CONSTANT VARCHAR2(30) := 'lock_row';
1072     l_api_version    CONSTANT NUMBER       := 1.0;
1073     l_full_name      CONSTANT VARCHAR2(60)   := g_pkg_name || '.' || l_api_name;
1074 
1075     CURSOR C IS
1076         SELECT *
1077         FROM   MTL_SERIAL_NUMBERS
1078         WHERE  rowid = P_Rowid
1079         FOR UPDATE of SERIAL_NUMBER NOWAIT;
1080     Recinfo C%ROWTYPE;
1081 
1082   BEGIN
1083 
1084    -- Standard Start of API savepoint
1085       SAVEPOINT lock_row;
1086 
1087    -- Standard call to check for call compatibility.
1088       IF NOT fnd_api.compatible_api_call(l_api_version, p_api_version, l_api_name, g_pkg_name) THEN
1089          RAISE fnd_api.g_exc_unexpected_error;
1090       END IF;
1091 
1092    -- Initialize message list if p_init_msg_list is set to TRUE.
1093       IF fnd_api.to_boolean(p_init_msg_list) THEN
1094          fnd_msg_pub.initialize;
1095       END IF;
1096 
1097    -- Initialize API return status to success
1098       x_return_status := fnd_api.g_ret_sts_success;
1099 
1100    -- API body
1101 
1102     OPEN C;
1103     FETCH C INTO Recinfo;
1104     if (C%NOTFOUND) then
1105       CLOSE C;
1106       FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_DELETED');
1107       APP_EXCEPTION.Raise_Exception;
1108     end if;
1109     CLOSE C;
1110 
1111     if (
1112        (Recinfo.INVENTORY_ITEM_ID =  P_INVENTORY_ITEM_ID)
1113        AND (Recinfo.CURRENT_ORGANIZATION_ID =  P_ORGANIZATION_ID)
1114        AND (Recinfo.SERIAL_NUMBER =  P_SERIAL_NUMBER)
1115        AND (   (Recinfo.DESCRIPTIVE_TEXT =  P_DESCRIPTIVE_TEXT)
1116             OR (    (Recinfo.DESCRIPTIVE_TEXT IS NULL)
1117                 AND (P_DESCRIPTIVE_TEXT IS NULL)))
1118        AND (   (Recinfo.CATEGORY_ID =  P_CATEGORY_ID)
1119             OR (    (Recinfo.CATEGORY_ID IS NULL)
1120                 AND (P_CATEGORY_ID IS NULL)))
1121        AND (   (Recinfo.PROD_ORGANIZATION_ID =  P_PROD_ORGANIZATION_ID)
1122             OR (    (Recinfo.PROD_ORGANIZATION_ID IS NULL)
1123                 AND (P_PROD_ORGANIZATION_ID IS NULL)))
1124        AND (   (Recinfo.EQUIPMENT_ITEM_ID =  P_EQUIPMENT_ITEM_ID)
1125             OR (    (Recinfo.EQUIPMENT_ITEM_ID IS NULL)
1126                 AND (P_EQUIPMENT_ITEM_ID IS NULL)))
1127        AND (   (Recinfo.EQP_SERIAL_NUMBER =  P_EQP_SERIAL_NUMBER)
1128             OR (    (Recinfo.EQP_SERIAL_NUMBER IS NULL)
1129                 AND (P_EQP_SERIAL_NUMBER IS NULL)))
1130        AND (   (Recinfo.PN_LOCATION_ID =  P_PN_LOCATION_ID)
1131             OR (    (Recinfo.PN_LOCATION_ID IS NULL)
1132                 AND (P_PN_LOCATION_ID IS NULL)))
1133        AND (   (Recinfo.EAM_LOCATION_ID =  P_EAM_LOCATION_ID)
1134             OR (    (Recinfo.EAM_LOCATION_ID IS NULL)
1135                 AND (P_EAM_LOCATION_ID IS NULL)))
1136        AND (   (Recinfo.FA_ASSET_ID =  P_FA_ASSET_ID)
1137             OR (    (Recinfo.FA_ASSET_ID IS NULL)
1138                 AND (P_FA_ASSET_ID IS NULL)))
1139        AND (   (Recinfo.ASSET_CRITICALITY_CODE =  P_ASSET_CRITICALITY_CODE)
1140             OR (    (Recinfo.ASSET_CRITICALITY_CODE IS NULL)
1141                 AND (P_ASSET_CRITICALITY_CODE IS NULL)))
1142        AND (   (Recinfo.WIP_ACCOUNTING_CLASS_CODE =  P_WIP_ACCOUNTING_CLASS_CODE)
1143             OR (    (Recinfo.WIP_ACCOUNTING_CLASS_CODE IS NULL)
1144                 AND (P_WIP_ACCOUNTING_CLASS_CODE IS NULL)))
1145        AND (   (Recinfo.MAINTAINABLE_FLAG =  P_MAINTAINABLE_FLAG)
1146             OR (    (Recinfo.MAINTAINABLE_FLAG IS NULL)
1147                 AND (P_MAINTAINABLE_FLAG IS NULL)))
1148        AND (   (Recinfo.NETWORK_ASSET_FLAG =  P_NETWORK_ASSET_FLAG)
1149             OR (    (Recinfo.NETWORK_ASSET_FLAG IS NULL)
1150                 AND (P_NETWORK_ASSET_FLAG IS NULL)))
1151        AND (   (Recinfo.OWNING_DEPARTMENT_ID =  P_OWNING_DEPARTMENT_ID)
1152             OR (    (Recinfo.OWNING_DEPARTMENT_ID IS NULL)
1153                 AND (P_OWNING_DEPARTMENT_ID IS NULL)))
1154        AND (   (Recinfo.attribute_category =  P_Attribute_Category)
1155             OR (    (Recinfo.attribute_category IS NULL)
1156                 AND (P_Attribute_Category IS NULL)))
1160        AND (   (Recinfo.attribute2 =  P_Attribute2)
1157        AND (   (Recinfo.attribute1 =  P_Attribute1)
1158             OR (    (Recinfo.attribute1 IS NULL)
1159                 AND (P_Attribute1 IS NULL)))
1161             OR (    (Recinfo.attribute2 IS NULL)
1162                 AND (P_Attribute2 IS NULL)))
1163        AND (   (Recinfo.attribute3 =  P_Attribute3)
1164             OR (    (Recinfo.attribute3 IS NULL)
1165                 AND (P_Attribute3 IS NULL)))
1166        AND (   (Recinfo.attribute4 =  P_Attribute4)
1167             OR (    (Recinfo.attribute4 IS NULL)
1168                 AND (P_Attribute4 IS NULL)))
1169        AND (   (Recinfo.attribute5 =  P_Attribute5)
1170             OR (    (Recinfo.attribute5 IS NULL)
1171                 AND (P_Attribute5 IS NULL)))
1172        AND (   (Recinfo.attribute6 =  P_Attribute6)
1173             OR (    (Recinfo.attribute6 IS NULL)
1174                 AND (P_Attribute6 IS NULL)))
1175        AND (   (Recinfo.attribute7 =  P_Attribute7)
1176             OR (    (Recinfo.attribute7 IS NULL)
1177                 AND (P_Attribute7 IS NULL)))
1178        AND (   (Recinfo.attribute8 =  P_Attribute8)
1179             OR (    (Recinfo.attribute8 IS NULL)
1180                 AND (P_Attribute8 IS NULL)))
1181        AND (   (Recinfo.attribute9 =  P_Attribute9)
1182             OR (    (Recinfo.attribute9 IS NULL)
1183                 AND (P_Attribute9 IS NULL)))
1184        AND (   (Recinfo.attribute10 =  P_Attribute10)
1185             OR (    (Recinfo.attribute10 IS NULL)
1186                 AND (P_Attribute10 IS NULL)))
1187        AND (   (Recinfo.attribute11 =  P_Attribute11)
1188             OR (    (Recinfo.attribute11 IS NULL)
1189                 AND (P_Attribute11 IS NULL)))
1190        AND (   (Recinfo.attribute12 =  P_Attribute12)
1191             OR (    (Recinfo.attribute12 IS NULL)
1192                 AND (P_Attribute12 IS NULL)))
1193        AND (   (Recinfo.attribute13 =  P_Attribute13)
1194             OR (    (Recinfo.attribute13 IS NULL)
1195                 AND (P_Attribute13 IS NULL)))
1196        AND (   (Recinfo.attribute14 =  P_Attribute14)
1197             OR (    (Recinfo.attribute14 IS NULL)
1198                 AND (P_Attribute14 IS NULL)))
1199        AND (   (Recinfo.attribute15 =  P_Attribute15)
1200             OR (    (Recinfo.attribute15 IS NULL)
1201                 AND (P_Attribute15 IS NULL)))
1202        AND (   (Recinfo.REQUEST_ID = P_REQUEST_ID)
1203             OR (    (Recinfo.REQUEST_ID IS NULL)
1204                 AND (P_REQUEST_ID IS NULL)))
1205        AND (   (Recinfo.PROGRAM_APPLICATION_ID = P_PROGRAM_APPLICATION_ID)
1206             OR (    (Recinfo.PROGRAM_APPLICATION_ID IS NULL)
1207                 AND (P_PROGRAM_APPLICATION_ID IS NULL)))
1208        AND (   (Recinfo.PROGRAM_ID = P_PROGRAM_ID)
1209             OR (    (Recinfo.PROGRAM_ID IS NULL)
1210                 AND (P_PROGRAM_ID IS NULL)))
1211        AND (   (Recinfo.PROGRAM_UPDATE_DATE = P_PROGRAM_UPDATE_DATE)
1212             OR (    (Recinfo.PROGRAM_UPDATE_DATE IS NULL)
1213                 AND (P_PROGRAM_UPDATE_DATE IS NULL)))
1214     --'Serial Tracking in WIP' project- lock the row in MSN by including  WIP_ENTITY_ID, OPERATION_SEQ_NUM
1215     -- , INTRAOPERATION_STEP_TYPE also.
1216        AND ( (Recinfo.WIP_ENTITY_ID = P_WIP_ENTITY_ID)
1217 		      OR( (Recinfo.WIP_ENTITY_ID is NULL)
1218 			       AND (P_WIP_ENTITY_ID is NULL)))
1219 	    AND ( (Recinfo.OPERATION_SEQ_NUM = P_OPERATION_SEQ_NUM)
1220 	         OR( (Recinfo.OPERATION_SEQ_NUM is NULL)
1221 			       AND (P_OPERATION_SEQ_NUM is NULL)))
1222        AND ( (Recinfo.INTRAOPERATION_STEP_TYPE = P_INTRAOPERATION_STEP_TYPE)
1223 	         OR( (Recinfo. INTRAOPERATION_STEP_TYPE is NULL)
1224 		          AND (P_INTRAOPERATION_STEP_TYPE is NULL)))
1225             ) then
1226       return;
1227     else
1228       FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
1229       APP_EXCEPTION.Raise_Exception;
1230     end if;
1231 
1232    -- End of API body.
1233    -- Standard check of p_commit.
1234       IF fnd_api.to_boolean(p_commit) THEN
1235          COMMIT WORK;
1236       END IF;
1237 
1238    -- Standard call to get message count and if count is 1, get message info.
1239       fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
1240    EXCEPTION
1241       WHEN fnd_api.g_exc_error THEN
1242          ROLLBACK TO lock_row;
1243          x_return_status := fnd_api.g_ret_sts_error;
1244          fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
1245       WHEN fnd_api.g_exc_unexpected_error THEN
1246          ROLLBACK TO lock_row;
1247          x_return_status := fnd_api.g_ret_sts_unexp_error;
1248          fnd_msg_pub.count_and_get(
1249             p_count => x_msg_count
1250            ,p_data => x_msg_data);
1251       WHEN OTHERS THEN
1252          ROLLBACK TO lock_row;
1253          x_return_status := fnd_api.g_ret_sts_unexp_error;
1254 
1255          IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
1256             fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
1257          END IF;
1258 
1259          fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
1260 
1261   END Lock_Row;
1262 
1263 
1264 
1265 END INV_EAM_ASSET_NUMBER_PVT;