皆様、こんにちは!朱でございます。
本日は、Business Centralで新しいセットアップページを作成する際に注意が必要な事項をいくつかご紹介したいと思います。
ご存知かもしれませんが、BCに新機能をカスタマイズする際には、標準と同じようにセットアップを追加することをお勧めします。例えば、booleanフィールドなどを活用して、機能の切り替えを行います。
例:Inventory Setup:
![](https://yzhums.com/wp-content/uploads/2021/02/image-93-1024x469.png)
これは、新機能をいつでも有効にしたり無効にしたりすることを容易にするだけでなく、BCの標準機能に影響を与えないようにしようとするものです。
では、新規にセットアップページを作成する際には、一体どのような点に気をつければいいのでしょうか。
1. Primary Key(Code 10): Blank
セットアップテーブルの主キーは Code[10] にしてください。また、主キーをページに表示しないようにしてください。
![](https://yzhums.com/wp-content/uploads/2021/02/image-94.png)
2. PageType of the setup page: Card
ページのタイプはカードです。
PageType = Card;
![](https://yzhums.com/wp-content/uploads/2021/02/image-97.png)
3. Setting Page Permissions (InsertAllowed and DeleteAllowed)
一般的に、セットアップテーブルには1つのレコードしかないので、ユーザーが削除したり、新しいセットアップを追加したりすることはできません。
page 50113 "ZY Setup"
{
PageType = Card;
Caption = 'ZY Setup';
ApplicationArea = All;
UsageCategory = Administration;
SourceTable = "ZY Setup";
InsertAllowed = false;
DeleteAllowed = false;
}
![](https://yzhums.com/wp-content/uploads/2021/02/image-95.png)
4. OnOpenPage() trigger
ユーザーが初めてセットアップページを開くときは、自動的に空のレコードが挿入されます。
trigger OnOpenPage()
begin
Rec.Reset;
if not Rec.Get() then begin
Rec.Init();
Rec.Insert();
end;
end;
![](https://yzhums.com/wp-content/uploads/2021/02/image-96.png)
ここまでで、基本的なセットアップページができました。
テストビデオ:
ソースコード:
テーブル:
table 50112 "ZY Setup"
{
Caption = 'ZY Setup';
fields
{
field(1; "Primary Key"; Code[10])
{
Caption = 'Primary Key';
DataClassification = CustomerContent;
}
field(2; "Test Setup Field"; Boolean)
{
Caption = 'Test Setup Field';
DataClassification = CustomerContent;
}
}
keys
{
key(PK; "Primary Key")
{
Clustered = true;
}
}
}
ページ:
page 50113 "ZY Setup"
{
PageType = Card;
Caption = 'ZY Setup';
ApplicationArea = All;
UsageCategory = Administration;
SourceTable = "ZY Setup";
InsertAllowed = false;
DeleteAllowed = false;
layout
{
area(Content)
{
group(GroupName)
{
Caption = 'General';
field("Test Setup Field"; Rec."Test Setup Field")
{
ApplicationArea = All;
}
}
}
}
trigger OnOpenPage()
begin
Rec.Reset;
if not Rec.Get() then begin
Rec.Init();
Rec.Insert();
end;
end;
}
Remark01. 既存のセットアップページに新しい設定項目を追加することができます。
例えば: Sales -> Sales & Receivables Setup
TableExtension:
![](https://yzhums.com/wp-content/uploads/2021/02/image-99.png)
PageExtension:
![](https://yzhums.com/wp-content/uploads/2021/02/image-100.png)
Sales & Receivables Setup page:
![](https://yzhums.com/wp-content/uploads/2021/02/image-98.png)
Remark02. ユーザーに関する新しいセットアップの追加.
ユーザー(2000000120)テーブルはシステムテーブルなので、拡張することはできません。
例:
![](https://yzhums.com/wp-content/uploads/2021/02/image-101.png)
そこで、ユーザー設定を拡張したい場合は、User Setup (91) テーブルとUser Setup (119, List) ページを拡張してください。
TableExtension:
![](https://yzhums.com/wp-content/uploads/2021/02/image-102.png)
PageExtension:
![](https://yzhums.com/wp-content/uploads/2021/02/image-103.png)
User Setup page:
![](https://yzhums.com/wp-content/uploads/2021/02/image-104-1024x239.png)
Remark03. ウィザードとアシストセットアップの利用
ウィザードとアシストセットアップは、Business Central のユーザーがモジュールを設定する際に役立つセットアップシナリオです。そのため、ユーザーの設定を容易にするために、Business Centralの拡張機能を作成する際には、1つまたは複数のAssisted Setupを作成することをお勧めします。
詳細について: How to create a Wizard (NavigatePage) and Assisted Setup
ウィザードページ:
![](https://yzhums.com/wp-content/uploads/2020/10/image-246.png)
アシストセットアップ:
![](https://yzhums.com/wp-content/uploads/2020/10/image-247.png)
Update
Remark04. GetRecordOnce function
Arend-Jan Kauffmann からの追加のヒント.
![](https://yzhums.com/wp-content/uploads/2021/02/image-105.png)
例:
定義方法:
In table 311 “Sales & Receivables Setup”
![](https://yzhums.com/wp-content/uploads/2021/02/image-106.png)
In table 98 “General Ledger Setup”
![](https://yzhums.com/wp-content/uploads/2021/02/image-107.png)
使用方法:
In codeunit 57 “Document Totals”:
![](https://yzhums.com/wp-content/uploads/2021/02/image-109-1024x656.png)
In codeunit 12 “Gen. Jnl.-Post Line”:
![](https://yzhums.com/wp-content/uploads/2021/02/image-108-1024x562.png)
以上
お読みいただきありがとうございました。
コメント