テーブル結合 IDO フィルタの例
これらの例は、 [行権限] フォームに適用されます。
顧客には CloudSuite Business ログインを作成済であり、顧客が自分のオーダのみを表示できるように(他の顧客のオーダは表示できないように)制限するとします。
まず、CloudSuite Business ユーザログインと顧客番号を接続するカスタム SQL テーブルを作成する必要があります。そのテーブルを CustLogin
と命名し、以下の 2 つのカラムを含めます。custuser および custnum。顧客のログインとそれらに関連付けられた顧客番号をテーブルに入力します。
フィールド | 設定 | 注記 |
---|---|---|
IDO | SLCos | フィルタは SLCos IDO にのみ適用されます。(含めたい顧客情報の表示に必要な SLCoitems IDO などの他の IDO 用には、別個のフィルタを作成します。) |
ユーザ | 空白のままにして、フィルタを全てのユーザに適用します。フィルタの適用先のユーザを決定するには、テーブル参加を使用します。 | |
グループ | 空白のままにして、フィルタを全てのグループのユーザに適用します。 | |
プロパティ | custnum | [顧客] フォームの [顧客] フィールドが SLCos.custnum プロパティにバインドされます。 |
(演算子) | = | |
この値 | 現在のユーザの参加先 | この設定を使用して、テーブル参加を指定します。 |
このテーブル | CustLogin | これは、ユーザ ID と顧客番号との間のマッピングを含むカスタムテーブルです。このテーブルはアプリケーションデータベース内に存在する必要があります。 |
テーブルのこのカラムのユーザ名 | custuser | テーブルを指定すると、このドロップダウンリストにデータが入力されます。 |
このカラムの値 | custnum | これは、SLCos.custnum プロパティと比較される値です。 |
[
]をクリックすると、次のような擬似 SQL 照会が表示されます。
(CustNum = ANY (SELECT [cust_num] FROM [CustLogin] WHERE [CustLogin].[username] = dbo.UserNameSp()))
フィルタを有効にして保存したら、顧客ユーザが CloudSuite Business にログインし、SLCos IDO に(フォームからまたは Web ベースの IDO 呼出により)アクセスしようとすると、フィルタにより CustLogin テーブルのユーザ ID が検索され、一致する custnum が見つかれば、表示できる情報をその顧客番号があるレコードのみに制限します。