If you want to show custom columns in your applications job monitor there are several things to do.

  • At first you need to add the required coulmn to you applications engine database table TMBATCH. Please keep in mind that only STRING or INTEGER columns are supported. As a prefix PB_ for the coloumn name is required. E.g. PB_VENDORNAME. Please create the column name also in upper case letters.
  • After you added the new column(s) you also need to update the database views JMView and JobMonitor.
  • Now you can select the new column in the repository settings in content navigator. Iin my case the columns are called PB_NL and PB_KASSENTAG
Datacap Application configuration in Content Navigator repositories

Now comes the more difficult part. Because you cannot use existing SQL action from datacap to update these columns. If a task completes the batchpilot will overwrite the update columns with empty fields. The solution is to write a custom action to update the batchpilot information so that the information persists in the engine database.

I wrote a custom action in .NET. The following code function is used to update the Batchpilot

public bool UpdateJobMonitor(string column, string value)
        {

            dcSmart.SmartNav localSmartObj = new dcSmart.SmartNav(this);
            string input = localSmartObj.MetaWord(value);
            /// BatchPilot.set_XtraBatchFieldValue(column, input); ///
            DatacapRRBatchPilot.set_XtraBatchFieldValue(column, input);
            WriteLog("SmartNav: " + this);            
            WriteLog("TIMETOACT Setting Column: " + column + " To Value: " + input);
            
            return true;
        }

In the TheRRX.rrx file I added the following

<method name="UpdateJobMonitor">
      <p name="Spaltenname" type="string" qi="Der Name des Feldes aus dem gelesen wird.  Smart parameters are supported."/>
      <p name="Feldname" type="string" qi="Der name der Spalte die im JobMonitor geschrieben wird.  Smart parameters are supported."/>

      <ap>
        Updates the TMBATCH table with custom values for BatchPilot.
      </ap>
      <h>
        Eingabe von Spaltenname und Feldname<br/><br/>

        <e>
          <b>UpdateJobMonitor("PB_NIEDERLASSUNG,@P\Niederlassung")</b><br/>
          Smart Parameter erlaubt.
        </e>
      </h>
      <lvl>All levels.</lvl>
      <ret>
        <b>True,</b> if the action succeeds.  Otherwise, <b>False.</b>
      </ret>
    </method>

Here I read a fileds value and pass this as “input” variable to the action to update the batchpilot.

6 thoughts on “Creating a custom column in Job Monitor for IBM Datacap

Leave a Reply

Your email address will not be published. Required fields are marked *