If you want to execute external programs from within the menu structure, you can do so using the Custom Commands utility. This utility enables you to create custom menu options, which users may then select to launch specified programs. Custom Commands are well-suited for running custom reports. However, they may be used to execute a wide range of programs, for a variety of purposes. To access the master list of Custom Commands, select the "Custom Commands" option. The following screen will appear:
There is no limit to the number of Custom Commands which may be added to a module. Executable programs may be launched from local or network drives.
The Custom Commands master list displays information on all Custom Commands, including module name and menu label.
To the far right of the list, the following buttons are available:
Closes the screen, returning you to the application desktop.
Opens screen for adding a new Custom Command to the master list of Custom Commands.
Enables you to edit highlighted Custom Command definitions. The edit screen is the same as that for creating a new Custom Command definition—except that when editing, the fields will contain Custom Command information. Double-clicking on a Custom Command definition will also bring you to the editing screen.
Highlight a Custom Command definition and then select this button to remove the Custom Command from the master list.
Custom Commands enable you to insert ad hoc functionality into the xTuple ERP menu system. Examples of ad hoc features are custom report definitions, custom .ui screens, and more. All Custom Commands are launched from a special "Custom" menu, which gets created at the bottom of the menu tree for modules you are adding Custom Commands to. To create a new Custom Command, select the NEW button. The following screen will appear:
When creating a new Custom Command, you are presented with the following options:
Select the name of the module where you want the custom menu option to appear. You may create Custom Commands for any of the modules within the system. By default, a menu option named "Custom" will be added to the bottom of a module's menu tree when a Custom Command is created for that module.
Enter a name to identify the Custom Command as it will appear on the menu tree for the specified module. Each menu label should be used to describe a separate Custom Command. There is no limit to the number of Custom Commands which may be added to a module.
Enter a name to describe the privilege associated with the Custom Command. By associating a privilege with a Custom Command, you gain the ability to grant or withhold access to the menu option on a user-by-user basis. Users who have been granted the privilege will have access to the Custom Command; all others will not.
Enter a programmatic-style name for the Custom Command, so the system will be able to locate and process the information easily. Having an action name also makes it possible to create a Hot Key for the Custom Command. Because of the Hot Key feature, you should consider using an action name which conforms to the already-existing naming convention for Hot Key actions. The Section 10.5.1, “Hot Key” section contains more information on Hot Keys.
The information entered in this field will vary depending on the use case. If the Custom Command is designed to launch a custom screen, then the following text should be entered:
!customuiform
If, on the other hand, the Custom Command will launch an executable program (e.g., RPTRender), then you should enter the path to the location where the executable program is located. When users select the associated Custom Command menu option, the executable program will be launched. For example, if you want to run a custom report, specify the location for the standalone report renderer (RPTrender). The following examples illustrate how (on Windows) you can map to either local or network drives:
Local Drive:
C:\\Program Files\\xTuple\\RPTrender.exe
Network URL:
\\\\drive_name\\dir_name\\xTuple\\RPTrender.exe
You may encounter cross-platform conflicts when placing executables on network drives. To reduce these conflicts, it may be necessary to create separate custom menus to support executables designed for different operating systems.
Macintosh users should enter an executable path which points all the way to the executable file located within a package's Contents directory. For example, to launch the report renderer, enter the following path:
../rptrender.app/Contents/MacOS/rptrender
Under Mac, the RPTrender application will not open if the path does not continue past the rptrender.app file.
Enter text to describe the Custom Command.
If you want the system to pass parameters or other arguments to the specified executable when it is launched, select the "Arguments" tab. The following screen will appear:
The arguments display lists all arguments defined for the specified executable. The following table shows the range of possible arguments if the executable is a custom screen (i.e., ui form):
Table 10.3. Arguments Used for Custom Screens
Syntax |
Description |
---|---|
uiform= |
Use this argument followed by the name of the ui form (i.e., the screen) which the Custom Command will be executing. The screen name is the name entered on the main custom screen window. Example:
|
uiformtype= |
Use this argument to specify which type of screen it
is. There are two possible values: Example:
|
The next table shows the range of possible arguments you can pass to the report renderer (RPTRender) if you are running custom reports:
Table 10.4. Arguments Used for Custom Reports
Syntax |
Description |
---|---|
-databaseURL |
Used to specify the location of the database server. This is followed by the server address, database name, and port number. If running a custom report, the program will automatically connect to the database specified when the report renderer (RPTrender) is launched Example:
|
-username |
Enter the username RPTrender should use to connect to the specified database. Example:
|
-passwd |
Enter the password for the specified user. Example:
|
-param |
Enter any parameters you want the system to pass to the report renderer. These pre-defined parameters will be used when RPTrender runs the specified report definition. Example:
|
This argument tells RPTrender to print the specified report definition using the indicated parameters—if any. Example:
|
|
-close |
Use this argument to close the RPTrender program when its work is done. Example:
|
-noAuth |
This argument tell RPTrender that not all login fields, if any, are required and it will attempt to login to the specified database without presenting the login screen. Example:
|
-loadfromdb= |
This argument specifies the name a report definition to load from the database that is being connected to. Example:
|
-printerName= |
This argument specified the printer to print to by it's name. Names vary from system to system and you must determine the correct name for this option. Example:
|
This argument specifies that you want the output to be in .pdf format. Example:
|
|
-outpdf= |
This argument specifies the name you want pdf output to be sent to. Example:
|
To the far right of the screen, the following buttons are available:
Closes the screen, returning you to the application desktop.
Opens screen for creating a new argument.
Enables you to edit highlighted argument definitions. The edit screen is the same as that for creating a new argument definition—except that when editing, the fields will contain argument information. Double-clicking on an argument definition will also bring you to the editing screen.
Highlight an argument definition and then select this button to remove the argument from the list.
To create a new argument for the system to pass to the specified executable program, select the NEW button. The following screen will appear:
When creating a new argument, you are presented with the following options:
Specify the order in which the argument should be passed to the specified executable program.
You can change the position of an argument as it appears on the list by editing the argument and changing its order number.
Enter the argument you want the system to pass to the specified executable program.
To the far right of the screen, the following buttons are available:
Closes the screen, returning you to the application desktop.
Saves the argument information.