Total Pageviews

Saturday, 24 June 2023

EBS : Submit XML Publisher report from backend : Oracle Apps : RTF Layout

How to submit RTF Layout from Backend


DECLARE

   l_bool         BOOLEAN;

   l_request_id   NUMBER;

BEGIN

   fnd_global.apps_initialize (user_id           => 9999,--fnd_global.user_id,

                               resp_id           => 20560,--fnd_global.resp_id,

                               resp_appl_id      => 706--fnd_global.resp_appl_id

                              );

   l_bool :=

      fnd_request.add_layout (template_appl_name      => '''TECHHARDS''',

                              template_code           => '''TECHHARDS_OSP_COMP_SHRTG''',

                              template_language       => '''EN''',

                              template_territory      => '''IN''',

                              output_format           => '''PDF'''

                             );

   l_request_id :=

      fnd_request.submit_request (application      => '''TECHHARDS''',

                                  program          => '''TECHHARDS_OSP_COMP_SHRTG''',

                                  description      => '',

                                  start_time       => SYSDATE,

                                  sub_request      => NULL

                                 -- argument1        => fnd_global.org_id,

                                 -- argument2        => p_inv_id

                                 );


   IF l_request_id = 0

   THEN

   DBMS_OUTPUT.put_line (l_request_id);

     -- raise_application_error (-20001, '''Dear Unable to Submit Report''');

     

   END IF;


   DBMS_OUTPUT.put_line (l_request_id);

   COMMIT;

END;

=========================================================================
#Oracle #Oracle Apps#Oracle Database#Oracle Reports #Oracle PLSQL report #fnd_global.apps_initialize #fnd_request.submit_request #fnd_request.add_layout #Bi Publisher

Oracle APEX : Interview Question

 Oracle APEX : Interview Question


1.Session state in APEX?
Ans: A Session state enables programmer to store and retrieve values for a user as the user navigates between different application pages.


2.Session state protection used for in APEX?
Ans:This is a built-in functionality that prevents hackers from tampering with the URLs within your application.

3.What is Session ID?
Ans:A session ID is a unique number assigned a specific user for the duration of that user's visit.

4.Session?
Ans: A session is a logical construct that establishes persistence (or stateful behavior) across page views. Each session is assigned a unique identifier. The Application Express engine uses this identifier (or session ID) to store and retrieve an application's working set of data (or session state) before and after each page view.

5.What is Authorization Scheme and its types?

6. Difference between Page Items,Application Items and Global Page Items

Page Items: This item create in the Page Level. 
Application Items: This Items that are created at Application Level.
Global Page Items: This Global page of your application functions as a master page. You can add a separate Global page for each user interface. The Application Express engine renders all components you add to a Global page on every page within your application. 


***********************************************************************************
#Oracle apex #Apex #Interview Question

Thursday, 22 June 2023

EBS : API to Register Table in Oracle APPS

 EBS : API to Register Table in Oracle APPS

This section will guide you how to register tables to be used in Oracle Alerts and Flexfields with Oracle Applications. We will be learning about Procedures of AD_DD Package like procedure REGISTER_TABLE, REGISTER_COLUMN, DELETE_COLUMN, DELETE_TABLE,

Introduction

EBS comes with lots of seeded database tables, there can be multiple applications in which one might be required to create a custom table to be used. Flexfields (like KFF, DFF etc ) and Oracle Alert are the only features or products that require the custom tables to be registered in Oracle Apps

We can register custom application tables using a PL/SQL procedure in the AD_DD package.

We only need to register those tables (and all of their columns) that will be used. Application Object Library tables should you later modify your tables. If you alter the table later, then you may need to include revised or new calls to the table registration routines.

Alter registration steps:-

  • a)      a) delete the registration
  • b)     b) Re-register the table or column. Delete the column registration first, then the table registration.
  • c)      c) Commit your changes.


Example of calling AD_DD Package

1) Register Table

BEGIN

AD_DD.REGISTER_TABLE ('FND','HARDTECH','T');

END;

2) Register Column

BEGIN

AD_DD.REGISTER_COLUMN ('FND','TEST_DESC','RESOURCE_NAME', 1,'VARCHAR2', 150, 'Y', 'N');

End;







Procedures in the AD_DD Package

1. Procedure REGISTER_TABLE

procedure register_table ( p_appl_short_name in varchar2,

p_tab_name in varchar2,

p_tab_type in varchar2,

p_next_extent in number default 512,

p_pct_free in number default 10,

p_pct_used in number default 70);

 

2. Procedure REGISTER_COLUMN

procedure register_column (p_appl_short_name in varchar2,

p_tab_name in varchar2,

p_col_name in varchar2,

p_col_seq in number,

p_col_type in varchar2,

p_col_width in number,

p_nullable in varchar2,

p_translate in varchar2,

p_precision in number default null,

p_scale in number default null);

3. Procedure DELETE_TABLE

procedure delete_table (p_appl_short_name in varchar2,

p_tab_name in varchar2);

4. Procedure DELETE_COLUMN

procedure delete_column (p_appl_short_name in varchar2,

p_tab_name in varchar2,

p_col_name in varchar2);

VARIABLE

NAMES

 

DESCRIPTION

 

p_appl_short_name The application short name of the application that owns the table

 

(usually your custom application).

 

p_tab_name The name of the table (in uppercase letters).

 

p_tab_type Use ’T’ if it is a transaction table (almost all application tables), or

’S’ for a ”seed data” table (used only by Oracle Applications

products).

 

p_pct_free The percentage of space in each of the table’s blocks reserved

for future updates to the table (1–99). The sum of p_pct_free and

p_pct_used must be less than 100.

 

p_pct_used Minimum percentage of used space in each data block of the

table (1–99). The sum of p_pct_free and p_pct_used must be

less than 100.

 

p_col_name The name of the column (in uppercase letters).

 

p_col_seq The sequence number of the column in the table (the order in

 

which the column appears in the table definition).

 

p_col_type The column type (’NUMBER’, ’VARCHAR2’, ’DATE’, etc.).

 

p_col_width The column size (a number). Use 9 for DATE columns, 38 for

 

NUMBER columns (unless it has a specific width).

 

p_nullable Use ’N’ if the column is mandatory or ’Y’ if the column allows null

 

values.

 

p_translate Use ’Y’ if the column values will be translated for an Oracle

Applications product release (used only by Oracle Applications

products) or ’N’ if the

values are not translated (most application columns).

 

p_next_extent The next extent size, in kilobytes. Do not include the ’K’.

 

p_precision The total number of digits in a number.

 

p_scale The number of digits to the right of the decimal point in a

 

number.

 

Example of Using the AD_DD Package

Here is an example of using the AD_DD package to register a flexfield table and its columns:

Though the use of AD_DD package does not require that the table should exist first, it is always

better to create one and proceed further. Use the below mentioned script to create the dummy

table. Use the APPS User ID to run the below mentioned queries from TOAD or SQL*PLUS.

CREATE TABLE TEST_DESC ( RESOURCE_NAME VARCHAR2 (150),

RESOURCE_TYPE VARCHAR2 (100),

ATTRIBUTE_CATEGORY VARCHAR2 (40),

ATTRIBUTE1 VARCHAR2 (150),

ATTRIBUTE2 VARCHAR2 (150),

ATTRIBUTE3 VARCHAR2 (150),

ATTRIBUTE4 VARCHAR2 (150),

ATTRIBUTE5 VARCHAR2 (150),

 

ATTRIBUTE6 VARCHAR2 (150)

);

Thursday, 8 June 2023

EBS : Password change from backend in Oracle APPS

 How to changes Password from Backend in Oracle Apps

DECLARE
           V_pwdchanged BOOLEAN;

      BEGIN
         v_pwdchanged := fnd_user_pkg.changepassword('TCHHARDS','12345');
         IF v_pwdchanged THEN
         DBMS_OUTPUT.put_line('password changed Sucessfully');
         ELSE
         DBMS_OUTPUT.put_line('Failed to change the Password');
        END IF;
      END;
      

*********************************************************************************
#Oracle Apps #EBS #fnd_user_pkg #Password 

EBS : PLSQL : How to generate ID based on input date : Oracle Apps

How to generate ID based on input date in PLSQL  

CREATE OR REPLACE FUNCTION generate_estqs_id (p_quote_date IN DATE)

   RETURN NUMBER

IS

   lv_month            NUMBER;

   lv_year             NUMBER;

   lv_year_next        NUMBER;

   lv_max_no           NUMBER;

   lv_from_date        DATE;

   lv_to_date          DATE;

   lv_quote_date       DATE;

   lv_estimtation_id   NUMBER;

BEGIN

   lv_quote_date := p_quote_date;


   SELECT TO_CHAR (lv_quote_date, 'MM')

     INTO lv_month

     FROM DUAL;


   DBMS_OUTPUT.put_line ('lv_month' || '-' || lv_month);


   IF lv_month IN ('01', '02', '03')

   THEN

      SELECT TO_CHAR (lv_quote_date, 'YY') - 1

        INTO lv_year

        FROM DUAL;

   ELSE

      SELECT TO_CHAR (lv_quote_date, 'YY')

        INTO lv_year

        FROM DUAL;

   END IF;


   lv_year_next := lv_year + 1;

   DBMS_OUTPUT.put_line (lv_year || '-' || lv_year_next);


   SELECT TO_CHAR ('01-Apr-' || lv_year), TO_CHAR ('31-Mar-' || lv_year_next)

     INTO lv_from_date, lv_to_date

     FROM DUAL;


   DBMS_OUTPUT.put_line (lv_from_date || '-' || lv_to_date);


   SELECT   NVL (SUBSTR (NVL (MAX (estimation_id), 0),

                         5,

                         LENGTH (MAX (estimation_id))

                        ),

                 0

                )

          + 1

     INTO lv_max_no

     FROM xx_estqs_hdr

    WHERE TRUNC (creation_date) BETWEEN lv_from_date AND lv_to_date;


   DBMS_OUTPUT.put_line ('lv_max_no' || '-' || lv_max_no);

   --lv_ESTIMTATION_id := lv_year || lv_year_next || '0000000' || lv_max_no;

   lv_estimtation_id := lv_year || lv_year_next || LPAD (lv_max_no, 8, 0);

   RETURN lv_estimtation_id;

EXCEPTION

   WHEN OTHERS

   THEN

      RETURN 'Unable to Generate ESTIMTATION Id';

END;

EBS : AP : Query to Get List Of Approver for IExpense Transaction using API : Oracle Apps

 Query to Get List Of Approver for IExpense Transaction using API  

Dynamic Approver List for AME



DECLARE
   p_application_id        NUMBER;
   p_transaction_type      VARCHAR2 (200);
   p_transaction_id        VARCHAR2 (200);
   p_apprs_view_type       VARCHAR2 (200);
   p_coa_insertions_flag   VARCHAR2 (200);
   p_ame_approvers_list    ame_approver_record2_table_ss ;---apps.ame_dynamic_approval_pkg.ame_approver_record2_table_ss;
   p_ame_order_type_list  ame_insertion_record2_table_ss:= ame_insertion_record2_table_ss(); --apps.ame_dynamic_approval_pkg.ame_insertion_record2_table_ss;
   p_all_approvers_count   VARCHAR2 (200);
   p_warning_msg_name      VARCHAR2 (200);
   p_error_msg_text        VARCHAR2 (200);
BEGIN
   p_application_id := 200;
   p_transaction_type := 'APEXP';
   p_transaction_id := 99878;
   p_apprs_view_type := 'Active';
   p_coa_insertions_flag := NULL;
   -- P_AME_APPROVERS_LIST := NULL;  Modify the code to initialize this parameter
   -- P_AME_ORDER_TYPE_LIST := NULL;  Modify the code to initialize this parameter
   p_all_approvers_count := NULL;
   p_warning_msg_name := NULL;
   p_error_msg_text := NULL;
   p_ame_approvers_list := ame_approver_record2_table_ss();
  apps.ame_dynamic_approval_pkg.get_ame_apprs_and_ins_list
                                                      (p_application_id,
                                                       p_transaction_type,
                                                       p_transaction_id,
                                                       p_apprs_view_type,
                                                       p_coa_insertions_flag,
                                                       p_ame_approvers_list,
                                                       p_ame_order_type_list,
                                                       p_all_approvers_count,
                                                       p_warning_msg_name,
                                                       p_error_msg_text
                                                      );
   DBMS_OUTPUT.put_line (   'Alam:-'
                         || p_all_approvers_count
                         || ','
                         || p_warning_msg_name
                         || ','
                         || p_error_msg_text
                        );
                        
                        
 IF(p_ame_approvers_list.count() ) > 0 THEN

FOR i IN 1..p_ame_approvers_list.count() LOOP

dbms_output.put_line(' approver_order_number =>'|| p_ame_approvers_list(i).approver_order_number
||' **** display_name =>'||p_ame_approvers_list(i).display_name
--' **** Approver Category =>'||p_ame_approvers_list(i).approver_category
--' **** approval_status =>' ||p_ame_approvers_list(i).approval_status
--' **** source =>'||p_ame_approvers_list(i).source 
);

END LOOP;

ELSE

dbms_output.put_line(' No Approver Found');

END IF;

END;                        
  -- COMMIT;
   
   
END;

MACROS : How to Remove tabs and carriage returns from worksheet cells in Excel

Remove tabs and carriage returns from worksheet cells

Sub CleanUp()

Dim TheCell As Range

 On Error Resume Next


 For Each TheCell In ActiveSheet.UsedRange

   With TheCell

     If .HasFormula = False Then

       .Value = Application.WorksheetFunction.Clean(.Value)

     End If

   End With

 Next TheCell

End Sub

 

Wednesday, 7 June 2023

EBS : PA Costing : Steps of Project Costing Expenditure Booking

 

Steps of Project Costing of Expenditure Booking

  1. Expenditure Entered      

 

select * from pa_expenditures_all where EXPENDITURE_GROUP ='Test' order by creation_date desc;

select * from pa_expenditure_items_all where EXPENDITURE_ID=878744;

 

  1. PRC: Distribute Labor Costs -> program ran to generate cost.

 

select acct_event_id,pcd.* from pa_cost_distribution_lines_all pcd where EXPENDITURE_item_ID in (1840951,1840952,1840953);

 

  1. PRC: Generate Cost Accounting Events -> Program ran to generate costing events and data will be generated in XLA

 

a.       Update eventid in pa_cost_distribution_lines_all

b.      Populate data in -> select * from xla_events where event_id in (36442497,36442498,36442499);

 

  1. PRC: Create Accounting -> populate data in subledger

 

select * from xla_ae_headers where event_id in (36442497,36442498,36442499)

order by creation_date desc;

select * from xla_ae_lines where  AE_HEADER_ID in (35023524,35023525,35023526);

order by creation_date desc;

 

  1. Journal Import -> create journal in GL and post it.

 

select * from gl_je_lines where reference_6 in ('36442497','36442498','36442499') --event_id

and reference_7 in ('35023524','35023525','35023526')    --ae_header_id

and je_header_id in (1685653,1685655,1685654)

 

select * from gl_je_headers  where je_category='Labor Cost' and je_source ='Project Accounting'

and je_header_id in (1685653,1685655,1685654) order by creation_date desc;

EBS : API to run Process Transaction in Oracle Apps : Oracle Apps

API to run Process Transaction in Oracle Apps

 This request will pick data from MTL Transaction Interface Table and insert into Standard Table. Below code is used to submit this request from backend.

v_out :=

                                 inv_txn_manager_pub.process_transactions

                                                              (p_api_version           => 1.0,

                                                               p_init_msg_list         => fnd_api.g_true,

                                                               p_commit                => fnd_api.g_true,

                                                               p_validation_level      => fnd_api.g_valid_level_full,

                                                               x_return_status         => v_return_status,

                                                               x_msg_count             => v_msg_count,

                                                               x_msg_data              => v_msg_data,

                                                               x_trans_count           => v_trans_count,

                                                               p_table                 => 1,

                                                               p_header_id             => r_txn_rec.transaction_header_id

                                                              );

 

FUSION: Purchasing Query

  1) ---------CPA to PO Amount---------- select poh.segment1, (select sum(nvl(cpol.quantity,1)* cpol.unit_price) from po_headers_all cpoh,po...