Hi,
I did one customization i.e exporting ledger allocation rules in to excel .
Each allocation rule having multiple sources and destinations.
for each allocation rule source and destination information stored in excel as a single row
for that i written a code like below , but the performance is very slow , how can i increase the performance.
while select RuleId,AllocationDescription,EffectiveStartDate from legerAllocationRule
index hint RuleIdx
{
row++;
sysExcelWorkSheet.cells().item(row,1).value(legerAllocationRule.RuleId);
sysExcelWorksheet.cells().item(row,2).value(legerAllocationRule.AllocationDescription);
sysExcelWorksheet.cells().item(row,3).value(legerAllocationRule.EffectiveStartDate);
//Export Ledger Allocation Rule Source-Begin
while select RuleID, FieldSetting,SourceCriteria,DimensionCode from ledgerAllocationRuleSource
index hint RuleNumIdx
where ledgerAllocationRuleSource.RuleID==legerAllocationRule.RuleId
{
switch( ledgerAllocationRuleSource.FieldSetting)
{
case LedgerAllocationAccountDimension::Account:
sysExcelWorksheet.cells().item(row,4).value(ledgerAllocationRuleSource.SourceCriteria);
break;
case (LedgerAllocationAccountDimension::Dimension
&& ledgerAllocationRuleSource.DimensionCode==SysDimension::Department):
sysExcelWorksheet.cells().item(row,5).value(ledgerAllocationRuleSource.SourceCriteria);
break;
case (LedgerAllocationAccountDimension::Dimension
&& ledgerAllocationRuleSource.DimensionCode==SysDimension::Entity):
sysExcelWorksheet.cells().item(row,6).value(ledgerAllocationRuleSource.SourceCriteria);
break;
case (LedgerAllocationAccountDimension::Dimension
&& ledgerAllocationRuleSource.DimensionCode==SysDimension::Function):
sysExcelWorksheet.cells().item(row,7).value(ledgerAllocationRuleSource.SourceCriteria);
break;
case (LedgerAllocationAccountDimension::Dimension
&& ledgerAllocationRuleSource.DimensionCode==SysDimension::ICOP):
sysExcelWorksheet.cells().item(row,8).value(ledgerAllocationRuleSource.SourceCriteria);
break;
case (LedgerAllocationAccountDimension::Dimension
&& ledgerAllocationRuleSource.DimensionCode==SysDimension::Suffix):
sysExcelWorksheet.cells().item(row,9).value(ledgerAllocationRuleSource.SourceCriteria);
break;
case (LedgerAllocationAccountDimension::Dimension
&& ledgerAllocationRuleSource.DimensionCode==SysDimension::LocalCOA):
sysExcelWorksheet.cells().item(row,10).value(ledgerAllocationRuleSource.SourceCriteria);
break;
}
}
//Ledger Allocation Source-End
//Ledger Allocation Rule Destination
while select ToAccount,ToDimension,FixedPercent,RuleID from ledgerAllocationRuleDestination
index hint RuleNumIdx
where ledgerAllocationRuleDestination.RuleID==legerAllocationRule.RuleId
{
i++;
switch(i)
{
case i==1:
{
sysExcelWorksheet.cells().item(row,11).value(ledgerAllocationRuleDestination.ToAccount);
sysExcelWorksheet.cells().item(row,12).value(ledgerAllocationRuleDestination.ToDimension[1]);
sysExcelWorksheet.cells().item(row,13).value(ledgerAllocationRuleDestination.ToDimension[2]);
sysExcelWorksheet.cells().item(row,14).value(ledgerAllocationRuleDestination.ToDimension[3]);
sysExcelWorksheet.cells().item(row,15).value(ledgerAllocationRuleDestination.ToDimension[4]);
sysExcelWorksheet.cells().item(row,16).value(ledgerAllocationRuleDestination.ToDimension[5]);
sysExcelWorksheet.cells().item(row,17).value(ledgerAllocationRuleDestination.ToDimension[6]);
sysExcelWorksheet.cells().item(row,18).value(ledgerAllocationRuleDestination.FixedPercent);
break;
}
case i==2:
{
sysExcelWorksheet.cells().item(row,19).value(ledgerAllocationRuleDestination.ToAccount);
sysExcelWorksheet.cells().item(row,20).value(ledgerAllocationRuleDestination.ToDimension[1]);
sysExcelWorksheet.cells().item(row,21).value(ledgerAllocationRuleDestination.ToDimension[2]);
sysExcelWorksheet.cells().item(row,22).value(ledgerAllocationRuleDestination.ToDimension[3]);
sysExcelWorksheet.cells().item(row,23).value(ledgerAllocationRuleDestination.ToDimension[4]);
sysExcelWorksheet.cells().item(row,24).value(ledgerAllocationRuleDestination.ToDimension[5]);
sysExcelWorksheet.cells().item(row,25).value(ledgerAllocationRuleDestination.ToDimension[6]);
sysExcelWorksheet.cells().item(row,26).value(ledgerAllocationRuleDestination.FixedPercent);
break;
}
any one could help to increase the performance
Regards
veer