JDE Custom File Monitoring


My company is currently on JDE version 9.1 and we are wanting to find a way to monitor custom JDE files for row insertion. We need to be able to run custom logic when a row gets inserted into our custom table based on the data inserted. I have looked at doing something like this through the subsystem API but that isn't an option since the data that will be inserted will be from a 3rd party using ODBC to insert into our file and we don't want them inserting into our F986113 file. JDE table triggers are not an option either. I basically need to call a UBE when a row gets inserted into a JDE file and I can't see an easy way to do that. Any help would be appreciated.
First of all, if you don't want the third party to insert to certain tables, why not give them a DB login that only has write access to the tables you do want them to insert into? As an alternative to the 3rd party writing directly to the DB table, you may also want to investigate Business Services or XML CallObject for the third party to send you data. Using the later two interop methods will give you the ability to respond to the event in real-time and invoke any JDE business logic you might need or launch a UBE, etc. But, if none of these are options for you or the 3rd party and the 3rd party must write directly to the unsecured database then you might have to do something like you proposed, i.e. launch a UBE after a record is inserted to a table.

There are probably any number of ways to effectively launch a UBE based on an insert event to a table via ODBC (or JDBC or TSQL, etc.), some more elaborate than others. I guess it boils down to whether or not you need real-time event handling for the insert event or if some type of timed batch process will work. If you DONT need any type of real-time response you could simply create a DB trigger on the table your are "monitoring" that writes to some other table. Then a UBE could periodically check this other table for any new records and process them accordingly.

If you need real-time event handling I suggest searching this site. I believe I have seen several threads and several solutions out there that will effectively let you call a Business Function or invoke some other type of process in JDE from a DB trigger. I have not implemented any of them personally but I do know they are out there.

If the sole purpose of this UBE is some sort of audit trail or monitoring/notification, you may want to consider implementing a solution completely outside of the JDE toolset.

Personally if we need real-time event handling in JDE we use XML CallObject (or Business Services). Otherwise, we have used some type of periodic batch processing if the external (external to JDE) process writes directly to the database.
What's it's key?

I did something similar with a scheduled job (first a self awakening sub system but I changed to schedule for the users sake)

All that did was just check the UKID on the F4111 cardex (I stored the last known UKID and just checked for records greater than the last saved)

It works fine

Depends how quick you need a reaction. In my case an hour or so was fine so it ran every hr
If your 3rd party program writes a jee (custom) table may be you or your partner hold the code of the programs. In this case modify the programs to notify the jee system of the record (call web service, write a text file or any other options).

Another way is to add one more field to your custom table (it's not a problem to add fields at the end of the files) and schedule a ube to process unprocessed rows.

Further to Brian's post, I believe that, depending on the database, a DB trigger can be written that can execute a script on the host machine, or perhaps another machine (the enterprise server). The script can then run a UBE using the runube JDE utility. I have not done this myself, but our DBA says that it can be done.