The LawsonGuru Letter, brought to you by Decision Analytics  
   

December 2006

)
       
 

Click here to forward to a colleague

   
       
 

In this issue:
1. LSF 9: “Just an upgrade”...or Change Agent?
2. Lawson Design Studio, Part 1: What Is It?
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 https://www.danalytics.com. For subscription information, see the bottom of this message.  The LawsonGuru Letter is not affiliated with Lawson Software.

This month's "Quote of the Issue" is from Ed Bradley, who died this past month.  No story more encapsulated his energy and enthusiasm--as well as his utter hipness--than this one recounted by Bob Schieffer:

At the 1988 Republican National Convention in New Orleans, Schieffer remembers his two teenage daughters (CBS interns at the event) turning him down for a night out with dad.  "Susan said, `I'd love to, but Mr. Bradley is taking a group of us to see Little Feat,'" Shieffer said with a chuckle. "I didn't know who Little Feat was. It reminded me how totally out of the loop I was."

Ed Bradley was an inspiration to many and an icon of a generation.  He will be fondly remembered.

   
       
  1. LSF 9: “Just an upgrade”...or Change Agent? )  
       
  As clients become aware of the new features and benefits of Lawson System Foundation (LSF) 9.0, more prevalent becomes the question: “Should we really treat this as just another upgrade?”

Well, I used to think so, but now I’m not so sure. If you’ve been to any of Lawson’s recent briefings, you’ve no doubt seen a slide like this:




The more you understand the new 9.0 features and how they will impact your current environment; the biggest question will be “how do we get there?” The answer is that it’s not that simple. Lawson’s preferred way is for you to engage their consulting group to spend several days/weeks/months to “migrate” you over. There are also now a few certified upgrade partners, since Lawson simply does not have the resources to meet the demand. These projects require a scale of effort that is unparalleled in recent Lawson history (more complex than 7.x implementations and 8.x upgrades).

Wait a sec...didn’t Lawson’s slide just show Environment 8.0.3 -> LSF 9.0 as being an upgrade? Well no, it’s a migration—not an upgrade. Think about the difference between an upgrade and a migration. An upgrade is “in-place” on the same server (or perhaps a clone of your existing server). In other words, one moment you have 8.0.3, the next—voila--you have 9.0.

A migration—by comparison—is much like an upgrade, except that it is accomplished on a fresh server, just like a new install. You might copy bits and pieces of your environment, such as security classes and users, but for the most part you might be better off re-implementing. Re-implementing? Why on earth would I do that? This is supposed to be an upgrade!

Sure, you can treat it as “simply an upgrade”. I'm not saying it's seamless or that there won't be some pain. It doesn't have to be a full-blown reimplementation if you are staying on the same app version. But maybe it should be.

Let’s look at what’s changing:
  • Security – Admit it. You know you hate the limitations of LAUA security. You know you promised yourself that you’d “slowly transition” over to the new model. But you know that once you’ve upgraded/migrated, you’ll be working on other “higher priority” projects. You’ll never have that chance to go back and implement Lawson Security. Grasp this upgrade as your chance. Use LSF 9.0 as your change agent.


  • ProcessFlow / - Business Component Integrator - If you use ProcessFlow for anything beyond simple requisition approval, you will definitely be reviewing and updating your flows. And if you use BCI, you will be in for a pleasant surprise (and some rework), since you now use ProcessFlow Designer to create, maintain and manage your BCI procedures. With all of the new features in LawsonProcessFlow (SQL queries/updates, reading/writing files, etc.), this is your opportunity to re-architect that kludgey mess of cron jobs/shell scripts/user tokens, etc. you call “integration”. Again, use LSF 9.0 as your change agent.

  • Platform. OK, so it’s not changing, but maybe you want it to. One of Lawson’s biggest strengths is its platform-neutrality. You can change platforms easily (UNIX/Oracle to Windows/SQL or vice versa). But now there’s a new piece to the puzzle--DB2. Since DB2 is now bundled with Lawson, this is your opportunity to switch. If Lawson is your sole reason for having Oracle or SQL Server, why not switch to DB2? It’s essentially free (well, you have to pay for it as part of the upgrade, even if you’re not using it.) Use LSF 9.0 as your change agent.


  • Infrastructure. Are you prepared to tell your users that all their Process Flows, EDI translation maps, SmartNotifications, and MS Add-In queries are going to cleanly convert? What will happen to your 300 Crystal reports? If you’re migrating from Env 8.0.3 -> LSF 9.0 with the same app version, then yes, those things should translate, provided the connection info (server name, product line, userids, etc.) are ultimately the same. But maybe you want to change some of them. So: Product Line names will change. Server names will change. User names will change (you are going to be using LDAP now, right?). And, nothing will point correctly. You’ll have to remap all those process flows, reports, etc.

So while you may want this to be “just an upgrade”, start thinking of it as a re-implementation. Ever wish you could get a ‘do-over’? Ever wanted a chance to fix some of those things that you did wrong not-so-well last time? Well, use LSF as your opportunity. In other words: Use LSF 9 as your change agent.
   
     
  2. Lawson Design Studio, Part 1: What Is It? )  
       
  This month it’s time to kick off another LawsonGuru Letter article series. Last time we did this, it was a series on reporting—which ended up being comprised of over a dozen articles. This time, we’re going to take an in-depth look at Lawson Design Studio. The length of this series is still open-ended, and I’ll continue to add to it as time (and reader feedback, of course!) permits.

In the first couple of articles, the primary objective is to lay the groundwork. We will explore Lawson Design Studio: What it is, what you can do with it, where it fits and when you should use (and more importantly, should not use) it.

What is it and what can I do with it?

Simply put, Lawson Design Studio [LDS] is Lawson’s development tool for modifying Lawson Portal pages.  LDS is a browser-based drag and drop graphical development environment used to customize, extend and integrate with Lawson applications.

Lawson Design Studio includes:

  • UI Designer for modifying the content as well as—to a limited degree—the functionality of Lawson application forms. You can tailor the “look-and-feel” of your Lawson forms as well as streamline the forms, by:

    • Setting default values
    • Rearranging fields
    • Removing (hide) fields

  • Portal Page Designer for creating custom Lawson Portal pages. These pages can be composites of other Lawson forms or queries, or even non-Lawson web content. The content panes can be “connected” so that a change or navigation performed in one pane updates the content of another pane. For example, a list of customers could be displayed in one pane, and when the user selects one of the customers, the open invoices list displayed in the other pane would be updated.

  • Wizard Designer for creating step-by-step versions of Lawson forms so that occasionally-used forms can be documented for rarely-used forms (i.e. yearly functions) or as training guides for new Lawson users.

  • You use the API Builder and Scripting Environment to build Lawson AGS and DME calls for inclusion in your customized forms. You can also add/remove functionality (i.e. augment Lawson’s business logic) using JavaScript; Lawson incorporates their own unique classes into the browser document object model [DOM], which you can access programmatically via JavaScript.

No, you can’t customize Self-Service applications with Lawson Design Studio

Before I forget, one question that I get a lot: Is it possible to customize Self-Service forms (Employee Self-Service & Manager Self-Service) using Design Studio? No--those applications are “hand-coded” HTML and JavaScript.

What Exactly is a Design Studio Customization?

In the days before Portal and Design Studio, if you wanted to customize an entry screen and limit the fields that were displayed, your best alternative was to use Quick Paint to create the custom form, and then further tweak the screen layout and COBOL logic. Now there’s no need to “reinvent the wheel”—Lawson Design Studio gives you the tools you need to “tweak” your user’s Lawson experience—in a fully supported way, and without re-writing the entire application form.

Once you start to use it, you’ll think of more and more ways in which to customize your forms. In fact, this creates a serious dilemma. Each time you customize a form using Design Studio, you may think that you’re streamlining the application, when in fact you are actually adding a level of complexity to the system--as well as to your support infrastructure--and Lawson's support as well.

What happens when Lawson changes the form on which your customized form is based? Your Design Studio form breaks. What’s even worse for Lawson? The ugly fact about Design Studio is that Lawson now potentially has a custom version for each and every form—for each and every client! Perhaps you used Design Studio so that every occurrence of “Process Level” is called “Operating Unit” in your organization. You have to decode that nomenclature each time you open a support case. And Lawson—by giving you the ability to customize your screens—now has to deal with that as a support issue.

So, be judicious, and know where to draw the line. Which leads to the next topic...

How Should You Not Use It?

Lawson often oversells Design Studio as the “solution” for any gaps that prospects have in their software selection. How many times have you heard: “Oh, you can handle that with a Lawson Design Studio modification”? I have taught a number of sessions and worked with clients on both COBOL/user exit development as well Design Studio JavaScript. This is how I classify Lawson customizations:


My first bit of advice for clients considering Lawson Design Studio modifications is to re-think the idea of using Design Studio to implement any business logic (i.e. edits/validation, etc.); the reason is two-fold:

1) The logic is only applied when the user interacts with the form via Design Studio. If the form is accessed via ProcessFlow AGS, Excel addins, 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.

2) The second reason is more a pet peeve of mine, so allow me to step up on my soapbox. Each time Lawson has taken a new direction for the presentation layer of its products--and we've been thru several (OCS/Javascript, COM+, Design Studio), etc—LAWSON HAS NOT PROVIDED A MIGRATION PATH. Therefore, by coding your customizations in Design Studio, EXPECT THAT ANY INVESTMENT YOU MAKE MAY BE LOST. If you make them in COBOL/user exits, they will survive each change in the presentation layer...

Next month we’ll discuss LDS, where it fits in the Lawson architecture, and when you should use (and more importantly, should not use) it.

   
       
  3. Worthwhile Reading )  
       
  Getting a Head Start on ITIL

- QUOTE OF THE ISSUE –

“Be prepared, work hard, and hope for a little luck.
Recognize that the harder you work and the better
prepared you are, the more luck you might have.”

-- Ed Bradley

IT can no longer deliver services based on technology fiefdoms or silos as it has in the past. This practice is dead. Organizations that refuse to accept it will either dissolve, get outsourced, or end up being controlled by external entities such as CFOs, business units, and so on. IT needs to rethink the ways in which it contributes to the business -- and how it manages itself.

Infoworld, October 23, 2006
http://www.infoworld.com/article/06/10/20/43FEitil_1.html

Software-As-A-Service Faces Its Next Big Test
Workday, a startup founded by tech industry veteran Dave Duffield,
introduces ERP applications as on-demand services.
Information Week, November 6, 2006
http://www.informationweek.com/story/showArticle.jhtml?articleID=193501764

Whose Business Is Process Improvement Anyway?
Business and IT are locked in a struggle over who controls the management of business process improvements. CIOs who seek to lead the charge have their work cut out for them.
CIO Magazine, November 1, 2006
http://www.cio.com/archive/110106/fea_bpi.html

A Perfect Fit
The demand for finance talent may be soaring, but candidates refuse to settle for just any job.
CFO Magazine, November 2006
http://www.cfo.com/article.cfm/8099601/c_8102077
   
       
  4. Lawson Tips & Tricks )  
  Using Multiple dbcopy Processes

Ron shares a tip that I think is pretty cool.  He wrote a perl script that launches multiple concurrent dbcopy processes.  That way, your database copy takes only as long as the process for copying your largest table.

  #!/usr/bin/perl
our $SOURCE_PL = "dev80old";
our $TARGET_PL = "dev80new";
my $MAX_CHILDREN = 6; # number of concurrent Dbcopys to run
my $tables = &TablesLargestToSmallest;

# Launches an initial MAX_CHILDREN, then as each complete launches a new one
my $i = 1;
foreach ( @$tables ) {
    if ( $i++ > $MAX_CHILDREN ) { wait }
    if ( not my $pid = fork ) {
        &Dbcopy($_);
        exit; # DONT FORGET THIS
    }
}
# Cleanup Processes
while ( wait != -1 ) {}
exit 0;

sub Dbcopy() {
    my $table = shift;
    print "dbcopy -d $SOURCE_PL $TARGET_PL $table\n";
    system ( "dbcopy -d $SOURCE_PL $TARGET_PL $table" );
    return;
}

sub TablesLargestToSmallest() {
    my %src_counts;
    my @tables;
    print "Getting record counts...";
    open COUNTS, "count $SOURCE_PL |";
    while ( ) {
        chomp;
        my ($table, $count);
        ( $table, $count ) = split;
        if ( $count > 0 ) {
            $src_counts{"$table"} = $count;
        }
    }
    close COUNTS;
    print "done\n";
    @tables = sort { $src_counts{$b} <=> $src_counts{$a} } ( keys(%src_counts) );
    return \@tables;
}
 
   
       
     
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 https://www.danalytics.com for more information.