Void plug-ins
The CardExchange® Producer external plug-in framework has a hidden feature, which is the possibility to define a void plug-in. Void plug-ins offer two possibilities that are otherwise not possible: controlling when a .NET Function is executed and using a single manual entry for multiple card items.
Description
A void plug-in is created by defining a plug-in that does not reference a real plug-in DLL. If CardExchange® Producer detects that no real plug-in is selected, it creates an internal plug-in with one input parameter, called "Definition", and one output parameter, called "Result". When executed, the plug-in copies the value of the input parameter to the output parameter.
By mapping a .NET function to the Definition parameter of a void plug-in, it is possible to combine the advantages of .NET Functions with the advantages of plug-ins, that is, you can develop your own .NET functions and you can still control when the function is executed by using the settings in the plug-in wizard.
By mapping the Definition parameter to a manual entry, you can use the result of a single manual entry in multiple mappings. That makes it possible to have a single manual entry whose value is both printed on the card and stored in the database.
For manual entries, you will often want the void plug-in to be executed whenever you call a preview. However, when the void plug-in is used in combination with a .NET function, you will often prefer to execute it during the print process only, or when clicking a button.
Example
To illustrate how void plug-ins work, we will create a card definition with a single manual entry that is both printed on the card and stored in the database.
1.To start, add a new card definition that consists of a card layout with a data text object called "ManualText" and a data definition with a storage item called "ManualText".
2.Select "Do you want to use external functions or plug-ins" in the card-definition wizard and click the Edit button to configure the plug-in.
3.Add a plug-in called "ManualText" and type "void" in the DLL-file field. Then click Finish.
4.Click Next to go to the mappings window and map the visible item called "ManualText" to the plug-in output "ManualText.Result". Then map the plug-in input "ManualText.Definition" to "Enter manually".
5.Select the Storage items tab and map the storage item "ManualText" to the external function output.
6.Cick Finish to close the card-definiton wizard and open the manual-entry window. You will see, that there is a single manual entry.
7.Print the card. You will now see that the manual entry is stored in the database.