Quantcast
Channel: SCN : All Content - SAP Transportation Management (SAP TM)
Viewing all 533 articles
Browse latest View live

Excel Integration in TM 9.0

$
0
0

Dear all,

I'm trying to use the Excel integration for the rate tables in the charge management. The download of the rate table into Excel works. However the upload back to the TM system doesn't work. I tryed to change the XLSX-format into a XML-format, but the table is write protectet and I need a password to unlock the Excel table. Also I tryed to upload the table in the original XLSX-format, but all the time I get the same error: "Error when uploading; the file name is invalid or the file is too large". I didn't change the name of the file and I think this is not the reason. Do anyone know this problem and has a solution?

In TM 8 I didn't have this problem, I could upload the excel file back to the TM system.

Best regards

Sandra


Mass Upload of Freight Agreement in SAP TM

$
0
0

Hi Experts,

I need your assistance on how to mass upload freight agreement. Is there any BAPI/Class that I can use to upload the details? And also can we upload freight agreement data using the Excel Integration in the GUI? If so, can you share the steps on how to do it?

Many thanks.

An IoT PoC – Using HCP IoT Services and on premise SAP TM/EM for Cold chain monitoring

$
0
0

An IoT Proof of Concept – Using HCP IoT Services and on premise SAP Transportation Management/Event management for Cold chain monitoring

 

Here is a PoC which uses an IoT device (Ti Sensor Tag CC2650), HANA Cloud Platform IoT Services, HANA Cloud Connector (HCC) and on premise SAP application systems(TM and EM). The PoC is built to monitor the temperature of a Freight Order (FO) which transports temperature sensitive products like medicines or meat or vegetables. For those who are not familiar with SAP TM or SAP EM: - please refer relevant SCN pages, TM and EM.

Scenario Scope:

  • Freight order is created in SAP TM which  holds products with restricted temperature requirements
  • Event Handler created in SAP EM with control parameters for temperature requirements
  • A sensor (attached to the truck which carries the FO) is used to capture surrounding temperature and send this (via smart phone over cellular network) info to HCP IoT services.
  • JAVA persistence API and Hana Cloud Connector used to send this info to on premise SAP EM system as event message
  • EM ruleset determine the temperature limits and inform the concerned persons via e-mail

Scenario screenshot.jpgRequired Software Components

  • An account in HCP trial via registering athttps://hanatrial.ondemand.com
  • A sensor device to capture temperature, I used tiSensorTag
  • An iPhone with an app called IoTSensor
  • HANA Cloud connector installed on your local machine (or on premise box). Follow this blogfor installation procedure (up to step 4 would be sufficient). This helps to connect applications deployed on HCP to existing on premise system. HCC need not necessarily installed within on premise firewall.

Now we start with configuring HCP for our requirements. You must create a trial user in HANA cloud trial version before proceeding with next steps described here.

1. We will start with configuring IoT Services Cockpit.

1.1  After logging into your trial version, navigate to Services menu on the left side panel. Search for service called ‘Internet of Things Services’ and enable the service. As a result, the subscriptions for the Internet of Things Services cockpit and RDMS will be automatically created for the account as described in this SAP Help portal:Internet of Things Services Cockpit.

1.2  Now you have to deploy Message Management Service(MMS) by following this sap help doc

1.3  To access the Message Management Service (MMS) cockpit and to use the sample clients that are available for the Data Services as well as for the Push Service, a user must have been assigned the role IoT-MMS-User. You can refer here to assign this role.

1.4  Next step is to create Device type and Message Type in IoT Service Cockpit. Navigate to ‘Internet of Things Services’ under Services section on the left side panel of the HCP Cockpit. Click on ‘Go to Service’ which open IoT Service Cockpit in another window.

1.5  Click on device Types tile

1.6  Create a new Device Type by clicking ( + ).

1.7  Enter a name like ‘hpiPhone’ or something like that.

device type.jpg

1.8  Go back to the Internet of Things services Cockpit.

1.9  Choose the Message Types tile.

1.10 Create a new Message Type by clicking ( + ).

1.11

Enter a name, e.g. "tiSensorTag". Select the device Type as previously created and direction as ‘From Device’. You may choose the following as Fields.

fields.jpg

After hit ‘Save’ it will generate an ID for this message Type.

message type.jpg

1.12 Note the Message Type ID, Device ID and Device Registration Token.

1.13 Install IoTSensor app on your iPhone.

1.14 For registering the device on HCP, easiest way is to prepare the below url in an outlook e-mail

iot-create://&/accountName&/[Account ID]&/name&/[Connection Name]&/dataCenter&/[Data Center]&/deviceName&/[Device Name]&/deviceTypeID&/[Device Type ID]&/deviceReg&/[Device Registration Token]&/messageTypeID&/[Message Type ID]

 

Parameters:

[Account ID] => your account ID, e.g., "p1234567trail"

[Data Center] => your account data center, e.g., "hanatrial”

[Connection Name] => any name for a connection, e.g., "myConnection"

[Device Name] => any name for the device, e.g., "iPhone HP" / "Sensor Tag 1"

[Device Type ID] => the Device Type ID you noted at step 1.12

[Device Registration Token] => the Device Registration Token you noted at step 1.12.

[Message Type ID] => the Message Type ID you noted at step 1.12.

 

Send this URL to your e-mail which you can open from your iPhone. A sample url would look like this:

iot-create://&/accountName&/p1234567trial&/name&/mytiTagiPhone&/dataCenter&/hanatrial&/deviceName&/iPhoneHari&/deviceTypeID&/9e21d36c88408c52ccf1&/deviceReg&/9053658c88ef2b2cff84b2aff5f7719&/messageTypeID&/eb5f056d0a86232bb493

1.15 Open your e-mail and click on this URL. This will automatically launch the IoTSensor app you installed at step 1.13.

1.16 Press on Registration. The device gets registered successfully.

1.17 You can see the registered device in the IoT Service Cockpit as shown below. Click on ‘Devices’ tile

registered device.png

Now you are done with IoT Cockpit settings and you can start testing its configurations by sending some sample sensor signals. For this

1.18 Open the IoTSensor App on your iPhone

1.19 You can see the "Connection" is now colored red. Press on ‘Sensor’.

1.20 Make sure Bluetooth is ON in your iPhone and TI SensorTag is ON (just press the ON button on the SensorTag device).

1.21 Select a device by selecting the connected SensorTag. Press ‘Refresh’ icon if SensorTag is not yet listed.

1.22 Go back to the previous screen and then again click Go Back. Now you will see both Sensor and Connection colored red.

1.23 Now press the record button. Data will send according to the sending interval.

1.24 You can see the sensor data in MMS cockpit. Choose the Send and view messages, or perform other actions tile (The MMS Cockpit opens.) from the Internet of Things Services Cockpit. Choose the Display stored messages tile. (All tables of incoming data are listed.). Select the table that is named after the Message Type ID that you created previously ("T_IOT_<MESSAGE TYPE ID>").

app adata.jpg

2. Our next logical step is to configure HCP connection with on premise system using HANA Cloud Connector.

2.1  You might have completed the HCC installation as described in this blog during Required Software Component section above. You will see the connection state as shown below if you completed the steps successfully.

HCC 1.png

2.2  Next step is to create an access control to on premise SAP Event Management system by ‘Add’ System Mapping and providing the below details. Maintain your own system host name. You could test the connection by click on ‘Check’ button.

hcc 2.png

2.3  Now we have to give access to a resource (here in this case an RFC FM in SAP Event Management System) in the above system. You may create a wrapper function module for standard SAP BAPI FM ‘/SAPTRX/BAPI_EH_ADDEVENTMSG_02’. This RFC FM is used to post events in EM. Here in this case we have to pass the sensor temperature as event data. So create a remote function module in Z namespace which accept the temperature and sensor ID and timestamp, latitude and longitude. Code snippet below.

code em.jpg

Once you activate the FM, switch back to HCC Administration page. Select the System mapping you created in step 2.2, and under the ‘Resource Accessible On …’ table below, click ‘Add’ and provide the below details. With this we are done with HCC set up.

em bapi add.png

2.4  You can see in HCP cockpit, under Connectivity section, you have an HCC connection up and running by now.

hcc connection in HCP.jpg

2.5  Now navigate to ‘Destinations’ in HCP cockpit and add a New Destination to your SAP on premise EM system.

destination in HCP.png

Add the system with your own details as seen in the above screenshot. Jco.client.mshost is the message server of your backend SAP system if you are using load balancing, else use jco.client.ashost property to set application server.

3. JPA for message Reading from MMS and send to on premise system via HCC

So far, we have configured IoT Services Cockpit to receive messages from sensor device and HCC setup for passing the message to on premise SAP Event Management system. But this is not enough- we need to read the sensor message from IoT MMS data source table and call the resource (the EM BAPI) we configured via HCC. There are multiple ways to do this as described in this SAP Help portal. I use Java Persistence API(JPA)  for this purpose. We have to deploy a small Java Servlet application on HCP which does this trick. Attached the sample code for this servlet.

3.1 Import the project into eclipse as dynamic web project and then make necessary changes to the SensorServlet.java file with your own destination name(as per section 2.5), function module name(as per section 2.3) and MMS table name(as per section 1.24). Deploy the project into HCP, you may refer this blog step 4.6 if you don’t know how to deploy into HCP.

After deployment, you will see the application under Java Applications section in HCP Cockpit.

HCP deployed apps.png

3.2       Since in the servlet we want to read the data in the MMS, we have to change the default data source binding to MMS data source. For this click on the deployed project name (localproject here)  and then click ‘Data Source Binding’ on the left side panel. Delete the default binding which already there by clicking ‘Delete’. Then select ‘New Binding and change the Schema ID to xxxxtrial.iotmms.web.

data source mapping.jpg

Make sure you have the below settings under ‘Destinations’.

destination.jpg

3.3 The servlet we have deployed can read and send the sensor data stored under MMS. But when we should send this data to on premise will be a question. We can think of the something which trigger this ‘read and send’ – that is pushing the message to on premise system OR pulling the message from on premise system. I followed pushing the message to on premise system approach for this PoC. There is a concept of Message Processing for MMS in HCP IoT Services. By default MMS uses processing service as ‘SQL’ which means all messages are stored in a database. We can use another processing service called Message Forwarding (HTTP)– this can be used to forward an incoming message or notification of the message to web services. I have configured this to notify my servlet whenever a message comes for a specified device type and message type. This way whenever a message comes from my sensor device, my servlet is executed which read the message from MMS data source and send to on premise EM system. This can be done little more easily by just forward the message to an EM web service, but I have not tried this way. The reason is you may lose the message in case some web service failure or something as message forwarding won’t store the message in MMS, but notification will do.

The HTTP Processing Service can be configured by submitting an HTTP PUT request to:

https://<host>/com.sap.iotservices.mms/v1/api/http/processing.

I used a chrome browser tool called postman REST client for this purpose. Just select PUT as a service and send the below text.

{

"deviceType": "9e21d36c88209c52cf53",

"messageType": "eb5f056d0a86232kk481",

"processingServices": [

    {

      "name": "sql",

      "add_default_columns": true,

       "mms.processing.sql.schema_name": "p1234567trial.iotmms.web",

"mms.processing.sql.hana.table_type": "column"

      },

      {

    

      "name": "http",

      "properties": {

        "mms.processing.http.url": "https://iotservletp1234567trial.hanatrial.ondemand.com/localproject/?action=connect",

"mms.processing.http.send_mode": "notification",

"mms.processing.http.auth_mode": "basicauth",

        "mms.processing.http.basicauth.username": "yourHCPusername",

        "mms.processing.http.basicauth.password": "YourHCPPassword"

      }

    }

]

 

}

postman.jpg

 

Change the device type, message type, schema name, http.url, username and password which matches with your settings. In the http.url, ‘?action=’ can be any action name, we are just checking in the servlet code whether the action is null or not. You will get the URL of the servlet project from HCP cockpitàJava Applications. Click on the servlet project link and there you can see the URL under Application URLs.

*************************************************

By now, we have all configurations in HCP Cockpit, HCP IoT Service Cockpit, HCP IoT MMS Service and HCC. I have not gone in details with other application settings in EM or TM. I will publish another blog with this settings later. But if you have some idea on EM and TM, this would be easy as we have the message ready to be pushed to EM. We should have a ruleset in EM which check the temperature and compare the threshold control parameters and trigger and alert e-mail if it is out of range. The sensor device ID registered in HCP shall be the tracking ID of the freight order. Standard configuration in EM will push this event message to TM where we can further process this and model some business scenario like re planning FO/event based charging etc.

Incompatibility Settings/Conditions

$
0
0

Hi there,

 

I am currently trying to figure out the incompatibility settings. They are a bit of a mystery to me.

 

I would like to use incompatibilities to exclude certain transshipment locations from being considered during the planning optimization, or the generating of transportation proposals respectively.

 

Setup example:

 

Origin location:                     A

Destination location:             B

Transshipment locations:     C,D,E

 

Three routes:

A-C-B

A-D-B

A-E-B

 

A-C-B is the only proposal I would like to see during the planning of the Freight Unit.

 

Is it possible to block the proposals containing transshipment locations D and E via incompatibility settings?

If yes, how would I achieve that?

 

I tried to set up two conditions; one containing the Shipper BP (which is the origin location A) and the other containing the transshipment locations D and E.

As you may have guessed, that didn't work.

 

Or is there another way to get to the same result?

Ideally, this should be possible with master data and no or very few config changes.

 

Thank you for your help in advance.

 

Regards,

Adrian

Doubt about How to Apply Default Route

$
0
0

Hi experts.

I'm working in Transportation cockpit screen.

This screen has the button Apply Default Route.

I need to create this same button in other screen.

I want to know how can i execute the same action of this button

in other screen ( actions , fill tables etc... ).

I tried to create the button in other screen with same action event associated

but did not work.The i going to create a code but i need know what i need to call and fill.

 

Thanks

Tax code error for Auto PO generation from TM to ERP

$
0
0

HI All,

 

Hoping someone can assist.

 

We have been processing ERS from TM to ERP for a month now but in the last few instances have received an error for the same vendor "In Case of evaluated receipt settlement, please enter tax code".

 

I cannot identify anything that has changed recently for the process or vendor. And no other discussions seem to be able to assist.

Is anyone able to assist?

 

Tax code error.jpg

MIRO & FSD integration login requested

$
0
0

Hello everyone,

 

I was asked to configure the MIRO - FSD integration, that is, the user on MIRO can have access to the FSD detail.

 

Webservice & consumer proxy configuration is done and OK, but when the user clicks on the detail button for the FSD, we get a login window.

 

According to documentation, a trusted relationship is needed between ECC - TM.

 

Trusted relationship is done and OK, authorization checks from SMT1/SMT2 are OK.

 

but I still get the login window.

 

any idea what am I missing?

 

thanks in advance for any suggestion.

 

Balde.

Views on SAP TM on HANA

$
0
0

Hi,

 

We are using TM on Hana and are considering to build views on the hana db as source for some reports.

Our Team is new to TM and I am not sure if this approach is a good one.

 

What do you  think? I am happy for any advice.

 

Thank you


Enable Approval Workflow for Freight Agreement RFQ

$
0
0

Hello all,

 

we are using Freight Agreement RFQ to get rates for transportation services. In RFQ type (customizing) the Approval workflow is activated. Statusmof Freight Agreement RFQ is "Awaiting Approval of Agreement Creation". There is no worklfow started (no workitems created, transaction SWI1).

 

How can this workflow be activated and how can I award the carriers individuell RFQ??

 

Thanks a lot for helping

Georg

SAP TM process for standard subcontracting

$
0
0

Dear TM group,

Has anyone implemented TM process for standard subcontracting for a shipper, i.e. movement of raw materials  / components to subcontracting vendor and return movement of finished goods? A subcontracting PO is created on ECC with finished goods material as main item and components as sub items. We require one freight order from plant to vendor with components and another freight order from vendor to plant with finished material. Since this is standard ECC process, we are assuming there is a standard way to do in TM. Any inputs on how to model this process in TM along with where the cost is typically settled is greatly appreciated.

 

Best Regards,

KC

Details of Trade Lane in TM for a Freight Agreement

$
0
0

Hi,

 

Could anyone tell me if there is any BAPI or FM to submit a Trade Lane created for a Freight Agreement? or any related information will be very useful.

 

Thanks,

Deepika

 

Message was edited by: Michael Appleby

send email used output management in TM

$
0
0

Dear expert,

 

        we has a requirement to send a email in the tm , as we know tm provide this function in the output mangement,

 

but i don't know how to do this, can anyone tell how to send email used output mangement in the tm, thank you.

 

Message was edited by: Michael Appleby

Effective Optmization Series: Cost for trucks and trailers

$
0
0

For Optimizer costs information is the basic driver for all planning steps. Internally it evaluates each transport plans by summing all the cost terms and selects the best with the lowest cost. Without proper costs it can produce you many surprises.

What are proper costs? The most important guidance is to orient the cost settings by the real cost rate. Then the optimizer can output solutions close to your expectation. Moreover, only if you start with cost rates near to the real cost, you will have the possibility to add new resources, tariffs or whatever without large challenges. If you don’t have them in detail or you have only some average achieved cost, then use this cost rates as starting point.

And you need to decide for a currency. Internally the optimizer is doing NO conversion of the currencies. All cost terms sent to the optimizer, must be in the same currency to avoid nonsensically computations. My personal favorite is to use one of the real existing currencies like Dollar or Euro, instead of a virtual currency like “APO-Dollar”. It might have the draw-back, that you somehow have to adapt the conversions, but it is much simpler to work with since you easily can compare you planning cost with the cost which you see in the real world.

The next question is which cost of the real world should be passed to the optimizer. It is not a good decision to automatically model all costs.  It is better to start with some simple costs. After you get all in running as expected, you can step by step enhance the complexity to model details in the cost structure.  One more importance point, which is obvious but often negligent, is that the optimizer needs some cost which can influence its decision.  If one item is constant in any planning, you do not need to modify it for the optimizer.

Now let us start with costs for trucks and trailers.

Carriers V.S. Own Fleet

If the resources belong to carriers, you can maintain the average achieved rates for the optimizer to keep it real and simple.

For your own fleet, some of the cost of a truck is independent of its usage, e.g. parts of fix cost for the maintenance and the inspections or the tax. Whatever a transport plan is, you have to pay these costs anyway. So you should compute something like a planning-relevant rate for your internal trucks, e.g. it should contain the cost for driver, distance dependent maintenance or other distance dependent cost. Doing so, you will usually have lower cost rates for your own fleets than for carriers. But this is exactly what we want. We want to prefer our own trucks, as long as there is capacity.

The first cost you maintain for the optimizer should be a rate for the distance.

Distance Cost: from planning cost profile V.S. from distance lane

If the rate is fixed, you can maintain the cost in the cost profile of the planning profile. This is a usual approach for your own fleet, especially if you act regionally. If you use carriers, you have usually different rates in different regions or in different directions. In this case you have to maintain the distance cost on the transportation lane. An average rate in the cost profile would be too rough.

If you maintain a transportation lane between two specified locations you can define the cost on the lane directly. If you have lanes from or to zones, which contain several locations, you can specify only a cost rate per distance. The Geo-Information-System will compute the distances and the optimizer will use the cost rate multiplied by the distance to compute the overall cost. Whenever you define such new lanes and start the optimizer again, you should have a look into the explanation tool to see if the distance computation is working well.

distancecost_planningcostssetting_vs_transportationlane.jpg

Calculation of Distance Cost

To compute the overall cost of a freight order the optimizer sums up the cost of all stages of the freight order. Dependent on information of the lane or the cost profile, the distance cost per stage is computed and summed up.

There is one exception: especially in the US instead the distances of the stages, the lane from the first to the last stop of the freight order decides the rate, even if the truck drives completely different stages because of additional stop-offs. You can define this behavior in the cost profile by enabling “Destination-Based Distance Costs” for such means of transports.

dist_cost.jpg

distance cost of freight order $1:  1459,564 = (581,7900+147,9920)*2

Multi Resource

To finalize our cost settings to cover the distance we have to think about a last important issue: If you use carriers you usually pay only for the freight order itself, you don’t care about the following freight order or about the distance to drive home. To model this you create such resources as multi resources. They have the “beam”-feature. The optimizer doesn’t care about stages between freight orders.

For your own fleet you want to minimize such stages between freight orders. They are automatically created and considered by the optimizer, if you create “real” resources (not multi).

Tuning

With such a setup you usually cover optimization of the distance. It should already produce good plans. Now we can use additional cost to model the reality a little bit better or to define some penalties to force the optimizer to compute specific plans. But keep in mind, that the cost should be oriented on the reality. So keep the additional cost small.

fine_tuning_mrt_cost.jpg

Fix Cost per Freight Order
Within the cost profile you can define a fixed cost for every freight order. This can help as additional penalty to reduce the number of freight orders and to use larger trucks or larger FOR’s instead. This can be part of our realistic cost modeling, too.

Fix Cost per Truck

We emphasized before that for your own fleet you do not need to maintain the real fix cost. But if in your scenario you have only own fleet and you want that optimizer use as few trucks as possible transport, you can set this cost to manipulate the optimizer results.

Intermediate Stop Cost and Maximum Number of Stop

Through this cost and/or max number of stops in planning costs profile you can regulate the size of a freight orders in term of number of stops. E.g. if optimizer creates Freight orders with too many stops than expected, you can enhance this value. Or e.g., if you want to have freight orders only with one customer, you can either set very high value to intermediate stop or use 1 for max number of stops.

Quantity Cost

This cost is part of realistic costs and can be defined in a distance-independent way or to multiply them by the distance. The distance independent way can be used, e.g. If your carriers charge you per quantity. The distance dependent way can be used as oil expense by optimizer; through this cost the heavier freight units have higher priorities and the optimizer will avoid to travel them around, but the routing may be not optimal.

Maximum Distance/Duration

If the optimizer creates longer tours than your expectation. You can use these two values to limit tours.

The last but not least: keep it simple. Scenarios can easily become sophisticated by over fine tuning of costs. It will be a barrier to figure out a sinful model for your scenarios. Important tips: you can design consecutive optimizer runs beginning with simple cost setting, or even use hard constrains instead costs if possible!

Resetting reported expected event in TM portal/CCP

$
0
0

Hi EM Experts,

 

I have a requirement where a already reported expected event need to be refreshed/reset in TM portal/carrier collaboration portal .

 

 

I have run REVOKE_EVENT action on TM side and activated EE_RESET activity on EM side .

 

When I checked TM Portal (NWBC) , it is showing POD event as expected event however it is also showing actual date of POD which is not desired . When I checked Carrier collaboration portal there also it is showing POD as expected event however it is showing reported event date and reason code which do not address the issue .

 

Is there any way we can avoid this situation . Your quick response is really appreciated .

 

Regards,

Rajesh Dwivedi

Effective optimization: Utilization and why you should avoid cost-functions

$
0
0

In this blog I want to cover two frequent questions:

 

  1. I want to have only FORs with more than x% utilization
  2. I want to distribute the freight between two FORs in a specific way

 

I want to discuss this scope from different views. We will start with some thoughts what the optimizer can do to influence the utilization. After that we will look at the non-delivery cost to model filler products to increase the utilization. After an introduction of the feature minimal utilization we will end with a very deep look into the load cost functions.

                                    

What can the optimizer do for utilization?


Let’s look from the engine side on the utilization. If you call the optimizer you define a selection of the fright you want to plan. That means the backlog for planning is defined completely. The optimizer cannot decide to add some other Freight Units just to fill the truck. It might only decide to not plan some freight.

The optimizer engine has two remaining possibilities to achieve a high utilization.

 

a) It can select the best fitting resource for a freight order

 

b) It can decide about the distribution of the freight units to the freight orders, to get combination filling a truck nearly completely.

 

Method a) seems clear. It is, what we usually expect. Don’t use a large track, if you can do it with a smaller one. By setting the right costs for the truck this should work. You just need a little bit more cost for the larger trucks.

 

Method b) is more sophisticated. Let’s assume we have some Freight Units from location A to location B. Now we have an additional Freight Unit from C to B. should we add it to the Freight Order from A to B to get a higher utilization in a FOR A->C->B?

 

  • If we speak about the utilization, we improved it only for the stage A->C. The stage C->B is new but with the former utilization of A->B. that means we improved the stage with the highest utilization only. It is important to mention, that the optimizer always considers the most utilized stage as the utilization of a freight order.

 

  • It might be, we drive some extra distance to include C into this freight order. Do we want that? Where is the threshold, which decides if it is better to consolidate with a high utilization or to split and find a plan with less distance?

 

The second point shows us, that the min utilization is directly influencing the consolidation of the freight units into freight orders. That means we have to define the rules for the utilization very carefully. As the optimizer cannot create additional freight units, it is forced to check such consolidations, if we add utilization as constraint or penalty.
Therefore the penalties for not reaching the target utilization must be very small. Otherwise the optimization will end up in freight order with a high utilization on one leg but a terrible routing.

 

Filling products

 

It is a usual practice, that you have some filling materials. If your truck is not full, but you need to start the transport, you load some additional products, which are usually cheap and recently transported. For example if you supply a store you might put some toilet-paper on top of the other products just to fill the truck. This allows you to save some capacity for the next days.

 

It might be one possibility to ignore this additional filling freight in planning completely. Execution decides about the additional products and you just reduce the transportation demand of the following days.

 

But if you want to plan the filling-products, we must select them for the optimization run, so that the engine can decide, if they are additionally planned or not. In this case we have to express, which Freight Units are important and must be transported today. And which fright units are filler and optional. You do that via a determination to define very low non-delivery cost for the filler freight units, but high non-deliver cost for the important freight.  If your transportation cost for resources and distances is somewhere between, the optimizer will create freight orders for the important freight units. It will use up the remaining capacity for the filler products. But it will not be able to create new freight orders if the cost for an additional freight order is higher than the non-delivery-cost of the fillers.

This cost setting might be a little tricky. Because of that I want to mention to alternatives. The second one is my favorite, as it doesn’t touch attributes of the freight unit and therefore has no side-effects.

 

  • Instead of non-delivery cost you can use the time windows. The important freight units have concrete hard time windows. The windows of the fillers are much larger. Perhaps a week instead of a day in daily planning. This allows the optimizer to add filler to the other products. At the end the remaining fillers are planned in their own FOR which can be deleted afterwards.

 

  • You work with two Freight unit selections. First plan the important Freight units only. In a second run you use the incremental planning to add as much fillers to the existing freight orders of the important products. You must forbid to create any new freight order. Since TM 9.4 you can do that in the planning cost profile. In older releases you have to define very high fix cost to avoid new freight orders. The second run can be very fast. Usually I use the time automatic and select the option” fastest”. As no new freight orders are needed only the adding to the existing ones is needed, which is done very fast.

 

 

Minimal utilization

 

The thought above showed, that considering the utilization as goal during the optimization needs a very sophisticated penalty setting for under-utilization. To circumvent this issue TM supports a feature under-utilization beginning with version 9.3.

 

The idea is not to handle the utilization during the optimization, but to do only a simple post-processing to clean up the freight orders. The optimizer is planning as usual. Only at the end it is checking if there are freight orders below the specified minimal utilization. Then it tries to re-plan this freight unit and to put it on other freight orders. Doing so only very view freight units should remain on the under-utilized freight orders. After the optimization the manual planner has to decide, what to do with these remaining freight orders.

 

So far I don’t have much feedback on this feature. Your feedback would be very welcome.

 

 

Load-Cost-Function

 

Another feature in this area are the load-coast-functions. Here we have a lot of feedback, mostly because they are so difficult to use. Because of that the first rule for load-cost-functions: Please check first if the two–step approach or the minimal utilization is a good approach for you. Only after that start to think of the load-cost functions.

 

Very often we receive models with a load-cost function like that:

 

utililization3.jpg

 

The idea behind was to express, that a load above a threshold is ok. Below this threshold it is bad. First of all we need to see, that we have additional cost and we run in all the issues about the consolidation like described above. We risk crazy routings and consolidations. Because of that the second rule for load cost functions: Use only very small penalties.

 

The load-cost function should influence the optimizer in such a way, that it prefers full loads instead of several small loads. Let’s think about the effect on the optimization algorithm. As you might know the most important step is the insertion of a freight unit into a partial plan:

 

The described load cost function is penalizing the creation of a new freight order for the next freight unit. But it doesn’t really help the engine to decide between several freight orders, which are not utilized enough. This means after planning the first freight units and crating some freight orders into different directions the optimizer has already some load-cost, but doesn’t see how to resolve that, as it adds freight unit by freight unit without look-ahead. So the optimizer has to pay several load-cost in the hope to reduce it later. For the optimizer this look like a fitness- function for the overall plan like that:

 

utilization5.jpg

 

If you play golf you might see the problem to get the ball into the small whole. For the optimizer it is the same. It is much easier if we have a fitness landscape like in the following diagram. We speak about convex problems, which are usually much easier to solve, as you can improve in small steps and the landscape is guiding you to the optimal solution. Of course this would be boring for golf. But it is a big help for optimization

 

utilization1.jpg

 

 

We can help the optimizer and add some guidance into the cost function by making it convex. We can express, that the cost function for a newly added freight order should be high if there is no load. And it should be low, if we nearly reach or fulfill the threshold for utilization. This leads us to a cost function like that:

 

utililization4.jpg

 

 

 

 

Beside of all this hints, the cost functions still have the tricky influence into the routing a consolidation. Because of that leads repeat and complete the golden rules for load-cost functions.

 

  1. Check if you can reach you goal without load-cost functions (for example several runs or min. utilization)
  2. Use very small penalties.
  3. Guide the engine with an convex load cost function
  4. Check your results very carefully.

500 SAP Internal Server Error while saving freight settlement document

$
0
0

Hello experts,

We are getting the following error while saving Freight Settlement Document

500 SAP Internal Server Error

Error : There should be a record be inserted , although b 1,017 ( termination : ERROR_MESSAGE_STATE )

 

There is no dump in ST22. Following log is appearing in SM21


Any help in this regard is deeply appreciated.

Send Delivery Proposals to ERP via WSRM

$
0
0

Hello Friends,

 

After send delivery proposals to ERP successful message appears on the screen and 1 Delivery Proposal has been send to ERP, but delivery message OutboundDeliveryBulkCreateRequest_Out didn't appear in SRT_MONI rather message appears in SXMB_MONI (TM system thinking that PI is in landscape) but we are using WSRM Point2Point communication and message OutboundDeliveryBulkCreateRequest_Out should be appear in t.code SRT_MONI, but it is not appearing. We have configured service group - /SCMTMS/TM_ERP_ORDINT in SOAMANAGER and keeping ECC as a central system and Point2Point communication has been active in both TM and ECC. Ping works fine.

 

While Send Delivery Proposals to ERP, what is the reason TM doesn't looking POINT2POINT communication method? and TM is keep pointing to PI. How to make settings in order to use WSRM methods instead of PI?

 

Thanks,

Venu

Create Freight Unit Based on Z Logic

$
0
0

Dear TM Experts,

 

I have a requirement where i need to create freight units based on Z logic, during creation of OBTR based on Sales order of SAP ECC.

 

Step are as below:

 

1. 2 Z fields will be created in SAP ECC Sales Order screen, where user maintain data of no of 20 and 40 feet container.

2. Based on this container count maintained at Sales order Z fields, i need to create no of 20 or 40 foot containers while creation of OBTR in SAP TM

 

I know for this i need to enhance the PI structure for both Outbound and Inbound message structure. and add logic at Badi to send Z field data from SAP ECC & receive Z field data in SAP TM. But after receiving what is the best, easy and safe way to create Freight Units in SAP TM based on this container count coming from Z fields of SAP ECC.

 

Please suggest on this at requirement.

 

Thanks in advance.

 

Regards,

Md.Rafi

Process TU inside TU.

$
0
0

Hello Experts,

I have this Specific scenario here in Azul Airlines where I need to put a unit bag inside a container then put it all inside the aircraft.

I am using “SAP TM TOR Item Overview Document” as a Guide, but couldn’t succeed so far.

1.png

Just to let you guys know:

To begin with, our demand starts with a FWO (and its FU). Then I go the Transportation Cockpit and get those FU and put inside of a Unit Bag or a Container (Or Both).

After this first step of Planning I am ready to put then in an aircraft, so it would be something like this.

 

2.png

So far I am not able to do that. SAP says that is not possible to put a TU inside another TU.

Please, help me out.

Regards,

Ronaldo Alves.

Creation of Freight Agreement using Excel Integration

$
0
0

Hi Experts,

 

Does anyone know on how to create multiple freight agreement using the excel integration?

I have tried using but doesn't seem to work.

Or can you share any other means that the data be loaded?

 

Any help is much appreciated.

 

Thank you!

 

Scarlet

Viewing all 533 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>