[Home] [Help]
PACKAGE BODY: APPS.BOM_DIAGUNITTEST_EXPDATA
Source
1 package body BOM_DIAGUNITTEST_EXPDATA as
2 /* $Header: BOMDGEXB.pls 120.1 2007/12/26 09:49:25 vggarg noship $ */
3 PROCEDURE init is
4 BEGIN
5 null;
6 END init;
7
8 PROCEDURE cleanup IS
9 BEGIN
10 -- test writer could insert special cleanup code here
11 NULL;
12 END cleanup;
13
14 PROCEDURE runtest(inputs IN JTF_DIAG_INPUTTBL,
15 report OUT NOCOPY JTF_DIAG_REPORT,
16 reportClob OUT NOCOPY CLOB) IS
17 reportStr LONG; -- REPORT
18 sqltxt VARCHAR2(9999); -- SQL select statement
19 c_username VARCHAR2(50); -- accept input for username
20 statusStr VARCHAR2(50); -- SUCCESS or FAILURE
21 errStr VARCHAR2(4000); -- error message
22 fixInfo VARCHAR2(4000); -- fix tip
23 isFatal VARCHAR2(50); -- TRUE or FALSE
24 num_rows NUMBER;
25 row_limit NUMBER;
26 l_item_id NUMBER;
27 l_org_id NUMBER;
28 l_count NUMBER;
29 l_ret_status BOOLEAN;
30 l_status VARCHAR2 (1);
31 l_industry VARCHAR2 (1);
32 l_oracle_schema VARCHAR2 (30);
33
34 CURSOR c_item_valid (cp_n_item_id IN NUMBER, cp_n_org_id IN NUMBER) IS
35 SELECT count(*)
36 FROM mtl_system_items_b
37 WHERE inventory_item_id = cp_n_item_id
38 AND organization_id = nvl(cp_n_org_id,organization_id);
39
40 BEGIN
41 JTF_DIAGNOSTIC_ADAPTUTIL.setUpVars;
42 JTF_DIAGNOSTIC_ADAPTUTIL.addStringToReport('@html');
43 JTF_DIAGNOSTIC_COREAPI.insert_style_sheet;
44
45 /*Initializing local vars */
46 row_limit :=1000; /* Set Row Limit to 1000 (i.e.) Max Number of records to be fetched by each sql*/
47 l_count := 0;
48
49 -- accept input
50 l_org_id := JTF_DIAGNOSTIC_ADAPTUTIL.getInputValue('OrgId',inputs);
51 l_item_id :=JTF_DIAGNOSTIC_ADAPTUTIL.getInputValue('ItemId',inputs);
52
53 If l_item_id is NULL then
54 JTF_DIAGNOSTIC_COREAPI.errorprint('Input Item Id is mandatory.');
55 JTF_DIAGNOSTIC_COREAPI.ActionErrorPrint(' Please provide a valid value for the Item Id.');
56 statusStr := 'FAILURE';
57 isFatal := 'TRUE';
58 fixInfo := ' Please review the error message below and take corrective action. ';
59 errStr := ' Invalid value for input field Item Id. It is a mandatory input.';
60
61 report := JTF_DIAGNOSTIC_ADAPTUTIL.constructReport(statusStr,errStr,fixInfo,isFatal);
62 reportClob := JTF_DIAGNOSTIC_ADAPTUTIL.getReportClob;
63 Return;
64 Else /* l_item_id is not null */
65 OPEN c_item_valid (l_item_id, l_org_id);
66 FETCH c_item_valid INTO l_count;
67 CLOSE c_item_valid;
68
69 IF (l_count IS NULL) OR (l_count = 0) THEN
70 JTF_DIAGNOSTIC_COREAPI.errorprint('Invalid Item and Organization Combination');
71 JTF_DIAGNOSTIC_COREAPI.ActionErrorPrint('Please enter right combination of Item and Organization ');
72 statusStr := 'FAILURE';
73 errStr := 'Invalid Item and Organization Combination';
74 fixInfo := ' Please review the error message below and take corrective action. ';
75 isFatal := 'TRUE';
76 report := JTF_DIAGNOSTIC_ADAPTUTIL.constructReport(statusStr,errStr,fixInfo,isFatal);
77 reportClob := JTF_DIAGNOSTIC_ADAPTUTIL.getReportClob;
78 RETURN;
79 END IF;
80 End If; /* l_item_id is null */
81
82 /* Start of the diagnostic test script */
83 /* Get the application installation info. References to Data Dictionary Objects without schema name
84 included in WHERE predicate are not allowed (GSCC Check: file.sql.47). Schema name has to be passed
85 as an input parameter to JTF_DIAGNOSTIC_COREAPI.Column_Exists API. */
86
87 l_ret_status := fnd_installation.get_app_info ('BOM'
88 , l_status
89 , l_industry
90 , l_oracle_schema
91 );
92
93 /*JTF_DIAGNOSTIC_COREAPI.Line_Out(' l_oracle_schema: '||l_oracle_schema);*/
94
95 sqltxt := ' Select '||
96 ' BE.TOP_BILL_SEQUENCE_ID "TOP BILL SEQUENCE ID", '||
97 ' BE.BILL_SEQUENCE_ID "BILL SEQUENCE ID", '||
98 ' BE.ORGANIZATION_ID "ORGANIZATION ID", '||
99 ' BE.EXPLOSION_TYPE "EXPLOSION TYPE", '||
100 ' BE.COMPONENT_SEQUENCE_ID "COMPONENT SEQUENCE ID", '||
101 ' BE.COMPONENT_ITEM_ID "COMPONENT ITEM ID", '||
102 ' BE.PLAN_LEVEL "PLAN LEVEL", '||
103 ' BE.EXTENDED_QUANTITY "EXTENDED QUANTITY", '||
104 ' BE.SORT_ORDER "SORT ORDER", '||
105 ' to_char(BE.CREATION_DATE,''DD-MON-YYYY HH24:MI:SS'') "CREATION DATE", '||
106 ' BE.CREATED_BY "CREATED BY", '||
107 ' to_char(BE.LAST_UPDATE_DATE,''DD-MON-YYYY HH24:MI:SS'') "LAST UPDATE DATE", '||
108 ' BE.LAST_UPDATED_BY "LAST UPDATED BY", '||
109 ' BE.TOP_ITEM_ID "TOP ITEM ID", '||
110 ' BE.CONTEXT "CONTEXT", '||
111 ' BE.ATTRIBUTE1 "ATTRIBUTE1", '||
112 ' BE.ATTRIBUTE2 "ATTRIBUTE2", '||
113 ' BE.ATTRIBUTE3 "ATTRIBUTE3", '||
114 ' BE.ATTRIBUTE4 "ATTRIBUTE4", '||
115 ' BE.ATTRIBUTE5 "ATTRIBUTE5", '||
116 ' BE.ATTRIBUTE6 "ATTRIBUTE6", '||
117 ' BE.ATTRIBUTE7 "ATTRIBUTE7", '||
118 ' BE.ATTRIBUTE8 "ATTRIBUTE8", '||
119 ' BE.ATTRIBUTE9 "ATTRIBUTE9", '||
120 ' BE.ATTRIBUTE10 "ATTRIBUTE10", '||
121 ' BE.ATTRIBUTE11 "ATTRIBUTE11", '||
122 ' BE.ATTRIBUTE12 "ATTRIBUTE12", '||
123 ' BE.ATTRIBUTE13 "ATTRIBUTE13", '||
124 ' BE.ATTRIBUTE14 "ATTRIBUTE14", '||
125 ' BE.ATTRIBUTE15 "ATTRIBUTE15", '||
126 ' BE.COMPONENT_QUANTITY "COMPONENT QUANTITY", '||
127 ' BE.SO_BASIS "SO BASIS", '||
128 ' BE.OPTIONAL "OPTIONAL", '||
129 ' BE.MUTUALLY_EXCLUSIVE_OPTIONS "MUTUALLY EXCLUSIVE OPTIONS", '||
130 ' BE.CHECK_ATP "CHECK ATP", '||
131 ' BE.SHIPPING_ALLOWED "SHIPPING ALLOWED", '||
132 ' BE.REQUIRED_TO_SHIP "REQUIRED TO SHIP", '||
133 ' BE.REQUIRED_FOR_REVENUE "REQUIRED FOR REVENUE", '||
134 ' BE.INCLUDE_ON_SHIP_DOCS "INCLUDE ON SHIP DOCS", '||
135 ' BE.INCLUDE_ON_BILL_DOCS "INCLUDE ON BILL DOCS", '||
136 ' BE.LOW_QUANTITY "LOW QUANTITY", '||
137 ' BE.HIGH_QUANTITY "HIGH QUANTITY", '||
138 ' BE.PICK_COMPONENTS "PICK COMPONENTS", '||
139 ' BE.PRIMARY_UOM_CODE "PRIMARY UOM CODE", '||
140 ' BE.PRIMARY_UNIT_OF_MEASURE "PRIMARY UNIT OF MEASURE", '||
141 ' BE.BASE_ITEM_ID "BASE ITEM ID", '||
142 ' BE.ATP_COMPONENTS_FLAG "ATP COMPONENTS FLAG", '||
143 ' BE.ATP_FLAG "ATP FLAG", '||
144 ' BE.BOM_ITEM_TYPE "BOM ITEM TYPE", '||
145 ' BE.PICK_COMPONENTS_FLAG "PICK COMPONENTS FLAG", '||
146 ' BE.REPLENISH_TO_ORDER_FLAG "REPLENISH TO ORDER FLAG", '||
147 ' BE.SHIPPABLE_ITEM_FLAG "SHIPPABLE ITEM FLAG", '||
148 ' BE.CUSTOMER_ORDER_FLAG "CUSTOMER ORDER FLAG", '||
149 ' BE.INTERNAL_ORDER_FLAG "INTERNAL ORDER FLAG", '||
150 ' BE.CUSTOMER_ORDER_ENABLED_FLAG "CUSTOMER ORDER ENABLED FLAG", '||
151 ' BE.INTERNAL_ORDER_ENABLED_FLAG "INTERNAL ORDER ENABLED FLAG", '||
152 ' BE.SO_TRANSACTIONS_FLAG "SO TRANSACTIONS FLAG", '||
153 ' BE.DESCRIPTION "DESCRIPTION", '||
154 ' BE.ASSEMBLY_ITEM_ID "ASSEMBLY ITEM ID", '||
155 ' BE.COMPONENT_CODE "COMPONENT CODE", '||
156 ' BE.LOOP_FLAG "LOOP FLAG", '||
157 ' BE.PARENT_BOM_ITEM_TYPE "PARENT BOM ITEM TYPE", '||
158 ' BE.OPERATION_SEQ_NUM "OPERATION SEQ NUM", '||
159 ' BE.ITEM_NUM "ITEM NUM", '||
160 ' to_char(BE.EFFECTIVITY_DATE,''DD-MON-YYYY HH24:MI:SS'') "EFFECTIVITY DATE",'||
161 ' to_char(BE.DISABLE_DATE,''DD-MON-YYYY HH24:MI:SS'') "DISABLE DATE", '||
162 ' to_char(BE.IMPLEMENTATION_DATE,''DD-MON-YYYY HH24:MI:SS'') "IMPLEMENTATION DATE", '||
163 ' BE.REXPLODE_FLAG "REXPLODE FLAG", '||
164 ' BE.COMMON_BILL_SEQUENCE_ID "COMMON BILL SEQUENCE ID", '||
165 ' BE.COMP_BILL_SEQ_ID "COMP BILL SEQ ID", '||
166 ' BE.COMP_COMMON_BILL_SEQ_ID "COMP COMMON BILL SEQ ID", '||
167 ' BE.EXPLODE_GROUP_ID "EXPLODE GROUP ID", '||
168 ' BE.NUM_COL1 "NUM COL1", '||
169 ' BE.NUM_COL2 "NUM COL2", '||
170 ' BE.NUM_COL3 "NUM COL3", '||
171 ' to_char(BE.DATE_COL1,''DD-MON-YYYY HH24:MI:SS'') "DATE COL1", '||
172 ' to_char(BE.DATE_COL2,''DD-MON-YYYY HH24:MI:SS'') "DATE COL2", '||
173 ' to_char(BE.DATE_COL3,''DD-MON-YYYY HH24:MI:SS'') "DATE COL3", '||
174 ' BE.CHAR_COL1 "CHAR COL1", '||
175 ' BE.CHAR_COL2 "CHAR COL2", '||
176 ' BE.CHAR_COL3 "CHAR COL3", '||
177 ' BE.AUTO_REQUEST_MATERIAL "AUTO REQUEST MATERIAL", '||
178 ' BE.INCLUDE_IN_COST_ROLLUP "INCLUDE IN COST ROLLUP", '||
179 ' BE.COMPONENT_YIELD_FACTOR "COMPONENT YIELD FACTOR", '||
180 ' BE.PLANNING_FACTOR "PLANNING FACTOR", '||
181 ' BE.CHANGE_NOTICE "CHANGE NOTICE", '||
182 ' BE.PARENT_SORT_ORDER "PARENT SORT ORDER" '||
183 ' ,BE.SUGGESTED_VENDOR_NAME "SUGGESTED VENDOR NAME" '||
184 ' ,BE.VENDOR_ID "VENDOR ID" '||
185 ' ,BE.UNIT_PRICE "UNIT PRICE" '||
186 ' ,BE.REQUEST_ID "REQUEST ID" '||
187 ' ,BE.BASIS_TYPE "BASIS TYPE" '||
188 ' ,BE.SOURCE_BILL_SEQUENCE_ID "SOURCE BILL SEQUENCE ID" '||
189 ' ,BE.COMMON_COMPONENT_SEQUENCE_ID "COMMON COMPONENT SEQUENCE ID" '||
190 ' ,BE.COMP_SOURCE_BILL_SEQ_ID "COMP SOURCE BILL SEQ ID" '||
191 ' FROM bom_explosions be WHERE 1=1 ';
192
193 if l_org_id is not null then
194 sqltxt :=sqltxt||' and be.organization_id = '||l_org_id;
195 end if;
196
197 if l_item_id is not null then
198 sqltxt :=sqltxt||' and be.top_item_id = '||l_item_id;
199 end if;
200
201 sqltxt := sqltxt || ' and rownum< '||row_limit;
202 sqltxt := sqltxt || ' order by be.organization_id,be.sort_order ';
203 num_rows:= JTF_DIAGNOSTIC_COREAPI.display_sql(sqltxt, ' Bom Explosions Data ');
204 If (num_rows = row_limit -1 ) Then
205 JTF_DIAGNOSTIC_COREAPI.Line_Out('<BR/> Output of the above table is limited to the first '||(row_limit-1)||' rows to prevent an excessively big output file. <BR/>');
206 End If;
207 statusStr := 'SUCCESS';
208 isFatal := 'FALSE';
209
210 <<l_test_end>>
211 JTF_DIAGNOSTIC_COREAPI.Line_Out('<BR/><BR/>This data collection script completed as expected <BR/>');
212 report := JTF_DIAGNOSTIC_ADAPTUTIL.constructReport(statusStr,errStr,fixInfo,isFatal);
213 reportClob := JTF_DIAGNOSTIC_ADAPTUTIL.getReportClob;
214
215 EXCEPTION
216 when others then
217 JTF_DIAGNOSTIC_COREAPI.errorprint('Error: '||sqlerrm);
218 JTF_DIAGNOSTIC_COREAPI.ActionErrorPrint('If this error repeats, please contact Oracle Support Services');
219 statusStr := 'FAILURE';
220 errStr := sqlerrm ||' occurred in script. ';
221 fixInfo := 'Unexpected Exception in BOMDGEXB.pls';
222 isFatal := 'FALSE';
223 report := JTF_DIAGNOSTIC_ADAPTUTIL.constructReport(statusStr,errStr,fixInfo,isFatal);
224 reportClob := JTF_DIAGNOSTIC_ADAPTUTIL.getReportClob;
225 END runTest;
226
227 PROCEDURE getComponentName(name OUT NOCOPY VARCHAR2) IS
228 BEGIN
229 name := 'Bom Explosions Data Collection';
230 END getComponentName;
231
232 PROCEDURE getTestDesc(descStr OUT NOCOPY VARCHAR2) IS
233 BEGIN
234 descStr := ' This data collection script collects data about Bom Explosions Details. <BR/>
235 Input for field ItemId is mandatory. ';
236 END getTestDesc;
237
238 PROCEDURE getTestName(name OUT NOCOPY VARCHAR2) IS
239 BEGIN
240 name := 'Bom Explosions Data Collection';
241 END getTestName;
242
243 PROCEDURE getDependencies (package_names OUT NOCOPY JTF_DIAG_DEPENDTBL) IS
244 tempDependencies JTF_DIAG_DEPENDTBL;
245
246 BEGIN
247 package_names := JTF_DIAGNOSTIC_ADAPTUTIL.initDependencyTable;
248 END getDependencies;
249
250 PROCEDURE isDependencyPipelined (str OUT NOCOPY VARCHAR2) IS
251 BEGIN
252 str := 'FALSE';
253 END isDependencyPipelined;
254
255
256 PROCEDURE getOutputValues(outputValues OUT NOCOPY JTF_DIAG_OUTPUTTBL) IS
257 tempOutput JTF_DIAG_OUTPUTTBL;
258 BEGIN
259 tempOutput := JTF_DIAGNOSTIC_ADAPTUTIL.initOutputTable;
260 outputValues := tempOutput;
261 EXCEPTION
262 when others then
263 outputValues := JTF_DIAGNOSTIC_ADAPTUTIL.initOutputTable;
264 END getOutputValues;
265
266
267 PROCEDURE getDefaultTestParams(defaultInputValues OUT NOCOPY JTF_DIAG_INPUTTBL) IS
268 tempInput JTF_DIAG_INPUTTBL;
269 BEGIN
270 tempInput := JTF_DIAGNOSTIC_ADAPTUTIL.initinputtable;
271 tempInput := JTF_DIAGNOSTIC_ADAPTUTIL.addInput(tempInput,'OrgId','LOV-oracle.apps.bom.diag.lov.OrganizationLov');-- Lov name modified to OrgId for bug 6412260
272 tempInput := JTF_DIAGNOSTIC_ADAPTUTIL.addInput(tempInput,'ItemId','LOV-oracle.apps.bom.diag.lov.ItemLov'); -- Lov name modified to ItemId for bug 6412260
273 defaultInputValues := tempInput;
274 EXCEPTION
275 when others then
276 defaultInputValues := JTF_DIAGNOSTIC_ADAPTUTIL.initinputtable;
277 END getDefaultTestParams;
278
279 Function getTestMode return INTEGER IS
280 BEGIN
281 return JTF_DIAGNOSTIC_ADAPTUTIL.ADVANCED_MODE;
282
283 END getTestMode;
284
285 END BOM_DIAGUNITTEST_EXPDATA;