Description:

Error when accessing a form in Lawson Portal
” An Error occurred outside of IOS while accessing Lawson Security” then “No Programs or bookmarks were found for ‘<token>‘.”

You may find this stack trace in the lase_server_x_x.log and ios.log files:

Stack Trace : com.lawson.lawsec.author.runtime.LawsonSecurityException:Exception while checking security on token <FIELD-NAME> for user <username>. Message: org.mozilla.javascript.EcmaError: ReferenceError: “MISSING” is not defined. (<RuleAttribute>#1)
Stack Trace : org.mozilla.javascript.EcmaError: ReferenceError: “MISSING” is not defined. (<RuleAttribute>#1)
 

Resolution:

This message in the ios.log file indicates the security server (LASE process that runs) lost its connection to the ldap instance where the rules are stored for Lawson Security.

Run a User Security Report for the application profile in question. Within that report, look for the word MISSING on the right hand side of the report where the ruleText is listed.
Most of the time, when this error is presented, you can use the Lawson Security Administrator (LSA) tool to fix the issue without doing a full restart of the Lawson related services.

If you do see the word MISSING, do the following from within the LSA tool:

  1. Click on “Server Management”
  2. Click on “Clear Cache”
  3. Go open a brand new browser session.
  4. Log into Infor Lawson for Portal as a “Portal Administrator” and run the “Clear IOS Cache” option.
  5. Ask one of the users to open a new browser session, not a new TAB within an existing browser, then duplicate the issue.

This article will demonstrate how to clear out a Lawson system so that you can start a completely fresh compile of the full productline.

First, open a command line utility with the Lawson environment variables set.  Then, navigate to LAWDIR\<pdl>.

Next, run the following command: rm -rf on the following directories (for visual reference, look at the screenshot below and make sure that your screen matches all of the commands):

  • obj\*
  • map\default\*
  • map\intmap\*
  • int\*
  • *src\int\wslib\*
  • *src\int\pdlib\*
  • sdlib\*

Finally, run the command combcmp <pdl>.  If everything was run correctly, then this will recompile every program in the productline and create fresh compiled code.

 

If you need to update Lawson database tables to match custom form field changes, follow these steps:

 

First update your .scr forms, kndef, skndef fields if creating new columns. Updated your .sr file to include any additional fields if needed.

Then in dbdef <productline>

F6 (Define) >> Files and update the database table names

Once done, follow these procedures:

You can run a bldddbdict <productline>

Then dbreorg -l <productline> to see affected tables.

Then dbreorg <productline> to complete the dbreorg.

NOTE: If DBReorg fails, make sure websphere apps are down and java processes are not running, try and restart server then perform dbreorg again if needed.

Qcompile your file and clear cache/ios cache, then test changes.

If you are getting a connection timeout when trying to run certain nodes in IPA, it could be due to your firewall blocking port.

Look for the following error message in your work unit log:

Failed with error com.lawson.bpm.db.model.helper.LawsonDBException: java.rmi.ConnectException: Connection refused to host: <ip address>; nested exception is:

java.net.ConnectException: Connection timed out: connect

 

RMI expects to work over the ephemeral port range, which is typically 49152 to 65535.  If you do a telnet from your Landmark to Lawson server over one of those ports, and you get a timeout error, this is likely because your network admin has closed off all ports between those servers, besides the ones specified.  In this case, you need to tell Lawson which port it is going to use for RMI.

In LAWDIR/system/bpm.properties, set the pflowRMIPort value to the specified port (0 is all ports).  Make sure this port is also opened between the Lawson & Landmark servers by your network admin.

Reboot the Lawson server or restart services.

If you want to know how to bookmark a custom cobol ‘Vanilla’ Form, follow these simple instructions below:

 

This is how the custom cobol “vanilla” form in RD69 shows under ID it’s called XX3.1_TEST

So you may think you need to add it in as XX3.1_TEST when adding as a favorite or creating a bookmark.

An example:

LAWFORM|PDL=PROD10|TKN=XX3.1|ID=XX3.1_TEST

Instead, since it is the custom “vanilla” cobol program, you only need to mention the TKN, not the ID

LAWFORM|PDL=PROD10|TKN=XX3.1

 

That’s all there is to it! Just clear the IOS cache and browser cache, then you should be able to load the bookmark now.

If you need to update your SQL Tables after a data refresh, follow the simple steps below:

 

First, open up the properties for the DB that was just refreshed and you can see that the DB tables have the PROD name instead of TEST.

 

Next, run the following SQL query for the TEST DB:

ALTER DATABASE INFORLAWTEST10 MODIFY FILEGROUP INFORLAWPROD10_DATA NAME = INFORLAWTEST10_DATA

ALTER DATABASE INFORLAWTEST10 MODIFY FILEGROUP INFORLAWPROD10_INDEX NAME = INFORLAWTEST10_INDEX

Your SQL tables should now be updated after doing a data refresh. Continue to repeat these steps whenever you do refreshes.

When testing the FTP connection on a Lawson Back-office data source in LBI, you may receive the error message “System Directory Not Available”.  You may also see this message in the SystemOut.log on the LBI server when the system is testing the connection.

Here are some troubleshooting steps when you encounter this issue:

  1. Open a Windows command prompt on LBI server
  2. ftp <lawson application hostname>
  3. log in as <ftp user>
  4. cd <application home path>
  5. ls (You should see the ‘system’ directory listed here.  If not, that is the source of the “system directory not available” error). If you see the system directory, continue:
  6. cd /system/ers/backoffice/<pdl>
  7. get published.csv
  8. del published.csv
  9. put published.csv
  10. cd <application home path>/print/username/jobname/1 (use a username and job name for a published report, or any job if you have nothing published yet.)
  11. get <JOBNAME>.prt
  12. del <JOBNAME>.prt
  13. put <JOBNAME>.prt

NOTE you can also use an ftp client such as Filezilla to check for the file

Once you have ensured access to all of the above directories over ftp, you should find the following message when you test the FTP connection.