Extend your feature set

  • 1 February 2019
  • 3 replies
Extend your feature set
Userlevel 4
For a long time we have offered features outside of our standard range as extenders; small files containing custom code that configure a range of properties which allow the use of an otherwise unavailable feature, such as the maps component or the resource scheduler. This was a great way to integrate new (and sometimes experimental) components, but it also introduced a lot of overhead and decreased maintainability of the GUI. Every little change to the extender meant changing the code, compiling it into a dll, and deploying it. Furthermore, changes to our codebase that impacted a certain extender meant going through the extenders for every customer and checking for errors.

To address these issues we decided to create a way to model the extenders in the Software Factory. While it's still not a full integration of these features into the Software Factory it creates an easily accessible and maintainable way to implement the current set of extenders into your products. It also provides a way for us to seamlessly integrate any new extenders in the future.

Note: while we tried to make this as accessible as possible this is still an advanced feature and some technical knowledge of the extender may be required.

Getting started

The Extenders tab page can be found in the Full model screen. A new extender can be created by adding a new record, selecting the extender type and choosing a name.

Creating a new extender

After the extender has been created, a list of properties will be available under the Extender properties tab. Here values can be assigned to the properties. A more detailed description for each property can be found in the description field. A property highlighted in red is mandatory and must have a value assigned. Other properties are either optional, or have a default value when no value is assigned in the modeler.

Configuring properties

When can I start using this?

If you are currently on version 2018.3 of the Software Factory you can already use the modeler for a select number of extenders like the resource scheduler and maps. With the release of 2019.1 all currently existing extenders will be available in the Software Factory.

3 replies

Userlevel 5
Badge +10
Since using version 2018.3 a message is displayed when starting a project in developer mode, telling the user that extenders could or should be created and configured in the Software Factory.

I just read this blog. so I thought: "Let's have a look at this feature". Creating an extender is simple enough, but getting an idea what could or should be entered in each of the properties ( mandatory ones or not) is up to the developers imagination or best guessing. Without an understanding of what is built in the corresponding DLL.

So while this blog is an interesting one, it won't get SF developers getting started entering the appropriate and/or valid values in each property. For instance: the "Initial zoom level", a binary value.. What is what in this case?

I have multiple tables using the maps extender. Do I have to create an extender for each one?

Will there be a full explanation for each extender in this community shortly, or is calling the Service Desk for assistance the way to go?
Userlevel 6
Badge +14
I also found out that it is difficult to get started with the maps extender.

It would be helpful to have a copy of filled in form of a working example available in the documents.
Userlevel 4
Hello Henri,

First of all, thank you for the feedback. We recently checked the descriptions for all the properties and improved the ones we felt were vague or incomplete. The updated descriptions will be available with version 2019.1.

Regarding the extenders being hard to configure, that is something we tried to alleviate by making the descriptions better. But unfortunately, it’s something we can’t take away entirely which is why the point was made in the blog post that this is an advanced feature. Some extenders require API calls and, depending on which plug-in is used, can vary a lot. We can try to put some examples up on the community site, but it probably won’t be a catch-all solution. If you have any specific questions you can always open a topic on the community site.

In the meantime, if you find any descriptions that don’t seem adequate please don’t hesitate to create a TCP ticket. We appreciate all feedback.

And finally, to answer your question about multiple tables. Yes, every map instance needs to be its own extender. If the configurations are very similar you can always copy a working extender and make the necessary adjustments.