动态 Web 资源打开动态 window
Dynamics Web Resource opening a dynamic window
我是 Dynamics Web Resources 的新手,在我们的 Web 开发人员的帮助下,我编写了 1 在 iFrame 中显示 DOMO 报告。现在,我想解决在联系人记录上放置 link 的问题,这将弹出一个新的 window 并允许用户填写我们的第三方应用程序构建器构建的自定义表单。如果我知道我需要对其执行操作的用户 ID 和联系人 ID,则可以访问此表单。
通常情况下,用户会在联系表单的 iframe 中单击 link,这个新的 window 会弹出一个网络表单,他们可以创建我们所说的销售机会。当点击这个link并填写表格时,表格可以完成多项功能。 1. 创建一条phone条通话记录。 2. 创造销售机会。 3.更新联系人。
我希望 link 位于文本 URL 字段中,以便可以从实体视图中单击它。当 window 弹出时,它会弹出表单中已有的用户 ID 和联系人 ID,然后用户可以快速记录机会和 phone 呼叫的详细信息。
我从我们的合作伙伴开发的另一个网络资源中获取了代码,并尝试对其进行编辑以符合我的要求,但显然它不起作用(只是一个空白页面)。
是否可以在记录的 URL 字段中填充 Web 资源的 URL,然后让 URL 弹出包含用户和联系人的自定义表单预填充?
这是我当前的代码(不起作用):
`
<title>Activity</title>
<script src="../../../../ClientGlobalContext.js.aspx" type="text/javascript"></script>
<script src="../../../scripts/jquery.min.js" type="text/javascript"></script>
<script src="../../../scripts/crmhelper.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
var id = window.top.opener.Xrm.Page.data.entity.getId();
Crm.retrieveRecord(id, "ContactSet", successCallback);
});
function successCallback(data, status, request) {
var cId = window.top.opener.Xrm.Page.data.entity.getId();
var user = window.top.opener.Xrm.Page.context.getUserId();
var org = Crm.getServerOnlineOrganization();
var cId2 = = cId.replace(/{|}/g, '');
var url = "https://mycrmurl.com/mscrm/ticketing/Activity/PhoneCallSave.aspx?cId=" + cId2 + "&id=" + cId + "&orgname=" + org + "&userid=" + user + "&token=XYX4RXWf";
$('#iframe1').attr('src', url);
}
</script>
<style type="text/css">
html, body {
overflow: hidden;
margin: 0px;
padding: 0px;
width: 100%;
height: 100%;
}
iframe {
width: 100%;
height: 100%;
border: 0px;
}
</style>
<iframe id="iframe1" frameborder="0" noresize="noresize"></iframe>
`
您最好修改实体上的功能区以包含一个新按钮。这个按钮可以给web资源传递参数
这实现了以下目标:
- 不再需要包含 Web 资源的 CRM 字段 URL
- 简化您的网络资源 javascript(即删除对
window.top.opener
的依赖)
- 更好的supported/standard自定义
要配置功能区,请下载 XrmToolbox 并使用 Ribbon Workbench
插件
- 添加一个新的
Button
功能区
- 为按钮配置一个
Command
- 向命令添加参数。一个是
PrimaryControl
,另一个是CommandProperties
然后在您的网络资源中,您应该会看到查询字符串已附加了一些新属性。这些可用于获取 UserId 和 RecordId
我是 Dynamics Web Resources 的新手,在我们的 Web 开发人员的帮助下,我编写了 1 在 iFrame 中显示 DOMO 报告。现在,我想解决在联系人记录上放置 link 的问题,这将弹出一个新的 window 并允许用户填写我们的第三方应用程序构建器构建的自定义表单。如果我知道我需要对其执行操作的用户 ID 和联系人 ID,则可以访问此表单。
通常情况下,用户会在联系表单的 iframe 中单击 link,这个新的 window 会弹出一个网络表单,他们可以创建我们所说的销售机会。当点击这个link并填写表格时,表格可以完成多项功能。 1. 创建一条phone条通话记录。 2. 创造销售机会。 3.更新联系人。
我希望 link 位于文本 URL 字段中,以便可以从实体视图中单击它。当 window 弹出时,它会弹出表单中已有的用户 ID 和联系人 ID,然后用户可以快速记录机会和 phone 呼叫的详细信息。
我从我们的合作伙伴开发的另一个网络资源中获取了代码,并尝试对其进行编辑以符合我的要求,但显然它不起作用(只是一个空白页面)。
是否可以在记录的 URL 字段中填充 Web 资源的 URL,然后让 URL 弹出包含用户和联系人的自定义表单预填充?
这是我当前的代码(不起作用): `
<title>Activity</title>
<script src="../../../../ClientGlobalContext.js.aspx" type="text/javascript"></script>
<script src="../../../scripts/jquery.min.js" type="text/javascript"></script>
<script src="../../../scripts/crmhelper.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
var id = window.top.opener.Xrm.Page.data.entity.getId();
Crm.retrieveRecord(id, "ContactSet", successCallback);
});
function successCallback(data, status, request) {
var cId = window.top.opener.Xrm.Page.data.entity.getId();
var user = window.top.opener.Xrm.Page.context.getUserId();
var org = Crm.getServerOnlineOrganization();
var cId2 = = cId.replace(/{|}/g, '');
var url = "https://mycrmurl.com/mscrm/ticketing/Activity/PhoneCallSave.aspx?cId=" + cId2 + "&id=" + cId + "&orgname=" + org + "&userid=" + user + "&token=XYX4RXWf";
$('#iframe1').attr('src', url);
}
</script>
<style type="text/css">
html, body {
overflow: hidden;
margin: 0px;
padding: 0px;
width: 100%;
height: 100%;
}
iframe {
width: 100%;
height: 100%;
border: 0px;
}
</style>
<iframe id="iframe1" frameborder="0" noresize="noresize"></iframe>
`
您最好修改实体上的功能区以包含一个新按钮。这个按钮可以给web资源传递参数
这实现了以下目标:
- 不再需要包含 Web 资源的 CRM 字段 URL
- 简化您的网络资源 javascript(即删除对
window.top.opener
的依赖) - 更好的supported/standard自定义
要配置功能区,请下载 XrmToolbox 并使用 Ribbon Workbench
插件
- 添加一个新的
Button
功能区 - 为按钮配置一个
Command
- 向命令添加参数。一个是
PrimaryControl
,另一个是CommandProperties
然后在您的网络资源中,您应该会看到查询字符串已附加了一些新属性。这些可用于获取 UserId 和 RecordId