Welcome!

Mobile IoT Authors: Peter Silva, William Schmarzo, Liz McMillan, AppDynamics Blog, Scott Allen

Related Topics: PowerBuilder, Mobile IoT

PowerBuilder: Article

Appeon Developer Configuration

Tips and techniques

Have you ever used a datastore that ran without a problem while you were developing your application, but once you've compiled it stopped running? Let me tell you that's a difficult bug to fix.

I remember it so well. I kept going back and forth. How in the world could the DataWindow work at design time yet not in the executable? I remember that I checked the return value of the datastore. I finally noticed that the datastore returned a -1. That's such a strange thing.

The datastore returns the number of rows that were returned or a -1. The help files used to say that a -1 was in case of 'an error'. It goes into a lot more detail in version 12.5 but still falls somewhat short of giving you the whole answer.

Here it is...

If you set the dataobject property of a DataWindow or datastore object, then at runtime PowerBuilder will be unable to find it. You will get a return value of -1.

Let me be clear. Take a look at the following code:

datastore lds_employee_list
lds_employee_list = create datastore
lds_employee_list.dataobject = "ds_employee_list"
lds_employee_list.setTransObject(sqlca)

long ll_num_rows

ll_num_rows = lds_employee_list.retrieve()

I'm sure that you've written code like that before. The subject of this article is found in the third line. In that line we set the dataobject property of the newly created datastore. Oh let's step back just a little. In this example I am assuming that you created a new DataWindow and named it ds_employee_list. You'll be able to see it right there in the library painter or in the system tree.

Then in some appropriate event you put the code that I just pointed out.

Now while you're running the code through PowerBuilder there is no problem at all. It will work great. But once you compile the code the last line of this script will always leave ll_num_rows holding a -1.

Isn't that strange? Then you go back to running it through PowerBuilder and sure enough, it works fine. So you optimize the libraries and make sure you do a full rebuild and guess what?

It still returns a -1. That just can't be. That's when you go to your boss and utter those fateful words that make you sound like a compete fool...

But... but... it works just FINE on MY machine.

You can't imagine how bosses hate to hear that.

Here's the issue.

When PowerBuilder runs and encounters that third line it goes out and looks for ds_employee_list. First it looks in the current pbl then, if it doesn't find it, PowerBuilder looks through the library list for it. Eventually PowerBuilder will almost always find that DataWindow object and everything is fine.

The problem happens when we are running the executable. When PowerBuilder builds the executable it pulls the DataWindow object into the pbd. It does that when it's looking through the window painter. It doesn't look though the code to identify those DataWindow objects to pull into the pbd.

This means that at runtime our executable will not be able to find the DataWindow object. Ds_employee_list will simply not be available and the retrieve will return a -1.

How do we fix this? We use the PBR file. That's the file where you put your bitmaps so they will be included into the executable and we won't have to deploy bitmap files with the executable. Here's how it works, you specify the pbl that contains ds_employee_list and then the DataWindow name in parenthesis.

my_app.pbr
C:\images\hand.ico
c:\images\exit.bmp
c:\devel\my_app\my_pbl(ds_employee_list)

Then, in the project painter you specify that my_app.pbr is your PBR file.

Okay, our mystery is solved, right?

Well, no.

The problem came back when I started using Appeon. It was just a bit more complex though. Now the application works at design time. It works when running the executable, but when running in the browser I get that -1.

A little research taught me that Appeon doesn't support the PBR file.

How do I get that DataWindow object where it needs to be?

Appeon has a button called Configuration. When you click on it you get the Appeon Developer Configuration. Look at Figure 1.

In the Appeon Developer Configuration you need to select the application that you are currently using. Then click on Edit. That will take you to Figure 2, The Application Profile Configuration. This is a tool with which you really need to become familiar, for now though, click on the 'Additional Files' tabpage. That will give you Figure 2.

Note the highlighted line. It specifies my appeon_mdi.pbl. This tells Appeon that when you deploy your application it should make all of the DataWindow objects in that pbl available for dynamic DataWindows. It is in fact, similar to the PBR for DataWindows.

Oh yeah, the PBR file also specifies bitmaps, icons and the like. That is handled on this tabpage as well. Look at the group box that says Deploy Image Files. If you specify a folder then Appeon will look in that folder and bring in the bitmaps, icons, jpg, png, and other resource files.

Just so you know.

More Stories By Richard (Rik) Brooks

Rik Brooks has been programming in PowerBuilder since the final beta release before version 1. He has authored or co-authored five books on PowerBuilder including “The Definitive DataWindow”. Currently he lives in Mississippi and works in Memphis, Tennessee.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


@ThingsExpo Stories
What are the successful IoT innovations from emerging markets? What are the unique challenges and opportunities from these markets? How did the constraints in connectivity among others lead to groundbreaking insights? In her session at @ThingsExpo, Carmen Feliciano, a Principal at AMDG, will answer all these questions and share how you can apply IoT best practices and frameworks from the emerging markets to your own business.
Ask someone to architect an Internet of Things (IoT) solution and you are guaranteed to see a reference to the cloud. This would lead you to believe that IoT requires the cloud to exist. However, there are many IoT use cases where the cloud is not feasible or desirable. In his session at @ThingsExpo, Dave McCarthy, Director of Products at Bsquare Corporation, will discuss the strategies that exist to extend intelligence directly to IoT devices and sensors, freeing them from the constraints of ...
You think you know what’s in your data. But do you? Most organizations are now aware of the business intelligence represented by their data. Data science stands to take this to a level you never thought of – literally. The techniques of data science, when used with the capabilities of Big Data technologies, can make connections you had not yet imagined, helping you discover new insights and ask new questions of your data. In his session at @ThingsExpo, Sarbjit Sarkaria, data science team lead ...
Extracting business value from Internet of Things (IoT) data doesn’t happen overnight. There are several requirements that must be satisfied, including IoT device enablement, data analysis, real-time detection of complex events and automated orchestration of actions. Unfortunately, too many companies fall short in achieving their business goals by implementing incomplete solutions or not focusing on tangible use cases. In his general session at @ThingsExpo, Dave McCarthy, Director of Products...
Traditional IT, great for stable systems of record, is struggling to cope with newer, agile systems of engagement requirements coming straight from the business. In his session at 18th Cloud Expo, William Morrish, General Manager of Product Sales at Interoute, outlined ways of exploiting new architectures to enable both systems and building them to support your existing platforms, with an eye for the future. Technologies such as Docker and the hyper-convergence of computing, networking and sto...
WebRTC is bringing significant change to the communications landscape that will bridge the worlds of web and telephony, making the Internet the new standard for communications. Cloud9 took the road less traveled and used WebRTC to create a downloadable enterprise-grade communications platform that is changing the communication dynamic in the financial sector. In his session at @ThingsExpo, Leo Papadopoulos, CTO of Cloud9, discussed the importance of WebRTC and how it enables companies to focus...
With an estimated 50 billion devices connected to the Internet by 2020, several industries will begin to expand their capabilities for retaining end point data at the edge to better utilize the range of data types and sheer volume of M2M data generated by the Internet of Things. In his session at @ThingsExpo, Don DeLoach, CEO and President of Infobright, discussed the infrastructures businesses will need to implement to handle this explosion of data by providing specific use cases for filterin...
IoT generates lots of temporal data. But how do you unlock its value? You need to discover patterns that are repeatable in vast quantities of data, understand their meaning, and implement scalable monitoring across multiple data streams in order to monetize the discoveries and insights. Motif discovery and deep learning platforms are emerging to visualize sensor data, to search for patterns and to build application that can monitor real time streams efficiently. In his session at @ThingsExpo, ...
Early adopters of IoT viewed it mainly as a different term for machine-to-machine connectivity or M2M. This is understandable since a prerequisite for any IoT solution is the ability to collect and aggregate device data, which is most often presented in a dashboard. The problem is that viewing data in a dashboard requires a human to interpret the results and take manual action, which doesn’t scale to the needs of IoT.
Internet of @ThingsExpo has announced today that Chris Matthieu has been named tech chair of Internet of @ThingsExpo 2016 Silicon Valley. The 6thInternet of @ThingsExpo will take place on November 1–3, 2016, at the Santa Clara Convention Center in Santa Clara, CA.
CenturyLink has announced that application server solutions from GENBAND are now available as part of CenturyLink’s Networx contracts. The General Services Administration (GSA)’s Networx program includes the largest telecommunications contract vehicles ever awarded by the federal government. CenturyLink recently secured an extension through spring 2020 of its offerings available to federal government agencies via GSA’s Networx Universal and Enterprise contracts. GENBAND’s EXPERiUS™ Application...
What does it look like when you have access to cloud infrastructure and platform under the same roof? Let’s talk about the different layers of Technology as a Service: who cares, what runs where, and how does it all fit together. In his session at 18th Cloud Expo, Phil Jackson, Lead Technology Evangelist at SoftLayer, an IBM company, spoke about the picture being painted by IBM Cloud and how the tools being crafted can help fill the gaps in your IT infrastructure.
SYS-CON Events announced today the Enterprise IoT Bootcamp, being held November 1-2, 2016, in conjunction with 19th Cloud Expo | @ThingsExpo at the Santa Clara Convention Center in Santa Clara, CA. Combined with real-world scenarios and use cases, the Enterprise IoT Bootcamp is not just based on presentations but with hands-on demos and detailed walkthroughs. We will introduce you to a variety of real world use cases prototyped using Arduino, Raspberry Pi, BeagleBone, Spark, and Intel Edison. Y...
Much of IT terminology is often misused and misapplied. Modernization and transformation are two such terms. They are often used interchangeably even though they mean different things and have very different connotations. Indeed, it is somewhat safe to assume that in IT any transformative effort is likely to also have a modernizing effect, and thus, we can see these as levels of improvement efforts. However, many businesses are being led to believe if they don’t transform now they risk becoming ...
SYS-CON Events announced today that LeaseWeb USA, a cloud Infrastructure-as-a-Service (IaaS) provider, will exhibit at the 19th International Cloud Expo, which will take place on November 1–3, 2016, at the Santa Clara Convention Center in Santa Clara, CA. LeaseWeb is one of the world's largest hosting brands. The company helps customers define, develop and deploy IT infrastructure tailored to their exact business needs, by combining various kinds cloud solutions.
The best-practices for building IoT applications with Go Code that attendees can use to build their own IoT applications. In his session at @ThingsExpo, Indraneel Mitra, Senior Solutions Architect & Technology Evangelist at Cognizant, provided valuable information and resources for both novice and experienced developers on how to get started with IoT and Golang in a day. He also provided information on how to use Intel Arduino Kit, Go Robotics API and AWS IoT stack to build an application tha...
Whether your IoT service is connecting cars, homes, appliances, wearable, cameras or other devices, one question hangs in the balance – how do you actually make money from this service? The ability to turn your IoT service into profit requires the ability to create a monetization strategy that is flexible, scalable and working for you in real-time. It must be a transparent, smoothly implemented strategy that all stakeholders – from customers to the board – will be able to understand and comprehe...
It’s 2016: buildings are smart, connected and the IoT is fundamentally altering how control and operating systems work and speak to each other. Platforms across the enterprise are networked via inexpensive sensors to collect massive amounts of data for analytics, information management, and insights that can be used to continuously improve operations. In his session at @ThingsExpo, Brian Chemel, Co-Founder and CTO of Digital Lumens, will explore: The benefits sensor-networked systems bring to ...
SYS-CON Events announced today that Venafi, the Immune System for the Internet™ and the leading provider of Next Generation Trust Protection, will exhibit at @DevOpsSummit at 19th International Cloud Expo, which will take place on November 1–3, 2016, at the Santa Clara Convention Center in Santa Clara, CA. Venafi is the Immune System for the Internet™ that protects the foundation of all cybersecurity – cryptographic keys and digital certificates – so they can’t be misused by bad guys in attacks...
"Tintri was started in 2008 with the express purpose of building a storage appliance that is ideal for virtualized environments. We support a lot of different hypervisor platforms from VMware to OpenStack to Hyper-V," explained Dan Florea, Director of Product Management at Tintri, in this SYS-CON.tv interview at 18th Cloud Expo, held June 7-9, 2016, at the Javits Center in New York City, NY.