FAQ part 2:
Specific plug-in questions
Table
of Contents
| Part
1
| Part 2 | Part
3 File Plug-in
| Part
4 Text Plug-in
| Part
5 URL Plug-in
The Troi File Plug-in has a separate page.
Go to the Troi File Plug-in
FAQ
The Troi Text Plug-in has a separate page.
Go to the Troi Text Plug-in
FAQ
The Troi URL Plug-in has a separate page. Go
to the Troi URL Plug-in FAQ
Back to top
Activator Plug-in Questions
Q. Where do I implement script
triggering when a user leaves a field?
You need to add a custom validation to the field you want to
have a trigger. In define fields select the field to add the
trigger to. Then click on the option button and select the
"Validation" tab. Select the "Validation by Calculation"
checkbox and enter the calculation.
The calculation will be similar to this:
External("Actr-ScheduleEvent",
"-addSingleEvent|" & Status(CurrentDate) & "|"
& Status(CurrentTime) & "|" &
Status(CurrentFileName) & "|myScript|" & RecID
& "|dontcare" )
Here "myScript" is the name of the script to trigger and
RecID is an identifier of the record. In ScriptMaker you add
the script "myScript" and add this step to get information
out and remove the event:
Set Field [ gRecID ,
External("Actr-GetEventInfo", "-LastTriggered -GetYourID
-DeleteThisEvent") ]
See the Validation.fp5 example in the download for more
information on this.
Q. Will the Activator Plug-in track
validation events within Filemaker, making it more
slow?
No. The Activator Plug-in only becomes active when it gets
called by FileMaker when a field is exited. So there is
almost no extra overhead.
Q. Can I have several scripts in one
file that triggers for field-changes or have they to be in
the same script?
You can have more scripts. This makes it much clearer.
Q. Can I have a script within the same
file that checks for future-events (i.e.
reminder/calendar-functions) and another one for
checking/validating fields?
Yes, this is possible.
Q. In a validation using an IF
statement, Actr-ScheduleEvent always triggers even if the IF
is false. what gives?
In the current version of FileMaker application ALL the
arguments in a (sub)expression are calculated before it goes
to the surrounding main expression. So if we have this
calculation:
validation calc = if (1=2, a+b , c+d)
FileMaker will calculate first "a+b" and then "c+d" then
returns the value of c+d as the result of the IF
statement.
This will cause this calculation to always trigger
myScript:
validation calc =
If(a=b , External("Actr-ScheduleEvent",
"-addSingleEvent|" & Status(CurrentDate) & "|"
& Status(CurrentTime) & "|" &
Status(CurrentFileName) & "|myScript|" & RecID
& "|dontcare" ) , 1)
To make this work you need to bring the IF to the inside.
When the IF is not true the non existing external function
"XYZ-BOGUSSS" is called, giving "" as a result:
validation calc =
1 + isEmpty( External( If(a=b ,
"Actr-ScheduleEvent", "XYZ-BOGUSSS") , "-addSingleEvent|"
& Status(CurrentDate) & "|" &
Status(CurrentTime) & "|" &
Status(CurrentFileName) & "|myScript|" & RecID
& "|dontcare" ) )
Known Issues
Q. When I try to run the activator on
an 1st generation Power Macintosh it will crash. Do you have
a solution?
We found a bug on older Macintosh machines that don't have a
PowerPC native power manager (like an 6100 running Mac OS
8.1). We fixed this bug in a special version of the
Activator plug-in. This special Activater plug-in does
NOT have the sleep function, as this was causing the
plug-in to load a 68k power manager, and this caused a crash
at startup.
NOTE 1 Only install this version if you have problems
with the regular version of the plug-in.
NOTE 2 Do not distribute it to other users as they
might see it as the regular version.
You can download this version from: <http://www.troi.com/software/activatorplugin.html>.
Q. Can I send remote events with
Activator on Citrix?
Using Troi Activator Plug-in on Citrix and remote events has
a limitation: only one listener can open the same portnumber
on the Citrix server. So you need to use different
portnumbers for each individual listening client, then it
should be working fine.
You can administrate the opened port numbers in a shared
database, similar as the Remote.fp5 example in the download.
When a clients starts listening store the portnumber as
well. A sender can then find a client and its portnumber
from this.
Q. What happens if FileMaker Pro is not running when an scheduled event is due to be triggered?
Nothing happens at that moment. FileMaker needs to be running and the database with the script to trigger must be open to be able to trigger the event.
If you want an event that was due to be triggered when FileMaker was not running also to trigger after FileMaker Pro is opened you can add the switch "-TriggerPastEventAfterRestart" to the Actr_ScheduleEvent function.
For example:
Set Field[result,
Actr_ScheduleEvent( "-addSingleEvent -triggerPastEventAfterRestart" ; Timestamp(Schedule::date ; Schedule::time ) ; Get(FileName); "Trigger Script 1"; "Your RecID" ; "") )]
But beware: this might result in all the 'old' scripts being triggered at almost the same time. It might be better to use a startup script to check with the help of data you stored in the database if any scripts need to be executed.
Back to top
Coding Plug-in Questions
Q. Is it possible to make a secure
connection over the Internet, using FileMaker Network
Sharing and the Troi Coding Plug-in?
Yes. This will work if you do the following:
- Encrypt (with the plug-in) all sensitive fields that
you will make available.
- On the server side make the file multi-user (here the
normal file sharing is ment, not the web-companion
sharing), and make it available over the Internet.
- On each client install the plug-in.
- On the client side use FileMaker to open the file via
the Hosts button (using TCP over the Internet).
Q. Can you use the Troi Coding plug-in
and the web companion to make a secure connection with a web
browser?
No, the web browser on the client side would not know
how to decrypt the encrypted data.
Q. Which encryption is used in the Troi
Coding plug-in? How many bits are used?
Our Troi Coding Plug-in uses newDES encryption. It is a 60
bit encryption scheme, and it uses a 256 byte rotor. This is
a good algorithm although there are better algorithms
available. There is no way to adjust the security level.
Back to top
Dialog Plug-in Questions
Q. How to separate the button number
and the user input from an input dialog?
Split them out using a temporary global. So after this
function the result has been put in the following
global:
gResult =
"1|typed in text"
Then in a script use these calculations:
Set Field[
gUserInput, Middle( gResult , 3 , Length ( gResult )
]
Set
Field[ gButtonNumber, Left( gResult , 1 ) ]
Q. How to separate username &
password from the userpassword dialog box?
Split them out using a temporary global. So after this
function the result has been put in the following
global:
gResult =
"1|Peter Baanen|secret"
Then in a script use these calculations:
Set Field[
gUserName,
Middle(
gResult , 3 , position ( gResult ,"|", 1 ,2) - 3) ]
Set Field[ gPassword,
Middle(
gResult , position ( gResult ,"|", 1 ,2) + 1, 64000)
]
Q. Why doesn't TrDl-DelayTicks update
the screen on Mac OS X?
On Mac OS X there is a problem where FileMaker does not
update the screen after a TrDl-DelayTicks step, even if you
do a Set Field step to some other data. This behaviour has
been seen in Mac OS X 10.2 and 10.3.
To workaround this please add a "Pause/Resume Script"
step of zero seconds before the TrDl-DelayTicks step, like
this:
Pause/Resume Script[0:00:00]
Set Field[gErrorCode, External("TrDl-DelayTicks" ,
"30") ]
Q. While I use the TrDl-ProgressBar
function some script steps are not performed. Is it correct
that script steps that manipulate the clipboard do not to
work?
Yes, this is a limitation of the plug-in. When the progress
bar dialog is visible the script steps that use the
clipboard, like pasting in a container field, will not work
as these steps try to paste in the progress bar window.
You should not show the progress bar when there are these
kind of steps.
Back to top
File Plug-in Questions
The Troi File Plug-in has a separate page: To the
Troi File Plug-in FAQ
Back to top
Grabber Plug-in Questions
Q. Is there a plug-in that works with
scanners?
Troi Grabber plug-in works with TWAIN on Windows, and
consequently also with TWAIN compatible scanners.
For Mac we don't have a solution at the moment.
Q. The Grabber returns error code
$$-1 and I can't take pictures anymore. What is
wrong?
Check if the Twain32.dll file is in Windows directory. If
not install the software for your camera again or copy the
.dll file from another location into the Windows
directory.
Q. Which webcam drivers for Mac OS X
are available?
If you are looking for a Quicktime driver for your FireWire
equiped webcam, you may try the IOXperts driver. The
IOXperts driver works with the Grabber plug-in, System
requirements: DCam-compliant FireWire camera, Macintosh
running Mac OS X 10.1 (or greater) and a FireWire port.
IOXperts supports these cameras:
- ADS 1394 PYRO WebCam
- AME Vcam IEEE 1394 (FireWire) PC Camera CF-2000
- Aplux 1394 PC Camera - C102T, 1394 PC Camera -
C104T
- iREZ StealthFire 1394/FireWire Video Camera
- iREZ KritterDigital FireWire Camera
- FireWireDirect DV WebCam
- Orange Micro iBOT FireWire Video Camera
Since FireWire and DCam are standards, there's a good
chance other FireWire DCam cameras will also work. A trial
version of the IOXperts driver can be downloaded from
<http://www.ioxperts.com/dcam.html>.
Q. Does the Grabber work with Apple's
iSight?
Yes.We have not tested this ourselves, but others have
reported that the iSight
works fine with the Grabber.
Note that if you have a ioXpert driver (for example for the
iBot webcam), you may have to remove it first. Also if you
want to put the image in the preview rectangle of
"GrabPict.fp5" the width and the size must be multiplied by
0.4.
Back to top
Number Plug-in Questions
Q. I am trying out the Running Balance
function of the Number plug-in, but I have to do funky
things to get it to redraw within the portal (e.g. next
record, exit record, etc.). What am I doing wrong?
There is one very important thing that makes the running
balance tick: the layout order must be correct. The TOTAL
calc field has to be calculated first. So it must be on the
layout and BEHIND the portal in the layout order.
Back to top
Serial Plug-in Questions
Q. Do any of your plug-ins support
USB?
Not directly. USB is a bus protocol that can be used from
various purposes and devices, like keyboards, harddisks,
CD-ROM drives, adaptors, cameras. All these devices need
specific drivers. We have currently no plans to create a USB
plug-in. Note however that our Serial Plug-in is reported to
be working with the USB to Serial adapters.
Q. Does your Troi Serial Plug-in work
with USB to serial adapters?
Yes, we have had reports that the Keyspan USB-Serial
adapters works well with Troi Serial Plug-in. See the
keyspan web site for some possible devices: http://www.keyspan.com/products/usb/USA19W/
Q. Do you have a plug-in that can access
a dongle?
We don't have a plug-in that can access a dongle. If you
want to use the dongle on a serial port the Serial plug-in
might be able to work with it. We have not tested this. You
need to know what to send and receive from the dongle. We
don't have information about that.
Q. Do you have a plug-in that can access
the Parallel port?
We don't have a plug-in that can access the Parallel
port.
Q. Using the Serial plug-in I can't get
CallerID to work. How come?
Parsing out the CallerID is dependent on the exact string
that the modem returns and can be different across modems,
countries etc. In the CallerID.fp3 file we have provided two
different situations, but you may need to change that for
your own use. Usually a return character can be used to mark
the end of the incoming data. If this is not the case you
need to analyse what delimits your CallerID data. Note: not
all modems support callerID. See also our caller ID page at
our web site: <http://www.troi.com/support/callerid.html>
Q. What are the funny square characters
I get from serial data import?
The squares are control characters (lower ASCII, 0-31) for
which no denotation exists in the font. Therefore you cannot
distinguish one from the other. However, if you want to use
one you can copy it and paste it in a global field for
example. Take a look at ASCII.fp3 in the download of the
Serial plug-in for all the ASCII chars.
Q. How can we use Troi Serial Plug-In
with Optical serial interfaces using OPTO-RS Flow
Control?
You need to experiment with the Advanced Handshaking Options
available through the Serial-Open script. Other users have
had succes with "No Flow Control" and "RTS=disabled".
Q. How I could use the serial plug-in
with a credit card swipe machine to enter the card
number?
You need a credit card swipe machine that can be hooked to
the serial port of the computer. Also it should produce
ASCII characters (bytes). Note that this does not authorises
the Credit Card.
Q. Do you have a ready-made solution
for Telephony integration?
No, we don't and we don't have any plans to make this in the
near future. Note that our Troi Serial Plug-in can
communicate with any device that has a serial port and if it
produces ASCII characters (bytes). Some PABX have a serial
port and some users have used this plug-in for transmitting
data to and from the PABX. The exact commands to do this is
not standardized, so you need to find that out for yourself.
Note that the Troi Serial Plug-in is not TAPI compliant. We
don't have a TAPI plug-in. More info on our Serial plug-in
can be found
http://www.troi.com/software/serialplugin.html
BTW: If you have information on how to couple a PABX and
want to share your results we are happy to put it on our web
site.
Q. How can I physically connect two
computers by serial ports? 
You need a correct serial cable that crosses. We don't have
the specs for this. You might ask your hardware supplier.
Here is a starting point on the internet: <http://www.alloycp.com.au/Technical/CabDiags.HTM>
Q. How can I get access to more than 4
serial ports on Windows?
Normally Troi Serial Plug-in initialises 4 ports on Windows:
COM1 to COM4. Use this in your start-up script to get 8
ports initialised:
Set Field [ gPortnames,
External("Serial-GetPortNames", "-portCount=8") ]
See also the ExtraPorts.fp5 example in the download of the
Serial plug-in.
Back to top
URL Plug-in Questions
The Troi URL Plug-in has a separate page. Go
to the Troi URL Plug-in FAQ
Back to top
Q. Why does the number 42 appear in the
Troi Plug-ins?
It's the answer to the Question of Life, The Universe
and Everything.=) See also www.h2g2.com
Back to top
Other Questions?
If your question is not answered here, please look in the
documentation that comes with the plug-in. We will be adding
more to this FAQ. If you have suggestions please
.
|