[Home] [Help]
PACKAGE BODY: APPS.MRP_MRPRPRSC_XMLP_PKG
Source
1 PACKAGE BODY MRP_MRPRPRSC_XMLP_PKG AS
2 /* $Header: MRPRPRSCB.pls 120.4 2008/01/02 13:31:56 nchinnam noship $ */
3 FUNCTION BEFOREREPORT RETURN BOOLEAN IS
4 DATE_FORMAT_1 varchar2(30):='DD'||'-MON-'||'YYYY';
5 DATE_FORMAT_2 varchar2(30):='DD'||'-MON-'||'YY';
6 BEGIN
7 DECLARE
8 CURRENCY_DESC VARCHAR2(80);
9 PRECISION NUMBER;
10 CANCEL_TEXT VARCHAR2(80);
11 CAT_STRUCT_NUM NUMBER;
12 BEGIN
13 P_CONC_REQUEST_ID := FND_GLOBAL.CONC_REQUEST_ID;
14 QTY_PRECISION:=mrp_common_xmlp_pkg.get_precision(P_QTY_PRECISION);
15 /*SRW.USER_EXIT('FND SRWINIT')*/NULL;
16 IF (P_DEBUG = 'Y') THEN
17 EXECUTE IMMEDIATE
18 'ALTER SESSION SET SQL_TRACE TRUE';
19 END IF;
20 SELECT
21 MEANING
22 INTO CANCEL_TEXT
23 FROM
24 MFG_LOOKUPS
25 WHERE LOOKUP_TYPE = 'MRP_CANCEL'
26 AND LOOKUP_CODE = 1;
27 P_CANCEL_TEXT := CANCEL_TEXT;
28 P_CUTOFF_DATE_YY := TO_CHAR(P_CUTOFF_DATE
29 ,'YYYY/MM/DD');
30 SELECT
31 NAME,
32 PRECISION
33 INTO CURRENCY_DESC,PRECISION
34 FROM
35 FND_CURRENCIES_VL
36 WHERE CURRENCY_CODE = P_CURRENCY_CODE;
37 P_CURRENCY_DESC := CURRENCY_DESC;
38 P_PRECISION := PRECISION;
39 IF ((P_SORT = 2) OR (P_LOW_CAT IS NOT NULL) OR (P_HIGH_CAT IS NOT NULL)) THEN
40 SELECT
41 STRUCTURE_ID
42 INTO CAT_STRUCT_NUM
43 FROM
44 MTL_DEFAULT_SETS_VIEW
45 WHERE FUNCTIONAL_AREA_ID = 3;
46 P_CAT_STRUCT_NUM := CAT_STRUCT_NUM;
47 END IF;
48 IF (P_ORDER_TYPE = 3 OR P_ORDER_TYPE = 10) THEN
49 P_WIP_START := 'wip1.start_date';
50 END IF;
51 IF ((P_LOW_ITEM IS NOT NULL) OR (P_HIGH_ITEM IS NOT NULL)) THEN
52 NULL;
53 END IF;
54 IF ((P_LOW_CAT IS NOT NULL) OR (P_HIGH_CAT IS NOT NULL)) THEN
55 NULL;
56 END IF;
57 IF (P_SORT = 1) THEN
58 NULL;
59 END IF;
60 IF (P_SORT = 2) THEN
61 NULL;
62 END IF;
63 END;
64 P_CUTOFF_DATE_1:=to_char(P_CUTOFF_DATE,DATE_FORMAT_1);
65 P_CUTOFF_DATE_2:=to_char(P_CUTOFF_DATE,DATE_FORMAT_2);
66 RETURN (TRUE);
67 END BEFOREREPORT;
68
69 FUNCTION C_CATEGORY_FROMFORMULA RETURN VARCHAR2 IS
70 BEGIN
71 DECLARE
72 CATEGORY_FROM VARCHAR2(80);
73 BEGIN
74 IF (((P_LOW_CAT IS NOT NULL) OR (P_HIGH_CAT IS NOT NULL)) OR (P_SORT = 2)) THEN
75 CATEGORY_FROM := ',mtl_categories cat';
76 ELSE
77 CATEGORY_FROM := ' ';
78 END IF;
79 RETURN (CATEGORY_FROM);
80 END;
81 RETURN NULL;
82 END C_CATEGORY_FROMFORMULA;
83
84 FUNCTION C_BUYER_RANGEFORMULA RETURN VARCHAR2 IS
85 BEGIN
86 DECLARE
87 BUYER_RANGE VARCHAR2(80);
88 BEGIN
89 IF (P_BUYER IS NOT NULL) THEN
90 BUYER_RANGE := 'AND req.buyer_id = ' || P_BUYER;
91 ELSE
92 BUYER_RANGE := ' ';
93 END IF;
94 RETURN (BUYER_RANGE);
95 END;
96 RETURN NULL;
97 END C_BUYER_RANGEFORMULA;
98
99 FUNCTION C_CATEGORY_WHEREFORMULA RETURN VARCHAR2 IS
100 BEGIN
101 DECLARE
102 CATEGORY_WHERE VARCHAR2(200);
103 BEGIN
104 IF ((P_LOW_CAT IS NOT NULL) OR (P_HIGH_CAT IS NOT NULL) OR (P_SORT = 2)) THEN
105 CATEGORY_WHERE := 'AND ic.category_id = cat.category_id(+)' || 'AND cat.structure_id = ' || P_CAT_STRUCTURE;
106 ELSE
107 CATEGORY_WHERE := ' ';
108 END IF;
109 RETURN (CATEGORY_WHERE);
110 END;
111 RETURN NULL;
112 END C_CATEGORY_WHEREFORMULA;
113
114 FUNCTION C_PLANNER_RANGEFORMULA RETURN VARCHAR2 IS
115 BEGIN
116 DECLARE
117 PLANNER_RANGE VARCHAR2(80);
118 BEGIN
119 IF (P_PLANNER IS NOT NULL) THEN
120 PLANNER_RANGE := 'AND req.planner_code = ''' || P_PLANNER || '''';
121 ELSE
122 PLANNER_RANGE := ' ';
123 END IF;
124 RETURN (PLANNER_RANGE);
125 END;
126 RETURN NULL;
127 END C_PLANNER_RANGEFORMULA;
128
129 FUNCTION C_ABC_FROMFORMULA RETURN VARCHAR2 IS
130 BEGIN
131 DECLARE
132 ABC_FROM VARCHAR2(80);
133 BEGIN
134 IF (P_ABC_ASSGN IS NOT NULL) OR ((P_ABC_CLASS IS NOT NULL) OR (P_SORT = 7)) THEN
135 ABC_FROM := ', mtl_abc_assignments abc' || ',mtl_abc_classes abc_cls';
136 ELSE
137 ABC_FROM := ' ';
138 END IF;
139 RETURN (ABC_FROM);
140 END;
141 RETURN NULL;
142 END C_ABC_FROMFORMULA;
143
144 FUNCTION C_ABC_WHEREFORMULA RETURN VARCHAR2 IS
145 BEGIN
146 DECLARE
147 ABC_WHERE VARCHAR2(200);
148 BEGIN
149 IF (P_ABC_ASSGN IS NOT NULL) THEN
150 ABC_WHERE := 'AND abc.inventory_item_id(+) = req.inventory_item_id ' || 'AND abc.assignment_group_id = ' || P_ABC_ASSGN || ' AND abc.abc_class_id = abc_cls.abc_class_id';
151 ELSIF ((P_ABC_CLASS IS NOT NULL) OR (P_SORT = 7)) THEN
152 ABC_WHERE := 'AND abc.inventory_item_id(+) = req.inventory_item_id ' || 'AND abc_cls.abc_class_id(+) = abc.abc_class_id';
153 ELSE
154 ABC_WHERE := ' ';
155 END IF;
156 RETURN (ABC_WHERE);
157 END;
158 RETURN NULL;
159 END C_ABC_WHEREFORMULA;
160
161 FUNCTION C_ORDER_BYFORMULA(P_ORDER_BY1 varchar2,P_ORDER_BY2 varchar2) RETURN VARCHAR2 IS
162 BEGIN
163 DECLARE
164 ORDER_BY VARCHAR2(80);
165 BEGIN
166 IF (P_SORT = 1) THEN
167 ORDER_BY := P_ORDER_BY1 || ',';
168 ELSIF (P_SORT = 2) THEN
169 ORDER_BY := P_ORDER_BY2 || ',';
170 ELSIF (P_SORT = 3 AND P_ORDER_TYPE = 3) THEN
171 ORDER_BY := ' wip1.wip_entity_name, ';
172 ELSIF (P_SORT = 3 AND P_ORDER_TYPE <> 3) THEN
173 ORDER_BY := ' po1.po_number, ';
174 ELSIF (P_SORT = 4) THEN
175 ORDER_BY := ' vendors.vendor_name, ';
176 ELSIF (P_SORT = 5 AND P_ORDER_TYPE = 3) THEN
177 ORDER_BY := ' req.planner_code, wip1.wip_entity_name, ';
178 ELSIF (P_SORT = 5 AND P_ORDER_TYPE <> 3) THEN
179 ORDER_BY := ' req.planner_code, po1.po_number, ';
180 ELSIF (P_SORT = 6) THEN
181 ORDER_BY := ' req.buyer_name, ';
182 ELSIF (P_SORT = 7) THEN
183 ORDER_BY := ' abc.abc_class_id, ';
184 ELSIF (P_SORT = 8) THEN
185 ORDER_BY := ' parm.organization_code, ';
186 ELSE
187 ORDER_BY := ' ';
188 END IF;
189 RETURN (ORDER_BY);
190 END;
191 RETURN NULL;
192 END C_ORDER_BYFORMULA;
193
194 FUNCTION C_CUTOFF_COLUMNFORMULA RETURN VARCHAR2 IS
195 BEGIN
196 DECLARE
197 CUTOFF VARCHAR2(400);
198 BEGIN
199 IF (P_CUTOFF_TYPE = 1) THEN
200 CUTOFF := ' AND (rec.new_order_placement_date <= to_date(
201 ''' || P_CUTOFF_DATE_YY || ''',''YYYY/MM/DD'')
202 OR rec.old_order_placement_date <= to_date(
203 ''' || P_CUTOFF_DATE_YY || ''',''YYYY/MM/DD'')) ';
204 ELSIF (P_CUTOFF_TYPE = 2) THEN
205 CUTOFF := ' AND (rec.new_schedule_date <= to_date(
206 ''' || P_CUTOFF_DATE_YY || ''',''YYYY/MM/DD'')
207 OR rec.old_schedule_date <= to_date(
208 ''' || P_CUTOFF_DATE_YY || ''', ''YYYY/MM/DD'')) ';
209 ELSIF (P_CUTOFF_TYPE = 3) THEN
210 CUTOFF := ' AND (rec.new_dock_date <= to_date(
211 ''' || P_CUTOFF_DATE_YY || ''',''YYYY/MM/DD'')
212 OR rec.old_dock_date <= to_date(
213 ''' || P_CUTOFF_DATE_YY || ''',''YYYY/MM/DD'')) ';
214 ELSE
215 CUTOFF := ' AND (rec.new_wip_start_date <= to_date(
216 ''' || P_CUTOFF_DATE_YY || ''',''YYYY/MM/DD'')) ';
217 END IF;
218 RETURN (CUTOFF);
219 END;
220 RETURN NULL;
221 END C_CUTOFF_COLUMNFORMULA;
222
223 FUNCTION C_SORT_COLUMNFORMULA RETURN VARCHAR2 IS
224 BEGIN
225 DECLARE
226 SORT_COLUMN VARCHAR2(80);
227 BEGIN
228 IF (P_SORT = 5 AND P_ORDER_TYPE = 3) THEN
229 SORT_COLUMN := ', wip1.wip_entity_name ';
230 ELSIF (P_SORT = 7) THEN
231 SORT_COLUMN := ', TO_CHAR(abc.abc_class_id) ';
232 ELSE
233 SORT_COLUMN := ' ';
234 END IF;
235 RETURN (SORT_COLUMN);
236 END;
237 RETURN NULL;
238 END C_SORT_COLUMNFORMULA;
239
240 FUNCTION C_ABC_RANGEFORMULA RETURN VARCHAR2 IS
241 BEGIN
242 DECLARE
243 ABC_RANGE VARCHAR2(80);
244 BEGIN
245 IF (P_ABC_CLASS IS NOT NULL) THEN
246 ABC_RANGE := 'AND abc.abc_class_id = ' || P_ABC_CLASS;
247 ELSE
248 ABC_RANGE := ' ';
249 END IF;
250 RETURN (ABC_RANGE);
251 END;
252 RETURN NULL;
253 END C_ABC_RANGEFORMULA;
254
255 FUNCTION AFTERREPORT RETURN BOOLEAN IS
256 BEGIN
257 BEGIN
258 /*SRW.USER_EXIT('FND SRWEXIT')*/NULL;
259 END;
260 RETURN (TRUE);
261 END AFTERREPORT;
262
263 FUNCTION C_DAYS_RANGEFORMULA RETURN VARCHAR2 IS
264 BEGIN
265 DECLARE
266 DAYS VARCHAR2(256);
267 IN_DAYS VARCHAR2(4);
268 OUT_DAYS VARCHAR2(4);
269 BEGIN
270 IN_DAYS := TO_CHAR(P_IN_DAYS * -1);
271 OUT_DAYS := TO_CHAR(P_OUT_DAYS);
272 IF ((P_IN_DAYS IS NOT NULL) AND (P_OUT_DAYS IS NOT NULL)) THEN
273 DAYS := ' AND (rec.reschedule_days NOT BETWEEN ' || IN_DAYS || ' and ' || OUT_DAYS || ' OR rec.disposition_status_type = 2) ';
274 ELSE
275 DAYS := ' ';
276 END IF;
277 RETURN (DAYS);
278 END;
279 RETURN NULL;
280 END C_DAYS_RANGEFORMULA;
281
282 FUNCTION C_WIP_FROMFORMULA RETURN VARCHAR2 IS
283 BEGIN
284 DECLARE
285 WIP VARCHAR2(80);
286 BEGIN
287 IF (P_ORDER_TYPE = 3 OR P_ORDER_TYPE = 10) THEN
288 WIP := ', mrp_item_wip_entities wip1 ';
289 ELSE
290 WIP := ' ';
291 END IF;
292 RETURN (WIP);
293 END;
294 RETURN NULL;
295 END C_WIP_FROMFORMULA;
296
297 FUNCTION C_WIP_WHEREFORMULA RETURN VARCHAR2 IS
298 BEGIN
299 DECLARE
300 WIP VARCHAR2(256);
301 BEGIN
302 IF (P_ORDER_TYPE = 3 OR P_ORDER_TYPE = 10) THEN
303 WIP := ' AND wip1.wip_entity_id(+) = rec.disposition_id' || ' AND wip1.organization_id(+) = rec.organization_id' || ' AND wip1.compile_designator(+) = rec.compile_designator' || ' AND wip1.inventory_item_id(+) = rec.inventory_item_id ';
304 ELSE
305 WIP := ' ';
306 END IF;
307 RETURN (WIP);
308 END;
309 RETURN NULL;
310 END C_WIP_WHEREFORMULA;
311
312 FUNCTION C_P_SORTFORMULA RETURN VARCHAR2 IS
313 BEGIN
314 DECLARE
315 SORT VARCHAR2(80);
316 BEGIN
317 SELECT
318 MEANING
319 INTO SORT
320 FROM
321 MFG_LOOKUPS
322 WHERE LOOKUP_CODE = P_SORT
323 AND LOOKUP_TYPE = 'MRP_RESCHEDULE_SORT';
324 RETURN (SORT);
325 END;
326 RETURN NULL;
327 END C_P_SORTFORMULA;
328
329 FUNCTION C_P_ORDER_TYPEFORMULA RETURN VARCHAR2 IS
330 BEGIN
331 DECLARE
332 ORDER_TYPE VARCHAR2(80);
333 BEGIN
334 SELECT
335 MEANING
336 INTO ORDER_TYPE
337 FROM
338 MFG_LOOKUPS
339 WHERE LOOKUP_CODE = P_ORDER_TYPE
340 AND LOOKUP_TYPE = 'MRP_RESCHEDULE_SELECT';
341 RETURN (ORDER_TYPE);
342 END;
343 RETURN NULL;
344 END C_P_ORDER_TYPEFORMULA;
345
346 FUNCTION C_P_BUYERFORMULA RETURN VARCHAR2 IS
347 BEGIN
348 DECLARE
349 BUYER VARCHAR2(50);
350 BEGIN
351 IF (P_BUYER IS NOT NULL) THEN
352 SELECT
353 FULL_NAME
354 INTO BUYER
355 FROM
356 MTL_EMPLOYEES_VIEW
357 WHERE EMPLOYEE_ID = P_BUYER
358 AND ORGANIZATION_ID = P_ORG_ID;
359 END IF;
360 RETURN (BUYER);
361 END;
362 RETURN NULL;
363 END C_P_BUYERFORMULA;
364
365 FUNCTION C_P_CAT_SETFORMULA RETURN VARCHAR2 IS
366 BEGIN
367 DECLARE
368 CAT_SET VARCHAR2(30);
369 BEGIN
370 SELECT
371 CATEGORY_SET_NAME
372 INTO CAT_SET
373 FROM
374 MTL_CATEGORY_SETS
375 WHERE CATEGORY_SET_ID = P_CAT_SET;
376 RETURN (CAT_SET);
377 END;
378 RETURN NULL;
379 END C_P_CAT_SETFORMULA;
380
381 FUNCTION C_P_ABC_ASSIGNFORMULA RETURN VARCHAR2 IS
382 BEGIN
383 DECLARE
384 ABC_ASSGN VARCHAR2(42);
385 BEGIN
386 SELECT
387 ASSIGNMENT_GROUP_NAME
388 INTO ABC_ASSGN
389 FROM
390 MTL_ABC_ASSIGNMENT_GROUPS
391 WHERE ASSIGNMENT_GROUP_ID = P_ABC_ASSGN
392 AND ORGANIZATION_ID = P_ORG_ID;
393 RETURN (ABC_ASSGN);
394 EXCEPTION
395 WHEN NO_DATA_FOUND THEN
396 NULL;
397 END;
398 RETURN NULL;
399 END C_P_ABC_ASSIGNFORMULA;
400
401 FUNCTION C_P_CUTOFF_TYPEFORMULA RETURN VARCHAR2 IS
402 BEGIN
403 DECLARE
404 CUTOFF_TYPE VARCHAR2(80);
405 BEGIN
406 SELECT
407 MEANING
408 INTO CUTOFF_TYPE
409 FROM
410 MFG_LOOKUPS
411 WHERE LOOKUP_CODE = P_CUTOFF_TYPE
412 AND LOOKUP_TYPE = 'MRP_PL_ORDER_CUTOFF_TYPE';
413 RETURN (CUTOFF_TYPE);
414 END;
415 RETURN NULL;
416 END C_P_CUTOFF_TYPEFORMULA;
417
418 FUNCTION C_PO_FROMFORMULA RETURN VARCHAR2 IS
419 BEGIN
420 DECLARE
421 PO VARCHAR2(80);
422 BEGIN
423 IF (P_ORDER_TYPE = 1 OR P_ORDER_TYPE = 2 OR P_ORDER_TYPE = 10) THEN
424 PO := ', mrp_item_purchase_orders po1 ';
425 ELSE
426 PO := ' ';
427 END IF;
428 RETURN (PO);
429 END;
430 RETURN NULL;
431 END C_PO_FROMFORMULA;
432
433 FUNCTION C_PO_WHEREFORMULA RETURN VARCHAR2 IS
434 BEGIN
435 DECLARE
436 PO VARCHAR2(256);
437 BEGIN
438 IF (P_ORDER_TYPE = 1 OR P_ORDER_TYPE = 2) THEN
439 PO := ' AND po1.FIRM_PLANNED_STATUS_TYPE <> 1' || ' AND po1.transaction_id(+) = rec.disposition_id' || ' AND po1.order_type(+) = ''' || P_ORDER_TYPE || '''';
440 ELSIF (P_ORDER_TYPE = 10) THEN
441 PO := ' AND po1.transaction_id(+) = rec.disposition_id';
442 ELSE
443 PO := ' ';
444 END IF;
445 RETURN (PO);
446 END;
447 RETURN NULL;
448 END C_PO_WHEREFORMULA;
449
450 FUNCTION C_PO_ORDER_NUMFORMULA RETURN VARCHAR2 IS
451 BEGIN
452 DECLARE
453 ORDER_NUM VARCHAR2(100);
454 BEGIN
455 IF (P_ORDER_TYPE = 1 OR P_ORDER_TYPE = 10) THEN
456 ORDER_NUM := 'po1.po_number';
457 ELSE
458 ORDER_NUM := NULL;
459 END IF;
460 RETURN (ORDER_NUM);
461 END;
462 RETURN NULL;
463 END C_PO_ORDER_NUMFORMULA;
464
465 FUNCTION C_REQ_ORDER_NUMFORMULA RETURN VARCHAR2 IS
466 BEGIN
467 DECLARE
468 ORDER_NUM VARCHAR2(100);
469 BEGIN
470 IF (P_ORDER_TYPE = 2 OR P_ORDER_TYPE = 10) THEN
471 ORDER_NUM := 'po1.po_number';
472 ELSE
473 ORDER_NUM := NULL;
474 END IF;
475 RETURN (ORDER_NUM);
476 END;
477 RETURN NULL;
478 END C_REQ_ORDER_NUMFORMULA;
479
480 FUNCTION C_WIP_ORDER_NUMFORMULA RETURN VARCHAR2 IS
481 BEGIN
482 DECLARE
483 ORDER_NUM VARCHAR2(100);
484 BEGIN
485 IF (P_ORDER_TYPE = 3 OR P_ORDER_TYPE = 10) THEN
486 ORDER_NUM := 'wip1.wip_entity_name';
487 ELSE
488 ORDER_NUM := NULL;
489 END IF;
490 RETURN (ORDER_NUM);
491 END;
492 RETURN NULL;
493 END C_WIP_ORDER_NUMFORMULA;
494
495 FUNCTION C_P_ABC_CLASSFORMULA RETURN VARCHAR2 IS
496 BEGIN
497 DECLARE
498 ABC_CLASS VARCHAR2(40);
499 BEGIN
500 IF (P_ABC_CLASS IS NOT NULL) THEN
501 SELECT
502 ABC_CLASS_NAME
503 INTO ABC_CLASS
504 FROM
505 MTL_ABC_CLASSES
506 WHERE ABC_CLASS_ID = P_ABC_CLASS
507 AND ORGANIZATION_ID = P_ORG_ID;
508 END IF;
509 RETURN (ABC_CLASS);
510 END;
511 RETURN NULL;
512 END C_P_ABC_CLASSFORMULA;
513
514 FUNCTION C_P_USE_MULTIORG_PLANFORMULA RETURN NUMBER IS
515 BEGIN
516 DECLARE
517 ORG_SELECTION NUMBER;
518 USE_MULTIORG_PLAN NUMBER;
519 BEGIN
520 IF (P_REPORT_MULTIORG = 2) THEN
521 SELECT
522 ORGANIZATION_SELECTION
523 INTO ORG_SELECTION
524 FROM
525 MRP_PLANS
526 WHERE ORGANIZATION_ID = P_ORG_ID
527 AND COMPILE_DESIGNATOR = P_PLAN_NAME;
528 ELSE
529 SELECT
530 ORGANIZATION_SELECTION
531 INTO ORG_SELECTION
532 FROM
533 MRP_PLAN_ORGANIZATIONS_V
534 WHERE PLANNED_ORGANIZATION = P_ORG_ID
535 AND COMPILE_DESIGNATOR = P_PLAN_NAME;
536 END IF;
537 IF ((ORG_SELECTION = 2) OR (ORG_SELECTION = 3)) THEN
538 USE_MULTIORG_PLAN := 1;
539 ELSE
540 USE_MULTIORG_PLAN := 2;
541 END IF;
542 RETURN (USE_MULTIORG_PLAN);
543 END;
544 RETURN NULL;
545 END C_P_USE_MULTIORG_PLANFORMULA;
546
547 FUNCTION C_P_REPORT_MULTIORGFORMULA RETURN VARCHAR2 IS
548 BEGIN
549 DECLARE
550 REPORT_MULTIORG_TEXT VARCHAR2(80) := 'Current Organization';
551 BEGIN
552 IF P_REPORT_MULTIORG = 2 THEN
553 SELECT
554 MEANING
555 INTO REPORT_MULTIORG_TEXT
556 FROM
557 MFG_LOOKUPS
558 WHERE LOOKUP_CODE = P_REPORT_MULTIORG
559 AND LOOKUP_TYPE = 'MRP_REPORT_MULTIORG';
560 END IF;
561 RETURN (REPORT_MULTIORG_TEXT);
562 END;
563 RETURN NULL;
564 END C_P_REPORT_MULTIORGFORMULA;
565
566 END MRP_MRPRPRSC_XMLP_PKG;
567
568