On Jun 16, 2008, at 1:49 PM, Jon Molesa wrote:
I'm back to thinking there is an issue with ExternalDataFile
vs ExternalDataFileEx. During validation ExternalDataFile works and
generates the required temp file. However, during composition
for (i=0;i<sf.records[0].length;i++)
causes sf.records[0] has no properties error.
If you're using an ExternalDataFileEx object, you need to use
the .recordCount property. Please refer to the documentation for
ExternalDataFileEx in the FusionPro Rules System Guide, or in the
Building Blocks dialog, "JS Language" tab, Objects node.
RulesSystemGuide.pdf mentions ExternalDataFileEx and it's properties.
It doesn't mention a return type though. The previous
ExternalDataFile
method appears to return a array records. But simply renaming the
function in the code to ExternalDataFileEx breaks the .records.
I'm not sure what you mean by a "return type." From a JavaScript
point of view, ExternalDataFileEx is a class, and as such, its
constructor function of the same name (called as "new
ExternalDataFileEx") returns an object of that class. It has
different properties than the old ExternalDataFile object, one of
which is recordCount, which, of course, returns a Number. Note also
that ExternalDataFileEx doesn't directly expose an array like
ExternalDataFile does.
One of the reasons for replacing the ExternalDataFile object with
ExternalDataFileEx is that the latter uses the same algorithms as
FusionPro's internal flat-file parsing, and accounts for things like
empty lines, quoted values in comma-delimited files, and other details
that the simplistic String.split algorithm in ExternalDataFile doesn't
properly handle. So, I recommend using ExternalDataFileEx instead of
the older object. That "Repeat a Record" workaround you're using just
happened to be written before ExternalDataFileEx. I would update the
example, but as I noted, we're working on a way to do this much more
simply without this whole "rewrite your entire input file in
JavaScript" rigamarole.
During
validation the code executes and even creates the necessary temp file.
However, it does not during coposition. Causing File() ti use a HFS
path causes compostion to create the temp file but appears unable to
reassign it to FusionPro.Composition.inputFileName. However, if I
comment out all my code and keep the temp file intact, and insert one
line
FusionPro.Composition.inputFileName = temp.txt
I don't see how that could possibly work, unless you have a global
object called "temp" with a property called "txt". You probably want
to do something like this instead:
FusionPro.Composition.inputFileName = "temp.txt";
Note the double-quotes to denote a string literal. However, I think
that you will still have to specify a full path.
It works as expected. I'm having a great deal of difficulty with
this.
I'm using the provided documentation, but there appears to be some
differences that I just can't work out between validation and
composition. I've decided to ignore validation. But it does provide
the required output.
Yes, as I noted, validating this rule in the editor doesn't really get
you much, since repeating a record there has no meaning.
Dan
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
FusionPro 5.0 Now Available!
Variable text on a curve and soft drop-shadows for variable text
LIMITED TIME upgrade offer of $299 per license for current customers:
http://fusionpro.printable.com/store/upgrade
New licenses available for $599 each at:
http://fusionpro.printable.com/store/
All FusionPro 5.0 customers to receive FusionPro 5.1 with
Adobe Acrobat 8 and InDesign CS3 support when released for FREE.
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
--
Users of FusionPro Desktop have unlimited free email support. Contact Printable Support at [EMAIL PROTECTED]
--
View FusionPro Knowledge Base, FusionPro Samples at
www.printable.com/vdp/desktop.htm
--
You are currently subscribed to fusionpro as: [EMAIL PROTECTED]
To unsubscribe send a blank email to [EMAIL PROTECTED]
--
--
Note: All e-mail sent to or from this address will be received or otherwise
recorded by the e-mail recipients of this forum. It is subject to archival,
monitoring or review by, and/or disclosure to someone other than the recipient.
Our privacy policy is posted on www.printplanet.com
--