Skip to main content
Skip table of contents

Aufruf Multiflex aus Drittsoftware per Link

Der Aufruf von Multiflex aus Drittsystemen kann mit einem Link erfolgen. Dabei kann auch direkt ein bestimmter Datensatz in Multiflex geöffnet werden (im entsprechenden Standard-Geschäftsprozess).

Beispiel-Link:

CODE
MX.ERP://openwindow?db=RUEBIGAT&params=TaskInx:11

Der Aufruf des Links kann über “Windows - Run” getestet werden:

image-20241023-081707.png

Alternativ kann der Link auch in eine Webseite eingebettet werden:

CODE
<head>
</head>
<body>
test 123
<a href="MX.ERP://openwindow?db=ULBRICH_LOC&params=TaskInx:11">hier klicken</a>
</body>

Ausführen über “Windows - cmd” ist nicht möglich

Ausführen des Links direkt in einer Adressleiste des Browsers ist nicht möglich

Die Groß-/Kleinschreibung muss EXAKT eingehalten werden!

Beim Start von Multiflex trägt dieses in der Registry die benötigten URL-Informationen automatisch ein:

image-20240909-122357.png

Zusätzlich wird der Pfad zur gestarteten LC.NET.EXE eingetragen. Dieser liegt normalerweise (bei einer ClickOnce-Verteilung) im User-Ordner unter AppData.

Wird nun die registrierte URL “MX.ERP://” ausgeführt, so wird das in der Struktur shell/open/command/ hinterlegte exe File ausgeführt.

Dieses prüft nun, ob bereits eine Named Pipe gestartet wurde. Falls nicht, ist also noch keine “lauschende” Multiflex Sitzung gestartet worden und es wird eine neue Instanz von Multiflex gestartet.

Damit beim Start von Multiflex automatisch auch der entsprechende PipeServer gestartet wird, ist die Grundlageneinstellung GRUNDLAGEN_WERTE - USE_PIPESERVER auf “true” zu setzen:

CODE
insert into grundlagen_werte (name, wert) values ('USE_PIPESERVER','true');

Ob der PipeServer korrekt gestartet wurde, ist an einem Registry-Eintrag sichtbar:

image-20240909-123428.png

Wird auf Laufwerk C: ein Unterordner mit dem Namen “_tctrace” angelegt, so werden Informationen zum Aufruf des exe Files in diesen Ordner in ein Log File protokolliert.

Da Business Objects links nur darstellen kann, wenn diese mit “http” beginnen, muss eine “proxy” Webseite verwendet werden um die Weiterleitung durchzuführen.

In BO wird dann der Link auf diese Webseite erstellt und als Query String werden die erforderlichen Parameter übergeben.

Die Webseite leitet dann automatisch auf MX.ERP:// weiter und aktualisiert das ERP. Dabei wird der erhaltene Query String mit den Parametern ausgelesen und an den ERP-Aufruf weitergegeben.

Hier ist der Code der Webseite als Beispiel sichtbar - diese wurde im Beispiel im wwwroot-Verzeichnis abgelegt:

image-20241023-160213.png

CODE
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Redirecting...</title>
<script type="text/javascript">
        // Function to parse query string parameters
        function getQueryStringParams() {
            const params = new URLSearchParams(window.location.search);
            let paramStr = '';
            params.forEach((value, key) => {
                paramStr += key + '=' + value + '&';
            });
            return paramStr.slice(0, -1); // Remove trailing '&'
        }
 
        // Redirect with the query string
        window.onload = function() {
            const baseUrl = "MX.ERP://openwindow?";
            const queryParams = getQueryStringParams();
            if (queryParams) {
                const fullUrl = baseUrl + queryParams;
                window.location.href = fullUrl;
            }
        };
</script>
</head>
<body>
<p>Redirecting you...</p>
</body>
</html>

In den Bericht wird eine neue Spalte eingefügt, die als HTML formatiert wird:

Beispiel:

image-20241023-154836.png

Aufbau des Links:

image-20241023-154803.png

Durch Klick auf den Link wird nun die oben erstellte Webseite aufgerufen und der Datenbankname und der Aufgabenindex als Parameter übergeben. Die Webseite leitet dann auf den MX.ERP:// Aufruf weiter. Hier wird eine Sicherheitsabfrage angezeigt, die mit “Open” zu bestätigen ist:

image-20241023-155022.png

Anschließend wird im ERP der hinterlegte Standard-Geschäftsprozess betreten und die Aufgabe selektiert.

In manchen Browsern (hier Firefox) kann die Sicherheitsabfrage einmalig bestätigt werden und erscheint dann nicht mehr:

image-20241025-084139.png

Bei Edge kann dies über eine Einstellung in der Gruppenrichtilinie (Group Policy) gesteuert werden:

ExternalProtocolDialogShowAlwaysOpenCheckbox

Ist dieser Wert “true”, dann wird auch in Edge die CheckBox zur einmaligen Bestätigung des Links angezeigt.

Aktuell sind folgende Parameter implementiert (Groß-/Kleinschreibung muss eingehalten werden):

Parameter

ProcessInx

INX des CRM-Vorgangs

Anmerkung: Aktuell keine Funktion

TaskInx

INX der CRM-Aufgabe

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.