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>
If we have a multi stop shipment and each stop has refnums or remarks or involved parties, and when you try to unassign the orders related to one of the stops in between, otm throws error . This will be fixed in Otm 6.2.7
** Update, there was data consistency issues after the fix in 6.2.7 (Patch is available), Ask oracle for a Patch
Workaround -
1. Manually delete the refnums and other stop level data from shipment before unassigning orders related to the stop
2.change the process to populate the stop level remarks before Tendering the shipment
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
Typeahead or Autocomplete option in OTM generates lot of sql queries on DB server.
For Example : in Location Field , if you start typing the first 3 characters, OTM would return list of matches.
What actually happens in the background is OTM generates a query something like this : “ Select location_Xid from location where location_xid like ‘ABC%’ “
Imagine lot of users on the screens trying to fill the fields and OTM generating lot of autocomplete queries wil add lot of queries and load on db server.
Depending on DB Server capacity and connection Pools, this may or may not be an issue..
Adjust these glog.properies to manage this option
glog.ui.autocomplete=false (To turn off autocomplete )
glog.ui.autocomplete.start=3 ( change this to a higher value to see performance and adjust as needed)
Troubleshooting Error - “MAC Address --- of adapter Ethernet0 is within the reserved address range or Adapter Ethernet0 many not have network connectivity”
This error will appear when copy of a VM Image is running in parallel with the original VM and you chose ‘I Moved it’ when prompted by VMware.
Solution
1. Shutdown the VM which has the error.
2. Go to the VM’s (The VM which is generating error) Folder and change the Folder Name .,. (change to any thing)
3. Launch the VMX File and VMware generates the same prompt, choose “I Copied it”
This will fix the problem
.
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..
To view all the active ports on Linux and view the current state -
If you have sudo Access you can provide p option
p option will only provide program name – this is not mandatory
netstat -ntulp
Without sudo or root access, you can run with out p option
netstat -ntul
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
In OTM, you can import a XML file to test your transaction templates by manually uploading them in Integration Manager. This process would not essentially simulate the way transactions are sent to OTM through Middleware. You can also use this to load test by sending large number of transmissions to OTM (using Bulk Load from Folder)
You can use below tool to post a transmission to OTM servlet to simulate external system.
Use URL as-
http://yourhost:port/GC3/glog.integration.servlet.WMServlet
Select required XML File. Make sure you set USERNAME and PASSWORD nodes as required..
/* This program is free software. It comes without any warranty, to
* the extent permitted by applicable law. You can redistribute it
* and/or modify it under the terms of the Do What ever you Want
* To Public License, Version 2, as published by Sam Hocevar. See
* http://sam.zoy.org/wtfpl/COPYING for more details. */Download Here <>