'complex' type in procedure signature prevents debugging

karelb

Member
I seem to loose my ability to test/debug a procedure, if one of the procedures in the declaration section of the package has a 'complex' parameter, where a complex type in my case is a record containing pl/SQL tables, amongst other things.

Is this a known issue? Is there a work around?
(the 'test' option disappears from the popup menu, for all public procedures, if a procedure taking a complex type is introduced into the interface).
 
Marco,

Here is the definitions of the actual type (distribution type itself is towards the end):

type distributionSumTable is table of c34_distribution_sum%rowtype index by binary_integer;

-- structure with account level values type distributionSumAccount is record
(
vestedPct number,

unwdContrValue number,
unwdPre87Value number,

totalValue number,
distrBasisValue number,
distrBasisUnwdContr number,
distrBasisUnwdPre87 number,
distrBasisEarnings number,
contribWDValue number,
pre87ContribWDValue number,
earningsWDValue number,
distributionValue number,
totalValue_postTrade number,
unwdContrValue_postTrade number,
unwdPre87Value_postTrade number,

distrBasisValue_postTrade number,
distrBasisUnwdContr_postTrade number,
distrBasisUnwdPre87_postTrade number,
distrBasisEarnings_postTrade number,

contribWDValue_postTrade number,
pre87ContribWDValue_postTrade number,
earningsWDValue_postTrade number
);
type distributionSumAccountDict is table of distributionSumAccount index by varchar2(10); -- index by acct_no

type distributionSumTotal is record
(
requestedValue number,
requestedPct number,
withdrawalAmt number,
ERStock_units number,
ERStock_pct number,
ERStockWD_units number
);

type participantInfo is record
(
age number,
dateOfBirth date,
dateOfDeath date,
participationStatus c32_participant_status.participation_status_id%type,
employmentStatus c30_employee_empt_status.int_empt_status_code_id%type,
terminationDate date,
taxationState c00_address.state%type,
taxationCountry c00_address.country_code_id%type,
ownerFlag c30_employee.owner_flag%type,
participationStartDate date,
participationEndDate date
);

type planInfo is record
(
planTypeId c25_plan.plan_type_id%type,
IRSNo c25_plan.irs_no%type,
QualifiedFlag c25_plan.qualified_flag%type
);

type withdrawalSequenceDetail is record
(
acctNo c25_benefit_account.acct_no%type,
balanceTypeId c62_acct_bal_wd_seq.balance_type_id%type,
benesPmtWdSeq c62_acct_bal_wd_seq.benes_pmt_wd_seq%type,
acctOrderNo c25_benefit_account.acct_order_no%type

);
type withdrawalSequence is table of withdrawalSequenceDetail index by binary_integer;

type custodians is table of c34_empl_custodian%rowtype index by binary_integer;

type disburseDetail is record
(
disb c34_benes_disb_details%rowtype,
r1099 c34_benes_1099r_details%rowType
);
type disburseDetails is table of disburseDetail index by binary_integer;

type distribution is record
(
processingDate date,
initiationDate date, modeling boolean,
tradingRequired boolean,
dryRun boolean,
balanceRequestNo number,
balanceRequestNo_postTrade number,

applyCertainty boolean,
useVestedOnly boolean,
computeTaxes boolean,
isReportable boolean,
payoffLoan boolean,
forfeitUnvested boolean,

elections c34_empl_benes_pmt%rowtype,

ds distributionSumTable,
dsAcct distributionSumAccountDict,
dsTotal distributionSumTotal,

tb c34_benes_tax_balance%rowtype,
ts c34_benes_tax_sum%rowtype,
cust custodians,
dd disburseDetails,

ppt participantInfo,
plan planInfo,

maxWithdrawalAmt number, -- (re)determined at start of calculations
WDSequence withdrawalSequence
);

A sample procedure would be:
procedure display( distr in p34_base.distribution );

(p34_base is where the records/types are defined)

Hope this helps
 
Back
Top