dml1280 Posted July 13, 2021 Posted July 13, 2021 I have been using this rule to pull address information into a text box based on the Facility field. It works great. returnStr = ''; if(FusionPro.Composition.isPreview == true || FusionPro.inValidation == true) { Rule("OnJobStart"); } numRecsExtDF = externalDF.recordCount; for (recordWalker=1; recordWalker <= numRecsExtDF; recordWalker++) { if (TaggedTextFromRaw(externalDF.GetFieldValue(recordWalker, 'Facility')) == TaggedDataField("Facility")) { returnStr += externalDF.GetFieldValue(recordWalker, 'City') + ", "; returnStr += externalDF.GetFieldValue(recordWalker, 'State') + " "; returnStr += externalDF.GetFieldValue(recordWalker, 'Zip'); } } return returnStr; With this code, when a new location is brought on, I am able to just add a new facility to the library drop down in MarcomCentral and add a line in my external database file and now all products that use this code will automatically have the new location added without having to update individual products. I want to add a field for the facility logos but I can't figure out how to have it called back. Can a graphic be called in using an external database file? I have all of the logos saved in libraries to use across multiple products. Any insight would be appreciated. Thank you. Quote
Dan Korn Posted July 14, 2021 Posted July 14, 2021 Sure, assuming the XDF has the file name, you can do something like this, in a Graphic rule: var externalDF = new ExternalDataFileEx("yourfilename.txt"); var r = externalDF.FindRecord("Facility", Field("Facility")); if (r < 1) throw "No XDF record for Facility " + Field("Facility"); return CreateResource(externalDF.GetFieldValue(r, "Logo")); You may need to add the path to the graphics in the job's Search Path, on the Advanced tab of the Composition Options. Quote
dml1280 Posted July 14, 2021 Author Posted July 14, 2021 Thank you. It works perfectly. I am using the URL for our store image library in MarcomCentral as the search path. Is there any issue that you can for-see with that? Quote
dml1280 Posted July 27, 2021 Author Posted July 27, 2021 (edited) Follow up question...this works great for almost all entries. It doesn't work if my facility name has an apostrophe or an ampersand in it. Is there a way to be able to include the apostrophe or an ampersand in the facility name? Sometimes I will need to use the facility name as a field that will be filled in as well. Thank you Edited July 27, 2021 by dml1280 Quote
Dan Korn Posted July 27, 2021 Posted July 27, 2021 Thank you. It works perfectly. Great! I am using the URL for our store image library in MarcomCentral as the search path. Is there any issue that you can for-see with that? Well, if you're composing the job online in the MarcomCentral DM app, then you shouldn't need to do anything special; the graphics will be automatically found in the image libraries. If you want to see the graphics in an offline composition (like in Acrobat), then you'll have to append the URL base, like so: var BaseURL = "https://server/foldername/"; // <- your URL here return CreateResource(BaseURL + externalDF.GetFieldValue(r, "Logo")); It doesn't work if my facility name has an apostrophe or an ampersand in it. Is there a way to be able to include the apostrophe or an ampersand in the facility name? Yes, though it depends on how the input data file is encoded. If you're a MarcomCentral DM user, it's probably a tagged markup file, in which case you'll need to change the FindRecord call slightly, like so: var r = externalDF.FindRecord("Facility", UntaggedDataField("Facility")); Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.