2017-11-28 8 views
0

現在ログインしているユーザーのアカウント名を取得し、ユーザーのテーブルのユーザーと照合する必要があります。次に、そのユーザーの関連するチームIDを取得します。テーブルのユーザーとユーザー名を一致させる

より具体的には、私はユーザのテーブルを持っていて、それぞれファイル>管理>セキュリティペインで作成したアカウント名に対応する__pkUserIDフィールドを持っています。各ユーザーには__fkTeamIDもあります。ユーザーが新しいレコードを作成すると、__fkTeamIDを現在ログインしているユーザーと同じ__fkTeamIDに設定したいと考えています。

これを達成する最も良い方法は何ですか?

enter image description here

答えて

1

1つのレコードのみとユーティリティテーブルを作成します。現在のユーザーIDを保持するグローバルフィールドを作成します。 Get(AccountName)を使用して、このIDフィールドを起動スクリプトに設定します。グローバル変数を使用することもできますが、後で現在のユーザーに基づいてリレーションシップを推進したい場合は、グローバルフィールドが必要です。

チームIDを保持する別のグローバルフィールド(または変数)を作成します。起動スクリプトでもこれを設定し、ログインしたユーザーと一致するユーザーテーブルから取得します。 必要なテーブルのチームIDフィールドに、このフィールドからの自動入力計算を設定します。

+0

ユーザーIDをユーザーテーブルとどのように一致させることができますか? – colindunn

+0

最も簡単なFileMakerの方法は、グローバルユーザーIDとユーザー表のpkフィールドの間に関係を作成することです。 SQLを知っていれば、ExecuteSQL関数を使って一致するチームIDを取得できます。 – AndreasT

+0

私は残念なことにSQLを知らない。ここに私がこれまで持っているもののスクリーンショットがあります:https://www.dropbox.com/sh/ivw8hungg4iyfx2/AACfuUv42NCB8IDzR1GpnP4la?dl=0 – colindunn

0

特にActive Directoryと外部認証を使用している場合は、アカウント名に注意してください。それは...

アカウント名\ donain

ACCOUNTNAME アカウント名@ドメイン としてログインすることが法的だ...とGET(アカウント名)関数は、認証されたものは何でも文字列が返されます。

は、Get(アカウント名)から返された文字列から名前を解析することによってこの問題を解決し、ユーザーレコード、ひいてはチームIDを見つけるためにこれを使用します。

私は新しい変化が明らかになると、それが簡単に解析アルゴリズムを更新するために作るために解析を行うためのカスタム関数を作りました。

関連する問題