Phone800.366.3472 SupportGet Support DocumentationDocumentation Resource CenterResource Center
search
close
Open Menu

Synergex Blog


CodeGen 5.5.1 Released

By Steve Ives, Posted on March 16, 2020 at 10:04 pm

Steve Ives

We are pleased to announce a new CodeGen release that includes a significant new feature named Complex ELSE Clauses. We have some big plans to further enhance IF/ELSE expressions, but for now this initial new feature can be used to simplify complex template file expressions. Here are the full release notes for the new version, which can be downloaded from https://github.com/Synergex/CodeGen/releases.

  • We added support for Complex ELSE Clauses within expressions, which allow multiple expressions of the same type to be evaluated within a single template file construct. We have future plans to extend the capabilities of expressions even further, but for now this new capability can be used to simplify template file code.
  • We improved the error checking that occurs when a processing a Harmony Core Customization File.
  • When using the CodeGen API we have added the ability to specify lists of file overrides at the TaskSet level.
  • We corrected an error that was causing the <HARMONYCORE_BRIDGE_PARAMETER_TYPE> custom expansion token to return incorrect values for structure parameters.
  • This version of CodeGen was built with Synergy/DE 11.1.1c and requires a minimum of version 10.1.1 to operate.

Call to Action for Windows UI Toolkit Developers

By Steve Ives, Posted on February 25, 2020 at 5:06 pm

Steve Ives

In recent months several customers have reported significant slow-downs in their Windows UI Toolkit applications when upgrading to Windows 10 or Windows Server 2016. We’ve been researching this issue, and we believe that much of the slow down resulted from alterations that Microsoft made in the operating system to mitigate the Windows Spectre-Meltdown issues.

In an attempt to mitigate these performance changes, and working in conjunction with one customer that had reported the issue to us, we have been working on various performance optimizations in the Synergy runtime related to low-level window creation, and for the Toolkit file-stack routines when using large lists. The new runtime also has UI improvements related to scaling of fonts on high-DPI monitors, most notably when moving a toolkit application between monitors with different DPI settings in Windows 10. This work is now complete, and we believe it has resulted in significant improvements in performance, which we hope will largely restore previous levels of performance.

We have performed as much internal testing as possible, and the customer we have been working with has also reported good results when testing the new runtime. We would like to be able to ship these improvements in the next Synergy release in the May timeframe, but before we can do that, we need to have several other Windows UI Toolkit developers validate that the changes do not cause any other unforeseen issues in their applications.

What we are asking you to do is to install your application onto a Windows 10 or Windows Server 2016 (or higher) that has Synergy 11.1.1c installed, apply a special runtime patch that we will provide, and test your application. There is no need to re-compile your code; just run your application in the patched 11.1.1c environment and look for any UI issues. You would be looking for any visual anomalies in the UI Toolkit user interface, regions not being painted or cleared correctly, etc.

We believe that our recent runtime changes can deliver significant runtime performance improvements for a lot of users, but because of the significant nature of the internal changes, we need help validating those changes in real user scenarios.

Can you help? If so please contact us as soon as possible, either via Developer Support or through your Synergex Account Representative.


SDI Developer Build 2704 Now Available

By Steve Ives, Posted on February 21, 2020 at 2:04 pm

Steve Ives

We are continually working on improvements to our Synergy DBL Integration for Visual Studio (SDI) product, and we are pleased to announce the release of a new developer build #2704, which is available for immediate download.

This release contains some important improvements in the debugging environment, and also contains some enhancements to IntelliSense related to indexed groups and indexer properties. We also made some improvements in the category options in the new project dialog in  Visual Studio 2019.

If you are running an earlier version 11 release of SDI then we recommend you upgrade immediately to take advantage of these improvements, and if not then you should consider doing so, at least for your development tools. Remember that you can use runtime version targeting to produce binary software for older runtime versions if you’re not ready to upgrade your customer or production systems yet.



Help Us Help You!

By Steve Ives, Posted on February 9, 2020 at 3:51 pm

Steve Ives

As many of you already know, after a little over twenty-two years working as a Senior Consultant in the Professional Services Group, I recently transitioned to a new role as Product Manager here at Synergex. I’m excited about this change because it means that not only will I will have a much more significant role in determining the future roadmap for Synergy/DE and related products, but I also get to continue working directly with our customers.

One of the primary driving factors for some of the recent role changes here at Synergex is our desire to become more market-driven when it comes to determining future product enhancements. In part, we will achieve this by continuing to pay close attention to what the industry as a whole is doing. But a large part of our strategy going forward is based on working more closely with our customers when building new feature lists and future product roadmaps.

Product management is an entirely new area of expertise for me, and it will take some time to become fully competent in my new role. To help me with this transition, I was asked to attend a two-day Product Management conference, which I must say was an interesting and informative experience. I learned a lot, not least of which was that I learned how much more I have to learn!

I don’t want to criticize the event that I attended, which was on the whole very well put together, so I’m not going to name the event, which was attended by product managers from some large organizations that everyone would immediately recognize. It wasn’t an unusually large event; I estimate there were perhaps 200 people in attendance.

In the spirit of honesty, here comes the sales pitch! I have been attending Synergex conferences since the early 1990s, first as a customer, then as a partner, and later as an employee. I can honestly say that nobody does it better when it comes to offering an environment with such abundant learning opportunities AND the chance to network with peers. The conference I just returned from cited peer networking as a benefit also, but in reality, it didn’t happen. For whatever reason, many delegates didn’t seem to want to interact, but also, the event schedule and venue didn’t promote that valuable interaction either.

The 2020 Synergex DevPartner conference is being held in Sacramento, CA this year, and we all hope to see you there. If you have attended one of our events in the past, then you already know what an excellent opportunity it is. If you haven’t joined us in the past, I encourage you to not miss out on this unique opportunity this year. For additional information check out the conference website.

As I settle into my new role, you’ll be seeing more blog posts introducing things we’re considering, and some of you will hear from me directly as I try to extend existing relationships and build new ones. My point of contact with your company will be with some specifically nominated person, but I want to hear from all of you! If your life is in any way touched by Synergy/DE, or by related products such as Harmony Core, and you have something to say, good or bad, I want to hear it.

One way for you to provide feedback is through our Ideas forum, but if you prefer to contact me individually, that’s OK too. I’m not going to post an email address here because I don’t want to deal with a thousand replies from BOTs, but try first name dot last name at synergex.com. That should put us in touch.

I look forward to hearing from you.


Synergy/DE 11.1.1c Released

By Steve Ives, Posted on January 29, 2020 at 6:23 pm

Steve Ives

Important quality improvements for REV11 licensing

A new patch release for Windows and Unix is now available to download on the Synergex website. All customers are encouraged to update to 11.1.1c for important quality improvements.

This update includes new versions of the following products:

  • Synergy/DE (32- and 64-bit)
  • REV11 licensing upgrade package (32- and 64-bit, delivered in one installer on Windows)
  • Synergy DBL Integration for Visual Studio
11.1.1c includes quality improvements for the following issues:
  • IMPORTANT: Previously, in REV11 licensing environments, an expired license error could occur if a license allocated by a program expired while the program was running. Even if new keys had been delivered and installed, if the license server had not been restarted since the new keys were installed, the error could occur.

    It is important that all customers using subscription licensing in a REV11 environment install the 11.1.1c patch (for version 11 systems) or apply the 11.1.1c version of the licensing upgrade package (for version 9 or 10 systems).

    If for any reason you are not able to do so, you should ensure that your license server is restarted as soon as possible after your new subscription keys are delivered. Long-running processes are resilient to a license server restart.

  • In versions 11.1.1a and 11.1.1b, if an attempt to rename a remote file (via xfServer) resulted in an error being generated, in some cases xfServer could fail with a segmentation fault.
  • In versions 11.1.1 through 11.1.1b, using the isutl utility to re-index a large multi-key ISAM file with an index exceeding 4,294,967,295 bytes caused a corrupted index to be created.
  • In versions 11.1.1 through 11.1.1b, when running xfServer in Secure or Trusted mode, a client using the RUSER mechanism to provide login credentials to the server experienced a “Bad username, login rejected” error.
  • In versions 11.1.1 through 11.1.1b, in some circumstances when opening a remote file via xfServer when that server did not already have other files open, the xfServer process could fail.
The patch also includes the following enhancements to Synergy DBL Integration for Visual Studio:
  • We significantly enhanced the Visual Studio build system for Synergy .NET projects by improving the dependency-checking algorithms. Previously, any change in the code of, for example, a class library caused all projects that reference that library to be rebuilt. With these changes in place, dependent projects will only be rebuilt if changes in the dependency library result in the signatures of externally visible items being added, changed, or removed. This will result in a significant reduction in elapsed build times in many cases.

  • We improved the hover-over information (QuickInfo) displayed for type declarations for variables, fields, properties, etc. We added simple colorization and documentation comments (when available), and in some cases, type names are now fully qualified.

See the release notes for a complete list of 11.1.1c changes. See the Synergy/DE 11 page for information about the latest Synergy/DE features.

Visual Studio Adaptive Formatting

By Steve Ives, Posted on January 24, 2020 at 4:32 pm

Steve Ives

In Microsoft Visual Studio version 16.4 a new feature was, I was going to say introduced, but snuck in might be more appropriate way of describing things. There was no mention of the new feature in any release notes that we can find, and an internet search for the name of the new feature currently returns no useful matches!

The feature is called Adaptive Formatting and apparently what it does is allows code editor windows to “heuristically determine if the current file should use tabs or spaces for indentation”. Previously this behavior was determined by a language specific setting, and those settings are still present, but if Adaptive Formatting is enabled (which it is by default by the way), then it wins!

So if your code is indented with tabs, and suddenly Visual Studio decides to start using spaces instead (or vice-versa) then it’s probably Adaptive Formatting getting it wrong! Thankfully this new feature can be disabled by going into Tools > Options > Text Editor > Advanced and un-checking the Use adaptive formatting option.

Happy coding everyone!


SQL Replication – Significant New Features

By Steve Ives, Posted on January 16, 2020 at 8:10 pm

Steve Ives

In recent weeks we have been working on making improvements to our SQL Replication environment, which demonstrates how to easily replicate your Synergy data to a SQL Server database. Some of these changes were undertaken in collaboration with a customer that uses the environment extensively, and we thank them for their input and support. Other changes have been on our road-map for some time and we think you’ll be excited about what has been achieved. Here’s a summary of the changes:

  • Synergy 11 introduced a new SQL Connection API capability which calls the ODBC API function SQLDescribeParam behind the scenes to improve performance and avoid excessive cache memory thrashing for SQL statements that have I/O parameters when accessing SQL Server (VTX12_SQLNATIVE). Synergex recommend setting SSQL_PERFORMANCE_SQL to yes (or setting the SQLPERFORMANCESQL environment variable. We have updated the environment to do this, which should result in improved performance when running in Synergy 11 or higher environments.
  • We have added the ability to run multiple instances of the replicator process side-by-side, within a single data set, and to divide up the replication of different files between these multiple replicator instances. Each instance is assigned a unique instance name and has its own associated instruction queue file, the name of which includes the instance name, as does the log file produced by each instance. In a multi-instance environment developers can chose on a file-by-file bases which data files are replicated via which queue file, and therefor via which replicator instance. It is important to understand that in this scenario there is no synchronization of the sequence in which changes are applied to the underlying SQL database between the multiple instances of the replicator.
  • We have added the ability to exclude certain fields in a record from being appearing in and being replicated to the associated SQL Server database table. It is important that fields associated with keys not be excluded, unless those keys are also excluded (see the next item). Generally the fewer fields/columns that are replicated the faster the replication will be.
  • We have added the ability to exclude certain keys from processing, so that matching database indexes will not be created in the associated database tables. Generally the fewer indexes that exist on a table the faster the replication will be.
  • We have added the ability for the replicator to detect some kinds of database failure, caused by network errors, or the database being shut down or otherwise unavailable, and allow it to gracefully disconnect, and then attempt to reconnect, with a configurable number of retries and retry interval. This should make the replicator processes more robust.
  • We have added the ability to change the database datatypes of fields. The main use case envisaged is transforming decimal fields into implied decimal fields (adding decimal places in the database data), but there may be other use cases, such as transforming Y/N fields into Boolean true/false fields, etc.
  • We have also corrected an issue that could occur if replicator encountered an unexpected error and was configured to use BATCH COMMIT mode. Is some circumstances, if there were uncommitted changes at the time on an error any uncommitted changes could be lost because the change records were deleted from the instruction queue one by one before the batch was committed. Now any instructions related to uncommitted changes remain in the queue file until the batch is committed, and are then all deleted. When the replicator is restarted it will then attempt to reply the changes to the database again. This should help prevent the database getting out of sync if there is a replicator failure.

We’re excited about these new features in our SQL Replication offering and looking forward to hearing your feedback. By the way, many of these new features rely on using the latest and greatest version of CodeGen (5.4.8) which was also released today. If you’re already using an earlier version of the SQL Replication environment, or if you are interested in getting started and would like some assistance, don’t hesitate to contact us through your Synergex Account Representative.


Synergy DBL and Visual Studio Code

By Steve Ives, Posted on October 10, 2019 at 2:52 pm

Steve Ives

Some time ago a customer posted in the Synergy/DE Ideas forum suggesting that a Synergy DBL language plug-in should be created for the increasingly popular Visual Studio Code editor. Over course of the next few months the post received a significant number of votes, and we also started hearing the same request from others.

Later we heard from the original customer that they had started to define some basic language integration themselves, offered to share that initial code, and agreed that it could be open sourced.

At this time we are pleased to announce that initial support for DBL in VS Code is live! We have developed this functionality as an open source project on GitHub (https://github.com/Synergex/vscode-synergydbl) and welcome your feedback and your contributions.

If you just want to try the extension you can search for “Synergy” in the extension marketplace inside of VS Code, or download and install the VSIX from the GitHub Releases page. If you do try the extension out, and have questions or problems, please use the GitHub Issues page to let us know.

The initial scope of the extension is fairly limited, but we have been using the colorization locally for a while now and it makes a huge difference when you just need to do a quick edit to a source file. We are looking forward to seeing what everyone else has to contribute.


CodeGen 5.4.3 Released

By Steve Ives, Posted on September 22, 2019 at 1:01 pm

Steve Ives

I am pleased to announce that another new version of CodeGen has been released, is available for immediate use, and contains several powerful new features:

  • We added a new structure expression token <IF STRUCTURE_PII_FIELDS> that indicates whether any field in a structure has been tagged as containing PII (Personally Identifiable Information). We also added a new field loop expression token <IF PII_SCRUB> that indicates whether a field has been tagged as containing PII data, and a new field loop expansion token <FIELD_PII_TYPE> which inserts the type of PII data a field contains.
  • We added a new field loop expression token <IF USED_IN_RELATION> that can be used to determine whether the field currently being processed is involved in any relations to other structures.
  • We added a new custom field loop expression token <IF HARMONYCORE_CUSTOM_FIELD> and a new custom field loop expansion token <HARMONYCORE_CUSTOM_FIELD_TYPE> to the Harmony Core extensions assembly. In a future release Harmony Core will use these new features to allow developers to easily implement support for custom field types that may be implemented within their applications data set.
  • We added a new tag loop expansion token <TAGLOOP_FIELD_SNTYPE> and relation key segment loop expansion token <LITERAL_SEGMENT_SNTYPE>.

Additionally, because the Symphony Framework is no longer maintained by Synergex, and is no longer an open source development effort, we have decided to discontinue the distribution of the “Symphony Framework CodeGen Extensions” assembly that was formerly distributed along with CodeGen. We continue to support the addition of custom extensions and the Symphony Framework extensions can be added back at any time by any Synergy developer with the necessary Synergy .NET development tools.

This version of CodeGen was built with Synergy/DE 11.1.1 and requires a minimum of version 10.1.1 to operate.


Enhanced CodeGen CreateFile utility

By Steve Ives, Posted on August 26, 2019 at 9:58 pm

Steve Ives

For some time CodeGen has shipped with a utility called CreateFile that (given an appropriately configured repository) could be used to create an ISAM file based on a repository FILE or STRUCTURE definition.

A customer recently asked me to create a mechanism that they could use to create multiple files, load data into those files, and also support creating both RELATIVE and ISAM files. Rather than writing something completely new I decided to extend the CreateFile utility, and that new feature has now been released along with the latest version of CodeGen (5.4.2).

Briefly, there is a new command line option -in that allows you to specify an input file containing the details of one or more files to be created and and populated. The file uses a JSON format. If you’re interested in finding out more you can find additional information in the CodeGen documentation.


CodeGen 5.4.0 Released

By Steve Ives, Posted on July 3, 2019 at 9:59 am

Steve Ives

It’s been a while since a GodeGen release was announced on this BLOG, but rest assured they have been coming thick and fast; in fact there have been 9 interim releases since we last announced here.

So why all the frenetic activity in CodeGen land? Well the primary driving force for so many releases and so many new features is to provide support for the ever evolving Harmony Core RESTful Web Services framework. If you’re not familiar with Harmony Core then you should check it out. More and more Synergy developers are starting to take advantage of it as a way to expose their applications data and business logic in whole new ways and to support a myriad of use cases.

So what’s new in CodeGen 5.4.0? Well the answer to that question is … a LOT! I won’t list all the new features here but if you want to check out the specifics then you can head over to the CodeGen Releases page where you’ll find a detailed change log for this and previous versions. And if you need more information than that then check out the CodeGen Documentation.

We recommend that all developers who are using CodeGen upgrade to this latest version, but particularly if you’re developing with Harmony Core.

Happy 4th Everyone!


CodeGen 5.3.6 Released

By Steve Ives, Posted on September 23, 2018 at 4:43 pm

Steve Ives

Just a quick note to announce that CodeGen 5.3.6 has been released and is available for immediate use. This latest version represents the culmination of a series of recent releases which together have added significant new features across the entire product, including the ability to generate code based on metadata found in the xfServerPlus Synergy Method Catalog.

Many of the new features were added specifically to support code generation for the new Harmony Core RESTful web services framework that we are excited to be introducing at the upcoming DevPartner Conference in New Orleans next month.

If you are joining us for the post-conference Harmony Core workshop then you will need to have this new version of CodeGen installed on your development system; you can download it here. And even if you’re not intending to use the new Harmony Core framework, there are many new features that may be useful to all CodeGen users; we recommend this release for general use.

We’re looking forward to seeing you all in New Orleans between October 8th and 12th. If you haven’t signed up yet, it’s not too late! You can still sign up here.


CodeGen 5.2.3 Released

By Steve Ives, Posted on December 1, 2017 at 11:18 pm

Steve Ives

We are pleased to announce the release of CodeGen version 5.2.3. The new release includes new features, addresses some issues found with previous releases, and also paves the way for once again being able to use CodeGen on non-Windows platforms through experimental support for the .NET Core environment.

As always, you can download the latest version of CodeGen from here.

CodeGen Version 5.2.3 Release Notes

  • Added a new experimental utility to the distribution. The Code Converter utility can be used to automate bulk searches within and bulk edits to an applications code. This utility is in a usable form. However, it is still a work in progress and is likely to undergo substantial changes as it evolves.
  • Added two new utility routines (IsDate.dbl and IsTime.dbl) that are referenced by some of the supplied sample template files.
  • Corrected a regression that was introduced in the previous release which caused the field loop expansion token <FIELD_SQL_ALTNAME> not to default to using the actual field name if no alternate name was present.
  • Performed an extensive code review and cleanup, updating the code in several areas to take advantage of new features available in the Synergy compiler, and also improving efficiency.
  • Fixed an issue that was causing the CreateFile utility -r (replace file) option to fail, an existing file would not be replaced even if the -r option was specified.
  • Fixed an issue in the CreateFile utility that would result in an unhanded exception in the event that invalid key information was passed to XCALL ISAMC.
  • Made some minor code changes to allow CodeGen to be built in a .NET Core environment and we hope to be able to leverage .NET Core to once again support the use of CodeGen on non-Windows systems (starting with Linux) in the near future.
  • This version of CodeGen was built with Synergy/DE 10.3.3d and requires a minimum Synergy version of 10.1.1 to operate.

Symphony Framework Components

  • We no longer ship the Symphony Framework sample templates with CodeGen. You can obtain the latest Symphony Framework templates from the Symphony Framework web site (http://www.symphonyframework.net).
  • There were no Symphony Orchestrator changes in this release.
  • There were no Symphony Framework CodeGen Extensions changes in this release.

CodeGen 5.2.2 Released

By Steve Ives, Posted on October 25, 2017 at 3:00 pm

Steve Ives

We are delighted to announce the availability of the CodeGen version 5.2.2 release that includes the following enhancements and changes:

CodeGen Version 5.2.2 Release Notes

  • Added a new field loop expansion token <FIELD_FORMATSTRING> which can be used to access a fields format string value.
  • Added a new command-line option -utpp which instructs CodeGen to treat user-defined tokens as pre-processor tokens. This means that user-defined tokens are expanded much earlier during the initial tokenization phase, which in turn means that other expansion tokens may be embedded within the values of user-defined tokens.
  • Removed the RpsBrowser utility from the distribution; it was an experimental project that was never completed.

This version of CodeGen was built with Synergy/DE 10.3.3d and requires a minimum Synergy version of 10.1.1 in order to operate.


Don't miss a post!

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Recent Posts Categories Tag Cloud Archives