はじめてのプリザンターアプリ作成:商談管理2(設計編)

商談管理
この記事は約11分で読めます。

商談管理アプリの設計を行います。

なお、今回は小規模システム且つローコード開発のため基本設計のみで詳細設計・プログラム設計はありません。

設計のインプットなる要件定義書は「はじめてのプリザンターアプリ作成:商談管理2(要件定義)」を参照してください。

システム設計

システム構成図、サブシステム間連携方式等の設計を行います。

  • システム構成図: システム・業務・機能の構成がわかる構成図
  • サブシステム間連携: 方式や制約およびインターフェース設計

アーキテクチャー設計

システム・データ・プログラム等の基盤・方式を設計します。

システムアーキテクチャー

今回は、フルマネージドサービスのプラットフォーム (PaaS)のAzure App Service上で商談管理アプリの構築を検討します。

  • Webサーバー: Azure App Service
  • OS: Windws Server
  • DBサーバー: Azure SQL Database
  • ランタイムスタック: .NET8、プリザンターはC#で開発されているため
  • アプリケーションサーバー: Pleasanter
https://azure.microsoft.com/ja-jp/products/app-service

データアーキテクチャ

DBはAzure SQL Databaseを使います。ストレージはAzure Storageとなります。

https://azure.microsoft.com/ja-jp/products/azure-sql/database
Azure Storage の概要 - Azure のクラウド ストレージ
Azure Storage プラットフォームは、Microsoft のクラウド ストレージ ソリューションです。 Azure Storage は、高可用性、セキュリティ、持続性、高度なスケーラビリティ、および冗長性を備えた、データ オブジェ...

プログラムアーキテクチャ

アプリケーションサーバーのプリザンターでローコード機能(JavaScript)が利用できますが今回は使用しません。

GitHub - Implem/Implem.Pleasanter: Pleasanter is a no-code/low-code development platform that runs on .NET. You can quickly create business applications with simple operations.
Pleasanter is a no-code/low-code development platform that runs on .NET. You can quickly create business applications wi...
Pleasanter ユーザーマニュアル | OSSのローコード開発プラットフォーム
OSSのローコード開発プラットフォーム「プリザンター」のユーザーマニュアルです。

インフラ設計

サーバーやネットワーク等のインフラに関する設計を行います。

今回は、プリザンターをAzure App Service上に構築します。

インストーラでプリザンターをAzure AppServiceにサーバレス構成でインストールする | Pleasanter
OSSのローコード開発プラットフォーム「プリザンター」。 豊富なAPIはもちろん、独自のSQLやサーバサイドスクリプトなどバックエンドの拡張性も抜群。あらゆる業務に、素早く柔軟に対応できる高速開発を実現します。

機能設計

機能要件で定義した業務機能(画面・帳票・バッチ・API等)の設計を行います。

今回の、商談管理アプリで作成する機能は以下となります。

  • 顧客情報: 顧客情報を管理、テンプレートで作成、全組織更新権限を付与
  • 商談管理: 商談情報を管理、テンプレートで作成、顧客情報とリンクを設定、営業部・開発部は更新権限、管理部は参照権限を付与
  • クロス集計: ビューで状況別月別商談件数と状況別月別商談金額を作成

機能設計は以下の通りです。

  • 画面設計書: 機能概要・サイト種類(テンプレート:記録テーブル)・画面レイアウト・項目説明等
サイト機能 | Pleasanter
情報共有を行うための基本単位であるサイトについての説明です。

非機能設計

非機能要件で定義した品質や性質を実現するための設計を行います。

性能設計

  • 利用者数・アクセス頻度・大量なデータ検索等、運用面を把握し、Azure App Service・Azure SQL Databaseのリソース(CPU/RAM/ストレージ等)のスケールアップ・スケールアウト設計を行います。
  • 大量データを使って複雑なアルゴリズム等の処理による性能影響がある場合にも同様です。
  • なお、プリザンター上で実装するプログラムに起因する場合は運用で代替できるか検討します。

信頼性

  • Azure App Serviceのダウンタイムは99.95%となっており冗長化も可能です。
クラウドもマイクロソフト - Microsoft for business
変わらない使いやすさで、企業の可能性を変えていく。クラウドもマイクロソフト。

可用性

Azure App Serviceは可用性ゾーンを設定することで冗長化設計が可能です。

Azure App Service の信頼性
可用性ゾーンやマルチリージョン デプロイなど、Azure App Service での信頼性について説明します。

保守性

  • プリザンターにはユーザーマニュアルが存在します。
  • プリザンターはOSSでGitにソースコードもアップロードされています。
  • プリザンターのローコード開発言語はjavaScriptとなっており開発人口は多く存在します。
Pleasanter ユーザーマニュアル | OSSのローコード開発プラットフォーム
OSSのローコード開発プラットフォーム「プリザンター」のユーザーマニュアルです。

拡張性

  • プリザンターはノーコード・ローコード開発ツールで拡張性は無限ですが、サイトは2,000サイト、レコードは1サイト当たり100,000レコードを目安に運用することが推奨されています。
  • 無償版のプリザンターでは1サイトで扱える項目数は256個ですが、有償版にすることで900個まで拡張は可能です。
FAQ:サイトの作成数や登録レコード件数の最大値は? | Pleasanter
OSSのローコード開発プラットフォーム「プリザンター」。 豊富なAPIはもちろん、独自のSQLやサーバサイドスクリプトなどバックエンドの拡張性も抜群。あらゆる業務に、素早く柔軟に対応できる高速開発を実現します。
FAQ:プリザンターの項目数が足りない場合(項目数を26個より多く増やしたい) | Pleasanter
OSSのローコード開発プラットフォーム「プリザンター」。 豊富なAPIはもちろん、独自のSQLやサーバサイドスクリプトなどバックエンドの拡張性も抜群。あらゆる業務に、素早く柔軟に対応できる高速開発を実現します。

移植性

  • プリザンターはWindows/Linuxで.net frameworkが動く環境であれば移植可能です。
  • 移行ツールは、サイトパッケージのエクスポートとインポート機能でアプリとデータの移行が可能です。
サイトパッケージ機能:サイトパッケージ | Pleasanter
OSSのローコード開発プラットフォーム「プリザンター」。 豊富なAPIはもちろん、独自のSQLやサーバサイドスクリプトなどバックエンドの拡張性も抜群。あらゆる業務に、素早く柔軟に対応できる高速開発を実現します。

ユーザビリティ

  • テーマ選択が可能でシンプルで使い勝手の良いUIです。
  • ノーコード開発ツールでGUIでアプリ作成が可能です。

アクセシビリティ

  • 利用者の中に高齢者や障害者がいる場合はアクセシビリティの設計を行います。

セキュリティ

  • Azure App Serviceで提供するセキュリティサービスの設計を行います。
  • プリザンターは標準のセキュリティ機能として、SAML認証・LDAP認証・LDAPユーザー同期・Windows認証・ユーザー招待・二要素認証・パスワードポリシー・アカウントロック・IPアドレス制限等が存在し、導入するセキュリティ機能の設計を行います。
  • 今回は標準設定のままとしセキュリティ機能の実装は行いません。
セキュリティ - Azure App Service
App Service でアプリをセキュリティで保護する方法と、アプリを脅威からさらに保護する方法について説明します。
FAQ:Pleasanter.netのセキュリティについて | Pleasanter
クラウドサービスPleasanter.netのセキュリティについて

データ設計

DB・ファイル・通知・メッセージ等の設計を行います。

DB設計

  • 顧客情報: 項目・型・必須・読取・重複・規定値・選択肢・検索機能利用・アンカー・ポストバック・非表示等を設計
  • 商談管理: 上記同様

プリザンターエディタ機能を使うと画面と同時にDBの構築も行ってくれます。性能改善等でDBチューニングが必要になった場合以外は直接DBを修正することはありません。

応用編:項目の種類 | Pleasanter
OSSのローコード開発プラットフォーム「プリザンター」。 豊富なAPIはもちろん、独自のSQLやサーバサイドスクリプトなどバックエンドの拡張性も抜群。あらゆる業務に、素早く柔軟に対応できる高速開発を実現します。
項目名とデータベース上のカラム名の対応 | Pleasanter
プリザンターの項目名とデータベース上のカラム名の対応について説明します。データベースのカラム名は「API」でパラメータを指定するときや、「スクリプト」で入力項目を指定するときに利用してください。

顧客情報

今回、顧客情報はテンプレートで作成しそのまま使います。作成方法は「はじめてのプリザンターアプリ作成:商談管理1」の「商談管理をテンプレートから作成する」を参照してください。

商談管理

以下項目以外はテンプレートのまま使用します。

項目必須読取重複規定値選択肢検索
顧客名分類A*1

*1:商談管理の顧客名を入力から顧客情報を検索できるように変更。SiteIdは顧客情報のテーブル管理>全般タブのサイトIDを転記

[
    {
        "SiteId": 99999,
        "SearchFormat": "[Title]",
    }
]

ファイル設計

今回の商談管理ではファイルを扱わないため割愛します。

通知設計

  • 通知機能: レコード更新時の通知設計を行います。通知の種類はメール、Slack、ChatWork、LINE、LINEグループ、Teams、Rocket.Chat、InCircle、HTTPクライアントから選択できますが今回は使用しません。
  • メール機能:商談管理で作成した商談レコードを共有するために通知としてプリザンター標準機能のメール機能を使用します。
テーブルの管理:通知 | Pleasanter
レコードの更新情報をメールまたはチャットツール等に通知します。
パラメータ設定:Mail.json | Pleasanter
メール機能の設定を行うパラメータファイルについての説明です。
テーブルの管理:メール | Pleasanter
プリザンターからメール送信する場合のアドレスを設定します。

メッセージ設計

  • ガイド機能: 顧客情報・商談管理のテーブルの管理のガイド機能で各画面のガイダンスを設計しますが今回は使用しません。
  • 通知機能: 上記参照
  • 画面メッセージ: スクリプトやサーバースクリプトで情報・警告・異常メッセージの表示が可能ですが、今回はノーコード開発のため設計しません。

システム運用設計

マスターやバッチ等のシステム運用について設計します。

マスター設計

  • ユーザー・グループ・組織: プリザンター標準機能、人事異動時に更新を行います。
  • テナント管理者:プリザンター標準機能、今回は設定しません。
  • 特権管理者:プリザンター標準機能、今回は設定しません。
ユーザ作成 | Pleasanter
OSSのローコード開発プラットフォーム「プリザンター」。 豊富なAPIはもちろん、独自のSQLやサーバサイドスクリプトなどバックエンドの拡張性も抜群。あらゆる業務に、素早く柔軟に対応できる高速開発を実現します。
ユーザ管理機能 | Pleasanter
ユーザ情報を管理するための機能です。
グループ管理機能 | Pleasanter
ユーザまたは組織をグループ化しグループ単位でのアクセス制御を可能にするグループ管理機能の説明です。
組織管理機能 | Pleasanter
ユーザの所属を管理できる組織機能についての説明です。
ユーザ管理機能:テナント管理者の設定 | Pleasanter
テナント管理者を設定する手順です。
ユーザ管理機能:特権ユーザの設定 | Pleasanter
特権ユーザを設定する手順です。

バッチ設計

今回の商談管理ではバッチはないため作成しません。

応用編:定期実行 | Pleasanter
OSSのローコード開発プラットフォーム「プリザンター」。 豊富なAPIはもちろん、独自のSQLやサーバサイドスクリプトなどバックエンドの拡張性も抜群。あらゆる業務に、素早く柔軟に対応できる高速開発を実現します。

サイジング

業務量を見積もり、インフラリソースを確保します。

  • 顧客情報: 日次・週次・月次・年次のデータ量(レコード・ファイル)を計算、また、次年度以降の成長率を加味した業務量を計算し、必要なインフラリソースを決定します。
  • 商談管理: 同様

フィジビリティ

アーキテクチャー・機能設計で設計したシステム・機能が実現可能か、運用に耐えられるか検証を行います。

構成管理

システムを安定稼働させるためにハードウェア・ネットワーク・ソフトウェアの構成を管理します。

変更管理

要件・仕様変更を管理しQCD(品質・コスト・納期)・プロジェクト(体制・スケジュール等)・システム・機能への影響を管理します。

まとめ

今回導入する商談管理アプリは、システム規模も小さく・難易度も易しいため、基本設計にそこまでの時間を要することなく作成することができるかと思います。

次回は実装について説明をしていきます。

タイトルとURLをコピーしました