Software Maintenance Activation

The following directions will guide you through the steps to properly update your installation of DBX for GoldMine.

  1. Go to
  1. Identify the registration code of the DBX installation that needs to be updated. To do this, run the DBX that needs to be updated, click “Options | Help | About”. The value for “Access Code” is the registration code.
  1. Enter the registration code into the “Product Registration Code” field in the Product Maintenance Renewal page.
  2. A code is emailed to the user after purchasing a maintenance renewal.  The code is used to fill-in the “Maintenance Renewal Code” field on the renewal page.
  1. Click “Renew Maintenance”.

If successful, you should get a confirmation page showing the latest maintenance date.  At this point, you should be able to run an update against the installation of DBX with the same registration code.

Update E-mail Merge Code using Import/Update module

There are several ways to update data related to e-mail addresses.  One is the E-mail Address Updater Module and the other one is through the generic Import/Update GoldMine Data module.

Here are some steps to update the e-mail merge code of all e-mail addresses in GoldMine to a specific value.

  1. Launch the Import/Update GoldMine data wizard.
  2. Provide a name to the task then click Next.
  3. Select the option “Update E-mail Address” then click Next.
  4. Pick the correct data source.  In this example, the data source will be from an SQL data source.  The query below is only selecting “recid” because we simply want to get the value that will uniquely identify a record (which is an email address) and the merge code value will be a fixed value.  Click Save & Close button once the query is confirmed to be providing the correct set of records. 
  5. Click Next….Finish.
  6. If the Automated Field Mapping dialog comes up, click Cancel.
  7. Go to the Field Mappings tab and map the Recid to Recid, Mergecodes to a constant value ‘ORG’.
  8. Click Save & Close.

The steps above will update all e-mail addresses with the merge code ‘ORG’.  DO NOT perform the steps above against your production database.




Release Notes

December 14, 2017

  • Automatic field mapping option now excludes recid field from getting mapped.
  • Fixed issue where import fails when GoldMine record id contains a period character.

November 5, 2017

  • Issue resolved with an import data mapped to the primaryemail() field where the GoldMine matched e-mail address contains incomplete data field value.

October 6, 2017

  • New Option item to reset the DBX Virtual database.  This should only be used if the DBXVirtualDB database log file has become too large to maintain.  The configuration settings for DBX are not affected.

September 29, 2017

  • New command line tool “DBXRunnerCmd.exe”.  This can be run from the command line without a UI or within the context of an SQL job step.  Related Article.
  • C-Tree databases now supported as a data source.  Related Article.

September 2, 2017

  • Execute File task now waits for the external application to terminate before executing the next task in the process.
  • Fixed ‘Execute Selected’ option to now only execute the selected task from the process.
  • Update/Delete option in SQL Query task now properly shows execution result against a stored procedure
  • New Article

August 23, 2017

Configuring C-Tree Database as a data source

DBX can now use C-Tree databases as the data source for data imports.  Simply pick C-Tree database from the data source selection options.


Provide the settings for the C-tree server to properly connect to the database.  Click on “Test Connection” button to verify if the settings are all correct.

The SQL query should be compatible to C-tree to make sure that it will property retrieve the data from the C-tree database.

Automating Process Execution via DBXRunnerCmd

A process can be run interactively while in the DBX UI or by the DBXRunnerService application for background processing.  In this article, we will explore how to run a process using the DBXRunnerCmd.exe application.

When should you use the DBXRunnerCmd.exe application?

  1. You need to run a process from the command line without seeing a UI.  Here is how you would execute a process :     dbxrunnercmd.exe p:14
    where p:14 is the parameter to execute process number 14.
  2. You need to run a process within the context of a SQL Job.  To do this you would need to setup the SQL Job step to use Powershell.  A sample script is shown below:

    $p = Start-Process “C:\apps\DBXRunnerCmd.exe” -ArgumentList p:14 -wait -NoNewWindow -PassThru -WorkingDirectory “c:\apps\”
    if($p.ExitCode -gt 0){
    throw “Error occurred in dbxrunnercmd”

    The script above throws an exception error if the error code returned by the DBXRunnerCmd.exe is > 0 to make sure that the SQL Job step is marked as failed step.

    If you are not familiar with SQL Jobs, click here to get steps.

    *Make sure that the credential used to execute the powershell job step has all the necessary permissions to run DBX and have access to all resources needed by the process.

To enable logging to a log file, go to the installation folder of DBX Data Management and edit the file named dbxrunnercmd.exe.config.  Set the EnableLogging setting to true as shown below.  You may change the location for LogFolder.

<add key=”EnableLogging” value=”true” />
<add key=”LogFolder” value=”c:\temp” />


Import Field Mapping Concepts

There are different ways to map fields against GoldMine data fields.

Standard Field Mapping

This is the most straight forward type of field mapping.  It is simply an import fieldname mapped against a GoldMine data field.

Expression Field Mapping

This is a slight modification of a standard field mapping where we can perform some operation to get the final mapped value. The sample below simply concatenates two import fields to form the full name.

Standard MS SQL functions can also be used within the expression.

MS SQL String Functions    Conversion Functions


Conditional Field Mapping

Data transformation can be performed using a conditional field mapping using conditional expressions.

Query Based Field Mapping

Data can be mapped to a GoldMine data field as a result of a SQL query.  In the sample below, the query is retrieving the latest ‘Sale’ history and mapping the total sale amount to Key4.

The query is using a data marker symbolized by the ‘@@’ characters.  A data marker starts with 2 ‘@’ symbols followed by an import fieldname.  The end result would be that the value of the import fieldname will replace the data marker.



Executing external applications

To execute external applications,  while on an existing process, click on “Execute File” as shown in the image below.


Setup the application file to be executed.  If you need to make sure that the external application is closed after a given amount of time then set the Time-Out setting to greater than zero (minutes).

If several tasks in a process are set to execute an external application, then each task will be executed one at a time.

Export Records To Fixed Length Data File

To export to a Fixed Length file, create a new empty process.

Give the new process a new name and click “Save”.

First, we need to query the GoldMine database for the records that needs to be exported.  Open a new Query task as shown below.

In this example, we will try to export the company, contact and phone1 fields.

Notice that the query below is padding field values with spaces to the right of the value.  This will allow data to be captured with the exact field length desired for each column.

select top 5 left(company+replicate(‘ ‘,30),30) as Company,left(contact+replicate(‘ ‘,20),20) as Contact,left(phone1+replicate(‘ ‘,15),15) as Phone1 from contact1

Once the  Query task is created, add the Export To Data File task.


Set the export filename and make sure to select the field delimiter setting to FIXED LENGTH.  Save the settings and run the process to export the records with fixed length format.

Troubleshoot Queue Execution Issues

There are a couple of ways to identify why the queue items are not being executed.

Automated Queue Execution Is Not Working

If you are executing the queue using a task scheduler, make sure that the task scheduler is still active and is set to execute the queue at the expected date/time.

If you are using the DBX Windows Runner Service to automate the execution of the queue, make sure that the service is still running. Verify this by looking at the status of the DBX service from the  Windows Services (accessible via Control Panel | Admin Tools).

Errors Executing the DBX Windows Runner Service

If you are using the DBX Windows Runner Service, check the log file to see if there are errors generated by the service.  The location of the log file is setup in the “Setup DBX Service Runner” configuration tool which can be accessed from the “Options” menu.  In the 3rd tab, make sure that logging is enabled and that the path where you want the log file to be created is specified.

If logging is disabled, enable it and restart the DBX Windows Runner Service from the  Windows Services (accessible via Control Panel | Admin Tools).  After restarting the service, open the log file that is generated after the number of interval minutes setup in the “Setup DBX Service Runner” 3rd tab has elapsed to make sure that if any errors had occurred when it tries to execute the queue is logged.

Service Windows Credentials Has Changed

If the password of the user configured for the DBX Windows Runner service has changed then the service needs to be setup to use the updated password. In the Windows Services window, find the DBX Runner Service in the list and right on the item and select Properties.  Go to the logon tab and specify the new password.

Queue Schedule Is Incorrect

Check the schedule setup for the queue and make sure that the date range and schedule settings are correct.

Errors In The Processes

Check the logs for each of the processes in the queue.  Verify that the first process was executed or that it contains any logs that indicate an error that could potentially stop all other processes.

Unable To Access GoldMine and other resources

Make sure that you can run GoldMine on the same machine where DBX is installed/running and that other network resources such as a network drive are accessible.

SQL Queries for E-mail Addresses

GoldMine email addresses are stored in the contsupp table.  The contsupp table stores different types of records such as details, linked documents, additional contacts, and automated processes.  This means that we have to properly qualify the records that we want from the contsupp table.

GoldMine stores the value of the email address in the contsupref and address1 field of the contsupp table.

Get all email addresses in GoldMine

Select contsupref + isnull(address1,”) from contsupp where rectype = ‘P’ and contact = ‘E-mail Address’

The query above will concatenate the value from both the contsupref and address1 field to get the complete email address values in GoldMine.  The function isnull() is used to evaluate if the address1 value is equal to null.  If address1 is equal to a null value, then an empty space is appended to the contsupref field value.

Also notice that the query filters the records from the contsupp table by only getting records with a rectype field value equal to ‘P’ and the contact field value equal to ‘E-mail Address’.

Getting all email addresses of specific contact records in GoldMine

Select contsupref + isnull(address1,”) from contsupp where rectype = ‘P’ and contact = ‘E-mail Address’
and accountno in (select accountno from contact1 where key1 = ‘Prospect’)

The query above reuses the same basic query but with the addition of a new condition that allows the query to only get the email addresses from a specific set of contact records.  The contact record has a unique accountno field value.  This accountno field value is used to associate the contact record to its related records such as e-mail addresses, additional contacts, history and calendar records.

Getting all email addresses based on calendar activities in GoldMine

Select contsupref + isnull(address1,”) from contsupp where rectype = ‘P’ and contact = ‘E-mail Address’
and accountno in (select accountno from cal where actvcode = ‘WRT’)

This is very similar to the previous query.  The only difference is that it is restricting the list of e-mail addresses based on scheduled activities with a certain activity code.  The code ‘WRT’ can be a marker for a specific market audience.