软件包部署程序是一个很好的工具(毫无疑问),但有些情况下,收集用户信息会非常有用,这样我们就可以在语法上应用一些配置,现在这些都是手动安装后过程的一部分。
这是一个调度程序接口,用于允许控件在程序包部署期间呈现自己的UI。您可以利用此接口来包装任何UI元素或命令。在使用之前检查此变量的空值非常重要,因为它可能会也可能不会设置为值。
这是要走的路吗?这几乎就是文档所说的内容。
答案 0 :(得分:0)
是的,这可以在使用UI客户端进行部署时完成。但是,如果使用PowerShell进行部署,则无法正常工作。这就是为什么你必须检查以确保RootControlDispatcher不为空。
您可以在CRM SDK的UII部分的CCA示例包中看到此示例。 CCA使用自定义UI来捕获有关非英语语言的CSR安全角色的信息。
如果找不到安全角色,则会弹出一个对话框并询问用户该角色 它的方式如下:
RootControlDispatcher.Invoke((Action)(() =>
{
// Load all Roles and asks the user to choose.
SecurityRoleSelector selFrm = new SecurityRoleSelector();
if (selFrm.RolesDataModel != null)
{
selFrm.RolesDataModel.items.Clear();
// Get the items for the control.
SearchFilter.Clear();
var sL = rslts.Values.OrderBy(w => CrmSvc.GetDataByKeyFromResultsSet<string>(w, "name"));
foreach (var rol in sL)
{
selFrm.RolesDataModel.items.Add(new CrmSecurityRoles()
{
RoleId = CrmSvc.GetDataByKeyFromResultsSet<Guid>(rol, "roleid"),
RoleName = CrmSvc.GetDataByKeyFromResultsSet<string>(rol, "name")
});
}
if (selFrm.ShowDialog().GetValueOrDefault(false))
{
// user selected an item.
if (selFrm.RolesControl.cbSelectedItem.SelectedItem != null)
{
CrmSecurityRoles role = (CrmSecurityRoles)selFrm.RolesControl.cbSelectedItem.SelectedItem;
guCSRManagerRoleId = role.RoleId;
}
}
}
selFrm.Close(); // Clean up form.
}), DispatcherPriority.Normal , null);
securityroleselector表单是一个带有下拉列表的简单对话框。
一旦有了数据,它就会用这样的逻辑来更新正确的安全角色:
if (guCSRManagerRoleId == Guid.Empty)
{
// Error Something wrong here..
RaiseUpdateEvent(CCADemoExtension.Resources.LocalResourcesCCADemoExt.RAISEUPDATEVENT_COULDNOTFIND_CSRMGRROLEINCRM_MSG, ProgressPanelItemStatus.Failed);
PackageLog.Log("Could not find CSR Manager Role in CRM", System.Diagnostics.TraceEventType.Error);
PackageLog.Log("RunUiiSpecificChanges", System.Diagnostics.TraceEventType.Stop);
return false;
}
// Check to see if they are already associated...
if (!IsRoleAssoicatedWithTeam(EscalationTeamId, guCSRManagerRoleId))
{
// Try to assign team.
CrmSvc.CreateEntityAssociation("team", guTeamId, "role", guCSRManagerRoleId, "teamroles_association");
}
希望有所帮助。