589: itemIdIn in varchar2) return number as
590: dynamicCursor integer;
591: dynamicQuery ame_util.longestStringType;
592: rowsFound integer;
593: tempAttributeValues1 dbms_sql.varchar2_table;
594: begin
595: if engIsTestTransaction then
596: if checkAttributeVariant(attributeIdIn) = ame_util.booleanTrue then
597: return (getTestVariantAttValue(attributeIdIn => attributeIdIn
604: /* fetch the value for real transactions using the dynamic query */
605: if(engAttributeVariant.exists(attributeIdIn))then
606: dynamicQuery := ame_util.removeReturns(stringIn => engAttributeQueries(attributeIdIn),
607: replaceWithSpaces => true);
608: dynamicCursor := dbms_sql.open_cursor;
609: dbms_sql.parse(dynamicCursor,
610: dynamicQuery,
611: dbms_sql.native);
612: if(instrb(dynamicQuery, ame_util.transactionIdPlaceholder) > 0) then
605: if(engAttributeVariant.exists(attributeIdIn))then
606: dynamicQuery := ame_util.removeReturns(stringIn => engAttributeQueries(attributeIdIn),
607: replaceWithSpaces => true);
608: dynamicCursor := dbms_sql.open_cursor;
609: dbms_sql.parse(dynamicCursor,
610: dynamicQuery,
611: dbms_sql.native);
612: if(instrb(dynamicQuery, ame_util.transactionIdPlaceholder) > 0) then
613: dbms_sql.bind_variable(dynamicCursor,
607: replaceWithSpaces => true);
608: dynamicCursor := dbms_sql.open_cursor;
609: dbms_sql.parse(dynamicCursor,
610: dynamicQuery,
611: dbms_sql.native);
612: if(instrb(dynamicQuery, ame_util.transactionIdPlaceholder) > 0) then
613: dbms_sql.bind_variable(dynamicCursor,
614: ame_util.transactionIdPlaceholder,
615: engTransactionId,
609: dbms_sql.parse(dynamicCursor,
610: dynamicQuery,
611: dbms_sql.native);
612: if(instrb(dynamicQuery, ame_util.transactionIdPlaceholder) > 0) then
613: dbms_sql.bind_variable(dynamicCursor,
614: ame_util.transactionIdPlaceholder,
615: engTransactionId,
616: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
617: end if;
615: engTransactionId,
616: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
617: end if;
618: if(instrb(dynamicQuery, ame_util2.itemClassPlaceHolder) > 0) then
619: dbms_sql.bind_variable(dynamicCursor,
620: ame_util2.itemClassPlaceHolder,
621: itemClassIn,
622: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
623: end if;
621: itemClassIn,
622: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
623: end if;
624: if(instrb(dynamicQuery, ame_util2.itemIdPlaceHolder) > 0) then
625: dbms_sql.bind_variable(dynamicCursor,
626: ame_util2.itemIdPlaceHolder,
627: itemIdIn,
628: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
629: end if;
626: ame_util2.itemIdPlaceHolder,
627: itemIdIn,
628: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
629: end if;
630: dbms_sql.define_array(dynamicCursor,
631: 1,
632: tempAttributeValues1,
633: ame_util.attributeValueTypeLength,
634: 1);
631: 1,
632: tempAttributeValues1,
633: ame_util.attributeValueTypeLength,
634: 1);
635: rowsFound := dbms_sql.execute(dynamicCursor);
636: loop
637: rowsFound := dbms_sql.fetch_rows(dynamicCursor);
638: dbms_sql.column_value(dynamicCursor,
639: 1,
633: ame_util.attributeValueTypeLength,
634: 1);
635: rowsFound := dbms_sql.execute(dynamicCursor);
636: loop
637: rowsFound := dbms_sql.fetch_rows(dynamicCursor);
638: dbms_sql.column_value(dynamicCursor,
639: 1,
640: tempAttributeValues1);
641: exit when rowsFound < 2;
634: 1);
635: rowsFound := dbms_sql.execute(dynamicCursor);
636: loop
637: rowsFound := dbms_sql.fetch_rows(dynamicCursor);
638: dbms_sql.column_value(dynamicCursor,
639: 1,
640: tempAttributeValues1);
641: exit when rowsFound < 2;
642: end loop;
639: 1,
640: tempAttributeValues1);
641: exit when rowsFound < 2;
642: end loop;
643: dbms_sql.close_cursor(dynamicCursor);
644: return(tempAttributeValues1(1));
645: else
646: /* this is not a variant attribute value would have fetched already in
647: fetchAttributeValues return the same */
4052: tempAttributeValue1 ame_util.attributeValueType;
4053: tempAttributeValue2 ame_util.attributeValueType;
4054: tempAttributeValue3 ame_util.attributeValueType;
4055: tempAttributeValueIndex integer;
4056: tempAttributeValues1 dbms_sql.varchar2_table;
4057: tempAttributeValues2 dbms_sql.varchar2_table;
4058: tempAttributeValues3 dbms_sql.varchar2_table;
4059: tempItemClassIndex integer;
4060: begin
4053: tempAttributeValue2 ame_util.attributeValueType;
4054: tempAttributeValue3 ame_util.attributeValueType;
4055: tempAttributeValueIndex integer;
4056: tempAttributeValues1 dbms_sql.varchar2_table;
4057: tempAttributeValues2 dbms_sql.varchar2_table;
4058: tempAttributeValues3 dbms_sql.varchar2_table;
4059: tempItemClassIndex integer;
4060: begin
4061: /*
4054: tempAttributeValue3 ame_util.attributeValueType;
4055: tempAttributeValueIndex integer;
4056: tempAttributeValues1 dbms_sql.varchar2_table;
4057: tempAttributeValues2 dbms_sql.varchar2_table;
4058: tempAttributeValues3 dbms_sql.varchar2_table;
4059: tempItemClassIndex integer;
4060: begin
4061: /*
4062: fetchInactives is necessary because we can't use a PL/SQL boolean variable
4226: ame_util.transactionIdPlaceholder in dynamicQuery get bound.
4227: */
4228: dynamicQuery := ame_util.removeReturns(stringIn => queryStrings(i),
4229: replaceWithSpaces => true);
4230: dynamicCursor := dbms_sql.open_cursor;
4231: dbms_sql.parse(dynamicCursor,
4232: dynamicQuery,
4233: dbms_sql.native);
4234: if(instrb(dynamicQuery, ame_util.transactionIdPlaceholder) > 0) then
4227: */
4228: dynamicQuery := ame_util.removeReturns(stringIn => queryStrings(i),
4229: replaceWithSpaces => true);
4230: dynamicCursor := dbms_sql.open_cursor;
4231: dbms_sql.parse(dynamicCursor,
4232: dynamicQuery,
4233: dbms_sql.native);
4234: if(instrb(dynamicQuery, ame_util.transactionIdPlaceholder) > 0) then
4235: dbms_sql.bind_variable(dynamicCursor,
4229: replaceWithSpaces => true);
4230: dynamicCursor := dbms_sql.open_cursor;
4231: dbms_sql.parse(dynamicCursor,
4232: dynamicQuery,
4233: dbms_sql.native);
4234: if(instrb(dynamicQuery, ame_util.transactionIdPlaceholder) > 0) then
4235: dbms_sql.bind_variable(dynamicCursor,
4236: ame_util.transactionIdPlaceholder,
4237: engTransactionId,
4231: dbms_sql.parse(dynamicCursor,
4232: dynamicQuery,
4233: dbms_sql.native);
4234: if(instrb(dynamicQuery, ame_util.transactionIdPlaceholder) > 0) then
4235: dbms_sql.bind_variable(dynamicCursor,
4236: ame_util.transactionIdPlaceholder,
4237: engTransactionId,
4238: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
4239: end if;
4237: engTransactionId,
4238: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
4239: end if;
4240: if(instrb(dynamicQuery, ame_util2.itemClassPlaceHolder) > 0) then
4241: dbms_sql.bind_variable(dynamicCursor,
4242: ame_util2.itemClassPlaceHolder,
4243: ame_util.headerItemClassName,
4244: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
4245: end if;
4243: ame_util.headerItemClassName,
4244: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
4245: end if;
4246: if(instrb(dynamicQuery, ame_util2.itemIdPlaceHolder) > 0) then
4247: dbms_sql.bind_variable(dynamicCursor,
4248: ame_util2.itemIdPlaceHolder,
4249: engTransactionId,
4250: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
4251: end if;
4248: ame_util2.itemIdPlaceHolder,
4249: engTransactionId,
4250: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
4251: end if;
4252: dbms_sql.define_array(dynamicCursor,
4253: 1,
4254: tempAttributeValues1,
4255: ame_util.attributeValueTypeLength,
4256: 1);
4254: tempAttributeValues1,
4255: ame_util.attributeValueTypeLength,
4256: 1);
4257: if(tempAttributeType = ame_util.currencyAttributeType) then
4258: dbms_sql.define_array(dynamicCursor,
4259: 2,
4260: tempAttributeValues2,
4261: ame_util.attributeValueTypeLength,
4262: 1);
4259: 2,
4260: tempAttributeValues2,
4261: ame_util.attributeValueTypeLength,
4262: 1);
4263: dbms_sql.define_array(dynamicCursor,
4264: 3,
4265: tempAttributeValues3,
4266: ame_util.attributeValueTypeLength,
4267: 1);
4265: tempAttributeValues3,
4266: ame_util.attributeValueTypeLength,
4267: 1);
4268: end if;
4269: rowsFound := dbms_sql.execute(dynamicCursor);
4270: loop
4271: rowsFound := dbms_sql.fetch_rows(dynamicCursor);
4272: dbms_sql.column_value(dynamicCursor,
4273: 1,
4267: 1);
4268: end if;
4269: rowsFound := dbms_sql.execute(dynamicCursor);
4270: loop
4271: rowsFound := dbms_sql.fetch_rows(dynamicCursor);
4272: dbms_sql.column_value(dynamicCursor,
4273: 1,
4274: tempAttributeValues1);
4275: if(tempAttributeType = ame_util.currencyAttributeType) then
4268: end if;
4269: rowsFound := dbms_sql.execute(dynamicCursor);
4270: loop
4271: rowsFound := dbms_sql.fetch_rows(dynamicCursor);
4272: dbms_sql.column_value(dynamicCursor,
4273: 1,
4274: tempAttributeValues1);
4275: if(tempAttributeType = ame_util.currencyAttributeType) then
4276: dbms_sql.column_value(dynamicCursor,
4272: dbms_sql.column_value(dynamicCursor,
4273: 1,
4274: tempAttributeValues1);
4275: if(tempAttributeType = ame_util.currencyAttributeType) then
4276: dbms_sql.column_value(dynamicCursor,
4277: 2,
4278: tempAttributeValues2);
4279: dbms_sql.column_value(dynamicCursor,
4280: 3,
4275: if(tempAttributeType = ame_util.currencyAttributeType) then
4276: dbms_sql.column_value(dynamicCursor,
4277: 2,
4278: tempAttributeValues2);
4279: dbms_sql.column_value(dynamicCursor,
4280: 3,
4281: tempAttributeValues3);
4282: end if;
4283: exit when rowsFound < 100;
4281: tempAttributeValues3);
4282: end if;
4283: exit when rowsFound < 100;
4284: end loop;
4285: dbms_sql.close_cursor(dynamicCursor);
4286: /* Make sure the attribute usage returned the right number of rows. */
4287: if(tempAttributeValues1.count <> engItemCounts(tempItemClassIndex)) then
4288: raise rowCountException;
4289: end if;
4315: when rowCountException then
4316: if(attributeCursor%isopen) then
4317: close attributeCursor;
4318: end if;
4319: if(dbms_sql.is_open(dynamicCursor)) then
4320: dbms_sql.close_cursor(dynamicCursor);
4321: end if;
4322: if(testTransCurrencyCursor%isopen) then
4323: close testTransCurrencyCursor;
4316: if(attributeCursor%isopen) then
4317: close attributeCursor;
4318: end if;
4319: if(dbms_sql.is_open(dynamicCursor)) then
4320: dbms_sql.close_cursor(dynamicCursor);
4321: end if;
4322: if(testTransCurrencyCursor%isopen) then
4323: close testTransCurrencyCursor;
4324: end if;
4350: when others then
4351: if(attributeCursor%isopen) then
4352: close attributeCursor;
4353: end if;
4354: if(dbms_sql.is_open(dynamicCursor)) then
4355: dbms_sql.close_cursor(dynamicCursor);
4356: end if;
4357: if(testTransCurrencyCursor%isopen) then
4358: close testTransCurrencyCursor;
4351: if(attributeCursor%isopen) then
4352: close attributeCursor;
4353: end if;
4354: if(dbms_sql.is_open(dynamicCursor)) then
4355: dbms_sql.close_cursor(dynamicCursor);
4356: end if;
4357: if(testTransCurrencyCursor%isopen) then
4358: close testTransCurrencyCursor;
4359: end if;
4522: tempAttributeValue1 ame_util.attributeValueType;
4523: tempAttributeValue2 ame_util.attributeValueType;
4524: tempAttributeValue3 ame_util.attributeValueType;
4525: tempAttributeValueIndex integer;
4526: tempAttributeValues1 dbms_sql.varchar2_table;
4527: tempAttributeValues2 dbms_sql.varchar2_table;
4528: tempAttributeValues3 dbms_sql.varchar2_table;
4529: tempItemClassIndex integer;
4530: begin
4523: tempAttributeValue2 ame_util.attributeValueType;
4524: tempAttributeValue3 ame_util.attributeValueType;
4525: tempAttributeValueIndex integer;
4526: tempAttributeValues1 dbms_sql.varchar2_table;
4527: tempAttributeValues2 dbms_sql.varchar2_table;
4528: tempAttributeValues3 dbms_sql.varchar2_table;
4529: tempItemClassIndex integer;
4530: begin
4531: open attributeCursor(applicationIdIn => engAmeApplicationId);
4524: tempAttributeValue3 ame_util.attributeValueType;
4525: tempAttributeValueIndex integer;
4526: tempAttributeValues1 dbms_sql.varchar2_table;
4527: tempAttributeValues2 dbms_sql.varchar2_table;
4528: tempAttributeValues3 dbms_sql.varchar2_table;
4529: tempItemClassIndex integer;
4530: begin
4531: open attributeCursor(applicationIdIn => engAmeApplicationId);
4532:
4686: ame_util.transactionIdPlaceholder in dynamicQuery get bound.
4687: */
4688: dynamicQuery := ame_util.removeReturns(stringIn => queryStrings(i),
4689: replaceWithSpaces => true);
4690: dynamicCursor := dbms_sql.open_cursor;
4691: dbms_sql.parse(dynamicCursor,
4692: dynamicQuery,
4693: dbms_sql.native);
4694: if(instrb(dynamicQuery, ame_util.transactionIdPlaceholder) > 0) then
4687: */
4688: dynamicQuery := ame_util.removeReturns(stringIn => queryStrings(i),
4689: replaceWithSpaces => true);
4690: dynamicCursor := dbms_sql.open_cursor;
4691: dbms_sql.parse(dynamicCursor,
4692: dynamicQuery,
4693: dbms_sql.native);
4694: if(instrb(dynamicQuery, ame_util.transactionIdPlaceholder) > 0) then
4695: dbms_sql.bind_variable(dynamicCursor,
4689: replaceWithSpaces => true);
4690: dynamicCursor := dbms_sql.open_cursor;
4691: dbms_sql.parse(dynamicCursor,
4692: dynamicQuery,
4693: dbms_sql.native);
4694: if(instrb(dynamicQuery, ame_util.transactionIdPlaceholder) > 0) then
4695: dbms_sql.bind_variable(dynamicCursor,
4696: ame_util.transactionIdPlaceholder,
4697: engTransactionId,
4691: dbms_sql.parse(dynamicCursor,
4692: dynamicQuery,
4693: dbms_sql.native);
4694: if(instrb(dynamicQuery, ame_util.transactionIdPlaceholder) > 0) then
4695: dbms_sql.bind_variable(dynamicCursor,
4696: ame_util.transactionIdPlaceholder,
4697: engTransactionId,
4698: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
4699: end if;
4697: engTransactionId,
4698: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
4699: end if;
4700: if(instrb(dynamicQuery, ame_util2.itemClassPlaceHolder) > 0) then
4701: dbms_sql.bind_variable(dynamicCursor,
4702: ame_util2.itemClassPlaceHolder,
4703: ame_util.headerItemClassName,
4704: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
4705: end if;
4703: ame_util.headerItemClassName,
4704: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
4705: end if;
4706: if(instrb(dynamicQuery, ame_util2.itemIdPlaceHolder) > 0) then
4707: dbms_sql.bind_variable(dynamicCursor,
4708: ame_util2.itemIdPlaceHolder,
4709: engTransactionId,
4710: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
4711: end if;
4708: ame_util2.itemIdPlaceHolder,
4709: engTransactionId,
4710: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
4711: end if;
4712: dbms_sql.define_array(dynamicCursor,
4713: 1,
4714: tempAttributeValues1,
4715: ame_util.attributeValueTypeLength,
4716: 1);
4714: tempAttributeValues1,
4715: ame_util.attributeValueTypeLength,
4716: 1);
4717: if(tempAttributeType = ame_util.currencyAttributeType) then
4718: dbms_sql.define_array(dynamicCursor,
4719: 2,
4720: tempAttributeValues2,
4721: ame_util.attributeValueTypeLength,
4722: 1);
4719: 2,
4720: tempAttributeValues2,
4721: ame_util.attributeValueTypeLength,
4722: 1);
4723: dbms_sql.define_array(dynamicCursor,
4724: 3,
4725: tempAttributeValues3,
4726: ame_util.attributeValueTypeLength,
4727: 1);
4725: tempAttributeValues3,
4726: ame_util.attributeValueTypeLength,
4727: 1);
4728: end if;
4729: rowsFound := dbms_sql.execute(dynamicCursor);
4730: loop
4731: rowsFound := dbms_sql.fetch_rows(dynamicCursor);
4732: dbms_sql.column_value(dynamicCursor,
4733: 1,
4727: 1);
4728: end if;
4729: rowsFound := dbms_sql.execute(dynamicCursor);
4730: loop
4731: rowsFound := dbms_sql.fetch_rows(dynamicCursor);
4732: dbms_sql.column_value(dynamicCursor,
4733: 1,
4734: tempAttributeValues1);
4735: if(tempAttributeType = ame_util.currencyAttributeType) then
4728: end if;
4729: rowsFound := dbms_sql.execute(dynamicCursor);
4730: loop
4731: rowsFound := dbms_sql.fetch_rows(dynamicCursor);
4732: dbms_sql.column_value(dynamicCursor,
4733: 1,
4734: tempAttributeValues1);
4735: if(tempAttributeType = ame_util.currencyAttributeType) then
4736: dbms_sql.column_value(dynamicCursor,
4732: dbms_sql.column_value(dynamicCursor,
4733: 1,
4734: tempAttributeValues1);
4735: if(tempAttributeType = ame_util.currencyAttributeType) then
4736: dbms_sql.column_value(dynamicCursor,
4737: 2,
4738: tempAttributeValues2);
4739: dbms_sql.column_value(dynamicCursor,
4740: 3,
4735: if(tempAttributeType = ame_util.currencyAttributeType) then
4736: dbms_sql.column_value(dynamicCursor,
4737: 2,
4738: tempAttributeValues2);
4739: dbms_sql.column_value(dynamicCursor,
4740: 3,
4741: tempAttributeValues3);
4742: end if;
4743: exit when rowsFound < 100;
4741: tempAttributeValues3);
4742: end if;
4743: exit when rowsFound < 100;
4744: end loop;
4745: dbms_sql.close_cursor(dynamicCursor);
4746: /* Make sure the attribute usage returned the right number of rows. */
4747: if(tempAttributeValues1.count <> engItemCounts(tempItemClassIndex)) then
4748: raise rowCountException;
4749: end if;
4775: when rowCountException then
4776: if(attributeCursor%isopen) then
4777: close attributeCursor;
4778: end if;
4779: if(dbms_sql.is_open(dynamicCursor)) then
4780: dbms_sql.close_cursor(dynamicCursor);
4781: end if;
4782: if(testTransCurrencyCursor%isopen) then
4783: close testTransCurrencyCursor;
4776: if(attributeCursor%isopen) then
4777: close attributeCursor;
4778: end if;
4779: if(dbms_sql.is_open(dynamicCursor)) then
4780: dbms_sql.close_cursor(dynamicCursor);
4781: end if;
4782: if(testTransCurrencyCursor%isopen) then
4783: close testTransCurrencyCursor;
4784: end if;
4801: when others then
4802: if(attributeCursor%isopen) then
4803: close attributeCursor;
4804: end if;
4805: if(dbms_sql.is_open(dynamicCursor)) then
4806: dbms_sql.close_cursor(dynamicCursor);
4807: end if;
4808: if(testTransCurrencyCursor%isopen) then
4809: close testTransCurrencyCursor;
4802: if(attributeCursor%isopen) then
4803: close attributeCursor;
4804: end if;
4805: if(dbms_sql.is_open(dynamicCursor)) then
4806: dbms_sql.close_cursor(dynamicCursor);
4807: end if;
4808: if(testTransCurrencyCursor%isopen) then
4809: close testTransCurrencyCursor;
4810: end if;
5125: item_class_id = itemClassIdIn
5126: order by item_id;
5127: dynamicCursor integer;
5128: itemIdQuery ame_util.longestStringType;
5129: itemIds dbms_sql.varchar2_table;
5130: lastEngItemIdIndex integer;
5131: rowsFound integer;
5132: tempIndex integer;
5133: tempItemIdQueries ame_util.longestStringList;
5189: end if;
5190: else
5191: itemIdQuery := ame_util.removeReturns(stringIn => tempItemIdQueries(i),
5192: replaceWithSpaces => true);
5193: dynamicCursor := dbms_sql.open_cursor;
5194: dbms_sql.parse(dynamicCursor,
5195: itemIdQuery,
5196: dbms_sql.native);
5197: if(instrb(itemIdQuery, ame_util.transactionIdPlaceholder, 1, 1) > 0) then
5190: else
5191: itemIdQuery := ame_util.removeReturns(stringIn => tempItemIdQueries(i),
5192: replaceWithSpaces => true);
5193: dynamicCursor := dbms_sql.open_cursor;
5194: dbms_sql.parse(dynamicCursor,
5195: itemIdQuery,
5196: dbms_sql.native);
5197: if(instrb(itemIdQuery, ame_util.transactionIdPlaceholder, 1, 1) > 0) then
5198: dbms_sql.bind_variable(dynamicCursor,
5192: replaceWithSpaces => true);
5193: dynamicCursor := dbms_sql.open_cursor;
5194: dbms_sql.parse(dynamicCursor,
5195: itemIdQuery,
5196: dbms_sql.native);
5197: if(instrb(itemIdQuery, ame_util.transactionIdPlaceholder, 1, 1) > 0) then
5198: dbms_sql.bind_variable(dynamicCursor,
5199: ame_util.transactionIdPlaceholder,
5200: engTransactionId,
5194: dbms_sql.parse(dynamicCursor,
5195: itemIdQuery,
5196: dbms_sql.native);
5197: if(instrb(itemIdQuery, ame_util.transactionIdPlaceholder, 1, 1) > 0) then
5198: dbms_sql.bind_variable(dynamicCursor,
5199: ame_util.transactionIdPlaceholder,
5200: engTransactionId,
5201: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
5202: end if;
5199: ame_util.transactionIdPlaceholder,
5200: engTransactionId,
5201: 50); /* ame_temp_transactions.transaction_id%length doesn't work here. */
5202: end if;
5203: dbms_sql.define_array(dynamicCursor,
5204: 1,
5205: itemIds,
5206: 100,
5207: 1);
5204: 1,
5205: itemIds,
5206: 100,
5207: 1);
5208: rowsFound := dbms_sql.execute(dynamicCursor);
5209: loop
5210: rowsFound := dbms_sql.fetch_rows(dynamicCursor);
5211: dbms_sql.column_value(dynamicCursor,
5212: 1,
5206: 100,
5207: 1);
5208: rowsFound := dbms_sql.execute(dynamicCursor);
5209: loop
5210: rowsFound := dbms_sql.fetch_rows(dynamicCursor);
5211: dbms_sql.column_value(dynamicCursor,
5212: 1,
5213: itemIds);
5214: exit when rowsFound < 100;
5207: 1);
5208: rowsFound := dbms_sql.execute(dynamicCursor);
5209: loop
5210: rowsFound := dbms_sql.fetch_rows(dynamicCursor);
5211: dbms_sql.column_value(dynamicCursor,
5212: 1,
5213: itemIds);
5214: exit when rowsFound < 100;
5215: end loop;
5212: 1,
5213: itemIds);
5214: exit when rowsFound < 100;
5215: end loop;
5216: dbms_sql.close_cursor(dynamicCursor);
5217: /* Copy the item IDs into engItemIds. */
5218: engItemCounts(i) := itemIds.count;
5219: if(itemIds.count > 0) then
5220: if(lastEngItemIdIndex is null) then
5454: outputIndex integer;
5455: parameters ame_util.longStringList;
5456: queryStrings ame_util.longestStringList;
5457: rowsFound integer;
5458: tempGroupMembers dbms_sql.Varchar2_Table;
5459: upperParameterNames ame_util.stringList;
5460: tempApproverType ame_util.stringType;
5461: tempApproverId ame_util.stringType;
5462: tempname wf_roles.name%type;
5517: outputIndex := engGroupMemberGroupIds.count; /* pre-increment */
5518: for i in 1 .. parameters.count loop
5519: tempGroupMembers.delete; -- for bug 4616570
5520: if(upperParameterNames(i) = upper(ame_util.approverOamGroupId)) then
5521: dynamicCursor := dbms_sql.open_cursor;
5522: dbms_sql.parse(dynamicCursor,
5523: ame_util.removeReturns(stringIn => queryStrings(i),
5524: replaceWithSpaces => true),
5525: dbms_sql.native);
5518: for i in 1 .. parameters.count loop
5519: tempGroupMembers.delete; -- for bug 4616570
5520: if(upperParameterNames(i) = upper(ame_util.approverOamGroupId)) then
5521: dynamicCursor := dbms_sql.open_cursor;
5522: dbms_sql.parse(dynamicCursor,
5523: ame_util.removeReturns(stringIn => queryStrings(i),
5524: replaceWithSpaces => true),
5525: dbms_sql.native);
5526: engGroupUseItemBind(groupIdIn) := ame_util.booleanFalse;
5521: dynamicCursor := dbms_sql.open_cursor;
5522: dbms_sql.parse(dynamicCursor,
5523: ame_util.removeReturns(stringIn => queryStrings(i),
5524: replaceWithSpaces => true),
5525: dbms_sql.native);
5526: engGroupUseItemBind(groupIdIn) := ame_util.booleanFalse;
5527: if(instrb(queryStrings(i),
5528: ame_util.transactionIdPlaceholder) > 0) then
5529: dbms_sql.bind_variable(dynamicCursor,
5525: dbms_sql.native);
5526: engGroupUseItemBind(groupIdIn) := ame_util.booleanFalse;
5527: if(instrb(queryStrings(i),
5528: ame_util.transactionIdPlaceholder) > 0) then
5529: dbms_sql.bind_variable(dynamicCursor,
5530: ame_util.transactionIdPlaceholder,
5531: engTransactionId,
5532: 50);
5533: end if;
5532: 50);
5533: end if;
5534: if(instrb(queryStrings(i),
5535: ame_util2.itemClassPlaceHolder) > 0) then
5536: dbms_sql.bind_variable(dynamicCursor,
5537: ame_util2.itemClassPlaceHolder,
5538: getItemClassName(itemClassIdIn => engAppRuleItemClassIds(engAppHandlerFirstIndex)),
5539: 50);
5540: engGroupUseItemBind(groupIdIn) := ame_util.booleanTrue;
5540: engGroupUseItemBind(groupIdIn) := ame_util.booleanTrue;
5541: end if;
5542: if(instrb(queryStrings(i),
5543: ame_util2.itemIdPlaceHolder) > 0) then
5544: dbms_sql.bind_variable(dynamicCursor,
5545: ame_util2.itemIdPlaceHolder,
5546: engAppAppItemIds(engAppHandlerFirstIndex),
5547: 50);
5548: engGroupUseItemBind(groupIdIn) := ame_util.booleanTrue;
5546: engAppAppItemIds(engAppHandlerFirstIndex),
5547: 50);
5548: engGroupUseItemBind(groupIdIn) := ame_util.booleanTrue;
5549: end if;
5550: dbms_sql.define_array(dynamicCursor,
5551: 1,
5552: tempGroupMembers,
5553: 100,
5554: 1);
5551: 1,
5552: tempGroupMembers,
5553: 100,
5554: 1);
5555: rowsFound := dbms_sql.execute(dynamicCursor);
5556: loop
5557: rowsFound := dbms_sql.fetch_rows(dynamicCursor);
5558: dbms_sql.column_value(dynamicCursor,
5559: 1,
5553: 100,
5554: 1);
5555: rowsFound := dbms_sql.execute(dynamicCursor);
5556: loop
5557: rowsFound := dbms_sql.fetch_rows(dynamicCursor);
5558: dbms_sql.column_value(dynamicCursor,
5559: 1,
5560: tempGroupMembers);
5561: exit when rowsFound < 100;
5554: 1);
5555: rowsFound := dbms_sql.execute(dynamicCursor);
5556: loop
5557: rowsFound := dbms_sql.fetch_rows(dynamicCursor);
5558: dbms_sql.column_value(dynamicCursor,
5559: 1,
5560: tempGroupMembers);
5561: exit when rowsFound < 100;
5562: end loop;
5559: 1,
5560: tempGroupMembers);
5561: exit when rowsFound < 100;
5562: end loop;
5563: dbms_sql.close_cursor(dynamicCursor);
5564: /*
5565: Dynamic groups' query strings may return rows having one of two forms:
5566: (1) approver_type:approver_id
5567: (2) orig_system:orig_system_id