Forguncy 10 オンラインヘルプ
アプリの開発 / 外部連携と入出力 / 外部データベース / 構造変更の許可
このトピックで
    構造変更の許可
    このトピックで

    ここでは、外部データベース(SQLServer、Oracle Database、MySQL、およびPostgreSQL)を利用しており、以下の機能を利用したい場合に必要な設定方法について記載します。

    また、設定を行った場合に外部データベースに実行される動作についても記載します。

    Forguncyから外部データベースのテーブル操作を許可する

    アクセス許可やワークフローを実現するには、これらを管理するためのForguncy専用のフィールドやテーブルがデータベース側に必要になります。内部データベースの場合、ログインしたユーザーが属するロールの権限に応じて自動的に作成しますが、SQLServer、Oracle Database、MySQL、およびPostgreSQLの場合は、次の設定を行いその作成を許可させる必要があります。

    1. 外部DBに接続したリンクテーブルを作成します。

      リンクテーブルの作成 を参照して、リンクテーブルを作成します。このとき、データベースにログインするユーザーは、データベース内のオブジェクト自身の追加/変更/削除(CREATE/ALTER/DROP)とストアドプロシジャーを実行できる権限を持っている必要があります。
      たとえば、SQL Serverの場合であればデータベースロールがdb_ddladmin以上かつ、EXECUTEの権限を持っている必要があります。
      外部DBでログインするユーザーに権限を付与し、そのユーザーでログインするようにしてください。

    2. 構造変更の許可をチェックします。

      画面左側のナビゲーションウィンドウから接続したテーブルをダブルクリックして開き、画面右側の「テーブル設定」にて「構造変更の許可」の「データベースやテーブルの構造変更をForguncyに許可する」にチェックをします。
      こうすることで、Forguncyからリンクテーブルに対し、アクセス許可などを管理するためのForguncy専用のフィールドを追加するといったことが行えるようになります。

      注意:
      • データベースに接続するユーザーは、例えばSQL Serverの場合、db_ddladmin以上のデータベース更新の権限を持っている必要があります。

    テーブル名の変更

    「構造変更の許可」の[データーベースやテーブルの構造変更をForguncyに許可する]がチェックされていないテーブルの場合、テーブル名の変更はForguncy Builder上の名前のみが変更され、外部データベース上のテーブル名が変更されることはありません。しかし、[データーベースやテーブルの構造変更をForguncyに許可する]がチェックされているテーブルの場合、次のメッセージダイアログが表示され、[はい]をクリックすることで外部データベース上のテーブル名も変更されます。[いいえ]をクリックしした場合、Forguncy Builder上の名前のみが変更されます。

     

    自動生成される外部データベースの項目

    「データベースやテーブルの構造変更をForguncyに許可する」にチェックすると、Forguncyは接続した外部データベースに対して、以下のことを行います。

    テーブル名

    説明

    フォーム認証:FGC2_USD_<コンピューター名>

    Windows認証:FGC2_USD_W_<コンピューター名>

    認証プロバイダー:FGC2_US_S<認証プロバイダー名>_<コンピューター名>

    Forguncy Builderでの開発時に作成します。

    フォーム認証:FGC2_US_<コンピューター名>

    Windows認証:FGC2_US_W_<コンピューター名>

    認証プロバイダー:FGC2_USD_S<認証プロバイダー名>_<コンピューター名>

    Forguncy Serverへ発行後に作成します。ワークフローとアクセス許可を行うユーザー情報を記録します。このテーブルは削除しないでください。

    Forguncyは自動的に不要なテーブルを削除し、データ更新時にこのテーブルを再作成します。そのため、このテーブルを直接参照するようなビューやストアドプロシージャ-を作成することはサポートされないことに注意してください。

    上記のテーブル名に使用されるコンピューター名に関する注意点:
    • コンピューター名が長すぎる場合、データベースの種類に合わせてコンピューター名の一部は省略されます。Oracle Databaseの場合、テーブル名の最大文字数は28文字です。SQL Serverの場合、テーブル名の最大文字数は30文字です。
    • Oracle Databaseの場合、Unicode文字はすべてアンダーバー「_」へと変換されます。
    • 空白文字や「?」などの特殊文字はすべてアンダーバー「_」へと変換されます。

    フィールド名

    役割

    対象テーブルとフィールドの生成タイミング

    Forguncyの機能

    FGC_Creator

    作成者

    接続した任意のテーブルに対し、ユーザーが最初にデータを表示(取得)、もしくはレコードの挿入や更新を行った時に生成

    ワークフロー、アクセス許可、データ連結

    FGC_CreateDate

    作成日時

    FGC_LastModifier

    最終更新者

    FGC_LastModifyDate

    最終更新日

    FGC_UpdateHelp

    Forguncy内部で同時実行の競合を検査するために使用します

    接続した任意のテーブルやForguncyで生成したテーブルに対して、最初にレコードの挿入や更新を行った時に生成

    FGC_Rowversion

    Forguncy内部で同時実行の競合を検査するために使用します

    SQL Server、およびMySQLの場合、接続したテーブルに対して、最初にレコードの挿入や更新を行った時に生成されます。SQL Serverではrowversion型のフィールドが、MySQLではTIMESTAMP型がすでにそのテーブルに存在する場合には、作成しません。なお、Forguncyが自動作成するフィールドの定義は以下の通りです。

    SQL Server

    FGC_Rowversion timestamp not null

    MySQL

    FGC_Rowversion TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)

    Oracle Database、およびPostgreSQLでは自動で生成されません。手動にて同時実行制御のための列を作成し、[行のバージョン管理フィールド]として設定する必要があります。詳細については、外部データベースの同時実行制御を参照してください。

    FGC_UserName

    ユーザー名

    FGC2_UserInfoTableテーブル、あるいはFGC2_DesignerUserInfoTableテーブルが生成された時に作成。
    自動的にWebサイトのユーザーサービスから情報を取得しフィールド値として設定されます。

    ワークフロー、アクセス許可

    FGC_FullName

    氏名

    FGC_Email

    メールアドレス

    FGC_Role

    ロール

    FGC_OrganizationBelongsTo

    ユーザーが属する組織や組織階層を表す番号

    FGC_RootOrganizationCanAccess

    FGC_OrganizationQueryCache

    FGC_OrganizationSuperior

    上位組織メンバー

    外部データベースのテーブルでワークフロー機能を利用する

    ワークフロー機能については外部データベースとワークフロー(ODBCデータソース除く)の以下の項目をご確認ください。

    組み込みフィールドの表示

    テーブルを作業スペースで表示した際に、作成者、作成日時、最終更新者、最終更新日時やワークフローのフィールドといった組み込みフィールドを表示するかどうかを右ペインで設定できます。

    外部データベースのテーブルは、構造変更を許可したテーブルのみ組み込みフィールドを表示できます。

    作業スペースに表示されたテーブルに組み込みフィールドの項目と値が表示されます。