This blog is for all the developers of Smart Office components, such as JScript solutions, Mashups or even full featured applications that uses the Smart Office framework to build new exciting applications.
This blog is brought to you by the developers of Lawson Smart Office.
For developers – by developers.
Editors

Karin P (karinpb)

Peter K (norpe)

Rickard E (countzero42)
hi, there,
I was trying to build a link from a html page to a mash up in LSO. I use US demo server, therefore I added the server address, followed by “&task=mashup///?….”. But it proved that this is not working. I have tested to put “&task=mforms://CRS610″ and it works. So the address is correct. The error message is: Url Url must be set on a mash up. Can you give me an instruction about what I did wrong?
Leon
Hi,
Assuming the mashup uri is correct (the same uri as you have in the Navigator) you probably just need to URL encode the uri value. That is the complete mashup://?… Uri. Becasue it has paramets the value must be encoded or the paramets are consided to be part or the link to LSO installtion point. Encode the entire value (uri) you want to set the task to, but not task=.
There are online encoders. Try this one online dencoder.
thanks! now it works from an external IE. Great!
Hi!
first of all thanks for this great page. The information helped me already in some cases.
But is it not nice to have a also a forum to exchange knowledge with other LSO users?
I think it will be great to post questions and answer questions from other users, post mashup ideas or maybe also source codes.
As far as i know there is no other page at the moment.
Why not to start here?
I think many users will welcome that!
Best regards!
Daniel
Hi Daniel,
I think this is an excellent idea and I’ll push my manager and the product owner once more on this issue. I’ve been pushing for a public forum for quite some time but … nothing happend.
That is the reason I started this blog. Becuase it is a great way to reach out not only to our service organisation and partners but also customers.
The only public forum (independent) I know is here: http://www.lawsonguru.com/forums/ux/lso/
Hi!
I´m new to Smart Office so perhaps this is an easy problem to solve.
There is a widget for RSS feeds thats not working as I supposed. When I add an RSS-link like this http://www.yoursite.com/rss.xml it works perfect but when i try to use a rss-url to our intranet based on Sharepoint 2010 it doesn´t. It keeps telling me that the url is invalid.
Have U seen this behaviour. Here is an example url from Sharepoint:
http://portal.site.com/IT/Customer/M3/_layouts/listfeed.aspx?List=%7B0C0DFAFE%2D60F8%2D42AF%2D8874%2D03588BF18905%7D&Source=http%3A%2F%2Fportal%2Esite%2Ecom%2FIT%2FCustomer%2FM3%2FLists%2FM3%2520Announcements%2FLatest%2520news%2Easpx
Thanks,
Daniel
Hi Daniel,
I’m not sure. The RSS widget only supports RSS not Atom.
Do you have a public URL for me to test or can you save the XML returned (in IE – view source for example) and share it either in a comment or a public link to your SkyDrive or some similar service?
If you send me the XML I can have a look. I’ll also check if the URL gets corrupt somehow. To set log level (Settings for LSO) to debug might show some more info. Log is found from the About dialog or via internal://log.
I’ll test when I’m back at the office. I’m at Microsoft today.
Regards
Karin
Hi again,
Did you say Sharepoint? I think the reason is that the page is secure and the news reader ony supports public RSS feeds. I definately think that you should contact support and add a requirement for supporting Sharepoint feeds. Sharepoint is probably using Windows classic authentication.
Hi Karin, Thanks for you reply. Yes, The Sharepoint-site use NTLM for login. So I will send a case to support. Thanks again,
//Daniel
NTML support has been added in Smart Office 10.0.5. Thanks for you feedback.
Thank you very much for the page! It has been extremely useful in our mashup development (we’re not developers and we can still make sense of it, thanks to you guys!).
One thing we have struggled with and still haven’t found an answer (on the Internet) is whether it’s possible to call up the Text functionality from a mashup. For example, an item in MMS001 may have Text (and Text Blocks) associated with it; our intention is to allow the user to directly jump to the Text based on an item selected, if text exists. Any thoughts and suggestions?
When using the M3 Mashup ListPanel control there should be a Text option on the context menu for the list. If there is a text connected to the selected list row the M3 Test dialog should be opened when the Text menu item is clicked. There is a property called EnableTextOption on the ListPanel that can be used to turn this functionality on/off. The default value for the property is true.
Unfortunately there is no way to know if there is a text connected to a list row. If no text is connected the Text dialog will not be displayed.
Thanks for the quick reply norpe!
What you’ve described is exactly how we’ve currently implemented it right now, but the user would have to click on the Text option from the option menu. We were hoping to save one more click in the user experience by going directly to the text box instead of through that option menu but we haven’t found a way.
Currently, we were indicate to the user that the item has text by grabbing the textID through an API (CRS980MI) and rendering appropriate confirmation text (via conditions) but we couldn’t connect it to any action (e.g., open up the Text box from CRS980). That would be the ultimate goal, but at least now the users don’t have to go into each Item to see if there’s text.
If there are any ideas on this, that would be fabulous.
You can open the Text dialog in the same way as the context by using an event. The event name should be “ListOption” and there should be a parameter named “Option” with the value “Text”. See the XAML example below.
Wow, that’s awesome! So very close… :\ What you described is exactly what I asked for…except I wasn’t specific enough (my bad).
Most of our users are not allowed to go into Change mode so they’ll result in an error “Failed to comply with your request.” Is there anyway to bring this Text option up in Display mode? I tried tinkering and applying to the detail panel to bring up F6 instead, but I couldn’t get it working. Thanks!
So I guess there isn’t really a way to bring up the Text in Display mode?
What we ended up doing was a workaround that wasn’t pretty (but it worked). We utilized three transactions from CRS980MI to bring back the Text ID in a TextBlock (GetTextID), get the text blocks with the right language into an MIComboBox (LstTxtBlocks), and displaying the text blocks in an MIListPanel (SltTxtBlock) depending on the text block selection from the MIComboBox.
It would have been better if I could have displayed all the records concatenated in a text box, but I couldn’t figure that out. In any case, thank you very much for your help!
The option used to open the Text dialog is usually decided by the BE program depending on the option used for the detail panel. When showing the text dialog from the list there is no way to know what option to use. Currently the option used from the ListPanel is hardcorded to option 2 (change).
It will be possible to use option 5 (display) for the text dialog in future versions. I will create a post when this is available.
Hello, is it possible to create a shortcut in LSO to a Design Studio Portal Page? I can successfully create a shortcut to a DS form using similar syntax below but I am having difficulty with creating the shortcut to the portal page. Bookmark in portal to portal page LAWPAGE|file=abc.xml.
net://auth?http://lsfserver.corpnet.lawson.com/lawson/portal/?_TKN=GL90.1&_RUNASTOP=0&_ID=MyCustomGL90
Yes, that is possible. The parameter part might need to be encoded. I’ll check at the office tomorrow. Have to tried the utility program at the end of this post? http://lawsonsmartoffice.com/2012/09/12/its-all-in-the-url-client-configuration/.
I will download the utility program and give that a try.
Thanks, Joe
I tested this myselft in the Utility program. Since the parameter has & when we create this Uri it will contain three parameters:
http://lsfserver.corpnet.lawson.com/lawson/portal/?_TKN = GL90.1
_RUNASTOP = 0
_ID = MyCustomGL90
This is not correct becuase the the last two are parameters of the lsf server URL not the net:// URL.
The solution is URL encoding everything after the first ?.
Try this: net://auth?http%3a%2f%2flsfserver.corpnet.lawson.com%2flawson%2fportal%2f%3f_TKN%3dGL90.1%26_RUNASTOP%3d0%26_ID%3dMyCustomGL90
Hi. Sometimes you need to retrieve information with SQL-statements within LSO and Jscripts. There are several techniques for this but what is the recommended way from you ? Should we use Web service for this or what is the best way ? Thanks /mikael
The M3 database should only be accessed using the M3 APIs. In JScript the MIAccess and MIWorker classes makes it easy to make MI calls. MDBREADMI can be used to define new transactions if necessary.
Accessing any database directly from the client is generally a bad idea; there should be some kind of layer between the client and the database. The database could be exposed through web services or some kind of REST service. Calling REST services from JScript is easier than calling web services since they require stub code.
It should be possible to use the Mango.Core.DynamicWs.WSDataService class to make web service calls since this class dynamically generates web service stubs. At the moment we don’t have examples of how to use this from JScript but there are examples for Mashups, see http://lawsonsmartoffice.com/2012/01/18/soap-mashup-with-bing-search/
Do you know if there is different syntax to be used to bring up the design studio portal page? My portal page contains both a form and data queries. The form portion of the portal page displays with the encoded URL, but the data queries are not displaying. The data queries are populated based on a key field in the form. Thanks, Joe
I have to ask, how are you creating the link? net://auth?http://example?paramName1=Data. Is it in JScript? Link in the link manager? Is it _TKN that is not getting through?
I don’t know the specifict of the parameters but in general those parameters have to be encoded and then the entire URL with the parameters has to be encoded if you set a parameter that is a URL like the net://auth?http://example?paramName=Data.
That means first encode Data, then encode http://example?paramName=Data. Now ‘Data’ does not have to be encoded but if you have signs like &,space,=, those must be encoded.
Give me some more specifics and I’ll check with the S3 team.
I am using syntax from a spreadsheet that a Lawson resource gave us to pull up embedded Design Studio forms. This syntax works with DS forms but not with DS portal pages. For example, my bookmark setup currently in Portal to call my DS portal page is as follows : LAWPAGE|file=emp_profile.xml. My bookmark setup to call a DS form in Portal is as follows : LAWFORM|TKN=AC42.1|ID=AC42.1_MOD.
So I am not sure if the URL syntax in LSO was slightly different between displaying a DS form vx a DS portal page.
Hi,
This is what I have been able to find out. Seems to be something special about the way the & is encoded (see last URL).
Using the url below on the browser command line does not work because S3 for Workspace is not loaded; what we are doing is loading index.htm from the pages directory and pages.js requires that a S3 Custom Page executes within S3 for Workspace.
http://:/lawson/portal/pages/?FILE=cucodes.xml&VAR1=VALUE1&VAR2=VALUE2
Using the same url from a Favorite or a Bookmark works as designed because the S3 Custom Page is loading and executing within S3 for Workspace. I find all the passed parameter values within the page.parameters collection.
Inbasket.js works is because it is loaded and executed from within Lawson Portal and the Portal window reference can be found from the Portal Page.
LPA Inbasket cannot use this url because it does not start S3 for Workspace, so it needs to use LAWPAGE, which will start S3 for Workspace and display the S3 Custom Page; the ampersands separating the name / value pairs need to be escaped so the name / value pairs can be placed into the page.parameters collection.
http://:/lawson/portal/?_URL=LAWPAGE|FILE=cucodes.xml%26VAR1=VALUE1%26VAR2=VALUE2
Hi! Is there any way to tile open programs on a canvas? Im looking for a script that sizes all open programs so that they appear on an equally large “square” on my Canvas. Kind regards, Johan
Hi again….I think I found something on “Thibaud’s M3 ideas worth sharing”……I’ll try to make it work in my environment
Great, then I don’t need to look for the example code we sent him.
I’ve installed LSO many times. On this new install of the LSO Grid, the LSO Grid is failing.to install each and every time, no matter what version of the grid is attempted to be installed. After filling in the information about the Grid (name, ports, etc.) it comes back and pops up an error message:
“Failed to run script D:/LSO/LifeCycleManager/Server/products/Lawson_Grid_9.1.7.0/templates/GridNew.vm”
… there is a log file produced but I can’t tell what specifically is the issue here.
I’ve rebooted the server and all of the LCM Services. LCM starts up no problem (version 9.1.11.0).
I’ve already got Infor support looking at it but they still don’t have any idea what’s going on.
Any ideas or where to look at would be great.
Thanks in advance,
-R
Sorry, without any more information it is impossible to say what goes wrong. If the Infor support people does not know, they need to ask the developers.
Hi,
I asked around and got these general tips.
The JDK should be JDK6, the update version shouldn’t affect the installation though we always recommend the latest of course.
Key things to check from a grid perspective are: file system permissions, firewall settings, trying to overwrite existing broken installation, ports in use (somehow).
Log file would be useful, but the version of Grid is old – the latest released is 10.1.9.0.14.
Please consider using a newer version of the Grid. What version of Smart Office will you install?
Make sure you get the updates if it is a 10.0.4, go directly to 10.0.4.1.
Hi,
is it possible to add a file viewer with a script?
For example i have in APS112 the path of the PDF file in the database field WWPATH. I want to add a script that shows me the PDF in the form on the right side.
It is no problem in a Mashup with the file viewer component but we want to have it directly in the Form.
Can you help me? Maybe do you have a script snippet for this?
Best regards
Daniel
Hi,
Since it is code, anything is possible but we don’t have an example for it. One way would be to host the Mashup control. We will consider making an example.
Regards
Karin
Hi,
For example, if you have an XML-file that a jscript should read to validate user inputs. Where should be the best place to put the XML-file on the server so every user can access it ? Do you have a recommendation where it should be stored on the LSO-server ?
Thanks !
/mikael
Hi, I would add a folder in the same folder that has the installation point.
In my environment that is c:\SomePath\ISO_10.0.5.0.RC4\applications\LSO\Client\IP.
This folder has three folders Application Files, features and OfficeAddIns. I would add a new folder called myconfig and place the XML file there. I would also make sure that I had a script that would take a backup becuase you never know what will happen to the files in an upgrade.
An alternative is to create your own web app and place any content you like there. It can be RSS feeds, images or whatever. In that case you have full control because adding folders within our apps comes with a risk. We might change the security access policy or add our own folder with the same name or wipe everything before an upgrade.
Then I would go to the JScript and make sure that it does not load the configuration file on the UI thread. I’ll bet you that it is currently doing that.
Hello,
I’ve been looking at an issue that was presented to me by a solution consultant today where he is trying to present some data as a chart within a Mashup. It would seem that the ‘VisualizerPanel’ is not enough as the data is fetched by a SOAP Web Service and therefore uses a ‘DataListPanel’ (as far as I’m aware, the ‘VisualizerPanel’ only supports ‘ListPanels’).
As an alternative, he’s been looking at the DataVisualization Toolkit ‘Chart’-control. The strange thing is that I can bind the data from the Web Service to a ‘DataGrid’ or ‘ListView’ without issue, but trying to bind the same data to the ‘Chart’-control does not work. I realize this is not much to go on, but: Do you see any reason that the data binding would work for a ‘DataGrid’ or ‘ListView’ but not the ‘Chart’-control? They should exist within the same DataContext.
Using the SDK would solve our issue but it would be nice to be able to keep it Mashup-only.
Thank you for your time,
Jocke
I’m not sure. You use the SOAP web service right? Becuase the values have to be objects and not strings becuase I guess there are numerical values. My recommendation would be to use the SDK and run it from within there to be able to read the output log in order to get more information on what is happending.