Thursday 21 March 2013

A simple and easy step to Oracle applications Inventory management



A Simple and easy steps to

Oracle applications Inventory management 


---------------------------------------------------------------------------------------------------------------
Oracle Applications
Simple and easy steps to Oracle applications Inventory management
A beginner’s guide for Oracle applications Inventory management



What is Oracle Inventory Management?

Good inventory management is everything about knowing what is on hand (On hand quantity), where it is in use (Shipment and cross inventory), and how much finished product results.





In Oracle inventory there are many things which treated as inventory it could be
         

·        Finished goods.

·        Spare parts.

·        Services.

·        Raw materials.

·        Purchased inventory for own purpose.


What inventory can do?

 

Oracle inventory can

 

·        Gives parts their own unique identification numbers.

·        It can help you to plan replenishment.

·        It can give you Statistics about your on hand availability of products.

·        Forecast for material management.

·        Receive faulty products.

·        Issue products and materials and many more.


Life Cycle - Receipt to Issue  


For managing the Inventory Oracle Inventory uses the process which is named as RECEIPT TO ISSUE this process works as -
                                             When any inventory reaches in our warehouse we receive the inventory .After receiving we can transfer the received inventory within our organisation and to other organisation and after all we can issue material from Oracle inventory

  
Receipt to Issue

Receive Inventory -
                                   
We can Receive material by so many different ways which are
  • Purchasing.
  • Work in process.
  • Inventory (Receive from different inventory)
Transfer Inventory - 

                                  By using different applications we can generate request to transfer inventory
  • Shipping.
  • Order Management.
  • Work in process.
  • Inventory .
Issuing Inventory - 

                                  The following Applications can be issued to issue material

  • Order management.
  • Purchasing.
  • Work in process.
  • Inventory.

Inventory Organization Structure

In Inventory organization you can store and transfer items and one organization can have more than one inventories.
by the book definition "Sub inventory are unique physical or logical separation of material inventory  "
In Oracle inventory items or material under all organization is kept in sun inventories.
In sub inventory there is Locators or we can say one sub inventory can have more than one locators.
these locators help us to identify physical area where we put inventory items. Tracking of items is possible with the help of locators 

 

inventory organization structure

Unit of measure -

Item -
 

 


Tuesday 19 March 2013

Steps to develop report in Oracle Business Intelligence Discoverer


Oracle Applications

Simple and easy steps to Oracle Business Intelligence Discoverer

A beginners guide for Oracle Business Intelligence Discoverer

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

Steps to develop report in Oracle Business Intelligence Discoverer

Following are the steps to develop report in Oracle discoverer. Query is developed in Discoverer Administrator and Layout is developed in Discoverer Desktop or Discoverer Plus. Example is of Purchase Order report.

Note:- This is for the beginners and knowledge of basic terms of Discoverer is required.

Discoverer Administrator

  1. Login into Discoverer Administrator.
  2. Select Responsibility. For e.g. Responsibility4
  3. Select Business Area.  For e.g. The Common Reports
  4. Create New Custom Folder and enter SQL Query and give name to that folder as per the standards. If you want to develop using View then select New Folder from Database.
  5. Validate the SQL. Click OK.

Discoverer Desktop

  1. Login into Discoverer Desktop.
  2. Select Responsibility. For e.g. Responsibility4
  3. Create New Workbook and select display results(Table, Crosstab, Page-Detail Table and Page-Detail Crosstab) as per requirement.
  4. Select the folder or required fields of folder for which you are creating Workbook.
  5. Make the layout as per requirement by rearranging the fields and adding fields to Page Items. Hide duplicate rows by clicking the check box (if necessary).
  6. Add conditions if required.
  7. Sort the fields as per requirement.
  8. Perform calculations on fields as per requirement and click on Finish.
  9. Finally the report is developed and it looks like this.



Monday 18 March 2013

Introduction to Oracle Business Intelligence Discoverer

Oracle Applications

Simple and easy steps to Oracle Business Intelligence Discoverer

A beginners guide for Oracle Business Intelligence Discoverer

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


Introduction to Oracle Business Intelligence Discoverer


Discoverer provides easy access to data to end users which will be useful for data analysis and set-up ad-hoc queries in a graphical environment.
There are 3 tools in Oracle Business Intelligence Discoverer :-
  1. Oracle Business Intelligence Discoverer Administrator.
  2. Oracle Business Intelligence Discoverer Desktop.
  3. Oracle Business Intelligence Discoverer Plus.

 Oracle Business Intelligence Discoverer Administrator  -  The Oracle Business Intelligence Discoverer Administrator is a Windows application which is used by the Discoverer manager for creating and maintaining a business oriented view of relational data.
Oracle Business Intelligence Discoverer Desktop  -  The Oracle Business Intelligence Discoverer Desktop is a Windows application which enables end users to build new worksheets for analysing relational data.
Oracle Business Intelligence Discoverer Plus  -  The Oracle Business Intelligence Discoverer Plus runs over the internet which will create new worksheets and graphs to get the data you want, analyse the data, share worksheets & graphs with other people like Oracle Business Intelligence Discoverer Desktop. It has some extra features than Oracle Business Intelligence Discoverer Desktop.

Friday 15 March 2013

API to update Item Status

Oracle Applications

API to update Item Status

- A beginners guide :- API to update Item Status.

- Responsibility :- Inventory Manager.

- EGO_ITEM_PUB.Process_Items

Sample Code: 
/*-------------------------------------------------------------------------------------------------------*/
DECLARE
  l_item_table       EGO_Item_PUB.Item_Tbl_Type;
  x_item_table      EGO_Item_PUB.Item_Tbl_Type;
  x_return_status  VARCHAR2(1);
  x_msg_count     NUMBER(10);
  x_msg_data       VARCHAR2(1000);
  x_message_list   Error_Handler.Error_Tbl_Type;

BEGIN
--Apps Initialize
fnd_global.apps_initialize
                            (user_id      => 57260,      --&userid,                             
                             resp_id      => 57122,      --&resp_id
                             resp_appl_id => 20063); --&resp_appl_id

  -- Item definition
  l_item_table(1).Transaction_Type := 'UPDATE';
  l_item_table(1).Segment1 := 'RCR24201 REV-7';
  l_item_table(1).Organization_id := 2990;
  l_item_table(1).attribute_category := 2990;

-- Calling procedure
EGO_ITEM_PUB.Process_Items
  EGO_ITEM_PUB.Process_Items(
--Input Parameters
                             p_api_version   => 1.0,
                             p_init_msg_list => FND_API.g_TRUE,
                             p_commit        => FND_API.g_TRUE,
                             p_Item_Tbl      => l_item_table,

--Output Parameters
                             x_Item_Tbl      => x_item_table,
                             x_return_status => x_return_status,
                             x_msg_count     => x_msg_count);

  DBMS_OUTPUT.PUT_LINE('Items updated Status ==>' || x_return_status);

  IF (x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
    FOR i IN 1 .. x_item_table.COUNT LOOP
      DBMS_OUTPUT.PUT_LINE('Inventory Item Id :' ||
                           to_char(x_item_table(i).Inventory_Item_Id));
      DBMS_OUTPUT.PUT_LINE('Organization Id   :' ||
                           to_char(x_item_table(i).Organization_Id));
    END LOOP;
  ELSE
    DBMS_OUTPUT.PUT_LINE('Error Messages :');
    Error_Handler.GET_MESSAGE_LIST(x_message_list => x_message_list);
    FOR i IN 1 .. x_message_list.COUNT LOOP
      DBMS_OUTPUT.PUT_LINE(x_message_list(i).message_text);
    END LOOP;
  END IF;
 END;

/*-------------------------------------------------------------------------------------------------------*/  

Sales Order Types

Oracle Applications

Drop Shipment Orders & Back To Back Sales Order

(Beginners Guides)
Drop Shipment Order  

-In the Drop shipment order types the customer receives the product directly from the manufacturer. 
-No need to store items in a warehouse and also expenses of hiring employees to ship the product are nullified.
- This method is commonly used by smaller retail shops and internet-only stores
- The source type in line information should be External.
Back to Back Sales Order

-Scenario: Often customers order products that you do not typically stock and also do not manufacture. You may want to purchase that item specifically for this order, have the supplier ship it to you, and then combine it with other items you may have purchased or stocked to create one shipment to the customer.
-This type of orders commonly used by Wholesale Distributors who use the Sell-Source-Ship (S3) business model.
-Also called as Procure-To-Order.

API to update customer in Oracle Applications


Oracle Applications

-Simple and easy steps to oracle API for customer

-A beginners guide for oracle customer updation using API


DECLARE        
   p_customer_profile_rec_type   hz_customer_profile_v2pub.customer_profile_rec_type;
   p_cust_account_profile_id              NUMBER;
   p_object_version_number               NUMBER;
   x_return_status                             VARCHAR2 (2000);
   x_msg_count                                NUMBER;
   X_Msg_Data                                Varchar2 (2000);
   g_org_id                                      NUMBER :=Fnd_Profile.Value('ORG_ID');
   G_User_Name                           Varchar2(200):=Fnd_Profile.Value('USERNAME');
   g_resp_name                              varchar2(200):=fnd_profile.value('RESP_NAME');

CURSOR c_data_rtvl --------+=data retrival cursor
Is
  Select Hcp.Object_Version_Number Obj_Ver_No,
    Hcp.Cust_Account_Profile_Id Account_Profile
  FROM Hz_Customer_Profiles Hcp,
    Hz_Parties Hp,
    Hz_Cust_Accounts Hca
  WHERE Hcp.Attribute5   IS NULL
  AND Hca.Party_Id        = Hp.Party_Id
  AND Hca.Cust_Account_Id = Hcp.Cust_Account_Id
  And Hcp.Attribute_Category Like 'ALL_CAT'
  And Hca.Account_Number Like 'C0001%';

CURSOR c_cntx_vlu --------+=context value cursor
Is
  Select Afu.User_Id User_Id,
    Aft.Application_Id Application_Id,
    Aft.Responsibility_Id resp_id
  FROM Applsys.Fnd_User Afu,
    applsys.fnd_responsibility_tl aft
  WHERE Afu.User_Name LIKE g_user_name
  AND aft.responsibility_name LIKE g_resp_name;
Cdr_Rec C_Data_Rtvl%Rowtype;
ccv_rec c_cntx_vlu%ROWTYPE;

BEGIN
-- Setting the Context --
  Open C_Cntx_Vlu;
  Fetch C_Cntx_Vlu Into ccv_rec;
  
   Mo_Global.Init ('AR');
   Fnd_Global.Apps_Initialize (User_Id           => Ccv_Rec.User_Id,
                               Resp_Id           => Ccv_Rec.Application_Id,
                               resp_appl_id      => ccv_rec.resp_id
                              );
   mo_global.set_policy_context ('S', g_org_id);
   fnd_global.set_nls_context ('AMERICAN');
                                                                          -- Initializing the Mandatory API parameters
  For Cdr_Rec In  C_Data_Rtvl
   Loop
   p_customer_profile_rec_type.cust_account_profile_id := Cdr_Rec.Account_Profile; --first value
   P_Customer_Profile_Rec_Type.Credit_Rating :=            Null;
   P_Customer_Profile_Rec_Type.Attribute5 :=                 'S';
   p_object_version_number :=                                         Cdr_Rec.Obj_Ver_No;          --always change this also
   DBMS_OUTPUT.put_line
          ('Calling the API hz_customer_profile_v2pub.update_customer_profile');
   hz_customer_profile_v2pub.update_customer_profile
                (p_init_msg_list                         => fnd_api.g_true,
                 p_customer_profile_rec             => p_customer_profile_rec_type,
                 p_object_version_number          => p_object_version_number,
                 x_return_status                        => x_return_status,
                 x_msg_count                           => x_msg_count,
                 x_msg_data                             => x_msg_data
                );

   IF x_return_status = fnd_api.g_ret_sts_success
   Then
      --COMMIT;
      DBMS_OUTPUT.put_line ('Updation of Customer Profile is Successful ');
      DBMS_OUTPUT.put_line ('Output information ....');
      DBMS_OUTPUT.put_line (   'Object Version Number = '
                            || TO_CHAR (p_object_version_number)
                           );
      DBMS_OUTPUT.put_line (   'CDE STMT DIST = '
                            || p_customer_profile_rec_type.attribute5
                           );

   ELSE
      DBMS_OUTPUT.put_line (   'Updation of Customer Profile 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;
   EXIT WHEN c_data_rtvl%NOTFOUND;-----------look up
end loop;
   DBMS_OUTPUT.put_line ('Completion of API');
END;
/

Set Serveroutput On;
/