How to create a browser object with filter criteria

Sometimes the left list in a function can be a bit overwhelming when it contains every record. Did you know it’s possible to created another left list that contains only the data you need? Below are the steps to create a browser object with filter criteria. By following these steps a ‘drawer’ or ‘tab’ on the left list will be created making it quicker and more simple to find the records you need to see.

Navigate to Development > Script Dictionary > Objects

Click ‘New’ to start a new record

Give your object an identifying code & a description. Use the selection icon to choose a linked table

On the General tab, give your object an activity code and choose ‘Browser’ as the management type.

Also on the General tab, make sure your standard & specific script names populate. You will need the specific script name later.

Usually on an object you pick, from the linked table, which fields to display, as below. The SOH object, for example, in the selection screen block, you would define an index (SOH0) then specify a table and field from that table to display. For our browser object, we will do this in the specific script.

Click the ‘Create’ button to create your object.

Create your specific script and add the following piece of code to the Action label:

When "CLE_GAUCHE" : Gosub CLE_GAUCHE  

This action is called before loading the left list

Next, create the action label block:

$CLE_GAUCHE 
return

This is where you will define the filter criteria for your left list drawer by using the variable ‘FILTSUP’. The filter criteria is expressed in a string with logic to combine criteria. See below for an example.

FILTSUP = 'SOHCAT = 4'

This will filter the left list for sale orders that are categorized as contract types. If you need a more complex filter see how to add more criteria below.

FILTSUP = '(SOHCAT = 4 OR SOHCAT = 3) AND CPY = 111'

This would filter the left list for sale orders categorized as contracts or direct invoice and also looking for the company to be ‘111’.

 ###########################################

$ACTION

Case ACTION

         When “CLE_GAUCHE : Gosub CLE_GAUCHE

Endcase

###########################################

$CLE_GAUCHE

FILTSUP=FILTSUP = '(SOHCAT = 4 OR SOHCAT = 3) AND CPY = 111'

Return

###########################################

How to eliminate the ENDDAT parameter error

Going into the new year, you may encounter this error message:

This is because ENDDAT parameter value needs to be updated to reflect the new year.  This HTG will show you how to get rid of that warning.

Open Setup-General parameters-Parameter values

On the Parameter values left list, expand SUP Supervisor, then Folder and select your folder (usually the only folder option you will have is the one you’re logged into).

On the main screen, find DEF (Default values), click its action card and click Details.


Now we’ve finally reached the parameter that’s causing that warning to appear: the ENDDAT parameter.  It will be 12/31 of the year that just ended.  You will need to change the year to the year we’re currently on (keep the 12/31 part).  For example, if 2019 just passed and we’re now on 2020, you need to change the ENDDAT value from 12/31/2019 to 12/31/2020.  Click OK when done.

Make sure you click Save on the main screen after clicking OK. Otherwise the change won’t actually stick.

You will have to log out of Sage X3 and back in before this take effect.

How to setup a getDescription request in SOAP UI

SOAP UI is a powerful and easy to use tool to test web services. In a previous post I showed you how to start a SOAP UI project and execute a run request. There are other requests to run in SOAP UI so this week will be how to set up and execute a “getDescription” request. This request can be useful to see what information the web service is expecting to handle.

If you missed the first post on how to start a SOAP UI project, you can read it here: http://www.rebdev.com/2019/12/how-to-start-a-web-service-project-in-soap-ui/

Choose the project to run a read request. Double click the request to open the template

Replace the ‘?’ with the appropriate information.

codeLang: language

poolAlias: name of the X3 environment

publicName: name of the web service

Click the Auth button at the bottom of the screen. Type your X3 credentials & make sure “Authenticate pre-emptively” is selected

Click the green start arrow at the top of the window.

The XML result will be the fields the web service expects input for and the output fields based on how the web service is set up in X3

How to End Unused User Sessions to Unlock a Record

Sometimes functions get locked by user sessions that are not being used or have not timed out yet. If needed, user sessions can be terminated. To do this, you must have access to the development menu.

To see who the record is locked by, click the lock icon ont he right panel which will pop up a message box with the user’s login. Save this information for later


Navigate to Development > Utilities > Verifications > System Monitor> Users

In the grid, find the user login and the session containing the function name where the record needs unlocked.

Click the line and scroll down the page to the Active Processes grid

It does not matter which line you choose to terminate. Click the action card of a line & choose ‘Process Termination’

Navigate back to the function where the record was locked. To confirm the record is unlocked, check that the orange lock icon is no longer present on the right panel.