RP Gpopen
Package Information | |
Summary | Example RPG popen utility to call PASE utilities. |
Maintainers | Tony “Ranger” Cairns <adc@us.ibm.com> |
License | License |
Download | Download Latest ← click here |
Description | Example RPG popen utility to call PASE utilities for LUG and Common members interested in programming RPG with PASE utilities. RPG popen creates additional jobs via PASE fork, therefore if you SBMJOB you MUST allow more than 1 job in your batch queue (*NOMAX best). Download includes example RPG popen calls PASE curl for Yahoo stock quotes.rc = PaseStart32(); PaseCurl = '/opt/freeware/bin/curl' + ' -d s="'+%trim(cutESpace(symbols:*BLANKS:*OFF)) + '&f=snjkl1t8dr"'+ + ' http://download.finance.yahoo.com/d/quotes.csv'; rc = PaseExec32(PaseCurl:%addr(OUT):%size(OUT):retLen); rc = PaseStop(); |
Common issues |
Where are spool job log files?? PHP ships without *PUBLIC access (except for SECOFR), here is how you fix. call qp2term > cd /usr/local > chmod -R 0755 zendsvr (or zendsvr6) Example call PHP: rc = PaseStart32(); PasePHP = '/usr/local/zendsvr/bin/php-cli' + ' /www/zendcore/htdocs/myscript' + ' type=title title=H num=3'; rc = PaseExec32(PasePHP:%addr(OUT):%size(OUT):retLen); rc = PaseStop(); Similar tutorial RPG popen hacking RPG call PHP (partial tutorial). |
CCSID issues (beyond English) |
This sample uses QDCXLATE for function Translate for function PaseExec32 (reap shell output). You will need to replace this converter if you want CCSIDs for NLS (beyond English mostly). You can find MUCH better converter in wiki project LIBPASE (see libiconv_h.rpgle and libiconv.rpgle). However, should be noted that PaseExec32 uses PASE fork/exec, thereby additional processes are created. This is completely normal for Unix scripting, but can introduce all manner of odd/bad behaviour dealing with CCSID. Most typically, when your machine has multiple languages installed, various profile and job settings can result in bad CCSID conversion. The answer is to move to something closer like wiki project LIBPASE, but this is much more difficult programming. |
Archive:
rpgpopen1.zip — clean RPG popen curl project only
rpgpopen.zip — contains files not part of popen curl project