vrijdag 30 december 2011

Uniface Printing on Windows

When you are trying to troubleshoot printing with Uniface on the Windows platform it sometimes gets a bit confusing:

- Logical Printers in the Windows registry have to match those in the .ini file
- Logical Printers in the Windows registry have to point to devices that still exist in Windows
- Queue in Print Job Model has to be an existing Uniface Logical Printer
- Etc.

I have made a form that does these checks for you and marks mismatches in orange.
NB: I build it in Uniface 9.5


vrijdag 23 december 2011

I'm flying home for Christmas, yeah...

After converting an application to Uniface 9.5 and Unicode so that it can be deployed in Taiwan and sorting out some printing issues it is time to get home before Christmas. If only there was a way to get that Chris Rhea song out of my head...

maandag 12 december 2011

Uniface 9.5 webcasts

Everybody is invited to a Uniface 9.5 Masterclass session being held via WebEx on December 22nd. During this 45 minute Masterclass, Berry Kuijer, Uniface Solution Consultant, will walk you through the most important features of Uniface 9.5, including:
• JavaScript API
• Web Services
• Web Security
• Graphical User Interface (GUI)
• Uniface scripting language

-Thursday, December 22nd 2011

-To register for 8:00 am Central Europe (9:00 am Helsinki, 9:00 am Tel Aviv, 11:00 am Dubai) go HERE

-To register for 16:00 pm Central Europe (15:00 pm London, 10:00 am New York, 8:00 am Denver) go HERE

zaterdag 26 november 2011

Uniface 9.5 Launched

Uniface 9.5 is ready and we highlighted that with a RAD Race between the teams of the Uniface Lab. I made the exercises with input from Adrian Gosbell, our Uniface Product Manager. And did the judging with Aad van Schetsen, vice-president of Uniface. Everybody had a lot of fun doing this and we celebrated at the end of the day with some drinks etc. Pictures can be found on our Uniface page on Facebook. Next stops: Uniface 9.6 and Uniface 10.

zondag 13 november 2011

Sample for iframe on DSP

If you want to show a non-Uniface web page in your new Uniface 9.5 DSP application, there is a simple solution.

In this sample I will show you how it can be done using an iframe. My example consists of a single DSP with a field where you can enter a URL and two buttons to demonstrate two possible techniques to show the page.

First we make an iframe in the HTML source in the layout editor:
Next we write a weboperation that takes an URL as parameter and puts it in the iframe:
The first button uses Uniface Proc code to call the weboperation with the value of the field. This causes a trip to the server, but you can use this code as sample to call the webopration from anywhere in Uniface:
The second button uses JavaScript code in a webtrigger to call the weboperation with the value of the field. Now everything is executed on the browser:
This is how your screen should look like when you have loaded Uniface.info:

NB: Unfortunately not every web page wants to be in an iframe, but this works for most.

maandag 17 oktober 2011

Social Media koppelingen in Uniface Enterprise Systemen (Dutch)

In het Software Development Network magazine is een artikel te lezen wat ik geschreven heb over het koppelen van Uniface applicaties met Social Media. Met een uitgewerkt voorbeeld voor LinkedIn en de nieuwe Uniface 9.5 JavaScript API.

Klik op het logo op het artikel te lezen op de SDN website.



donderdag 13 oktober 2011

Calculate the distance between addresses

Sometimes you need to know the distance between two adresses in a Uniface application. Here is a sample for a low budget solution that uses the Google Maps API.


vrijdag 12 augustus 2011

How to export UAR definitions

For a project I needed a way to export the definition of a Uniface deployment archive.
I made a small utility and I thought I might just as well share it.
You simply select an archive definition and press the button.
The file that is created can be imported in a different Uniface enivronment using the normal import functions.



maandag 8 augustus 2011

Experiment with Tab widget

Older Uniface applications tend to look a bit boring. Not a huge problem if you use your Uniface application for internal purposes. You business application does not need to look like a video game. But when you have a Uniface application that you want to sell, it has to look nice too.

In the first picture you see a screen as it would look by default:

One of the guys of the Uniface Lab came up with the idea to imitate a Tab widget using a Map widget. It looks much better:

But that only works because in this sample each tab has the same layout. So I tried it using the normal Tab widget, so you can have tabs that are different from each other, but overlaying the Tabs with a Map widget. It comes close, you only see a few line that ideally should not be there:

It is not a ideal solution to program, but if you are at a point where the looks of the application are more important than code maintenance this can be a solution.

PS: Besides the Tabs you can also see that a good use of colors and fonts already makes a big difference.







dinsdag 14 juni 2011

LinkedIN and Uniface 9.5 JavaScript API

Last week all Compuware Uniface staff received training on the new Uniface 9.5 JavaScript API.
With this new feature you can reduce traffic between the browser and the server considerably. This has been achieved by adding the option to write triggers and operations that are suitable for execution on the browser in JavaScript. I off course immediately had to try if this would also give us more options to integrate with other websites, and here is the first result. With this little sample you can sign in with LinkedIN and retrieve some information from your profile.

If you do not participate in the Uniface 9.5 Beta program, you can still download the sample and have a look at the documentation.




zondag 12 juni 2011

Dutch Uniface User Conference was a success

On May 26th we had a meeting of the Duth Uniface User Group, Face 2 Face, on location at our customer Holland Casino in Breda.
Go to http://www.uniface.nl/f2f_v2011.htm for all presentations, photo's etc.
Topics were:
- GUI manipulation
- Easy deployment
- Document digitization
- LDAP driver
- Xtenso, Hospital systems in Uniface
- IT strategy and Uniface at Holland Casino
- Uniface 9.5 JavaScript API
- Keynote: IT Innovation

Me at work:

Employee of the year

I thought I was just doing my job, but at the Kickoff of the new fiscal year I received the Uniface Employee of The Year award.

dinsdag 10 mei 2011

Uniface Facebook integration

Integration with social media such as Facebook, LinkedIn, YouTube etc is hot. And Uniface is incorrectly perceived as old fashioned. This sample will show that is not difficult at all to integrate Social Media in your Uniface application. And to make it more interesting it shows you how to do that from your classic Uniface
desktop application.

Should we integrate these two very different worlds?
Like all other projects this should only depend on the specific business case and nothing else. Maybe your sales manager comes up with the idea that when a user adds a new product to your inventory, that should be automatically communicated to your customers over Twitter and on your Facebook page. If that gives a good expected return on investment it would be foolish not to build that functionality.

Can we integrate these two very different world?
Yes we can, as this sample will show. It will show you how to implement two important parts, the authentication mechanism and the Facebook API, from a Uniface Windows application.

Authentication
Facebook uses the OAuth 2.0 protocol. That is nice because it is also used by other websites, so we can reuse it. To implement the Facebook authentication in a Windows application you need an embedded browser. In Uniface we can create an embedded browser by using an OCX container with the Microsoft Webbrowser control. We make it navigate to a web page from Facebook. When the user is not logged in to Facebook, first a log in screen is shown, otherwise he/she immediately will be asked to give the application permission to access some of his/her data on Facebook. When the user gives permission the application receives a special key that we need to send with each API call.

Facebook API
The Graph API is the one that we can easily call from Uniface. This API can be implemented in HTTP requests using the Uniface UHTTP component. In this sample we keep it simple, just a simple Uniface Form where you can type a message that will be posted on your Facebook wall.

dinsdag 3 mei 2011

Uniface Social Media Integration

Uniface systems are traditionally large systems used by bigger companies for their internal administrative processes. And Social Media is all about sharing information and experiences on the Web. So where is the connection?

The connection is in Social Media Marketing. This is a very broad concept and the word Marketing is a bit misleading. It is about getting in touch with your customers, communicating with them, improving the customer experience and your brand identity. And in the process your sales will increase. And if you do it right your customer support costs will go down.
An interesting book to read is The Social Media Bible by Lon Safko.

For example, you sell products. In your enterprise application you discount the price of a certain product. You could post this automatically to your companies Facebook page, with a link to your web shop.

Or when you are an insurance company you could scan your database for a specific target audience, try to find these people on FaceBook, Twitter, LinkedIn etc and invite them to watch a YouTube video that is interesting for them.

A lot of this possible in the current Uniface 9.4. I just finished a Proof of Concept for integrating Uniface desktop applications with the Facebook API and it works very nice. The biggest hurdle to take was to implement the authorization mechanism. Facebook uses the upcoming OAuth 2.0 standard for that, and many more sites are starting to use this standard so now they should also be easy to connect too.

Over the next weeks I will make a sample so Uniface developers can take a look at how we did it.

PS
Go visit the iCU2011 on May 10th a preview of Uniface 9.5. With the new JavaScript options yet another world of web application integration opens up. And have a chat at the Uniface Services booth about your ideas for integrating Uniface applications with Social Media.

maandag 18 april 2011

Exporting to separate files

By default, when you export your sources from a Uniface repository you get one big file with all the objects that fit the profile. Sometimes you may need separate files for each object. There is a simple way of achieving this.
(This works for Uniface 8 and 9)

Step 1:
Go online and find a free version management tool that is SCCI based.
You do not need to install it if you just want clustered exports, you just need the .DLL.
(I use igloo.dll)

Step 2:
Goto Utilities -> Preferences -> System
Enter the location of the DLL.

Step 3:
Press the Clustering… button.
Adjust the settings to your own taste.

Step 4:
When doing an export, make sure the option Use File Clustering Defaults is checked.

Step 5:
Check your result.

woensdag 13 april 2011

Uniface Open Source

I have been making and distributing Uniface samples and utilities for a while now.
Usually upload these to my www.box.net account.
Then I "spam" the link to my blog, www.uniface.info, the Uniface Group on LinkedIn and the Uniface page on Facebook.
This works pretty well, I am getting a nice number of pageviews and downloads.


But since making these samples and utilities is something that I do in my spare time, they are never perfect, and I cannot offer support on them.


Every now and then somebody mails me an improvement, for which I am very gratefull.
But it made me think that there must be a better way.
I do not want to own and maintain my own website so a public open source platform might be an interesting idea.


I am a total novice at this, but I gave it a first try on SourceForge. You can find the CompileMaster that I published last week also on SourceForge.


Any idea's on how to proceed with this are more than welcome.

vrijdag 8 april 2011

Change entity, compile forms

It is something all experienced Uniface developers know:
If you change an entity you must recompile all Uniface components where it is painted on.
Uniface uses the entity definition as found in the first component that opens the table.
It is very easy to forget a component, and it takes a long time to compile the entire application.

My colleague Karl Janowiak has made an excellent tool to help you with this.

It checks the last compilation date of the component against:
   - Last modification date of the component
   - Last modifcation date of the subtype
   - Last modification date of the entity
   - Last modification date of any of the fields of the entity

Press the download button to get a zip file with a Uniface export and a readme file.

Thank you Karl !

vrijdag 25 februari 2011

Fancy Menu

Earlier I made a sample on how to emulate a harmonica widget. And I also made one on glassy buttons. It is quite easy to combine these two into a pretty fancy menu. Clicking each main menu option expands it to show the options. When the mouse pointer passes over a button, it will light up. In the document I explain how I made it, and in the accompanying export you will find all sources.


maandag 21 februari 2011

Engineering World 2011 - Presentatie

This month I spoke on Engineering World 2011, the conference for Dutch software engineers.
Connectivity has always been important for Uniface, and that continues with Cloud Computing.
It is partly in Dutch.

zaterdag 19 februari 2011

Sample for Glassy Buttons in Uniface

One of the things that I keep hearing when discussing User Interface design are Glassy Buttons. It is not so difficult to create these in Uniface, you just have to think a bit outside the box. In the document I explain my way of doing it, and in the accompanying export you will find all sources.



zondag 23 januari 2011

Engineering World 2011

Uniface Product Manager Ton Blankers and Uniface Solution Architect Theo Neeskens will be speaking at Engineering World 2011 on February 5th. Engineering World is a conference for Dutch software engineers. Theme of the conference is: What does "the Cloud" mean for you?


In my presentation I will try to explain the importance of connectivity in the Cloud. That means API's to various applications on the web, but also classic connectivity issues such as database independence and O/S independence.


RSVP on LinkedIn



Starts:Saturday February 05, 2011, 09:00AM CET
Ends:Saturday February 05, 2011, 05:00PM CET
Event Type:Conference
Location:Achmea Conferentie Center
Handelsweg 2
Zeist, UTRECHT NL
Price:
Website:http://www.engineeringworld.nl
Industry:information technology and services
Keywords:engineering, cloud, seminar, Java, .Net, Microsoft, hardware, SAAS, PASS, IBM, Azure
Intended For:engineers,ontwikkelaars, software architecten, architecten
Organization:Sogeti Nederland

Op zaterdag 5 februari 2011 organiseert Sogeti, alweer voor de 4e maal, de Engineering World 2011
Het centrale thema van Engineering World 2011 luidt: "Wat betekent de ‘Cloud’ voor jou?"
In samenwerking met SDN, User Groups en vakverenigingen bieden we een breed programma voor en door Engineers. In één dag ben je weer op de hoogte van de actuele ontwikkelingen binnen het Engineeringvak.
Meer informatie op www.engineeringworld.nl. Aanmelden kan via http://evenementen.sogeti.nl/

iCU2011

Time
Tuesday, May 10 · 2:00pm - 8:00pm

LocationOnline Uniface Virtual Event - www.icu2011.com

RSVP on LinkedIn
RSVP on FaceBook



More Info
Is Java A Dead End For Enterprise Application Development?

Is Java really the best way to develop enterprise business applications? Forrester analyst and former Java developer and architect, Mike Gualtieri doesn’t think so. Application developers must focus the lion’s share of their effort on the business requirements and user experience instead of tinkering with a multitude of plumbing-level Java frameworks.

The solution: Application development tools and platforms, such as fourth generation languages (4GLs), that abstract lower-level programming functions to let professional developers focus on business value.

Based on his hugely popular and controversial post, Java Is A Dead End For Enterprise App Development, Mike Gualtieri will argue why he thinks it is time for you to choose other application development platforms.

15.00 - 15.15
Dedicated Exhibit, Technical Campground & Networking time

15.15 - 16.00
Breakout Sessions and Q&A

16.00 - 16.15
Dedicated Exhibit, Technical Campground & Networking time

16:15 – 17:00
Breakout Sessions and Q&A

16.00 - 16.15
Dedicated Exhibit, Technical Campground & Networking time

17.15 – 18:00
Closing Keynote Address and Q&A
Uniface and Cloud: Right Place, Right Time, Right Product
Aad van Schetsen, Vice President Compuware Uniface, will outline why Uniface is the best development tool to help enterprise application developers create great software for Cloud deployment. He will look at how Uniface is performing right now, and at recent changes that have brought Uniface back to growth and position you ideally to take advantage of future opportunities.
Speaker: Aad van Schetsen, Vice President, Compuware Uniface

18.00 – until late
Dedicated Exhibit, Technical Campground & Networking time


woensdag 5 januari 2011

How to put “sort direction arrows“ in column headers

For a grid widget, use the extended trigger ColumnHeader_LClicked. In this trigger you keep track of which field is sorted and in what direction. You can store this in a component variable. The text that is shown in the column header is the text of the label of the field. You can alter the text in a label using $labelproperties (introduced in Uniface 9.3). Labels do not support pictures, but ▲ and ▼ are suiteable characters. Just copy and paste these from MS Word.

If you do not use a grid widget you still can do something similar. 

See the sample for sorting in Grids and "normal" entities.



zaterdag 1 januari 2011

Mockups and prototypes

What do you use to make a rough sketch of how your User Interface should look like?

I like to draw something on a whiteboard in a meeting. When finished I take a digital photo so I can send the design to the participants. Recently I was told to have a look at an online tool called Mockingbird. I played with it for a little bit and I really like it. Any of you using other tools? Pro's and con's?

A sketch on a whiteboard

Something made with Mockingbird