Archive for the ‘Infor’ Category

How To #8 – Can I bypass DAL in my program ? #baanhowto #LNHowto

February 17, 2017 Leave a comment

Please be careful when you are doing this, I assume you already know what you are doing.

But yes off course, you can bypass DAL in your program. The below piece of code will do it all for you, this will prevent all the DAL checks on the main table for the session.


I wouldn’t recommend bypassing DAL at all, its good to have it on. But if you have some customization where you can’t avoid it, you can’t avoid it.

Quick Submit

Categories: BaaN, ERP, HowTo, Infor Tags: , ,

Damn !! 10.5 ION desk is cool

February 15, 2017 Leave a comment

I wont write long essay for this, but #inshorts

  • Simplified Mapper ( I bet you won’t have an affair with 3rd party tools )
  • Simplified deployment ( No more missed  xmls or xsds )
  • Light weight
  • Smart & impressive
Categories: Infor

How To #7 – How to retrieve the description of the label ? #baanhowto

September 26, 2013 Leave a comment

It is always a good practice to maintain labels instead of simply typing the descriptions on the static forms/report layouts. You can understand the importance of the labels when you are working in multilingual environment.

Many a times there is need to retrieve the description maintained for a label code. You can easily achieve this with a predefined function “tt.label.desc()”


void tt.label.desc( string label_code(19), long label_context, ref string desc() mb )

This returns information of the specified label.


label_code : The label code, including the package code.

label_context : The label’s context.
The possible values are:
•1 General Use (for labels on forms and reports)
•2 Session, Table or Report Descriptions
•3 Enumerate descriptions
•4 Index descriptions
•5 Chart descriptions
•6 Menu and menu field descriptions
•7 Chart Application Option descriptions
•8 Business Object descriptions
•9 Subfunction descriptions
•10 Form Command descriptions
•11 Descriptions for External Use
•12 Cascading item on button descriptions

desc : This returns the longest description (in the user’s current language) of the specified label.

Categories: BaaN, How to, HowTo, Infor Tags: , , ,

How To #6 – How to find a domain of a variable ? #baanhowto

September 25, 2013 2 comments

In many cases, we require to know the domain of the variable or table field. This can be achieved very easily using
domainof() function.


string domainof( variable )

The domainof() function is a compile time function which returns the name of the domain of the supplied variable. Make sure that the variable passed as an argument must be a domain type, otherwise it will result in a compile time error. You can also pass the table fields to the function as an argument.

Quick Submit

Categories: BaaN, How to, HowTo, Infor

Error Logging DLL (Baan / Infor LN)

September 24, 2013 Leave a comment

Baan handles error logging very well, you must be using ttstperrlog session frequently to verify the logged errors. In many scenarios, we need additional error logging for write/process programs. It is really time consuming to create create traditional baan reports for error logging. So most of the times we prefer writing to a log file. Many of you must have already written the dlls to write your errors to the log file.

While going through the archives, I found one of my very first program for error logging, you may use it without any restrictions & enhance the same based on your needs. I will definately like to know the changes you have done, so request you to share the modifications & enhancements done.

This is no different, the DLL uses report name as an argument and passes the error string to the report. This gives you the flexibility to save the reports in any format you want based on the availibility of the devices in your environment.

The DLL lifecycle have three stages init, log & end.

The details are as below


The function init.log will initialise the “error log report”, The user can provide the report code or pass a empty string as a parameter to the function,  In case of empty string the default report “rXXXXXXXXXXX” will open. The user can optionally pass the Report Title in the second argument under DSNtitle.

As a first step the developer will need to change the DEFAULT_REPORT & DEFAULT_TITLE values to the desired ones. There should be one report with the field error_desc with string datatype.

The init function will initialize & open the report. The init function will return the report id which is of type long.


The log.error() function takes two parameters report id & error details. This can be called inside a loop multiple times provided the log is initiated.
The log.error() function will pass the error details to the report. The report id, which is the first parameter for the function is the id returned by init.log() function.


This function will end the log by closing the report.

|* Title                : Error Logging
|* Description:         : This DLL is used for logging errors
|* Original Author      : Niraj N. S. Kakodkar
|* Date                 : 16/02/2007
|* Category             : Utility
|* Platform             : Independent
|* License for Error Logging DLL
|* Copyright 2007 - 2011 by Niraj N S kakodkar
|* All Rights Reserved
|* Permission to use, copy, modify, and distribute this software and its
|* documentation for any purpose and without fee is hereby granted,
|* provided that the above copyright notice appear in all copies and that
|* both that copyright notice and this permission notice appear in
|* supporting documentation.
|* NIRAJ KAKODKAR , Baanboard or Techbuzz ( DISCLAIM ALL

extern	domain 	tcmcs.s999m	error.desc
extern	domain 	tcmcs.str50

|* Change the default report code & Title
#define DEFAULT_REPORT	"rxxxxxxxxxxx"

function extern long init.log(	domain tcmcs.str15 _report, ...)
		Input: 		Report Code or empty string as first argument
				DsNtitle -> Report Title
		Output:		Report Id
		Description:	The function init.log will initialise the "error log report", The user can
				provide the report code or pass a empty string, in case of empty string
				the default report "rxxxxxxxxxxxx" will open. The user can optionally pass the
				Report Title.

	long    brp_id
	long	arg_count
	long	i
	long	long_value
	string	string_value(200)

	arg_count = get.argc()

	if arg_count > 1 then
		for i = 3 to arg_count step 2
			on case get.long.arg(i-1)
			case DsNtitle:
				string_value = get.string.arg(i) = shiftl$(strip$(string_value))

	if(isspace(_report)) then
		_report = DEFAULT_REPORT

	brp_id =$(_report)," ",1)

	if	(brp_id  2 then
		for i = 3 to arg_count step 1
			error_desc = " --------> " & get.string.arg(i)

	error.desc = ""
	if( > 0) then
		error.desc = record & error_desc

function extern end.log(long
		Input: 		Report Id
		Output:		Void
		Description:	The function closes the report of which id is provided.

	if( > 0) then

You can also find the code posted on baanboard at Error Log


Try , a google maps V3 application with added features. Use it, its free & developed by me. Waiting for your valuable comments & feedback to improve it.

Categories: BaaN, Infor Tags: ,

Command your Infor ERP System with your voice

October 17, 2012 1 comment

Now this is what I would say the next generation Enterprise vision. Quite impressive and innovative step by Infor. Soon you will able to command your ERP System with your voice.

Infor, a provider of industry specific enterprise applications, and third largest ERP vendor has now impressed the enterprise world by developing a prototype app for mobile devices that allows users to search for customer or client information using voice commands. The app integrates with Siri, Apple’s Voice recognition tool, but uses its own cloud-based natural language processing engine to search stored enterprise data and dive into the applications.

According to Nick Borth,product manager at Infor, Siri will translate the voice, while Infor’s cloud based NLP engine will make the translation meaningful by adding context to the words.Eventually the user will be able to search all of the mobile data, check authorisations and take necessary actions with voice commands.

The prototype, was built in just seven hours by Infor’s development team, and as of now only allows users to find customers in certain cities, find the name of a contact or find the specific name of a customer. A full fledged version can be expected soon by the end of this year.

The app will use Infor’s latest middleware offering ION, which allows enterprises to easily integrate disparate or third party apps that had previously been connected using point-to-point solutions. Business Vault (The Enterprise Data repository) platform will enable the natural language processing engine to crawl stored data upon request.

Another thing which has really impressed me is the idea to develop a marketplace for its customers to submit mobile applications that they have developed using Infor’s Motion platform, where it may take these on and create a commercial offering. This will be something like Google Play Store where in you submit apps to share with other customers and Infor software users.Infor is planning to launch this in first half of 2013.

Infor!! Wishing you a grand success in the years ahead, keep up with the innovation.

#Infor #ION – a brief walkthrough

June 7, 2012 13 comments

Infor ION is really creating a lots of  hype and myth amongst Infor family and those who are considering to be the part of Infor family. What is it all about ? What is this ION ? Another buzzword ? Is this a BI tool ?  If  I get ION, I don’t  need anything else to install ? Lots of questions come up from people who have heard that some product coined “ION” is launched by the third largest ERP vendor “Infor”. Trying to answer some of the questions, basically a brief overview of what is ION and what it can do better.

ION stands for “Intelligent Open Network”, its a middle-ware developed by Infor which can be used with Infor and non-Infor products. Its not something which is very new to the enterprise industry. There   is a huge list of middle-wares which are existing which might be even better than ION and also experienced in this area. Now lets see, how ION makes itself different from its peers and what is the best maximum we can achieve from it.

Wait wait !! what  the damn is this  middle-ware ?

Keeping aside all the technical jargon lets try to understand what the middle-ware is with a simple day-to-day example?  Have a look at the image below, and try to figure out what it says

There is English gentleman , who understands only English and a  Sumo wrestler who can only understand Japanese and they both wanna communicate , they can talk in action, but that’s not the effective way to communicate, it will take hours for them to understand a single statement. There is a problem!!

Now Stewie comes along,  he knows both the languages , he becomes a translator in between and helps them communicate. Stewie plays a major role for a effective conversation to take place between the English and Japanese Sumo.

Middle-ware plays the same role as Stewie, this is though a very broad explanation of a middle-ware just to understand how important the middle-ware is. Some big names in this area are TIBCO , webMethods, IBM  etc.

In technical terms, Middleware is a software which enables the communication and management of data in distributed applications. Services that can be regarded as middleware include Enterprise application integration, data integration, message oriented middleware (MOM) and Object Request Brokers (ORBs).

What we are mainly concerned is EAI.

Enterprise Application Integration (EAI) is an integration framework composed of a collection of technologies and services which form a middleware to enable integration of systems and applications across the enterprise.

ERP applications ,  CRM applications , BI applications etc typically cannot communicate with one another in order to share data or business rules. Not only this application landscapes require a midlle-ware to communicate , but also two similar applications from different vendors can’t effectively communicate without a middle-ware. “EAI is the “unrestricted sharing of data and business processes among any connected application or data sources in the enterprise”. This is what Gartner talks about EAI.

One large challenge of EAI is that the various systems that need to be linked together often reside on different operating systems, use different database solutions and different computer languages, and in some cases are legacy systems that are no longer supported by the vendor who originally created them. Baan can be considered as an example of legacy application, though Infor have very beautifully adopted and raised it like its own kid.

How ION is different from its peers and how can it help improve our business ?

ION as I have already mentioned, is an middle-ware from Infor. Being an Infor product, connectivity between Infor application landscape is possible in matter of few minutes. As Infor says “3 minutes installation – 3 minutes configuration and 3 minutes Live”. This is great is’n it ? This is very much true when we talk about Infor application landscape communication via standard BODs, but when it comes custom BODs and  3rd party applications in the landscape, it is obvious that it won’t go live in 9 minutes, you will need a little more efforts, but it will be minimal.

Now the above points doesn’t mean that you replace all other middle-wares being already used in your organisation with ION. The other peers are equally good or may be better , but when  most of the application in the landcape belongs to infor family, it is recommended to use ION as  it will definitely reduce the implementation time and as standard business processes are already defined, there will be minimal time in customization as well.

ION effectively enable you to organize your information, act on the information and follow or monitor the information. Infor have adapted the social platforms for real time data operation, alerts and hats off for the very beautiful and stunning user interface. The Pulse reminds me of “Bottlenose”, the only thing missing here is “sonar”. All the data that will be traversed will be through a secure business vault, without compromising on data security. In an enterprise, data security should be always given the top priority, and Infor have done it very well. This approach will reduce a lot of ETL process, normally involved in integration and you can move on to Real Time.

Most (Not All) of the middle-wares will just serve your connectivity needs, but again for reporting, event management, and routing the business flow you will need to undergo multiple surgeries to your applications, this can be higly avoided with ION Suite. ION takes a single touch point approach and lots of the custom and point-to-point integrations can be avoided.

ION service Suite includes ION Pulse which manages and follows the information, ION workflow for automated document routing and approvals across multiple infor/non-infor applications, Event Management for automated task monitoring and pro-active alerting of any exceptions, ION Connect for communication and secure sharing of data across on-premise and cloud applications and a intuitive browser based interface used for configuring and monitoring the ION services. Below figure is the pictorial representation.

If you have used bottlenose, Pulse is like its brother for enterprise applications, mainly meant for reducing the huge load of feeds and alerts, its basically for managing and following the loads of information.

How is ION priced ?

This is again an important question that comes in the mind, when you are thinking of buying ION.

Infor has bundled the ION services in three different SKUs


  1. ION – CONNECT ( ION-CONNECT, ION-DESK and Infor connectors )
  2. ION – CONNECT 3P ( ION-CONNECT, ION DESK + IO BOX Connectors for 3rd party apps)

ION Server-based pricing based on CPU-Cores. The pricing is based on the effective used / assigned cpu-cores and not per the physical number of cpu-cores present on the hardware. So if you are thinking of buying ION for your Infor application, ION connect is what you need . For Infor to 3rd party connectivity, ION connect and ION connect 3P will be required and for the combination of both and also need event management, workflow etc. you will need the ION-Process.

Hope I could answer at least some of the questions related to ION and bring some idea about what ION is ?

Categories: Infor Tags: ,
%d bloggers like this: