Sunday, 11 February 2018

Approval Hierarchy is skipping a approver while the position is in approval hierarchy

There can be two reasons for this problem.

i. Oracle user can be inactivated in application.
ii. if the oracle application user is active then there can be two assignments of an employee and both are active and other assignment is in other organization with the same position.

The above problem i encountered in R12.1.1 and R12.1.3

Thursday, 1 June 2017

HRMS Batch Element Entries API R12.1.3

---------------BATCH HEADER UPLOADING-------------------------------
DECLARE
   l_batch_id                NUMBER := NULL;
   l_object_version_number   NUMBER := NULL;
BEGIN
   pay_batch_element_entry_api.create_batch_header (
      p_session_date            => TRUNC (SYSDATE),
      p_batch_name              => 'BATCH_THROUGH_API',
      p_business_group_id       => 81, --relevant business group id
      p_action_if_exists        => 'I',
      p_batch_id                => l_batch_id,
      p_object_version_number   => l_object_version_number
   );
   COMMIT;
   DBMS_OUTPUT.put_line (l_batch_id || ': SUCCESS');
EXCEPTION
   WHEN OTHERS
   THEN
      DBMS_OUTPUT.put_line ('Main Exception: ' || SQLERRM);
END;
---------------BATCH HEADER UPLOADING-------------------------------

-- To Create Batch Line (Batch Element Entry)-----------------------
DECLARE
   v_eff_start_date                DATE := NULL;
   v_eff_end_date                  DATE := NULL;
   v_input_value_id                NUMBER := NULL;
   v_element_link_id               NUMBER := NULL;
   v_element_name                  VARCHAR2 (500) := NULL;
   v_element_type_id               NUMBER := NULL;
   v_batch_id                      NUMBER := NULL;
   v_batch_line_id                 NUMBER := NULL;
   v_batch_object_version_number   NUMBER := NULL;

CURSOR emp_details
is
Select '3601' assignment_number, '1919' assignment_id
from dual; -- table where your data is uploaded.
--You can use in above statement you relevant data for all the records you need to enter in batch entry

BEGIN
 
   fnd_global.APPS_INITIALIZE(user_id => 1741, resp_id => 50678, resp_appl_id => 800); --non mandetory
 
   -- BLOCK to Get Batch ID
   BEGIN
      SELECT   batch_id
        INTO   v_batch_id
        FROM   pay_batch_headers pbh
       WHERE   TRIM (pbh.batch_name) = 'BATCH_THROUGH_API'; --Same as used above
   EXCEPTION
      WHEN OTHERS
      THEN
         NULL;
   END;
 
    -- Get Element Details as per your Element
   BEGIN
      SELECT   pivf.input_value_id,
               pelf.element_link_id,
               petf.element_name,
               petf.element_type_id
        INTO   v_input_value_id,
               v_element_link_id,
               v_element_name,
               v_element_type_id
        FROM   pay_element_types_f petf,
               pay_element_links_f pelf,
               pay_input_values_f pivf
       WHERE   pelf.element_type_id = petf.element_type_id
               AND TRUNC (SYSDATE) BETWEEN petf.effective_start_date
                                       AND  petf.effective_end_date
               AND TRUNC (SYSDATE) BETWEEN pelf.effective_start_date
                                       AND  pelf.effective_end_date
               AND pelf.payroll_id = 12 --<<Your payroll id>>
               AND pivf.element_type_id = pivf.element_type_id
               AND pivf.NAME = 'Hours'--<<Name of the Input value>>
               AND TRUNC (SYSDATE) BETWEEN pivf.effective_start_date
                                       AND  pivf.effective_end_date
               AND pivf.element_type_id = pelf.element_type_id
               AND petf.element_name = 'ELEMENT NAME'; --<<Name of the Element>>
   EXCEPTION
      WHEN OTHERS
      THEN
         v_input_value_id := NULL;
         v_element_link_id := NULL;
   END;
FOR i IN emp_details
LOOP
BEGIN
   -- API to create ELEMENT
   pay_batch_element_entry_api.create_batch_line (
      p_session_date            => TRUNC (SYSDATE),
      p_batch_id                => v_batch_id,
      p_assignment_id           => i.assignment_id,
      p_assignment_number       => i.assignment_number,
      p_date_earned             => TRUNC (SYSDATE),
      p_effective_date          => TRUNC (SYSDATE),
      p_effective_start_date    => v_eff_start_date,
      p_effective_end_date      => v_eff_end_date,
      p_element_name            => v_element_name,
      p_element_type_id         => v_element_type_id,
      p_value_2                 => 3,
      p_batch_line_id           => v_batch_line_id,
      p_object_version_number   => v_batch_object_version_number
   );
   COMMIT;
   DBMS_OUTPUT.put_line (v_batch_id || ': SUCCESS');
   DBMS_OUTPUT.put_line (v_batch_line_id || ': SUCCESS');
EXCEPTION
   WHEN OTHERS
   THEN
      DBMS_OUTPUT.put_line ('Exception for '||i.assignment_number||' : '||SQLERRM);
END;
END LOOP;
EXCEPTION
   WHEN OTHERS
   THEN
      DBMS_OUTPUT.put_line ('Main Exception: ' || SQLERRM);
END;
-- To Create Batch Line (Batch Element Entry)-----------------------

HRMS Absence API in oracle applications R12.1.3

DECLARE
   l_absence_attendance_id       NUMBER;
   l_object_version_number       NUMBER;
   l_occurrence                  NUMBER;
   l_dur_dys_less_warning        BOOLEAN;
   l_dur_hrs_less_warning        BOOLEAN;
   l_exceeds_pto_entit_warning   BOOLEAN;
   l_exceeds_run_total_warning   BOOLEAN;
   l_abs_overlap_warning         BOOLEAN;
   l_abs_day_after_warning       BOOLEAN;
   l_dur_overwritten_warning     BOOLEAN;
   l_absence_days                NUMBER := NULL;
   l_absence_hours               NUMBER := NULL;
   error_msg                     VARCHAR2(500);
BEGIN
   fnd_global.APPS_INITIALIZE(user_id => 1741, resp_id => 50678, resp_appl_id => 800);

   HR_PERSON_ABSENCE_API.create_person_absence (
      p_validate                     => FALSE,
      p_effective_date               => SYSDATE,
      p_person_id                    => 2009,
      p_business_group_id            => 81,
      p_absence_attendance_type_id   => 1063,
      p_abs_attendance_reason_id     => NULL,
      p_comments                     => 'Uploaded through API',
      p_date_notification            => TO_DATE ('01-MAR-2017', 'DD-MON-YYYY'),
      p_date_start                   => TO_DATE ('02-MAR-2017', 'DD-MON-YYYY'),
      p_date_end                     => TO_DATE ('03-MAR-2017', 'DD-MON-YYYY'),
      p_absence_days                 => l_absence_days,
      p_absence_hours                => l_absence_hours,
      p_attribute_category           => 'Emergency Leave', -- Absence Type
      p_absence_attendance_id        => l_absence_attendance_id,
      p_object_version_number        => l_object_version_number,
      p_occurrence                   => l_occurrence,
      p_dur_dys_less_warning         => l_dur_dys_less_warning,
      p_dur_hrs_less_warning         => l_dur_hrs_less_warning,
      p_exceeds_pto_entit_warning    => l_exceeds_pto_entit_warning,
      p_exceeds_run_total_warning    => l_exceeds_run_total_warning,
      p_abs_overlap_warning          => l_abs_overlap_warning,
      p_abs_day_after_warning        => l_abs_day_after_warning,
      p_dur_overwritten_warning      => l_dur_overwritten_warning
   );
    COMMIT;
    dbms_output.put_line('p_absence_attendance_id Message: '||l_absence_attendance_id);
    dbms_output.put_line('p_occurrence: '||l_occurrence);
    dbms_output.put_line('p_absence_days: '||l_absence_days);
   exception when others then
    error_msg := SUBSTR (SQLERRM, 1, 99);
   dbms_output.put_line('Error Message: '||error_msg);
END;

Sunday, 27 December 2015

How to run concurrent request through PL/SQL

declare
lv_ret Number;
RESULT Boolean;
lv_msg VARCHAR2(1000);
begin

FND_GLOBAL.APPS_INITIALIZE(FND_GLOBAL.USER_ID, FND_GLOBAL.RESP_ID, FND_GLOBAL.RESP_APPL_ID);
        --FND_GLOBAL.Apps_Initialize(1741, 20420, 1);
        RESULT := APPS.fnd_request.set_mode (TRUE);
        lv_ret := FND_REQUEST.SUBMIT_REQUEST(application => 'PER', --Relevant application short name
                                             program     => 'XX_TICKET_BALANCE', --Your program short Name
                                             description => 'XX TICKET BALANCE', --Any Description
                                             start_time  => sysdate, --standard
                                             sub_request => false, --standard
                                             argument1 => '3890', --Relevant Paramter in sequence
                                             argument2 => '01-Jan-2015',
                                             argument3 => NULL,
                                             argument4 => '31-Dec-2015');
                                           
                                           
                                             dbms_output.put_line('1st Message: '||lv_ret);
                                             FND_MESSAGE.RETRIEVE(MSGOUT => lv_msg);
                                             dbms_output.put_line('2nd Message: ' || lv_msg);
          commit;
end;

Wednesday, 23 December 2015

Difference between RR, YY and RRRR, YYYY in oracle database

'RR' format was designed to complement 'YY' format; it does the same sort of thing inside a different window of years.

In 'YY' format, a 2-digit year is assumed to be in the 100 consecutive years starting with the most recent xx00 and ending with the next xx99.
In 'RR' format, a 2-digit year is assumed to be in the 100 consecutive years starting with the most recent xx50 and ending with the next xx49. That is, the window of possible dates is shifted by 50 years.
Currently, and until until 2049 (inclusive), 'RR' years will always be in the range 1950 through 2049, inclusive. That is, the years returned by TO_DATE (x, 'RR') will be between 1950 and 2049.
Starting in 2050, 'RR' years will always be in the range 2050 through 2149, inclusive.

Both 'YY' and 'RR' format are bad. You should not be using 2-digit years. Always use 4-digit years. The small amount of extra typing that users have to do whenever they enter a 4-digit year is very little compared to the work needed to correct errors that always happen when you use 2-digit years.

Hence in case of RRRR it does not matter if you use RR or RRRR it will return the same result.

Example: 
select to_date('20-Mar-59','DD-MON-RR') test FROM DUAL
03/20/1959

select to_date('20-Mar-59','DD-MON-RRRR') test FROM DUAL
03/20/1959

select to_date('20-Mar-49','DD-MON-RR') test FROM DUAL
03/20/2049

select to_date('20-Mar-49','DD-MON-RRRR') test FROM DUAL
03/20/2049

NOTE:
For YY & YYYY formats it does matter.
select to_date('20-Mar-49','DD-MON-YY') test FROM DUAL
03/20/2049

select to_date('20-Mar-49','DD-MON-YYYY') test FROM DUAL
03/20/0049

select to_date('20-Mar-49','DD-MON-YY') test FROM DUAL
03/20/2049

select to_date('20-Mar-59','DD-MON-YY') test FROM DUAL
03/20/2059


select to_date('20-Mar-59','DD-MON-YYYY') test FROM DUAL
03/20/0059



Reference: http://www.club-oracle.com/resources/difference-between-%E2%80%98yyyy%E2%80%99-and-%E2%80%98rrrr%E2%80%99-in-date-format.10872/
https://community.oracle.com/thread/974281?start=0&tstart=0

Friday, 31 October 2014

Landed Cost Management R12

Attached is the database schema of LCM and its integration with purchasing, receiving, inventory and costing.

Wednesday, 15 October 2014

View password of application user in Oracle E-Business Suite R12

Login to Apps user

Step 1:

--Package Specification
CREATE OR REPLACE PACKAGE get_pwd
AS
   FUNCTION decrypt (KEY IN VARCHAR2, VALUE IN VARCHAR2)
      RETURN VARCHAR2;
END get_pwd;
/

Step 2:
--Package Body
CREATE OR REPLACE PACKAGE BODY get_pwd
AS
   FUNCTION decrypt (KEY IN VARCHAR2, VALUE IN VARCHAR2)
      RETURN VARCHAR2
   AS
      LANGUAGE JAVA
      NAME 'oracle.apps.fnd.security.WebSessionManagerProc.decrypt(java.lang.String,java.lang.String) return java.lang.String';
END get_pwd;
/

Step 3:
Query to get password for apps user.

SELECT
(SELECT get_pwd.decrypt (UPPER ((SELECT UPPER (fnd_profile.VALUE ('GUEST_USER_PWD')) FROM DUAL)), usertable.encrypted_foundation_password) FROM DUAL) AS apps_password
 FROM fnd_user usertable
WHERE usertable.user_name LIKE UPPER ((SELECT SUBSTR (fnd_profile.VALUE ('GUEST_USER_PWD') ,1 , INSTR (fnd_profile.VALUE ('GUEST_USER_PWD'), '/') - 1 ) FROM DUAL))
Step 4:
 --Query for finding any application user
SELECT usr.user_name,
       get_pwd.decrypt
          ((SELECT (SELECT get_pwd.decrypt
                              (fnd_web_sec.get_guest_username_pwd,
                               usertable.encrypted_foundation_password
                              )
                      FROM DUAL) AS apps_password
              FROM fnd_user usertable
             WHERE usertable.user_name =
                      (SELECT SUBSTR
                                  (fnd_web_sec.get_guest_username_pwd,
                                   1,
                                     INSTR
                                          (fnd_web_sec.get_guest_username_pwd,
                                           '/'
                                          )
                                   - 1
                                  )
                         FROM DUAL)),
           usr.encrypted_user_password
          ) PASSWORD
  FROM fnd_user usr
 WHERE usr.user_name = '&USER_NAME';




---REFERENCE
http://muthunagaraj.blogspot.com/2012/07/steps-for-finding-password-of-user-in.html

Monday, 30 June 2014

How to run concurrent program in procedure/ trigger

req_id NUMBER;
RESULT BOOLEAN;

RESULT := APPS.fnd_request.set_mode (TRUE);
                req_id := APPS.FND_REQUEST.SUBMIT_REQUEST('FND',
                                         'FNDSCURS',
                                         '',
                                         sysdate,
                                         FALSE,
                                         :NEW.BATCH_ID);
               commit;
  
--this is sample to run the active users standard report having no parameter, you can explore the parameters by reviewing the FND_REQUEST.SUBMIT body. 

Error while ruuning OAF Hello World OAException: Message Name: SECURITY_APPL_SERVER_ID

Solution: This may occur due to the dbc file no correctly being parsed. Replace the dbc file from application server into jdeveloper required path.

Server Path: /opt/oracle/inst/apps/<SID>_<apps_node>/appl/fnd/12.0.0/secure/<SID>.dbc
Jdeveloper Path: D:\jdevhome\jdev\dbc_files\secure

Monday, 26 May 2014

Gather schema errors out after upgrade from R12.1.1 to R12.1.3

This is a known bug and solution is in the given mentioned oracle support note

11i - 12 Gather Schema Statistics fails with Ora-20001 errors after 11G database Upgrade (Doc ID 781813.1)

How to run a Concurrent Program from ZOOM button in R12

Brief Introduction to Custom Library: The CUSTOM.pll library is a standard Oracle Forms PL/SQL library that is supplied by Oracle with the Oracle Applications. This is Oracle’s built-in feature that allows the customer to enhance the standard functionality of the Applications by implementing site-specific business rules. Every Oracle Forms -based eBusiness screen, and any custom form developed using the Oracle Application development standards, will access the CUSTOM library. This makes an ideal point of creating business rules that effect the entire organization. This is the only method of forms enhancement whose functionality is supported by Oracle World Wide Support. Although any enhancements coded by the customer are not directly supported by Oracle World Wide Support.

Solution:
To run a report we have to make changes in CUSTOM.pll library which resides in $AU_TOP resource folder. To make customizations in CUSTOM.pll we have to open the CUSTOM.pll in form builder.

Then to make code enable for ZOOM button is to be written in CUSTOM.pll to write the code library is to be opened in Forms builder.






































After compiling the library place it on the server and compile it again with the following code

Source the environment variable.

. frmcmp_batch.sh module=/opt/oracle/apps/apps_st/appl/au/12.0.0/resource/CUSTOM.pll userid=apps/apps output_file=/opt/oracle/apps/apps_st/appl/au/12.0.0/resource/CUSTOM.plx module_type=library compile_all=special

Note: You have to re login to see the changes.

Code to Run the Concurrent Program:
To run the reports we will have to write the code in event procedure of CUSTOM.pll the code is as following:
procedure event(event_name varchar2) is
form_name            varchar2(30) := name_in('system.current_form');
  block_name          varchar2(30) := name_in('system.cursor_block');
  lv_param_p1         varchar2(30);
  lv_param_p2         varchar2(30);
  request_id          NUMBER;
  timer_id            timer;
  parm_request_id     number;
  progress_no         number;
  v_layout            boolean;
  l_wait                            boolean;
  x_Phase             Varchar2(100);
  x_Status            Varchar2(100);
  x_Dev_Phase         Varchar2(100);
  x_Dev_Status        Varchar2(100);
  x_Message           Varchar2(100); 

  begin
   
    if (event_name = 'ZOOM') then
    if (form_name = 'ARXTWMAI' and block_name = 'TGW_HEADER') THEN
   
    lv_param_p1 := name_in('tgw_header.TRX_NUMBER_MIR'); --- This is the parameter that is from standard form into the report parameter
   
    v_layout :=FND_REQUEST.add_layout('AR','USA_AR_INVOICE_VOUCHER','en','US','PDF',NULL); -- This is to set the layout
   
    request_id :=  fnd_request.submit_request('AR','USA_AR_INVOICE_VOUCHER','Cust Export Sale  Voucher',SYSDATE,FALSE,'','','',lv_param_p1,lv_param_p1,'','','','','');  --- This will submit the concurrent request to execute the report. Parameters in sequence to execute the report.
   
    COMMIT; --- commit must be used when ever a concurrent parogram is run customized
    clear_message;
     If request_id Is Null Or
       request_id = 0 Then
      Return;
     End If;
    
    
       fnd_message.set_string('Request Submitted :' || request_id ||'. Please Wait ..... ');
       fnd_message.show;

        SET_APPLICATION_PROPERTY(CURSOR_STYLE, 'BUSY');
        APP_WINDOW.PROGRESS(0);
       
        l_wait := Fnd_Concurrent.Wait_For_Request(request_id,1,0,x_Phase,x_Status,x_Dev_Phase,x_Dev_Status,x_Message);
       
          If x_Dev_Phase = 'COMPLETE' THEN --- And x_Dev_Status = 'NORMAL' Then
            
             --    message(x_Dev_Phase);
            
Editor_Pkg.Report(request_id,'Y'); --- This resides in FNDCON.pll library you will have to add this library to CUSTIOM.pll so the compile the library otherwise it will not compile. Shown in figure at the end.


           Else
                              Fnd_File.Put_Line(1,Rpad('x_phase',20,' ') || '=' || x_Phase);
                              Fnd_File.Put_Line(1,Rpad('x_status=',20,' ') || '=' || x_Status);
                              Fnd_File.Put_Line(1,Rpad('x_dev_phase=',20,' ') || '=' || x_Dev_Phase);
                              Fnd_File.Put_Line(1,Rpad('x_dev_status=',20,' ') || '=' || x_Dev_Status);
                              Fnd_File.Put_Line(1,Rpad('x_message=',20,' ') || '=' || x_Message);
                              Fnd_File.Put_Line(1,'Warning : Starting print report failure! It did not running in 120 seconds, its request_id is ' ||
                                                To_Char(request_id) || ' please check it.');
    End If;
     
        SET_APPLICATION_PROPERTY(CURSOR_STYLE, 'DEFAULT'); 
        APP_WINDOW.PROGRESS(1);
       
       
                
        end if;   
 
    end if;   
 
  end event;

This will execute your required report but report will be complete in warning and report must be added to that request group.
Press Yes in above figure.

Friday, 23 May 2014

Difference between ad_bugs and ad_applied_patches

Bug Definition: A software bug is an error, flaw, failure, or fault in a computer program or system that produces an incorrect or unexpected result, or causes it to behave in unintended ways. 

In oracle e-business suite when some standard functionality is not working correctly or as per mentioned in documentation there is a bug and for bug oracle support recommends patch. One single patch can fix a single or multiple bugs.

AD_BUGS
All the bugs whose fixes has been applied before that release i-e patches applied in Oracle Applications Installation. Upon successful installation many entries exists in this table.

AD_APPLIED_PATCHES
It holds the information of patches applied after installation. If 2 patches happen to have the same name but are different in content (eg. "merged" patches), then they are considered distinct and this table will therefore hold 2 records.

So whenever a patch is applied, entries occur in both tables.

Oracle Reports Language changes from English to some other

1.     Open report builder => Tools => File Conversion
2.     Select rdf file which need to covert first
3.     Select file path and give any file name on that file, rex file will generate on that path.
4.     Open that file in any editor.
5.     Replace charset = 178 or charset = 0 or any charset datatype length with charset = 31 and save it.
6.     Again open report builder => Tools => File Conversion.
7.     Select rex file first and then open rdf file for file conversion.

8.     Save rdf file

Check the report if not correct result follow below mention action plan.

Problem: All customized reports giving output in English language got disturbed. They are changed from English to some other language.

Solution: Kindly check the report log file. It might be displaying error:
REP-0004: Warning: Unable to open user preference file

Request Logs Contain the Message "REP-0004: Warning: Unable to open user preference file" (Doc ID 1120529.1)

Copy the prefs.ora file from /opt/oracle/apps/tech_st/10.1.2/tools/admin to /home/oracle/ 

Copying " pref.ora file to /home/oracle." would be required if all requests are failing to Print. If you remove pref.ora file and print Active users report and that works then you do not need this. Having prefs.ora being present at /home/oracle has no harm. It is just a preference file. 

Bounce the application node and retest if the issue is resolved. If above solution doesn't work then after taking backup of existing environment file and add the below lines and bounce the application node and retest. It must be resolved by now.

"IX_PRINTING=$FND_TOP/$APPLRSC/ixlib.cfg 
export IX_PRINTING " 

The note might be useful Oracle Reports 10.1.2 NLS Setup Guide for Oracle Applications Release 12 (Doc ID 415967.1)

Wednesday, 19 March 2014

getaddrinfo(localhost, NULL, 1) failed (Name or service not known): No such file or directory

During the start up of middle tier services opmn was failed to start with the below error.

When attempting to start up the R12 middle tier services, the following error occurs.

ERROR

getaddrinfo(localhost, NULL, 1) failed (Name or service not known): No such file or directory
getaddrinfo(localhost, NULL, 1) failed (Name or service not known): No such file or directory
getaddrinfo(localhost, NULL, 1) failed (Name or service not known): No such file or directory
opmnctl: opmn start failed.

The issue can be reproduced at will with the following steps:
1. Apply R12 prerequisites
2. Install R12 using Rapid wizard
3. Startup middle tier services.

CAUSE

The hosts file does not contain the localhost entry needed for loopback
127.0.0.1 localhost.localdomain

SOLUTION

To implement the solution, please execute the following steps:

1. Modify hosts file and add localhost entry to look like below (example for Linux):

127.0.0.1 localhost.localdomain localhost
Note: For other platforms please check how the hosts entries should look like in the platform specific "Oracle Applications Installation and Upgrade Notes Release 12" note.


Start middle tier services.


Reference:
http://crescentitsme.blogspot.com/2014/01/getaddrinfolocalhost-null-1-failed-name.html

Saturday, 1 March 2014

Size of Oracle Applications R12 increasing rapidly

There can be number of reasons behind the rapid increase of oracle applications, few of them are listed below which I encountered.

CASE I:

There might be some sort of logging/ debugging enabled in system. You can check them from following queries.

Profiles 'Utilities: SQL Trace' and 'Concurrent: Allow Debugging' are set on site and user levels. If they are set, disable them.

select p.profile_option_name SHORT_NAME,
n.user_profile_option_name NAME,
decode(v.level_id,
10001, 'Site',
10002, 'Application',
10003, 'Responsibility',
10004, 'User',
10005, 'Server',
10007, 'SERVRESP',
'UnDef') LEVEL_SET,
decode(to_char(v.level_id),
'10001', '',
'10002', app.application_short_name,
'10003', rsp.responsibility_key,
'10005', svr.node_name,
'10006', org.name,
'10004', usr.user_name,
'10007', 'Serv/resp',
'UnDef') "CONTEXT",
v.profile_option_value VALUE
from fnd_profile_options p,
fnd_profile_option_values v,
fnd_profile_options_tl n,
fnd_user usr,
fnd_application app,
fnd_responsibility rsp,
fnd_nodes svr,
hr_operating_units org
where p.profile_option_id = v.profile_option_id (+)
and p.profile_option_name = n.profile_option_name
and p.profile_option_name in
('SQL_TRACE', 'FND_CONC_ALLOW_DEBUG')
and usr.user_id (+) = v.level_value
and rsp.application_id (+) = v.level_value_application_id
and rsp.responsibility_id (+) = v.level_value
and app.application_id (+) = v.level_value
and svr.node_id (+) = v.level_value
and org.organization_id (+) = v.level_value
order by short_name, level_set;

Run the sql below to check if any concurrent program is trace enabled on concurrent program define form. If there are any, un-check the flag on the concurrent program define form.

select application_id,
concurrent_program_name,
last_update_date,
last_updated_by
from fnd_concurrent_programs
where enable_trace = 'Y';

Connect SQLPLUS with command as below with DB user(e.g. oravis):

>sqlplus /nolog
SQL> conn / as sysdba
SQL> show parameter user_dump_dest

The returned directory will store ALL .trc & .trm file, this may cause increase size rapidly.

CASE II:

Size of core files might increasing path of which is: "/opt/oracle/PROD/inst/apps/PROD_prodapps/ora/10.1.2/forms"

So according to support note
Note 1331304.1: Forms Core Dump Files generated in E-Business Suite R12 (Doc ID 1331304.1)

 Edit context parameter value "s_forms_catchterm"
FROM
<FORMS_CATCHTERM oa_var="s_forms_catchterm">1</FORMS_CATCHTERM>
TO
<FORMS_CATCHTERM oa_var="s_forms_catchterm">0</FORMS_CATCHTERM>


Run Autoconfig to make change effective.

FORMS_CATCHTERM. This variable enables or disables the Forms abnormal termination handler which captures middle tier crashes and writes diagnostic information into the dump file or the forms server log file. Allowed values are {0,1}. By default, this value is set to '1' which enables the Forms termination handler. Setting this variable to '0' disables the Forms termination Handler.

So, set it to 0 is to disable the Forms termination Handler.


You can remove those core files as they are not needed, because they are OK to remove. You can just use OS command to delete them.

Moreover,
Note 356878.1: R11i / R12 : How to relink an E-Business Suite Installation of Release 11i and Release 12.x (Doc ID 356878.1)

Another oracle support note was found in this regard if above solution doesn't work.

Note 1194383.1: R12: Frequent frmweb core files created in $INST_TOP/ora/10.1.2/forms (frmweb core dumps) (Doc ID 1194383.1)
to apply Patch 8940272 - MULTIPLE CORE DUMPS FOUND DURING LOAD TESTING.


You can apply with command:
>opatch apply
You also can rollback it with command:
>opatch rollback -id 8940272