PHP dynamic programming language

Determining the proper procedure name in toolkit calls

Exact name is required when calling a service program’s procedure

Some developers make a common mistake when calling a procedure in a service program using the PHP Toolkit for IBM i or any toolkit based on XMLSERVICE. It’s easy to supply the wrong procedure name, or the right name in the wrong case (upper/lower/mixed). Using this example of calling a procedure using the toolkit, we find the following (correct) program/procedure call:

$result = $conn->PgmCall('MYPGM', 'MYLIB', $params, $retParam, 
                         array('func'=>'myproc'));

The procedure name ‘myproc’ must be given exactly as it is, not ‘MYPROC’ or ‘MyProc’, because under some circumstances the name may be case-sensitive.

How to determine the correct procedure name

Run the DSPSRVPGM command, using your desired library and program names as parameters:

DSPSRVPGM SRVPGM(MYLIB/MYPGM) DETAIL(*PROCEXP)

The above command will return service program information, including the names of all procedure exports. For example:

        Display Service Program Information                       
                                                    
Service program  . . . . . . . . . . . . :   MYPGM                           
  Library  . . . . . . . . . . . . . . . :     MYLIB                          
Owner  . . . . . . . . . . . . . . . . . :   PROGRAMMER                        
Service program attribute  . . . . . . . :   RPGLE                             
Detail . . . . . . . . . . . . . . . . . :   *PROCEXP                          
                                                                               
                              Procedure Exports:                               
                                                                               
Procedure Name                                       ARGOPT 
myproc                                               *NO    
orderHeader                                          *NO

This service program contains two procedures: ‘myproc’ and ‘orderHeader’. Thus, to call the former, we’d supply array(‘func’=>’myproc’) in the PgmCall method. If we wanted to call the second procedure, we’d use array(‘func’=>’orderHeader’), observing case sensitivity, which often matters (a topic for another day).

PHP performance webinar, June 11, 2015

Update: a recording of the webinar is available to all registrants. See the link below to register.

——–

I’ll be presenting a free webinar, “How to ensure speedy PHP applications on IBM i,” on Thursday, June 11, 2015, at 1pm Eastern/New York time. The webinar is sponsored by BCD. Registration and more information: http://www.bcdsoftware.com/bcdtracks/webinars/ondemand/php-performance-alan.htm

“Our process now runs 30-50% faster, thanks to one tip from Alan’s presentation.”
— Mike Meszaros, Software Developer, Specialty Pipe & Tube

Zend Server for IBM i support knowledge base

The support team at Zend has written a knowledge base of tips for configuring and administering Zend Server for IBM i.  The tips, written chiefly by Rod Flohr, are accurate and thorough. Recommended is the site’s option to notify registered users when new articles are posted. URL: https://support.zend.com/hc/en-us/sections/200554323-Zend-Server-for-IBM-i

COMMON Innovation Award 2015

My colleague and friend Chuk Shirley’s employer, Sabel Steel, just won COMMON’s Innovation Award for an application created by Chuk. According to IBM’s Alex Gogh, Chuk’s application won because of its innovative business process improvement that saved money and prevented errors, while integrating Sabel’s core IBM i-based application, based on RPG and DB2, with traditional industry tools such as a scrap-metal weighing scale and newer technology such as an ID-card scanner, iPad, and PHP.

Chuk Shirley accepting COMMON innovation award on behalf of Sabel Steel, April 26, 2015

Chuk Shirley accepting COMMON innovation award on behalf of Sabel Steel, April 26, 2015

Collaboration at COMMON

The 2015 COMMON annual meeting and expo, now in its first day, is helping speakers and attendees create innovation through IBM i integration: open source, closed source, IBM and vendor solutions. For example, of my six presentations during this conference, two are collaborations:

The Art of Performance Diagnostics, with IBM’s Dawn May, allows us to show, among other topics, how IBM i’s integrated performance tools complement green-screen tools and third-party tools (in this case, Zend Server) to pinpoint and solve performance issues (here, PHP-and DB2-based applications).

PHP Tricks for RPG Developers, a talk jointly created by RPG and SQL expert Birgitta Hauser and me, combines RPG, PHP, and DB2, allowing RPG to achieve graphical (charts and graphs, PDF and Excel files) and internet (json-based web services, flexible email) functionality using native functions.

Conferences such as COMMON serve a need that’s difficult to replicate back at the office—brainstorming and sharing possibilities among interdisciplinary peers, or sitting side-by-side with like-minded colleagues who work for different employers, to try something new. This week, for example, some of us plan to share knowledge on compiling binaries in PASE and to further the potential of open source on IBM i. I’m looking forward to presenting my talks (both joint and solo) and helping to realize new ideas with forward-looking colleagues during the conference.

Birgitta Hauser and Alan Seiden collaborate on their talk at COMMON 2015

Birgitta Hauser and Alan Seiden collaborate on their talk at COMMON 2015

Free webinars sponsored by COMMON Europe (open to all)

Starting January 27, 2015, I’ll be giving three free Tuesday webinars:

  • January 27: Strategic Modernization with PHP
  • February 17: Bring RPG/COBOL business logic to the web with the PHP Toolkit
  • March 10: Speedy PHP on IBM i

All three one-hour webinars will be held at 14:00 Central European Time (CET). That’s 8 AM Eastern Standard Time (EST). The registration page includes a time zone converter.

Details and to register: http://www.data3.se/?p=5287

Thanks to Torbjörn Appehl of Data3 (COMMON Sweden) for organizing these.

Youngiprofessionals.com transition to new server

Update as of Jan. 26, 2015: youngiprofessionals.com now redirects to the new server.

————-

The youngiprofessionals.com site, which hosts XMLSERVICE, has been moved to a new server. Till the domain name can be directed to the new server, use this URL: http://yips.idevcloud.com/wiki/.

January newsletter

I’ve relaunched my PHP and IBM i newsletter. Here is the January 2015 edition, out today.

To subscribe and receive this free newsletter each month, go here: alanseiden.com/tips.

Comments welcome. Happy 2015–

Alan

Learn to combine RPG+PHP at Toronto user group, Jan. 21, 2015

I’ve recorded a special message about my upcoming presentations at the Toronto Users Group for Power Systems evening meeting on January 21, 2015:

In the video, I discuss the two sessions I’ll be presenting:

  • Bring RPG/COBOL business logic to the web with the PHP Toolkit
  • PHP Tricks for RPG Developers

Hope you can make it to the Toronto meeting, Jan. 21, 2015, Markham, Ontario. Details: http://tug.ca