Development with Infor LN Studio
Already since some years now there is Infor LN Studio available as a development environment for Infor LN. It’s an Eclipse installation, that has been enriched by Infor with some plugins. This development environment basically sits in front of the LN Tools environment. Instead of using the sessions Sessions, Table Definitions and so on, you are developing completely within Eclipse. The plugin provides forms for creating and modifying sessions, tables, scripts, messages. All you’re usually needing when doing LN development. Only for the form editor Eclipse is starting that “classic” DFE Windows application.
Three years ago I gave it a try and aborted that experiment rather quickly, because it was terribly unstable. However, I am currently the project manager of a rather large LN implementation and it looks like we’re going to handle large parts of the necessary development activities with LN Studio. So, it was time again to install it and check for it’s usability.
And I have to say, it’s pretty cool. (Did anyone claim that I would only rant on Infor?) There are a few features missing that I’d like to see implemented, but for regular development it’s looking really good:
Let’s start with the positive:
- There is syntax highlighting. One that works.
- There is code completion. You’re typing “tcibd001.”, CRTL+Space, and you get a dropdown list of all fields of the item master including the description. Pretty nice.
- A changed source is automatically compiled by the Studio upon saving it. The errors are immediately marked in the source code. You don’t have to close the editor, click compile, check the results, repoen the editor and jump to the erroneous source code line. This saves a lot of time.
- From a function that is used somewhere in a source you can easily jump to that source, where this funktion is defined. No more IT-per-hand-fumbling, that you usually have to do (remember the function, start a new Maintain Program Scripts, find the DLL, open the editor, start a find dialog, enter the function name.)
- The studio integrates nicely in the configuration management (an option to keep old versions of changed program objects, unfortunately used rather sparsely)
- and even more nicely into PMC.
- This means: Within LN Studio I am able to define a development activity, I can create all necessary software objects – sources, tables, sessions, domains and so on, I can test, debug, change, and do all my development work. When I’m done, and when everything’s working, I am able to check in all objects within the activity with a single action and create a solution to deploy the stuff to the live system. I enter a commit comment only once and not for every single object. Did work stable and reliable in my tests. When doing development the “classical way”, there is the need to either write down changed objects, or to immediately linkt them to a solution, or to fumble around with development projects and project parts. This is removed now, the solution with LN studio is exactly what is needed.
- The debugger works much more elegantly then the classic one. You’re seeing the stack, the contents of variables is already displayed when rolling over the variable with the mouse, local variables are also displayed in a list view.
- Really cute: Sources you need during debugging are automatically compiled into debug mode by studio in the background. (Need to have a source code license, of course). You don’t have to manually tear each DLL you want to analyse into the development VRC and compile it with the debugger on.
On the negative:
- The debugger is too slow. It might be some configuration issue at my side, I still have to check that. But as it’s behaving now, it’s too slow. From time to time it needs like 15 seconds between pressing “step” and the instruction pointer moving one line down. Something is not right there, like that, you can’t work in any productive way.
- I extremly dislike the design concept to hide the session scripts and DALs behind the session and the tables. In the hierarchical structure of the existing software components there is no access to “Scripts”, only to “Sessions”, “Tables” and “Libraries.” The session skript is but one tab amongst others defining the session. The DAL consequently one tab in the table editor. That’s simply not the way like LN is (partially) programmed, scripts can have a life of their own.
- What’s not hurting when you’re developing new software, but what makes the Studio partially useless when custumizing standard components, is the fact that that you can only access one version of a software object. So, for a changed standard script, you can only access the modified version, not the original (standard) one, which might be changed in the meantime eg by installing a solution. That makes merging customizations with a changed standard pretty impossible. My classical development based on JEdit is much more productive in that usage scenario.
These laste two issues are really critical if Infor LN Studio is used not only for new developmen, but also for maintainance. One is missing the oversight, you don’t really get a grasp on which scripts linger around in which environments, which ones are customized etc. This is much more easy to understand using the classical tools sessions. I’d really wish that Infor invests some more development bucks into these two issues – then the Infor LN Studio becomes a really nice piece of work.
What do you think? Have you worked with Infor LN Studio already? Do you want to use it or do you think it’s unnecessary clicky-dicky (since vi is all you really need!) I would be very happy to hear your comments! Right below there is enough space left!
Thank you for promoting Infor LN Studio! Let me give a short reaction of your negative experiences:
For the debugging performance, you could check the logging created by JCA. You can switch on the client logging in Window>Preferences>Infor LN JCA Connectivity>Log Configuration. JCA server logging can be activated by selecting Trace Backend in the Connection Point configuration (for the runtime connection for your project (_rt connection point). Then you can see the timestamps of the different messages being sent between client and server. Maybe that will lead to the cause of the problem. Could be that for some reason the DNS lookup at the server side takes a lot of time. If that does not help, I would recommend to contact Infor Support.
Your second issue is a matter of preference and would probably not have given a negative experience if you didn’t know the underlying technical structure. Integrating the (DAL/UI) script editor within the Table and Session Editor gives the opportunity to add more productivity features. An example of this is the adding of an external function automatically in the UI script at the moment a form command of type ‘function’ is added to the session.
In Enterprise Server 10.4 you are able to see multiple versions of the software components. In the Team menu there is an option Show Revisions. This functionality opens the History view and shows all versions in lower VRCs, even with their revisions if SCM is activated. Component versions can be compared as well. As of ES 10.4.1 this also works for non-SCM components.
Note that this limited to the VRCs in the derivation structure of the (Activity/Project) VRC you are working on. In a future version this functionality may be extended to see also the ‘parallel’ VRCs. In the current version you can see the parallel VRCs if you define a Project/Application/Activity for those as well.
Hello Jaap,
Thanks again for you very profound feedback. I will try your debugging hints as soon as I find the time.
Concerning the script versions: Yes, I know that view. But what I am currently seeing there for a customized standard script is this:
So I see all my revisions of the source tfcmg2105 in the customization VRC (tf)B61C_a_prd, but this VRC is derived from the “Update Standard” VRC B61U_a_stnd, where the standard solutions go to. Of course, this latter VRC is not revision controlled on a customer system. And unfortunately I’m not getting the (update)standard source to shine up in this view, despite the fact that this customer has a source code license. According to your comment it should be there, however? (This screenshot is from Studio 10.4.2 with ES 10.4.1 on an 9.0 porting set) Could it be a bug?
hi
Hi , i’m a begginner with ln studio, but sure i want use more for develop, the issue that i would solve is creation of temporary vrc that ln studio create every time create a project fon any different developer , so we use only for little test or modified bde or bod, we would use LNstudio for all future develops
Yes, it’s true that Studio creates these temporary activity VRCs. It is important that you handle the activities until the end, so they need to be closed again in Studio after development is done. In that case, the activity VRC will be “recycled” with the next development activity created. So Studio is not “wasting” those VRCs.
I really like and appreciate your forum.Really looking forward to read more. Will read on… Burrs