Sunday, March 20, 2011

API to populate loc_id HZ_LOCATIONS R12 (HZ_TAX_ASSIGNMENT_V2PUB. CREATE_LOC_ASSIGNMENT )

                                                                                                                         
This routine is used to populate loc_id after a location is created or modified. It also creates or updates a record in the HZ_LOCATIONS_PROFILES table. This is called when a customer account site is created. This is to ensure tax validation. It creates a record in the HZ_LOC_ASSIGNMENTS table with location_id (foreign key to HZ_LOCATIONS.LOCATION_ID), loc_id (foreign key to AR_LOCATION_COMBINATIONS.LOCATION_ID) and org_id (operating unit identifier)
API: HZ_TAX_ASSIGNMENT_V2PUB. CREATE_LOC_ASSIGNMENT
BASE TABLES AFFECTED : HZ_LOC_ASSIGNMENTS
TEST INSTANCE : R12.1.3 
NOTES:
Enter the value of the Parameter Location_Id as a value which exists in  HZ_LOCATIONS table.
SCRIPT:

/* Formatted on 2011/03/20 12:59 (Formatter Plus v4.8.8) */
SET SERVEROUTPUT ON;

DECLARE
   p_location_id         NUMBER;
   p_created_by_module   VARCHAR2 (500);
   p_application_id      NUMBER;
   x_return_status       VARCHAR2 (2000);
   x_msg_count           NUMBER;
   x_msg_data            VARCHAR2 (2000);
   x_loc_id              NUMBER;
BEGIN
-- Setting the Context --
   mo_global.init ('AR');
   fnd_global.apps_initialize (user_id           => 1318,
                               resp_id           => 50559,
                               resp_appl_id      => 222
                              );
   mo_global.set_policy_context ('S', 204);
   fnd_global.set_nls_context ('AMERICAN');
-- Initializing the Mandatory API parameters
   p_location_id := 28215;
   p_created_by_module := 'BO_API';
   DBMS_OUTPUT.put_line
              ('Calling the API hz_tax_assignment_v2pub.create_loc_assignment');
   hz_tax_assignment_v2pub.create_loc_assignment
                      (
                       p_init_msg_list          => fnd_api.g_true,
                       p_location_id            => p_location_id,
                       p_lock_flag              => fnd_api.g_true,
                       p_created_by_module      => p_created_by_module,
                       p_application_id         => p_application_id,
                       x_return_status          => x_return_status,
                       x_msg_count              => x_msg_count,
                       x_msg_data               => x_msg_data,
                       x_loc_id                 => x_loc_id
                      );           

   IF x_return_status = fnd_api.g_ret_sts_success
   THEN
      COMMIT;
      DBMS_OUTPUT.put_line ('Assignment of Location is Successful ');
      DBMS_OUTPUT.put_line ('Output information ....');
      DBMS_OUTPUT.put_line ('Location Id       = ' || TO_CHAR (p_location_id));
      DBMS_OUTPUT.put_line (   'Created By Moudle = '
                            || SUBSTR (p_created_by_module, 1, 30)
                           );
   ELSE
      DBMS_OUTPUT.put_line ('Assignment of Location got failed:' || x_msg_data
                           );
      ROLLBACK;

      FOR i IN 1 .. x_msg_count
      LOOP
         x_msg_data := fnd_msg_pub.get (p_msg_index => i, p_encoded => 'F');
         DBMS_OUTPUT.put_line (i || ') ' || x_msg_data);
      END LOOP;
   END IF;

   DBMS_OUTPUT.put_line ('Completion of API');
END;
/

VERFICATION SCRIPT:
SELECT location_id,
       loc_id,
       org_id,
       created_by,
       created_by_module
  FROM hz_loc_assignments
 WHERE location_id = '28215'; 

0 Responses to “API to populate loc_id HZ_LOCATIONS R12 (HZ_TAX_ASSIGNMENT_V2PUB. CREATE_LOC_ASSIGNMENT )”

Post a Comment

Disclaimer

The ideas, thoughts and concepts expressed here are my own. They, in no way reflect those of my employer or any other organization/client that I am associated. The articles presented doesn't imply to any particular organization or client and are meant only for knowledge Sharing purpose. The articles can't be reproduced or copied without the Owner's knowledge or permission.