Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

https://paper.dropbox.com/doc/15.-FR-Toolbox-Reference--BtPUh~RQmGhnVhxrmMtUb0GUAg-sE8bOT9P8vdXUmPu91t3E

Table of Contents
minLevel1
maxLevel7

15. FR Toolbox リファレンス

<— Reactor Home J

...

出力例:text_field_var = 'mytext';

Get value of field name parameter フィールド名パラメータの値を取得 parameter フィールド名パラメータの値を取得

field_name_var = '<?reactor bbdev_Field( $field_name ) reactor?>';

...

Code Block
NewTask = new Object();
NewTask["Task::name"] = "New task name";
NewTask["Task::description"] = "New task description";
FRTB.create(NewTask).send({'onSuccess': function(){
  alert ("Record added");
}});

Or you can define the object as you’re passing it through: または、渡すときにオブジェクトを定義できます。:

Code Block
FRTB.create( 
  ["Task::name","New task name"],
  ["Task::description","New Task Description"]
).send({'onSuccess': function(){
  alert ("Record added");
}});

Or if you’ve used the または、 bbdev_Field() and  およびbbdev_TO() functions to store the field name(s) and table occurrence(s) into variables, you can can use those:関数を使用してフィールド名とテーブルオカレンスを変数に格納した場合は、それらを使用できます。:

Code Block
FRTB.create( 
  [TO_name_var + "::" + name_field_var,"New task name"],
  [TO_name_var + "::" + description_field_var,"New Task Description"]
).send({'onSuccess': function(){
  alert ("Record added");
}});

If you have used the bbdev_relationshipKeyBuilder() function you can also set initial values based on the relationship to a table occurrence from your current context.

For example, if your BlackBox queries a found set of tasks via a relationship, and those tasks records have a type field, and the relationship includes a predicate that the type field must have a value of "booked", then this is an implied field value when creating new records. 

Otherwise, unless you explicitly set the Type  as "booked", the next time you query Task records your new record won’t be included in the found set.

To set these implied values, use the  bbdev_relationshipKeyBuilder() function to create a variable you can use to generate a list of initial creation values, and include this when invoking the .send() method for a .create() request. For example:

 

bbdev_relationshipKeyBuilder()関数 を使用した場合は、現在のコンテキストからのテーブルオカレンスとのリレーションに基づいて初期値を設定することもできます。

例えば、BlackBox がリレーションシップを介して見つかった一連のタスクを照会し、それらのタスク レコードにtype フィールドがあり、リレーションシップに type フィールドの値が「"booked"」である必要があるという述語が含まれている場合、新しいレコードを作成するときの暗黙のフィールド値となります。

そうしないと、Typeを明示的に「"booked"」に設定しない限り、次にTask レコードをクエリしたときに、新しいレコードが対象レコードに含まれません。

これらの暗黙の値を設定するには、 bbdev_relationshipKeyBuilder()関数を使用して、初期作成値のリストを生成するために使用できる変数を作成し、.create() リクエスト の .send() メソッドを呼び出すときにこれを含めます。例:

Code Block
creation_values_var = '<?reactor bbdev_relationshipKeyBuilder ( bbdev_TO($field_name) ) reactor?>';

FRTB.create( 
  [TO_name_var + "::" + name_field_var,"New task name"],
  [TO_name_var + "::" + description_field_var,"New Task Description"]
).send({'creationValues' : creation_values_var, 'onSuccess': function(){
  alert ("Record added");
}});

Update Records レコードの更新

This is used for updating existing records.

The update() method allows you to set a parameter, this is an object. Each field you want to set a value for will be a property of that object.

You need to use the これは、既存のレコードを更新するために使用されます。

update() メソッドを使用すると、パラメーターを設定できます。これはオブジェクトです。値を設定する各フィールドは、そのオブジェクトのプロパティになります。

更新するレコードを定義するには、 update() リクエストと組み合わせて .where() or または .filter() method, in conjunction with an update() request in order to define what records we want to update.You can either create the object and then pass that through as your parameter: メソッドを使用する必要があります。

オブジェクトを作成してから、それをパラメーターとして渡すことができます。:

Code Block
ChangedTask = new Object();
ChangedTask["Task::description"] = "Updated task description";
FRTB.update(ChangedTask).filter("Task::name=New task name").send({'onSuccess': function(){
  alert ("Record updated");
}});

...

);

または、渡すときにオブジェクトを定義できます。:

Code Block
FRTB.update( 
  ["Task::description","Updated Task Description"]
).filter("Task::name=New task name").send({'onSuccess': function(){
  alert ("Record Updated");
}});

If your .where()  or .filter() constraint refers to multiple records, all of those records will be updated.

Delete Records

This is used for deleting existing records.

The remove() method allows you to set a parameter, this is a table occurrence of the table you wish to delete a record from.

...

("Record Updated");
}});

.where() or または .filter() method, in conjunction with a remove() request in order to define what records we want to delete. 制約が複数のレコードを参照する場合、それらのすべてのレコードが更新されます。

Delete Records レコードの削除

これは、既存のレコードを削除するために使用されます。

remove() メソッドを使用すると、パラメーターを設定できます。これは、レコードを削除するテーブルのテーブルオカレンスです。

削除するレコードを定義するには、remove() リクエストと組み合わせて .where() または .filter() メソッドを使用する必要があります。

Code Block
FRTB.remove("Task").where("Task.name='New task name'").send({'onSuccess': function(){
  alert ("Record(s) deleted");
}});

If you have used the bbdev_Relationship() you can use this to refer to your table occurrence. If you have used the 使用したことがある場合は、これを使用してテーブルのオカレンスを参照できます。 bbdev_Field() function you can use this, as well as the 関数を使用したことがある場合は、これと .filter() method to refer to your field:) メソッドを使用してフィールドを参照できます。:

Code Block
field_name_TO_var = '<?reactor bbdev_TO( $field_name ) Reactor?>';
field_name_var = '<?reactor bbdev_Field( $field_name ) reactor?>';


FRTB.remove(field_name_TO_var).filter(field_name_TO_var + "::" + field_name_var + "=New task name").send({'onSuccess': function(){
  alert ("Record(s) deleted");
}});

Calculation

...

This is used for evaluating a FileMaker calculation. 

...

Request 計算リクエスト

これは、FileMaker の計算を評価するために使用されます。

calc() メソッドを使用すると、パラメーターを設定できます。これは、実行したい計算です。

Code Block
FRTB.calc("Get(CurrentDate)").send(function(response) {
        alert (response.result);
})

When the result of the calculation is returned via the call back function, it is accessed via the result property in the response object.計算の結果がコールバック関数を介して返される場合、応答オブジェクトの resultプロパティを介してアクセスされます。

Perform Script

...

This is used for performing a script in FileMaker Pro from your BlackBox.

...

Request スクリプト実行のリクエスト

これは、BlackBox から FileMaker Pro でスクリプトを実行するために使用されます。

script() メソッドを使用すると、2 つのパラメーターを設定できます。1 つ目はスクリプトの名前で、2 つ目はスクリプト パラメーターです。スクリプトは Get(ScriptParameter) でアクセスできます。この 2 番目のパラメーターはオプションです。

Code Block
FRTB.script("MyScript","MyParameter").send(function(response) {
        alert("Script performed");
})

Request

...

Configurations リクエスト構成

When submitting any Reactor request you can include the following configurations with your send method call:Reactor リクエストを送信するときは、send メソッド呼び出しに次の構成を含めることができます。:

Code Block
FRTB.find('dd_planets_data::name').send({
  'onsuccess' : CompletionFunction,
  'onerror' : ErrorFunction,
  'onrecordlock' : HandleRecordLock,
  'creationvalues' : creation_values_var,
  'distinct' : true,
  'databasename' : 'reactor',
  'layoutname' : 'reactor_layout'
})

  • The onsuccess, onerror and onrecordlock settings can be either names of functions, or anonymous functionsThe creationvalues value should be a variable generated using the 、および onrecordlock の設定は、関数の名前または無名関数のいずれかで

  • creationvalues の値は、 bbdev_relationshipKeyBuilder functionThe distinct setting will be set to either 関数を使用して生成された変数である必要があります

  • distinct 設定は true/false , and will set whether or not the distinct keyword is used in your queries. To the SQL-uninitiated, the query response will not include any duplicate records in its responseYou only need to set the databasename setting if your request is intended for the non-default database - usually only relevant to のいずれかに設定され、クエリでdistinctのキーワードを使用するかどうかを設定します。 SQL に慣れていないユーザーにとって、クエリの応答には重複レコードが含まれません。

  • リクエストがデフォルト以外のデータベースを対象とする場合にのみ、databasename 設定を設定する必要があります。通常は FRTB.script() requestsリクエストにのみ関連します。

Utility

...

Methods ユーティリティ メソッド

The following JavaScript methods can be used to perform less-common requests:次の JavaScript メソッドを使用して、あまり一般的でない要求を実行できます。:

Set Default

...

Database デフォルト データベースの設定

以下を使用して、デフォルトのデータベースを他の Reactor リクエストで使用するように設定できます。:

FRTB.setDefault("DatabaseName","reactor");

The above will explicitly make all Reactor requests apply to the ‘reactor’ database.

FRToolbox Version

You can use the following to return the version of FRToolbox being employed:上記は、すべての Reactor リクエストを明示的に「reactor」データベースに適用します。

FRToolbox Version FRToolbox バージョン

以下を使用して、使用されている FRToolbox のバージョンを返すことができます。:

frt_no_var = FRTB.getVersion();

The above will store the FRToolbox version number in a variable.上記は、FRToolbox のバージョン番号を変数に格納します。

Start

...

Debugging デバッグを開始

詳細なデバッグを JavaScript コンソールに出力します。

FRTB.startDebugging();

After you run this line of code any Reactor communications will be output to the console.

Date/Time Conversion

You can use the following methods to convert JavaScript dates/times to SQL date/time strings.このコード行を実行すると、Reactor の通信がコンソールに出力されます。

Date/Time Conversion 日付/時刻の変換

次のメソッドを使用して、JavaScript の日付/時刻を SQL の日付/時刻文字列に変換できます。

FRTB.getSQLDate(new Date());

FRTB.getSQLTime(new Date());

You can use the following method to convert a SQL date/time string into a Javascript date object.次のメソッドを使用して、SQL 日付/時刻文字列を Javascript 日付オブジェクトに変換できます。

FRTB.convertDateTime("2019-06-17 19:35:00");

Get Field

...

and Table Occurrence  フィールドとテーブルオカレンスを取得

次のメソッドを使用して、完全修飾フィールドのテーブルオカレンスを返すことができます:

FRTB.getTOName("bb_data_schedules::id",false);

If you would like to escape character spaces so you can use it in a SQL query, set the second parameter to

文字スペースをエスケープして SQL クエリで使用できるようにする場合は、2 番目のパラメーターをtrue:に設定します。:

FRTB.getTOName("bb_data_schedules::id",true);

You can use the following method to return the field name of a fully qualified field:次のメソッドを使用して、完全修飾フィールドのフィールド名を返すことができます。:

FRTB.getFieldName("bb_data_schedules::id",false);

If you would like to escape character spaces so you can use it in a SQL query, set the second parameter to true:文字スペースをエスケープして SQL クエリで使用できるようにする場合は、2 番目のパラメーターを true に設定します。:

FRTB.getFieldName("bb_data_schedules::id",true);

...