DBA Data[Home] [Help]

PACKAGE BODY: APPS.EAM_WORKORDERREP_PVT

Source


1 PACKAGE BODY EAM_WORKORDERREP_PVT AS
2 /* $Header: EAMVWRPB.pls 120.21.12020000.5 2013/03/20 09:20:44 rsandepo ship $ */
3 /***************************************************************************
4 --
5 --  Copyright (c) 2002 Oracle Corporation, Redwood Shores, CA, USA
6 --  All rights reserved.
7 --
8 --  FILENAME
9 --
10 --      EAMVWRPB.pls
11 --
12 --  DESCRIPTION
13 --
14 --      Body of package EAM_WorkOrderRep_PVT
15 --
16 --  NOTES
17 --
18 --  HISTORY
19 --
20 --  02-MARCH-2006    Smriti Sharma     Initial Creation
21 --  20-APR-2009      ngoutam           Bug  7758322
22 ***************************************************************************/
23 
24 
25 G_PKG_NAME      CONSTANT VARCHAR2(30):='EAM_WorkOrderRep_PVT';
26 Function getWoReportXML
27 (
28         p_wip_entity_id in system.eam_wipid_tab_type,
29         p_operation_flag in int,
30         p_material_flag in int,
31         p_resource_flag in int,
32         p_direct_material_flag in int,
33   p_short_attachment_flag in int,
34         p_long_attachment_flag in int,
35         p_file_attachment_flag in int,
36         p_work_request_flag in int,
37         p_meter_flag in int,
38         p_quality_plan_flag in int,
39         p_asset_bom_flag in int,
40     p_safety_permit_flag in int, -- for permit param
41         p_safety_clearance_flag in int -- for clearance param
42 )return CLOB
43 
44 IS
45 
46  l_xmlType XMLType:=null;
47  l_xmlType1 XMLType:=null;
48  l_xmlTypeParamList XMLType:=null;
49  l_xmlTypeOperation XMLType:=null;
50  l_xmlTypeResource XMLType:=null;
51  l_xmlTypeEmployee XMLType:=null;
52  l_xmlTypeDirectMaterial XMLType:=null;
53  l_xmlTypeShortAttachment XMLType:=null;
54  l_xmlTypeOpShortAttachment XMLType:=null;
55  l_xmlTypeLongAttachment XMLType:=null;
56  l_xmlTypeOpLongAttachment XMLType:=null;
57  l_xmlTypefileattachment XMLType:=null;
58  l_xmlTypeWorkRequest XMLType:=null;
59  l_xmlTypeMeter XMLType:=null;
60  l_xmlTypeMaterial XMLType:=null;
61  l_xmlTypeQualityPlan XMLType:=null;
62  l_xmlTypeAssetBom XMLType :=null;
63  l_xmlTypeFailureData XMLType:=null;
64  l_xmlTemp XMLType:=null;
65  l_xmlTemp2 XMLType:=null;
66  l_xmlTemp3 XMLType:=null;
67  l_xmlTemp4 XMLType:=null;
68  l_string varchar2(4000);
69  l_wip_entity_name varchar2(100);
70  l_organization_id number;
71  l_org_id number;
72  l_asset_group varchar2(100);
73  l_instance_number varchar2(100):=null;
74  l_serial_number varchar2(100):=null;
75  l_asset_activity varchar2(100):=null;
76  l_media_id number:=0;
77  l_plan_id number;
78  i number:=1;
79  l_temp clob:=null;
80 
81                   -- FP 7493388 for Base Bug 7005666
82  l_inventory_id number;
83  l_asset_route_flag varchar2(20);
84  l_xmlTypeAssetroutecomp XMLType:=null;
85                   -- for Bug 7005666
86 
87 l_xmlTypePermits XMLType   :=NULL; --permit safety report
88 l_xmlTypeClearances XMLType   :=NULL; -- safety clearances
89 
90 
91  cursor operation_cursor(p_wip_id number) is
92   SELECT XMLELEMENT("OPERATION", XMLFOREST(WO.OPERATION_SEQ_NUM as "OPSEQNUM",
93     fnd_date.date_to_displayDT(dateval => Convert_to_client_time(WO.FIRST_UNIT_START_DATE), calendar_aware => FND_DATE.calendar_aware_alt) as "OPSSHEDULEDSTART",
94     fnd_date.date_to_displayDT(dateval => Convert_to_client_time(WO.LAST_UNIT_COMPLETION_DATE), calendar_aware => FND_DATE.calendar_aware_alt) as "OPSCHEDULEDCOMPLETION",
95     to_char((WO.LAST_UNIT_COMPLETION_DATE-WO.FIRST_UNIT_START_DATE),'99.99') as "OPDURATION",
96     LU2.meaning as "OPSHUTDOWNTYPE",
97     LU1.meaning as "OPCOMPLETED",
98     BS.OPERATION_CODE as "OPCODE",
99     BD.DEPARTMENT_CODE as "OPDEPT",
100     WO.DESCRIPTION as "OPDESC",
101     WO.LONG_DESCRIPTION as "OPLONGDESC",
102     fnd_date.date_to_displayDT(dateval => Convert_to_client_time(eoctv.actual_start_date),calendar_aware => FND_DATE.calendar_aware_alt) as "OPACTUALSTARTDATE",
103     fnd_date.date_to_displayDT(dateval => Convert_to_client_time(eoctv.actual_end_date),calendar_aware => FND_DATE.calendar_aware_alt) as "OPACTUALENDDATE"))  Operation
104   FROM
105     eam_op_completion_txns_v eoctv,
106     FND_COMMON_LOOKUPS LU1,
107     MFG_LOOKUPS LU2,
108     WIP_OPERATIONS WO,
109     BOM_STANDARD_OPERATIONS BS,
110     BOM_DEPARTMENTS BD
111   WHERE BD.DEPARTMENT_ID  = WO.DEPARTMENT_ID
112     AND NVL(BS.OPERATION_TYPE,1) = 1  and
113     eoctv.wip_entity_id(+)=wo.wip_entity_id and
114     eoctv.operation_seq_num(+)=wo.operation_seq_num
115     AND BS.LINE_ID IS NULL
116     AND WO.WIP_ENTITY_ID = p_wip_id
117     AND LU2.LOOKUP_CODE(+) = WO.SHUTDOWN_TYPE
118     AND LU2.LOOKUP_TYPE(+) = 'BOM_EAM_SHUTDOWN_TYPE'
119     AND LU1.LOOKUP_CODE(+) = WO.OPERATION_COMPLETED
120     AND LU1.LOOKUP_TYPE(+) = 'EAM_YES_NO'
121     AND BS.STANDARD_OPERATION_ID (+) = WO.STANDARD_OPERATION_ID
122   ORDER BY WO.OPERATION_SEQ_NUM;
123 
124  --Cursor for Materials
125 
126  cursor material_cursor(p_wip_id number) is
127   SELECT XMLELEMENT("MATERIAL",XMLFOREST(WRO.OPERATION_SEQ_NUM as "OPERATIONSEQNUM",
128     milk.concatenated_segments as "REQLOCATORNAME",
129     --M.DESCRIPTION as "REQCOMPDESC",
130     LU.MEANING as "REQTYPE",
131     WRO.SUPPLY_SUBINVENTORY as "REQSUBINVENTORY",
132     fnd_date.date_to_displayDT(dateval => Convert_to_client_time(WRO.DATE_REQUIRED), calendar_aware => FND_DATE.calendar_aware_alt) as "REQDATEREQUIRED",
133     M.PRIMARY_UOM_CODE as "REQUOM",
134     WRO.REQUIRED_QUANTITY as "REQREQUIREDQUANTITY",
135     msikfv.concatenated_segments as "REQITEMNAME",
136     msikfv.description as "REQITEMDESCRIPTION",
137     wro.quantity_issued as "REQISSUEDQUANTITY",
138     eam_material_allocqty_pkg.open_quantity(WRO.WIP_ENTITY_ID,WRO.OPERATION_SEQ_NUM,WRO.ORGANIZATION_ID,WRO.INVENTORY_ITEM_ID,WRO.REQUIRED_QUANTITY,WRO.QUANTITY_ISSUED) as "REQQUANTITYOPEN" ,
139     eam_material_allocqty_pkg.allocated_quantity(WRO.WIP_ENTITY_ID,WRO.OPERATION_SEQ_NUM,WRO.ORGANIZATION_ID,WRO.INVENTORY_ITEM_ID) as "REQALLOCATEDQUANTITY"))  Material
140   FROM
141     mtl_system_items_b_kfv msikfv,
142     MTL_SYSTEM_ITEMS M,
143     MTL_ITEM_LOCATIONS L,
144     MFG_LOOKUPS LU,
145     WIP_REQUIREMENT_OPERATIONS WRO,
146     MTL_ITEM_LOCATIONS_KFV milk
147   WHERE
148     msikfv.organization_id = wro.organization_id
149     AND msikfv.inventory_item_id = wro.inventory_item_id
150     AND M.INVENTORY_ITEM_ID = WRO.INVENTORY_ITEM_ID
151     AND WRO.WIP_ENTITY_ID= p_wip_id
152     AND L.INVENTORY_LOCATION_ID (+) = NVL(WRO.SUPPLY_LOCATOR_ID,'-1')
153     AND milk.INVENTORY_LOCATION_ID (+) = NVL(WRO.SUPPLY_LOCATOR_ID,'-1')
154     AND M.ORGANIZATION_ID = WRO.ORGANIZATION_ID
155     AND L.ORGANIZATION_ID (+) = WRO.ORGANIZATION_ID
156     AND milk.organization_id (+) = wro.organization_id
157     AND LU.LOOKUP_TYPE = 'WIP_SUPPLY_SHORT'
158     AND LU.LOOKUP_CODE = WRO.WIP_SUPPLY_TYPE
159     AND wro.inventory_item_id in (SELECT inventory_item_id
160                                FROM mtl_system_items
161                                WHERE stock_enabled_flag = 'Y' AND organization_id = msikfv.organization_id) --bug 13685873
162   ORDER BY WRO.OPERATION_SEQ_NUM;
163 
164   -- Above order by is changed to be in Synch with Self Service WO Details screen.Bug 9735166
165 
166  -- Cursor for Resources
167 
168  cursor resource_cursor(p_wip_id number) is
169   SELECT  XMLELEMENT("RESOURCE",XMLFOREST(WOR.OPERATION_SEQ_NUM as  "RESOPSEQNUM",
170     WOR.RESOURCE_SEQ_NUM as "RESSEQ",
171     WOR.SCHEDULE_SEQ_NUM as "RESSCHEDSEQ",
172     BR.RESOURCE_CODE as "RESCODE",
173     --BR.RESOURCE_ID  as  "RESRESOURCEID",
174     WOR.USAGE_RATE_OR_AMOUNT as "RESUSAGERATE",
175     WOR.UOM_CODE as "RESUOM",
176     LU.MEANING as "RESBASIS",
177     WOR.APPLIED_RESOURCE_UNITS as "ACTUALHRCHARGED",
178     WOR.ASSIGNED_UNITS as "RESCAPACITY",
179     CA.ACTIVITY as "RESACTIVITY",
180     fnd_date.date_to_displayDT(dateval => Convert_to_client_time(WOR.START_DATE), calendar_aware => FND_DATE.calendar_aware_alt) as "RESSTARTDATE",
181     fnd_date.date_to_displayDT(dateval => Convert_to_client_time(WOR.COMPLETION_DATE), calendar_aware => FND_DATE.calendar_aware_alt) as "RESCOMPLETIONDATE")) Resources
182   FROM
183     BOM_RESOURCES BR,
184     CST_ACTIVITIES CA,
185     MFG_LOOKUPS LU,
186     WIP_OPERATION_RESOURCES WOR
187   WHERE BR.ORGANIZATION_ID = WOR.ORGANIZATION_ID
188     AND WOR.WIP_ENTITY_ID = p_wip_id
189     AND BR.RESOURCE_ID = WOR.RESOURCE_ID
190     AND CA.ACTIVITY_ID(+) = WOR.ACTIVITY_ID
191     AND LU.LOOKUP_CODE = WOR.BASIS_TYPE
192     AND LU.LOOKUP_TYPE = 'CST_BASIS'
193   ORDER BY WOR.RESOURCE_SEQ_NUM;
194 
195  --Cursor for Employees
196 
197  cursor employee_cursor(p_wip_id number) is
198   SELECT XMLELEMENT("EMPLOYEE",XMLFOREST(
199     wori.operation_seq_num as "EMPOPSEQNO",
200     wori.resource_seq_num  as "EMPRESSEQNO",
201     br.resource_code  as "EMPRESCODE",
202     br.resource_type  as "EMPRESTYPE",
203     ppf.employee_number  as "EMPNO",
204     ppf.full_name  as "EMPFULLNAME",
205     fnd_date.date_to_displayDT(dateval => Convert_to_client_time(wori.start_date), calendar_aware => FND_DATE.calendar_aware_alt) as "EMPSTARTDATE",
206     fnd_date.date_to_displayDT(dateval => Convert_to_client_time(wori.completion_date), calendar_aware => FND_DATE.calendar_aware_alt)  as "EMPENDDATE",
207     bd.department_code  as "EMPDEPTCODE")) Employees
208    FROM wip_op_resource_instances wori,
209     wip_operation_resources wor,
210     bom_resources br,
211     bom_resource_employees bre,
212     per_people_f ppf,
213     bom_departments  bd
214   WHERE  wor.wip_entity_id = wori.wip_entity_id and
215     wor.organization_id = wori.organization_id and
216     wor.operation_seq_num = wori.operation_seq_num and
217     wor.resource_seq_num = wori.resource_seq_num and
218     br.resource_id = wor.resource_id and
219     br.resource_type = 2 and
220     bre.instance_id = wori.instance_id and
221     trunc(sysdate) between ppf.effective_start_date and ppf.effective_end_date and
222     ppf.person_id = bre.person_id  and
223     wor.department_id=bd.department_id  and
224     wor.organization_id=bd.organization_id and
225         wor.wip_entity_id=p_wip_id;
226 
227  --Cursor for Direct Materials
228 
229  cursor directmaterial_cursor(p_wip_id number) is
230   SELECT  XMLELEMENT("DIRECTMATERIAL", XMLFOREST(edrv.task_number as "OPERATIONSEQNO",
231         edrv.service_line_type as "SERVICELINETYPE",
232         edrv.item_description as "ITEMNAME",
233         edrv.description as "ITEMDESC",
234         DECODE(edrv.order_type_lookup_code,'FIXED PRICE',NVL(edrv.amount,0),NVL(edrv.required_quantity, 0)) as "QUANTITYREQUIRED",
235         DECODE(edrv.order_type_lookup_code,'FIXED PRICE',NVL(edrv.rql_amount_ordered,0),NVL(edrv.rql_quantity_ordered,0)) as "REQQUANTITYORDERED",
236         DECODE(edrv.order_type_lookup_code,'FIXED PRICE',NVL(edrv.po_amount_ordered,0),NVL(edrv.po_quantity_ordered,0)) as "POQUANTITYORDERED",
237         DECODE(edrv.order_type_lookup_code,'FIXED PRICE',NVL(edrv.amount_delivered,0),NVL(edrv.quantity_received, 0)) as "QUANTITYRECEIVED",
238         edrv.uom_code as "UOM",
239     fnd_date.date_to_displayDT(dateval => Convert_to_client_time(edrv.date_required), calendar_aware => FND_DATE.calendar_aware_alt) as "DATEREQUIRED")) DirectMaterial
240   FROM EAM_DIRECT_ITEM_RECS_V edrv
241   WHERE edrv.wip_entity_id = p_wip_id;
242 
243 
244  -- Cursor for Work Order Short Attachments
245 
246 cursor shortattachment_cursor(p_wip_id number,p_org_id number) is
247   select XMLELEMENT("SHORTATTACHMENT",XMLFOREST(
248   --fdst.media_id     as      "AMEDIAID",
249     fdst.short_text     as                "ASHORTTEXT",
250     fdv.file_name       as                "AWORKNAME",
251     fdv.description     as                "AWORKDESC",
252     --fdv.datatype_name as      "AWORKTYPE",
253    -- fdv.datatype_id   as                "AWORKDATATYPEID",
254     --fdv.category_id   as      "ACATEGORYID",
255     fdv.category_description as "AWORKCATEGORY",
256     fad.seq_num  as   "ASEQNUM"
257     --fad.entity_name  as "AENTITYNAME",
258     /*fad.attached_document_id as "ATTACHWORKDOCID"*/))  ShortAttachment
259   from
260     FND_DOCUMENTS_SHORT_TEXT fdst,
261     fnd_documents_vl fdv,
262     fnd_attached_documents fad
263   where
264     fdst.media_id = fdv.media_id and
265         --fdv.datatype_name = 'Short Text' and
266         -- Changed bug 9081077
267     fdv.datatype_id = 1 AND
268         -- Above is Data Type id for short text.Refer FND_DOCUMENT_DATATYPES table
269         -- fvd.datatype_name fetches user name for data type
270     fad.document_id = fdv.document_id and
271     fad.entity_name = 'EAM_WORK_ORDERS' and
272     fad.pk1_value = to_char(p_org_id) and
273     fad.pk2_value = to_char(p_wip_id)
274   order by fdv.file_name;
275 
276 -- Cursor for Work Order Long Attachments
277 
278  cursor longattachment_cursor(p_wip_id number,p_org_id number) is
279   select XMLFOREST(
280     fdlt.media_id     as      "ALONGMEDIAID",
281     --fdlt.long_text    as                 "ALONGTEXT",
282     fdv.file_name       as                "ALONGWORKNAME",
283     fdv.description     as                "ALONGWORKDESC",
284     --fdv.datatype_name as      "AWORKTYPE",
285     --fdv.datatype_id   as                "AWORKDATATYPEID",
286     --fdv.category_id   as      "ACATEGORYID",
287     fdv.category_description as "ALONGWORKCATEGORY",
288     fad.seq_num  as   "ALONGSEQNUM"
289     --fad.entity_name  as "AENTITYNAME",
290     /*fad.attached_document_id as "ATTACHWORKDOCID"*/)  LongAttachment
291   from
292     FND_DOCUMENTS_LONG_TEXT fdlt,
293     fnd_documents_vl fdv,
294     fnd_attached_documents fad
295   where
296     fdlt.media_id = fdv.media_id and
297         fdv.datatype_name = 'Long Text' and
298     fad.document_id = fdv.document_id and
299     fad.entity_name = 'EAM_WORK_ORDERS' and
300     fad.pk1_value = to_char(p_org_id) and
301     fad.pk2_value = to_char(p_wip_id)
302   order by fdlt.media_id desc;
303 
304 --Cursor for Operation Short Attachments
305 
306  cursor opshortattachment(p_wip_id number,p_org_id number) is
307   select XMLELEMENT("OPSHORTATTACHMENT",XMLFOREST(fdst.short_text as "OPASHORTTEXT",
308     fdv.file_name as "OPASHORTNAME",
309     fdv.description as "OPASHORTDESC",
310     fdv.category_description as "OPASHORTCATEGORY",
311         fad.pk2_value as "OPASEQNO")) OpShortAttachment
312   from
313     FND_DOCUMENTS_SHORT_TEXT fdst,
314     fnd_documents_vl fdv,
315     fnd_attached_documents fad
316   where fdst.media_id = fdv.media_id
317     and fad.document_id = fdv.document_id
318         and fad.entity_name = 'EAM_DISCRETE_OPERATIONS'
319         and fdv.datatype_name = 'Short Text'
320     and fad.pk1_value= to_char(p_wip_id)
321     and fad.pk3_value= to_char(p_org_id)
322    order by fdv.file_name;
323 
324 -- Cursor for Operation Long Attachments
325 cursor oplongattachment_cursor(p_wip_id number,p_org_id number) is
326   select XMLFOREST(
327     fdlt.media_id     as      "OPALONGMEDIAID",
328     fdv.file_name       as                "OPALONGWORKNAME",
329     fdv.description     as                "OPALONGWORKDESC",
330     fdv.category_description as "OPALONGWORKCATEGORY",
331     fad.pk2_value  as   "OPALONGSEQNUM")  OpLongAttachment
332   from
333     FND_DOCUMENTS_LONG_TEXT fdlt,
334     fnd_documents_vl fdv,
335     fnd_attached_documents fad
336   where
337     fdlt.media_id = fdv.media_id and
338     fad.document_id = fdv.document_id and
339         fdv.datatype_name = 'Long Text' and
340     fad.entity_name = 'EAM_DISCRETE_OPERATIONS' and
341     fad.pk1_value = to_char(p_wip_id) and
342     fad.pk3_value = to_char(p_org_id)
343   order by fdlt.media_id desc;
344 
345 --Cursor for File Attachments
346 cursor fileattachment_cursor(p_wip_id number,p_org_id number) is
347   select XMLELEMENT("FILEATTACHMENT",XMLFOREST(
348     fdv.file_name       as                "AFILEWORKNAME",
349     fdv.description     as                "AFILEWORKDESC",
350     fdv.category_description as  "AFILEWORKCATEGORY")) FileAttachment
351   from
352     fnd_documents_vl fdv,
353     fnd_attached_documents fad
354   where
355     fad.document_id = fdv.document_id and
356     fad.entity_name = 'EAM_WORK_ORDERS' and
357     fad.pk1_value= to_char(p_org_id) and
358     fad.pk2_value= to_char(p_wip_id) and
359     fdv.file_name  is not null and
360         fdv.datatype_name NOT IN ('Long Text', 'Short Text');
361 
362 
363 -- Cursor for Work Requests
364 
365  cursor workrequest_cursor(p_wip_id number,p_org_id number) is
366   select XMLELEMENT("WORKREQUEST",XMLFOREST(wewr.work_request_number as "WRNUMBER",
367     wewr.description as "WRDESCRIPTION",
368     ml1.meaning as "WRSTATUS" ,
369     ml2.meaning as "WRPRIORITY",
370     bd.department_code as "WROWNINGDEPT",
371     fnd_date.date_to_displayDT(dateval => Convert_to_client_time(wewr.expected_resolution_date), calendar_aware => FND_DATE.calendar_aware_alt) as "WREXPECTEDRESOLUTIONDATE",
372     fu.user_name as "WRORIGINATOR")) WorkRequest
373   from
374     wip_eam_work_requests wewr,
375     fnd_user fu,
376     bom_departments bd,
377     mfg_lookups ml1,
378     mfg_lookups ml2
379   where
380     fu.user_id = wewr.created_by
381     and bd.department_id = wewr.work_request_owning_dept
382     and ml1.lookup_type (+) = 'WIP_EAM_WORK_REQ_STATUS'
383     and ml1.lookup_code (+) = wewr.work_request_status_id
384     and ml2.lookup_type (+) = 'WIP_EAM_ACTIVITY_PRIORITY'
385     and ml2.lookup_code (+) = wewr.work_request_priority_id
386     and wewr.wip_entity_id =p_wip_id
387     and wewr.organization_id = p_org_id
388   order by wewr.work_request_number ;
389 
390  -- Cursor for Meters
391 
392  cursor meter_cursor(p_wip_id number) is
393   SELECT XMLELEMENT("METER",XMLFOREST(
394         CTL.NAME as "COUNTERNAME",
395         NVL(CTL2.NAME,CTL.NAME) as "SOURCECOUNTERNAME",
396         NVL(CBS.COUNTER_TYPE,CB.COUNTER_TYPE) as "COUNTERTYPE",
397         NVL(CCR2.COUNTER_READING,CCR1.COUNTER_READING) as "LASTREADING",
398         fnd_date.date_to_displayDT(dateval => Convert_to_client_time(NVL(CCR2.VALUE_TIMESTAMP,CCR1.VALUE_TIMESTAMP)), calendar_aware => FND_DATE.calendar_aware_alt) as "LASTVALUETIMESTAMP",
399         CB.uom_code as "METERUOM",
400         TO_NUMBER(NULL) as "NEWREADING",
401         EAM_METERS_UTIL.IS_METER_READING_MANDATORY_V(p_wip_id, nvl(CBS.COUNTER_ID,CB.COUNTER_ID)) as "MANDATORY" )) Meter
402     FROM csi_counters_b CB,
403         CSI_COUNTERS_TL CTL,
404         CSI_COUNTERS_TL CTL2,
405         CSI_COUNTERS_B CBS,
406         CSI_COUNTER_READINGS CCR1,
407         CSI_COUNTER_READINGS CCR2,
408         csi_item_instances cii,
409         wip_discrete_jobs wdj,
410         (
411         SELECT
412             *
413         FROM csi_counter_associations
414         WHERE sysdate BETWEEN nvl(start_date_Active,sysdate-1) AND nvl(end_date_active,sysdate+1)
415         )
416         CCA,
417         (
418         SELECT
419             *
420         FROM csi_counter_relationships
421         WHERE sysdate BETWEEN nvl(Active_end_date,sysdate-1) AND nvl(active_end_date,sysdate+1)
422         )
423         CCR
424     WHERE
425         CB.COUNTER_ID=CCA.COUNTER_ID(+)
426         AND CB.COUNTER_ID=CTL.COUNTER_ID
427         AND CCR.OBJECT_COUNTER_ID(+)=CB.COUNTER_ID
428         AND CCR.SOURCE_COUNTER_ID=CBS.COUNTER_ID(+)
429         AND CBS.COUNTER_ID=CTL2.COUNTER_ID(+)
430         AND CTL.LANGUAGE=USERENV('LANG')
431         AND CTL2.LANGUAGE(+)=USERENV('LANG')
432         AND CB.COUNTER_TYPE='REGULAR'
433         AND CBS.COUNTER_TYPE(+)='REGULAR'
434         AND CB.COUNTER_ID=CCR1.COUNTER_ID(+)
435         AND CCR1.DISABLED_FLAG(+)='N'
436         AND wdj.maintenance_object_id=cii.instance_id
437             AND wdj.maintenance_object_type=3
438             AND cca.source_object_id = cii.instance_id
439             AND wdj.wip_entity_id=p_wip_id
440         AND
441         (
442             CCR1.VALUE_TIMESTAMP =
443             (
444             SELECT
445                 MAX(VALUE_TIMESTAMP)
446             FROM CSI_COUNTER_READINGS B
447             WHERE CCR1.COUNTER_ID=B.COUNTER_ID
448                 AND B.DISABLED_FLAG='N'
449             GROUP BY COUNTER_ID
450             )
451             OR NOT EXISTS
452             (
453             SELECT
454                 COUNTER_ID
455             FROM CSI_COUNTER_READINGS B
456             WHERE CB.COUNTER_ID=B.COUNTER_ID
457                 AND B.DISABLED_FLAG='N'
458             )
459         )
460         AND CBS.COUNTER_ID=CCR2.COUNTER_ID(+)
461         AND
462         (
463             CCR2.VALUE_TIMESTAMP =
464             (
465             SELECT
466                 MAX(VALUE_TIMESTAMP)
467             FROM CSI_COUNTER_READINGS B
468             WHERE CCR2.COUNTER_ID=B.COUNTER_ID
469                 AND B.DISABLED_FLAG='N'
470             GROUP BY COUNTER_ID
471             )
472             OR NOT EXISTS
473             (
474             SELECT
475                 COUNTER_ID
476             FROM CSI_COUNTER_READINGS B
477             WHERE CBS.COUNTER_ID=B.COUNTER_ID
478                 AND B.DISABLED_FLAG='N'
479             )
480         )
481         AND CCR2.DISABLED_FLAG(+)='N';
482 
483 
484 --Cursor for Quality Plan
485  cursor qualityplan_cursor(p_quality_flag int, p_organization_id number,p_wip_entity_name varchar2 , p_asset_group varchar2,
486   p_instance_number varchar2,p_serial_number varchar2,p_asset_activity varchar2) is
487   Select XMLFOREST(
488     qpv.plan_id as "PLANID",
489     ml.meaning as "PLANMANDATORY",
490         qpv.DESCRIPTION as "PLANDESCRIPTION",
491         qpv.NAME as "PLANNAME",
492         qpv.plan_type_meaning as "PLANTYPE") QualityPlan
493   FROM
494     QA_PLANS_VAL_V qpv,
495         qa_plan_transactions qpt,
496         mfg_lookups ml
497   Where qpt.plan_id=qpv.plan_id
498     and ml.lookup_code=qpt.mandatory_collection_flag
499     and ml.lookup_type='SYS_YES_NO'
500     and nvl(p_quality_flag,2)=decode(p_quality_flag,1,qpt.mandatory_collection_flag,2,p_quality_flag,2)
501     and decode(qpt.transaction_number,31,qa_web_txn_api.plan_applies(qpv.plan_id,qpt.transaction_number,to_char(p_organization_id),
502     p_asset_group,p_serial_number,p_asset_activity,p_wip_entity_name,'',p_instance_number,'','','','','EAM'),'N')='Y';
503 
504  --Cursor for Quality Plan Elements
505  cursor qplanelement_cursor(p_plan_id number) is
506   select XMLELEMENT("ELEMENTNAME",q.prompt ) QPlanElement
507   from  QA_PLAN_CHARS q
508   where q.plan_id=p_plan_id;
509 
510  --Cursor for Asset BOM
511  cursor assetbom_cursor(p_wip_id in number) is
512  select XMLELEMENT("ITEM",XMLFOREST(msik.concatenated_segments as "COMPONENTITEM",
513            msik.description as "DESCRIPTION",
514            bic.component_quantity as "QUANTITY",
515            msik.primary_uom_code as "UOM",
516            lu.meaning as "SUPPLYTYPE")) AssetBom
517     from bom_inventory_components bic,
518          mtl_system_items_kfv msik,
519          wip_discrete_jobs wdj,
520          csi_item_instances cii,
521          bom_bill_of_materials bbom,
522          mfg_lookups lu
523     where bic.effectivity_date <= sysdate
524       and (bic.disable_date >= sysdate or
525            bic.disable_date is null)
526       and wdj.maintenance_object_id = cii.instance_id
527       and wdj.maintenance_object_type=3
528       and wdj.wip_entity_id =p_wip_id
529       and cii.inventory_item_id = bbom.assembly_item_id
530       and wdj.organization_id = bbom.organization_id
531       and bic.bill_sequence_id=bbom.common_bill_sequence_id
532       and bic.component_item_id=msik.inventory_item_id
533       and msik.organization_id=wdj.organization_id
534       and lu.lookup_type(+) = 'EAM_CONSTANTS.G_SUPPLY_TYPE'
535       and lu.lookup_code(+) = bic.wip_supply_type
536       and (wdj.rebuild_item_id is not null OR
537                ((NVL(bic.from_end_item_unit_number,'0') = '0') OR bic.from_end_item_unit_number <= cii.serial_number)
538                           and    ( bic.to_end_item_unit_number >=cii.serial_number or NVL(bic.to_end_item_unit_number,'0')='0')
539            )
540 
541  union all
542 
543    select XMLELEMENT("ITEM",XMLFOREST(msik.concatenated_segments as "COMPONENTITEM",
544            msik.description as "DESCRIPTION",
545            bic.component_quantity as "QUANTITY",
546            msik.primary_uom_code as "UOM",
547            lu.meaning as "SUPPLYTYPE")) AssetBom
548     from bom_inventory_components bic,
549          mtl_system_items_kfv msik,
550          wip_discrete_jobs wdj,
551          bom_bill_of_materials bbom,
552          mfg_lookups lu
553      where bic.effectivity_date <= sysdate
554       and (bic.disable_date >= sysdate or
555            bic.disable_date is null)
556       and wdj.wip_entity_id =p_wip_id
557       and wdj.maintenance_object_type=2
558       and wdj.maintenance_object_id = bbom.assembly_item_id
559       and wdj.organization_id = bbom.organization_id
560       and bic.bill_sequence_id = bbom.common_bill_sequence_id
561       and bic.component_item_id=msik.inventory_item_id
562       and wdj.organization_id = msik.organization_id
563       and lu.lookup_type(+) = 'EAM_CONSTANTS.G_SUPPLY_TYPE'
564       and lu.lookup_code(+) = bic.wip_supply_type;
565 
566 --begin changes for FP 7493388 (base bug 7005666)
567 --cursor for Asset Route
568 
569 cursor assetroutecomp_cursor(l_serial_number  varchar2,l_inventory_id number) is
570 SELECT XMLELEMENT("ASSETROUTECOMP", XMLFOREST(
571           R_components_name as "ASSET_NUMBER",
572           R_component_group as "ASSET_GROUP",
573           R_component_description as "DESCRIPTION",
574           area  as "AREA")) AssetRoutecomp
575  from     (select  mena.network_serial_number R_asset_number,
576 msn1.concatenated_segments R_asset_group,
577 mena.asset_number R_components_name,
578 msn2.concatenated_segments  R_component_group,
579 msn2.descriptive_text  R_component_description,
580 msn2.area area,
581 mena.network_item_id   R_asset_group_id,
582 mena.organization_id  R_asset_org_id
583  from
584  mtl_eam_network_assets_v  mena
585 , mtl_eam_asset_numbers_v  msn1
586 , mtl_eam_asset_numbers_v msn2
587 ,csi_item_instances cii
588 where
589 mena.organization_id=msn1.current_organization_id
590 and mena.network_item_id=msn1.inventory_item_id
591 and mena.network_serial_number=msn1.serial_number
592 and mena.organization_id=msn2.current_organization_id
593 and mena.inventory_item_id=msn2.inventory_item_id
594 and mena.serial_number=msn2.serial_number
595 AND mena.network_object_id = cii.instance_id
596 AND cii.instance_number=l_instance_number
597 and nvl(mena.end_date_active, sysdate+1) > sysdate  /*bug12836608*/
598 order by mena.serial_number)  ;
599 
600 --end changes for FP 7493388 (base bug 7005666)
601 
602 
603 -- Cursor for Safety Permit
604 CURSOR workpermit_cursor(p_wip_id NUMBER,p_org_id NUMBER)
605 IS
606   SELECT XMLELEMENT("WORKPERMIT",
607   XMLFOREST(QRSLT.PERMIT_NAME AS permitName,
608     QRSLT.permit_type AS permitType,
609     QRSLT.DESCRIPTION AS permitDesc,
610     QRSLT.PERMIT_STATUS AS permitStatus,
611     QRSLT.permit_valid_from AS permitValidFrom,
612     QRSLT.permit_valid_to AS permitValidTo
613     )) workpermit
614   FROM
615     (
616     Select
617     EWP.PERMIT_NAME,
618     ml.meaning AS permit_type,
619     EWP.DESCRIPTION,
620     EPSV.PERMIT_STATUS,
621     fnd_date.date_to_displayDT(dateval => Convert_to_client_time(EWP.VALID_FROM), calendar_aware => FND_DATE.calendar_aware_alt)AS permit_valid_from,
622     fnd_date.date_to_displayDT(dateval => Convert_to_client_time(EWP.VALID_TO), calendar_aware => FND_DATE.calendar_aware_alt) AS permit_valid_to
623     from
624     EAM_WORK_PERMITS EWP,
625     EAM_SAFETY_ASSOCIATIONS ESA,
626     EAM_PERMIT_STATUSES_VL EPSV,
627     mfg_lookups ml
628   WHERE EWP.PERMIT_ID     = ESA.SOURCE_ID
629   AND ESA.TARGET_REF_ID   =p_wip_id
630   AND EWP.ORGANIZATION_ID =p_org_id
631   AND EPSV.STATUS_ID      =EWP.USER_DEFINED_STATUS_ID
632   AND ml.lookup_type (+) = 'EAM_WORK_PERMIT_TYPE'
633   AND ml.lookup_code=ewp.permit_type
634 
635   union
636 
637   SELECT DISTINCT EWP1.PERMIT_NAME ,
638     ml1.meaning ,
639     EWP1.DESCRIPTION ,
640     EPSV1.PERMIT_STATUS ,
641     fnd_date.date_to_displayDT(dateval => Convert_to_client_time(EWP1.VALID_FROM), calendar_aware => FND_DATE.calendar_aware_alt) AS permitValidFrom,
642     fnd_date.date_to_displayDT(dateval => Convert_to_client_time(EWP1.VALID_TO), calendar_aware => FND_DATE.calendar_aware_alt) AS permitValidTo
643 
644   FROM EAM_WORK_PERMITS EWP1,
645     EAM_SAFETY_ASSOCIATIONS ESA1,
646         eam_safety_associations esa2,
647     EAM_PERMIT_STATUSES_VL EPSV1,
648     mfg_lookups ml1
649   WHERE EWP1.PERMIT_ID     = ESA1.SOURCE_ID
650   AND ESA2.TARGET_REF_ID   =p_wip_id
651   AND esa2.source_id         =esa1.target_ref_id
652   AND esa2.association_type  =4
653   AND esa1.association_type  =2
654   AND esa1.source_id         =ewp1.permit_id
655   AND EWP1.ORGANIZATION_ID =p_org_id
656   AND EPSV1.STATUS_ID      =EWP1.USER_DEFINED_STATUS_ID
657   AND ml1.lookup_type (+) = 'EAM_WORK_PERMIT_TYPE'
658   AND ml1.lookup_code=ewp1.permit_type
659   and ewp1.PERMIT_ID not in (
660         SELECT permit.permit_id
661        FROM eam_work_permits permit,
662       eam_safety_associations esa  ,
663       wip_discrete_jobs wdj        ,
664       eam_permit_statuses_vl epsv
665       WHERE esa.target_ref_id=wdj.wip_entity_id
666     AND esa.source_id        =permit.permit_id
667     AND esa.association_type =3
668     AND epsv.status_id       =permit.user_defined_status_id
669     AND wdj.organization_id  = esa.organization_id
670     AND wdj.wip_entity_id    = p_wip_id
671     )
672     ORDER BY permit_name
673   ) QRSLT
674   ;
675 
676 --Cursor for Safety Clearance
677 CURSOR workclearance_cursor(p_wip_id NUMBER)
678 IS
679   SELECT XMLELEMENT("WORKCLEARANCE",
680   XMLFOREST(
681   QRSLT.WORK_CLEARANCE_NAME                     as workClearanceName         ,
682   QRSLT.DESCRIPTION                             as description               ,
683   fnd_date.date_to_displayDT(dateval => Convert_to_client_time(QRSLT.SCHEDULED_ESTAB_START_DATE), calendar_aware => FND_DATE.calendar_aware_alt) AS schedEstabStDate,
684   fnd_date.date_to_displayDT(dateval => Convert_to_client_time(QRSLT.SCHEDULED_ESTAB_END_DATE), calendar_aware => FND_DATE.calendar_aware_alt) AS schedEstabEndDate,
685   fnd_date.date_to_displayDT(dateval => Convert_to_client_time(QRSLT.SCHEDULED_REESTAB_START_DATE), calendar_aware => FND_DATE.calendar_aware_alt) AS schedReEstabStDate,
686   fnd_date.date_to_displayDT(dateval => Convert_to_client_time(QRSLT.SCHEDULED_REESTAB_END_DATE), calendar_aware => FND_DATE.calendar_aware_alt) AS schedReEstabEndDate,
687   QRSLT.user_status AS userStatus,
688   QRSLT.isolation_type  AS isolationType )) workclearance
689   FROM
690   (
691   SELECT
692   ewc.WORK_CLEARANCE_NAME,
693   ewc.DESCRIPTION,
694   ewc.SCHEDULED_ESTAB_START_DATE,
695   ewc.SCHEDULED_ESTAB_END_DATE,
696   ewc.SCHEDULED_REESTAB_START_DATE,
697   ewc.SCHEDULED_REESTAB_END_DATE,
698   DECODE(ewc.pending_flag,'Y',ewsv.work_clearance_status
699   ||'-'
700   ||fnd_message.get_string('EAM','EAM_PENDING_TEXT'), ewsv.work_clearance_status) AS user_status,
701    ml2.meaning                                                         AS isolation_type
702   FROM
703   eam_work_clearances ewc      ,
704   eam_safety_associations esa        ,
705   wip_discrete_jobs wdj              ,
706   mfg_lookups ml1                    ,
707   mfg_lookups ml2                    ,
708   EAM_WORK_CLEARANCE_STATUSES_VL ewsv,
709   eam_isolations iso
710   WHERE esa.target_ref_id =wdj.wip_entity_id
711 AND esa.source_id         =ewc.WORK_CLEARANCE_ID
712 AND esa.association_type  =4
713 AND ml1.lookup_code(+)    = ewc.status_type
714 AND ml2.lookup_code(+)    = iso.isolation_type
715 AND ml1.lookup_type (+)   = 'EAM_WORK_CLEARANCE_STATUS'
716 AND ml2.lookup_type (+)   = 'EAM_ISOLATION_TYPE'
717 AND ewc.last_isolation_id = iso.isolation_id(+)
718 AND ewsv.status_id        =ewc.user_defined_status_id
719 AND wdj.organization_id   = esa.organization_id
720 AND wdj.wip_entity_id     = p_wip_id
721 
722   UNION
723 
724   SELECT DISTINCT
725   ewc1.WORK_CLEARANCE_NAME            ,
726   ewc1.DESCRIPTION                    ,
727   ewc1.SCHEDULED_ESTAB_START_DATE     ,
728   ewc1.SCHEDULED_ESTAB_END_DATE       ,
729   ewc1.SCHEDULED_REESTAB_START_DATE   ,
730   ewc1.SCHEDULED_REESTAB_END_DATE     ,
731   DECODE(ewc1.pending_flag,'Y',ewsv1.work_clearance_status
732   ||'-'
733   ||fnd_message.get_string('EAM','EAM_PENDING_TEXT'), ewsv1.work_clearance_status) AS user_status,
734    ml4.meaning                                                         AS isolation_type
735    FROM eam_work_clearances ewc1      ,
736   eam_work_permits permit             ,
737   eam_safety_associations esa1        ,
738   eam_safety_associations esa2        ,
739   mfg_lookups ml3                     ,
740   mfg_lookups ml4                     ,
741   eam_work_clearance_statuses_vl ewsv1,
742   eam_isolations iso1                 ,
743   wip_discrete_jobs wdj1
744   WHERE esa2.source_id          =permit.permit_id
745 AND esa2.target_ref_id          =ewc1.work_clearance_id
746 AND esa2.association_type       =2
747 AND esa1.target_ref_id          =wdj1.wip_entity_id
748 AND esa1.source_id              =permit.permit_id
749 AND esa1.association_type       =3
750 AND ml3.lookup_code(+)          = ewc1.status_type
751 AND ml4.lookup_code(+)          = iso1.isolation_type
752 AND ml3.lookup_type (+)         = 'EAM_WORK_CLEARANCE_STATUS'
753 AND ml4.lookup_type (+)         = 'EAM_ISOLATION_TYPE'
754 AND ewc1.last_isolation_id      = iso1.isolation_id(+)
755 AND ewsv1.status_id             =ewc1.user_defined_status_id
756 AND wdj1.wip_entity_id          =p_wip_id
757 AND ewc1.work_clearance_id NOT IN
758   (SELECT ewc.WORK_CLEARANCE_ID
759      FROM eam_work_clearances ewc,
760     eam_safety_associations esa  ,
761     wip_discrete_jobs wdj
762     WHERE esa.target_ref_id=wdj.wip_entity_id
763   AND esa.source_id        =ewc.WORK_CLEARANCE_ID
764   AND esa.association_type =4
765   AND wdj.organization_id  = esa.organization_id
766   AND wdj.wip_entity_id    = p_wip_id)
767  ORDER BY WORK_CLEARANCE_NAME
768   )QRSLT;
769 
770 
771 
772 BEGIN
773 
774 for i in p_wip_entity_id.FIRST..p_wip_entity_id.LAST
775  loop
776 
777   select wdj.organization_id into l_org_id
778   from wip_discrete_jobs wdj
779   where wdj.wip_entity_id=p_wip_entity_id(i);
780 
781   --begin changes for FP 7493388 (base bug 7005666)
782 
783   select Nvl(wdj.ASSET_NUMBER,wdj.REBUILD_SERIAL_NUMBER),Nvl(wdj.ASSET_GROUP_ID,REBUILD_ITEM_ID) into l_serial_number ,l_inventory_id
784   from wip_discrete_jobs wdj
785   where wdj.wip_entity_id=p_wip_entity_id(i);
786 
787 
788  SELECT nvl(instance_number,'hghg') into l_instance_number
789  FROM eam_work_orders_v
790  WHERE  wip_entity_id=p_wip_entity_id(i);
791 
792 --Exception block added for bug 7758322
793  BEGIN
794  SELECT NETWORK_ASSET_FLAG into l_asset_route_flag
795  FROM csi_item_instances
796  WHERE INSTANCE_NUMBER = l_instance_number
797  AND INVENTORY_ITEM_ID = l_inventory_id
798  AND SERIAL_NUMBER = l_serial_number;
799 
800  EXCEPTION
801    WHEN No_Data_Found THEN
802        l_asset_route_flag:='N';
803  END;
804 
805 --end changes for FP 7493388 (base bug 7005666)
806 -- changes for FP 7658452
807 
808          l_xmlTypeParamList := xmltype('<PARAM_LIST>
809          <OP_PARAM>'|| p_operation_flag || '</OP_PARAM>
810          <INV_PARAM>' || p_material_flag|| '</INV_PARAM>
811          <DIRECT_PARAM>' ||p_direct_material_flag|| '</DIRECT_PARAM>
812          <RES_PARAM>' ||p_resource_flag|| '</RES_PARAM>
813          <WOREQ_PARAM>' ||p_work_request_flag|| '</WOREQ_PARAM>
814          <METER_PARAM>' ||p_meter_flag|| '</METER_PARAM>
815          <PLAN_PARAM>' ||p_quality_plan_flag|| '</PLAN_PARAM>
816          <SHORTATTACH_PARAM>' ||p_short_attachment_flag|| '</SHORTATTACH_PARAM>
817          <LONGATTACH_PARAM>' ||p_long_attachment_flag|| '</LONGATTACH_PARAM>
818          <FILEATTACH_PARAM>' ||p_file_attachment_flag|| '</FILEATTACH_PARAM>
819          <BOM_PARAM>' ||p_asset_bom_flag|| '</BOM_PARAM>
820      <PERMITS_PARAM>' ||p_safety_permit_flag|| '</PERMITS_PARAM>
821          <CLEARANCES_PARAM>' ||p_safety_clearance_flag|| '</CLEARANCES_PARAM>
822          </PARAM_LIST>');
823 
824 -- end changes for FP 7658452
825 
826 --Adding Operations
827 
828   if p_operation_flag = 1 then
829    begin
830      for operation_record in operation_cursor(p_wip_entity_id(i)) loop
831        select XMLConcat(l_xmlTypeOperation,operation_record.Operation) into l_xmlTypeOperation from dual;
832      end loop;
833     select XMLELEMENT("OPERATION_LIST",l_xmlTypeOperation) into l_xmlTypeOperation from dual;
834    exception
835    when  NO_DATA_FOUND then
836     null;
837    end;
838  end if;
839 
840 --Adding Materials
841   if p_material_flag = 1 then
842    begin
843      for material_record in material_cursor(p_wip_entity_id(i)) loop
844        select XMLConcat(l_xmlTypeMaterial,material_record.Material) into l_xmlTypeMaterial from dual;
845      end loop;
846      select XMLELEMENT("MATERIAL_LIST",l_xmlTypeMaterial) into l_xmlTypeMaterial from dual;
847    exception
848    when  NO_DATA_FOUND then
849     null;
850    end;
851   end if;
852 
853 --Adding Resources
854   if p_resource_flag = 1 then
855    begin
856      for resource_record in resource_cursor(p_wip_entity_id(i)) loop
857        select XMLConcat(l_xmlTypeResource,resource_record.Resources) into l_xmlTypeResource from dual;
858      end loop;
859      select XMLELEMENT("RESOURCE_LIST",l_xmlTypeResource) into l_xmlTypeResource from dual;
860    --Adding Employees
861    for employee_record in employee_cursor(p_wip_entity_id(i)) loop
862      select XMLConcat(l_xmlTypeEmployee,employee_record.Employees) into l_xmlTypeEmployee from dual;
863    end loop;
864      select XMLELEMENT("EMPLOYEE_LIST",l_xmlTypeEmployee) into l_xmlTypeEmployee from dual;
865      select XMLConcat(l_xmlTypeResource,l_xmlTypeEmployee) into l_xmlTypeResource from dual;
866    exception
867    when  NO_DATA_FOUND then
868     null;
869    end;
870   end if;
871 
872 --Adding Direct Materials
873   if p_direct_material_flag = 1 then
874    begin
875      for directmaterial_record in directmaterial_cursor(p_wip_entity_id(i)) loop
876        select XMLConcat(l_xmlTypeDirectMaterial,directmaterial_record.DirectMaterial) into l_xmlTypeDirectMaterial from dual;
877      end loop;
878      select XMLELEMENT("DIRECTMATERIAL_LIST",l_xmlTypeDirectMaterial) into l_xmlTypeDirectMaterial from dual;
879    exception
880    when  NO_DATA_FOUND then
881     null;
882    end;
883   end if;
884 
885 --Adding Work Order Short Text Attachments
886  if p_short_attachment_flag =1 then
887    begin
888     for attachment_record in shortattachment_cursor(p_wip_entity_id(i),l_org_id) loop
889       select XMLConcat(l_xmlTypeShortAttachment,attachment_record.ShortAttachment) into l_xmlTypeShortAttachment from dual;
890     end loop;
891     select XMLELEMENT("WOSHORTATTACHMENT_LIST",l_xmlTypeShortAttachment) into l_xmlTypeShortAttachment from dual;
892    exception
893    when  NO_DATA_FOUND then
894      null;
895    end;
896 
897 --Adding Operation Short Text Attachments
898   begin
899    for opattachment_record in opshortattachment(p_wip_entity_id(i),l_org_id) loop
900      select XMLConcat(l_xmlTypeOpShortAttachment,opattachment_record.OpShortAttachment) into l_xmlTypeOpShortAttachment from dual;
901    end loop;
902    select XMLELEMENT("OPSHORTATTACHMENT_LIST",l_xmlTypeOpShortAttachment) into l_xmlTypeOpShortAttachment from dual;
903    select XMLConcat(l_xmlTypeShortAttachment,l_xmlTypeOpShortAttachment) into l_xmlTypeShortAttachment from dual;
904   exception
905   when  NO_DATA_FOUND then
906      null;
907   end;
908  end if;
909 
910  --Adding Work Order Long Text Attachments
911  if p_long_attachment_flag =1 then
912    begin
913     for longattachment_record in longattachment_cursor(p_wip_entity_id(i),l_org_id) loop
914       select longattachment_record.LongAttachment into l_xmlTemp from dual;
915       select extractValue(l_xmlTemp,'/ALONGMEDIAID') into l_media_id  from dual;
916       l_temp:=getLong(p_wip_entity_id(i),l_org_id,l_media_id,1);
917       l_temp := replace(l_temp, '&', '&');
918       l_temp := replace(l_temp, '<', '<');
919       l_temp := replace(l_temp, '>', '>');
920       select XMLConcat(l_xmlTemp,xmlType('<ALONGTEXT>'||l_temp||'</ALONGTEXT>')) into l_xmlTemp from dual;
921       select XMLELEMENT("LONGATTACHMENT",l_xmlTemp) into l_xmlTemp from dual;
922       select XMLConcat(l_xmlTemp,l_xmlTypeLongAttachment) into l_xmlTypeLongAttachment from dual;
923       l_xmlTemp:=null;
924     end loop;
925     select XMLELEMENT("WOLONGATTACHMENT_LIST",l_xmlTypeLongAttachment) into l_xmlTypeLongAttachment from dual;
926    exception
927    when  NO_DATA_FOUND then
928      null;
929    end;
930 
931 --Adding Operation Long Text Attachments
932    begin
933      for oplongattachment_record in oplongattachment_cursor(p_wip_entity_id(i),l_org_id) loop
934       select oplongattachment_record.OpLongAttachment into l_xmlTemp from dual;
935       select extractValue(l_xmlTemp,'/OPALONGMEDIAID') into l_media_id  from dual;
936       l_temp:=getLong(p_wip_entity_id(i),l_org_id,l_media_id,2);
937       l_temp := replace(l_temp, '&', '&');
938       l_temp := replace(l_temp, '<', '<');
939       l_temp := replace(l_temp, '>', '>');
940       select XMLConcat(l_xmlTemp,xmlType('<OPALONGTEXT>'||l_temp||'</OPALONGTEXT>')) into l_xmlTemp from dual;
941       select XMLELEMENT("OPLONGATTACHMENT",l_xmlTemp) into l_xmlTemp from dual;
942       select XMLConcat(l_xmlTemp,l_xmlTypeOpLongAttachment) into l_xmlTypeOpLongAttachment from dual;
943       l_xmlTemp:=null;
944     end loop;
945       select XMLELEMENT("OPLONGATTACHMENT_LIST",l_xmlTypeOpLongAttachment) into l_xmlTypeOpLongAttachment from dual;
946       select XMLConcat(l_xmlTypeLongAttachment,l_xmlTypeOpLongAttachment) into l_xmlTypeLongAttachment from dual;
947    exception
948    when  NO_DATA_FOUND then
949      null;
950    end;
951  end if;
952 
953 --Adding File Attachments
954  if p_file_attachment_flag = 1 then
955    begin
956      for fileattachment_record in fileattachment_cursor(p_wip_entity_id(i),l_org_id) loop
957        select XMLConcat(l_xmlTypefileattachment,fileattachment_record.FileAttachment) into l_xmlTypefileattachment from dual;
958      end loop;
959      select XMLELEMENT("FILEATTACHMENT_LIST",l_xmlTypefileattachment) into l_xmlTypefileattachment from dual;
960    exception
961    when  NO_DATA_FOUND then
962     null;
963    end;
964   end if;
965 
966 --Adding Work Request
967   if p_work_request_flag =1 then
968     begin
969      for workrequest_record in workrequest_cursor(p_wip_entity_id(i),l_org_id) loop
970        select XMLConcat(l_xmlTypeWorkRequest,workrequest_record.WorkRequest) into l_xmlTypeWorkRequest from dual;
971      end loop;
972      select XMLELEMENT("WORKREQUEST_LIST",l_xmlTypeWorkRequest) into l_xmlTypeWorkRequest from dual;
973     exception
974     when  NO_DATA_FOUND then
975       null;
976     end;
977   end if;
978 
979 
980 --Adding Meters
981   if p_meter_flag =1 then
982     begin
983      for meter_record in meter_cursor(p_wip_entity_id(i)) loop
984        select XMLConcat(l_xmlTypeMeter,meter_record.Meter) into l_xmlTypeMeter from dual;
985      end loop;
986      select XMLELEMENT("METER_LIST",l_xmlTypeMeter) into l_xmlTypeMeter from dual;
987     exception
988     when  NO_DATA_FOUND then
989       null;
990     end;
991   end if;
992 
993 --Adding Quality Plan
994  if p_quality_plan_flag =1 or p_quality_plan_flag=2 then
995    begin
996      select we.wip_entity_name,
997      wdj.organization_id,
998      msi.concatenated_segments,
999      cii.instance_number,cii.serial_number into l_wip_entity_name,l_organization_id,l_asset_group,l_instance_number,l_serial_number
1000     from  wip_discrete_jobs wdj,
1001      csi_item_instances cii,
1002      mtl_system_items_b_kfv msi,
1003      wip_entities we
1004     where wdj.wip_entity_id=p_wip_entity_id(i)
1005      and wdj.wip_entity_id=we.wip_entity_id
1006      and cii.instance_id(+) = DECODE(wdj.maintenance_object_type,3,wdj.maintenance_object_id,NULL)
1007      and nvl(wdj.asset_group_id,wdj.rebuild_item_id) = msi.inventory_item_id
1008      and wdj.organization_id=msi.organization_id;
1009 
1010     begin
1011      select msi.concatenated_segments  into l_asset_activity
1012      from mtl_system_items_b_kfv msi,
1013       wip_discrete_jobs wdj
1014      where wdj.primary_item_id=msi.inventory_item_id and
1015       wdj.organization_id=msi.organization_id and
1016       wdj.wip_entity_id=p_wip_entity_id(i) ;
1017     exception
1018     when no_data_found then
1019      null;
1020     end;
1021 
1022    for qualityplan_record in qualityplan_cursor(p_quality_plan_flag,l_organization_id,l_wip_entity_name,l_asset_group,l_instance_number,l_serial_number,l_asset_activity) loop
1023       select XMLConcat(l_xmlTypeQualityPlan,qualityplan_record.QualityPlan) into l_xmlTypeQualityPlan from dual;
1024       select extractValue(l_xmlTypeQualityPlan,'/PLANID') into l_plan_id  from dual;
1025       l_xmlTemp2 := null;
1026       for qplanelement_record in qplanelement_cursor(l_plan_id) loop
1027         select qplanelement_record.QPlanElement into l_xmlTemp from dual;
1028         select XMLConcat(l_xmlTemp,xmlType('<VALUE>  </VALUE>')) into l_xmlTemp from dual;
1029         select XMLELEMENT("ELEMENT",l_xmlTemp) into l_xmlTemp from dual;
1030         select XMLConcat(l_xmlTemp2,l_xmlTemp) into l_xmlTemp2 from dual;
1031       end loop;
1032       select XMLELEMENT("ELEMENT_LIST",l_xmlTemp2) into l_xmlTemp2 from dual;
1033       select XMLConcat(l_xmlTypeQualityPlan,l_xmlTemp2) into l_xmlTypeQualityPlan from dual;
1034       select XMLELEMENT("QUALITYPLAN",l_xmlTypeQualityPlan) into l_xmlTypeQualityPlan from dual;
1035           --changed bug fix 8289633
1036           SELECT XMLConcat(l_xmlTemp4,l_xmlTypeQualityPlan)INTO l_xmlTemp4 FROM dual;
1037           l_xmlTypeQualityPlan:=NULL;
1038    end loop;
1039       select XMLELEMENT("QUALITYPLAN_LIST",l_xmlTemp4) into l_xmlTypeQualityPlan from dual;
1040           --end of change bug fix 8289633
1041 
1042    exception
1043    when  NO_DATA_FOUND then
1044      null;
1045    end;
1046  end if;
1047 
1048  --Adding Asset BOM
1049   if p_asset_bom_flag =1 then
1050     begin
1051      for assetbom_record in assetbom_cursor(p_wip_entity_id(i)) loop
1052        select XMLConcat(l_xmlTypeAssetBom,assetbom_record.AssetBom) into l_xmlTypeAssetBom from dual;
1053      end loop;
1054      select XMLELEMENT("ASSETBOM_LIST",l_xmlTypeAssetBom) into l_xmlTypeAssetBom from dual;
1055     exception
1056     when  NO_DATA_FOUND then
1057       null;
1058     end;
1059   end if;
1060 
1061 --begin changes for FP 7493388 (base bug 7005666)
1062   --Adding Asset route components
1063   if l_asset_route_flag = 'Y' then
1064    begin
1065 
1066      for asset_route_record in assetroutecomp_cursor(l_serial_number,l_inventory_id) loop
1067       select XMLConcat(l_xmlTypeAssetroutecomp,asset_route_record.AssetRoutecomp) into l_xmlTypeAssetroutecomp from dual;
1068      end loop;
1069      select XMLELEMENT("ASSETROUTECOMP_LIST",l_xmlTypeAssetroutecomp) into l_xmlTypeAssetroutecomp from dual;
1070    exception
1071    when  NO_DATA_FOUND then
1072     null;
1073    end;
1074   end if;
1075 --end changes for FP 7493388 (base bug 7005666)
1076 
1077  --begin adding safety permit
1078   if p_safety_permit_flag = 1 then
1079    begin
1080      for permits_record in workpermit_cursor(p_wip_entity_id(i),l_org_id) loop
1081       select XMLConcat(l_xmlTypePermits,permits_record.workpermit) into l_xmlTypePermits from dual;
1082      end loop;
1083      select XMLELEMENT("WORKPERMIT_LIST",l_xmlTypePermits) into l_xmlTypePermits from dual;
1084    exception
1085    when  NO_DATA_FOUND then
1086     null;
1087    end;
1088   end if;
1089 --end adding safety permit
1090 
1091 --begin adding safety clearance
1092   if p_safety_clearance_flag = 1 then
1093    begin
1094      for clearances_record in workclearance_cursor(p_wip_entity_id(i)) loop
1095       select XMLConcat(l_xmlTypeClearances,clearances_record.workclearance) into l_xmlTypeClearances from dual;
1096      end loop;
1097      select XMLELEMENT("WORKCLEARANCE_LIST",l_xmlTypeClearances) into l_xmlTypeClearances from dual;
1098    exception
1099    when  NO_DATA_FOUND then
1100     null;
1101    end;
1102   end if;
1103 --end adding safety permit
1104 
1105 
1106 --Adding Failure Data
1107   begin
1108    select XMLELEMENT("FAILUREDATA",XMLFOREST(ewod.failure_code_required as "CODEREQUIRED",
1109    fnd_date.date_to_displayDT(dateval => Convert_to_client_time(eaf.failure_date), calendar_aware => FND_DATE.calendar_aware_alt) as "FAILUREDATE",
1110    eafc.failure_code as "FAILURECODE",
1111    eafc.cause_code as "CAUSECODE",
1112    eafc.resolution_code as "RESOLUTIONCODE",
1113    efs.set_name as "SETNAME",
1114    eafc.comments as "COMMENTS")) into l_xmlTypeFailureData
1115    from eam_asset_failures eaf,
1116    eam_asset_failure_codes eafc,
1117    eam_work_order_details ewod,
1118    wip_discrete_jobs wdj,
1119    eam_failure_set_associations easa,
1120    eam_failure_sets efs
1121    where wdj.wip_entity_id =eaf.source_id and
1122    eaf.source_type=1 and
1123    eaf.failure_id =eafc.failure_id and
1124    wdj.wip_entity_id= ewod.wip_entity_id and
1125    easa.inventory_item_id(+)=nvl(wdj.asset_group_id,wdj.rebuild_item_id)  and
1126    efs.set_id(+)=easa.set_id and
1127    wdj.wip_entity_id=p_wip_entity_id(i);
1128   exception
1129   WHEN  OTHERS THEN
1130    null;
1131   end;
1132 
1133 --Main Work Order Header
1134 
1135  --Adding PM Base Meter Name
1136   begin
1137   select XMLFOREST(ewod.warranty_active as "WARRANTYACTIVE",cct.name as "PMBASEMETER") into l_xmlTemp3
1138   from eam_work_order_details ewod,csi_counters_tl cct
1139   where ewod.wip_entity_id=p_wip_entity_id(i)
1140   and ewod.pm_base_meter=cct.counter_id
1141   and cct.language=userenv('Lang');
1142   exception
1143   when  NO_DATA_FOUND then
1144    null;
1145   end;
1146 
1147   --Adding Warranty Expiration Date
1148   begin
1149   select XMLConcat(XMLELEMENT("WARRANTYEXPDATE",fnd_date.date_to_displayDT(dateval => Convert_to_client_time(csi.SUPPLIER_WARRANTY_EXP_DATE), calendar_aware => FND_DATE.calendar_aware_alt)),l_xmlTemp3) into l_xmlTemp3
1150   from csi_item_instances csi, wip_discrete_jobs wdj
1151   where wdj.maintenance_object_id=csi.instance_id
1152   and wdj.maintenance_object_type=3
1153   and wdj.wip_entity_id=p_wip_entity_id(i);
1154   exception
1155   when  NO_DATA_FOUND then
1156    null;
1157   end;
1158 
1159   --Adding Actual Start Date and Actual End Date
1160   begin
1161   SELECT XMLConcat(XMLFOREST(fnd_date.date_to_displayDT(dateval => Convert_to_client_time(ACTUAL_START_DATE), calendar_aware => FND_DATE.calendar_aware_alt) as "ACTUALSTARTDATE",
1162  fnd_date.date_to_displayDT(dateval => Convert_to_client_time(ACTUAL_END_DATE), calendar_aware => FND_DATE.calendar_aware_alt) as "ACTUALENDDATE",
1163   round((ACTUAL_END_DATE-ACTUAL_START_DATE)*24,2) as "ACTUALDURATION"),l_xmlTemp3) into l_xmlTemp3
1164   FROM EAM_JOB_COMPLETION_TXNS
1165   WHERE TRANSACTION_TYPE=1
1166   AND TRANSACTION_ID=
1167         (
1168         SELECT MAX(TRANSACTION_ID)
1169         FROM EAM_JOB_COMPLETION_TXNS EJT,WIP_DISCRETE_JOBS WDJ
1170         WHERE EJT.WIP_ENTITY_ID=WDJ.WIP_ENTITY_ID
1171         AND EJT.ORGANIZATION_ID=WDJ.ORGANIZATION_ID
1172         AND WDJ.WIP_ENTITY_ID=p_wip_entity_id(i)
1173         );
1174   exception
1175   when  NO_DATA_FOUND then
1176    null;
1177   end;
1178 
1179 
1180   --Adding Asset Group Description
1181   begin
1182   select XMLConcat(XMLELEMENT("ASSETGRPDESC",msi.description),l_xmlTemp3) into l_xmlTemp3
1183   from mtl_system_items_kfv msi, wip_discrete_jobs wdj
1184   where nvl(wdj.asset_group_id,wdj.rebuild_item_id)=msi.inventory_item_id
1185   and wdj.organization_id=msi.organization_id
1186   and wdj.wip_entity_id=p_wip_entity_id(i);
1187   exception
1188   when  NO_DATA_FOUND then
1189    null;
1190   end;
1191 
1192   --Adding Area Info
1193   begin
1194   select XMLConcat(XMLFOREST(mel.location_codes as "AREA" ,mel.description as "AREADESC"),l_xmlTemp3) into l_xmlTemp3
1195   from eam_org_maint_defaults eomd, mtl_eam_locations mel, wip_discrete_jobs wdj
1196   where eomd.object_id = wdj.maintenance_object_id
1197   and eomd.object_type = 50
1198   and eomd.organization_id =wdj.organization_id
1199   and wdj.wip_entity_id=p_wip_entity_id(i)
1200   and eomd.area_id=mel.location_id;
1201   exception
1202   when  NO_DATA_FOUND then
1203    null;
1204   end;
1205 
1206   select XMLConcat(l_xmlType,
1207    XMLELEMENT("WORKORDER",XMLATTRIBUTES(wewdv.wip_entity_id as "WIPENTITYID"),
1208    XMLFOREST(wewdv.wip_entity_name as "NAME",
1209    wewdv.description as "DESCRIPTION",
1210    wewdv.work_order_status as "STATUS",
1211    wewdv.asset_description as "ASSETDESC",
1212    wewdv.priority_disp as "PRIORITY",
1213    wewdv.class_code as "CLASSCODE",
1214    wewdv.instance_number as "ASSETNUMBER",
1215    flm1.meaning as "PENDING",
1216    wewdv.shutdown_type_disp as "SHUTDOWNTYPE",
1217    wewdv.asset_rebuild_group as "ASSETGROUP",
1218    wewdv.rebuild_serial_number as "REBSERIALNO",
1219    msi.concatenated_segments as "ACTIVITY",
1220    msi.description as "ACTIVITYDESC",
1221    wewdv.activity_type_disp as "ACTIVITYTYPE",
1222    wewdv.activity_cause_disp as "ACTIVITYCAUSE",
1223    wewdv.activity_source_meaning as "ACTIVITYSOURCE",
1224    wewdv.warranty_claim_status as "WARRANTY",
1225    wewdv.parent_wip_entity_name as "PARENTNAME",
1226    flm4.meaning as "NOTIFICATION",
1227    flm3.meaning  as "TAGOUT",
1228    flm5.meaning as "PLANNED",
1229    wewdv.planner_maintenance_meaning as "PLANNERTYPE",
1230    wewdv.project_name as "PROJECTNAME",
1231    wewdv.task_name as "TASKNAME",
1232    fnd_date.date_to_displayDT(dateval => Convert_to_client_time(wewdv.pm_suggested_start_date), calendar_aware => FND_DATE.calendar_aware_alt) as "PMSTARTDATE",
1233    fnd_date.date_to_displayDT(dateval => Convert_to_client_time(wewdv.pm_suggested_end_date), calendar_aware => FND_DATE.calendar_aware_alt) as "PMENDDATE",
1234    flm2.meaning as "MATISSUEREQUEST",
1235    lu1.meaning as "FIRM",
1236    lu2.meaning as "MATSHORTAGE",
1237    fnd_date.date_to_displayDT(dateval => Convert_to_client_time(wewdv.material_shortage_check_date), calendar_aware => FND_DATE.calendar_aware_alt) as "ASOFDATE",
1238    wewdv.owning_department_code as "DEPARTMENT",
1239    wewdv.work_order_type_disp as "WOTYPE",
1240    fnd_date.date_to_displayDT(dateval => Convert_to_client_time(wewdv.scheduled_start_date), calendar_aware => FND_DATE.calendar_aware_alt) as "STARTDATE",
1241    fnd_date.date_to_displayDT(dateval => Convert_to_client_time(wewdv.scheduled_completion_date), calendar_aware => FND_DATE.calendar_aware_alt) as "ENDDATE",
1242    round((wewdv.scheduled_completion_date-wewdv.scheduled_start_date)*24,2) as "SCHEDULEDDURATION",
1243    eps.name as "PMNAME",
1244    fnd_date.date_to_displayDT(dateval => Convert_to_client_time(eps.base_date), calendar_aware => FND_DATE.calendar_aware_alt) as "BASEDATE",
1245    bd.description as "DEPTDESCRIPTION"),
1246    XMLConcat(l_xmlTemp3,l_xmlTypeFailureData,l_xmlType1,l_xmlTypeOperation,l_xmlTypeMaterial,l_xmlTypeResource,l_xmlTypeDirectMaterial,l_xmlTypeShortAttachment,
1247    l_xmlTypeLongAttachment,l_xmlTypefileattachment,l_xmlTypeWorkRequest,l_xmlTypeMeter,l_xmlTypeQualityPlan,l_xmlTypeAssetBom,l_xmlTypeAssetroutecomp,l_xmlTypePermits,l_xmlTypeClearances,l_xmlTypeParamList))) AS "RESULT" into l_xmlType
1248     from eam_work_orders_v wewdv ,mtl_system_items_b_kfv msi,eam_pm_schedulings eps,bom_departments bd,mfg_lookups lu1,mfg_lookups lu2
1249    ,fnd_common_lookups flm1,fnd_common_lookups flm2,fnd_common_lookups flm3,fnd_common_lookups flm4 ,fnd_common_lookups flm5
1250    where wewdv.wip_entity_id=p_wip_entity_id(i)
1251    and msi.inventory_item_id(+)= wewdv.primary_item_id
1252    and msi.organization_id(+)=wewdv.organization_id
1253    and lu1.lookup_code(+)=wewdv.firm_planned_flag
1254    and lu1.lookup_type(+)='SYS_YES_NO'
1255    and lu2.lookup_code(+)=wewdv.material_shortage_flag
1256    and lu2.lookup_type(+)='SYS_YES_NO'
1257    and eps.pm_schedule_id(+)=wewdv.pm_schedule_id
1258    and bd.department_id(+)=wewdv.owning_department
1259    and flm1.lookup_type(+) = 'EAM_YES_NO'
1260    and flm1.lookup_code(+)=wewdv.pending_flag
1261    and flm2.lookup_type(+) = 'EAM_YES_NO'
1262    and flm2.lookup_code(+)=wewdv.material_issue_by_mo
1263    and flm3.lookup_type(+) = 'EAM_YES_NO'
1264    and flm3.lookup_code(+)=wewdv.tagout_required
1265    and flm4.lookup_type(+) = 'EAM_YES_NO'
1266    and flm4.lookup_code(+)=wewdv.notification_required
1267    and flm5.lookup_type(+) = 'EAM_YES_NO'
1268    and flm5.lookup_code(+)=wewdv.plan_maintenance;
1269 
1270    l_xmlTypeOperation:=null;
1271    l_xmlTypeMaterial:=null;
1272    l_xmlTypeResource:=null;
1273    l_xmlTypeEmployee:=null;
1274    l_xmlTypeDirectMaterial:=null;
1275    l_xmlTypeShortAttachment:=null;
1276    l_xmlTypeOpShortAttachment:=null;
1277    l_xmlTypeOpLongAttachment:=null;
1278    l_xmlTypeLongAttachment:=null;
1279    l_xmlTypefileattachment:=null;
1280    l_xmlTypeWorkRequest:=null;
1281    l_xmlTypeMeter:=null;
1282    l_xmlTypeQualityPlan:=null;
1283    l_xmlTypeAssetBom:=null;
1284    l_xmlTypeFailureData:=null;
1285    l_xmlTemp3:=null;
1286    l_xmlTypeAssetroutecomp:=null;
1287    l_xmlTypePermits :=NULL; --permit safety report
1288    l_xmlTypeClearances :=NULL; -- safety clearance
1289  end loop;
1290 
1291  select XMLELEMENT("WORKORDER_LIST", l_xmlType) into l_xmlType from dual;
1292 
1293  return l_xmlType.getClobVal();
1294 -- End of API body.
1295 
1296 
1297 END getWoReportXML;
1298 
1299 --Function to convert Long data into Clob
1300 
1301 Function getLong
1302 (
1303         p_wip_id in number,
1304         p_org_id in number,
1305         p_media_id in number,
1306         p_select in number
1307 
1308 
1309 ) return CLOB
1310 IS
1311 
1312 l_longVal long:=null;
1313 l_lobVal clob;
1314 l_attachmenttype varchar2(50);
1315 BEGIN
1316     -- bug 13552899 (changed for fnd change in long_text column)
1317         -- API body
1318    if p_select=1 then
1319     insert into EAM_WOREP_LONG_ATTACH_TEMP
1320         (select
1321         fdlt.long_text
1322    from
1323     FND_DOCUMENTS_LONG_TEXT fdlt,
1324     fnd_documents_vl fdv,
1325     fnd_attached_documents fad
1326    where
1327     fdlt.media_id = fdv.media_id and
1328     fad.document_id = fdv.document_id and
1329     fad.entity_name ='EAM_WORK_ORDERS' and
1330         fad.pk2_value =to_char(p_wip_id)  and
1331         fdlt.media_id =to_char(p_media_id) and
1332         fad.pk1_value = to_char(p_org_id));
1333 
1334 	select long_text into l_lobVal from EAM_WOREP_LONG_ATTACH_TEMP ;
1335         delete from EAM_WOREP_LONG_ATTACH_TEMP;
1336 
1337   else
1338    -- bug 13552899 (changed for fnd change in long_text column)
1339    insert into EAM_WOREP_LONG_ATTACH_TEMP (select
1340    fdlt.long_text
1341    from
1342     FND_DOCUMENTS_LONG_TEXT fdlt,
1343     fnd_documents_vl fdv,
1344     fnd_attached_documents fad
1345     where
1346     fdlt.media_id = fdv.media_id and
1347     fad.document_id = fdv.document_id and
1348     fad.entity_name ='EAM_DISCRETE_OPERATIONS'and
1349         fad.pk1_value = to_char(p_wip_id) and
1350         fdlt.media_id =to_char(p_media_id) and
1351         fad.pk3_value =to_char(p_org_id));
1352 
1353         select long_text into l_lobVal from EAM_WOREP_LONG_ATTACH_TEMP;
1354         delete from EAM_WOREP_LONG_ATTACH_TEMP;
1355 
1356   end if;
1357  return l_lobVal;
1358         -- End of API body.
1359 END getLong;
1360 
1361 
1362 --Function to covert date from Server Time zone to Client Time Zone
1363 
1364 Function Convert_to_client_time (
1365 p_server_time   in         date
1366 ) return date
1367 IS
1368 l_client_tz_id          number;
1369 l_server_tz_id          number;
1370 l_msg_count             number;
1371 l_msg_data              varchar2(2000);
1372 l_client_time           date;
1373 l_status                varchar2(100);
1374 BEGIN
1375    -- API body
1376     /*l_client_tz_id :=         to_number ( fnd_profile.value_specific('CLIENT_TIMEZONE_ID'));
1377     l_server_tz_id :=         to_number( fnd_profile.value_specific('SERVER_TIMEZONE_ID'));*/
1378      -- fix for 6415147
1379     l_client_tz_id := nvl(to_number ( fnd_profile.value_specific('CLIENT_TIMEZONE_ID')),nvl(to_number ( fnd_profile.value_specific('CLIENT_TIMEZONE_ID',fnd_global.user_id)),0));
1380     l_server_tz_id := nvl(to_number( fnd_profile.value_specific('SERVER_TIMEZONE_ID')),nvl(to_number( fnd_profile.value_specific('SERVER_TIMEZONE_ID',fnd_global.user_id)),0));
1381 
1382     HZ_TIMEZONE_PUB.Get_Time(1.0, 'F', l_server_tz_id, l_client_tz_id,    p_server_time,
1383                                  l_client_time, l_status, l_msg_count, l_msg_data);
1384     return l_client_time;
1385    -- API body
1386 
1387 END;
1388 
1389 END EAM_WorkOrderRep_PVT;
1390