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.
Reference documents
M3 BE Generic API database read – Industry Enrichment Package 2 ReadMe – M3_BE_Generic_API_db_read_IEP_2_ReadMe.pdf
M3 BE Enrichment Package Overview – M3BEEPO_14.1.2.0.pdf
M3 Business Engine and M3 Foundation Installation Guide – M3BEIG_14.1.2.0_A.pdf
One of the things that wasn’t obvious to me initially was I had to download the enrichment pack before I could apply the CCSS fix.
This involved going to the Product Download Center -> M3 Business Engine Products -> M3 Business Engine Industry Component – M3 10.1 Other Industries 14.1.2.0 and downloading the “Industry Component Other Industries (MI3) – Product. This little M3BE_1412_MI3.zip file effectively enables the installation of components up to MI3.
We need to Upload the M3BE Package
Select the directory where the package resides and it will find the .zip file. Tick the M3BE_1412_MI3.zip file that we downloaded earlier.
Select Finish
After a little bit we’ll get a prompt about the certificate.
And then a notification that we have successfully uploaded to LCM.
Now we do the install itself. Right click on your Business Engine -> M3 Business Engine 14.1.2 -> Install Additional Components
Hit the Next button.
As our StreamServe isn’t in the Grid then we get this message. Just hit ok.
So now we get down to the what we need to do for each of our environments.
Ensure you have all of the prerequisite fixes in place. Knowledgebase article 1385193 seemed to have the most comprehensive list I could find:
EVS001MI
JT-177643 Support for MDBREAD
JT-236170 Exception in EVS001MI
MRS001MI
JT-177643 Support for MDBREAD
JT-199879 New transaction to list fields with additional information
CRS420MI
JT-232450 Field erroneously set mandatory in LstByActDateDsc in CRS420 pgm.
CRS020MI
91417 CRS020MI Incorrect test of total subfile line length
JT-227005 CRS020MI is calculating the subfile lenght wrong
cMICommon
JT-177055 Some conversion routines in cMICommon not handling error messages correctly
And ensure that the scripts for the metadata have been run. Again from article 1385193
1. MI_JT177643_01
2. MI_JT199879_01
3. MI_JT235066_01
4. MI_JT236987_01
5. MI_JT177643_02
6. 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*.class
the 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 database
select * 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.
Enjoy abus^wplaying around with MDBREAD 🙂