Last Saturday Microsoft released the second major update of its Windows 10 Technical Preview for customer evaluation. Although this build won't have all the eye-catching features demonstrated in the Windows 10 event last week, the new browser Spartan is not there for example, it's still worth having a try. The size of 32-bit image file is about 3GB, while 64-bit image is more than 4GB, but it's only a piece of cake to download in today's network. To install Windows 10 Technical Preview on a new VMWare VM is also very easy and straight. The latest VMWare Workstation version 11 supports Windows 10 Tech Preview as a client OS, but I only have VMWare Workstation 9.0, so I chose Windows 8 instead, good luck! it worked and the installation went smoothly. It took me less than 30 minutes to complete all the installation and setup process.
I started exploring of the new Windows, clicking here and there, it's very easy to get familiar with the new environment and get start to use. After a while, I just couldn't wait to know how well PowerBuilder can run on this new OS.
Launch the PB12.6 GA installer, install PB.NET prerequisites then SQL Anywhere 16 and finally PowerBuilder. All ran smoothly, like doing on Windows 7. At the end of the installation, I chose not to restart Windows. Click the Start Menu, looking for entries for PowerBuilder IDE. It surprised me a little, you can see what I saw from the following screen shot. All executables installed by PB were arranged in a single level under the top level SAP folder, second and deeper levels are missing. This is worse than Windows 8, probably a limitation of Windows 10?
I clicked to run PB classic IDE, however it just hanged at the very first splash window, what a shockImage may be NSFW. Clik here to view.! Realized that I didn't restart after the installation, I did a reboot of the VM. Ran PB classic IDE the second time, Alla... it's OK now. Look at the caption bar of PB IDE in the below screen shot.
Then, ran the PB Examples application shipped with PowerBuilder, I executed a lot examples there, all worked perfectly. Here's a screen shot of graph drill-down example.
I tried PB.NET IDE and developed a WPF application finally, all worked very well. I captured a screenshot of both PB.NET IDE and a running PB WPF application in the following picture. Note that window in the foreground is the PB WPF application.
To summarize, my first play with PowerBuilder 12.6 on the latest Windows 10 Technical Preview is very encouraging, I even think the performance is better than on Windows 7, especially for PB.NET IDE. Though Windows 10 is still in the early stage today, I believe, running PowerBuilder on Windows 10 final release will be straight forward. Image may be NSFW. Clik here to view.
As announced at the PowerBuilderTV webinar held on Thursday, January 29, 2015, Mr. Dirk Boessmann, Senior Vice President of Mobility at SAP, will attend the Charlotte Conference and speak on the future of PowerBuilder. This will be a fantastic opportunity for the PowerBuilder community to meet and speak with a key player in the future of SAP PowerBuilder first hand.
Mr. Boessmann will be holding his discussion session on Friday, May 8th at the conference.
You can register for the conference at www.ncpbug.org
I am using transaction object .dbms = "odbc" for connection.
If I create DSN then its working fine.
But I want to connect to Cloud database without DSN Creation.
Can you please let me know what will be the connection string and transaction object's property I will have to set so I can connect to multiple database on cloud?
The first thing is that no, Dirk Boessmann was not able to announce SAP’s plans for PowerBuilder after 12.6. The length of time taken to give us an answer is not the only problem; SAP’s lack of transparency - stricter than Sybase’s concerning preliminary announcements – has increased uncertainty among PB shops and on their past and future investments.
That being said, I see some positive points from the webinar: It’s the first time a Senior VP has spoken about PB on PBTV – from either Sybase or SAP. Taking into account the restrictions imposed by SAP, it’s not so easy. Dirk Boessmann has already made the trip to Berlin to meet with a group of eager PB developers. Maybe I’m wrong, but I doubt he would have made all of this effort if SAP didn’t intend to move forward with positive actions for PB…
Despite these restrictions, I noticed some interesting information:
As highlighted by Bruce, Dirk has reiterated that there’s no intention to kill PB, especially silently. If such a case were to occur, SAP would communicate far in advance to give PB users enough time to migrate their applications.
There’s no intention either to simply release a “maintenance mode”, but on the contrary, there’s a real will to evolve PB – even if no precise information was given on the nature of this nor the timing.
The next meet-up is at Charlotte, where Dirk Boessmann will attend. He should present a plan for PB, upon validation by the upper management of SAP.
Also, I really do find refreshing the continued involvement of the PB community. The Webcast yesterday beat all PBTV audience records, and not just during Dirk Boessmann’s part, but during almost the entirety of the webcast. Developers of PB companion tools remain very active, with a number of new products coming out this year. PowerBuilder events remain popular, and the discussion in PB forums just as lively.
Finally, I’d like to correct an oversight: we spoke about the Charlotte PowerBuilder Conference yesterday but forgot to mention the upcoming ISUG-TECH conference from March 29 until April 2 in Atlanta that includes 9 dedicated PowerBuilder sessions.
Over 25 PB sessions and workshops: Design, mobility, testing, reporting, tips and techniques
Two days of Pre-Conference Intermediate Training Sessions (May 4 & 5)
Early Registration open now at $295 (Full Registration is $495)
Both conferences also feature presentations by John Strano and training workshops by Yakov Werde.
Dave Fish will be presenting at Atlanta.
Dirk Boessmann, Senior Vice President of Mobile Development at SAP, will be at Charlotte to discuss SAPs future plans for PowerBuilder
The Charlotte conference is exclusively PowerBuilder. The Atlanta conference is more like the old TechWaves in that it covers PowerBuilder, but it also covers a number of products including PowerDesigner, ASE, IQ, Rep Server, SQL Anywhere, HANA, SAP Mobile Platform and SAP Fiori.
I'll be presenting at both conferences. The sessions I'll be presenting at both are:
Using Visual Studio.Net Visual Controls in PowerBuilder Classic
Using Visual Studio.Net Non-Visual Assemblies in PowerBuilder Classic
Using PowerBuilder Non-Visual Assemblies in Visual Studio.Net
Using PowerBuilder.Net Visual Controls in Visual Studio.Net
At the Charlotte I'll also be covering New Features in PowerBuilder 12.6.
Our team is trying to upgrade from Powerbuilder 12.5 to 12.6 in order to take advantage of new features. The problem we are running into is that when we run the migrated project from 12.6 the application crashes every time we go into the parts of the application where Imageman ActiveX Control is present. We took the control off and it runs the application just fined. We are deploying the application in P-Code 32-Bit. When we add this control to a test project with the ActiveX control in it then it does the same thing, but works if we deployed in Machine Code. Our application cannot be run in Machine Code, so we still have to find a solution. We know the error is an Access Violation to memory, which may have to do with how Powerbuilder is manifesting the Build in the OS.
This is an old discussion. But I insist because even if PB 12.6 was finally released September 2014, it was a different product from what I expected and surely missed lot of features that some of us expected for PB 15. I will explain my point.
During the past years we saw some presentations for PB 15 (most of them right after PB 12.5 was launched). It was a good thing, back in 2011, to have some feedback about our preferred IDE's future. Something we are still missing today… It was one thing Sybase did well at the time, but unfortunately had not enough time to complete, as the migration to SAP was in progress.
With PB 12.6 we did get following features:
Updated support for the .NET Framework v4.5
MSS 2012
Oracle 12
Windows 8
OData Support
Dockable Windows
32 and 64 bit deployment
From those features the one that we first heard in a later time was OData Support (which was mentioned and demonstrated dusting 2013). About the Updated support for the .NET Framework v4.5, for me it’s still not clear what does this means, as all test I made to PB.NET 12.6 did worked using .NET Framework v4.
For PB 15, we were expecting a lot of improvements for PB Classic. One of them which was promoted a lot was Dockable Windows Support. This has been implemented to PB 12.6, and seems to be working fine… A new tab in window’s properties (which in some old presentations did not exist) helps a lot.
There is also a sample application that imitates PB.NET IDE which shows what can be done using docking windows.
Features that didn’t made it in PB 15 Beta and PB 12.6 MR.
Features that did not came with PB 12.6, but for some we saw some screenshots or there were rumors, was Grid Layout, Native PDF Support and PB Controls in toolbars (for this one will post a separate blog post).
Grid Layout was a very interesting feature. This feature should work in windows and userobjects. The most interesting is that it should be supported in design! Like work grids in PB Classic IDE.
Those properties purpose was to divide the screen as shown in the previous screenshots. In powerscript we should have an overloaded openuserobject function allowing us to choose in which grid cell the userobject should be created. Number of rows & columns could be modified at runtime!...
All those grid functionalities in the IDE are missing. But for me it’s obvious that a lot of work was initially made. I really wonder if we could expect some of those in a near future release (why not in a minor release?).
Of course our major expectation is to finally get a roadmap, and finally see some development been done to PB.
PS: Most information in this article comes from an old presentation that Dave Fish made, and from an old article in PowerBuilder Developer’s Journal (http://pbdj.sys-con.com/node/2075216).
In my previous Blog post (PB 12.6 – What I Expected… What is missing.) I mentioned Support for PB Controls in toolbars. This is a very nice feature (by the way an implementation of that feature exists in PB Ulitmate Suite and also in Advanced Gui Controls sample application which was implemented by some excellent developers - some of them participate in Powerbuilder Developer Center). This feature was not delivered, or to be more accurate, was never delivered working… Image may be NSFW. Clik here to view.
The concept was to allow the developer to add also other kind of controls to the tollbar, like a dropdownlistbox or even a userobject… Image may be NSFW. Clik here to view.
That sounded great… But was not in the final announcement of pb 12.6 features, not even in the beta for pb 15.0…
But how that should work?
Well It’s very simple. Image may be NSFW. Clik here to view.
So first of all we can see it by launching PB Classic 12.6. Image may be NSFW. Clik here to view. I’m not joking… Image may be NSFW. Clik here to view. I’m serious. Image may be NSFW. Clik here to view.Image may be NSFW. Clik here to view.Image may be NSFW. Clik here to view.
After that we have to create a new menu object. This should open a sheet similar to the following:
If we lookcarefully that popup we can see a new option in pb 12.6 that shows a submenu with a list of pb objects… If we choose one, it will be placed as an object to our toolbar! Image may be NSFW. Clik here to view. This works only in the root node of the tree for our menu, and it’s pretty buggy, as it was never completed. Image may be NSFW. Clik here to view. But some work was done, and someone forgot to hide it in PB 12.6! The following screenshot is from pb 12.6 (as all the previous).
For me it’s certain that a lot of work started and was done right after pb 12.5 was released. I’m sure they had plenty of ideas. And they were motivated. But something stopped them… And it’s a shame. PB 15 with all the expected features, would be a great product… PB 12.6 is inferior to our expectations. Unstable. Buggy… Image may be NSFW. Clik here to view. And with incomplete functionality, which they should be hidden.Image may be NSFW. Clik here to view.
So sad...
Hope to hear some positive decisions from SAP in the really near future, and to see Powerbuilder and its community to be treated with respect. We all deserve it.
Extended MAPI has been a long requested enhancement for PowerBuilder.
In PowerBuilder 12.6 Extended MAPI was implemented with the interface unchanged.This means that existing PowerBuilder applications will continue to work without modifying the Powerscript source code.Most mail object related functions and properties are identical to Simple MAPI with only a few changes that are described below.
PB 12.6 Extended MAPI changes to the Mailsession object:
(1) functionmailReadMessage( messageid, mailmessage, readoption, mark )
For the readoption argument, valuemailBodyAsFile!is not supported for Extended MAPI.It will work asmailEntireMessage!If used in powerscript code.
(2) function mailResolveRecipient( recipient {, allowupdates } )
The optional argumentallowupdatesis always false for Extended MAPI.
(3) function mailRecipientDetails( mailrecipient {, allowupdates } )
The optional argumentallowupdates is always true for Extended MAPI.
PB 12.6 Extended MAPI changesto the mailFileDescriptionobject
(1 (1) FileTypeProperty
OnlymailAttach!is supported for Extended MAPI, it will assume this value if you specify one other value (mailOLE! ormailOLEStatic! ).
If the Windows operating system being used does not support Extended MAPI, PowerBuilder 12.6 will use the legacy Simple MAPI.
64-bit PowerBuilder mail applications can only work with 64-bit Windows MAPI.32-bit PowerBuilder applications can only work with 32-bit Windows MAPI.
Known Issues
CR 780378 – PB 12.6 GA through EBF 24160 (build 4035)
Regression when mail is sent from PB 12.6, a copy of the mail sent is not placed in the senders Outlook folder.A fix is not yet available in a product release.This will be updated with EBF details once the CR is fixed.
I have started working for an organization that has old PB 9.0 applications that NEED updating.
The problem I have is that I cannot find the PB 9.0 Enterprise installation CD. Does anyone know where I can purchase/download/order a copy of this software?
The deadline for early registration to the Charlotte PowerBuilder Conference (May 5-7, 2015) is fast approaching (April 1, 2015). You save $200 USD over the regular registration of $495 USD.
Don't miss out on this opportunity to network with the PB community and improve your knowledge with our extensive list of PowerBuilder centered sessions. PowerBuilder Training is also available on the Monday and Tuesday (May 3-4) prior to the actual conference.
This event is truly international in scope as we have participants registered from Canada, China, Colombia, France, Germany, Mexico, and South Africa.
If you need to see more check out the post on the PowerBuilderCentral website:
SAP needs to get a reality check on their pricing for PowerBuilder. Recent news this week from Microsoft has indicated significant price cuts on Visual Studio 2015. For example: Visual Studio Community 2015, is on par with Visual Studio Community 2013 and will remain free. Visual Studio Professional 2015 will cost $1,199 and correspond fairly directly with Video Studio Professional 2013.
IMHO: PB needs a) a free version and b) enterprise price that should be at or just under VS Professional (as PB does not compare to VS Ultimate feature wise).
Indicate the WSDL file URL (see above) and the Assembly Name (e.g. SAPDataServices_Server.dll), then click NEXT. Note that the Windows SDK for .Net Framework 4.0 must be installed on your system. If that is not the case, you have to do that first: Image may be NSFW. Clik here to view.
In the next step, you may set the prefix for the proxy. The wizard says that by default, it is the portname for each port, but you may leave it empty. In the near future we may decide to set up a naming convention rule for this step.
Specify the project name and the library where it will be stored:
You may verify your settings on the "Ready to Create Proxy" window before hitting Finish:
Note that the documentation states that "the assembly is generated in the current target directory".
After that, the proxy should be created. Clicking on the "Services..." button opens a window showing the services and structures.
In the PBL, right-click the generated proxy (e.g. p_ws_sapds) and select "Deploy" to generate the Services and Structures in the PBL: Image may be NSFW. Clik here to view.
Invoking Web services through SOAP requires serialization and deserialization of datatypes, and the building and parsing of XML-based SOAP messages.The pbwsclient125.pbx file contains objects for the .NET Web service engine that enable you to perform these tasks without extensive knowledge of the SOAP specification and schema, the XML Schema specification, or the WSDL specification and schema. You can use these objects after you import the extension file into a PowerBuilder Web service application.
At this point it might be necessary to import a Powerbuilder extension file that should be located in "C:\Program Files (x86)\Sybase\Shared\pbwsclient125.pbx". Right-click the PBL, select "Import PB Extension..." and select the PB extension file indicated above. Image may be NSFW. Clik here to view.
If you're getting an error message saying that the file is not a valid dll or pbx file you may have an old version of the file "libeay32.dll" loaded. Image may be NSFW. Clik here to view.
In my case, through a search with Process Monitor, it appeared that the file libeay32.dll was loaded from C:\Windows\SysWOW64 – but it was a very old version (from 2005). After deleting it, the import process was successful (after the 2nd try) and the following NVOs were generated: Image may be NSFW. Clik here to view.
These NVOs are needed, so there's no point in continuing if this step fails!
The above are necessary "preliminary" steps, next we'll look at the Powerbuilder code needed to actually invoke a Web Service.
Powerbuilder code to invoke a Web Service
In order to verify the above steps, i.e. to test the Web Service(s), I created a function (f_ws_logon) in a new NVO (n_sap_ds_func) that is invoked through a button click in a very basic window (w_sapds_main). These objects can be found in the attached PBL (the code was created just to prove the concept, so no need to discuss the naming nor code quality).
Next, set some values and the Web Service parameters
// set values lnv_log_req.username = 'zzzzz' lnv_log_req.password = 'aaaaa' lnv_log_req.cms_authentication = 0 // secEnterprise = 0, secLDAP = 1, secWinAD = 2, secSAPR3 = 3, lnv_log_req.cms_system = 'srvsapbodst01' // sample Web Service by DDO lnv_runbatchjobreq_DDO.jobname = "JOB_WEBSERVICE_CALL_POC" lnv_runbatchjobreq_DDO.reponame = "BOXI_DS4_LOCAL_DDO" lnv_globvar.g_countermax = "2000000" // at test revealed that the web services are apparently executed asynchronously // sample Web Service by DHE lnv_runbatchjobreq_HED.jobname = "JOB_OpenHub_Test" lnv_runbatchjobreq_HED.reponame = "BOXI_DS4_LOCAL_DHE"
Finally, the Web Service is called.
As noted in the comment above, the Web Service is apparently called asynchronously (the fact that there is a "cancelasync" method further supports this assumption).
Note the comments in the code, as they provide some important additional information!
// call the Web Service TRY li_val = lnv_soap_conn.createinstance(lnv_conn, "connection_operations") li_val2 = lnv_soap_conn.createinstance(lnv_batch_jobadm, "batch_job_admin") // HED li_val3 = lnv_soap_conn.createinstance(lnv_batch_jobs, "batch_jobs") // DDO IF li_val = 0 THEN // 0 means OK (in this example li_val, li_val2 and li_val3 all returned 0) // OK lnv_ws_session = lnv_conn.logon(lnv_log_req) // log on to get session lb_sess = lnv_batch_jobadm.setsessionvalue(lnv_ws_session) // set the session value for the next call(s) lnv_batchjobresp_HED = lnv_batch_jobadm.run_batch_job(lnv_runbatchjobreq_HED) // call Web Service / HED lnv_batchjobresp_DDO = lnv_batch_jobs.job_webservice_call_poc(lnv_globvar) // call Web Service / DDO // display error message (HED) IF lnv_batchjobresp_HED.pid = -1 THEN Messagebox("Web Service error", lnv_batchjobresp_HED.errormessage + ', repository name: ' + lnv_batchjobresp_HED.reponame) END IF // display error message (DDO) IF lnv_batchjobresp_DDO.pid = -1 THEN Messagebox("Web Service error", lnv_batchjobresp_DDO.errormessage + ', repository name: ' + lnv_batchjobresp_DDO.reponame) END IF ELSE // Not OK // (add appropriate error handling) END IF CATCH (runtimeerror exc) MessageBox ("WS Runtime Error", exc.text) FINALLY // Messagebox("try... catch", "finally clause", Information!, OK!) END TRY
The remaining code doesn't add much (destroying the created objects), so it's been left out for better lisibility.
The above code, invoking the indicated Web Services, succeeded in the case of the DDO Web Service:
Please refer to the article Debugging a Web Service using Fiddler for some very useful information regarding debugging (but not only) a Web Service call.
Troubleshooting
Installation of the "Windows SDK for Windows 7 and .NET Framework 4" failed on my system for no apparent reason:
The indicated file "Samples\Setup\HTML\ConfigDetails.htm" was not available. In fact, nothing remained after the failed installation, apparently the installation process deleted all copied/installed files.
The solution was to install the freely available "Microsoft Visual Studio 2010 Express", because that installs the needed .NET framework.
John Strano to Conduct Second Track of Pre-Conference Training (May 4 & 5) at the Charlotte PowerBuilder Conference
The North Carolina PowerBuilder User Group (NCPBUG) is pleased to announce the availability of a second set of pre-conference training classes. Lead by noted PowerBuilder Evangelist John Strano, the course content will be the same as those currently offered by Yakov Werde.
These classes are a rare opportunity to receive live, face-to-face training with a PB expert.
Lets start a discussion here on what the PB community would like to see added into PowerBuilder Classic! This PB version is still what 95%+ of us use for mission critical applications.
Here are a few of my suggestions to start this thread off: Image may be NSFW. Clik here to view.
a) Bring the the price in-line with other development tools
b) Bring back various versions (Desktop, Professional, Enterprise).
c) Remove SYSAM
d) Create an Express version - maybe the Desktop replacement.
e) Get rid of PB.Net
(VS2010 Shell isn't cutting it - its 2015 now,
Very low adoption rate,
PB Community doesn't need another C/S tool
WPF is "dead")
f) Add Web capabilities
g) Add Mobile capabilities
h) ImproveAutoScript (like Intellisense) in PB Classic (its almost there)
i) Create free educational "how to videos" (maybe on YouTube).
j) Review the 545 current active enhancements on the ISUG-Tech PB enhancement list to get some more ideas
k) Give the product away to Students, Colleges & Consultants (ie NFR's)
l) Bring back Distributed PB - this was a "kool" & useful feature! Image may be NSFW. Clik here to view.
m) Add WCF to PB Classic
n) Add full & transparent J2EE and .Net "Interop" from PB Classic.
o) Add jScript support to PB
p) run FULL and OPEN public Betas!
q) Add "C#" User Object support for we could just paste in some C# example code & have it compile into a .Net assembly or DLL
etc
What would YOU like to see? Image may be NSFW. Clik here to view.