Search My Blog

Saturday, February 23, 2013

WizSource

** Hot News **

 SCM for PowerBuilder


  Roland Smith of TopWiz Software has just released an updated version of his WizSource source code management system for PowerBuilder!  The new version is 2.2.8 and it was released on  February 21, 2013. Please see the WizSource website for more information and how to download the software (please follow this link to WizSource ).

  WizSource is all written in PowerBuilder and is available in PB version 10 and PB version 10.5 builds. If you plan on using it with PowerBuilder, you must use a build that is a different version from the PowerBuilder IDE you are currently using. If you are using PB 10, you must use the PB 10.5 build and vice-versa. If you are using it with PowerBuilder .Net, MS Visual Studio or some other SCC API enabled tool, you can use either build.

  Note: A single user can use WizSource for free without any restrictions or time limits.

Regards ... Chris

Monday, February 18, 2013

SAP Award

SAP Community Network

Acknowledgement of Achievement

In recognition of your contribution to the SAP Community Network (scn.sap.com)

Chris Pollach
Active Contributor Silver
February 18, 2013



SCN Active Contributors are valuable, visible, registered members of SCN who contribute to the SCN experience by submitting articles, whitepapers, blogs, forum posts, etc. They receive contribution points that count towards Active Contributor status over a period of 12 rolling months. Active Contribution levels are as follows:
  • 250 - 499 points: Active Contributor Bronze
  • 500 - 1,499 points: Active Contributor Silver
  • 1,500 - 2,499 points: Active Contributor Gold
  • 2,500 points and above: Active Contributor Platinum 


Thank you SAP!

Regards .. Chris
 


Sunday, February 17, 2013

Appeon Mobile Beta2 - 48 Hours

** Hot News **

Appeon Mobile


    Appeon Corporation has just released its Appeon Mobile product's beta2 version the other week. Again, like the alpha and beta1 release beforehand - I have been privileged to once again participate in this momentous and historic setting PowerBuilder event! The beta2 release really steps up the game for iOS based mobile computing through PowerBuilder. Here are some of the great new features that I have tested in the first 48 hours of installing this release ...

iPhone

Real PB application on my actual iPhone!
  The beta1 release of Appeon Mobile only supported the iPad. Beta2 steps up the supported devices by adding the iPhone simulator and support for the actual iPhone device itself (iP4, iP4s and iP5). Amazingly, all I needed to do was download the Appeon WorkSpace application from the iStore for the iPhone, add an application reference to my IIs server and volia - my PB applications were alive and well on my real iPhone!




Simulator

 iPad

 This next beta release of Appeon Mobile upgrades the original iPad simulator from a standard MS-Windows looking dialog to something that resembles the actual iPad device 100%! This new looking simulator can also be re-sized and rotated unlike its fixed ancestor - which makes developing, unit testing and user presentations through a projector a very handy feature indeed.
Updated iPad simulator in Beta2

iPhone

   The new iPhone support in Beta2 not only extends to the real device but also adds an iPhone simulator that rivals the iPad version outlined above. The iPhone simulator supports the iP4, iP4S and iP5 adding the nice resizing and rotational features as well.
iPhone simulator running in iP5 mode!

AEM

   The Appeon Enterprise Manager (AEM for short) has had a complete make-over from the presentation layer view. It also adds some new Mobile security and operational support items into the server mix as well.
AEM feature GUI in the new Appeon 2013 server version.

New Databases

mySQL and TeraData drivers in Beta2!
   Incorporated into Appeon Mobile beta2 is the new AEM / Appeon Server which now adds a native DBMS driver for mySQL. mySQL is not only a popular DBMS to use in many organizations - it is also used by many ISP's and Cloud providers that Appeon can already take your PB applications to! This is only the first step in Appeon Server's upgrade part of Appeon Mobile that will also add a native ASE database driver and driver support for SAP's HANA in-memory database. While the last two are not there yet, they are planned to be available when Appeon Mobile ships its GA version (currently scheduled for spring 2013).

Device API's

    The Appeon Mobile product will also allow the PowerBuilder developer's applications to access the iOS devices hardware and various iOS features. Beta2 adds a new set of PB objects that extend the device access to:  Appeon WorkSpace shell, iPad/iPhone cameras, device hardware information, muti-media services, iOS notifications, and sound / video recorder to start off with.


Actual device information running on my real iPad test machine.
 Accessing these resources outside your PB Mobile application is simple, just instantiate the appropriate NVUO supplied in the Appeon "WorkArounds" PB library supplied by Appeon. Then call the related methods supplied to have Appeon Mobile generate the appropriate low level calls to the actual environment around the working PB application on the actual device itself.



AWS

   The Appeon Work Space (AWS) "shell" for the iPad and iPhone also gets an upgrade in Appeon Mobile beta2. The AWS now allows the PB developer to assign an icon to the PB application being deployed which shows up in the AWS application launch list. This also includes a short application description that also now appears in the AWS underneath the application icon.

   During the applications initialization and launch - the AWS now also shows a percent complete like real iStore updates that gives the iOS user real time feedback on the application progress throughout the processing cycle.
Actual AWS beta2 running on my iPad showing some of the PB applications I am testing!

Web Service DataWindow

    The Appeon Web product introduced support for the new Web Service DataWindow a few releases ago. This is an important PB feature for anyone contemplating true n-tier development. This is not only for PB client applications but for PB Server based features that are exposed via NVUO components exposed as .Net Web Services. These can be built in PB Classic (v11.0 and higher) as .Net components or PB.Net (v12.0 and higher) as WCF based components - either of which can be consumed by Appeon based WS DataWindows!

   I was extremely pleased with my initial tests in this area having my Web Browser, iPad and iPhone test applications perform  flawlessly in this area. The Web Service was actually a PB Classic .Net WS returning an ANSI result set that the PB Client deployed to Appeon. This could be consumed through a corresponding WS DataWindow on the client side. The trick here is to have Appeon deploy the .Net assembly that the WS DW builds to broker the WS proxies to the Appeon Server.
Actual WS DW running through my iPhone.
iPad based WS DataWindow test



















Grid DataWindow

Grid DW running om my actual iPhone.
   The updated Beta2 Appeon Mobile now supports the Grid DataWindow`s column move and resizing features just like we currently see in Appeon Web and native PB Classic MS-Window applications. This definitely ups the functionality on the iOS device that would certainly be a chore for the Objective-C developer to reproduce!  

    The column move is really nice feature like we find in Excel or Windows Explorer. The column resizing is a great feature as the users moves from the iPad to iPhone where real-estate is at a premium or on the original device as the iOS user rotates the device from landscape to portrait mode and vise-a-versa.







Cloud

   Appeon Mobile is based on Appeon Server 2013 that also comes with Beta2. Appeon Server already supports Microsoft`s Azure cloud platform and Beta2 "ups the bar" by adding support for the Amazon Cloud platform. This is not obvious until you realize that the sample applications that you run on downloading AWS from the Apple iStore are all accessed through the Amazon Cloud. So "kool" applications like YouHoops is cloud enabled via Appeon`s PaaS readiness.

   Stay tuned for more news in the Cloud area before Appeon Mobile`s GA release as Appeon Corporation is also tracking support for the RackSpace Cloud platform as well!

Bug Fixes

   The last and most important update to Beta2 is the various minor bug fixes noted in Beta1 that Appeon has already addressed. This is extremely important to me as it now allows my full Foundation Class framework (free on SourceForge) to run in its full entity. The original version I released had a few features disabled as not to interfere with some of Beta1`s short-comings. I can pleasantly now say that Beta2 is ready for the full framework which adds a tremendous amount of RAD developer productivity to the Appeon scene.


Conclusion

  After only two days with Appeon Mobile beta2 and I can honestly say that this product is shaping up to be a real game changer! Not only for PB developers to reach out to the Web and Mobile space but positioning PB to be a serious cloud (SaaS, PaaS, etc) player as well. The rich iOS features that we see evolving between alpha, Beta1 and now Beta2 put a lot of confidence in me that Appeon will deliver exactly what they have been talking about for the past year. This also sets their track record and market direction like the Gartner 4th quadrant .... being a company that you can count on to deliver top-notch products.

   Appeon has also just released their 2013-2014 road-map which also sets a pace of application platform development to extend PowerBuilder where Sybase only talked about. I would strongly recommend that you contact Appeon to hear more about their updated road-map!

   The other interesting observations I have made as well, is in that their innovation and engineering skills are genuine. I have not seen better project innovation and management like this since Sybase developed PocketBuilder with the best PB project manager I have worked with Martin Malick (now VP at RIM / Blackberry in charge of the new BB10) and engineering team lead Reed Shilts. This certainly reminds me of the  people I used to liaise with at PowerSoft when PB`s innovative nature was the prime directive and second to none.

Well done again Appeon!

Bonus: Please link over to my SourceForge project for the new Beta2 compatible STD Foundation Classes and sample applications that I am using for testing referenced in this article! Remember, the framework is fully open source and free too!     :-)

Regards ... Chris



Thursday, February 14, 2013

Infomaker - Is NOT Dead!

** Hot News **

   Don't panic, the Infomaker product is not dead. Even though its currently listed as no longer sold on the Sybase website, apparently it is still alive and well in the SAP background and should resurface soon!

   According to SAP technical evangelist John Strano and product Manager Sue Dunnell this is what happened ...

"On the product roster on Sybase's Website, there is an incorrect posting that InfoMaker has been discontinued. This is a significant clerical error. The product is not EOL’d, it’s in transition over to the SAP price book come March 1. Our apologies for any upset this error on our part has caused."


 Regards ... Chris


Wednesday, February 13, 2013

PB Event Order

PowerBuilder - Events and Precedence


     The order in which events happen within a PowerBuilder Classic application is in most cases, a very predictable model. The PB developer should be aware of this aspect when developing GUI based applications. For instance, when focus is shifted from one object to another object, the first object will experience the Modified and LoseFocus events before the second object experiences a get focus event.

To understand this further, consider the following scenarios and the resulting events.
 

An Application starts and window "A" is opened

APPLICATION OPEN
WINDOW "A" OPEN
WINDOW "A" ACTIVATE
CHILD OBJECT GET FOCUS (First object in tab order)
 

Window "B" is opened (Window "A" stays open)

WINDOW "A" CURRENT OBJECT LOSE FOCUS
WINDOW "A" DEACTIVATE
WINDOW "B" OPEN
WINDOW "B" ACTIVATE
WINDOW "B" CHILD OBJECT GET FOCUS (First object in tab order)

Window "B" closed, return to Window "A".

WINDOW "B" CLOSEQUERY
WINDOW "B" CURRENT OBJECT LOSE FOCUS
WINDOW "B" CLOSE
WINDOW "B" DEACTIVATE
WINDOW "A" ACTIVATE
OBJECT GET FOCUS (Last object that had focus)
 

"Click" on new object within Same Window

OBJECT 1 MODIFIED (if changed)
OBJECT 1 LOSE FOCUS
OBJECT 2 GET FOCUS
OBJECT 2 CLICKED
 

"Tab" to new object within Same Window

OBJECT 1 MODIFIED (if changed)
OBJECT 1 LOSE FOCUS
OBJECT 2 GET FOCUS (next object in tab order)

Interestingly enough, events can and will occur even when no actions are performed by the user. If you are
using a screen saver, such as the one in Windows, the following will happen.

Flip to screen saver (After period of inactivity)
   WINDOW DEACTIVATE
   OBJECT LOSE FOCUS
Return from screen saver
   WINDOW ACTIVATE
   OBJECT GET FOCUS


DataWindows and Events

A DataWindow is a single object within a window. As such, events happen to the DataWindow as a single object (DW COntrol) and not to the individual items that are within the DataWindow object itself. In order to make up for this, there are a number of special events that exist only for DataWindows. These events are not quite the same as those of other Window objects and therefore must be considered on their own.

Consider the following scenario:

The User Clicks on a field in a data window, keys something, clicks on another field within the data window, keys something and then clicks on a Command Button (outside of the DataWindow). The sequence of DataWindow events is as follows:

DW GET FOCUS
DW CLICKED
DW EDIT CHANGED (once for each keystroke)
DW CLICKED
DW ITEMCHANGED
DW ITEM FOCUS CHANGED
DW EDIT CHANGED (once for each keystroke)
DW LOSE FOCUS

COMMAND BUTTON GET FOCUS
COMMAND BUTTON CLICKED

A number of significant aspects are happening at this time! For example: there was only one get focus and one lose focus event. Only one item changed event occurred (even though two items were changed). A clicked event occurred two times. One edit changed event occurred for every keystroke made within the DataWindow.

If DataWindow edits were behind the two modified fields, only the first field would have been edited. For all intents and purposes, the second field has nothing in it!

Now let us insert the ACCEPTTEXT() function into the command button Clicked script. Now the sequence of events flows as follows:

DW GET FOCUS
DW CLICKED
DW EDIT CHANGED (once for each keystroke)
DW CLICKED
DW ITEMCHANGED
DW ITEM FOCUS CHANGED
DW EDIT CHANGED (once for each keystroke)
DW LOSE FOCUS

COMMAND BUTTON GET FOCUS
COMMAND BUTTON CLICKED

DW ITEMCHANGED

The last item changed event was triggered by the AcceptText ( ) functionality. You might be tempted to put this function in the DataWindow Control's losefocus event script, but this makes it very difficult for a user to cancel a transaction when they can not get past the edit rule!
 

Events Precedence Table

The following is a table that shows the order of events for each object type:

Objects Events Order Notes

Window
Open 1
Activate 2 Also after closing of
another Window
Key 3 Each Keystroke (not all objects)
CloseQuery 4
Close 5
Deactivate 6

Single Line Edit, Multi Line Edit
Get Focus 1
Modified 2
LoseFocus 3

List Box, Drop Down List Box
GetFocus 1
SelectionChanged 2 When choice made from list
Modified 3
DoubleClicked 4 Only possible when "always show
list box" is active
LoseFocus 5

Static Text, Picture, Picture Button
GetFocus 1
Clicked 2
DoubleClicked 3 Always issues a Clicked event first
LoseFocus 4

Check Box, Command Button, Radio Button
GetFocus 1
Clicked 2
LoseFocus 3

DataWindow
GetFocus 1
Clicked 2
DoubleClicked 3 Always issues a Clicked event first
EditChanged 4 Once for each keystroke
ItemError 5 When item doesn't pass validation
ItemChanged 6 When object loses focus within dw
RowFocusChanged 7
ItemFocusChanged 8
LoseFocus 9
 

Events Notes

Triggerevent Function

At any time in an application, an event can occur through use of the TRIGGEREVENT() function. This can be a very handy thing to know and use. It can also cause problems if the application is counting on certain events to occur in a certain sequence.

DataWindow Clicked Event

Often, the clicked event in a data window is used to trigger a choice made by the user. In the script for this event it is always a good policy to check that the clicked row value is greater than zero. If the click is made on the borders or white space of a data window, the GETCLICKEDROW function will return a zero.

Although the ItemError! event listed after EditChanged! event under dw events order is a bit confusing, I am
sure it is correct as per the 4 phases of validation:

. edit-changed check
. data-type check (ItemError! fires here...)
. item-changed check
. validation-rule check

***********************************************************
Note: You can not safely predict the event model in PB.Net applications as the object drawing and interaction is outside the application's control in the WPF layer of the O/S. WPF controls all aspects of event handling and even imposes restrictions for the PB.Net application! 
***********************************************************

Regards ... Chris

Tuesday, February 12, 2013

What is PowerBuilder?

Tech-Talk

 

Join SAP CodeTalk evangelists for this enlightening discussion ...

What is PowerBuilder?



Enjoy!

Note the references also in the talk to Appeon:  

Regards ... Chris