Kiandra Insights

Open Source Plugins in OutSystems

Stuart Harris Kiandra Software Development Team Lead and OutSystems Champion
by
Stuart Harris
Principal Developer and OutSystems Champion
|
September 6, 2019
Stuart Harris
Principal Developer and OutSystems Champion
September 6, 2019
OutSystems logo on a laptop

This is part one of a three part blog series on OutSystems development and how to create plugins.  

Over the years there have been a number of rapid application development tools – but none of the ones I’ve used ever really seemed to help deliver a project faster than low-code platform OutSystems.

Some of them built unmaintainable systems, where the first version works great, but then it becomes very difficult to change. Others provide high quality in one part of the system, while not so much in other parts. For example, great workflow but poor user interface.

OutSystems has a community Forge for sharing open source plugins

An essential part of any software platform today is the library of components available to extend the platform. Each application has different needs and these libraries allow developers to quickly provide a unique combination of features.

OutSystems does this in two ways, via the "Forge" and via extensions.  The Forge is a community repository of OutSystems plugins, with packages such as GoogleMaps, barcode reading, file uploaders and more.  Extensions, allow you to break out into .NET code, using NuGet packages if desired. OutSystems can also expose and consume SOAP and REST APIs.

Why build another file upload plugin? (Internet Explorer 11)

Now, OutSystems already has a bunch of file upload extensions in the Forge. The thing is, none of the existing plugins appear to support Internet Explorer 11, and a few of my current projects required support for none other. Thus started my quest.

First, I needed to find a JavaScript file upload control. My extensive Googling found FilePond. FilePond is an awesome open source JavaScript upload control built by Rik Schennink. It provides a drag and drop interface, thumbnails, simultaneous multiple file upload with support for all modern browsers and some not so modern (read Internet Explorer 11). Yay! And also, voila!

Introducing the FilePondUpload plugin


Stu_OS.png

Standing on the shoulders of giants, enter the FilePondUpload OutSystems plugin. Built? Well more like cobbled together.

The plugin lets you easily wire up a top quality file upload control with minimum effort and all the features required for a real live system.  This includes limiting the size and type of files, ensuring only authenticated users can upload files, and handling file upload errors. The look and feel can also be modified with CSS.

How to use it:

  • In the FilePondUpload plugin there are two "web blocks" available, the UploadBlock and AutoUploadBlock.
  • The UploadBlock will upload the file, and allow you to retrieve it when a submit button is clicked.
  • The AutoUploadBlock will trigger an event when a file is uploaded without requiring the user to click another button.
pic-2.png

To wire up file upload:

1. Drag one of the web blocks onto your page.2. Create a FilePondConfig local variable3. Set the configuration attributes.  There are a bunch of helper actions that will create standard sets of configuration for you, such as CreateAcceptedFileTypes()4. Apply the configuration to the web block.5. Implement an action to receive the uploaded file.

The UploadBlock also requires these steps:

1. Create a local variable called UploadTokens of type text2. Drag an input text widget into the UploadBlock placeholder. The input control will be hidden on the page.3. Use the UploadTokens variable as the value of the input text widget4. On Submit, use the FilePondUpload_GetUploadedFiles(UploadTokens) action to retrieve uploaded files.

pic-3-(1).png

Checkout the demo page to give it a try. I hope this gives at least a general idea of how flexible the OutSystems platform can be, and one specific way it can be extended.

Next blog in this series is a deep dive into how the upload was built.

Share article
LinkedIn.com

More insights

Aerial view of a commercial airplane taxiing on an airport runway, casting a sharp shadow. The aircraft is centred with visible engine nacelles and wing structure, surrounded by intersecting taxiway lines and concrete markings.

Common challenges in the travel industry and how AI can solve them 

Cassandra Wallace
7/7/2025

Travel businesses need systems that do the work with faster quotes, smarter pricing, and better traveller experiences. We’ve mapped the common travel challenges in the industry, and exactly how AI can solve them.

Read more
Illustration of a person holding a glowing tablet displaying "AI", surrounded by abstract data streams, charts and lines symbolising artificial intelligence and information flow.

Delivering AI projects with purpose: real lessons from the trenches

Aarti Nagpal
7/7/2025

AI isn’t some futuristic toy we’re tinkering with on the side. It’s already woven into the way we get work done at Kiandra. Whether it's helping sift through mountains of invoices or modernising stubborn legacy code, we’re using AI to tackle the headaches that come with real-world software delivery.

Read more
Aerial view of a cargo port at night showing a large container ship being loaded or unloaded by cranes. The scene is illuminated with industrial lighting and features overlay graphics of connected white dots and curved lines, representing a digital or AI-powered logistics network.

Rethinking logistics with AI: real challenges with real solutions

Cassandra Wallace
2/7/2025

In transport and logistics, most operators don’t need to be sold on the benefits of AI, they just need a clear path to making it work. This blog post outlines the most common challenges we see across logistics businesses, and how AI, when implemented correctly, can solve them and improve performance.

Read more

Let’s discuss your next project

Whether you’re curious about custom software or have a specific problem to solve – we’re here to answer your questions. Fill in the following form, and we’ll be in touch soon.

Email

Would you like to receive an occasional email showcasing the latest insights, articles and news from our team of software experts?

Thanks for reaching out! One of our software experts will be in
touch soon to help you with your enquiry
Oops! Something went wrong while submitting the form.

This website uses cookies to improve your experience. By browsing our website you consent to the use of cookies as detailed in our Privacy Policy