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

Synergex Blog


Merging Data and Forms with the PSG PDF API

By Steve Ives, Posted on July 6, 2016 at 9:53 pm

Steve Ives

When I introduced the PSG PDF API during the recent DevPartner Conference in Washington DC I received several questions about whether it was possible to define the layout of something like a standard form using one PDF file, and then simply merge in data in order to create another PDF file. I also received some suggestions about how this might be done, and I am pleased to report that one of those suggestions panned out into a workable solution, at least on the Windows platform.

The solution involves the use of a third-party product named PDFtk Pro. The bad news is that this one isn’t open source and neither is it free. But the good news is it only costs US$ 3.99, which I figured wouldn’t be a problem if you need the functionality that it provides.

Once you have PDFtk Pro installed and in your PATH you can then call the new SetBackgroundFile method on your PdfFile object, specifying the name of the existing PDF file to use as the page background for the pages in the PDF file that you are currently creating. All that actually happens is when you subsequently save your PDF file, by calling one of the Print, Preview or Save methods, the code executes a PDFtk Pro command that merges your PDF file with the background file that you specified earlier. Here’s an example of what the code looks like:

;;Create an instance of the PdfFile class
pdf = new PdfFile()

;;Name the other PDF file that defines page background content
if (!pdf.SetBackgroundFile(“FORMS:DeliveryTicketForm.pdf”,errorMessage)
    throw new Exception(errorMessage)

;;Other code to define the content of the PDF file

 

;;Show the results
pdf.Preview()

There are several possible benefits of using this approach, not least of which is the potential for a significant reduction in processing overhead when creating complex forms. Another tangible benefit will be the ability to create background forms and other documents using any Windows application that can create print output; Microsoft Word or Excel for example. Remember that in Windows 10 Microsoft has included the “Print to PDF” option, so now any Windows application that can create print output can be used to create PDF background documents.

I have re-worked the existing Delivery Ticket example that is distributed with the PDF API so that it first creates a “form” in one PDF file, then creates a second PDF file containing an actual delivery ticket with data, using the form created earlier as a page background.

I have just checked the code changes into the GitHub repository so this new feature is available for use right away, and I am looking forward to receiving any feedback that you may have. I will of course continue to research possible ways of doing this on the other platforms (Unix, Linux and OpenVMS) but for now at least we have a solution for the Windows platform that most of us are using.


CodeGen 5.1.3 Released

By Steve Ives, Posted on June 30, 2016 at 1:11 pm

Steve Ives

Tomorrow morning I’m heading back home to California having spent the last two weeks in the United Kingdom. The second week was totally chill time; I spent time with family and caught up with some old friends. But the first week was all about work; I spent a few days working with Richard Morris (it’s been WAY too long since that happened) and I can tell you that we worked on some pretty cool stuff. I’m not going to tell you what that is right now, but It’s something that many of you may be able to leverage in the not too distant future, and you’ll be able to read all about it in the coming weeks. For now I wanted to let you know that we found that we needed to add some new features to CodeGen to achieve what we were trying to do, so I am happy to announce that CodeGen 5.1.3 is now available for download.


PSG PDF API Moves to GitHub

By Steve Ives, Posted on May 28, 2016 at 11:05 am

Steve Ives

This is just a brief update on the current status of the PDF API that I have mentioned previously on this forum. During the recent DevPartner Conference in Washington DC I received some really great feedback from several developers already using the API, and some very positive reactions from several others who hope to start working with it in the near future.

During my conference presentation about the API I mentioned that I was considering making the code a little easier to access by moving it out of the Code Exchange and on to GitHub. Well it turns out that was a popular idea too, so I am pleased to announce that I have done just that; you can now obtain the code from its new home at https://github.com/Synergex/SynPSG_PDF. And if any of you DBL developers out there want to get involved in improving and extending the API, we will be happy to consider any pull requests that you send to us.


Synergex Celebrates 40th Anniversary

By William Mooney, Posted on April 15, 2016 at 10:45 am

Avatar

20160414-banner5
We are excited and grateful to celebrate Synergex’s 40th year in business.

We started by delivering applications to local businesses in the Sacramento area 40 years ago today. Shortly after opening our doors, founders Ken Lidster and Mike Morrissey got frustrated with having to rewrite perfectly good applications to take advantage of the latest DEC (Digital Equipment Corporation) hardware and/or operating systems each time DEC came out with a new kit. This inspired them to create DBL (Data Business Language), which could take any version of DEC’s DIBOL language and simply recompile and relink to run on any DEC platform. This dramatically changed our—and ultimately our customers’—direction and put us on the map, as they say.

DBL was the first portable development language within DEC. In the ‘80s, Synergex (then named DISC) also became the first company to make it possible to migrate applications from a proprietary environment to the then emerging Unix/Xenix and MS-DOS systems. In the ‘90s, we enabled migration to Windows; at the turn of the century, to the web, APIs, and RDBMSs (SQL Server, Oracle, ODBC access, etc.); and in the teens, to .NET. Today we provide a migration path to mobile devices.

Forty years ago, very few of us, if any, could have imagined how today’s computing environment would look. Fewer still could have imagined that the applications they were developing would be able to run on all of these emerging platforms—but they can! Last week, I saw a DBL source code file dated 1976 run in .NET and on an Apple iPhone. Again, who could have imagined?!

Since our early shift to providing software development tools to application developers, our commitment to “portability” has never wavered. We have remained steadfast in our mission to deliver software tools and services to help our customers take advantage of current and relevant computing. Our products have been the ultimate “future proofing” to the significant investment customers have made in enterprise solutions.

And while many companies that were well known back in the day are no longer on the scene, we continue to grow and thrive more than ever—thanks in large part to our customers. Many of our ISV customers are the leaders in their respective vertical markets and continue to maintain their top positions and expand their install base. Some of our direct end users are household names with north of $100 billion in annual sales, who leverage  our tools to help them prosper. Without their support and partnership, I wouldn’t be writing this. So here’s a big shout out to all of our customers, with the biggest thanks there is.

Lastly, a company doesn’t grow and thrive without the dedication and hard work of its employees—both past and current. We have been—and continue to be—blessed to have very talented and driven people contribute to our success these past 40 years. Several, like myself, have been here for the lion’s share of our existence. But we also have many new employees who represent the future—and the next 40+ years of Synergex. Just as 40 years ago we couldn’t imagine what our industry would look like today, it’s impossible to envision what it will be like 40 years from now. Regardless, I feel very confident that Synergex will be here for our customers and their future generations, supporting whatever future computing environments come along.


The stars have aligned—Microsoft’s plans now synchronize with Synergex’s founding principle of portability

By William Mooney, Posted on April 1, 2016 at 3:31 pm

Avatar

It was very exciting to learn at Build this week that Microsoft will now be offering Visual Studio (VS) as a development tool to build anything to deploy anywhere—from Linux to Apple to Android, you name it! As Steve Ives referenced in his recent blog post, all of the Xamarin tools that we’ve been leveraging are now included with VS.

The really cool thing about all of this is that Microsoft’s direction is in perfect alignment with ours. At our Summit meeting at the end of last year—a gathering of Synergex customers who provide input on Synergex’s technology roadmap—we received overwhelmingly positive feedback on our proposal to include the ability to use traditional Synergy within Visual Studio.

More and more of our customers are adopting Synergy .NET while still maintaining and developing in traditional Synergy, leading them to work with two separate development IDEs: Workbench for traditional Synergy and VS for Synergy .NET. We are happy to say that this will all change with the release of Synergy/DE 10.3.3, pegged for OUR conference in May. The 10.3.3 release will allow developers to use VS for both traditional and Synergy .NET—the post-conference workshop is even dedicated to this topic! I’m even thinking that this new functionality might inspire even more developers to play/experiment with Synergy .NET once they are using VS as their single IDE.

Synergex has always been committed to helping companies leverage their existing investments to stay competitive and current. This latest announcement from Microsoft really echoes that sentiment. After this week, reaching for the stars is now easier than ever!

build

Microsoft Make Xamarin Tools Free

By Steve Ives, Posted on March 31, 2016 at 8:49 am

Steve Ives

One of the big news items from today’s Keynote at the Microsoft Build conference is that the Xamarin tools, which allow .NET developers to create fully native apps for the iOS, Android and Windows Universal platforms with a single code base, will in future be bundled for free with Visual Studio. Microsoft purchased Xamarin in February 2016 and since then a lot of developers have been waiting with baited breath to find out what would change, and now we know. Exciting news if you want to develop mobile applications.


Microsoft Release Visual Studio 2015 Update 2

By Steve Ives, Posted on March 30, 2016 at 10:25 pm

Steve Ives

Today, amongst many other things, Microsoft announced the release of Visual Studio 2015 Update 2. We wanted to let you know that if you are doing Synergy .NET development with the current Synergy 10.3.2 beta version then it’s OK to apply Update 2. But if you’re running the 10.3.1 release of Synergy (or an earlier version) you should not install Update 2 just yet. We are currently finalizing and will soon release a hotfix for Synergy 10.3.1 to that will add support for Visual Studio 2015 Update 2, but for now you should stick with Update 1.


PDF API Enhancements

By Steve Ives, Posted on March 28, 2016 at 1:38 pm

Steve Ives

Last year I announced that we had created a new PDF API and made it available via the CodeExchange in the Synergy/DE Resource Center. Now I am pleased to announce that we have made some enhancements to the original API, namely by adding the ability to:

  • View existing PDF documents (Windows only).
  • Print existing PDF documents (Windows only).
  • Draw circles.
  • Draw pie charts.
  • Draw bar charts (with a single or multiple data series).

Here’s an example of a pie chart that was drawn with the new API:

PieChart

Here’s an example of a bar chart:

BarChart

And here’s an example of a multi-series bar chart:

MultiBarChart

It’s early days for the support of charts, and I plan to make several additional enhancements as time permits, but I wanted to make the work that has been done so far out into the wild, and hopefully get some feedback to help me decide what else needs to be done.

If you’re interested in learning how to use the PDF API then I’ll be presenting a session that will teach you all about it at our up-coming DevPartner conference in May. So if you haven’t already done so, head on over to http://conference.synergex.com to reserve your spot at the conference now.



CodeGen 5.1.2 Released

By Steve Ives, Posted on January 28, 2016 at 9:55 am

Steve Ives

We have just released a CodeGen update that includes a fix for a problem that was discovered recently related to the processing of enumerated fields. If your repository includes enumerated fields and you use the field selection loop token <SELECTION_VALUE> (or the Symphony Framework custom token <SYMPHONY_SELECTION_VALUE>) then we recommend that you update to the new version and re-generate your code. As a reminder CodeGen recently moved to GitHub, you can find the new release at https://github.com/Synergex/CodeGen/releases.


CodeGen Has a New Home

By Steve Ives, Posted on December 9, 2015 at 1:45 pm

Steve Ives

Today we are announcing that we have moved the open source CodeGen project from it’s former home on CodePlex to a new home on GitHub. We made the decision to do this for several reasons, not least of which is the fact that GitHub has effectively become the de-facto standard place for hosting open source projects. Even Microsoft, who built and operate the CodePlex site using their own Team Foundation Server source control technologies seem to have lost interest in it; in the last 18 months or so they have moved pretty much all of their own considerable number of open source projects to GitHub also! GIT also has several very nice features over and above what TFS has to offer, and also has the benefit of being very considerably faster to use. Related to the move is a new version (CodeGen 5.1.1), but the only changes in the new version are related from the move from CodePlex to GitHub; there is no new functionality in the new release over the 5.1.0 version that was released a few days ago.

If you don’t already have one we encourage you to create a GitHub account and once logged in to “watch” CodeGen. If you wish to receive notifications about new CodeGen releases you can also subscribe to the CodeGen Releases Atom feed. CodeGen is still distributed under the terms of the New BSD License. For the time being we plan to leave the CodePlex environment intact, but no new changes will be checked in there and no new releases will be published there.

Here are a few useful GitHub URLs related to our new home:

Project homehttps://github.com/Synergex/CodeGen
Wiki (information)https://github.com/Synergex/CodeGen/wiki
Download latest versionhttps://github.com/Synergex/CodeGen/releases/latest
Issue trackinghttps://github.com/Synergex/CodeGen/issues
Releases Atom feedhttps://github.com/Synergex/CodeGen/releases.atom

CodeGen 5.1 Released

By Steve Ives, Posted on December 4, 2015 at 4:07 pm

Steve Ives

Just a quick note to announce that we have today released CodeGen 5.1. This release has but one new feature, but it does allow me to solve a challenging problem that I faced while working on a customer project recently. I have dubbed this new feature conditional processing blocks. Essentially it is the ability to conditionally include (or exclude) parts of a template file based on the presence or absence of identifiers that can be declared on the command line. It allows you to achieve the same kind of results that you would when using .DEFINE, .IFDEF and .IFNDEF in DBL source code, but within template files. For example a developer could include code like this in a template file:

    open(channel=0,u:i,”<FILE_NAME>”)
    <IF DEFINED_ATTACH_IO_HOOKS>
    new <StructureName>Hooks(channel)
    </IF>

The developer would then have the ability to choose whether to include or exclude the code that assigns the I/O hooks object to the channel that was opened at the time that they generate the code. By default the I/O hooks code would not be included; if it was needed the developer would define the ATTACH_IO_HOOKS identifier as they generate the code. They would do this by using a new –define command line option:

    codegen –s EMPLOYEE –t FILE_IO_CLASS –r –define ATTACH_IO_HOOKS

This may seem like a very simple change, and it is, but my mind is now racing thinking about all of the new possibilities it opens up.


OpenVMS is alive and well

By Don Fillion, Posted on October 27, 2015 at 4:51 pm

Avatar

I recently attended the OpenVMS Boot Camp in Nashua New Hampshire. I am pleased to report (with a nod to Mark Twain) that rumors of the death of OpenVMS were greatly exaggerated! VMS Software Incorporated (VSI) has taken over the product and appears to have the situation well in hand.

There were over 100 companies in attendance at the Boot Camp, with Hewlett Packard a very visible participant. The conference was quite lively, with multiple tracks running from 8:00 to 6:00 daily, and events planned each evening. At the conference, there was an undercurrent of optimism and energy, which was no doubt tied to the future of VMS. VSI has already released OpenVMS 8.4-1H1, which provides support for HP Integrity i4 server models based on the Intel® Itanium® 9500 series processors. Moving forward, VSI presented at the Boot Camp a rolling roadmap that provides for at least one release per year for the next few years, improving and extending the software on its current HP platforms—including new versions of TCP/IP and Java, a new file system, and CLI improvements. Concurrently, they are working on VSI OpenVMS 9, which will add support for x86-64 bit processers (slated for 2018). They are planning to support select HP (Intel and AMD) servers first, then Dell and others as well. ARM support is slated to be considered after x86-64.

VSI has pledged at least 5 years of active product support per release, followed by a minimum of 2 years of prior-version support. With releases planned into 2018, this provides a viable, supported future for OpenVMS at least into 2025 and likely well beyond.

The future of OpenVMS is now being tended to by some very experienced engineers—many have come from HP and have been with the O/S throughout its various versions and ownership.

So, VMS users, the immediate takeaway is to listen to the words of the late great Douglas Adams: “Don’t Panic!“ OpenVMS is not going away anytime soon.


Updated PDF API

By Steve Ives, Posted on October 16, 2015 at 11:24 am

Steve Ives

A few weeks ago I announced that a new API called SynPSG_PDF had been added to the code exchange. Today I am pleased to announce that the API has been updated and, in addition to Windows, is now also supported on systems running Linux (32-bit and 64-bit), OpenVMS (AXP and IA64) and Synergy .NET.

Also, as a direct result of recent customer feedback, I have added a mechanism that allows a PDF file to be easily created from an existing text file with just a few lines of code. This means that existing report programs that already produce plain text output can be easily modified to produce PDF output with a small amount of code like this:

AttachFileExampleCode

If  you would like to check out the API you can download the code from https://resourcecenter.synergex.com/devres/code-exchange-details.aspx?id=245.


Investing in the look and feel of your applications doesn’t matter…or does it?

By William Mooney, Posted on October 7, 2015 at 10:29 am

Avatar

synergex-blog-image2Years ago I used to say to our direct corporate end-user customers, “You’re lucky. It doesn’t matter what your application(s) looks like because you’re not selling to compete for new business—all that matters is that it works well and meets your business needs.” End-users plugged merrily along, content to focus on functionality and substance, often in the form of a green-screen front end. In fact, many of those customers claimed that a character-based/green-screen application was much more efficient than using a “cumbersome mouse”—especially when it came to data entry. In the 90’s when Windows, GUI, and the like came on the scene our Independent Software Vendors (ISVs) had a different story—to be competitive, the ISVs suddenly had to worry about both how well their applications functioned AND how they looked. People and companies didn’t want to buy applications that weren’t shiny and new with a great user interface (UI)—even if a sophisticated UI didn’t always correlate with a sophisticated application under the hood. It became a game of how flashy can you make it as opposed to how well does it function.

Fast-forward a few years, and now everyone has to play on the same field—ISVs and corporate end-users. In today’s world, even corporate end-users need to make the move to modernization. If they don’t, the next generation of decision makers will. And when that happens, it’s likely the existing, time-proven solution that has been customized and fine-tuned over the past 30+ years, the one that makes the business unique and competitive, the one that has solved—and continues to solve—everyday business issues, will not survive. Yep, this new generation of decision makers will judge the book by its cover and determine the value of the application based on the way it looks and not what it does. It makes sense, because this new generation grew up knowing only great-looking applications—applications that are generally simpler and more discrete in functionality than complete, integrated solutions that touch every part of the organization but appear less shiny and sophisticated.

So, the bottom line is that if your application doesn’t look great, it will be perceived as less than great, and when that new decision maker comes in—it may be too late to save what you’ve spent so many years perfecting. Needless to say, I strongly recommend that all customers invest in modernizing their application(s) with a great looking UI and UX (user experience). As Billy Hollis affirmed at the recent Synergy DevPartner Conference, UX is equally as important. It’s not just the look and feel, but also the experience of the user that’s critical. It’s important to emphasize here too that a great UI/UX design and a high-performing/highly productive solution are not mutually exclusive. Having a well-designed GUI based application can only add to the functionality and power of your solution. So even if you feel your character-based solution is really the best one for your business, it’s rare for the look and feel to be overlooked in favor of substance. I can’t stress enough the importance of making this investment.

A significant benefit of having a Synergy-based application is that you can separate the UI from the logic and data. This means you can use future UIs without sacrificing the years of investment you have put into your business application. While the look and feel is what everyone sees, in reality the business logic is the true value. And once these two are separated, you can extend the life of your application(s) indefinitely, taking advantage of the ever evolving UI trends that come along. Although it may take some effort initially to separate the UI from the back-end, this is the course of least resistance and investment, and it will offer the largest and longest return.

At Synergex, our main focus is to develop solutions to help you advance and leverage your investment to take advantage of the latest modern technologies. In fact, with our recent release of Synergy DBL, we are venturing into the Universal Windows Platform (UWP), the latest UI experience. And while none of us can be certain what UI trends will be popular 10 years from now, just as none of us back in the ‘80s could have imagined what today’s UI would look like, I’m confident that we will be able to help you leverage your back-end and take advantage of whatever the future holds.


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