Skip to main content
Question

Running cust_age_analysis_rpi in pl/sql The Archive does not exist.


bpfrenchak
Do Gooder (Customer)
Forum|alt.badge.img+4

I am trying to run cust_age_analysis_rpi.Cust_Detail_Age_Analysis in pl/sql to generate the archive data for it, and then I am going to pull it into an SSRS report. I had done this years ago at another customer and this code worked, but not sure what I am doing wrong now. Getting this error.

“end;
Error report -
ORA-20111: Archive.FND_RECORD_NOT_EXIST: The Archive does not exist.
ORA-06512: at "IFSAPP.ERROR_SYS", line 140
ORA-06512: at "IFSAPP.ERROR_SYS", line 366
ORA-06512: at "IFSAPP.ARCHIVE_API", line 845
ORA-06512: at "IFSAPP.ARCHIVE_API", line 849
ORA-06512: at "IFSAPP.ARCHIVE_API", line 235
ORA-06512: at "IFSAPP.ARCHIVE_API", line 240
ORA-06512: at "IFSAPP.ARCHIVE_VARIABLE_API", line 1285
ORA-06512: at "IFSAPP.ARCHIVE_VARIABLE_API", line 1294
ORA-06512: at "IFSAPP.ARCHIVE_VARIABLE_API", line 1327
ORA-06512: at "IFSAPP.ARCHIVE_VARIABLE_API", line 1331
ORA-06512: at "IFSAPP.ARCHIVE_VARIABLE_API", line 1745
ORA-06512: at "IFSAPP.ARCHIVE_VARIABLE_API", line 1751
ORA-06512: at "IFSAPP.CUST_AGE_ANALYSIS_RPI", line 990
ORA-06512: at line 51

See code below

declare  
  --user_id_ varchar(100) := ;
        report_attr_ varchar2(32000);
        parameter_attr_ varchar2(32000);
        result_key_  NUMBER              := ifsapp.report_sys_seq.nextval;
        from_customer_ VARCHAR2(20)       := null;
        to_customer_ VARCHAR2(20)        := null;
        from_cust_group_ VARCHAR2(20)    := null;
        to_cust_group_ VARCHAR2(20)      := null;
        company_ varchar(100) := 'Company';
        analysis_date_  DATE := trunc(sysdate);
        first_interval_ NUMBER      := 30;
        second_interval_ NUMBER    := 30;
        third_interval_ NUMBER     := 30;
        --report_date_ DATE        := analysis_date_;
        --party_to_use_ VARCHAR2(100)       := Party_Type_API.Decode( 'CUSTOMER' );
        --report_title_ VARCHAR2(20)       := 'Detail';
        ledger_status_type_ VARCHAR2(50) := 'All';
        --ledger_status_ VARCHAR2(50)      := NVL(Ledger_Status_Type_API.Encode(ledger_status_type_), 'ALL');
        adv_inv_type_ VARCHAR2(200)       := 'Include';
        --adv_inv_type_db_ VARCHAR2(5)    := Advance_Invoice_Pay_Type_API.Encode(adv_inv_type_);
        excl_open_pay_docs_ VARCHAR2(20) := 'No';
        exclude_adv_pay_ VARCHAR2(5)    :='No';
        exclude_pay_on_acc_ VARCHAR2(5) := 'No';
        sort_order_ VARCHAR2(20)        := 'Customer ID';
        --sort_order_          := NVL(sort_order_,'CUSTID');
begin
        ifsapp.client_SYS.Clear_Attr(report_attr_);
        ifsapp.client_SYS.Clear_Attr(parameter_attr_);

        ifsapp.Client_SYS.Add_To_Attr('RESULT_KEY',result_key_, report_attr_);
        ifsapp.Client_SYS.Add_To_Attr('COMPANY',company_, parameter_attr_);
        ifsapp.Client_SYS.Add_To_Attr('FROM_CUSTOMER',from_customer_, parameter_attr_);
        ifsapp.Client_SYS.Add_To_Attr('TO_CUSTOMER',to_customer_, parameter_attr_);
        ifsapp.Client_SYS.Add_To_Attr('FROM_GROUP',from_cust_group_, parameter_attr_);
        ifsapp.Client_SYS.Add_To_Attr('TO_GROUP',to_cust_group_, parameter_attr_);
        ifsapp.Client_SYS.Add_To_Attr('ANALYSIS_DATE',analysis_date_, parameter_attr_);
        ifsapp.Client_SYS.Add_To_Attr('FIRST_INTERVAL',first_interval_, parameter_attr_);
        ifsapp.Client_SYS.Add_To_Attr('SECOND_INTERVAL',second_interval_, parameter_attr_);
        ifsapp.Client_SYS.Add_To_Attr('THIRD_INTERVAL',third_interval_, parameter_attr_);
        --Client_SYS.Add_To_Attr('REPORT_TITLE',report_title_, parameter_attr_);
        ifsapp.Client_SYS.Add_To_Attr('LEDGER_STATUS',ledger_status_type_, parameter_attr_);
        ifsapp.Client_SYS.Add_To_Attr('ADV_INV',adv_inv_type_, parameter_attr_);
        ifsapp.Client_SYS.Add_To_Attr('EXCLUDE_OPEN_PAY_DOCS',excl_open_pay_docs_, parameter_attr_);
        ifsapp.Client_SYS.Add_To_Attr('EXCLUDE_ADV_PAY',exclude_adv_pay_, parameter_attr_);
        ifsapp.Client_SYS.Add_To_Attr('EXCLUDE_PAY_ON_ACC',exclude_pay_on_acc_, parameter_attr_);
        ifsapp.Client_SYS.Add_To_Attr('GROUPING',sort_order_, parameter_attr_);

        --DBMS_OUTPUT.PUT_LINE(report_attr_);
        --DBMS_OUTPUT.PUT_LINE(parameter_attr_);
        ifsapp.cust_age_analysis_rpi.Cust_Detail_Age_Analysis(report_attr_, parameter_attr_);
        ifsapp.archive_distribution_api.connect_instance(result_key_, 'IFSAPP', (sysdate +365));
end;

4 replies

Forum|alt.badge.img+3
  • Do Gooder (Customer)
  • 14 replies
  • February 28, 2025

Did you ever get this to work? I have a similar need to run this through PL/SQL.


bpfrenchak
Do Gooder (Customer)
Forum|alt.badge.img+4
  • Author
  • Do Gooder (Customer)
  • 16 replies
  • February 28, 2025

Yes I did. Believe this was the code.

 

DECLARE
   --user_id_ varchar(100) := ;
   report_attr_    VARCHAR2(32000);
   parameter_attr_ VARCHAR2(32000);
   --result_key_      NUMBER := ifsapp.report_sys_seq.nextval;
   result_key_      NUMBER;
   report_id_       VARCHAR(50) := 'CUST_AGE_ANALYSIS_REP';
   from_customer_   VARCHAR2(20) := NULL;
   to_customer_     VARCHAR2(20) := NULL;
   from_cust_group_ VARCHAR2(20) := NULL;
   to_cust_group_   VARCHAR2(20) := NULL;
   company_         VARCHAR(100) := 'ABC';
   analysis_date_   DATE := TRUNC(SYSDATE);
   first_interval_  NUMBER := 30;
   second_interval_ NUMBER := 30;
   third_interval_  NUMBER := 30;
   based_on_        VARCHAR(50) := 'Detail';
   report_date_ DATE := analysis_date_;
   --party_to_use_ VARCHAR2(100) := Party_Type_API.Decode( 'CUSTOMER' );
   report_title_ VARCHAR2(20) := 'Detail';
   ledger_status_type_ VARCHAR2(50) := 'All';
   --ledger_status_ VARCHAR2(50) := NVL(Ledger_Status_Type_API.Encode(ledger_status_type_), 'ALL');
   adv_inv_type_ VARCHAR2(200) := 'Include';
   --adv_inv_type_db_ VARCHAR2(5) := Advance_Invoice_Pay_Type_API.Encode(adv_inv_type_);
   excl_open_pay_docs_ VARCHAR2(20) := 'No';
   exclude_adv_pay_    VARCHAR2(5) := 'No';
   exclude_pay_on_acc_ VARCHAR2(5) := 'No';
   sort_order_         VARCHAR2(20) := 'Customer ID';
   --sort_order_          := NVL(sort_order_,'CUSTID');
   d_list_     VARCHAR2(10);
   chr_        VARCHAR2(10);
   user_       VARCHAR2(10) := 'IFSAPP';
   print_attr_ VARCHAR2(20) := '';

   CURSOR get_us IS
      SELECT CHR(31)
      FROM   dual;

BEGIN
   ifsapp.client_SYS.Clear_Attr(report_attr_);
   ifsapp.client_SYS.Clear_Attr(parameter_attr_);
   ifsapp.client_SYS.Clear_Attr(d_list_);

   --ifsapp.Client_SYS.Add_To_Attr('RESULT_KEY', result_key_, report_attr_);
   ifsapp.Client_SYS.Add_To_Attr('REPORT_ID', report_id_, report_attr_);

   ifsapp.Client_SYS.Add_To_Attr('COMPANY', company_, parameter_attr_);
   ifsapp.Client_SYS.Add_To_Attr('FROM_CUSTOMER', from_customer_, parameter_attr_);
   ifsapp.Client_SYS.Add_To_Attr('TO_CUSTOMER', to_customer_, parameter_attr_);
   ifsapp.Client_SYS.Add_To_Attr('FROM_GROUP', from_cust_group_, parameter_attr_);
   ifsapp.Client_SYS.Add_To_Attr('TO_GROUP', to_cust_group_, parameter_attr_);
   ifsapp.Client_SYS.Add_To_Attr('ANALYSIS_DATE', analysis_date_, parameter_attr_);
   ifsapp.Client_SYS.Add_To_Attr('FIRST_INTERVAL', first_interval_, parameter_attr_);
   ifsapp.Client_SYS.Add_To_Attr('SECOND_INTERVAL', second_interval_, parameter_attr_);
   ifsapp.Client_SYS.Add_To_Attr('THIRD_INTERVAL', third_interval_, parameter_attr_);
   Client_SYS.Add_To_Attr('REPORT_TITLE',report_title_, parameter_attr_);
   ifsapp.Client_SYS.Add_To_Attr('REPORT_BASED_ON', based_on_, parameter_attr_);
   ifsapp.Client_SYS.Add_To_Attr('LEDGER_STATUS', ledger_status_type_, parameter_attr_);
   ifsapp.Client_SYS.Add_To_Attr('ADV_INV', adv_inv_type_, parameter_attr_);
   ifsapp.Client_SYS.Add_To_Attr('EXCLUDE_OPEN_PAY_DOCS', excl_open_pay_docs_, parameter_attr_);
   ifsapp.Client_SYS.Add_To_Attr('EXCLUDE_ADV_PAY', exclude_adv_pay_, parameter_attr_);
   ifsapp.Client_SYS.Add_To_Attr('EXCLUDE_PAY_ON_ACC', exclude_pay_on_acc_, parameter_attr_);
   ifsapp.Client_SYS.Add_To_Attr('GROUPING', sort_order_, parameter_attr_);

   --ifsapp.Client_SYS.Add_To_Attr('IFSAPP', user_, d_list_);

   dbms_output.put_line(report_attr_);
   dbms_output.put_line(parameter_attr_);

   OPEN get_us;
   FETCH get_us
      INTO chr_;
   CLOSE get_us;

   d_list_ := concat(user_, chr_);

   --dbms_output.put_line(d_list_);

   ifsapp.archive_API.New_Client_Report(result_key_, report_attr_, parameter_attr_, d_list_, print_attr_);

   ifsapp.Client_SYS.Add_To_Attr('RESULT_KEY', result_key_, report_attr_);

   --ifsapp.cust_age_analysis_rpi.cust_age_analysis(report_attr_, parameter_attr_);
   ifsapp.archive_distribution_API.connect_instance(result_key_, 'IFSAPP', (SYSDATE + 365));
END;


bpfrenchak
Do Gooder (Customer)
Forum|alt.badge.img+4
  • Author
  • Do Gooder (Customer)
  • 16 replies
  • March 3, 2025

First version was from IFS 9. Last version was for IFS 10 if that helps anyone.


Forum|alt.badge.img+19

As an alternative, maybe look at customer open balance history?   It is rather impressive. 


Reply


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings