Search This Blog

Friday, April 14, 2023

Apps r12 PO Approve from Backend (From Incomplete to Approved)

 /* Formatted on 4/14/2023 10:41:12 AM (QP5 v5.336) */

DECLARE

    l_return_status   VARCHAR2 (1000);


    l_msg_data        VARCHAR2 (1000);


    CURSOR c1 IS

        (SELECT *

           FROM po_headers_all

          WHERE     segment1 IN ('22729')

                AND type_lookup_code = 'STANDARD'

                AND (   authorization_status != 'APPROVED'

                     OR authorization_status IS NULL));

BEGIN

    mo_global.init ('PO');

    fnd_global.apps_initialize (1337, 51017, 201);


    FOR i IN c1

    LOOP

        po_document_action_pvt.do_approve (

            p_document_id        => i.po_header_id,

            p_document_type      => 'PO',

            p_document_subtype   => 'STANDARD',

            p_note               => '', --– Your comments that need to be displayed in action History,

            p_approval_path_id   => 0,  --SELECT * FROM po_action_history where creation_date like sysdate;

            x_return_status      => l_return_status,

            x_exception_msg      => l_msg_data);


        DBMS_OUTPUT.put_line (l_return_status);


        COMMIT;

    END LOOP;

END;


Thursday, March 16, 2023

Oracle Apps R12 AR Deposit API

 declare


l_return_status VARCHAR2(1);

l_msg_count NUMBER;

l_msg_data VARCHAR2(240);

l_new_trx_number ra_customer_trx.trx_number%type;

l_new_customer_trx_id ra_customer_trx.customer_trx_id%type;

l_new_customer_trx_line_id ra_customer_trx_lines.customer_trx_line_id%type;

l_new_rowid VARCHAR2(240);

l_new_status VARCHAR2(240);


begin


/*------------------------------+

| Setting global initialization |

+-------------------------------*/

FND_GLOBAL.apps_initialize(2605, 52695, 222);

MO_GLOBAL.init('AR');



ar_deposit_api_pub.CREATE_DEPOSIT(

  p_api_version => 1.0,

  p_init_msg_list => FND_API.G_TRUE,

  p_deposit_date => trunc(sysdate),

  p_currency_code => 'AED',

  p_amount => 200,

  p_term_id => 5,

  p_cust_trx_type_id => 9507,

  p_bill_to_customer_id =>  9745106,

  p_description => 'Generic Commitment',

  p_batch_source_id => -1,

  p_class => 'DEP',

  p_start_date_commitment => sysdate,

  p_commit => FND_API.G_TRUE,

  X_new_trx_number =>l_new_trx_number,

  X_new_customer_trx_id =>l_new_customer_trx_id,

  X_new_customer_trx_line_id =>l_new_customer_trx_line_id,

  X_new_rowid =>l_new_rowid,

  x_return_status => l_return_status,

  x_msg_count => l_msg_count,

  x_msg_data => l_msg_data ) ;


FND_MSG_PUB.count_and_get (

   p_encoded => FND_API.g_false,

   p_count => l_msg_count,

   p_data => l_msg_data );


dbms_output.put_line('Return Status ==> '||l_return_status);

dbms_output.put_line('Deposit customer_trx_id ==> '||l_new_customer_trx_id);

dbms_output.put_line('l_msg_count ==> '||l_msg_count);


-- display messages from the message stack

FOR I IN 1..L_MSG_COUNT LOOP

    DBMS_OUTPUT.PUT_LINE(SUBSTR(FND_MSG_PUB.GET(P_MSG_INDEX => I, P_ENCODED => 'F'), 1, 254));

END LOOP;


END;



Error: Deposit Creation Failed The customer location site number is invalid.

Solution: Add 

(R) Receivable Manager (M) Setup - Print - Remit-to Addresses - Section "Receipts From"

1.. Go to the "Receipts From" section of the form.

2. Put the cursor in the Country field and click on the LOV.

3. Select the value "Default value"

4. Put cursor in the State field and click on LOV.

5. Select the value "Default value"

6. Save.

"Default value" comes up in the LOV of Country and state, then retest  

Monday, February 27, 2023

Oracle HRMS Hierarchy Query (upward, down wards)

 Upward:

SELECT ORGANIZATION_ID_PARENT

  FROM (    SELECT LEVEL LEVEL_ID, ORGANIZATION_ID_PARENT

              FROM per_org_structure_elements org

             WHERE ORGANIZATION_ID_PARENT <> 81

        START WITH ORGANIZATION_ID_CHILD =  :p_org_id

        CONNECT BY PRIOR ORGANIZATION_ID_PARENT = ORGANIZATION_ID_CHILD)

 WHERE LEVEL_ID =

       (SELECT MAX (LEVEL_ID)

          FROM (    SELECT LEVEL LEVEL_ID, ORGANIZATION_ID_PARENT

                      FROM per_org_structure_elements org

                     WHERE ORGANIZATION_ID_PARENT <> 81

                START WITH ORGANIZATION_ID_CHILD = :p_org_id

                CONNECT BY PRIOR ORGANIZATION_ID_PARENT =

                           ORGANIZATION_ID_CHILD))



down wards:
           SELECT LPAD (' ', 10 * (LEVEL - 1)) || org.name hierarchy,
                  org.organization_id
             FROM hr_all_organization_units org, per_org_structure_elements pose
            WHERE 1 = 1 AND org.organization_id = pose.organization_id_child
       --and org.name like 'org name'
       START WITH pose.organization_id_parent = :p_org_id-- Orgnization of parent id -- provide the id from which level the downward hierarchy should be displayed
       CONNECT BY PRIOR pose.organization_id_child = pose.organization_id_parent
ORDER SIBLINGS BY org.location_id, pose.organization_id_child

Wednesday, February 8, 2023

EBS R12 API to Update Supervisor Assignment using loop for future assignment actions if available

 --begin

--fnd_global.apps_initialize(8952,52032,800);

--end;



DECLARE

P_NEW_SUPERVISOR_ID NUMBER := 1130;

P_PERSON_ID NUMBER := 211716;

P_DATE DATE := TO_DATE('01-FEB-2023');

V_OBJECT_VERSION_NUMBER NUMBER;

V_DATE DATE;

V_ERROR_MSG                          VARCHAR2(2500) := NULL;

V_API_ERROR                          VARCHAR2(500); 

--p_person_id number;

   -- Local Variables

   -- -----------------------

   lc_dt_ud_mode           VARCHAR2(100)    := NULL;

  -- ln_assignment_id       NUMBER                  := 37392;

   --ln_supervisor_id        NUMBER                  := 4485;

   ln_object_number       NUMBER                  ;

   --ln_people_group_id  NUMBER                  := 105;

 

   -- Out Variables for Find Date Track Mode API

   -- -----------------------------------------------------------------

   lb_correction                           BOOLEAN;

   lb_update                                 BOOLEAN;

   lb_update_override              BOOLEAN;

   lb_update_change_insert   BOOLEAN;

  

   -- Out Variables for Update Employee Assignment API

   -- ----------------------------------------------------------------------------

   ln_soft_coding_keyflex_id       HR_SOFT_CODING_KEYFLEX.SOFT_CODING_KEYFLEX_ID%TYPE;

   lc_concatenated_segments       VARCHAR2(2000);

   ln_comment_id                             PER_ALL_ASSIGNMENTS_F.COMMENT_ID%TYPE;

   lb_no_managers_warning        BOOLEAN;


 -- Out Variables for Update Employee Assgment Criteria

 -- -------------------------------------------------------------------------------

 ln_special_ceiling_step_id                    PER_ALL_ASSIGNMENTS_F.SPECIAL_CEILING_STEP_ID%TYPE;

 lc_group_name                                          VARCHAR2(30);

 ld_effective_start_date                             PER_ALL_ASSIGNMENTS_F.EFFECTIVE_START_DATE%TYPE;

 ld_effective_end_date                              PER_ALL_ASSIGNMENTS_F.EFFECTIVE_END_DATE%TYPE;

 lb_org_now_no_manager_warning   BOOLEAN;

 lb_other_manager_warning                  BOOLEAN;

 lb_spp_delete_warning                          BOOLEAN;

 lc_entries_changed_warning                VARCHAR2(30);

 lb_tax_district_changed_warn             BOOLEAN;

 p_cagr_grade_def_id NUMBER;

 p_cagr_concatenated_segments number;

 


 cursor C1 is

 

SELECT PAAF.ASSIGNMENT_ID,PAAF.EFFECTIVE_START_DATE, PAAF.EFFECTIVE_END_DATE

,PAAF.ASSIGNMENT_NUMBER

FROM PER_ALL_ASSIGNMENTS_F PAAF

WHERE PAAF.PERSON_ID = P_PERSON_ID

AND (P_DATE BETWEEN PAAF.EFFECTIVE_START_DATE AND  PAAF.EFFECTIVE_END_DATE

OR PAAF.EFFECTIVE_START_DATE  >= P_DATE  )

AND P_NEW_SUPERVISOR_ID IS NOT NULL

AND SUPERVISOR_ID <> P_NEW_SUPERVISOR_ID

ORDER BY effective_start_date

;



    

BEGIN

 DBMS_OUTPUT.PUT_LINE('hi1' );

FOR I IN C1 LOOP

 

V_DATE := GREATEST(P_DATE , I.EFFECTIVE_START_DATE);


   V_OBJECT_VERSION_NUMBER := 0;

   V_OBJECT_VERSION_NUMBER := XXPY_UPDATE_EMP_ASSIGNMENT.GET_OVN_F(I.ASSIGNMENT_ID,V_DATE);

DBMS_OUTPUT.PUT_LINE('V_DATE is '||V_DATE);

begin

  -- Update Employee Assignment

  -- ---------------------------------------------

 hr_assignment_api.update_emp_asg

 ( -- Input data elements

  -- ------------------------------

  p_effective_date                              =>V_DATE,

  p_datetrack_update_mode         => XXPY_UPDATE_EMP_ASSIGNMENT.GET_MODE_ASSGINMENT_F(I.ASSIGNMENT_ID,V_DATE),

  p_assignment_id                            => TO_NUMBER(I.assignment_id),

  p_supervisor_id                              => TO_NUMBER(P_NEW_SUPERVISOR_ID),

  p_change_reason                           => NULL,

--  p_manager_flag                              => 'N',

  p_bargaining_unit_code              => NULL,

  p_labour_union_member_flag   => NULL,

--  p_segment1                                       => TO_NUMBER(HIRING.LEGAL_EMP),--108,

--  p_normal_hours                              => 35,

--  p_time_normal_start                         => '07:30',

--  p_time_normal_finish                         => '14:30',

--  p_frequency                                       => 'W',

--  p_employee_category                               => HIRING.employee_category,--'EMP',

  -- Output data elements

  -- -------------------------------

  p_cagr_grade_def_id             => p_cagr_grade_def_id,-- bug 2359997

  p_cagr_concatenated_segments   => p_cagr_concatenated_segments,

  p_object_version_number             => V_OBJECT_VERSION_NUMBER,

  p_soft_coding_keyflex_id              => ln_soft_coding_keyflex_id,

  p_concatenated_segments             => lc_concatenated_segments,

  p_comment_id                                   => ln_comment_id,

  p_effective_start_date                      => ld_effective_start_date,

  p_effective_end_date                        => ld_effective_end_date,

  p_no_managers_warning               => lb_no_managers_warning,

  p_other_manager_warning            => lb_other_manager_warning

 );

 commit;

 EXCEPTION WHEN OTHERS THEN

 DBMS_OUTPUT.PUT_LINE(SQLERRM );--||'-'||I.ASSIGNMENT_NUMBER);

END;

END LOOP;

EXCEPTION WHEN OTHERS THEN

 DBMS_OUTPUT.PUT_LINE(SQLERRM );

END;


------------------------------------------------------------------------------------------------------------


FUNCTION GET_MODE_ASSGINMENT_F(P_ASSIGNMENT_ID NUMBER, P_DATE DATE)

RETURN VARCHAR2 AS

   lb_correction                  BOOLEAN;

   lb_update                      BOOLEAN;

   lb_update_override             BOOLEAN;

   lb_update_change_insert        BOOLEAN;

   lc_dt_ud_mode varchar2(200); 

   L_ERROR varchar2(2000); 

   BEGIN

dt_api.find_dt_upd_modes

   (    p_effective_date                  => P_DATE,

        p_base_table_name            => 'PER_ALL_ASSIGNMENTS_F',

        p_base_key_column            => 'ASSIGNMENT_ID',

        p_base_key_value                => P_ASSIGNMENT_ID,

         -- Output data elements

         -- --------------------------------

         p_correction                   => lb_correction,

         p_update                       => lb_update,

         p_update_override              => lb_update_override,

         p_update_change_insert    => lb_update_change_insert  ); 

 

   IF ( lb_correction = TRUE )

   THEN lc_dt_ud_mode := 'CORRECTION';

   end if;

   IF ( lb_update = TRUE )

   THEN lc_dt_ud_mode := 'UPDATE';

   END IF; 

   IF ( lb_update_override = TRUE  )

   THEN lc_dt_ud_mode := 'UPDATE_OVERRIDE';

   end if;

   IF (lb_update_change_insert = TRUE)

   THEN lc_dt_ud_mode := 'UPDATE_CHANGE_INSERT';

   end if;

   --INSERT INTO GET_MODE_ASSGINMENT_F_T(ASSIGNMENT_ID,P_DATE,ERROR_MSG,CREATION_DATE) VALUES(P_ASSIGNMENT_ID, SYSDATE,lc_dt_ud_mode,SYSDATE);

   RETURN lc_dt_ud_mode;

   EXCEPTION WHEN OTHERS THEN 

   L_ERROR := SQLERRM;

   --INSERT INTO GET_MODE_ASSGINMENT_F_T(ASSIGNMENT_ID,P_DATE,ERROR_MSG,CREATION_DATE) VALUES(P_ASSIGNMENT_ID, SYSDATE,L_ERROR,SYSDATE);

END;




FUNCTION GET_OVN_F (P_ASSIGNMENT_ID NUMBER, P_DATE DATE) RETURN NUMBER IS

L_RETURN NUMBER;

BEGIN

SELECT OBJECT_VERSION_NUMBER 

INTO L_RETURN

FROM PER_ALL_ASSIGNMENTS_F PAAF

WHERE ASSIGNMENT_ID = P_ASSIGNMENT_ID

AND P_DATE BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE

AND PRIMARY_FLAG = 'Y'

;

RETURN L_RETURN;

EXCEPTION WHEN OTHERS THEN RETURN 0;

END; 

Sunday, December 25, 2022

Oracle App R12 submit a concurrent request from a FORM module through button and view output


Block in the button form:

declare 

url    varchar2(2000);

 L_TXN_ID_D NUMBER;

   begin

    L_TXN_ID_D:= :FUJ_IMM_TXN_D.TXN_ID_D;

 url:= xximm_submit_report.xx_hr_report_retrun(

p_template =>'XX_IMM_WK' /*XML report template code*/

,p_application => 'XXCUST'

,p_program => 'XX_IMM_WK ' --Concurrent Program Code

,p_arg1 => L_TXN_ID_D  --Parameters

);

 

web.show_document(url);  

   exception when others then 

    message(sqlerrm);

   end;


CREATE OR REPLACE PACKAGE APPS.xximm_submit_report

AS


   PROCEDURE xx_get_mime_type (

      ftype   IN       VARCHAR2,

      mtype   IN OUT   VARCHAR2,

      wopen   IN OUT   BOOLEAN

   );


   FUNCTION xx_browser_show_retrun (

      fname    VARCHAR2,

      node     VARCHAR2,

      mtype    VARCHAR2,

      req_id   NUMBER DEFAULT NULL

   )

      RETURN VARCHAR2;


     FUNCTION xx_hr_report_retrun (

      p_template         IN   VARCHAR2 DEFAULT NULL,

      p_application      IN   VARCHAR2 DEFAULT NULL,

      p_program          IN   VARCHAR2 DEFAULT NULL,

      p_description      IN   VARCHAR2 DEFAULT NULL,

      p_arg1             IN   VARCHAR2 DEFAULT NULL,

      p_arg2             IN   VARCHAR2 DEFAULT NULL,

      p_arg3             IN   VARCHAR2 DEFAULT NULL,

      p_arg4             IN   VARCHAR2 DEFAULT NULL,

      p_arg5             IN   VARCHAR2 DEFAULT NULL,

      p_arg6             IN   VARCHAR2 DEFAULT NULL,

      p_arg7             IN   VARCHAR2 DEFAULT NULL

   )

      RETURN VARCHAR2;

END xximm_submit_report;

/

 

CREATE OR REPLACE PACKAGE BODY APPS.xximm_submit_report
AS

   PROCEDURE xx_get_mime_type (
      ftype   IN       VARCHAR2,
      mtype   IN OUT   VARCHAR2,
      wopen   IN OUT   BOOLEAN
   )
   IS
      profile_defined   BOOLEAN       := FALSE;
      errcode           NUMBER;
      g_size            NUMBER;
      initial_mtype     VARCHAR2 (80);    -- initial value for viewer poplist
   BEGIN
      wopen := FALSE;

      -- check profile options for each file format
      IF (ftype = 'TEXT')
      THEN
         IF (fnd_profile.defined ('FS_MIME_TEXT'))
         THEN
            fnd_profile.get ('FS_MIME_TEXT', mtype);
            profile_defined := TRUE;
         END IF;
      ELSIF (ftype = 'HTML')
      THEN
         IF (fnd_profile.defined ('FS_MIME_HTML'))
         THEN
            fnd_profile.get ('FS_MIME_HTML', mtype);
            profile_defined := TRUE;
         END IF;
      ELSIF (ftype = 'PDF')
      THEN
         IF (fnd_profile.defined ('FS_MIME_PDF'))
         THEN
            fnd_profile.get ('FS_MIME_PDF', mtype);
            profile_defined := TRUE;
         END IF;
      ELSIF (ftype = 'PS')
      THEN
         IF (fnd_profile.defined ('FS_MIME_PS'))
         THEN
            fnd_profile.get ('FS_MIME_PS', mtype);
            profile_defined := TRUE;
         END IF;
      ELSIF (ftype = 'PCL')
      THEN
         IF (fnd_profile.defined ('FS_MIME_PCL'))
         THEN
            fnd_profile.get ('FS_MIME_PCL', mtype);
            profile_defined := TRUE;
         END IF;
      ELSIF (ftype = 'XML')
      THEN
         IF (fnd_profile.defined ('FS_MIME_XML'))
         THEN
            fnd_profile.get ('FS_MIME_XML', mtype);
            profile_defined := TRUE;
         END IF;
      ELSE
         mtype := 'text/plain';
         profile_defined := TRUE;
      END IF;

      IF NOT wopen
      THEN
         DBMS_OUTPUT.put_line ('Wopen False');
      ELSE
         DBMS_OUTPUT.put_line ('Wopen true');
      END IF;

      -- if profile option does not exists then look for fnd_mime_types_vl
      -- view for mime type.
      IF (NOT profile_defined)
      THEN
         FOR c IN (SELECT mime_type
                     FROM fnd_mime_types_vl
                    WHERE file_format_code = ftype AND ROWNUM = 1)
         LOOP
            mtype := c.mime_type;
            EXIT;
         END LOOP;
      END IF;                                           -- not profile_defined
   END;

   FUNCTION xx_browser_show_retrun (
      fname    VARCHAR2,
      node     VARCHAR2,
      mtype    VARCHAR2,
      req_id   NUMBER DEFAULT NULL
   )
      RETURN VARCHAR2
   IS
      base             VARCHAR2 (255);
      url              VARCHAR2 (255);
      ID               VARCHAR2 (32);
      gwyuid           VARCHAR2 (32);
      two_task         VARCHAR2 (64);
      fs_enabled       VARCHAR2 (2);
      pos              NUMBER;
      svc              VARCHAR2 (240);
      x_mode           VARCHAR2 (30)  := 'BINARY';
      oftype           VARCHAR2 (4);
      published_req    BOOLEAN        := FALSE;
      pub_reqid        VARCHAR2 (32);
      int_request_id   NUMBER;
      base_type        VARCHAR2 (50);
      PRAGMA AUTONOMOUS_TRANSACTION;
   BEGIN
      int_request_id := req_id;
      DBMS_OUTPUT.put_line ('node ===>' || node);
      DBMS_OUTPUT.put_line ('mtype ===>' || mtype);
      DBMS_OUTPUT.put_line ('req_id ===>' || req_id);
      fnd_profile.get ('TWO_TASK', two_task);
      fnd_profile.get ('GWYUID', gwyuid);

      IF (fnd_profile.defined ('APPS_CGI_AGENT'))
      THEN
         fnd_profile.get ('APPS_CGI_AGENT', base);
      END IF;
      IF (base IS NULL)
      THEN
         fnd_profile.get ('APPS_WEB_AGENT', base);
         base_type := 'WEB';
      END IF;


      IF (fnd_profile.defined ('FS_SVC_PREFIX'))
      THEN
         fnd_profile.get ('FS_SVC_PREFIX', svc);

         IF (svc IS NOT NULL)
         THEN
            svc := SUBSTR (svc || node, 1, 255);
         ELSE
            svc := 'FNDFS_' || node;
         END IF;
      ELSE
         svc := 'FNDFS_' || node;
      END IF;

      IF (req_id IS NOT NULL)
      THEN
         BEGIN
            SELECT file_type
              INTO oftype
              FROM fnd_conc_req_outputs
             WHERE concurrent_request_id = req_id AND ROWNUM = 1;

            IF (oftype IN ('PDF', 'PS', 'PCL', 'EXCEL'))
            THEN
               x_mode := 'BINARY';
            END IF;
         EXCEPTION
            WHEN NO_DATA_FOUND
            THEN
               BEGIN
                  SELECT NVL (output_file_type, 'TEXT')
                    INTO oftype
                    FROM fnd_concurrent_requests
                   WHERE request_id = req_id;

                  IF (oftype IN ('PDF', 'PS', 'PCL','XML'))
                  THEN
                     x_mode := 'BINARY';
                  END IF;
               EXCEPTION
                  WHEN NO_DATA_FOUND
                  THEN
                     x_mode := 'TEXT';
               END;
         END;

      END IF;

      DBMS_OUTPUT.put_line ('X_mode:' || x_mode);


      IF published_req = TRUE
      THEN

         int_request_id := pub_reqid;
         DBMS_OUTPUT.put_line ('published_req ===>true');
      ELSE
         DBMS_OUTPUT.put_line ('published_req ===>false');
      END IF;

      ID :=
         fnd_webfile.create_id (fname,
                                svc,
                                10,
                                mtype,
                                NVL (int_request_id, req_id),
                                x_mode,
                                'Y'
                               );
      DBMS_OUTPUT.put_line ('fname ===>' || fname);
      DBMS_OUTPUT.put_line ('svc ==>' || svc);
      DBMS_OUTPUT.put_line ('mtype' || mtype);
      DBMS_OUTPUT.put_line ('ID ===>' || ID);
      DBMS_OUTPUT.put_line ('pub_reqid ==>' || pub_reqid);
      DBMS_OUTPUT.put_line ('ID after publish' || ID);
      base := LTRIM (RTRIM (base));

      IF (base_type = 'WEB')
      THEN
         -- Strip any file path from the base URL by truncating at the
         -- third '/'.
         -- This leaves us with something like 'http://ap363sun:8000'.
         pos := INSTR (base, '/', 1, 3);

         IF (pos > 0)
         THEN
            base := SUBSTR (base, 1, pos - 1);
         END IF;

         -- 2638328 - security violation - removing login information from URL
         url := base || '/OA_CGI/FNDWRR.exe?' || 'temp_id=' || ID;
      ELSIF (base_type = 'CGI')
      THEN
         IF (SUBSTR (base, LENGTH (base)) <> '/')
         THEN
            base := base || '/';
         END IF;

         url := base || 'FNDWRR.exe?' || 'temp_id=' || ID;
      END IF;

      DBMS_OUTPUT.put_line ('Before : ' || url);
      --  FND_WEBFILE.GET_URL(FND_WEBFILE.request_out,ID,gwyuid,two_task,100);
      url :=
         fnd_webfile.get_url (file_type        => fnd_webfile.request_out,
                              ID               => req_id,
                              gwyuid           => gwyuid,
                              two_task         => two_task,
                              expire_time      => 100   -- minutes, security!.
                             );
      DBMS_OUTPUT.put_line ('after : ' || url);
/*    pos := INSTR(base, '/', 1, 3);

    IF (pos > 0) THEN
      base := SUBSTR(base, 1, pos - 1);
    END IF;

    url := base || '/OA_CGI/FNDWRR.exe?' || 'temp_id=' || ID ;--|| '&' || 'login=' || gwyuid || '@' || two_task;
*/

      /*
          htp.htmlOpen;
          htp.headOpen;
          htp.title('Get request output');
          htp.headClose;
          htp.bodyOpen;
          htp.p('<A HREF='||url||'>Click to get request output</a>');
          htp.bodyclose;
          htp.htmlclose;
      */
      DBMS_OUTPUT.put_line (url);
      RETURN url;
   END;



FUNCTION xx_hr_report_retrun (
      p_template         IN   VARCHAR2 DEFAULT NULL,
      p_application      IN   VARCHAR2 DEFAULT NULL,
      p_program          IN   VARCHAR2 DEFAULT NULL,
      p_description      IN   VARCHAR2 DEFAULT NULL,
      p_arg1             IN   VARCHAR2 DEFAULT NULL,
      p_arg2             IN   VARCHAR2 DEFAULT NULL,
      p_arg3             IN   VARCHAR2 DEFAULT NULL,
      p_arg4             IN   VARCHAR2 DEFAULT NULL,
      p_arg5             IN   VARCHAR2 DEFAULT NULL,
      p_arg6             IN   VARCHAR2 DEFAULT NULL,
      p_arg7             IN   VARCHAR2 DEFAULT NULL
   )
      RETURN VARCHAR2
   IS
      l_req_id              NUMBER;
      l_user_id             NUMBER              := fnd_profile.VALUE ('USER');
      l_resp_id             NUMBER                                   := 52168;--53237;
      l_resp_appl_id        NUMBER                                     := 800;

      l_url                 VARCHAR2 (3000);
      ftype                 VARCHAR2 (30)                            := 'XML';
      mtype                 VARCHAR2 (80);
      wopen                 BOOLEAN                                  := FALSE;
      filename              fnd_concurrent_requests.outfile_name%TYPE;
      node                  fnd_concurrent_requests.outfile_node_name%TYPE;
      l_request_completed   BOOLEAN                                  := FALSE;
      l_req_phase           VARCHAR2 (20);
      l_req_status          VARCHAR2 (1000);
      l_req_dev_phase       VARCHAR2 (1000);
      l_req_dev_status      VARCHAR2 (1000);
      l_req_message         VARCHAR2 (1000);
      b_success             BOOLEAN;
      v_set_layout_option   BOOLEAN;
      v_error_message       VARCHAR (2000);
      v_count               NUMBER;
      v_template_type       VARCHAR2 (200);
      v_cycle_name          VARCHAR2 (200);
      v_traning_v           VARCHAR2 (200);
      v_comb                VARCHAR2 (200);
   BEGIN

   -- v_template_type := 'FUJ_HR_HOTEL_WKPERMIT';
fnd_global.apps_initialize(2605,52168, 800);

      v_set_layout_option :=
         fnd_request.add_layout (template_appl_name      => p_application,
                                      template_code           => p_template,
                                      --p_program,
                                      template_language       => 'en',
                                      template_territory      => '',
                                      output_format           => 'PDF'
                                     );

      IF (NOT v_set_layout_option)
      THEN
         fnd_file.put_line (fnd_file.LOG,
                                 'Unable to apply template'
                                );
         fnd_file.put_line (fnd_file.LOG, v_error_message);
      ELSE
           l_req_id :=
            fnd_request.submit_request (application      => p_application,
                                        program          => p_program,
                                        description      => null,--p_description,
                                        start_time       => NULL,
                                        argument1        => p_arg1,
                                        argument2        => p_arg2,
                                        argument3        => p_arg3,
                                        argument4        => p_arg4,
                                        argument5        => p_arg5,
                                        argument6        => p_arg6,
                                        argument7        => p_arg7
                                       );


         DBMS_OUTPUT.put_line ('l_req_id ===> ' || l_req_id);
         COMMIT;
      END IF;

      l_request_completed :=
         fnd_concurrent.wait_for_request (request_id      => l_req_id,
                                          INTERVAL        => 1,
                                          phase           => l_req_phase,
                                          status          => l_req_status,
                                          dev_phase       => l_req_dev_phase,
                                          dev_status      => l_req_dev_status,
                                          MESSAGE         => l_req_message
                                         );
      COMMIT;

      FOR c IN (SELECT NVL (output_file_type, 'PDF') ftype,
                       outfile_name filename, outfile_node_name node,
                       ofile_size
                  FROM fnd_concurrent_requests
                 WHERE request_id = l_req_id)
      LOOP
         ftype := c.ftype;
         filename := c.filename;
         node := c.node;
         EXIT;
      END LOOP;

      xx_get_mime_type (ftype => ftype, mtype => mtype, wopen => wopen);

      IF NOT wopen
      THEN
         l_url := xx_browser_show_retrun (filename, node, mtype, l_req_id);
      END IF;

      RETURN l_url;
   END;

END xximm_submit_report;
/

Wednesday, December 21, 2022

Oracle SQL Query for Customer Details

  SELECT DISTINCT hp.party_name           "CUSTOMER_NAME",

                      hca.account_number,

                      hca.status,

                      hca.cust_account_id     customer_id,

                      HOU.NAME                "OPERATING_UNIT"

        FROM apps.hz_parties            hp,

             apps.hz_party_sites        hps,

             apps.hz_locations          hl,

             apps.hz_cust_accounts      hca,

             apps.hz_cust_acct_sites_all hcas,

             apps.hz_cust_site_uses_all hcsu,

             --apps.hz_customer_profiles hcp,

             --apps.hz_cust_profile_classes hcpc,

             --apps.ar_payment_schedules_all ps,

             apps.hr_operating_units    hou

       WHERE     hp.party_id = hca.party_id(+)

             --AND hp.party_id             = hcp.party_id

             AND hp.party_id = hps.party_id

             AND hps.party_site_id = hcas.party_site_id

             AND hps.location_id = hl.location_id

             AND hca.cust_account_id = hcas.cust_account_id

             AND hcas.cust_acct_site_id = hcsu.cust_acct_site_id

             --AND hca.cust_account_id     = hcp.cust_account_id

             --AND hca.cust_account_id     = ps.customer_id

             --AND hcp.profile_class_id    = hcpc.profile_class_id

             --AND ps.customer_site_use_id =hcsu.site_use_id

             AND hcsu.org_id = hou.organization_id

             AND hcsu.ORG_ID = 2352

Oracle Apps R12 Assignment Mode Status Function

 


FUNCTION GET_MODE_ASSGINMENT_F(P_ASSIGNMENT_ID NUMBER, P_DATE DATE)

RETURN VARCHAR2 AS

   lb_correction                  BOOLEAN;

   lb_update                      BOOLEAN;

   lb_update_override             BOOLEAN;

   lb_update_change_insert        BOOLEAN;

   lc_dt_ud_mode varchar2(200); 

   L_ERROR varchar2(2000); 

   BEGIN

dt_api.find_dt_upd_modes

   (    p_effective_date                  => P_DATE,

        p_base_table_name            => 'PER_ALL_ASSIGNMENTS_F',

        p_base_key_column            => 'ASSIGNMENT_ID',

        p_base_key_value                => P_ASSIGNMENT_ID,

         -- Output data elements

         -- --------------------------------

         p_correction                   => lb_correction,

         p_update                       => lb_update,

         p_update_override              => lb_update_override,

         p_update_change_insert    => lb_update_change_insert  ); 

 

   IF ( lb_correction = TRUE )

   THEN lc_dt_ud_mode := 'CORRECTION';

   end if;

   IF ( lb_update = TRUE )

   THEN lc_dt_ud_mode := 'UPDATE';

   END IF; 

   IF ( lb_update_override = TRUE  )

   THEN lc_dt_ud_mode := 'UPDATE_OVERRIDE';

   end if;

   IF (lb_update_change_insert = TRUE)

   THEN lc_dt_ud_mode := 'UPDATE_CHANGE_INSERT';

   end if;

  

   RETURN lc_dt_ud_mode;

   EXCEPTION WHEN OTHERS THEN 

   L_ERROR := SQLERRM;

END;