The LawsonGuru Letter, brought to you by Decision Analytics    

In this issue:
1. My Thoughts on CUE 2007
2. Lawson Design Studio, Part 5: Adding JavaScript
3. Worthwhile Reading
4. Lawson Tips & Tricks


April 2007


The LawsonGuru Letter is a free periodic newsletter providing provocative commentary on issues important to the Lawson Software community.  The LawsonGuru Letter is published by—and is solely the opinion of—John Henley of Decision Analytics.

Visit Decision Analytics at https://www.danalytics.com. For subscription information, see the bottom of this message. 

Lawson® is a registered trademark of Lawson Software, Inc.  The LawsonGuru Letter is neither affiliated with nor sponsored by Lawson Software, Inc.  Lawson Software, Inc. is not responsible for the content of this information.

  1.  My Thoughts on CUE 2007 )  


Even though I didn’t attend Lawson CUE this year in San Diego, I did receive my usual eyewitness reports.  I also viewed the video feeds of keynotes and listened in on the executive/analyst briefings.  And, naturally, I do have my opinions.


First though, let’s take a moment to digest this news item (see http://biz.yahoo.com/e/070306/lwsn8-k.html):



Costs Associated with Exit or Disposal Activities

Item 2.05 Costs Associated with Exit or Disposal Activities

(a) On February 28, 2007, the Company's management completed a roadmap for aggressively optimizing our productivity by enhancing our global sourcing capabilities and resources. We currently anticipate that over the six quarters ending May 31, 2008, we will be rebalancing our resources between various locations primarily in the United States, Europe and our global support center in the Philippines. This rebalancing will result in a reduction of between 325 and 375 employees primarily in our US and European operations, as we continue to build our staff and facilities in the Philippines. All areas of our organization will be affected, predominantly in consulting and research and development. In accordance with Statement of Financial Accounting Standard (SFAS) No. 112, Employers' Accounting for Postemployment Benefits, we will be recognizing a charge of between $11 million and $13.5 million for severance and related benefits in the third quarter ended February 28, 2007. All terminations are expected to be completed by the end of fiscal year 2008, with substantially all related payments to be completed by the end of the second quarter ending November 30, 2008. As management concludes on the details of the actions to be taken in pursuing these goals, additional charges related to this roadmap which are not in the scope of SFAS No. 112 may be recorded in future periods, but the timing and extent of these charges are not currently determinable.


Wow.  I do find it interesting that they released this on the big SeaWorld "event night" at CUE.  Perhaps Lawson figured that could temper the blow? 


Lawson is hyper-focused on offshoring what I would term the "repeatable part of consulting".  In my mind this isn't consulting--it's commodity services.  Call it remote installation, training and billable support (always a contentious subject).  I would contend that in order to do heavy-lifting and innovative organization changing, etc. requires a client presence and can't be done offshore. 


Therefore, I see the “Lawson services ecosystem” evolving into two camps: 1) repeatable services, with Lawson becoming the primary provider by offering these services remotely, and 2) process-reengineering and software tailoring organizations who offer higher-end consulting, customized training, and process-oriented services wrapped around Lawson's products.


Now, on to my thoughts on this year's CUE:


-         Harry Debes’ “keynote” spoofed David Letterman’s Late Show, complete with “The Lawson Orchestra”, led by Henning Schulze-Lauen (who runs Lawson Support) playing the part of Paul Schaffer.  Harry was impressive as a Letterman-like host (even wore his sneakers!) as he interviewed his “guests”--both Lawson employees and clients.  Several clients told me they thought it was just too corny and went on too long.  Honestly, can you imagine anyone bad-mouthing Lawson in response to Harry's repeated question: “So, would you say that Lawson is doing a better job?”  Maybe next year, they'll do an American Idol spoof and let me play the role of Simon!


-         Was it just me or did others think that perhaps Harry’s penguin segment was going to be a lead-in to announcing Lawson running on Linux platforms? 


-         Did anyone else notice that Joanne Byrd [Lawson's head of sales] was introduced with the band playing Red Hot Chili Pepper's "Give It Away"??


-         I’m not sure if the entire band was composed of all Lawson employees, but I thought they were excellent and wished they had returned for the second day’s keynote; I hope that Lawson uses them in coming years. Bravo, Henning! 


-         Guest keynote speaker Tim Sanders definitely stole Monday’s show, imploring those in the audience to turn off their cell phones, BlackBerries, stamp out ‘Reply To All’, and to put it simply, just shut up and listen to your fellow employees.


-         Dean Hager’s talk on Tuesday was less “demo-focused” this year, and relied more on having five of Lawson’s own customers tell their own stories.  Dean of course had his own stories to tell, including video from his recent sky-diving adventure, and ending with his own “high-wire” exit from the stage. 


Here are my CUE take-aways:


-         Stabilization and letting the clients get caught up. Lawson recognizes that they've released a heck of a lot of product in both the S3 and M3 product spaces as well as the LSF9 and LBI products, etc. And it's taking a long time for the client base to absorb it and understand it.


-         Lawson will be slowing down the release cycle (perhaps this may be tied to their downsizing of R&D?). There is a big push to get clients onto LSF9 and 9.0 Apps, which will be the platform for future Landmark-based products, etc. The idea behind Landmark apps is that they will be slipstreamed into LSF9 and run alongside 9.0 apps.


-         Speaking of Landmark, they didn't talk about it as much as I expected.  I was surprised because I really expected them to show off the newly-rewritten HR product; perhaps this means its not nearly as close to release quality as I had previously heard.


-         S3 and M3 product convergence is starting to happen. For example, by using Design Studio, LBI, and ProcessFlow you can marry up IC, RQ/PO in conjunction with M3's Enterprise Asset Management. That was the idea behind the merger, and it's starting to show value. 


-         The more stuff Lawson can piggyback on IBM the better.  Remember: Lawson should be an apps company, not a technology company.  The benefits of moving more of the stack to IBM: it works better, it scales better and it's got a heck of a lot more R&D and features behind it. 


-         An interesting product that didn't get much press was the new "smart client" for M3. Expect it to make its debut with S3 sometime in 2008. 


One thing I always have to remember (and remind all of you):  This is Lawson's show, and that is what it isa show.  After the party’s over, execution is always the bigger challenge.

  2. Lawson Design Studio, Part 5: Adding JavaScript to Your Portal Forms )  
  In this article, we dig deeper into Lawson Design Studio, and explore the use of JavaScript to enhance your Lawson forms.

Typical uses might include:

  • Enhancing the edits provided by Lawson (i.e. if you have additional business logic/edits you want to add, JavaScript might be the right answer). Be mindful of the fact that you can really only enforce additional edits; Design Studio cannot be used to or override the edits built into the back-end Lawson application forms.
  • Updating other Lawson forms via an AGS call; for example, when setting up a new customer using AR09, why not use Design Studio to populate AR10?
  • Displaying information from other sources (e.g. other web sites, other Lawson forms/tables, etc.) on a Lawson form. In other words, create your own Lawson mashup!
  • Lightweight integration/updating external systems (e.g. after hiring an employee, add the new employee to your helpdesk system)
  • Setting form values based on other values entered by the user (e.g. if Company 4321 and Process Level 101, then the activity is probably XYZ)
Design Studio, Portal, and JavaScript too!

JavaScript (more technically ECMAScript) is an object-oriented language (no, we won’t debate its merits or shortcomings). If you’ve never written in an object-oriented languages, it is indeed a mind-shift. Switching from a procedural language to an event-driven one is a challenge. I remember crossing this bridge whenas a COBOL programmerI started writing Visual Basic. I still didn’t really get it until after I took a Smalltalk class while getting my Master’s degree. If you really want to understand how object-oriented languages work, take a class on an academic object-oriented language like Smalltalk or Pascal. I won’t even attempt to explain objects in much detail. Suffice it to say that everything in Javascript is an object.

Here are my keys to understanding objects:

  • Objects are grouped hierarchically and inherit from their parents.
  • Objects have properties (i.e. variables or settings)
  • Objects support their own methods (i.e. functions/subroutines)
  • Objects invoke the methods of other objects (i.e. clicking one button fills a text box)
  • Objects respond to events (i.e. “I’m a button and someone clicked me!”)
The browser uses JavaScript behind-the-scenes to manipulate the elements on web page. Every web page is composed of one or more elements (including the page itself) grouped hierarchically into an object model. For a very simple page, the objects would include the page itself, the browser in which the page is rendered, objects on the page, like buttons and textboxes, and so forth. The power of JavaScript is that it gives a programmer the ability to create code that—running in the browser—can manipulate and extend the capabilities of the web page. Think of it like the modern car engine, which can adjust various aspects of its operation based on other elements, like temperature, speed, etc.

The DOM—what’s that?

Now, just to confuse you a little bit more, in JavaScript there are actually two object models, the Dynamic HTML (DHTML) DOM and the W3C XML DOM. The DHTML DOM is conceptually easier to understand; the W3C DOM—being XML-based—is syntactically more challenging, but more powerful. The good news is that JavaScript supports both. JavaScript code can refer to a specific node in the document (i.e. a Portal web page) by specifying the “path” from the document’s root node to the desired node (e.g., window.document.image).

There are tons of books and resources on the web for learning JavaScript and various aspects of programming against the DOMs; here are a few:


I also recommend looking at Lisa Wollin's excellent blog tutorials about Javascript and the object models:


As well as her DOM diagrams:


How Lawson augments the object model

What Lawson does in Portaland which you therefore have access to via Design Studiois to add some objects to the model. Among the various objects which Lawson implements are:

  • lawPortalObj: A top-level object, providing access to Lawson Portal-related objects.
  • FormObj: An XML representation of a Lawson form, which can be used to interact with the application forms; used for getting/setting screen field values, getting/setting data field values (in the Magic object), positioning the active element and retrieving phrases.
  • DataStorage: An object which abstracts out the differences between Internet Explorer and Navigator, encapsulating these vendor-specific differences.
  • Magic: A  transaction object with methods for accessing data elements as well as performing a transaction and validate results.
  • FormState: Used to maintain properties of the state of the application form; commonly used to retrieve the currentRow state when working with detail area elements.
You can see the objects that Lawson adds by accessing Design Studio’s Object Viewer:



Since it helps to see this graphically, here's a diagram I started on a while back, intending to incorporate all of the Lawson objects into a comprehensive object diagram:

Let’s explore a little bit...

Now that we’ve covered some of the foundations of JavaScript and how Lawson adds to the object model, you might want to explore a little of this within the context of Lawson Portal. One way to do it is to install a browser add-on that displays the Javascript information for each element on the page. I use Firefox and a free Web Developer toolbar (http://chrispederick.com/work/webdeveloper/). I can then click on a given page element and see more about the JavaScript/DOM properties (i.e. where the object is in the object hierarchy [e.g. parent/children], etc.):

Coding your JavaScript in Design Studio

The primary way in which you use JavaScript in Design Studio is to write small chunks of code which “hook” the desired events for various objects, i.e. a button’s OnClick(), a Form’s OnBeforeTransaction(), etc.

When you’re in Design Studio, click on the ‘Script’ link in the View Selection:

This opens up the scripting window for your form.  Next, select the object and desired event that you want to hook. In this example, I want to write some code that is triggered after the invoice is entered, but before the passing the transaction back to the Lawson application. To do this, I capture the Form’s OnBeforeTransaction() event, and enter my additional validations/edits:

This is but one example of how you can use JavaScript in Lawson Design Studio to enhance your Lawson forms. As with previous articles in this series, I can only show you a few highlights—enough to whet your appetite and imagination. There’s an awful lot you can do. If you want to get more detail, read the documentation and consider some training.

And, please, before you start going too wild with Design Studio customizations, go back a re-read my first article in this series (see https://www.danalytics.com/guru/letter/archive/2006-12.htm).  You are making a conscious decision before using Design Studio to customize a form. Yes, you are streamlining the application, but you’re also adding a level of complexity to the system--as well as to your support infrastructure--and Lawson's support as well. And, the logic you’re coding in Design Studio is only applied when the user interacts with the form via Design Studio. If the form is accessed via ProcessFlow AGS, Excel Add-Ins, etc., the logic WILL NOT be performed. If it’s your intention to enforce or add new business rules, I would ALWAYS recommend coding them in COBOL user exits.

Including common JavaScript routines into Multiple Forms

As you increasingly use JavaScript in Design Studio, you’ll notice that you’re repeating the same or similar code for various functions, and pasting them into multiple forms. For example, you’ll probably find that you end up with various routines that get used across multiple forms, performing functions such as:

• AGS, DME Calls
• Common Lookups
• Date logic
• String functions

There’s no need to keep copying/pasting the same code into each form. You can use a Design Studio feature for including the common JavaScript code into multiple forms. Think of it as a “poor man’s repository”.

What you do is save all of your common Javascript routines (debugged and tested of course!) into one or more .js files into a specific folder on the web server:


Then, when you need to include a routine that is stored in one of those files, you specify an “include” file, to referenced by your form-specific JavaScript:

Until next time...

In the next article in this series, David Williams (from Paradigm ERP) will share a case study that combines the concepts we have been looking at over the several months into a true solution for one of Paradigm’s clients.

  3. Worthwhile Reading )  
  Financing the Chain


“If builders built houses the way programmers built programs,
the first woodpecker to come along would destroy civilization.”
-- Gerald Weinberg

As new services come to market, finance executives are taking a second look
at supply-chain finance.
CFO Magazine, February 2007

The Well Connected Distributor
Electronic parts distributor Avnet needed simpler connections to its customers -- and
among its internal systems. The solution: service orientation and a common data model.
InfoWorld, February 26, 2007

It's The End Of The Business Intelligence World As We Know It
Oracle's deal to buy Hyperion Solutions is just the latest in a series of market-changing developments.
Information Week, March 5, 2007
  4. Lawson Tips & Tricks )  

Design Studio: Oops, I Messed Up!

Sometimes, you’ll delete the wrong item, or something will go wrong.

Not to worry, there are two possible solutions.

First, you can try the 'undo' command:

If that doesn't help, the worst that happens is that you have to reload (using the ‘Reload Document’ option below) and will have to redo any thing that you did since the previous save:

Please share The LawsonGuru Letter in whole or in part as long as copyright and attribution are always included.

Lawson® is a registered trademark of Lawson Software, Inc. 
The LawsonGuru Letter is neither affiliated with nor sponsored by Lawson Software, Inc. 

Lawson Software, Inc. is not responsible for the content of this information.


Decision Analytics is an independent consultancy, focusing on Lawson technical projects, and specializing in reporting, customization/modification, data conversion, and integration/interfaces. Please visit https://www.danalytics.com for more information.