Let’s explore MForms Automation in Infor Smart Office Mashups.
MForms Automation
MForms Automation execute sequences of steps through M3 programs, e.g. run CRS610, enter a customer number in field W1OBKV, and press ENTER:
MForms Automation Builder is located at C:\SmartOfficeSDK\External\M3\Tools\MFormsAutomationBuilder.exe:
In Mashups
To use them in Mashups, we tell MForms Automation Builder to create an MForms URI encoded, we copy/paste the URI into the desired property in Mashup Designer which will XML-encode it, and we carefully replace the hard-coded values by parameter names in curly braces with the corresponding parameter binding:
Smart Office will do the variable substitution, and will execute a CMDTP=RUN with the XML:
I find the whole process of URI-encoding, XML-encoding, and curly brace replacement too error-prone and time consuming for routine maintenance, so I found an alternative.
Alternative
I find it easier to preserve the original XML in a CDATA section in the XAML:
Note: We must omit spaces between the CDATA start and XML declaration; the rest can be indented.
I find this alternative to be more elegant and easier to maintain than the double-encoded surgical process above.
Let me know what you think in the comments below.
That’s it.
260 subscribers!
Good post. My preference is to use the second method as it is easier to read.
Does it make any difference putting the “mforms://_automation/?data=” part of the MForms string outside the CDATA tag? All of mine it’s inside the tag.
LikeLike
Hi Scott,
I don’t think the order makes a difference.
One problem I forgot to mention is the lack of URI-encoding with this second method, but it doesn’t seem to have any impact, the result works equally well.
Question: how did you think of using this second method? I’ve only seen the first method. If it’s already mentioned in a document somewhere, I will make sure to read the rest of the document for other good stuff.
LikeLike
Hi,
Is it possible to refresh the calling mashup panel once modal M3 panel is closed?
LikeLike
Sorry subscribing correctly to this.
LikeLike
Thanks for the Post above,
It helped me a lot.
My only question for the moment is that does mforms automation builder have the ability to get Values from fields rather than set .
For example:
If I am on crs610 (customers open),
I select a customer
could I use the mforms automation builder to get the Customer number(CUNO) from the selected customer
Open OIS300 (Customer Orders) and then filter by the customer number?
Any help is appreciated.
LikeLike
Hi, thanks for your effort spreading the knowledge…
I have question, scenario : we have a Mashup which lists some lines, let’s say Distribution Order proposals.
I’ve created a button which releases the selected proposal through MForms automation. But if I want to select multiple rows and release them, how should I implement it to my button? It only works one by one…
LikeLike