OTM Version 6.2.* has a bug that causes tremendous increase in Bulkplan Runtime when Rate Offerings use ExternalDrive for Transittimes (Like PCMILER).
There is a patch available in metalink .
OTM Version 6.2.* has a bug that causes tremendous increase in Bulkplan Runtime when Rate Offerings use ExternalDrive for Transittimes (Like PCMILER).
There is a patch available in metalink .
We had a requirement once to map the shipments out of OTM, but on a different system
Below is how I did it.. It might be of help..
Retrieve Shipment Stop Related Lat/Lan from OTM
SELECT SS.STOP_NUM,LAT,LON FROM SHIPMENT_STOP SS,
LOCATION LC WHERE SHIPMENT_GID='XXX.1002413'
AND SS.LOCATION_GID=LC.LOCATION_GID ORDER BY SS.STOP_NUM
Here’s the Javascript for rendering the Map
<script type="text/javascript" src="http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.2"></script>
<script type="text/javascript">
var map = null;
function RenderMap()
{
map = new VEMap('MapDiv');
map.SetDashboardSize(VEDashboardSize.Normal);
map.LoadMap(new VELatLong(39.828180,-98.57955),4,'r',false,VEMapMode.Mode2D);
var RouteLayer= new VEShapeLayer();
var shipment1 = new VEShape(VEShapeType.Polyline, new VELatLong(41.8672,-103.6575 ),
[
new VELatLong(41.8672,-103.6575 ),
new VELatLong(42.8419,-106.2818 )
]);
var shipment2 = new VEShape(VEShapeType.Polyline,
[
new VELatLong(33.776864,-84.437599),
new VELatLong(36.223227,-86.977615)
]);
shipment1.HideIcon();
shipment1.SetLineColor(new VEColor(0,225,0,1));
shipment1.SetLineWidth(3);
shipment2.HideIcon();
shipment2.SetLineColor(new VEColor(225,0,0,1));
shipment2.SetLineWidth(3);
RouteLayer.AddShape(shipment1);
RouteLayer.AddShape(shipment2);
map.AddShapeLayer(RouteLayer);
}
</script>
Here’s how Dynamic Pooling works in OTM.
Scenario
A Region serviced by Multiple Pools
With out Dynamic Pool Option (Default), OTM would select one of Pool A or Pool B in Selection Order and Try to Build a Shipment From the Pool.
OTM Would not evaluate all the Pool Options .
To handle these scnearios, we can use Dynamic Pool where OTM would evaluate all the matched Pools for a Region
To enable Dynamic Pool , set parameters as below
Login to OTM using DBA.Admin
Search for Primary_JTS in Data sources
Edit the Pool section of the Source
You can change the Maximum Capacity as required.
Note ** : Before changing this value, make sure you have enough capacity and processes limits on Oracle DB
At one of client implementation, users had a large number of updates to rate factors every week and have a large number of rate factor sources
Here’s a a simple way to update rate factors. Comment in this post if you need a copy of this ..
When you have a huge list of tasks running on the default queues, you might have some backlog / performance problems. In the example below, we have Allocations running on shipments and is backlog on the default AgentPlanning queue. It will cause other tasks triggered on queue in backlog and has to wait..
to eliminate these issues, you can create custom queues and reassign the topic workflows to the custom Queue
Here are the property settings to redirect the topic group to custom Queue
Also remember to set the threads for the new queue
When OTM sends any outbound communication, it includes the Source System URL. Sometimes this is long and clumsy depending on the installation. (Network and Internal DNS)
In order to change the URL and add a Logical System ID (Like ABC_OTMPROD) , make below changes in glog.properties (custom Section)
!remove glog.integration.senderSystemId = $glog.webserver.URL$
glog.integration.senderSystemId=ABC_OTMPROD
Before:
After
with new 6.2 Release Oracle added functionality to store parameter used for building shipment at shipment Level. This helps in using the parameter for various shipment actions with out relying on domain default parameter sets.
You can disable this if you need to in Domain Settings
To show stop activity on Shipment Map Window , make below changes in glog.properties file ( Change in Custom Section)
!remove glog.map.show_stop_activity=false
glog.map.show_stop_activity=true
If you need to validate some values when performing a user action, you can configure Action checks to do validation
for example, When a User creates a Order Base , we can validate if the base id contains any invalid / unwanted chars
select Audit Action as “Add Order Base”
Create Allow Condition as below
you can set the cause and solution labels with required error message
Assign this Action check to user or role as required…
Some times there are external systems that can be reached by proxy only. Here’s how you can set the Proxy for http communication in glog.properties
You can also set proxy for ftp comunication using below parameters
glog.integration.ftp.proxyHost
glog.integration.ftp.proxyPort
There are some instances when you need to change region details and move the details between regions . If you do this thru UI , all the internal tables (Formulated Regions) gets adjusted automatically . How ever when you change or move the details via CSV uploads.. you have a bad region formulation.
You need to clean up HNAME_SET_MEMBER table for the regions impacted. (delete all the records from that table)
Update Region table and set LOADED Flag as N for the regions impacted
and choose Formulate Regions from the UI
We can use Actions to trigger an agent manually on selected Object. Here’s how we can do it
Set Action Name as required . Set the Label (in Public Domain using DBA.ADMIN) with Relevant Name. This is the name you are going to use when setting up the Action Link in Screenset
Select Required Definition, if you are running Action on shipment Objects and Trying to invoke Agent, select RUN_AGENT_SHIPMENT. Agent ID Field shows list of Agents which can be invoked.
In Your custom screenset, go to Actions tab and add action
Select “Add Actions” and choose the Action you created above..
You can export data out of OTM using DB.XML method. its cleaner than using CSV and you can also retrieve required child records along with parent.
For example : to retrieve Shipment and associated shipment_stop records , use below query in DB.XML Export option
Query :
select shipment.*,cursor(select * from shipment_stop where shipment_stop.shipment_gid=shipment.shipment_gid) as shipment_stop from shipment where shipment_gid in (’ABC.1001’,’ABC.1002’)
Root: SHIPMENT