Your install is successful, but when you log on to the BSI Interface (Screen Print #1) you receive an error (Error Message. Exception is: org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Login failed for user ‘tf10’. ClientConnectionId:f0509232-la4c-4d22-b118-785e9ba8eee5). See Screen Print #2

You will receive this error if your SQL database is configured with a Named Instance. The Named Instance should be configured with a static port. You should not use the default port (1433) when installing the BSI Client even though your ODBC will connect successfully with the default port. Please see article on assigning a static port for SQL Server named instance: (https://blogs.msdn.microsoft.com/arvindsh/2012/09/08/how-to-assign-a-static-port-to-a-sql-server-named-instance-and-avoid-a-common-pitfall/)

Screen Print #1

Troubleshooting BSI Database Connection during Install-1

 

Screen Print #2

Troubleshooting BSI Database Connection during Install-2

Lawson programs, especially batch jobs, can sometimes take hours to complete. In rare instances, a badly written 4GL batch job can even take days to complete depending on the number of records it has to process and how it goes about doing so. Depending on your skill set, you may be able to optimize the code directly and use a debugger to find out how to speed things up. But if you want some statistics about what the program is doing and a quick shortcut, then there’s a utility for that.

The utility is actually several different utilities wrapped into one.

dbadmin utility to set some parameters. The main parameter you want to set is the TIMESTATS parameter. The timestats function is activated using the dbadmin utility.

Before you go changing stuff, to show current settings, run ‘dbadmin get’ from a LID command prompt or a qsh command prompt in System i.

#Example:
dbadmin get
Current Value for REUSE=ON
Current Value for DEBUG=OFF
Current Value for DBAPIERRORS=ON
Current Value for TIMESTATS=OFF
Current Value for USERFILTER=
Current Value for PROGRAMFILTER=
Current Value for DATAREAFILTER=
Current Value for TIMESTATSDIR=/tmp
Current Value for IDLETIME=1

Save this off for future reference.

#To enable timestats, run the following commands:

dbadmin set timestats on
dbadmin set programfilter programcode   (optional, specify a program code. e.g. AP175.  The default is all programs)
dbadmin set timestatsdir pathname  (optional, ex. /home/username or C:\timestats.  If not specified, stats files are created in /tmp or %TMPDIR% for Windows)
dbadmin set dataareafilter productline  (optional, specify a productline name.  The default is all productlines)
dbadmin set userfilter username   (optional, the default is all users)
dbadmin set reuse off

#Clear the active database drivers so that the changes become effective
dbadmin idleall
tmcontrol -rp productline programcode  (For online programs only)

#Run ‘dbadmin get’ after setting the options to check that the desired options are enabled.

#After should look like this:

Current Value for REUSE=OFF
Current Value for DEBUG=OFF
Current Value for DBAPIERRORS=ON
Current Value for TIMESTATS=ON
Current Value for USERFILTER=
Current Value for PROGRAMFILTER=HR211
Current Value for DATAREAFILTER=test
Current Value for TIMESTATSDIR=d:\lawson\temp\timstats
Current Value for IDLETIME=1

Now you’re ready to submit your job again. Once the job is submitted, you should be able to see the stat files get created in the timestatsdir directory.
Wait until the job has completed before viewing the file(s).

You can view the files after the job is complete but they aren’t all that easy to understand. To make them easier to digest:

Go to the stats directory and run:
analyze_stats -o > stats.out

You’ll notice that you now have two new files in this directory.

stats.out and a cfg file.

The stats.out file will give you a really great view of what’s going on with your program while the cfg file can be place in the xxsrc directory of your code and compiled with the program to optimize it based on the timestats results.

After you’re done:

To turn disable timestats and re-enable driver re-use:

dbadmin set timestats off
dbadmin set reuse on

timestat

Note: Though possible, I would not recommend using jobdump and jobload from one version of Lawson to another as fields may change. Use at your own risk.

 

For this article, we will be doing jobdump and jobload in v10 between Prod and Test ProductLine.

Here are the flags for jobdump:

How-to-transfer-a-users-jobs-from-one-productline-to-another-1

As you can see above, the flags give plenty of flexibility to specify what to dump. For this tutorial, we will be dumping all jobs for a single user from v10 Prod to v10 Test.

Step 1: First login to Lawson Interface Desktop, we’re logging into our v10 Prod server.

jobdump -d -o Job -v UserName LawsonPOBatch po_jobs.dmp

So we are essentially dumping all jobs –o Job for user –v UserName <YourUsersName> to a file called po_jobs.dmp that will be created in our current directory D:\lawson\temp\jobdump

We are dumping all jobs under our user: LawsonPOBatch. Make sure your user(s) exists in both ProductLines already.

Step 2: Transfer over your_dump_file.dmp file to other server via FTP etc.

Step 3: Login to your other servers productline, for us it will be v10 Test. Navigate through LID to your_dump_file.dmp file. This for us is: po_jobs.dmp

Here are the flags for jobload:

How-to-transfer-a-users-jobs-from-one-productline-to-another-2

Since we dumped from Prod, we would be loading to Test. If it’s for the same user, no need to specify the username. If migrating to a new user with a different name, you can use a –m <source_user> <target_user>

We are transferring to the same user that is in both PROD and TEST so we don’t specify this.

Since we are transferring jobs from PROD to TEST you could specify this with –m ProductLine <SOURCE_PRODLINE> <TARGET_PRODLINE> (Must be in caps.)

Step 4: Run jobload in preview mode (without -c)

jobload -o Job -m ProductLine PROD TEST po_jobs.dmp

Or you could simply go into the .dmp file and change all instances of PROD to TEST (or whatever the name of your ProductLine is)

How-to-transfer-a-users-jobs-from-one-productline-to-another-3

Then you could simply run

jobload -o Job po_jobs.dmp

This will run in preview mode. Run until you have no errors.

Step 5: Run in commit mode.

jobload -c -o Job -m ProductLine PROD TEST po_jobs.dmp

or

jobload -c -o Job po_jobs.dmp

if you edited the .dmp file manually.

If it was successful you’ll see the jobs being added.

Login to Lawson portal and verify those jobs got transferred over from that user.

Done!

File Channels are a feature in IPA that is similar to the ScanFile Client feature in ProcessFlow. A File Channel scans a directory periodically for files which will kick off processes in IPA. The files and processes are configured in File Receivers. Here is how to set them up.

How to Set up File Channels

  1. Log in to Rich Client Run A Process-1
  2. The canvas is now open. Look in the upper left corner and make sure you are pointing to the prod or test data area (not gen) Run A Process-3
  3. In the upper right corner, click “Start > Applications > Process Server Administrator > Administration > Channels Administrator”
    Create a File Channel in IPA-3

    1. At this point, you can click, HOLD, and drag the “Channels Administrator” link to the canvas. That way, it will create a shortcut on the canvas. Create a File Channel in IPA-4
  4. Once you are in Channels Administrator, click on the File Channels tab
  5. Click Actions > Create or click the create icon Run A Process-6
  6. Overview Tab
    Create a File Channel in IPA-6

    1. Enter a meaningful channel name
    2. Enter a description for the channel
    3. Check “Is Enabled”
      1. This can be unchecked when the file scanner is not needed
    4. Choose the channel type
      1. Local points to a directory on the local server
      2. Remote requires FTP to be enabled on the local server and the remote server
    5. Enter the directory that will be scanned by the file channel
    6. Choose whether to match case sensitivity on the file
    7. Enter an error file directory
      1. This is where files will go if there is an error in the scanning (NOT an error in the flow)
    8. Enter an in-progress file directory
      1. This is where files will go once they are successfully scanned
    9. Choose a scan interval (in minutes)
  7. Click the Save icon Create a File Channel in IPA-7

How to Set up File Channel Receivers

  1. Once you have created your File Channel, you must now set up the File Channel Receivers, which will configure the files that are picked up during a scan
  2. Make sure your File Channel is deactivated
    1. File Receivers cannot be created or modified if the File Channel is active
    2. Go to the File Channels screen
    3. Right click on the File Channel for which you are adding a receiver
    4. Select “Deactivate” Create a File Channel in IPA-8
  3. Open your new File Channel and navigate to the File Channel Receivers tab
  4. Click Actions > Create or click the create icon Run A Process-6
  5. Enter the Receiver details
    Create a File Channel in IPA-10
  1. Enter a name for the Receiver
  2. Enter a description
  3. Choose the file name for which the receiver will be scanning
    1. You can use regular expressions here
  4. Select the process that should begin when the file is found in a scan
  5. Choose the Startup Type
  • Click the Save icon Create a File Channel in IPA-7
  • Be sure to reactivate your File Channel so that it can begin scanning for your files
  1. Open Infor Rich Client Run A Process-1
  2. At the login prompt, enter the correct username and password
    Run A Process-2
  3. The canvas is now open. Look in the upper left corner and make sure you are pointing to the prod or test data area (not gen) Run A Process-3
  4. In the upper right corner, click “Start > Applications > Process Server Administrator > Scheduling > By Process Definition”
    Run A Process-4

    1. At this point, you can click, HOLD, and drag the “By Process Definition” link to the canvas. That way, it will create a shortcut on the canvas. Run A Process-5
  5. Once you are in User Defined Processes, you should see a list of Process Triggers that have been set up
  6. Locate the process that you wish to run
    1. If you do not see the process you wish to run, you must create a new trigger for it.
    2. Click the “New” icon Run A Process-6
    3. Select the Process Name you wish to run
      Run A Process-7
    1. Give the trigger a “Work Title” (this is a required field for the trigger to function)
      Run A Process-8
    1. Save the trigger
    2. Close this screen
      Run A Process-9
  1. Right click on the process and select “Start” Run A Process-10
  2. To check the status of the process, open the work units screen at “Start > Applications > Process Server Administrator > Workunits > Workunits”
    Run A Process-11
  3. This presents a list of workunits. Choose the workunit corresponding to the process you just ran, and double click to open the information screen
    1. Here, you can see any error messages and view the log
      Run A Process-12

You’re about to make some changes but want to create a backup for LDAP just in case there are any mistakes.

Let’s get started:

First thing we need to do is remote into the v10 server you want to backup LDAP.

Once in, create a “temp” directory somewhere in Lawson or lsfprod. For us, this will be Lawson\temp\<todays date>

Run CMD.exe as administrator:

How to Backup LDAP in v10 Lawson-1

Switch to drive Lawson is on, for us this is the D:\

Now type dsdbutil and hit enter, then type list instances and hit enter to get a list of instances.

How to Backup LDAP in v10 Lawson-2

Once you know what instance you want, type Activate instance <Instance Name>

This will set the instance name to backup.

Type ifm and press enter. To create the backup, type create full <directory output name>

Make sure there are no spaces in your directory output name.

Example:

create full D:\lawson\temp\20160531

Now check that directory and there should be a .dit file.

To restore an LDAP backup, turn off IBM Services in the correct order.

This should be:

  1. IBM Websphere app. server v8.5 Infot10Prod-app.
  2. IBM Websphere app. server v8.5 Node Agent
  3. IBM Cellmanager02

Turn off Prodinfor10ADLDS service (or similar name)

Then go to the <Drive>\Microsoft ADAM\ProdInfor10ADLDS\data directory and replace the .dit file with your backup (back up the existing .dit file just in case).

Start those IBM services back up in proper order along with Prodinfor10ADLDS.

System Preparation

  1. Get the latest BSI installation file and save to the Infor downloads folder on the server
  2. Run the executable to unpackage the installation files

Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-1
Database Preparation

Create the TF10 database

  1. Open SQL Server Management Studio
  2. Create TF10_10X database
    1. Right click on databases > New
    2. Set the file locations under General
      Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-2
    1. Options Menu
      1. Set collation to Latin1_General_Bin
      2. Recovery model = Full
      3. Compatibility Level = SQL Server 2008
      4. Keep the other defaults

Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-3
Create the TF10 user

  1. In SSMS, right click on the main Security server and select “new Login”
  2. Login name = tf10
  3. Use SQL Server authentication
    1. Password is usually tf10 unless the client request a different password
  4. Default Database = (your desired database name)
  5. Click OK
    Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-4
  1. Add the user to your database
    1. Expand the database in SSMS
    2. Expand the security folder
    3. Right click on Users > New
    4. User name = (tax factory user)
    5. Login name = (tax factory user)
    6. Default schema = leave blank for now
    7. Click Ok

Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-5
BSI SQL Scripts

  1. Locate the SQL scripts within the BSI installation files (ServerInstall/SQL)
    1. crtschma.sql
      1. Creates the tax factory schema
    2. tf10sqv.sql
      1. Creates the table structure for tax factory
    3. noessqv.sql
      1. Resets BSI TaxFactory extended security to off

Adjust Database Permissions

Adjust db permissions now that schema has been created:

  1. Edit the database user on the new database
  2. Make the new schema the Default schema
  3. Click OK
    Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-6
  1. Under Owned Schemas, select the new schema
    Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-7
  1. Under “Membership”, select db_owner
    Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-8
  1. Click OK

System Configuration

Set up ODBC

  1. Open the ODBC (64-bit) tool
  2. Go to the System DSN tab and click “Add”
    Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-9
  3. Driver is SQL Server
    Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-10
  1. Data source name = (meaningful name)
  2. Description = (meaningful description)
  3. Server = client’s database server name (SQL Server where you installed the database)
    Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-11
  1. Use SQL Server authentication
  2. Provide the login credentials
    Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-12
  1. Keep the defaults on the rest of the screens
    Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-13Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-14
  1. Test the data source
    Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-15Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-16Environment Variables
  1. Create dataset environment variable
  2. Create the TF10_CONNECT_STRING environment variable using the login credentials for the ODBC data source you just created
    Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-17Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-18
  1. Reboot for env variables to take effect

Copy application files

  1. Copy new tf10api.dll from the installation files (ServerInstall\server) to Lawson application server (C:\Windows\System32 & C:\Windows\System)
    Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-19

Installation

Install Client Application

  1. Obtain BSI password needed for TF10 install from BSI Customer Services
  2. Install TF10 – TF10ClientInstall.exe on the BSI application server (adding a new BSI instance such as test, qa, test, etc)
    Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-20
    Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-21
    Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-22(password obtained from BSI customer services)
    Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-23
    Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-24
    1. If prompted to install Web Server, refer to Apache Tomcat installation instructions
      Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-25
  1. Select the Tomcat installation directory (will most likely default)
    Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-26
  1. Select the JRE configuration file (will most likely default)
    Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-27
  1. Choose the XML server corresponding to the system configuration
  2. Select a directory for the server base
    Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-28
  1. Choose Install
    Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-29
  1. Enter the corresponding system information and click Next
    1. Clicking on the MS SQL Server ODBC configuraiton will prompt the system to ass if you use Windows Authentication. Select “No”.
      Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-30
      Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-31
      Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-32
  1. Can install up to 3 test instances on same server, but each one would have different WEB Server Service Port
  2. Repeat this section for the remaining test instances
  3. When you are finished with all instances, select the environments to be installed and click “FINISH”
    Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-33
    Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-34

Test the install

  1. Open <server>:<port> for the initial test
    Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-35
  1. Open the custom site that you installed and log in
  2. Check the System tools
    1. Regulatory bulletins should be 0
    2. Cyclic should be blank
  3. Log into server:port/ef10x/PRD
    1. Where “x” is the cyclical release and “PRD” is the environment
      Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-36

Cyclical Data Refresh

  1. Back up new 10x database
  2. Back up the current 901 BSI database
  3. Restore the 901 data to the 10x database to preserve all the tax updates.
    1. NOTE: During db restore, be SURE to confirm the target db file names, will probably need to change.
    2. Kill the bsi services running on bsi xml server, then sp_who2 to kill any remaining processes
    3. Take db offline
      Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-37Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-38
    1. Restore the database
    2. Restore of db disconnects users
      1. Assign the tax factory and db_owner schemas to dbo
      2. Delete and recreate tax factory user following instructions above
        Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-39
        Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-40
  1. Log into the BSI site and verify that the Cyclical update inofrmation is now populated

Install Machine Key

As INFO: table containing the BSI machine key:
Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-41

  1. Install Machine Key – if/when we have it
    1. Generate from BSI site, Maintenance, Maintain Machine Key
    2. Bring up web client, System Tools, Database Tools, Install Machine Key
  2. Can skip the load regulatory bulletins, cyclic files, etc, since DB restore was performed

PRTFX

  1. Open LID
  2. Type in msgmnt
  3. Update Lawson PRTFX Message Definition, (change bottom TF90 to TF10)
    Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-42
  1. Compile the prtf program, (needed after changing the TF90 to TF10 in screen above)
    Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-43
  1. Test with LID
    1. Click Refresh Version
    2. Click “test TaxFactory US”
      1. Will generate a licensing error if the machine key isn’t installed yet
        Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-44
  1. New jobs should start reflecting in BSI TaxFactory Product in Message Viewer

Apache Tomcat Installation

  1. Download the required installation files from the Apache website
    Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-45
  1. Save the executable
    Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-46
  1. Run the executable
    Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-47
    Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-48
  1. Customize the Windows service name
    Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-49
  2. Select the JRE path (will likely default)Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-50
  3. Choose the install locationInstalling BSI TaxFactory 10 for Your New Lawson 10 Environment-51
  4. After the installation is complete, change the service to startup type Automatic
    Installing BSI TaxFactory 10 for Your New Lawson 10 Environment-52

Those of you who know me also know that I’ve been a business application consultant for the past 16+ years. In that time, I’ve helped over 400 companies manage their business applications and have logged over 50,000 hours of billable time to clients. As much as I try to be a good steward of my client’s project budget, I can’t help them when they don’t want to be helped. Over the years I have seen so much time go wasted and many projects go over budget, all of which could have been prevented by taking a few measures early on. I thought I would put together some points to help the people in charge avoid some of the pitfalls and take advantage of my years of experience seeing first-hand how projects can be wasteful.

I’m going to list these points in no particular order below:

  1. Travel vs. Remote: Do you really need your consultants to be on site? Do you conceive that somehow there’s a difference between him being in the same building or several hundred miles away? Travel is not only expensive from a hard cost perspective but also from a time perspective. The hard cost of travel for most of the guys I have managed over the years is around $2000/week. That’s Over $100k per year per consultant. You can hire a fulltime employee for that much. Not only that, travel time eats into project time and cuts down on productivity tremendously. The average traveling consultant is on the road 12-16 hours per week (between booking, driving, airport time, air travel time, hotel…). That’s 12-16 hours they could be spending on the project to get it done faster. That’s over 800 hours per year just wasted. Not to mention they’re now less happy to work for you because they’re away from their family, their warm bed, their home, and have to spend several hours a week dealing with travel related stress. The true cost of a traveling consultant is several times the actual travel cost. So if you can help it, arrange for your consultants to work remotely.
  2. VPN: Working via a remote connection has gotten so much easier over the past decade. Nowadays I can work on any customer’s private network with a quick click. But there are several dozen flavors of VPN software and they all vary from place to place. Some make life easier and some make life miserable for your consultants resulting in several of hours of wasted time each week. Here are some of the common ones I have to use each week and how I feel about them:
    1. VMware Horizon View Client – I absolutely love this method. I basically get a VM on the client’s network that I can access with a click of an icon. From there I can jump to whatever machine I want and get my work done. What I love about it is it doesn’t mess with my local internet connection at all and I can be logged into several different clients at once with this client.
    2. Citrix Receiver – This is one of my least favorite things to use. Not only is it typically painfully slow, it’s also very confusing and it requires several bits and pieces to be installed. And I’m sure you can set good user/password policies but most of the time it seems I have to reset my credentials way too often, resulting in support calls and several hours can be burned this way. I’m being generous with 2 stars. 
    3. Cisco AnyConnect – I don’t really like client VPNs in general but the Cisco AnyConnect VPN works really well. If set up correctly on the server side, it can be really solid and never drops off. Only problem with client VPN software like this is you can only log onto one client at a time which is pretty badly limiting when you have multiple accounts to maintain. 
    4. GlobalProtect (by Palo Alto Networks) – This one seems to be okay but somewhat finicky. For some reason I can’t connect to it using my Wi-Fi and I have to be hardwired to get it to work. Although I’m confident this is just an issue on my side, I haven’t had that problem with others software so … And again, having to install a local client prevents me from logging into other client’s which is a negative.
    5. SecureLink – This thing has wasted so much of my time over the years. I hate it for so many reasons. For one it’s Java based and super confusing and picky. I can only get it to work from Internet Explorer and even then I can’t seem to control the resolution of the RDP session or the login credentials leading to several issues. I give this one 2 of 5 stars. 
    6. F5 Networks SSL VPN – This is a pretty good way to go and it seems to work well until it doesn’t. But overall no issues. Really nice because there’s nothing to install client side and it’s SSL only which leaves me intact to work on other stuff. 
    7. Juniper Networks SSL VPN – Another relatively nice VPN application that allows me to log in and get work done relatively quickly but the fact that it requires a local install and several versions makes it difficult to work with and get right. But overall it works well so I’m giving it 3 stars.
  3. Security – This is a touchy subject. Most companies these days would rather err on the side of caution and throw money into a proverbial furnace rather than open up security any wider than the minimum allowable to let you get your work done. That’s all fine and good until it starts to be wasteful. Case in point, the ability to do ftp. One of the first things we typically have to do as a part of an install of Lawson is download a few GB of software. Well, most of the sites we download from use FTP as their transfer protocol. If the customer has the ftp port completely shut off then we have to download several GB into a local machine first, and then upload it to the server over a super slow VPN connection. What should take an hour can now take days to complete. This is just one example of security measures that don’t make much sense. FTP on its face is no more unsecure than HTTP but security consultants are quick to recommend the port be blocked. Mind you, we’re not talking about transferring sensitive information, this is just software downloads. In my experience, unnecessary security measures can hinder progress and efficiency by as much as 30-40% depending on the project and the restrictions.
  4. Project management and issue tracking software – I have spent a lot of time with every software and every methodology on the market. In the past 16+ years the best methodology for actually getting work done has turned out to be Agile Scrum. There are several dozen applications that can help with managing a project and they all work well if you use them well. But please use them well and hold everyone accountable. Invest in something like Pivotal Tracker, Asana, Trello or Jira and just stick to it and make sure everyone is using it correctly. There is no need to ask me for a status report when these tools are being used, That’s a huge waste of time that no one ever reads. Keeping track of issues, features, and bugs any other way in today’s world should be punishable by termination. We use a combination of JIRA and Trello at Nogalis depending on whether the project requires client interaction or not. We love both tools equally. 
  5. A solid single point of contact – More than everything else I’ve mentioned above, this one has probably saved the most amount of time. When clients appoint someone to work as my single point of contact, things just move a lot faster. This is important when dealing with access issues, change control decisions, user testing, documentation, getting consensus from upper management. When there’s a single point of contact we can interface with who knows the organization well, we don’t have to email a group of people or get on the phone for hours trying to figure out how to get a 5-minute task done. So assign a competent single point of contact to work with your consultants and make sure he/she has a bit of autonomy to make easy decisions. The companion point here is about putting too many people in charge. If I have to answer to more than one person, then I have to explain everything to two people, and ask permission from two people, and get feedback from two people. That’s double the time for half the productivity.
  6. Access – A lot of my time is wasted because I don’t have access. I would easily sign whatever document you want me to sign and give you whatever guarantees you need that I won’t do what I’m not supposed to. The way I see it, if you don’t trust me, you shouldn’t have hired me. When I don’t have proper access, I have to come up with alternative ways to get things done. That means making calls, getting others involved, sending emails, and talking to your support line or just compromising and doing things the unintended way. Just give me the access I asked for to get the job done and then remove it when I’m done with the job. You’ll save yourself a ton of money that way.
  7. Tools of the trade – If you’re dealing with consultants, chances are you’re paying $100-$300/hour for the work being done. It may be a good idea to find out what tools they prefer to work with and purchase the tools ahead of time for them. I use a text editor called EditPlus. It’s like $30. But it can save me easily two hours of work each day vs an editor I don’t have experience with. You do the math. (Also, give me enough admin privileges to install it)
  8. A clear SOW – Before starting any substantial project, your first goal should be to determine exactly what everyone is working on. Taking the time to define roles and responsibilities well ahead of time can save you tremendous amount of wasted time. I recall my first project as an independent consultant. I showed up at the client site in New Hampshire eager to work, but no one knew what I was supposed to work on for the first two weeks. So I just sat around and bugged people for a response. This was before Facebook ;). Some of the PM tools I mentioned above can ensure you never waste your resources this way and be prepared for them when then start.

There are probably dozens of other tips I could give you to help save thousands of dollars a year on your consulting costs but the above should be a good start. If you have other suggestions please feel free to leave them in the comment section below.

From time to time you’ll either develop a custom cobol program in test and/or possibly upgrade a client from one version to another – meaning you’ll need to transfer all custom cobol programs.

Assuming you already know the custom programs that need to be transferred over, we need to check if they have library definitions.

Step 1:
Through LID and explorer, navigate to the custom programs main directory folder (found in %lawdir%/<product line>/<SystemcodeSRC>)
For this example we have a custom BN Screen called ZB220 in our %lawdir%/dev/bnsrc directory.

Migrating custom Cobol Programs from Environment to Environment

Go to the pdlib and wslib folders in same directory as custom programs:

Migrating custom Cobol Programs from Environment to Environment_2

Within those folders are library definition files that should start with a Z and end with either a PD or WS depending on what library you’re looking at.

Example of the PD library:

Migrating custom Cobol Programs from Environment to Environment_3

Now we need to dump these libraries and load them in new environment:
libdump <prodline> ZCALCPD.dmp ZCALCPD >> This dumps a file called ZCALCWS.dmp in whatever directory you’re currently in.

Now copy that ZCALCPD.dmp to the system you’re migrating it to and run a libload:
libload ZCALCPD.dmp <prodline>
Do this for the rest of the library definition files.

Now we need to migrate the actual ZB220 programs.
Make sure you’re in the programs main directory, for us this is %lawdir%/dev/bnsrc
Run a pgmdump:
pgmdump <prodline> BN ZB220.dmp ZB220

Now lets copy all ZB220 files over to our other environment so we could load them in:
cp %LAWDIR%/<prodline>/bnsrc/ZB220* \\<your other server>\<d$>\lawson\law\<prodline>\bnsrc
Open a second LID session and go to your 2nd servers main directory where we transferred the ZB220 files.
Run the pgmload command:
pgmload ZB220.dmp <prodline>

Now compile:
qcompile <prodline> BN ZB220
Wait 10-20 seconds to compile and lets now check for errors:
led <prodline> ZB220
Press F or G to check error logs, if errors a window will popup. If there are no errors, you’re done!

Not much has changed in this version of Lawson when it comes to AGS and DME. You can still use them directly whenever you doubt your security access or if you just want to get a sanity check. I have created this article to provide you a quick reference on how they should be run:

AGS:
To add a Nogalis Currency code:
https://<your server>/servlet/Router/Transaction/Erp?_PDL=TEST&_TKN=CU01.1&_EVT=ADD&_f1=A&_f2=NOG&_f3=Nogalis
To delete the Nogalis Currency code
https://<your server>/servlet/Router/Transaction/Erp?_PDL=TEST&_TKN=CU01.1&_EVT=CHG&_f1=D&_f2=NOG&_f3=Nogalis
DME:
To list all currency codes
https://<your server>/servlet/Router/Data/Erp?PROD=TEST&FILE=CUCODES
All of the above examples will need to be modified with your server name and your productline. In the above cases, the TEST productline was used.