Codeunit 280 My Records Demo Setup
- App
- Base Application
- Namespace
- Microsoft.RoleCenters
- Versions
- 17-28
Versions171819202122232425262728
Source29
Source in 29
src/Layers/W1/BaseApp/RoleCenters/MyRecordsDemoSetup.Codeunit.al169 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.RoleCenters;
using Microsoft.Finance.GeneralLedger.Account;
using Microsoft.Foundation.Company;
using Microsoft.Inventory.Item;
using Microsoft.Purchases.Vendor;
using Microsoft.Sales.Customer;
using System.Environment;
using System.Environment.Configuration;
codeunit 280 "My Records Demo Setup"
{
Permissions = TableData Customer = r,
TableData Vendor = r,
TableData Item = r,
TableData "My Customer" = rimd,
TableData "My Vendor" = rimd,
TableData "My Item" = rimd,
TableData "My Account" = rimd;
trigger OnRun()
begin
end;
local procedure SetupMyRecords()
var
ClientTypeManagement: Codeunit "Client Type Management";
CompanyInformationMgt: Codeunit "Company Information Mgt.";
begin
if not GuiAllowed() then
exit;
if ClientTypeManagement.GetCurrentClientType() = ClientType::Background then
exit;
if GetExecutionContext() <> ExecutionContext::Normal then
exit;
if not CompanyInformationMgt.IsDemoCompany() then
exit;
if SetupMyCustomer() then
exit;
if SetupMyItem() then
exit;
if SetupMyVendor() then
exit;
SetupMyAccount();
end;
local procedure SetupMyCustomer(): Boolean
var
Customer: Record Customer;
MyCustomer: Record "My Customer";
MaxCustomersToAdd: Integer;
I: Integer;
begin
if not Customer.ReadPermission then
exit;
MyCustomer.SetRange("User ID", UserId);
if not MyCustomer.IsEmpty() then
exit(true);
I := 0;
MaxCustomersToAdd := 5;
Customer.SetFilter(Balance, '<>0');
if Customer.FindSet() then
repeat
I += 1;
MyCustomer."User ID" := CopyStr(UserId(), 1, MaxStrLen(MyCustomer."User ID"));
MyCustomer.Validate("Customer No.", Customer."No.");
if MyCustomer.Insert() then;
until (Customer.Next() = 0) or (I >= MaxCustomersToAdd);
end;
local procedure SetupMyItem(): Boolean
var
Item: Record Item;
MyItem: Record "My Item";
MaxItemsToAdd: Integer;
I: Integer;
begin
if not Item.ReadPermission then
exit;
MyItem.SetRange("User ID", UserId);
if not MyItem.IsEmpty() then
exit(true);
I := 0;
MaxItemsToAdd := 5;
Item.SetFilter("Unit Price", '<>0');
if Item.FindSet() then
repeat
I += 1;
MyItem."User ID" := CopyStr(UserId(), 1, MaxStrLen(MyItem."User ID"));
MyItem.Validate("Item No.", Item."No.");
if MyItem.Insert() then;
until (Item.Next() = 0) or (I >= MaxItemsToAdd);
end;
local procedure SetupMyVendor(): Boolean
var
Vendor: Record Vendor;
MyVendor: Record "My Vendor";
MaxVendorsToAdd: Integer;
I: Integer;
begin
if not Vendor.ReadPermission then
exit;
MyVendor.SetRange("User ID", UserId);
if not MyVendor.IsEmpty() then
exit(true);
I := 0;
MaxVendorsToAdd := 5;
Vendor.SetFilter(Balance, '<>0');
if Vendor.FindSet() then
repeat
I += 1;
MyVendor."User ID" := CopyStr(UserId(), 1, MaxStrLen(MyVendor."User ID"));
MyVendor.Validate("Vendor No.", Vendor."No.");
if MyVendor.Insert() then;
until (Vendor.Next() = 0) or (I >= MaxVendorsToAdd);
end;
local procedure SetupMyAccount(): Boolean
var
GLAccount: Record "G/L Account";
MyAccount: Record "My Account";
MaxAccountsToAdd: Integer;
I: Integer;
begin
if not GLAccount.ReadPermission then
exit;
MyAccount.SetRange("User ID", UserId);
if not MyAccount.IsEmpty() then
exit(true);
I := 0;
MaxAccountsToAdd := 5;
GLAccount.SetRange("Reconciliation Account", true);
if GLAccount.FindSet() then
repeat
I += 1;
MyAccount."User ID" := CopyStr(UserId(), 1, MaxStrLen(MyAccount."User ID"));
MyAccount.Validate("Account No.", GLAccount."No.");
if MyAccount.Insert() then;
until (GLAccount.Next() = 0) or (I >= MaxAccountsToAdd);
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"System Initialization", 'OnAfterLogin', '', false, false)]
local procedure OnAfterLoginSubscriber()
begin
SetupMyRecords();
end;
}