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:

- MDM_WEB_SERVICES
- MDM_WEB_SERVICES_RUNTIME
- MDM_WEB_UI
- MDM_JAVA_API

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

 

In PHP gibt es wie in anderen Programmiersprachen die for-Schleife um Arrays zu durchlaufen bzw. um eine Anweisung mehr als einmal auszuführen.

Syntax:

for (startStatement; condition; loopStatement) { ... }
for (startStatement; condition; loopStatement) : ... endfor;

startStatement  – Statement das vor dem 1. Schleifendurchlauf ausgeführt wird. Meist wird eine Zählvariable initialisiert.
condition – Bedingung die vor jedem Schleifendurchlauf ausgeführt wird. Ist der Wert “true” so wird der nächste Schleifendurchlauf durchgeführt. Bei “false” wird die Iteration/For-Schleife beendet.
loopStatement  – Am Ende jedes Schleifendurchlaufs wird dieses Statement ausgeführt. Hier wird dann meist eine Zählvariable verändert.

Beispiele:

Initialisierung der Zählvariablen $i mit 1. Solange $i kleiner oder gleich 5 ist, wird die Schleife fortgesetzt, während am Ende eines Schleifendurchgangs die Zählvariable $i um 1 erhöht wird. Hier werden die Zahlen von 1 bis 5 ausgegeben.

for ($i = 1; $i <= 5; $i++) {
    echo $i;
}

Analog können die Zahlen natürlich auch rückwärts ausgegeben werden.

for ($i = 5; $i >= 1; $i--) {
    echo $i;
}

weiterlesen von ‘PHP – For Schleife’ »

 

Wie andere Sprache auch verfügt Oracle in PL/SQL auch über For-Schleifen mit denen jegliche Iterationen durchgeführt werden. Sehr oft werden diese in Verbindung mit Cursor genutzt, um die Ergebnisse davon einzeln zu durchlaufen.

declare
begin
  for i in 1 .. 10
  loop
    dbms_output.put_line(i);
  end loop;
end;

Hierbei muss die interne Zählvariable i nicht im declare-Block angegeben werden.

weiterlesen von ‘Oracle – PL/SQL For Schleife’ »

 

In Java gibt es die Funktion substring um einen String aus einem größeren String herauszulesen. Es gibt 2 Möglichkeiten die Funktion zu nutzen: Einmal mit Angabe des Startindex ab dem der restliche String zurück geliefert wird oder es kann zusätzlich ein Stopindex angegeben werden an dem der Substring endet.

Syntax:

public String substring(int startIndex);
public String substring(int startIndex, int endIndex);

weiterlesen von ‘Java – Substring Funktion’ »

 

Heute gab es bei meinem WordPress-Blog eine etwas unschöne Fehlermeldung:

Fatal error: Allowed memory size of 33554432 bytes exhausted

Es stellte sich heraus, dass ich die standardmäßigen 35 MB PHP-Cache von WordPress ausgeschöpft habe. Nach längerem Suchen bin ich dann auf das folgende Setting WP_MEMORY_LIMIT gestoßen durch das dieses Limit erhöht werden kann.

Um nun WP_MEMORY_LIMIT zu setzen muss die wp_config.php um folgende Zeile ergänzt werden:

define(‘WP_MEMORY_LIMIT’, ’64M’);

Prompt funktionierte wieder alles.

Jetzt habe ich noch ein weiteres Plugin aktiviert, mit dem ich den Speicherverbrauch im Dashboard im Überblick behalten kann.

Impressum Suffusion theme by Sayontan Sinha
go to ajlee