0

Microsoft Dynamics CRM 2011 で HTML ページからダイアログを起動しようとしていますが、正直なところうまくいきません。

ここに私のHTMLページがあります:

<HTML><HEAD>
<META charset=utf-8>
<SCRIPT>
function getServerUrl(){
    var context, crmServerUrl;
    if (typeof GetGlobalContext != "undefined") {
        context = GetGlobalContext();
    }
    else if (typeof Xrm != "undefined") {
        context = Xrm.Page.context;
    }
    else {
        throw new Error("CRM context is not available.");
    }

    if (context.isOutlookClient() && !context.isOutlookOnline()) {
        crmServerUrl = window.location.protocol + "//" + window.location.host;
    } else {
        crmServerUrl = context.getServerUrl();
        crmServerUrl = crmServerUrl.replace(/^(http|https):\/\/([_a-zA-Z0-9\-\.]+)(:([0-9]{1,5}))?/, window.location.protocol + "//" + window.location.host);
        crmServerUrl = crmServerUrl.replace(/\/$/, ""); // remove trailing slash if any
    }
    return crmServerUrl;
}

function LaunchDialog()
 {
var string = getServerUrl();
alert(string);
var url="/" + getOrg() + "/cs/dialog/rundialog.aspx?DialogId=%7b7B189BA4-84B4-4E41-AE85-2066A379E502%7d&EntityName=systemuser&ObjectId=" + getUser();
    //window.open(url, "", "status=no,scrollbars=no,toolbars=no,menubar=no,location=no");
alert(url);
    //window.open(url);
 }
function getOrg() {
alert("Called");
        ///<summary>
        /// get organisation
        ///</summary>

        var Org = "";
        if (typeof GetGlobalContext == "function") {
            var context = GetGlobalContext();
            Org = context.getOrgUniqueName();
        }
        else {
            if (typeof Xrm.Page.context == "object") {
                Org = Xrm.Page.context.getOrgUniqueName();
            }
            else
            { throw new Error("Unable to access Organisation name"); }
        }
       alert("About to return org");
        return Org;
    }

function getUser() {
alert("Called 1");
        ///<summary>
        /// get logged in user
        ///</summary>

        var User = "";
        if (typeof GetGlobalContext == "function") {
            var context = GetGlobalContext();
            User = context.getUserId();
        }
        else {
            if (typeof Xrm.Page.context == "object") {
                User = Xrm.Page.context.getUserId();
            }
            else
            { throw new Error("Unable to access the UserId"); }
        }
      alert("End User");
        return User;
    }   
</SCRIPT>
</HEAD>
<BODY contentEditable=true>
<H1>Create Record</H1>
<P><BUTTON onclick=LaunchDialog()>Try it</BUTTON></P></BODY></HTML>

Web プログラミングは私の最強の才能であるため、これを解決する方法について何か提案をしてもらえますか?

4

1 に答える 1

1

Guido が言うように、ClientGlobalContext.js.aspx への参照が必要だと思います。GetGlobalContext() について説明しているMSDN の記事を次に示します。これは、それへの参照を含めることを言及している場所です。

フォーム外のコンテキスト情報が必要な場合は、ClientGlobalContext.js.aspx ページへの参照を HTML Web リソースに含めます。

于 2013-05-20T20:02:25.637 に答える