If the consumer host is not correctly configured all task notification emails will have such a link:


To the consumer host could be configured step by step:

Open the SAP NetWeaver Administrator in a browser using the path http://<host>:<httpport>/nwa , and log on with administrator rights.
Choose Start of the navigation path Configuration Next navigation step Infrastructure Next navigation step Java System Properties End of the navigation path.
Choose the Applications tab and select tc~bpem~base~ear .

Notifications Configuration
Set the following properties for the notification messages service:
Notification.assigned : To send a notification message to users who become actual owners of a task set this property to true . Otherwise set it to false .
Notification.newtasks : To send a notification message to all potential owners for a new task in their inbox set this property to true . Otherwise set it to false .
http.baseurl : Enter the URL, including protocol, host name and port number which is used to generate the links to the task execution UI in the notification e-mail, such as http://<host>:<httpport> .
http.consumerbaseurl : If the Enterprise Portal (EP) is on another system than CE/BPM, enter the URL including protocol, host name and port number which is used to generate the links to the UWL in the notification e-mail, such as http://<host>:<httpport> .
Save the application properties.


Further information: http://help.sap.com/saphelp_nw73ehp1/helpdata/DE/e4/32ff7865fa483dba3686160f5c6dd0/frameset.htm


Java has a shortened version of an if else command. The use of it is very easy, if you understand it once.

It’s written:

x ? y : z;

Here the question mark and the colon will take the place of the commands if and else.
This means:

condition ? inCaseOfTrue : elseCase;

If the condition is true the part behind the questions mark will be taken, else the part behind the colon.
This shortened version has big advantages for coding, because it prevents blowing up your code.
e.g. if you want to return a string in a method depending on a parameter:

classic „version“, which is even short, just using the direct return.

public String getMood(boolean hasGoodMood){
        return "happy";
    return "sad";

And here the real short and smooth verion:

public String getMood(boolean hasGoodMood){
    return hasGoodMood ? "happy" : "sad";

Especially for setting strings the short if else show their potential, e.g.:

longString = longString.length()>5 ? longString.substring(0, 5) : longString;

This short line will substring a string and prevents an indexOutBounds in case that the string is not long enough.

At the end both (short and classic if else) will be compiled to the same, but the meaningful use will prevent blowing up your source code and keep it more structured.


I am sure you know this situation: You have found a bug in the SAP MDM and you want to create an OSS message. The first question of the guy answering the OSS is: Can you send me all details about your MDM environment and also all the log files and an archive of the repository. To gather all this information it takes a lot of time and you can be sure that you will forget some essentail information.

But there is a tool which does all the work for your: the SAP MDM Info Collector. This tool provided from SAP.

You have to copy the whole folder in \usr\sap\ folder and configure the Java Virtual Machine path in the start script.

After that you can run the start script and you can see the info collector.


To download the info collector just open note 1522125 and follow the instructions

Hinweis 1522125 – MDM Info Collector: Snapshots zur Offline-Analyse anlegen


In order to plugin easily some search components, result set components and item details components without any programming you can use the so called master application. This application allows you to connect these components without any effort.

Following link can be plugged together


The component names must equal to the names configured in the WD Config.

Also the action MDM_WD_TEST_APPLICATION must be added to a role which is connected with the user.

After that you will get a view with all that components connect with each other.


This post tries to guide you, how to configure webservices in combination with SAP Master Data Management.

Prerequisites are that at least following components are deployed to your SAP Netweaver AS:


First of all you need to create a destination using the link http://<host>:<port>/mdm/destinations. If no trusted connection is implemented you need to enter here a valid user for the repository.

This destination allows you now to connect to your MDM Server.

After that you need to create your webservice. Via the link http://<host>:<port>/mdm/wsgenerator you can create your webservice. This webservice can then be deployed on your SAP Application Server.

If you try then to execute the webservice via the Webservice Navigator (http://<host>:<port>/wsnavigator) you will get an error message call „connection_3005-Cannot connect with MDM using destination“. The solution is to configure the user for your application in the right way. By default the „Admin“ user is used. In order to change it go to the Netweaver Administrator (http://<host>:<port>/nwa) and go to Configuration -> Infrastructure -> Java System Properties. Then go to Application and search for your Webservice application and select it. Then you can find in the tab Properties the user and password which is used to authenticate against the MDM. Change this user and password to a valid combination and it runs.


Mit ’services.msc‘ können unter Windows die installierten Dienste angezeigt werden. Falls nun ein bestehender Dienst gelöscht werden soll, kann der Dienst dort nur deaktiviert werden.

weiterlesen von ‘Windows – Dienst löschen’ »


During the development of a SAP Netweaver MDM Application you often need the record ID in order to do some debugging or something else.To retrieve the record ID for a normal table you creat a webservice with a retrieve operation, use the webservice navigator to execute this webservice and in the end you get the record ID. A pretty long way for such a simple piece of information. But especially for the PDF table or other internal tables there was no way to retrieve this via a webservice.


There is also a more convenient way of retrieving this information: You can use the Data Manager!!


Just a simple adaption in your registry enables a tooltip in the data manager:


  1. Go to windows registry (regedit)
  2. HKEY_CURRENT_USER -> Software -> SAP -> MDM 7.1 -> Client (select Client)
  3. Add new ‘String Value’: ‘Show RecordId In Tooltip’ with the value ‘True’.

If you restart the Data Manager you will see the record ID of each record as a tooltip over the first column normally indicating if a record is protected or not:


Hi all,


this is the first post about SAP MDM. I just want to collect some nice tips and tricks for SAP MDM, SAP BPM, SAP BRM and SAP CE. I was part of a large customer implementation and I just want to share my gained knowledge.


So let’s start today with a short hint regarding calculated fields.

As you probably know: calculated fields in SAP MDM can only be changed, if the respective repository is unloaded. That means updating a calculated field could take really long. My hint is now: Create a validation and add in this validation your calculation expression. You can add the same expressions in the validation as in the calculated field. It is not mandatory to return boolean in the validation. So just add your expression and set the option „callable“ to yes.

If you have now a look in the calculated field with the expression editor you will find the validation you created as a function.

With this trick you are able to change the calculation expression for calculated fields on the fly without unloading and loading the repository.


In Oracle gibt es die replace Funktion um Teile eines Strings durch einen anderen Teil zu ersetzen. Hierbei kann ein Zeichen oder eine Zeichenkette durch ein anderes Zeichen oder eine andere Zeichenkette ersetzt werden. Alternativ kann die replace Funktion auch dazu genutzt werden bestimmte Zeichen aus einem String zu entfernen.

Syntax der replace Funktion:

replace(mainString, replaceString, [replacementString])

mainString – String in dem Teile ausgetauscht werden sollen
replaceString – String welcher in mainString ersetzt werden soll. Dabei ist Groß- und Kleinschreibung zu beachten
replacementString – Wird replaceString in mainString gefunden, wird dieses durch den replacementString ausgetauscht. Wird dieser Parameter nicht angegeben (Parameter ist optional), so werden alle Vorkommen von replaceString aus dem mainString entfernt. Dies entspricht dann einem leeren replacementString von “.

weiterlesen von ‘Oracle – Replace Funktion’ »


In Oracle gibt es neben der replace Funktion noch die translate Funktion um einzelne Zeichen eines String durch ein anderes Zeichen zu ersetzen. Zu beachten ist, dass bei dieser Funktion nur jeweils ein Zeichen durch ein anderes Zeichen ersetzt wird. Jedoch ist es möglich mehrere einzelne Zeichen auf einmal zu tauschen.

Syntax der translate Funktion:

translate(mainString, replaceCharacters, replacementCharacters)

mainString – String in dem einzelne Zeichen ersetzt werden sollen
replaceCharacters – ein oder mehrere Zeichen welche in mainString ersetzt werden sollen
replacementCharacters – ein oder mehrere Zeichen welches durch das entsprechende Zeichen aus replaceCharacters ersetzt

weiterlesen von ‘Oracle – Translate Funktion’ »

Impressum Suffusion theme by Sayontan Sinha