Posts

Deactivating an IPA Flow

Here is a quick guide on how to deactivate a scheduled IPA.

 

First, you will need to find the IPA name in IPD

  1. Log into IP Designer
  2. Create a new process
  1. Upload the process to your server by clicking the up arrow icon , or by clicking:
    • Tools > Manage Processes > Select Open Process

 

Remove the Schedule for the Process

  1. Log into Rich Client
  2. From the Start menu, navigate to Applications > My Actions > My Scheduled Actions
  1. Select the Name of the schedule and on the bottom screen it should show all the triggers associated with the schedule.
  2. Drop down on Actions and choose Delete Finished Triggers
  3. Right-mouse click and Click open
  1. Select delete to remove this schedule.

 

How to update certificates in Lawson & Landmark

IIS

The process to update web certificates in Lawson & Landmark is virtually the same.  First, change the selected certificate in the “Bindings” on the website.  Restart the World Wide Web Publishing service for the change to take effect.

WebSphere

Some sites use the default WebSphere generated certificate, which auto-renews.  In the event that your organization has configured WebSphere to use an organizational server or wildcard certificate, you will also need to replace that certificate in WebSphere.  First make sure that you have a pfx file stored locally on the server, and that you have the private key for that file.

Open the console manager and navigate to Security > SSL certificate and key management

Select the CellDefaultKeyStore

Select Personal Certificates

Import the new certificate first.

Set the path to where you have saved the file locally, and enter the password.  Click “Get Key File Aliases” to get the certificate information.  Enter a meaningful alias for the certificate.

 

Select the old certificate and click “Replace…”.

Select the new certificate as the replacement.  Check the boxes to Delete the old certificate and signers.

Follow these same steps for the NodeDefaultKeyStore

Save the changes to the master configuration.

Validate that the Trust Store certs were updated by going into NodeDefaultTrustStore and CellDefaultTrustStore > Signer certificates

Web Server

Copy the new certificate to the Web server.  In console manager, go to Server Types > Web servers.

Click “Plug-in properties” on the right under Additional Properties.  Select “Copy to Web server key store directory”

Generate and propagate the plugins for the web server.

Run an iisreset command, or restart the WWW publishing service.

Your certificates are updated!  You can validate this by going to the web site and looking at the certificate (click the little lock).  You can compare the thumbprint of the website certificate to the new certificate you just added.

How to resolve the problem: LSF submitted processes aren’t triggering on IPA Server

Problem: Submitted requisitions aren’t triggering on IPA server via reqapproval process and are not showing in Rich Client.

 

  1. Go to LSF application server, start LID and type: pfserv ping all

    Make sure Event Manager is running.
  2. When Event Manager is NOT running:
    Let’s restart it but make sure we can see the java process with –classpath in their command line close.

Now in LID on LSF server, run these stop commands IN THIS ORDER:

Verify the java.exe –classpath processes closed, else manually end them.

 

Now start them up IN THIS ORDER:

Now run a pfserv ping all to see if Event Manager is running.

 

Go to Rich Client and check Live Workunits to verify that hung processes are being picked up:

 

This issue can often be prevented with regular Lawson maintenance and monitoring via monthly health checks. Organizations with a single Lawson professional are sometimes spread thin and overwhelmed.

 

To combat this, organizations often hire a Lawson consultant team who offer managed services at a fixed monthly rate. These Lawson teams have a wider range of expertise and knowledge and are ideal for larger organizations but also are great for smaller ones that don’t need a dedicated Lawson employee on-site.

 

WorkUnits Not Running

Problem Description

WorkUnits are not moving forward after a user takes an approve action in the inbasketRoot

 

Cause

The Lawson user was set to have “Run as” disabled. This prevents WorkUnits from successfully updating their PfiQueueTask records to move forward. This occurred as part of a sync that was executed a week before. The ISS SCWebAppAdmin had the Lawson user flagged as run as “No“, when the sync occurred the Landmark Lawson actor was updated. This did not impact the system until a week later when the Landmark system was restarted after applying windows patches.

 

 Solution

Change the Lawson user to “run as enabled”

and push that new setting and do a rolling restart on LPA/LmrkAll node to restore functionality.

 

 

 

Using IPA Web Run to work with attachments/comments

Working with attachments (or comments) to forms Is very simple using the WebRun node in IPA.

The first step to setting up a Web Run node, is to configure the Web Run Connection in your IPA configuration set.  For Internal Lawson commands, this will be your Lawson configuration set (usually “main”).

If your organization is using ADFS for authentication to Lawson, make sure you set up the Web Run Connection using the Lawson thick client site.

Here are the Web Programs used when working with attachments:

  • lawson-ios/action/ReadAttachment
  • lawson-ios/action/ListAttachments
  • lawson-ios/action/DeleteAttachment
  • lawson-ios/action/ChangeAttachment
  • lawson-ios/action/AddAttachment

The Post string should contain the pertinent details relating to the attachment.  All attachments will need a dataArea, filename, indexName, attachmentCategory, and Key values.  The Key values map to the index for the table to which you are adding attachments.  Attachment category is C or U (comment or URL).

When working with specific attachments (ReadAttachment, DeleteAttachment, ChangeAttachment), you will also need to provide attachmentNbr, which is the unique key of the attachment.  When adding and changing attachments, you will also want to provide the ATTACHMENT-NAME and ATTACHMENT-TEXT values.

Configure S3 Connection Pooling

If you are receiving frequent connection failures between IPA and Lawson S3, you may want to configure the connection pooling for S3.

To do this, open the Landmark Grid, and click the “gear” to open the configuration manager.  Click Applications > [your landmark application] > Edit Properties.

Expand “LPA Settings” then “S3 Pooling”.  Click “pfi.pooling.s3UsePooledConnections”

Select “All” for the display complexity.  Click the top LPA option, first column.

Check the box “pfi.pooling.s3UsePooledConnections” and click “Create (or Update) Property”

Now, set the rest of the s3 connection properties.  Best practices are as follows:

Be sure to click the save button at the top of the screen.

API Calls in IPA causing innerElementCountThreshold error

For API calls that return a large result set, you may encounter the message “Error while executing Web Service activity javax.xml.ws.soap.SOAPFaultException: reach the innerElementCountThreshold:50000”.  To resolve this issue, add a JVM command to allow a larger threshold.

 

Launch the Landmark Grid.  Click on the “configuration” icon.

 

Click “Applications”

Select your Landmark application

 

Click “Edit Properties”

 

Expand “Node Properties” under “Grid Defined Properties”

 

Click the link to Append another entry

 

Add the property “-Dorg.apache.cxf.stax.maxChildElements=<an appropriate # for your organization>”

Click “Update Property”

Be sure to save the Grid changes!!

Restart the server

 

IPA Error – No More Data to Read from Socket

Prior to Landmark version 11.0.29, IPA had trouble recovering gracefully from a loss in data connection.  When IPA loses connection with the database, it can sometimes throw this exception in the Work Unit logs:

To recover from this issue, you will need to restart the LPA node in Landmark grid, or restart the Landmark server.  After that, upgrade Landmark to a more stable version at the earliest convenience.

 

 

 

 

 

Infor Automated Process Error – No Incoming Connection

If you just started working in IPA, some of the documentation is not straight forward and can often even be confusing at times.

The “No Incoming Connection” error is a simple fix for most nodes that do a query or write/read on a file.

 

Example of a No Incoming Connection error:

 

To resolve, select the connect tool and connect the Starting node with the end node to resolve the issue.

Done! These types of nodes should already come connected and if the developer needs to change them up that would be up to them. Good luck with the rest of the little quirks of IPA!

Calling an API from IPA

Calling an API from IPA

APIs provide a secure way for unrelated applications to communicate with each other. Infor Process Automation offers tools that allow you to utilize third-party APIs to integrate applications with Lawson. IPA processes can gather data out of third-party systems via API for import into Lawson, or they can generate data out of Lawson and format it for an API request. These integrations can be real-time or near real-time, depending on the capability of the API.

Generally speaking, APIs will be called using a Web Service Node or a Web Run Node. These nodes can be found in the Web/XML/JSON category in IP Designer.

Web Service Node

The Web Service Node is used for SOAP API calls. The authentication information can be stored in a configuration set under the Web Service tab. It is recommended that you create a new configuration set for each interface, and there can only be one Web Service configuration per set. The authentication options are Basic or WS Security. Both accept a username and password.

When setting up a Web Service node in IP Designer, select the configuration set that contains the authentication data. Populate the WSDL tab with a schema file or URL. That way, you can use the “Build” button to generate the SOAP call. You can also type the SOAP call directly into the Activity window.

Web Run Node

The Web Run node is best for APIs that use advanced security, or that don’t require XML input (i.e. the call can be made via query string). Web Run offers authentication types of OAuth 1.0a or Basic. The connection information can be set up in a configuration set, and you also have the option to override the connection in the properties of the node. As mentioned above, it is always recommended that you have at least one configuration set per interface, and bear in mind that there can be only one Web Run configuration per set.

In IP Designer, the Web Program property would be whatever comes after the Web Run URL that you configured in the configuration set, or in the override. You can also pass header strings and POST strings when needed. The third-party vendor should be able to provide you with templates for making calls. It is best to test these calls using a third-party tool such as Postman before attempting them in IPA.

 

Reading Responses

Most APIs will send back a response in either JSON or XML. There are a few methods for reading these responses so that the data can be used later in your flow.

 

JSON Parser

If the response is in JSON, use a JSON Parser node to parse the output. In IP Designer, if you go to the Output tab on the JSON parser and upload a sample document, the “Set Variable” button will show the available variables in the response.

Then, each element can be accessed from in the JSONParser_jsonvar. Each element is represented by name using the syntax [“name”]. If an element can have multiple instances, each instance should be referenced by an index (0-based). For instance, this assignment accesses the first result in the list, element “u_requested_for”, and element “value” of the u_requested_for block:

JSONParser1130_jsonVar[“result”][0][“u_requested_for”][“value”]

 

XML Node

If the response is in XML format, it can be accessed similarly to JSON, by calling each element by name. In the case of XML, it is important to include the Schema information to assist with calling each element. Once the Schema is populated (either by URL or by a xsd file), you can click the “Build” button to display each element and a sample of how it should be accessed. If you prefer working with JSON, another option for working with XML nodes is to use a JSON Converter to convert the XML to JSON. Then you can work with the output from the converter node.

 

 

Triggering

Interfaces that send data out of Lawson to a 3rd party can be run real-time. There are multiple ways to trigger a process based on some activity in Lawson (see here and here for some examples). It would be tricker to send data from a third-part TO Lawson in real-time. Typically, it’s best to do batch processing, where you reach out to the 3rd party system at some defined interval and gather whatever records are available. If real-time processing is an absolute necessity, you will need to get a little creative since Landmark and Lawson don’t have their own APIs. Some ideas would be to have the third-party app drop a trigger file to be picked up by a file channel, or to have the third-party app trigger a work unit using BPM. In all cases, there will have to be some custom programming involved.

 

Use Cases

User Deprovisioning

We had a request to query the Service Now API for users that needed to be deprovisioned. The flow then removed roles and disabled the user accounts, as well as removing any tasks they had in IPA. Then, it would update the original ticket with a status. This type of interface has many, many applications. If your help desk ticketing system has an API, you can automate tickets for interface failures, user provisioning and deprovisioning, and much more. It is important to note that most ticketing systems are highly configurable, so there should be a lot of planning up front to make sure the interfaces are efficient and leave little room for “accidents”.

The key nodes for these flows are a Web Run node that makes the GET API call with a query string; a JSON parser node that accepts the response from the API call; assignment nodes to access the data in the JSON parser; and another Web Run node that updates the ticket with a POST API call.

 

 

Automating AP Tasks

We have written many flows that reach out to various third-party vendors, such as Guidewire or Expense Wire, over API. These interfaces do everything from adding/updating vendors to creating check requests. Whenever possible, we will gather the data from the API call and put it into a flat file format that can be brought in by a conversion job (such as AP510 or AP520). This assists with error handling, and helps to mitigate points of failure. It’s also more efficient than adding data one-by-one. If a conversion program isn’t an option, it is also possible to use Lawson Transaction nodes to add data to Lawson. We also have interfaces that send data back to the originating application to keep the systems in sync.

The key nodes for these flows are a Web Service node that makes the SOAP API call with an XML request; an XML node that accepts the response from the API call; a file access node that creates a perl script to read the XML response and generate a flat file for a Lawson conversion job; and a system command node that calls the perl script.

 

 

HR Automation

APIs have quite a few applications when it comes to HR Automation. They can be used to get time records from an external system, or benefits data, or they can be used to export such data. This particular use case was for importing employees from an HR system into Lawson as vendors in AP10 so that they can be part of an expense reimbursement program.

The key nodes in this interface are a Web Run node to get the list of new employees; a JSON parser node to read the response from the Web Run; and various assign nodes to access the variables from the JSON parser.

 

 

Bank Transactions

Banks tend to be (rightfully) extra secure, so there is a good chance that the authentication process when you are dealing with a bank’s API may be a bit too complex for the Web Run or Web Service nodes. We ran into this scenario with an interface meant to send out payments to a bank for a program allowing vendors to make their own payments to the client through the bank. To get around the complex authentication methods, we wrote a custom program to handle the API calls. It accepts any payload file and sends it to the bank. We opted to keep the process in IPA rather than going fully custom, because IPA offers quick and simple hooks into Lawson, as well as an easy scheduling interface. Also, it’s often ideal to keep all interfaces in one application for maintenance.

The key nodes for this process are the XML builder, where we build the API request in the required XML format, which is then saved to a payload file. Then, there is a system command node that calls the custom executable with the path to that file, and that is what actually makes the call.

 

 

Check out our webinar, “API Integration with Infor Process Automation” to learn how to use IPA to effectively communicate with third party applications in real or near-real time.