Thread: I'm Having Trouble Storing User-Defined Functions
View Single Post
Old July 13th, 2022, 02:26 PM
Dan Korn's Avatar
Dan Korn Dan Korn is offline
FusionPro Senior Engineer / Forum Moderator
Join Date: Aug 2008
Location: Chicago, IL
Posts: 4,654
Default Re: Storing User-Defined Functions

Originally Posted by Dmiller35 View Post
Am I just not using this functionality correctly?
Well, I don't know. How are you using it? You haven't posted the rule that's calling it.

My guess is that your .js file is fine, but that you're not calling the function correctly in your rule, or at least not capturing its return value and using it in your rule correctly.

I assume your rule would do something like this:
return Presets.LBLNUM();
which would capture the return value of the function, i.e. the "LBLNMBR" field value, and return it from your rule.

Or, more realistically, something like this:
var lablnum = Presets.LBLNUM();
// Some code to do a calculation with lablnum and return something.
If you're just doing this in your rule and nothing else:
Then you're calling the Presets.LBLNUM function, but throwing away its return value, and your rule isn't returning anything.

It would be the same if your rule just did this:
instead of this:
return Int(Field("LBLNMBR"))
The upshot here is that you're defining a custom function in your .js file, but you still need to call it and use the return value in a rule, which also has to return something.

(Though that might not always be true, if your .js file just does something like setting a property such as FusionPro.Composition.repeatRecordCount, or something else that might be called in a context like OnRecordStart. But generally, your custom function is going to be returning a value to do something with.)
Dan Korn
FusionPro Developer / JavaScript Guru / Forum Moderator
PTI Marketing Technologies | Printable | MarcomCentral

I am a not a Support engineer, and this forum is not a substitute for Support. My participation on this forum is primarily as a fellow user (and a forum moderator). I am happy to provide help and answers to questions when I can; however, there is no guarantee that I, or anyone else on this forum, will be able to answer all questions or fix any problems. If I ask for files to clarify an issue, I might not be able to look at them personally. I am not able to answer private messages, emails, or phone calls unless they go through proper Support channels. Please direct any sales or pricing questions to your salesperson or

Complex template-building questions, as well as all installation and font questions or problems, should be directed to Paid consulting work may be required to fulfill your template-building needs.

This is a publicly viewable forum. Please DO NOT post fonts, or other proprietary content, to this forum. Also, please DO NOT post any "live" data with real names, addresses, or any other personal, private, or confidential data.

Please include the specific versions of FusionPro, Acrobat, and your operating system in any problem reports or help requests. I recommend putting this information in your forum signature. Please also check your composition log (.msg) file for relevant error or warning messages.

Please post questions specific to the MarcomCentral Enterprise and Web-to-Print applications in the MarcomCentral forum. Click here to request access. Or contact your Business Relationship Manager (BRM/CPM) for assistance.

Please direct any questions specific to EFI's Digital StoreFront (DSF) to EFI support.

How To Ask Questions The Smart Way

The correct spellings are JavaScript, FusionPro, and MarcomCentral (each with two capital letters and no spaces). Acceptable abbreviations are JS, FP, and MC (or MCC). There is no "S" at the end of "Expression" or "Printable"! The name of the product is FusionPro, not "Fusion". "Java" is not is not the same as JavaScript.

Check out the JavaScript Guide and JavaScript Reference! FusionPro 8.0 and newer use JavaScript 1.7. Older versions use JavaScript 1.5.

return "KbwbTdsjqu!spdlt\"".replace(/./g,function(w){return String.fromCharCode(w.charCodeAt()-1)});

Last edited by Dan Korn; July 13th, 2022 at 02:33 PM..
Reply With Quote