Maximum characters to be used while naming a powerbuilder object

While naming an object in Powerbuilder, the maximum length is 40. Which means if I name datawindow object as d_composite_reporting_yearly_sales_figures, this is invalid and will throw error during runtime. Counting the underscores and characters in the name, they are 42.

For demonstration, lets create a datawindow and name it as d_composite_reporting_yearly_sales_figures. The datawindow will be saved with name and display in the treeview.





Now right click on the object and Select Export.



Observe the name has been trimmed.If datawindow is used in powerscript, check the dataobject name in debug mode.

The 40 character length applies to all objects like window, user objects, structures etc.



Invalid Datawindow row/column specified at line xx


Error: Invalid DataWindow row/column specified at line xxx in function of _funct of oject n_cst_xyz."

 Click OK -> "Application terminated. Error: Null object reference at line 27 in XYZ event of object n_cst_xyz."

Possible Reasons:
  • Rows Retrieved is zero.
  • Incorrect column name specified in the script.
  • There might be a row retrieved, but there may not be a row in the primary buffer.

DataWindow Error: Row changed between retrieve and update

Normally this problem comes in multiuser scenarios where some other user has modified the record on which you are working. In a single user scenario this will come only if the datawindow flags have not been properly set/reset after an update command.

The best way to avoid the "row changed between retrieve and update" error is to use the "Key columns" update option. If you have timestamps or fields updated by triggers including them in the update statement ("Key and updateable columns") can cause problems.

Create DLL file in Powerbuilder

If you have a WSDL file, we can create dll in Powerbuilder with few clicks. Below are the step by step screenshots to do the same.

Step 1. Select either Web Service Proxy Wizard or Web Service Proxy. Click Ok.


Step 2. Check "Use .Net Engine". Click Next.


Step 3.Provide WSDL file name and Assembly file name. Click Next.


Step 4. Select the service and click Next.


Step 5. Provide a Prefix or leave it blank.


Step 6. Provide a project name or leave it as default.


Step 7. Browse to library.




Step 8.Click Finish


Step 9. Browse to the Library folder in you system. You will find the dll file.