Page 7206 CDS Owning Team Roles
- App
- Base Application
- Namespace
- Microsoft.Integration.Dataverse
- Versions
- 17-28
- Source table
- 5389
Versions171819202122232425262728
Source29
Source in 29
src/Layers/W1/BaseApp/Integration/Dataverse/CDSOwningTeamRoles.Page.al135 lines, Copyright (c) Microsoft Corporation. MIT
// ------------------------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
// ------------------------------------------------------------------------------------------------
namespace Microsoft.Integration.Dataverse;
using Microsoft.Integration.D365Sales;
page 7206 "CDS Owning Team Roles"
{
Caption = 'Dataverse Owning Team Roles', Comment = 'Dataverse is the name of a Microsoft Service and should not be translated.';
DeleteAllowed = false;
ModifyAllowed = false;
InsertAllowed = false;
Editable = false;
PageType = List;
SourceTable = "CRM Role";
SourceTableTemporary = true;
SourceTableView = sorting(Name);
layout
{
area(content)
{
repeater(Control2)
{
ShowCaption = false;
field("Role Name"; Rec.Name)
{
ApplicationArea = Suite;
Caption = 'Role Name';
Editable = false;
StyleExpr = StyleExpression;
}
field(Assigned; IsAssigned)
{
ApplicationArea = Suite;
Caption = 'Assigned';
Editable = false;
}
}
}
}
trigger OnAfterGetRecord()
begin
if not BusinessUnitRequiredRoles.ContainsKey(Rec.RoleId) then begin
StyleExpression := '';
exit;
end;
IsAssigned := not IsNullGuid(Rec.SolutionId);
if IsAssigned then
StyleExpression := 'Favorable'
else
StyleExpression := 'Unfavorable';
end;
trigger OnInit()
var
CDSConnectionSetup: Record "CDS Connection Setup";
CrmTeam: Record "CRM Team";
CDSTeamroles: Record "CDS Teamroles";
CRMRole: Record "CRM Role";
CDSIntegrationImpl: Codeunit "CDS Integration Impl.";
BusinessUnitCollectedRoles: Dictionary of [Guid, Boolean];
OrganizationRequiredRoleIdList: List of [Guid];
DefaultOwningTeamId: Guid;
DefaultOwningBusinessUnitId: Guid;
OrganisationRequiredRoleName: Text;
OrganizationRequiredRoleId: Guid;
BusinessUnitRequiredRoleId: Guid;
TempConnectionName: Text;
begin
CDSConnectionSetup.Get();
CDSIntegrationImpl.CheckConnectionRequiredFields(CDSConnectionSetup, false);
DefaultOwningTeamId := CDSIntegrationImpl.GetOwningTeamId(CDSConnectionSetup);
TempConnectionName := CDSIntegrationImpl.GetTempConnectionName();
CDSIntegrationImpl.RegisterConnection(CDSConnectionSetup, TempConnectionName);
SetDefaultTableConnection(TABLECONNECTIONTYPE::CRM, TempConnectionName, true);
if not IsNullGuid(DefaultOwningTeamId) then
if CRMTeam.Get(DefaultOwningTeamId) then begin
DefaultOwningBusinessUnitId := CRMTeam.BusinessUnitId;
CDSTeamroles.SetRange(TeamId, DefaultOwningTeamId);
if CDSTeamroles.FindSet() then
repeat
CRMRole.SetRange(RoleId, CDSTeamroles.RoleId);
if CRMRole.FindFirst() then begin
Rec.Init();
Rec.TransferFields(CRMRole);
Rec.Insert();
BusinessUnitCollectedRoles.Add(CDSTeamroles.RoleId, true);
end;
until CDSTeamroles.Next() = 0;
end;
CDSIntegrationImpl.GetIntegrationRequiredRoles(OrganizationRequiredRoleIdList);
foreach OrganizationRequiredRoleId in OrganizationRequiredRoleIdList do
if CRMRole.Get(OrganizationRequiredRoleId) then begin
OrganisationRequiredRoleName := CRMRole.Name;
CRMRole.Reset();
CrmRole.SetRange(BusinessUnitId, DefaultOwningBusinessUnitId);
CRMRole.SetRange(ParentRoleId, OrganizationRequiredRoleId);
if CRMRole.FindFirst() then begin
if not BusinessUnitRequiredRoles.ContainsKey(CRMRole.RoleId) then
BusinessUnitRequiredRoles.Add(CRMRole.RoleId, CRMRole.Name);
end else
if not BusinessUnitRequiredRoles.ContainsKey(OrganizationRequiredRoleId) then
BusinessUnitRequiredRoles.Add(OrganizationRequiredRoleId, OrganisationRequiredRoleName);
end;
foreach BusinessUnitRequiredRoleId in BusinessUnitRequiredRoles.Keys() do
if not BusinessUnitCollectedRoles.ContainsKey(BusinessUnitRequiredRoleId) then begin
Rec.Init();
Rec.RoleId := BusinessUnitRequiredRoleId;
Rec.Name := CopyStr(BusinessUnitRequiredRoles.Get(BusinessUnitRequiredRoleId), 1, MaxStrLen(Rec.Name));
Rec.Insert();
BusinessUnitCollectedRoles.Add(Rec.RoleId, true);
end;
UnregisterTableConnection(TABLECONNECTIONTYPE::CRM, TempConnectionName);
end;
var
BusinessUnitRequiredRoles: Dictionary of [Guid, Text];
IsAssigned: Boolean;
StyleExpression: Text;
}