JD Edwards 9.2.1 – How to Access Data from the F98MODAT File

With Tools Release 9.2.1, media objects are written to and read from the database. Files will be stored directly to the database instead of the file server unless you are on 9.2.1.4 or newer. Before media objects are stored, they have to be setup using either a Windows Networking or FTP connection. The temporary file location on the web server is used for MOBJs when the files are being stored directly in the database (F98MODAT) as well. The media object file is uploaded from the user’s machine to the temp directory. Then it is copied from the temp directory on the web server to the F98MODAT. Likewise, the same occurs when a user accesses a file. It is copied from the F98MODAT to the web server temp directory, then to the user’s machine.

Below are two new APIs available with JDE Tools Release 9.2.1.6 onwards. These APIs are designed to work with attachments that are stored in the F98MODAT table. Note, these APIs do not create records in the F00165 table, we must use the API jdeGTAddUpdate to perform that function.

This article discusses the function of these new APIs to retrieve and insert attachments in the F98MODAT table.

API Name: JDB_SelectMediaObjectFile

Purpose: The “Select” API will retrieve the Media Object file from the F98MODAT table and create the Media Object file on the local disk.

API Name: JDB_InsertMediaObjectFile

Purpose: The “Insert” API will read the Media Object file from the local disk and create an entry in F98MODAT .

Points to note:

  1. The queue names and queue paths are defined in the F98MOQUE table.
  2.  The queue names and file names in F98MODAT table must match exactly to the corresponding columns in F00165 table.
  3. The Shared queues will use the queue name and a simple file name.
  4. The HTML Upload queue will use a blank queue name (‘ ‘) and the full path file name.
  5. It is up to the API caller to maintain consistent references in F00165 (such as, reference count should be zero in F00165 before deleting from F98MODAT).
  6. When inserting into F98MODAT, the returned queue and file name values must be entered into F00165 for all references to that inserted Media Object file.
  7. The Media Object file in the F98MODAT will use more than one row, when larger than 15 MB. The file splitting and concatenating is handled within these APIs for large files.

Hence, starting from tools release 9.2.1, all media object files are stored in F98MODAT database table instead of the file server. In order to access the data from the F98MODAT table, developers will need to use the API’s mentioned above and develop customer specific C BSFNs and implement them in UBEs.