Tuesday, July 2, 2013

ExternalDrive Bulkplan Performance Issues in OTM

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 . 

Tuesday, March 5, 2013

Creating a polyline map for mapping shipments out of OTM

 

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..

 

otmtips.blogspot.com

 

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>

Wednesday, June 20, 2012

Error when unassigning orders from a shipment with a stop level data

 

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

 

Tuesday, June 5, 2012

Planning Shipments with Dynamic Pools in OTM

Here’s how Dynamic Pooling works in OTM.


Scenario

 

A Region serviced by Multiple Pools

image

 

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

 

image

Sunday, May 6, 2012

Increasing OTM DB Pool size

 

Login to OTM using DBA.Admin

Search for Primary_JTS in Data sources

image

 

Edit the Pool section of the Source

 

image

 

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

Wednesday, May 2, 2012

Tool to update and add Rate Factors

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 ..

image

image

Monday, November 7, 2011

Creating custom queues and Reassigning Topic groups for Performance

 

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..

 

image

 

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

 

image

 

Also remember to set the threads for the new queue

Saturday, October 29, 2011

Sender System Name in OTM Outbound transmissions

 

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:

image

After

image

Saturday, May 14, 2011

Performance Tuning Options for OTM

 

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)

Tuesday, May 10, 2011

Fixing Duplicate MAC Address error on VMWARE

Troubleshooting Error - “MAC Address --- of adapter Ethernet0 is within the reserved address range or Adapter Ethernet0 many not have network connectivity”

image

 

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.

image

 

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

.

Friday, February 11, 2011

Persisting Planning Parameter at shipment Level

 

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

image

 

image

Wednesday, November 17, 2010

Showing Stop Activity on Shipment Map Page

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

Friday, October 1, 2010

Configuring Action Checks

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”

image

 

Create Allow Condition as below

image

 

you can set the cause and solution labels with required error message

image

 

Assign this Action check to user or role as required…

Tuesday, September 21, 2010

OTM External System Communication using Proxy

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

 

image

 

You can also set proxy for ftp comunication using below parameters

glog.integration.ftp.proxyHost

glog.integration.ftp.proxyPort

Thursday, July 29, 2010

Reformulating Regions and Cleaning up the Old Sets

 

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

image

image

Wednesday, June 16, 2010

Setting up manual trigger for agents | Custom Action on Screen

We can use Actions to trigger an agent manually on selected Object.  Here’s how we can do it

image

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

image

 

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

image

Select “Add Actions” and choose the Action you created above..

image

Tuesday, March 9, 2010

Viewing Active ports on Linux / Ubuntu

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

image

Without sudo or root access, you can run with out p option

netstat -ntul

image

Monday, October 12, 2009

Using DB.XML to retrieve nested table entries in OTM Data Export

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

 

image

image

Monday, January 12, 2009

Posting XML to OTM Servlet

 

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. 

 

image

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 <>