Over the past year or so I’ve heard several mentions of MDBREAD. Generally at times that I am thinking of other things or aren’t close enough to a trusted computer that has access to my environment.

But one of the modifications I am writing would benefit from being able to read a table so I decided to take a look.

A quick look in MRS001 yielded nothing. And though my googlefu may have been a little twitchy the other day, I turned up references to MDBREAD but not how to use it.

So I reluctantly turned to the Infor Knowledgebase.

As it turns out, the MDBREAD functionality is an industry enhancement, and sadly we were well and truly live on 10.1 before that enhancement came out.

Given that Infor have been flying the “easy to install”, “functionality separation”, “non-disruptive pick and choose features” flags for the last few years I wondered just how hard it would be to install the enhancement myself. And it was remarkably simple and painless. The installation and setup took < 15 minutes. The searching for all of the information on the other-hand was in the order of several hours.

To save others the pain of having to use the knowledgebase, I’ve documented the steps that I went through below, follow them at your own risk.

And ensure that the scripts for the metadata have been run. Again from article 13851931. MI_JT177643_012. MI_JT199879_013. MI_JT235066_014. MI_JT236987_015. MI_JT177643_026. MI_JT232450_01

For those of you that don’t know how to update the metadata, you’ll want to go to the GRID for your environment

Select Tools

Enter the Program name (eg. MI_JT177643_01) and then select an appropriate user that has rights to everything and click finish.

As I was having some issues (unrelated to this but…) I did some searching – you can actually find the files that get executed. I wanted to ensure that they existed as the run job didn’t produce any errors when they didn’t exist.

env\Deve\Fix\MVX\TFix\bindbg\mvx\app\pgm\MI*.classthe corresponding source code is env\Deve\Fix\MVX\TFix\src\mvx\app\pgm\MI*.java which shows you what they are doing.

Install the enhancement – it should appear in your manage fixes (assuming you’ve already downloaded the fix through CCSS)

This will create a new directory and populate it under your <environment>\fix directory called MI3 (in our case)

Under that we can see the MDBREADMI class itself. Wahoo! 🙂

And under the market directory we have the class we need to run to activate the enhancement.

Shutdown the M3-API-WS and Environment

Edit your environment configuration so that M3 knows that it should look in the MI3 directory for classes.

Go to the Components

Fill in the description, tick the Hot fix, Temporary fix, Verified fix. And then click on Generate view Paths to fill in the views for you (though I don’t believe they are relevant to MDBREAD)

Save, go to Configurations and assign the new component and then save.

Start the environment and M3-API-WS

Now we activate the enhancement. The F09201M307 comes from the “M3_BE_Generic_API_db_read_IEP_2_ReadMe.pdf” pdf and was the name of the file that was under the market directory mentioned above.

I’m running it against company 100.

Go to MNS095

Right click on company 100 and select X_5745 🙂 or Option 11

This will take you to MNS096

Right click on F09201M307 and select Option 7

Yes, looks like I am missing some language entries…

And the status should change to Activated

Off we toddle to MRS001 to see our brand spanking new MDBREADMI API

But it appears to be missing 😦

A quick SQL query against the databaseselect * from cmipgm where miminm = ‘MDBREADMI’Yields no results.

select * from cmipgm order by milmdt desc

shows we’ve had some updates recently but not what we wanted

It’s around this point that I log a call with Infor – actually there was a heap of other things I did first, but…

And they were kind enough to provide MDBREADMI.exe which looks something like this

Select the Import meta-data and you’ll hopefully get a successful message. Then going back in to Smart Office and MRS001 we do a refresh and we see…

The proof is always in the pudding, so I wanted to test this. I fired up MITest (mforms://mitest) and could see MDBREADMI in the program and could select a transaction.

And I got some data back

In retrospect, it may be that everything was working as designed and that I was supposed to define the MDBREAD transactions myself using the API Toolkit mdbread.exe application. I’m not sure. Eitherway, you can use the MDBREAD.exe to create new transactions.

There is also some useful information in the API Toolkits documentation directory on MDBREAD.