[gelöst] Dynamics NAV Webclient URL in Microsoft Dynamics CRM als Iframe einbinden

Standardmäßig lassen sich im NAV-Webclient Daten und Tables zwar per erweiterter URL abrufen, diese können jedoch nicht in einer anderen Webseite mit separater Domain per Iframe eingebunden werden.

Um dies jedoch zu ermöglichen, müssen folgende Änderungen durchgeführt werden:

(Die Zusammensetzung der URL wird in folgendem Microsoft Artikel beschreiben: https://msdn.microsoft.com/en-us/library/hh997130(v=nav.90).aspx )


Einstellungen im IIS des NAV Servers:

C:\inetpub\wwwroot\<NAVDBNAME>\web.config

<DynamicsNAVSettings>
<!– Specifies the comma seperated list of allowed frame ancestor URIs when web client is hosted inside an iframe.
The uris can contain wildcards. Example values: „https://mysite.sharepoint.com,https://yoursite.sharepoint.com“, „https://*.myportal.com“
–>
<add key=“AllowedFrameAncestors“ value=“https://*.sharepoint.com, https://*.<yourdomain>.at“ />

CRM Settings

  • Formular-Editor -> Iframe einbinden -> Name: IFRAME_NAV  URL: about:blank

  • Webresource mit Javascript erstellen und dies in den Formulareigenschaften unter Ereignisse hinzufügen
  • Die Webressource hat folgenden Code:

function seturl_nav() {
if (Xrm.Page.getAttribute(„new_nav_location_no„).getValue() != null)
{
var nr = Xrm.Page.getAttribute(„new_nav_location_no„).getValue();
var url = ‚https://<url-nav-server>/<db-name>/WebClient/?company=<company-name>&page=<page-id>&filter=%27Location%20Code%27%20IS%20%27′ + nr + ‚%27 &isembedded=1&showribbon=0&shownavigation=0&showuiparts=0‘;
Xrm.Page.getControl(‚IFRAME_NAV‚).setSrc(url);
}
else { }
}

seturl_nav = Funktionsname
new_nav_location_no = Feldname in DB der Entität
nr = in URL übergebener Wert
IFRAME_NAV = Name des Iframes im Formular
%20 = Leerzeichen
%27 = ‚ (wird für die Abgrenzung der Werte in der URL Verwendet, zB.
%20IS%20 = Bedingungesfeld
%20AND%20 = Bedingungs-Und-Erweiterung
‚ = Wertetrennung für Javascript

  • Handlereigenschaft eintragen als OnLoad Bedingung :

Speichern und Veröffentlichen der Anpassung
Nach erneuter Ladung der CRM Seite wird das Iframe nun im CRM angezeigt:

Veröffentlicht von

Robert Hirzinger

Robert Hirzinger

Geboren in Kitzbühel. Aufgewachsen in Going am Wilden Kaiser. Computer und Technik sind seine Leidenschaft, und dies machte er auch zum Beruf - von der IT Lehre bis hin zum Job als IT Administrator und Teamleiter der IT. Aktuell arbeitet er an seinem Master in ERP Systeme & Prozessmanagement und an einigen anderen IT Projekten.