February 15, 2026

Business Numbers

Navigation: Business Process Automation > Power Data > Business Numbers > Business Number Rule

OTM provides default XID sequences for all the business objects likes order bases, order releases, shipments, invoices, etc. However if we need to change the default sequences based on business specific requirements, we can create custom business number rules.

Every rule definition consists of one or more instructions, which are set in braces, { }. Literal text, if any, appears outside the braces. For example, this is the default rule definition for the invoice ID:

{ dddddddd:id=1}-{nnnn:contexts=1:start=1}

Common expression formats:

{dddddddd:id=1} for dates in YYYYDDMM format

{nnnn:start=1000:end=4999} for a 4 digit number starting with 1000 and ending with 4999

To edit the existing BN rule.

1.     Make sure that it is not set as the Default rule.

2.     Create a new BN rule and set that as the Default.

3.     Specify the rule defintion. The rule definition determines how the generated number is formed.

4.     Make sure that the BN Type on your new rule matches the BN type that you found earlier, otherwise the system will not generate the number.

Backend table:

BN_SEQUENCE table maitains two critical columns - BN_CONTEXT and CURVALUE. Both the values are derived from BN rule.
Example: 

BN Rule for bulk plan ID is: {dddddddd:id=1}-{nnnn:contexts=1:start=1}

If 10 bulk plans are run for a particular day, they look like below:

BN_SEQUENCE maintains CURVALUE with last or max sequence for that context as shown below so that bulk plan takes 0010+1 = 0011 as next ID in below example:

SELECT *
  FROM BN_SEQUENCE bs
 WHERE BN_RULE_GID ='DOMAIN_NAME.BULK_PLAN_XID.DEFAULT'
   AND BN_CONTEXT= '20210126'
 ORDER BY insert_date DESC;



A problem scenario: If you are generating ORDER_MOVEMENT_XID.DEFAULT as below:

{r*:id=1:xml=ORDER_RELEASE}-{nnn:contexts=1:start=1}

If there are 999 order movements created, creation of next order movement will fail as it will be four-digit number.

Business Monitors

The Business Monitor as the name suggests is designed to monitor critical business functions associated to the role or specific user. For example, if a planner wants to review bulk plan failed orders, define a query identify such orders and a screen to display these orders and add them to business monitor. Business monitor can then be attached to user or role evel.

You can launch it by clicking on flag icon at top of the page:


Creating a Business Monitor:

Assuming that required saved queries and screensets are already created, lets see how to create a Business Monitor:

  1. Navigate to Configuration and Administration -> Preferences -> Manager Business Monitors
  2. Click on 'New' Button
  3. Enter the follow details 
    • Business Monitor ID* : Unique ID to identify a business monitor
    • Refresh Interval (in Minutes): Enter the frequency of BM Refresh
    • Domain Name: Choose it from drop down button
  4. Enter the Sequence, Query ID (OrderBase/OrderRelease/etc), Saved Query ID, Screen Set ID (Data will be opened in this screen set). Click on save button
  5. Repeat step 4 to enter all Saved queries & relevant screensets.
  6. Click on Finish to save the Business Monitor setup data. 

Assigning Business Monitor to a user or user role:

After BM is created, it can be linked to a user preference, than that preference can be assigned to a user or a role. 

  1. Navigate to Configuration and Administration -> Preferences -> User Preference
  2. Search for the User Preference you want to attach the Business Monitor
  3. Click on the Edit
  4. Select 'Business Monitor' from the name and choose the Business Monitor ID under the 'Value' drop down list. 
  5. Click on Finished.
Disable/Enable Business Monitor Auto Refresh:

When creating a Business Monitor, we can specify the refresh interval. If your BM has too many saved queries which results in lot of data, Auto Refresh could be a disadvantage for the application. For every refresh interval, it has to run all the saved queries, get their counts and display it. This will be a lot of load on the database. 
Disabling Business Monitor Auto Refresh is a very common activity done to improve the database performance. 

To disable, change the below setting to
glog.webserver.businessMonitor.autoRefresh=false

To Enable
glog.webserver.businessMonitor.autoRefresh=true

Database tables and SQL:

Table BUSINESS_MONITOR: Stores the Business Monitors defined by users

Table BUSINESS_MONITOR_D: Stores the Saved Query, Screenset details of a particular Business Monitor ID

How to find BM for a user ? 

SELECT UPD.PREFERENCE_GID,UPD.USER_PREFERENCE_VALUE,GU.*

  FROM USER_PREFERENCE_D UPD,

       USER_PREFERENCE_ACCESS UPA,

       USER_ACCESS UA,

       GL_USER GU

 WHERE UPD.PREFERENCE_GID = 'BUSINESS_MONITOR'

   AND UPA.USER_PREFERENCE_GID = UPD.USER_PREFERENCE_GID

   AND UPA.USER_ACCESS_GID = UA.USER_ACCESS_GID

   AND UA.ACCESS_TYPE =  'USER_PREFERENCE'

   AND UA.USER_ROLE_GID = GU.DEFAULT_USER_ROLE_GID

 


Agent Gates

Navigation: Business Process Automation > Power Data > Event Management > Agent Gates

Agent Gates can be used to add custom conditions via saved query to control standard OTM events/worfklows. Agent Gates work at domain level.

Validation can be either used to extend standard validations or completely replace standard validations. If validation fails, standard workflow stops. 

For example, you can stop tender worklfow for specific transport modes using below configurations:

  • Object type: SHIPMENT
  • Status Function: WKFLW_TENDER
  • Functor Class: glog.server.workflow.shipment.ShipmentStatus$Tender
  • Saved Condition ID: Write SQL with your custom business rules
  • Check 'Saved Condition Additive'

February 14, 2026

Yard Management

 

A warehouse usually has - Parking Yard and Dock Doors. Yard will have Rows and Each Row has some defined number of slots. Container will first be placed in the Yard slot. Users at warehouse will pull the container from Yard Slot to Door for unloading. Usually, responsibility of the carrier is to bring the container from port to yard. To move a container from Port to Yard – we can have a custom container ranking algorithm based on certain parameters (like PO priority, delivery dates, etc.)  to give ranking to containers. Users at warehouse can use this rank to identify what containers they need to pull to the door at the earliest.

Once the shipment/container is in the yard slot, next step is to assign shipment to a door where loading/unloading happens. This step is called scheduling an appointment. Door will have time slots (30 min slot etc.) for loading or unloading activity that can be configured on the location resource.

Depending on the requirement, the Drayage carrier should be notified once the appointment is made in the system for a specific container. This is usually done by sending a tender offer EDI 204 file with expected delivery time and other details like Yard/Door No. Fpr example, EDI 204 can be triggered based on status update events from Ocean carrier like ‘Available for Delivery’ etc.

Below are the OTM location resource level configurations to define the yard:


Once location resource level yard is defined, you can use custom logic to select shipments that are eligible to be displayed in the yard using business rules. For example, shipments/containers that are unloaded at destination port can be made visible in the yard. In this example, yard can be virtual yard just to give warehouse users visibility on what containers they can expect in coming days.Also, high priority shipments can be assigned to first rows and slots so that warehouse users can pull shipments for appointment scheduling from left to right and bottom down approach on the yard manager screen.

Using all this custom logic, insert entries in Yard table as shown below:


Once shipments are inserted into yard table, we can see them in UI with below navigation:

Operational Planning > Appointment Management > Dock and Yard Managers > Query location > Actions > Manage Yard


In the above screen, display text on shipments can be configured using glog property below (second one):



August 22, 2020

Basic OTM Configurations - 01 - Domain, Items, Locations, and Equipment

Note: Below configurations are shown from 6.3.7 version of the OTM app. These posts are numbered to cover a typical end to end transaction flow that happens in OTM at a very high level. 

Basic OTM Configurations - 01 - Domain, Items, Locations, and Equipment
https://www.oracle-otm.com/2020/08/basic-otm-configurations-01-domain.html

Basic OTM Configurations - 02 - Itinerary
https://www.oracle-otm.com/2020/08/basic-otm-configurations-02-itinerary.html

Basic OTM Configurations - 03 - Service Provider and Rates
https://www.oracle-otm.com/2020/08/basic-otm-configurations-03-service.html

Basic OTM Configurations - 04 - Business Numbers, Planning Parameter
https://www.oracle-otm.com/2020/08/basic-otm-configurations-04-business.html

Basic OTM Configurations - 05 - Bulk Plan
https://www.oracle-otm.com/2020/08/basic-otm-configurations-05-bulk-plan.html

Basic OTM Configurations - 06 - Tender process
https://www.oracle-otm.com/2020/08/basic-otm-configurations-06-tender.html

Basic OTM Configurations - 07 - Invoicing
https://www.oracle-otm.com/2020/08/basic-otm-configurations-07-invoicing.html

Basic OTM Configurations - 08 - Voucher Allocation
https://www.oracle-otm.com/2020/08/basic-otm-configurations-08-voucher.html

Below is a typical OTM end to end flow in it's most simple/vanilla usage. Readers can explore more on each of the below topics and use this as starting point to understand basic OTM configurations using OTM Help documentation.

Business Scenario:

There is Toys Corporation (TCRP) with one DC/Warehouse and three stores in 3 different cities. DC distributes items – Item A, Item B and Item C to three locations (store locations). TCRP has contract with two carriers (SGTM, PNDP) to support their logistics needs and these carriers use their 20 foot, 40 foot or 50 foot equipments. As specified below each carrier supports specific itineraries/legs for TCRP.

TCRP wants to optimize their transport costs using "bulk planning" feature of OTM app and settle invoices for the transport services provied by these carriers.

Below is a draft overview of what we are trying to implement:

We can map above locations to real time locations as below:

  • DC/Warehouse location in Indianapolis, IN, 46202
  • Loc_A in Nashville, TN, 37203
  • Loc_B in Charlotte, NC, 28078
  • Loc_C in Atlanta, GA, 30303



Domain:

Create a new domain TCRP to store the configurations and transaction data related to this business scenario. 

Config and Admin > Domain Management > Add Domain


 

 Login to this new domain with default ADMIN user and CHANGEME as password:

Once you login, you will see: 
Items:

Define three items ITEMA01, 02, 03
Order Management > Material Management > Item:
 
Item Dimensions:
Item Weight = 2 LB. 

Other item dimensions are updated as below:

 

Locations:

First, let's create for required locations as shown below:
Shipment Management > Location Manager

Create Warehouse/DC location: DC_TCRP with below details:




 

Create other 3 store locations with role as ship from/to:
 


Equipment 
 
Define equipment groups  – 20_FT, 40_FT, 53_FT with below data:
Shipment Management > Equipment Management > Equipment Groups:

Define Equipment Group Profiles with below data:
Shipment Management > Equipment Management > Equipment Group Profile: