- 15. FR Toolbox Reference
- Reactor Tag
- FileMaker calculation
- Get parameter value
- Get value of field name parameter
- Get table occurrence name of field name parameter
- Get ‘where’ clause based on relationship from current context to table occurrence:
- Get list of initial creation values based on relationship from current context to table occurrence
- Get container field images from container field parameter value
- FRToolbox Requests
- Find records
- Constrain records
- Send Request
- Poll Request
- Create Records
- Update Records
- Delete Records
- Calculation Request
- Perform Script Request
- Request Configurations
- Utility Methods
- Set Default Database
- FRToolbox Version
- Start Debugging
- Date/Time Conversion
- Get Field and Table Occurrence
- Reactor Actions
Reactor Tag
next_week_date_var = '<?reactor Get ( CurrentDate ) + 7 reactor?>';
text_field_var = '<?reactor $text_field reactor?>';
field_name_var = '<?reactor bbdev_Field( $field_name ) reactor?>';
field_name_TO_var = '<?reactor bbdev_TO( $field_name ) Reactor?>';
where_clause_var = '<?reactor bbdev_Relationship( bbdev_TO($field_name) ) reactor?>';
creation_values_var = '<?reactor bbdev_relationshipKeyBuilder ( bbdev_TO($field_name) ) reactor?>';
<?reactor bbdev_LoadImages( $container_field ; $field_name ; $com.reactorize.env.loadedfilepath ) reactor?>
<img src="task_01.png" />
<img src="task_02.png" />
<img src="task_03.png" />
FRToolbox Requests
QueryData = FRTB.find(
"Task::name",
"Task::description"
);
QueryData = FRTB.find(
TO_name_var + "::" + name_field_var,
TO_name_var + "::" + description_field_var
);
QueryData = FRTB.find(
"Task::name",
"Task::description"
).where(Task.status = 'active');
.filter(where_clause_var);
QueryData = FRTB.find(
"Task::name",
"Task::description"
).where(Task.status = 'active');
QueryData.send();
QueryData = FRTB.find(
"Task::name",
"Task::description"
).where("Task.status = 'active'").send();
function CheckResponse(response) {
alert ( "Response received!") ;
}
QueryData = FRTB.find(
"Task::name",
"Task::description"
).where("Task.status = 'active'").send(CheckResponse);
QueryData = FRTB.find(
"Task::name",
"Task::description"
).where("Task.status = 'active'").send(function(response) {
alert ( "Response received!") ;
});
for ( var i=0; i < response.data.length; i++) {
taskname = response.data[i]["Task::name"];
taskdescription = response.data[i]["Task::description"];
alert (taskname + ": " + taskdescription );
}
QueryData = FRTB.find(
TO_name_var + "::" + name_field_var,
TO_name_var + "::" + description_field_var
).filter(where_clause_var).poll(PollChanges).send(function(response) {
alert ( "Response received!") ;
});
.poll(PollChanges,2000)
function PollTasks(results) {
for( var i=0; i<results.remove.length; i++ ){
rowid = results.remove[i];
// Do something with the deleted records rowid
}
for( var i=0; i<results.update.length; i++ ){
rowid = results.update[i];
// Do something with the updated records rowid
}
for( var i=0; i<results.create.length; i++ ){
rowid = results.remove[i];
// Do something with the new records rowid
}
}
NewTask = new Object();
NewTask["Task::name"] = "New task name";
NewTask["Task::description"] = "New task description";
FRTB.create(NewTask).send({'onSuccess': function(){
alert ("Record added");
}});
FRTB.create(
["Task::name","New task name"],
["Task::description","New Task Description"]
).send({'onSuccess': function(){
alert ("Record added");
}});
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");
}});
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");
}});
ChangedTask = new Object();
ChangedTask["Task::description"] = "Updated task description";
FRTB.update(ChangedTask).filter("Task::name=New task name").send({'onSuccess': function(){
alert ("Record updated");
}});
FRTB.update(
["Task::description","Updated Task Description"]
).filter("Task::name=New task name").send({'onSuccess': function(){
alert ("Record Updated");
}});
FRTB.remove("Task").where("Task.name='New task name'").send({'onSuccess': function(){
alert ("Record(s) deleted");
}});
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");
}});
FRTB.calc("Get(CurrentDate)").send(function(response) {
alert (response.result);
})
FRTB.script("MyScript","MyParameter").send(function(response) {
alert("Script performed");
})
FRTB.find('dd_planets_data::name').send({
'onsuccess' : CompletionFunction,
'onerror' : ErrorFunction,
'onrecordlock' : HandleRecordLock,
'creationvalues' : creation_values_var,
'distinct' : true,
'databasename' : 'reactor',
'layoutname' : 'reactor_layout'
})
Utility Methods
FRTB.setDefault("DatabaseName","reactor");
frt_no_var = FRTB.getVersion();
FRTB.startDebugging();
FRTB.getSQLDate(new Date());
FRTB.getSQLTime(new Date());
FRTB.convertDateTime("2019-06-17 19:35:00");
FRTB.getTOName("bb_data_schedules::id",false);
FRTB.getTOName("bb_data_schedules::id",true);
FRTB.getFieldName("bb_data_schedules::id",false);
FRTB.getFieldName("bb_data_schedules::id",true);
Reactor Actions
var MyAction = FRTB.getAction( 'SetField=MyLayoutTO::CurrentRecord|GetField=bb_planets_data::name', 'myAction' );
FRTB.find(
'bb_planets_data::name',
'bb_planets_data::description',
MyAction
).send(function(response) {
FRTB.performAction( 'myAction', response.data[0]);
});
// Run FileMaker Script, passing through the field value as parameter
var MyAction = FRTB.getAction( 'Script=MyScriptName|Parameter=bb_planets_data::name', 'myAction' );
// Set Global Field, passing through the field value as our global field's value
var MyAction = FRTB.getAction( 'SetGlobal=$$MyGlobal|Parameter=bb_planets_data::name', 'myAction' );
// Run JavaScript function, passing through the field value as parameter
var MyAction = FRTB.getAction( 'Function=checkRecord();|Parameter=bb_planets_data::name', 'myAction' );