The LawsonGuru Letter, brought to you by Decision Analytics  

June 2006


In this issue:
1. Guest Spot: Leveraging User Exits
2. Reader Feedback
3. Worthwhile Reading
4. Lawson Tips & Tricks

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 For subscription information, see the bottom of this message.  The LawsonGuru Letter is not affiliated with Lawson Software.

Welcome to Jim Landry from L.L. Bean, who joins us for this month's Guest Spot.  Thanks Jim!

  1. Guest Spot: Leveraging User Exits )  

Our business creates many of our own reports that require consistent formatting; we can do this by making sure that the data goes into our Lawson database in a clean and consistent manner. In order to accomplish this, we have implemented a number of edits, which are implemented via Lawson User Exits.

User Exits can be developed for Lawson on-line programs; they are not available for batch programs. A User Exit can be invoked at three points in the lifecycle of an on-line transaction:

  • Beginning: After receiving transaction or form data but before business logic or edit transactions execute.
  • Middle: After business logic or transaction edits are performed but before the database is updated.
  • End: After the database is updated, but before results are displayed on form.
User Exits are rather elegant in that they remain outside the Lawson source code base, yet they are invoked automatically (only if they exist, of course). The only caveat is that you sometimes have to re-compile the user exit each time you install an MSP or CTP.

User Exit Sample

The logic in this simple User Exit can be used in PR12, HR20, HR11, etc., wherever there is a telephone number over which you want to enforce formation validation. It validates the formation to be "(aaa) eee-bbbb", where

a = area code
e = Exchange
b = Branch

In addition to creating the PD and WS source code files, you will need to add the error message via msgmnt, and compile the User Exit via the –u option:

qcompile -u <productline> PA PA12M

User Exit Source Code







           05  WS-PA12MWS-VERSION        PIC X(20)      VALUE          

               "PA12M  VERSION 1.0.0".

           05  WS-SPACES                 PIC X(15)      VALUE SPACES.

           05  WS-PHONE.

               10  WS-PAREN1             PIC X(01).

                   88  VALID-PAREN1                     VALUE "(".

               10  WS-AC                 PIC 9(03).

                   88  VALID-AC                         VALUE 001 

                                                         THRU 999.

               10  WS-PAREN2             PIC X(01).

                   88  VALID-PAREN2                     VALUE ")".

               10  WS-SPACE1             PIC X(01).

                   88  VALID-SPACE1                     VALUE " ".

               10  WS-EXCH               PIC 9(03).

                   88  VALID-EXCH                       VALUE 001 

                                                         THRU 999.

               10  WS-DASH               PIC X(01).

                   88  VALID-DASH                       VALUE "-".

               10  WS-BRCH               PIC 9(04).

                   88  VALID-BRCH                       VALUE 0001

                                                         THRU 9999.

               10  WS-SPACE2             PIC X(01).

                   88  VALID-SPACE2                     VALUE " ".










           IF ((NOT PA12F1-PAE-WK-PHONE-NBR       = WS-SPACES) AND

              ((NOT PA12F1-PAE-WK-PHONE-NBR(1:1)  = "("    )   OR

               (NOT PA12F1-PAE-WK-PHONE-NBR(2:3)    NUMERIC)   OR

               (NOT PA12F1-PAE-WK-PHONE-NBR(5:1)  = ")"    )   OR

               (NOT PA12F1-PAE-WK-PHONE-NBR(6:1)  = " "    )   OR

               (NOT PA12F1-PAE-WK-PHONE-NBR(7:3)    NUMERIC)   OR

               (NOT PA12F1-PAE-WK-PHONE-NBR(10:1) = "-"    )   OR

               (NOT PA12F1-PAE-WK-PHONE-NBR(11:4)   NUMERIC)   OR

               (NOT PA12F1-PAE-WK-PHONE-NBR(15:1) = " "    ))  


               MOVE 800                        TO CRT-ERROR-NBR


               GO TO PA12MS1-TRANSACTION-END



           IF ((NOT PA12F1-PAE-HM-PHONE-NBR       = WS-SPACES) AND

              ((NOT PA12F1-PAE-HM-PHONE-NBR(1:1)  = "("    )   OR

               (NOT PA12F1-PAE-HM-PHONE-NBR(2:3)    NUMERIC)   OR

               (NOT PA12F1-PAE-HM-PHONE-NBR(5:1)  = ")"    )   OR

               (NOT PA12F1-PAE-HM-PHONE-NBR(6:1)  = " "    )   OR

               (NOT PA12F1-PAE-HM-PHONE-NBR(7:3)    NUMERIC)   OR

               (NOT PA12F1-PAE-HM-PHONE-NBR(10:1) = "-"    )   OR

               (NOT PA12F1-PAE-HM-PHONE-NBR(11:4)   NUMERIC)   OR

               (NOT PA12F1-PAE-HM-PHONE-NBR(15:1) = " "    ))


               MOVE 800                        TO CRT-ERROR-NBR


               GO TO PA12MS1-TRANSACTION-END






One Final Advantage of User Exits

We chose to implement this edit as a User Exit rather than to use Design Studio because, quite simply, it was actually completed prior to the release of Design Studio. However, implementing User Exits vs. edits in Design Studio has an added benefit: User Exits, since they are part of the business logic, are invoked regardless of how the form is used: LID, Portal, Excel uploads, AGS calls, etc. By contrast, a Design Studio edit would only be applied via Portal.

  2. Reader Feedback )  
  In last month's issue (see, I shared my thoughts on CUE 2006.  Here are some of yours:    
“Some notes from CUE from my own perspective. Don't know if you had heard or noticed this stuff:
  • Heard during CUE: Major grumbling among the vendors about the split venue. It really cut down on foot traffic, so even though attendance was up, vendors talked to less people. (I personally got over to the Caribe Royale for only a few brief moments.)
  • In LSFS03 "Product Update: Web Services and SOA" Sunday 1:00-2:00 PM a number of Lawson managers were hanging around. The first time somebody said something about Tomcat, the question was quashed immediately with the comment something like, We have a session coming up where you can ask that kind of question. So in that session, LSFS02 "Focus Group: Lawson and Our Technical Platform Strategy" Sunday 2:30-3:30 PM, which was supposed to be a feedback session, the questions were tightly controlled. Nobody was allowed to speak their own mind. Instead, the questions were focused on Websphere and things like, What part of IBM do you like the most? My buddy and I were waiting for the trouble to break out, but since there was no opening made for open questions from the floor, nobody could bring up the question about Tomcat being eliminated.
  • The Lawson Manifesto is dead. It started in March, when Harry Debes recycled his letter of November 2005 and quoted a date of 400 days, even though the 500-day mark had been reached. It culminated at CUE where the Lawson Manifesto was not mentioned once in print or in person. After only 500 days, the Lawson Manifesto is gone. Therefore, all the Lawson Manifesto ever was was --- a sales gimmick. It looks like the phrase, "It's time", meant, like in an English pub, It's time to clear out!
I had the same impression of Harry's speech that you reported in the newsletter, that there was little new that was announced. (The drums, BTW, may be a fashion in trade shoes. Spencer Katt's eWeek column mentioned drums at another show.) I got the impression that most of the audience missed the point of Gladwell's keynote. I have heard it summarized as "use your gut" ; I would see it rather as a description of how informed, intuitive (Myers-Briggs N) people
make decisions. Myers-Briggs S types, who are most of the population, wouldn't understand this, and would think of it as simply using your gut. Gladwell also missed an opportunity to apply his point about having about the right amount of information to what we do in IT (instead of his insert-topical-reference-here mention of deciding what software vendor to use). We are, after all, in the role of providing information to decision makers.

The opening of the general session before Dean's speech included a bit of unintentional humor. As the displays counted down to the session start, Lawson played a song from the Chicago: "If you leave me now, you'll take away the biggest part of me. No, baby, please don't go." It's good to know that Lawson appreciates us so much, but why are they worried that we will leave them? Fortunately for Lawson, an informal survey suggests that I may be the only person who caught this.

The key CUE take-aways that I reported to my manager were:
  • Lawson continues to build upon open standards in its technology and is aware of, and plans to act on, important industry trends.  This mostly has benefits (staffing and training, support for third-party tools, easier integration, etc.) but also carries risks.
  • Specifically, Lawson plans to expose everything as a web service in Landmark, and to make them available as JSR 168 portlets (making it easier to integrate with other applications, such as an enterprise portal). Unfortunately, some of the applications most in need of updated technology (such as ESS) are last on the list for refactoring.
  • I learned much more about the Landmark development ecosystem. It's currently not as open to extension as I would like (it has a pattern that allows custom Java code to be incorporated in a program), but it seems like a good start, and I'm glad that Eclipse is the engine that Lawson chose for the development tools. To effectively use it will require some rethinking of the development process (and not just because of the claim that it will put development in the hands of the business analysts, which I don't entirely believe).
  • I was pleased to see that the sessions that I attended included a good number of people who seemed to know something about the technologies and standards that Lawson is building on, and were able to ask intelligent questions. It's a completely unscientific survey, but it reassures me that Lawson's clients will support them in the changes that they want to make.
“I attended CUE and it was good, I thought. This was my 4th CUE and I continue to feel progressively better about Lawson. It seems like they are doing a better job especially with the quality of their product. Hopefully that will continue.
As always, you're always welcome to share your thoughts--simply send me an email at
  3. Worthwhile Reading )  
  Hamstrung By Defective Data
Business information that's redundant, outdated, or flat-out wrong trips up organizations large and small--but there are fixes in the offing.
Information Week, May 8, 2006

How to Keep the Web from Becoming a Trap
Smart companies are taking their transition from EDI to the Internet slowly—to keep IT costs down and let suppliers’ and customers’ investments in technology catch up.
CIO Magazine, May 1, 2006


“The secret of getting ahead is getting started.
The secret of getting started is breaking your
complex overwhelming tasks into small manageable
tasks, and then starting on the first one.”

-- Mark Twain

Zero to $1 billion
A new study shows that companies that spurt from saplings to giants tend to share the same seven traits.
Fortune Small Business, May 2006

How to Divorce Your Technology Vendor
When deciding whether to change vendors, avoid getting stung while considering legal liability, service-level agreements, and support for soon-to-be legacy applications.
Infoworld, May 1, 2006
  4. Lawson Tips & Tricks )  
  Exporting Lawson Portal Form Help

"I'm building a documentation database about our Lawson applications, and I want to include some "form help" from various Lawson Portal forms. How do I get it?"

There are two ways you can do it:

1. You can use the LID/character-mode tool userdoc to generate a series of text files; you can script these commands and import the content into your database:

$ userdoc <productline> AR AR09.1 > AR09.1.txt

2. You can also use the IOS utility objprop.exe to generate HTML pages, which you can then import:


You would then capture the HTML output into your database:

Lawson uses objprop.exe's &OUT=XML option--combined with XML Transformation (XSLT)--to render the Lawson Portal "Form Help" pages.

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

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