Quantcast
Channel: SAP Transportation Management (SAP TM)
Viewing all 91 articles
Browse latest View live

Functionalities in SAP TM 9.3

$
0
0

Hi,

Following my last article let me explain the functionality of Transportation Resource planning which has been implemented in SAP TM 9.3.

As we know resource is the most important master data which is required right from transportation planning right till transportation execution process and hence for a freight forwarding or a shipper scenario its important that resource at the right moment /right time /correct capacity should be available so that customer requirement and demand can be met.

Thus with the TRP process available in TM 9.3 , the usage and availability of resource can be viewed at any time and hence the same info is very useful for the transportation planner to plan and optimise the transportation process.Its also possiible to balance the stock of empty resources and maintain resource related KPI.

 

Below enclosed are some of the buisness requirements which are met by TRP.

a) Wheather business should buy or lease new resource

b) How to forecast demand and supply of resource

c) Monitor the supply of empty transportation resource

d) Reduce cost of resource

e) Where and when resources are available

 

Hence if we visulise a TRP flow below enclosed are the lifecycle of TRP process :

a) Resource availability check when transportation planner initiaties transportation planning in transportation cockpit

b) Move empty resource to places where there is transportation demand.Here the resource movement can be from terminal to vessel or move resource to sea/vessel/customer/depot/demand

c) Maintain and repair resource

d) Balance ( reposition) resource

 

From an architecture perspective SAP TRP is a joint execution with SAP TM to build a solution  for movable resource/asset for both logistical and finance process.Hence modules like MM,FI,EAM,EM are all integrated jointly in the execution of this process.

SAP TRP is planned on HANA platform with XS engine as middleware layer and SAP hana should be on SP09.

In the process flow for TRP, we have

a) Visibility process

b) Supply and demand process

c) Resource planning

d) Plan execution

e) KPI monitoring


TM integration with GTS

$
0
0

Hi,

This blog will explain the functionality of TM integration with GTS on import side i.e if a dispatcher transports goods from export country CFS  -port of loading-- port of discharge -import CFS- final delivery to consignee then in that case on the destination side i.e at port of destination or import gateway , there has to be import goods declaration and its here that GTS-TM integration comes into the picture.

There are multiple settings that we need to set up before we can achive/implement the import functionality :

 

a) Considering its a LSP scenario, we need to activate customs handling -Automatic in defining forwarding order type

 

b) Traffic direction should be set to 2 i.e import when setting up FWO type

 

c) Now there is option wheather there should be creation of single import declaration or multiple import declarartion per FWO type.Hence this process is dependent on the grouping of items at the item level tab of the FWO.Now SAP provides process controller strategies which splits the items based on various criterias like icoterm, import  location, BP like shipper , consignee etc.We should use standard strategies like IMP_FU with service-TM_GT_GRP  in the below enclosed navigation path-SPRO-Transportation management-SCM basis-Process controller-Define strategy

 

d) We need to define customs relevance checks in SPRO and assign delivered class and method.This configuration will control wheather an import declaration has to be defined by LSP and wheather items are to be imported. The navigation path to maintain this config is SPRO-Transportation Management-Basic functions-Global trade-Define customs relevance check

 

e) Define customs activity is to be set up using the navigation path-SPRO-SAP Transportation Management-Basic functions-Global trade-Define customs activities and profile.Here the customs procedure is defined in the customs activity.Below enclosed are the important  fields with descriptions as defined in picture 1:

i) Customs activity/Description-Its an identifier which will be used to differentiate between various customs activity

ii) Customs relevance check-Make it a relevant check for import FU declaration

iii) Check result status-This can have status-Not relevant or status-Relevant.If its not relevant this means the customs status is set if the business document is not customs relevant.

iv) Grouping strategy-In order to group items into customs group, this strategy field can eb used.

v) Customs declaration trigger status-Specifies the execution status of a business document so that customs declaration  can be triggered

vi) Process status-This can have multiple status such as requested,approved, cancelled, cancelation request and it defines which status the custom status can be  set if custom declaration is approved/cancelled etc.

 

f) Define customs profile-This profile is used to determine how the customs activity can be processed when assigned to a particular profile.This is defined under SPRO-Transportation Management-Basic functions-Global trade-Define customs activities and profile
. Once its defined then it needs to be assigned to activity defined earlier.

 

g) Finally the customs profile needs to be assigned to FU type in customising under Additional settings tab in freight unit defination.

 

h) When user creates a FWO, in the general data tab Import declaration flag for LSP is to be ticked.

 

i) If BP always request LSP to do the import declration, then we need to check mark-LSP import declaration in Tcode BP under BP role-Sold to party -Customer org data tab.

 

j) When FWO is to be created at an item level, under customs tab we need to maintain values for i) Customs activity-Import declaration and ii) Import location.In case there are 3 items in FWO and clicking on individual items if Customs activity and import location is maintained invidually then there will be 3 import delcrations created.

 

k) Once the import FWO is created and saved, click on the header button-Customs-Create import declaration and there will be message indicating that grouping has been performed for different items and hence 3 declarations has been created.The status changes to-Customs clearance requested.

 

l) Once the FU is created from FWO, we can click on the customs tab where the customs activity can be viewed.Once we click on the customs activity we can enter customs reference No, expiration date and customs document No.

 

In this way the entire integration can be set up between TM-GTS.

Regards,

Indraneel

Collaboration Portal: Performance improvements when restricting documents by number of days in the past

$
0
0

In the last days, we improved the performance of data selection when you use the "number of days in the past" settings. Especially in systems with high data volume, it will speed up the data retrieval.

 

To benefit from these improvements, implement the following SAP Notes:

2254945 - Performance improvement when restricting documents by number of days in the past

2254948 - Performance improvement when restricting documents by number of days in the past (Freight Orders for Execution)

2256140 - Collaboration Portal: Performance improvement when restricting documents by number of days in the past (Freight Orders for Self-Billing)

2256541 - Collaboration Portal: Performance improvement when restricting documents by number of days in the past (Freight Orders for Invoice Submission)

2256685 - Collaboration Portal: Performance improvement when restricting documents by number of days in the past (Freight Tendering)

Activate the TM Quicksearch

$
0
0

This posting is about how to activate the TM quicksearch, a nice way to access TM transactional documents directly from the NWBC search bar.

Basically it looks like this, enter a search string in the NWBC search bar, get a result list instantaneously:

Quicksearch Example

 

 

 

If you are interested in the functionality, you may check TMP033 ( http://podcast.tm-podcast.com/tmp033-tm-quicksearch/ ), the podcast episode about the topic.

 

Now, how to activate the TM Quicksearch for you:

 

1. Install note 2260864 which is available from 9.1 onwards and comes with the required classes

2. Check and/or activate the SICF service:

    To make the search classes available they must be accessible as a service. This is done in transaction SICF. The path is sap->bc. In there add a service      named tm_quick_search. The only tab where you need to maintain something is the handler list, in there enter the      class /SCMTMS/CL_QUICK_SEARCHPROVIDE. It should look something like this:

    SICF_setting.JPG

3. Activate the service

4. Enter the Search provider URL: The easiest way to test the service is to enter the search provider explicitely in the NWBC search provider list. This can be      done from the NWBC menu:

    Search Provider Menu path

        The URL is composed as follows:

 

    First part:

    Your system url and port (you can get this from options->settings->connections in the NWBC menu)

      Second part:

    /sap/bc/tm_quick_search?type=OpenSearchDescription

    Third part:

    Optionally you can add some parameters like restriction to a certain search class, if you only want to search e.g. Forwarding orders, I will try to complete      the list later in here, we can start with the default

 

 

With this, you are done and can use the TM Quicksearch!

BusinessPartner and OrgUnit Search in SAP TM UIs

$
0
0

Motivation

BusinessPartner IDs and OrgUnit IDs are most often numeric and instead of memorizing hundreds or thousands of 10-digit customer numbers, end users tend to use the well known F4 value help search popups. When searching for a customer number the end user spends quite some time and mouse clicks: launch the F4 value help popup, enter customer name, country, city, click on search button, check if the customer was found, maybe: correct spelling of the name, click search botton again, locate the right customer number and finally select the right entry to be taken into the input field.

User efficiency is kind of harmed.

What if you could just type all the search criteria into the input field, in which you have to put in the numeric ID and the system auto-proposes the customerIDs, which are relevant?

 

For TM systems (release 9.0 and higher) there is a solution to improve user efficiency and it does not require a fuzzy search based on a HANA DB.


Solution - Result

Just an example, config and background is explained later.

You work for CustomerService and when creating a new order you need to enter BP IDs and on the e-mailed document there is no customer number - as usual there is only Name and Address: >>Phil & Co, 833 Broadway 3rd Floor, New York 10003<<

 

BPs-empty.jpg

 

Instead of using the F4 value help popup, just start typing: "Phil"

OrdP-Phil.jpg

The system auto-proposes relevant customers.

Type a <space> and "US" for the country

OrdP-Phil US.jpg

The dropdown list reduces to the customers from the US.

Type another <space> and "ne" for the city.

OrdP-Phil US NE.jpg

Now, in this example, there is only one left in the list, which is most often not the case in reality, but it demos the effect.

Anytime you use then the arrow down key to select the entry and hit ENTER and that's it. You found the BP number within seconds and no mouse click was required.

OrdP-filled.jpg

 

This is not a fuzzy search and it is also not hard coded. There is a configuration, which in this example controls the following:

The string "Phil us ne" is split by the separator <space> into 3 individual strings. The first one is the name, the second one is the country and the third one is the city.

 

 

Solution - Implementation

There is a customizing, in which you can activate the so called "Combined Search" for input fields for BPs or Org.Units.

Prerequisite: notes 2205284 and 2198536

Use transaction SM34 for the view cluster /SCMB/VC_TYASH in case the following customizing node is not yet available:

 

IMG-node.jpg

SH-level1.jpg

 

It is a 2-level customizing.

In the first view you can declare two different things:

  • Declare for collective search helps the relevant elementary search help (of this collective search help), which shall be used by the system to execute the combined search.
  • Declare the elementary search help, for which the combined search feature shall be activated and declare the separator, which shall be used to split the search string into the individual search input values.

In the second view you declare for the elementary search help the search parameters and its sequence.

 

BP search config (example/recommendation)

SH-BP-CSH-level1.jpg

SH-BP-level1.jpg

SH-BP-level2.jpg

 

OrgUnit search config (example/recommendation)

SH-SOrg-level1.jpg

SH-SOrg-level2.jpg

SH-POrg-level1.jpg

SH-POrg-level2.jpg

 

Prerequisites

The combined search help is only applied for input fields, for which the type ahead search / auto-value-proposal is activated.

The combined search help is not applied to the input field (despite it is activated) if the user enters a pure numeric value. The system assumes here that the user enters the actual ID and applies the regular search help and autocompletion / auto-proposed values come with all IDs, which start with the entered numeric value.

As of today the combined search works for the following search helps:

Collective search helps:

  • Business Partner: /SCMTMS/CSH_BUPA

Elementary search helps:

  • Business Partner:
    • /SCMTMS/BUPA
    • /SCMTMS/BUPAA
    • /SCMTMS/BUPAI
    • /SCMTMS/BUPAR
    • /SCMTMS/BUPARLTYP
    • /SCMTMS/BUPAV
    • /SCMTMS/SH_BUPA_4_FAG
    • /SCMTMS/SH_BUPA_FUZZY
    • /SCMTMS/SH_BUPA_SCAC
  • Organizational Unit:
    • /SCMB/SH_ORGUNIT_SLSORG
    • /SCMB/SH_ORGUNIT
    • /SCMB/SH_ORGUNIT_CMPORG
    • /SCMB/SH_ORGUNIT_PURGRP
    • /SCMB/SH_ORGUNIT_PURORG
    • /SCMB/SH_ORGUNIT_SLSBUR
    • /SCMB/SH_ORGUNIT_SLSGRP
    • /SCMB/SH_ORGUNIT_SLSORG
    • /SCMTMS/SH_ORGUNIT_EXEGRP
    • /SCMTMS/SH_ORGUNIT_EXEGRP_INT
    • /SCMTMS/SH_ORGUNIT_EXEORG
    • /SCMTMS/SH_ORGUNIT_EXEORG_INT
    • /SCMTMS/SH_ORGUNIT_SLSGRP_INT
    • /SCMTMS/SH_ORGUNIT_SLSOFF_INT
    • /SCMTMS/SH_ORGUNIT_SLSORG
    • /SCMTMS/SH_ORGUNIT_SLSORG_INT

 

Background

Feature 1: For the activated collective search help in the search help exit a particular elementary search help (to be used for the type ahead search) is set. The standard behaviour (without this feature) would be: the system uses the elementary search help, which was used by you the last time in the F4 value help popup.

Feature 2: For the activated elementary search help in the search help exit the declared standard input parameter is replaced by the declared list of search parameters and the entered string is split at the seperator character into the individual search value. The content of the internal selopt table is modified accordingly. As of today the options 'equal' and 'contains pattern' are supported.

This customizing and the underlying framework (class /SCMB/CL_SH_TYPE_AHEAD_HELPER) can also be used for own custom developed search helps. It only requires to implement the helper method calls into the search help exit. And it certainly requires a SCM system, which has got the SCM Basis layer.

 

Very special/exceptional case

In the rare case where both kind of IDs - numeric and alphanumeric - exist in the system and some users like to continue searching with the external alphanumeric ID and other users prefer to search for the numeric ID using the combined search parameters, then a compromise is needed: In the search parameters declare the ID to be the first search parameter, followed by the actually intended search parameters. Now the users, who type external alphanumeric IDs and expect the auto-proposed value list to come, can just work as before. All other users, who like to use the new way of search for numeric IDs, need to start typing the separator (here: <space>) in order to suppress the first selection criteria 'ID'.

 

Runtime performance aspect

This "combined search" feature is expected to be used the same way the end users used the F4 value help popup before in terms of which parameters are selected to enter a search value. Hence it is expected that anyway you already have secondary indexes for the search help parameters.Hence the auto-proposed values come up in the drop down as fast as the user would get the search result in the F4 value help popup. Make sure to execute performance tests for your configuration before deploying this feature to production.

 

Known weakness

As of today there is no way for a ABAP WebDynpro to declare an input field, which allows a longer input-string for type ahead search purposes than the actual defined length of the field (like possible in SAP GUI).

Hence, the 10-digit BP number field allows a maximum of 10 characters for searching via type-ahead. This is a real weakness, but it is preferred to wait for a central solution from ABAP WD - instead of spending the time to extend the field length of relevant fields in all the UI structures.

For customer implementation projects it is OK and recommended to increase the field length of relevant UI fields in order to use this search feature to a full extent. There is no issue expected as the final value from the UI field is parsed to the corresponding backend field and the backend field still remains with its original length and all further processing and input checks etc. is done as before.

SAP TM Optimizer performance – An ABAP developer’s point of view

$
0
0

In the last couple of month I got several questions regarding the TM optimizer and its performance. Therefore I decided to write this blog which should give some information how the optimizer works and some tips to improve performance in your scenario (for more information regarding the optimizer and optimizer performance you should check out SAP note 1520433 and the blog series Effective Optmization Series).

 

General
Let me start with some vague information about the optimizer in SAP TM.
When you run the optimizer from TM standard default there are 3 steps which are processed: The optimizer pre-processing, the optimization, and the optimizer post-processing (check process controller strategy VSR_DEF).
In the pre-processing all the relevant data are collected and converted to the optimizer format. This means that data about all selected freight units, freight orders, and resources needs to be collected. Furthermore information about all the possible routes through your transportation network are determined. Also optimization context data needs to be collected. This context includes e.g. orders on selected resources within the planning horizon, to let the optimizer know when the resources are already in use.
The optimizer itself is an algorithm which creates a valid transportation plan and try to optimize the solution regarding the planning costs which are set in the planning cost settings of your planning profile.
In the post processing the optimizer solution is stored back into the TM system which means all the changed data are saved in the system.

There are two main points which will cost performance: volume & complexity. Working with the optimizer you should try to keep one principal in mind "take the data needed, but not more".

opt1.png

 

Data Selection

One important point in reaching a good optimizer performance is selecting right data. Two very important settings here is the selection horizon and the planning horizon. For the right planning horizon you need to analyze your own business. If you are running a day to day business the planning horizon usually will only cover the next few days. It you need to make plans over the next month’s your planning horizon covers a longer time period. Maybe you are using some offset to get your plans ready one or two day before execution. In order to reach a good optimizer performance your selection of freight units and freight orders should depend to the planning horizon. For sure all of those horizons should be as small as possible to improve performance.

The optimizer will never plan any freight unit which have their pick-up and delivery window outside the planning horizon. Therefore avoid to process any of those freight units with time selection attributes in the selection profile.

In the selection profile you can furthermore exclude all freight units which are already planned. Those freight units would be fixed by the optimizer anyways if you don’t also select the freight order which they are assigned to. If you select freight orders the assigned freight units will be added to your selection anyways in order to process them. Please keep in mind that the optimizer will delete the currently planned freight orders and start from scratch for the assigned freight units if you process them in an optimizer run without using incremental planning.

 

Optimization Time

Inthe planning profile you can control how long the optimization should run. As more time the optimizer gets as better the results will be from a planning cost perspective.

Please also check out this setting if you are concerned about the overall optimization time. TM default is set to 20 seconds the engine can use.

Be aware that the right optimizer runtime setting is hardly depending to your scenario. It’s definitely not a good idea to just reduce the runtime in order to get faster response!

opt2.png

 

Notes

Over the last month we did several improvements for the optimizer performance. Those are contained in the following set of notes for optimizer pre- and post-processing.

Here are some of the recent SAP Notes you should implement when facing performance issues. I will try to update the list from time to time.

Optimization in general: 2225934

Optimization resulting in creating multiple freight orders with HBL: 2225719

Optimization using incremental planning: 2225741, 2257414

Optimization with carrier selection: 2188496

Optimization with charge calculation: 2184962

Transit warehousing scenario addressed in SAP TM

$
0
0

This article of mine will provide an overview of transit warehousing scenario which is implemented in SAP TM  9.3 along with SAP EWM 9.3.This scenario is not available for a shipper scenario but only for a freight forwarder/LSP scenario where warehouse operations and execution is implemented in SAP EWM and is integration with freight forwarding operations using SAP TM.

In transit warehousing scenario, the freight forwarder takes the responsibility of receiving cargo from shippers based on inbound transportation planning in SAP TM.Then the cargo is consolidated in such a way that multiple customers based on same destination locations are grouped together and transported to a transit warehouse and then its shipped to the next location of the transportation chain and finally delivered to consignee based on outbound transportation planning in SAP TM.

Hence major implication of this process is that both inbound and outbound transportation planning is possible using this process.Also the cargo received from multiple shippers is very variable hence cargo is managed as a handling unit and cargo information is directly mentioned in the documents in the warehouse.

In the warehouse for a transit scenario, the structuring of warehouse is done in such a way that HU with same destination location are grouped together in the same storage bin .However exception to this are the HU which are dangerous goods or high value cargo which are put in separate storage bin.

Then based on the outbound plan sent by the transportation planner in SAP TM, the HU are loaded directly from the staging areas which is then loaded on to the truck  for putaway operations.There are lot of data exchange that occurs between SAP TM and SAP EWM since SAP EWM informs SAP TM about various steps performed in transit warehouse like arrival in checkpoint, departure from checkpoint , loading and unloading completion etc.

To implement this scenario there has to be proper warehouse organisation structure and warehouse master data to be set up.The warehouse structure comprises of :

a) Warehouse area with storage bins for postal codes

b) Warehouse area with country and region speciifc storage bins

c) Warehouse area for handling HU containers

 

Below enclosed is the process flow to be used for implementing this scenario:

a) Create a forwarding order in SAP TM-Here the customer service creates a forwarding order so that cargo can be transported from shipper to consignee.Once the cargo is picked up from the shipper premises, its to be transported via transit warehouse which belongs to the transportation network of the freight forwarder and belongs to SAP EWM. The output of this step is creation of freight unit.

 

b) Create freight order as part of pick up stage-In SAP TM based on transportation planning, freight order is created during the pick up stage and the stage detaisl will show the pick up from shipper location to transit warehouse.At this time the carrier is assigned to this order.

 

c) Freight order status been upated in SAP TM-Here once the cargo is picked up from shipper location , then the freight order status is updated to Departed.When transportation planning is completed the transportation planner sends an unloading request to the SAP EWM containing details of the freight order number.SAP EWM automatically creates a TU ( transportation unit) , inbound delivery and HU whereby HU are assigned to TU.

 

d) Then truck arrives at the checkpoint and informs the warehouse clerk about the freight order No.The warehouse clerk assigns free door to the TU and updates the status-Docked at door and informs the trucker to drive to assigned door.During this time an unloading notification message is send by EWM for arrival at check point and TM freight order status is updated to Arrived.

 

e) Warehouse clerk then receives the packages once the unloading process starts.The HU are received using RF device and once packages are identified ,HU label is attached to those packages .System automatically performs Goods receipt in EWM for each HU.

 

f) Once all HU are unloaded the truck leaves the door and the warehouse clerk confirms the departure from checkpoint.During this time the unloading message for departure is triggered by SAP EWM which updates freight order status to departed.

 

Now we shall follow the standard process to ship the product from the transit warehouse to next location in transportation chain.After creation of pre carriage/pick up freight order, SAP TM send the outbound planning information to SAP EWM and the same process repeats again as explained above like creation of freight order,send loading request, truck arrival at checkpoint, staging handling unit, loading truck, truck leaves,

Integrate the TM Quicksearch into an PFCG role

$
0
0

The TM Quicksearch as described here can be integrated into the NWBC role, which makes it available to all users with this role and in all systems, no system specific URL is required and the call is always done to the system the NWBC is currently connected to.

 

The following steps are required:

 

1. Enter Transaction PFCG for role maintenance

2. Create a new folder with the ID @SEARCH@ ( yes, in capaital letters... )

3. In the role create an entry of Type "Web address or file" ( you find this entry at the end of the dropdown list). The web address you enter is mainly the local      path as defined in SICF and the URL parameters, e.g. to define the search scope, minimum numbers of letters etc.(details are described in the previous      posting)

     This entry should look like this:

role_tmsearch.jpg

4. Delete the NWBC cache using the report NWBC_DELETE_MENU_CACHE

 

Remark: the generic process on how to integrate a search provider into the PFCG role can be found here, our search is a search following the open search standard (the second described case)


New version available of the SAP TM collaboration portal enhancement guide

$
0
0

There is a new version of the SAP TM collaboration portal enhancement guide available here: SAP TM Collaboration Portal - Customer Extensions.

 

What's new?

  • Fiori like logon screen
  • Two additional lines of code in init() function of custom component to avoid initial screen when starting extended collaboration portal

 

I am looking forward to your suggestions & feedback!

Cheers,

Jan

SAP Transportation Management collaboration portal screenshots available for TM9.3

Mini Series – Introduction to SAP Transportation Management

SAP TM Gantt chart - Common issues

$
0
0

In the last weeks I had several tickets on my desk regarding issues like "Gantt chart does only show a grey area" or "Gantt chart is not responding anymore after drag&drop". This post should list some common sources for such errors and for sure how to fix them.

 

Checking the console

If you have any issues with the Gantt chart behavior it is a good idea to check the browser console for issues. For opening the browser console you need to open the transportation cockpit application in any browser (instead of using NWBC Client) and press F12 for opening the developer tools. On the console tab you will find a lot of information listed. In case of a java script error the error message will shown up here.

console.png

Common issues

 

Services activated

If the Gantt chart just shows a grey area please make sure that all of the services the Gantt chart needs are activated (please check out SAP TM Gantt chart - How to set up).

 

Unified rendering issues

If the Gantt chart does only show a grey area but the services are activated, this could be released to issues with unified rendering. Please open the transportation cockpit again with a page layout showing geo-map or 3D load-plan visualization. If these components are also just showing a grey area please follow the instruction of SAP Note 2154957 and install the mentioned SAP Notes at least up to 2282014.

 

Library mismatch
Please be aware that the TM Gantt chart consists of two components which needs to be on the same version. Both components are delivered with separate SAP Notes. For this reason you ever find two SAP Notes like "Gantt Chart: Collective Note for the Gantt Chart Library (10)" and "Gantt Chart: Collective Note for TM Gantt Chart (10)" showing the same number.
Please make sure that both libraries are on the same version as different versions can lead to several effects from button does not work to Gantt chart does not show up at all.

 

9.3 related cache buster issue
You are running TM 9.3 on an SP below SP03. In the java script console some issue regarding /sap/public/bc/ui5_ui5/1/resources/~<timestamp>~/sap-ui-core.js occur (<timestamp> is showing some timestamp like ‘20160317120000’>. Please implement SAP Note 2235879for this issue.

 

9.3 ‘sap.ui.ux3.library-preload': NOT FOUND
You are running TM 9.3. In the Java script console you get an issue telling “’sap.ui.ux3.library-preload’: NOT FOUND”. Please implement SAP Notes 2258909and2258910.

 

9.3 Handling resources

You are running TM 9.3 on an SP below SP04 and use the default SAP Gantt chart layout SAP_HRES. The Gantt chart does not show up at all. Please implement SAP Note 2288503.

Monday Knowledge Snippet (MKS) - 61 Adding a custom object to the geo-map

$
0
0

The SAP TM geo-map component can be used to display master data and business documents. Sometime the requirement exists in custom development projects to add custom objects to the map. This MKS describes how this can be done with minimal effort.

 

First of all an enhancement spot implementation class (for example ZCL_MAP_ENHANCE) is needed. This class must implement interface /SCMTMS/IF_EX_MAP_ENHANCE_VB21. Then the enhancement spot implementation can be setup under path IMG -> SAP Transportation Management -> Business Add-Ins (BAdIs) for Transportation Management -> Geographical Map -> Enhancement for Geographical Map -> BAdI: Enhancement for Geographical Map.

 

MKS61_01_IMG.jpg

 

To add the custom object, an implementation in enhancement interface method ADJUST_NEW_OBJECTS can be done. This method is called whenever an object is added to the map. It is possible to adjust those spot and link like objects, but also to remove them or add totally new objects.

 

Example: You want to add an additional spot for each Freight Order representing the resource. The FO is added to the map and supplied to the enhancement method in table CT_LINK_OBJECTS. The FO stage key is the GUID. Adding the new spot needs structure if_vbi_service_provider=>spot_entry containing the following important fields:

 

GUID                   - Key (usually object key or stage key)

ID                        - Name

TYPE                   - Spot or Link

ROLES                - a table of roles indicating what kind of object it is -> determines for example the icon

DESCRIPTION    - a table of descriptions for tooltip, label, details

FLY_TO               - shall the map zoom to this object

SHOW_LABEL     - shall the label be displayed by default

POSITION           - Longitude and Latitude of spot

 

With the following code already a spot should be displayed:

 

METHOD /scmtms/if_map_enhance_vb21~adjust_new_objects.

     DATA: ls_spot        LIKE LINE OF ct_spot_objects,

               lv_role        TYPE vbi_object_role,

               ls_description TYPE vbi_s_object_descr_entry.

 

     ls_spot-guid = /sctm/cl_guid_convert=>get_guid_x16( ).

     ls_spot-id   = 'MY_TRUCK'.

     ls_spot-position-xpos = '2'.

     ls_spot-position-ypos = '3'.

     lv_role = if_vbi_geomap_const=>gc_object_role-truck.

     INSERT lv_role INTO TABLE ls_spot-roles.

 

*Add a description

     CLEAR ls_description.

     ls_description-category   = if_vbi_const=>gc_descr_category-tooltip.

     ls_description-field_name = 'Vehicle'.

     ls_description-value      = ls_spot-id.

     APPEND ls_description TO ls_spot-description.

 

     INSERT ls_spot INTO TABLE ct_spot_objects.

ENDMETHOD.

 

TruckCustom.jpg

Map with custom truck spot (of course this can have a more realistic position)

 

 

Challenges:

  • Depending on the map component the enhancement shall be active, it can be a challenge to keep the object consistently on the map or remove it at the right point in time. This might require some internal object handling in the custom class.
  • Different icons: When not using the standard roles determining standard icons, it might be required to set the icon in /SCMTMS/IF_MAP_ENHANCE_VB21~ADJUST_SPOT_ICONS.
  • Adding object to the map without others: method ADJUST_NEW_OBJECTS is only called when new objects are added. If you want to show objects without this pre-requisite, either a roundtrip with a new object must be triggered that will be removed immediately and replaced by the custom objects, or a modification is required. (As soon as this comes up I might enhance the enhancement spot...)

 

A lot more to tell about the options to enhance the map...

Monday Knowledge Snippet (MKS) - 62 TM 9.3 Package Building: Weight based items

$
0
0

Today's MKS goes a bit more into detail regarding package building for weight based items. When the whole topic was kicked off, it focused on piece based items. But from our first front-runner customers we learned that there is a lot potential for weight based scenarios. So goal is clear: Enable packaging for items that are ordered based on weight.

 

MKS62_01_Order.jpg

Order with weight based item

 

Basically the TM Freight Unit builder decides what quantity is relevant for package building (/SCMTMS/CL_PB_FUB->MAP_FUB_ITEMS_TO_PB). It prefers the pieces quantity, but in case this is not available now also the item gross weight can be mapped into the relevant PB item field. Note that there is in the PB item structure also a dedicated field for item gross weight, but this is only used for the required weight determination.

 

Note that the package builder only processes items based on gross weight (definitions). There is currently no logic based on net weight.

 

In case the PB receives an item with weight based quantity, it will of course first determine the to-be-used package. After this it will check the product specific alternative unit of measure definitions. Those must no contain a conversion between the package unit of measure and the weight unit of measure.

 

MKS62_03_PackageMaterial.jpg

Product with weight conversion

 

One challenge using this conversion is that the field Numerator is quite limited (I can do nothing about it as it is an ERP field existing quite a long time). It does not allow decimals and has i think only a length of 6. One feasible approach to get this running is the enhancement spot method DETERMINE_SPLIT_FACTOR. Maintain the exact weight conversion in the gross weight fields and overwrite the rounded value from the numerator field.

 

Again, the PB uses this as hard split criteria based on the gross weight. If I order let's say 600 kg of my product and a special additional packaging is required (like a bag around) per package with a weight of let's say 10 kg. If I keep the above conversion, 490 kg of the product and 10 kg bag will end up on the first pallet and 110 kg of the product and 10 kg bag will be on the second pallet.

 

After going through the PB, the final result for weight based items will be on the Freight Unit the following:

 

MKS62_02_FreightUnit.jpg

Freight Unit with weight based items

 

Don't get confused: The split factor coming from the product (in my example 500 kg) always excludes the package itself. So the 510 kg for the first pallet is not an additional bag, but the pallet itself. If you want to limit the pallet to 500 kg, you can use the maximum weight allowed.

 

Of course the pieces fields for the split item is empty.

 

Required SCMB Note: 2284420

 

Hope this gives you at least an idea what is already possible and where to start thinking. A lot to learn in this area. Looking forward to what's coming next.

Webinar: Yanbal International on SAP Transportation Management May 10th

$
0
0

Yanbal International Simplifies the Supply Chain

Learn how the organization optimizes logistics by consolidating and harmonizing global transportation management

Yanbal_Picture.jpg

At the session, experts from SAP and Yanbal – a family owned business with extensive experience in manufacturing and shipping cosmetics, jewelry, and fragrances internationally – will share how the company uses the SAP Transportation Management application to:

  • Consolidate and harmonize its diverse transportation and logistics processes
  • Reduce its total cost of ownership with seamless integration into SAP ERP
  • Achieve cost savings and reduce invoice errors while meeting service levels


Register now to join us.


We look forward to seeing you online!

Best regards,

SAP




 

Webinar: How Yanbal International Optimizes Logistics and Transport

Date:
Tuesday, May 10, 2016

Time:
11:00 a.m. ET/5:00 p.m. CEST

Register now

 


TM Portal - creating default personalization

$
0
0

Dear Readers,

 

In this blog, I would like to provide information about the how An Administrator can personalise TM Portal so that the first time Portal users can see the default personalization set by him.With this Admin can hide the unwanted columns on different screens and also make default setting for the portal users. Please note that the portal users can always change the personalization as per their needs.

 

As a pre-requisite, you should implement the note 2186138 or implement the relevant Support Pack Level and refer to the attachments of the note for more detailed pre-requisites.

 

There are 2 options to achieve the default personalization:


Option 1: Change directly in production:


If you want to change the default settings directly in production then you need to have the required Admin Roles and also open the client (SCC4) to save the personalization. This option might not be feasible every time.

 

Option 2: Change the default settings in Development system & transport:

 

With this option you can change the setting and personalization in the development system and transport the personalization to further systems. You should have the Portal Admin authorization to do this change (Refer to the note 2186138 for more detailed pre-requisite). Please follow the below steps for option 2:

 

1. Create a Transport (Customizing) Request and assign to the admin user. Lets say the TR # TMS9999.

 

2. After this you need to go to SU01 or SU3 to change the user parameter. Then add the user parameter /UI2/WD_TRKORR_CUST and specify the TR number (TMS9999) in the parameter value.


User_Parameter.jpg

3. After this, with admin user can login to the portal and change the settings and hide/unhide the columns. After you completed the personalization, then you will find the tasks created in the TR (TMS9999).

 

TR_details.JPG

 

4. You can transport this TR to further systems

 

Please note that if you have separate systems for Portal and TM Back end then the above steps needs to be done on the Portal system.

How to setup business partners for the TM collaboration portal

$
0
0

Hi,

 

ever wondered how to properly setup business partners to be used for the SAP TM collaboration portal? Here we go...

 

If you as a shipper or LSP want to collaborate with a carrier A through the SAP TM collaboration portal, you need to have two business partners created in your TM back-end system:

 

  1. BP with role "Carrier", say "Carrier A"
  2. BP with roles
    • "Contact Person", say "Contact Person X"
    • "Internet User"

 

Between "Carrier A" and "Contact Person X", you need to also specify BP relationship "Has Contact Person/Is Contact Person For".

 

Then you need to create a Dialog User in SU01 for "Contact Person X" - this is the user with which the contact person at carrier side will finally log on the SAP TM collaboration portal. This needs to have the appropriate roles and authorizations (see https://scn.sap.com/people/jan.rumig/blog/2015/08/14/how-to-define-authorizations). Once this is setup, this SU01 user has to be maintained on the "Internet User" tab in business partner maintenance for "Contact Person X".

 

If there are multiple contact persons working for carrier A, additional SU01 have to be created and additional contact persons created in BP maintenance accordingly.

 

So finally, whenever this carrier A is assigned to a business document in TM, e.g. to a freight order, and this document fulfills the respective requirements to be displayed in the SAP TM collaboration portal (e.g. showing proper status values, etc.) then all contact persons maintained for this carrier as described above can access this document once they have logged on to the SAP TM collaboration portal.

 

This also means that if "Contact Person X" is not only contact person for "Carrier A", but also for "Carrier B", this contact person would see all documents of "Carrier A" and "Carrier B" in the SAP TM collaboration portal.

 

Hope this helps

Cheers,
Sabine

Troubleshooting: Carrier does not see the expected documents in the SAP TM collaboration portal

$
0
0

Hi,

 

if a carrier logs on to the SAP TM collaboration portal and either does not see any content at all, or not the expected content, this may have one of the following root causes:

 

  1. If no content is displayed at all, or even an error message, the required Gateway services may not have been setup properly. Read this post for more information: https://scn.sap.com/people/jan.rumig/blog/2015/08/14/how-to-setup-of-the-gateway-services
  2. If the work centers are displayed, but not the expected documents, the following should be checked:

 

If all of the above criteria is met, carriers should be able to find their respective documents in the SAP TM collaboration portal.

Cheers,
Sabine

Blog on Strategic Freight Management from a Shippers LSPs Perspective

$
0
0

Transportation cost control has been under intense pressure in recent years. Upward pricing drivers have included lengthening supply chains due to globalization, customers demanding faster and more frequent deliveries, carrier capacity challenges, stricter accessorial enforcement by carriers, and fuel surcharge gyrations.

 

Why Strategic Freight Procurement is a New Focus?

 

Rising freight costs are clearly the top pressure driving companies’ renewed focus on transportation procurement and payment. Companies realize they need to institute better spending control to ensure their purchasing volume leverage is being maximized and that shipments consistently follow corporate rules on using low-cost/best value carriers or service options.

 

However, cost is not the only factor on procurement and logistics professionals’ minds. Growing recognition of the critical role transportation flexibility and reliability play in overall supply chain performance is causing companies to re-examine their spend management processes. Increasing supply chain complexity caused by more manufacturing outsourcing and globalization is also making many companies’ traditional transportation procurement practices outdated.

 

The Challenges faced by the Shipper/LSP traditional process:

The Traditional process is manual and mainly done using Excel. SAP Strategic Freight helps to reduce high volume data and optimizing the procurement process.

 

 

What is SAP TM Strategic Freight Procurement?

 

SAP software for freight procurement helps you set expectations for upcoming transportation expenditures according to individual business units which varies depending on the shipping locations and trade lanes.

 

Also because your relationships with partners such as carriers change as your supply chain evolves, you may want to renegotiate existing contracts to include new business while changing the way you allocate shipment volumes among your LSPs/ carriers.

 

 

SAP software (from SAP TM 9.1) supports your entire strategic freight procurement operations by:

* Simplify contract negotiation processes.
* Preparing bids, proposals, and responses, and award and manage contracts/ long term Agreements.
* Efficiently managing contract negotiations by evaluating freight procurement expenditures – for example, annually or semi-annually.
* Can be employed with the strategic freight management function by itself or in conjunction with integrated logistics processes.
* SFP is a cycle of mutually work between shipper/ LSP and carrier.

 

 

[removed from moderation]

 

Hoe to use this is well explained here

 

Strategic Freight Procurement

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.

Viewing all 91 articles
Browse latest View live


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