Very nice illustration of cloud services… Came across this in a LinkedIn post so thought of sharing
Enabling & Disabling Concurrent Program Parameter Dynamically
20 MarEnabling and disabling a parameter (for taking a valid date) in a concurrent program depending on another parameter
Let’s do this with one example.
There is a concurrent program named XXX Invoice Generation which has 2 parameters
Document Type (Others & Sun Trns) and Date
Date field should be enabled only when the Document Type is Sub Trns or else it should be disabled. Also when the Date parameter is enabled, it should accept only dates
So here we have 2 requirements
- Enable and Disable the Date parameter based on the value in Document Type parameter
- Accept only valid dates in Date parameter
So actually to achieve the enable and disable of the Date parameter, we need to have a dummy parameter created which will not be displayed and the same should not be used in the code present in background.
So there will be 3 parameters in the concurrent program
Document Type:
Here in this example the parameter is created as Type and prompt as Document Type which is attached to a value set TEST_TYPE which is of type independent and has the values “Others” and “Sub Trns”.
Dummy1:
This is the Dummy parameter which is created to control the enabling disabling of the Date parameter.
This parameter is attached to a valueset DUMMY1 which is of type independent and has the values “Y”.
Also set default value to populate Y when the Document Type is Sub Trns else NULL
select decode(:$FLEX$.Type,’Sub Trns’,’Y’, null) from dual
So when Document Type is “Sub Trns”, Dummy1 value will be Y or else NULL
Date:
This parameter will behave based on the values in the Dummy1 Parameter
So to achieve this, we need to use a table type valueset where we need to put the validation for validating with Dummy1 parameter value.
So as per the requirement when Document Type is “Sub Trns”, then Date should be enabled which means when Dummy1 value is Y.
Using above setup enabling and disabling of the Date parameter can be achieved.
Normally this could have been validated using a valueset FND_STANDARD_DATE but that is of Validation Type None and we cannot have the enabling and disabling functionality if we use this.
So technically to achieve this, we need to tweek the requirement little bit.
We cannot have a plain valueset which will simply validate whether it’s a valid date or not. Instead, as we are using a table type valueset to trigger the enabling and siabling of the parameter, we have to create and use a view which will hold dates for certain period like in this example, last 6 months and next 6 months date. And pull the dates from the view in the valueset.
So when user enters a date, it will validate with the list of values for date between last and next 6 months and allow to proceed further.
FROM DUAL CONNECT BY LEVEL <= 360)
Normal date condition can be also achieved with valueset type as special and with Validate condition as
IF ‘AND :$FLEX$.Dummy1’ ‘Y’ THEN
NULL;
END IF;
END;”
Oracle HRMS Extra Information Types
31 JanHRMS Extra Information Types(EIT)
Extra Information Types allow users to hold unlimited amounts of extra information on people, assignments, locations, positions, jobs and organizations.
The format of this data is defined by the user in descriptive flexfield structures and accessed via Extra Information forms that can be added to taskflows and menus.
Defining an Extra Information Type
You define EITs in the relevant descriptive flexfield.
Then create segments to hold the information you want to record, as you would for any other descriptive flexfield.
Then freeze the flexfield structure.
Registering an Extra Information Type
Each Extra Information Type needs to be registered in the relevant EIT table (example, PER_PEOPLE_INFO_TYPES for Person EITs).
This is done by running the concurrent process ‘Register Extra Information Types (EITs)’.
The Parameter ‘Table Name’ uses a LOV which, as well as the table name, displays the EIT name associated with that table. After selecting the Table Name, you select the ‘Information Type’ which is the name of the dff context you created for this new EIT. Enter values for ‘Multiple Rows’ (‘Yes’ if more than one set of values can be entered for this EIT); ‘Legislation Code’; and ‘Description’.
If the new EIT is an Organization EIT then you can also restrict it to a single classification using the ‘Organization Classification’ parameter. It will then be available from the ‘Others’ button only for the relevant classifications.
Restricting Access to Extra Information Types
To allow a responsibility to access an EIT, you need to navigate to the Information Type Security form in HRMS
Organization EITs are not visible in the Information Type Security form
They are automatically accessible from the Others button in the Define Organization screen
Adding Extra Information Types forms to a Taskflow
Task flow nodes for all EIT forms are seeded, but not included in any seeded task flows.
So you will need to either update an existing taskflow or create a new one in order to access the EIT forms.
Use the Define Task Flows screen to create or update your task flow.
Adding EIT forms to a Menu
It is necessary to create a function for a new task flow before it can be added to a menu.
In System Administrator
Go to the Define Menu screen
There is also a seeded function for each EIT form that could be added to a menu.
Example
Table & API Information
New contexts for the EIT descriptive flexfields are held in FND_DESCR_FLEX_CONTEXTS, and the segments are held in FND_DESCR_FLEX_COL_USAGE as with any other descriptive flexfield.
An EIT is registered by inserting a row into the relevant EIT table. The information here includes the EIT name, legislation code and whether the EIT allows single or multiple entry.
The EIT tables are:
HR_LOCATION_INFO_TYPES
PER_JOB_INFO_TYPES
PER_POSITION_INFO_TYPES
PER_PEOPLE_INFO_TYPES
PER_ASSIGNMENT_INFO_TYPES
HR_ORG_INFORMATION_TYPES
For Organization EITs it is also necessary to link the EIT with an organization classification. This link is held in HR_ORG_INFO_TYPES_BY_CLASS.
PER_INFO_TYPE_SECURITY is used to hold the EITs that a responsibility may access (excluding organization EITs). This information is entered in the Information Type Security form
The location of the data entered into EITs depends on the EIT type (eg Person EIT, Org EIT, etc).
The tables holding this data are:
HR_LOCATION_EXTRA_INFO
HR_ORGANIZATION_INFORMATION
PER_JOB_EXTRA_INFO
PER_POSITION_EXTRA_INFO
PER_PEOPLE_EXTRA_INFO
PER_ASSIGNMENT_EXTRA_INFO
There are a number of APIs which allow you to create, update and delete EIT information:
create_location_extra_info,
update_location_extra_info,
delete_location_extra_info
create_job_extra_info,
update_job_extra_info,
delete_job_extra_info
create_position_extra_info,
update_position_extra_info,
delete_position_extra_info
create_person_extra_info,
update_person_extra_info,
delete_person_extra_info
create_assignment_extra_info,
update_assignment_extra_info,
delete_assignment_extra_info
Oracle Order Fulfilment: Back to Back Order
18 Nov2. Purchase those items from the supplier (PO) and receive them into the warehouse.
3. Ship those items to the customer (OM).
Create a B2B Item
Go to Inventory > Items > Master Items and define the item as follows :
Enter item name and description.
From Tools > Copy From, apply the Purchased Item template.
In the Purchasing tab, enter a value in the List Price field.
In the General Planning tab, set the Make or Buy flag to Buy
In the Work in Process tab, make sure the Build in WIP flag is checked
In the Order Management tab, check the Assemble to Order flag (ATO).
B2B item must be created at item validation org.
Same item in same item validation org cannot be both stock item and a B2B item
Define Sourcing rule for the item
Assign the item to the price list
Back to Back Order Flow
Create Order
Go to OM > Orders, Returns > Sales Orders.
Create a sales order with Order Type Mixed and enter the B2B item created in previous step in the lines for any quantity.
Book the order. Note down the Order Number
The line status will move to Supply Eligible (flow_status_code SUPPLY_ELIGIBLE).
Place cursor on the line and go to Actions > Progress Order > Select Create Supply Order – Eligible to progress the workflow of the line
The line status will now show PO-ReqRequested/External Requisition Requested (flow_status_code PO_REQ_REQUESTED).
OM has inserted a record in the PO requisitions interface table.
Go to Purchasing > Reports > Run and run the concurrent program Requisition Import with the Import Source parameter = CTO. Leave the other parameters as default. The concurrent program can also be run from OM > Orders, Returns > Requisition Import.
Go to View > Requests and verify that the Requisition Import has completed successfully.
The line status of the sales order line will now show PO-ReqCreated/External Requisition Open (flow_status_code PO_REQ_CREATED)
From the sales order line, go to Tools > Scheduling > Reservation Details > ‘Supply’ tab. Verify that the order line is reserved against the requisition. Note down the requisition number seen in this window.
Go to Purchasing > Requisitions > Requisition Summary.
In the Find Requisitions window, enter requisition number found in the previous step and click on Find.
Verify that the status is Approved
Go to Purchasing > Autocreate.
From Edit > Clear > Record, clear any query criteria that may be defaulted like buyer, requester etc.
Enter requisition number and click Find.
Check the checkbox to the left of the line, and click on Automatic. Enter the Supplier and Supplier site such as the following and click on Create
Once the PO created, enter the supplier and site details and once everything is OK, approve the PO
The line status of the sales order line will now show PO-Created/PO Open (flow_status_code PO_CREATED)
From the sales order line, go to Tools > Scheduling > Reservation Details > ‘Supply’ tab. Verify that the order line is reserved against the PO
Go to Purchasing > Receiving > Receipts.
Enter Purchase Order number and click on Find.
In the Receipts window, check the checkbox to the left of the line and enter and save the receipt
Go to Purchasing > Receiving > Receiving Transactions Summary.
Enter the Purchase Order number and click on Find.
Click on the Transactions button.
Verify a Receive and Delivery transaction. This means that the B2B item has been received into Inventory.
The line status of the sales order line will now show Awaiting Shipping (flow_status_code = AWAITING_SHIPPING).
On the sales order line, Tools > Scheduling > Reservation Details will now show that the item is reserved against Inventory in Subinventory = FGI (PO has been received in this subinventory).
Useful queries
select * from po_requisitions_interface_all
where interface_source_line_id = &order_line_id
and interface_source_code = ‘CTO’;
SQL Script for getting the details of Inventory Org to Business Group
5 OctBelow Script will help you to get the Inventory Org to Business Group details with Legal Entity, Operating Unit, Ledger, Period details, Inventory Validation org and Purchase Validation org for the Operating unit
This script is in the context of Oracle R12
——————-
select mp.organization_code org_code,
org.organization_id org_id,
org.name org_name,
hl.location_id,
hl.location_code,
hl.address_line_1,
hl.address_line_2,
hl.address_line_3,
hl.town_or_city,
hl.country,
hl.postal_code,
ou.organization_id ou_id,
ou.name OU,
le.legal_entity_id le_id,
le.name LE,
gl.ledger_id,
gl.name primary_ledger,
gl.currency_code,
bg.name bg,
(select organization_code
from apps.mtl_parameters
where organization_id =
(select parameter_value
from apps.OE_SYS_PARAMETERS_ALL
where parameter_code = ‘MASTER_ORGANIZATION_ID’
and org_id = ou.organization_id)) IVO,
(select organization_code
from apps.mtl_parameters
where organization_id =
(select inventory_organization_id
from AP.FINANCIALS_SYSTEM_PARAMS_ALL#
where org_id = ou.organization_id)) PVO,
(select period_name || ‘ : ‘ || open_flag
from apps.ORG_ACCT_PERIODS
where period_start_date <= trunc(sysdate)
and schedule_close_date >= trunc(sysdate)
and organization_id = mp.organization_id) inv_period,
(select period_name || ‘ : ‘ || show_status
from apps.GL_PERIOD_STATUSES_V
where start_date <= trunc(sysdate)
and end_date >= trunc(sysdate)
and ledger_id = gl.ledger_id
and application_id = 101) gl_ledger_period,
(select period_name || ‘ : ‘ || show_status
from apps.GL_PERIOD_STATUSES_V
where start_date <= trunc(sysdate)
and end_date >= trunc(sysdate)
and ledger_id = gl.ledger_id
and application_id = 200) AP_period,
(select period_name || ‘ : ‘ || show_status
from apps.GL_PERIOD_STATUSES_V
where start_date <= trunc(sysdate)
and end_date >= trunc(sysdate)
and ledger_id = gl.ledger_id
and application_id = 222) AR_period,
(select period_name || ‘ : ‘ || show_status
from apps.GL_PERIOD_STATUSES_V
where start_date <= trunc(sysdate)
and end_date >= trunc(sysdate)
and ledger_id = gl.ledger_id
and application_id = 201) PO_period
from apps.XLE_ENTITY_PROFILES le,
apps.HR_ALL_ORGANIZATION_UNITS ou,
apps.HR_ALL_ORGANIZATION_UNITS org,
apps.HR_ALL_ORGANIZATION_UNITS bg,
apps.mtl_parameters mp,
apps.GL_LEDGERS gl,
apps.HR_ORGANIZATION_INFORMATION ouinfo,
apps.HR_ORGANIZATION_INFORMATION orginfo,
apps.hr_locations hl
where mp.organization_id = org.organization_id
and org.organization_id = orginfo.organization_id
and org.location_id = hl.location_id
and orginfo.org_information_context = ‘Accounting Information’
and orginfo.org_information3 = ou.organization_id
and orginfo.org_information1 = gl.ledger_id
and orginfo.org_information2 = le.legal_entity_id
and ou.organization_id = ouinfo.organization_id
and ouinfo.org_information_context = ‘Operating Unit Information’
and ouinfo.org_information2 = le.legal_entity_id
and ouinfo.org_information3 = gl.ledger_id
and bg.organization_id = ou.business_group_id
and mp.organization_code in (‘V1’);
Oracle Order Management Pick Release Process
19 AugPick Release is the process of Picking the order for ship confirming.
This process includes 3 parts, Move Order creation and Move order Allocation and Move order transaction.
When you do a pick release, it will create a move order, as per the details you have provided in the picking process, it will allocate the move order from the satisfied subinventory, locator, lot, serial, LPN.
And as per the criteria (whether auto pick confirm is Yes or No), it will transact the move order as well.
So in Shipping transaction form, the flow will happen like this
1. Ready to Release: The order is booked and ready and you can run the pick release on this
2. Released to Warehouse: Once you did pick release and if the pick release successful, it will be changed to Released to warehouse. Also if no order satisfies the criteria what you have given, then the status will remain as it is. If Auto Pick confirm is set as Yes, this satus will never come and it will move to next status Satged/Pick released.
3. Backordered: If there is no satisfied source find during the process of pick release, delivery details will be back ordered.
4. Staged/Pick Confirmed: Once pick release process including pick confirm completes (depends on the Auto pick confirm flag), status will be changed to this.
Auto Pick Confirm flag under shipping tab
Pick release can be done in different ways
Navigation:
Order Management –> Shipping –> Release Sales Order
Using Release Sales Orders form
Here you can enter all required parameter and release the orders either in concurrent or in online method.
In this method, you can pick release individual orders and restrict them with different parameters in the order tab.
Using Release Sales Orders SRS
Define Release Rule Form:
Post pick Release and Debugging
WMS Label Format Setup and Demo
6 AugLabels are an integral part of WMS functionalities.
This will help in easy transaction, clear tracking and using this transactions can be automated.
Oracle provides different types of labels to setup as per your business transactions.
Supplier labeling speeds-up the receiving process by enabling bar code scanning of inbound purchase orders, that results in less receipt processing time, immediate recognition of available materials, and higher receiving accuracy.
Below is the step wise setup with an example for clear understanding
Create an Item
Navigation:
Inventory Super User -> Inventory -> Items -> Master Items
Tools -> Organization Assignments
Define Label Format
Warehouse Manager -> Setup -> Warehouse Configuration -> Printers & Devices -> Define Label Format
Assign Label Format to Business Flow
Setup -> Warehouse Configuration -> Printers & Devices -> Assign Label Format to Business Flow
Create Label Format Rule
Setup -> Warehouse Configuration -> Rules -> Warehouse Execution -> Rules
Do A transaction to understand how it works
Check the generated Labels
Warehouse manager -> Inquiry -> View Label Requests
Oracle WMS: Curtail Pick
28 JulCurtail Pick
To raise a task exception in Oracle Warehouse Management, a transaction reason set up is required and it should be linked to the reason type. While entering an exception during the picking process, we need to select the reason for the exception.
Curtail Pick and Pick None are the two reason contexts, in which Pick None is applied when there is no need to perform the task from that locator or the system assumes that there is no on-hand quantity available in that locator while Curtail Pick ends the picking process after picking a few license plate numbers (LPN) or lots and loads the contents.