"Instant" Web Services and Stored Procedures

Size: px
Start display at page:

Download ""Instant" Web Services and Stored Procedures"

Transcription

1 "Instant" Web Services and Stored Procedures Jon Paris Partner400.com Notes Jon Paris is co-founder of Partner400, a firm specializing in customized education and mentoring services for IBM i * developers. Jon's career in IT spans 40+ years including a 12 year period with IBM's Toronto Laboratory. Together with his partner Susan Gantner, Jon devotes his time to educating developers on techniques and technologies to extend and modernize their applications and development environments. Together Jon and Susan author regular technical articles for the IBM publication, IBM Systems Magazine, IBM i edition, and the companion electronic newsletter, IBM i EXTRA. You may view articles in current and past issues and/or subscribe to the free newsletter at: Jon and Susan also write a weekly blog on Things "i" - and indeed anything else that takes their fancy. You can find the blog here: ibmsystemsmag.blogs.com/idevelop/ Feel free to contact the author at: Partner400.com * IBM i - aka AS/400, System i, iseries, i5, etc.

2 Agenda How? XMLSERVICE - the latest IBM toolkit What is it? And why did we need a new toolkit? What is different about it? It is Open Source and written in RPG! How is it used? From other languages and platforms XMLSERVICE - What Is It? Originally created as part of the Zend/IBM partnership Now the core of Zend's PHP Toolkit for IBM i And the new toolkits for: Node.js, Python, Ruby, and.net plus many more to come Allows usage of any program or utility on your IBM i Programs, Service Programs, CL commands, PASE utilities,... From anywhere Another IBM i, Windows, Unix, Linux,... Once set up nothing else required New programs can be accessed without any additional work Two forms of access supported Web Service Stored Procedure Development site hosted by the Young i Professionals youngiprofessionals.com

3 Why Did We Need a New Toolkit? Limitations in existing tooling Java toolbox does not support return values Except for four byte integers - Note that this limitation can be avoided in V7 by recompiling your RPG subprocedures to use the new RTNPARM keyword Requires use of Java by requesting platform Alternatively the other platform needs a Java bridge - In all other cases you are limited to ODBC capability Java programming skills required to enhance toolbox Slow to deploy new functionality If Java programmers didn't need it there was no incentive to add it New functionality means changes in PCML generation So you have to wait for the compiler team to implement it The result? It took years to get new data types added to the interface Why Did We Need a New Toolkit? We need an easy way to show "IBM i can do it!" i.e. a method to quickly prototype reuse of existing functionality Otherwise manual effort is required to deploy new functionality Have to set up a new web service or stored procedure or.. Limited support for persistence Problematic if you want to deploy an existing 5250-style application as a web service or browser application Proprietary Technology Java toolkit originally developed by IBM Subsequently released as Open Source Previous PHP toolkit was actually produced by Aura Known by Aura as EasyCom

4 What is Different About the New Toolkit? Open Source under BSD License Completely free to use 100% RPG IV Any RPG programmer can modify All communications via XML documents Easier to debug Automatic conversion between ASCII and EBCDIC Usable in single and two tier environments All code on single IBM i Or any other system to IBM i Supports persistent connections Called RPG programs can retain state information i.e. Just as they normally do in a 5250 job Facilitates repurposing of existing 5250 applications as web services or browser jobs What is Different About the New Toolkit? Supports complex parameter types Arrays, DS, DS Arrays, Compound DS,... Program calls and commands can be run in sequence Ensures that results of one operation are available to the next Directly supports return values As noted earlier, RPG's V7 RTNPARM keyword also allows you to avoid this problem Can be invoked from any Client-side language As long as it can invoke a web service Or use an SQL connection Security Requires use of valid user name and password No matter what protocol is used Facilitates access control to IBM i resources

5 Toolkit Architecture Cross Platform Language Agnostic Accessible from any language Toolkits available for IBM i supported languages How Is It Used? - From PHP New Zend Toolkit uses XMLSERVICE under the covers Supports all previous functionality and more Completely new set of APIs Plus "wrappers" to allow existing code to use the new APIs Delivered as part of the Zend Server download Or obtain from Young i Professionals site if using from another platform yips.idevcloud.com/wiki/index.php/xmlservice/xmlservice Allow PHP access from other platforms e.g. Linux, Windows, Mac, etc. The Zend components are also Open Source All of the new APIs use an OO approach Still very easy to use for the non-oo programmer

6 XMLSERVICE: Stored Procedure Interface Supplied stored procedures are the preferred access method Can be accessed via ODBC, JDBC, DB2Connect, etc. Can be used to access any program Eliminates need to create one stored procedure per program Accepts four parameters IPC Key A path to an IFS folder associated with a specific XMLSERVICE job - This is part of the persistence mechanism CTL Parameters to control the service job's behavior - e.g Debug mode, shut down job, etc. CLOB In and CLOB out The Input and Output XML documents XMLSERVICE: REST Web Service Interface Takes Seven Parameters db2 Note that three are the same as for the Stored Procedure interface Name of database to access (*Local or Database name) uid User Id pwd Password ipc and ctl Same as for the IPC and CTL Stored Procedure parameters xmlin XML Input document xmlout Maximum expected size of returned XML output document

7 XML Document Elements <cmd> </cmd> Executes the command line command specified between the <cmd> tags <sh> </sh> PASE equivalent of the <cmd> tag. <pgm> </pgm> Identifies program or subprocedure to be run Attributes name= lib= and func= identify program name, library, and subprocedure name Parameters and return values for the program are defined within the <parm> element <parm> </parm> Identifies a parameter. More details on next chart <ds> </ds> Indicates that the parameter is a data structure. More details on next chart <data> </data> Defines the parameter and populates it. <return> </return> Identifies the return value on a subprocedure. Definition of the return value is via <data> and <ds> tags just like parameters XML Document Element Attributes <parm> attributes io=... Parameter type "in" "out" or both by=... Parameter passing method val (value) or ref (reference) <ds> attributes dim=... Maximum number of DS array elements dou=... Number of array elements actually populated. <data> attributes var=... Names the variable type=... Data type and size e.g. 12a, 15p5, 9s2, etc. varying=... *on indicates a varying length field.

8 Other Features of the XML Documents A single XML document can contain multiple requests They will be performed in sequence Makes it simple to perform tasks like setting the library list Success or failure is indicated in the returned document See example in document below Tags and attributes not used by XMLSERVICE are allowed They are simply passed through and included in the XML output You can add extra markup to assist in parsing returned XML Or comments that will aid in debugging <?xml version="1.0"?> <mult> <cmd comment='addlible'>+++ success ADDLIBLE LIB(JONSLIB)</cmd> <pgm name='mypgm' lib='jonslib' func='mypgm'> <parm... Simple Example of the Web Service Interface A simple program that takes two parameters A 15 digit packed numeric and a 30 character The second parameter will be modified by the called program The User of your web service must send the XML shown below // Proto for XMLSRVTST1 d XMLSrvTst1 pr ExtPgm( XMLSRVTST1 ) d input 15p 5 d output 30a This is the XML representation of the prototype <?xml version='1.0'? > shown above < pgm name='xmlsrvtst1' lib='xmlservice' > < parm > < data type='15p5' > < /data > < /parm > < parm > < data type='30a' >Original value< /data > < /parm > < /pgm >

9 XML Returned by the Web Service The document returned is almost identical to the one we sent But the parameter details (length and type) are omitted And the contents of the second parm have changed This is highlighted below More on the XML in a moment // Proto for XMLSRVTST1 d XMLSrvTst1 pr ExtPgm( XMLSRVTST1 ) d input 15p 5 d output 30a // Relevant portion of the XML document returned <?xml version='1.0'? > < pgm name='xmlsrvtst1' lib='xmlservice' > < parm > < data > < /data > < /parm > < parm > < data >Input was < /data > < /parm > < /pgm > Original field definitions are not returned in the response document. Only the field values More Complex XML Call Document Elements and attributes not required by XMLSERVICE are echoed Useful in debugging returned data Note the use of the field names D LookupTest Pr LikeDS(rec_T) Dim(10) D searchfor 10a D max 10i 0 D count 10i 0 <pgm name='mysrvpgm' func='lookuptest'> <parm comment='search for this name'> <data var='searchfor' type='10a'>paris</data> </parm> <parm comment='max allowed return'> <data var='max' type='10i0'>5</data> </parm> <parm comment='count of records returned'> <data var='count' type='10i0' enddo='count'>0</data> </parm> <return> <ds var='rec_t' dim='10' dou='count'> <data var='name' type='30a'>na</data> <data var='job' type='40a'>na</data> <data var='pay' type='9p2'>0.0</data> </ds> </return> </pgm>

10 Document Returned From Procedure Call <pgm name='mysrvpgm' func='lookuptest'> <parm comment='search for this name'> <data var='searchfor'>paris</data> </parm> <parm comment='max allowed return'> <data var='max'>5</data> </parm> <parm comment='count of records returned'> <data var='count'>3</data> </parm> <return> <ds var='rec_t'> <data var='name'>jon Paris</data> <data var='job'>chief Cook and Bottle Washer</data> <data var='pay'>13.42</data> </ds> <ds var='rec_t'> <data var='name'>susan Gantner-Paris</data> <data var='job'>manager</data> <data var='pay'>26.84</data> </ds>... </return> </pgm> Original field definitions are not returned in the response document. Only the field values The New XMLService Web Demo Page Nothing but HTML! Honestly Not pretty - but pretty amazing nonetheless Examples of SQL, calling programs, issuing commands, etc /Samples/Toolkit_HTML/index.html Use browser's View Source to see the underlying HTML/XML

11 Example of HTML Used This is the HTML code used to call the subprocedure ZZTIMEUSA Note how the XML data is defined <!-- XMLSERVICE call a *SRVPGM (time *USA) --> <form name="input" action="/cgi-bin/xmlcgi.pgm" method="post"> <input type="hidden" name="db2" value="*local"> <input type="hidden" name="uid" value="*none"> <input type="hidden" name="pwd" value="*none"> <input type="hidden" name="ipc" value="/tmp/rangerhtmlonly"> <input type="hidden" name="ctl" value="*sbmjob"> <input type="hidden" name="xmlin" value= "<?xml version='1.0'?> <?xml-stylesheet type='text/xsl' href='/wiki/uploads/xmlservice/demoxslt.xsl'?> <script> <pgm name='zzsrv' lib='xmlservice' func='zztimeusa'> <parm io='both'> <data type='8a'>09:45 AM</data> </parm> <return> <data type='8a'>nada</data> </return> </pgm> </script>"> It ends here <input type="hidden" name="xmlout" value="5000"> <input type="submit" value="call *SRVPGM (ZZTIMEUSA)" /> </form> Note that the XML packet is specified as the value for the xmlin variable More info and examples of PHP usage follow but I will not have time to go into them in detail. Contact me in the break or by after the event if you have questions.

12 PHP Methods and Functions in ToolkitService The main class that manages all DB2 settings and communication Methods to Set Database Connections and XMLService Options CLCommand Run CL commands either in interactive or batch mode PGMCall method Calls programs (*PGM) or service programs (*SRVPGM) AddParameterxxxx methods Define the program parameters. Methods available for all the usual suspects SetParameterValue Sets new parameter values disconnect interface Terminates an XML service job in the ZENDSVR subsystem Don't use this with persistent jobs unless and until you want to To Save You a Lot of Work... A tool to convert D specs to PHP code You can find it at: yips.idevcloud.com/samples/dspectool/ Hopefully it will support free-form declarations soon

13 PHP Usage - Issue Interactive CL Command <?php include_once 'authorization.php'; include_once '../API/ToolkitService.php'; Copy User Id, and Password plus default library etc. $obj = ToolkitService::getInstance($db, $user, $pass); Copy in toolkit script $parms = array('internalkey'=>"/tmp/$user",'debug'=>true,'plug' => "iplug32k"); $obj->settoolkitserviceparams($parms); $cmd = "addlible ZENDSVR"; $obj->clcommand($cmd); Initial CL Command is executed followed by the interactive command below Controls the maximum size of message that can be handled $Rows = $obj->clinteractivecommand("dsplibl"); if($rows) Interactive command var_dump($rows); returned a result set - else the 5250 display data echo $obj->getlasterror(); $obj->disconnect();?> PHP Usage - Call RPG Program <?php include_once 'authorization.php'; include_once '../API/ToolkitService.php'; $extension='ibm_db2'; $ToolkitServiceObj = ToolkitService::getInstance($db, $user, $pass, $extension); $ToolkitServiceObj->setToolkitServiceParams(array('InternalKey'=>"/tmp/$user")); $code = $_POST ['code']; // Get value of Code field from input $desc = ' '; // Blank the output parameter Set up the parameters $param[] = $ToolkitServiceObj->AddParameterChar('both', 10,'CODE', 'CODE', $code); $param[] = $ToolkitServiceObj->AddParameterChar('both', 10,'DESC', 'DESC', $desc); $result = $ToolkitServiceObj->PgmCall("TESTPGM", "ZENDSVR", $param, null, null); if($result) var_dump($result['io_param']); else echo "Execution failed."; $ToolkitServiceObj->disconnect();?> RPG program requires two parameters each 10 characters long. The previous lines placed them in the array

14 PHP Usage - Call Service Program Procedure <?php... $SysValueName = "QCCSID"; $param[] = $ToolkitServiceObj->AddParameterChar('both', 1,'ErrorCode','errcode', $Err); $param[] = $ToolkitServiceObj->AddParameterChar('both', 10,'SysValName','sysvalname', $SysValueName); $param[] = $ToolkitServiceObj->AddParameterChar('both', 1024,'SysValue','sysvalue', $SysValue); $OutputParams = $ToolkitServiceObj->PgmCall('ZSXMLSRV', "ZENDSVR", $param, NULL, array('func'=>'rtvsysval') ); if( isset($outputparams['io_param']['sysvalname'])) echo " System value ".$SysValueName." = ".$OutputParams['io_param']['sysvalue']; else echo "System value $SysValueName was not retrieved."; // Change requested value and execute call again ProgramParameter::UpdateParameterValues( $param, array("sysvalname"=>"qlangid")); $OutputParams = $ToolkitServiceObj->PgmCall('ZSXMLSRV', "ZENDSVR", $param, NULL, array('func'=>'rtvsysval') );...?> Function name Change parameter value itoolkitclass Methods and Functions - Part 1 Data Queue CreateDataQ() DeleteDQ() ReceieveDataQueue() SendDataQueue() SetDataQName() ClearDQ() User Space CreateUserSpace() RetrieveUserSpaceAttr() RetrieveUserSpaceSize() DeleteUserSpace() WriteUserSpace() ReadUserSpace()

15 itoolkitclass Methods and Functions - Part 2 Spooled Files GetSPLList() GetSPLF() System Values SystemValuesList() GetSystemValue() Job Log JobList() JobLog() GetJobInfo Object List getobjectlist() Questions? If you think of any questions after the session please me: Partner400.com

A Modern Programmers Tool Set: CODE

A Modern Programmers Tool Set: CODE A Modern Programmers Tool Set: CODE OCEAN Technical Conference Catch the Wave Susan M. Gantner Partner400 susan.gantner @ partner400.com www.partner400.com Your partner in AS/400 and iseries Education

More information

Ruby and RPG talking at last

Ruby and RPG talking at last Ruby and RPG talking at last Aaron Bartell Director of IBM i Innovation albartell@krengeltech.com Copyright 2015 Aaron Bartell This session brought to you by... Consulting - Jumpstart your open source

More information

Using XMLSERVICE with.net

Using XMLSERVICE with.net Using XMLSERVICE with.net Communicating with IBM i from.net Presented by : Richard Schoen President/Chief Technical Officer RJS Software Systems richard@rjssoftware.com What Is XMLSERVICE? XMLSERVICE is

More information

ILE Essentials, Part 1 Static Binding and Service Programs

ILE Essentials, Part 1 Static Binding and Service Programs ILE Essentials, Part 1 Static Binding and Service Programs Susan Gantner susan.gantner@partner400.com www.partner400.com SystemiDeveloper.com Your partner in IBM i Education In this session, we will take

More information

Boldface numbers indicate illustrations, code listings, and tables.

Boldface numbers indicate illustrations, code listings, and tables. Index Boldface numbers indicate illustrations, code listings, and tables. A ActiveRecord, class in Ruby, 80-82, 84, 86, 88, 90 ActiveXMLService, class in Ruby, 80-82, 84, 90 Agile development, 109-110

More information

Getting Session Started A58 with APIs. from RPG

Getting Session Started A58 with APIs. from RPG Getting Session Started A58 with APIs from RPG Getting Started with System APIs from RPG Susan Gantner susan.gantner@partner400.com www.partner400.com Your partner in AS/400 and iseries Education The author,

More information

Zend Server for IBM i Open Source Toolkit

Zend Server for IBM i Open Source Toolkit Zend Server for IBM i Open Source Toolkit Mike Pavlak Solution Consultant Mike.p@zend.com Agenda Open Source Toolkit Compatibility Wrapper Command processing and *libl Miscellaneous points Q&A 2 Zend Server

More information

Processing and Creating JSON from RPG

Processing and Creating JSON from RPG Processing and Creating JSON from RPG Jon Paris Jon.Paris @ Partner400.com www.partner400.com www.systemideveloper.com About Me: I am the co-founder of Partner400, a firm specializing in customized education

More information

PHP for PL/SQL Developers. Lewis Cunningham JP Morgan Chase

PHP for PL/SQL Developers. Lewis Cunningham JP Morgan Chase PHP for PL/SQL Developers Lewis Cunningham JP Morgan Chase 1 What is PHP? PHP is a HTML pre-processor PHP allows you to generate HTML dynamically PHP is a scripting language usable on the web, the server

More information

RPG IV Subprocedure Basics

RPG IV Subprocedure Basics RPG IV Subprocedure Basics Jon Paris & Susan Gantner jon.paris@partner400.com susan.gantner@partner400.com www.partner400.com SystemiDeveloper.com Your partner in System i Education The author, Susan Gantner,

More information

SQL Stored Procedures and the SQL Procedure Language

SQL Stored Procedures and the SQL Procedure Language SQL Stored Procedures and the SQL Procedure Language John Valance Division 1 Systems johnv@div1sys.com www.div1sys.com 2017 Division 1 Systems About John Valance 30+ years IBM midrange experience

More information

IBM i Debugger. Overview Service Entry Points Debugger Functions Attach to an IBM i Job Launch Configurations and Settings

IBM i Debugger. Overview Service Entry Points Debugger Functions Attach to an IBM i Job Launch Configurations and Settings 1 IBM i Debugger IBM i Debugger Overview Service Entry Points Debugger Functions Attach to an IBM i Job Launch Configurations and Settings 2 Integrated Debugger - Overview RPG, COBOL, CL, C, and C++ IBM

More information

WebFacing Applications with. Leonardo LLames IBM Advanced Technical Support Rochester, MN. Copyright IBM 2002 ebusinessforu Pages 1

WebFacing Applications with. Leonardo LLames IBM Advanced Technical Support Rochester, MN. Copyright IBM 2002 ebusinessforu Pages 1 WebFacing 5250 Applications with Leonardo LLames IBM Advanced Technical Support Rochester, MN Copyright IBM 2002 ebusinessforu Pages 1 Disclaimer Acknowledgement: This presentation is a collaborative effort

More information

RPG Does XML! New Language Features in V5R4

RPG Does XML! New Language Features in V5R4 RPG Does XML! New Language Features in V5R4 Common Europe Congress 2007 Jon Paris Jon.Paris @ Partner400.com www.partner400.com SystemiDeveloper.com Your Partner in System i Education This presentation

More information

ILE Activation Groups

ILE Activation Groups ILE Activation Groups & Binder Language Susan Gantner susan.gantner@partner400.com www.partner400.com www.systemideveloper.com Your partner in IBM i Education In this session in the ILE Essentials series,

More information

Improving Application Performance by Submitting Scripts to Batch using Zend Server for IBM i

Improving Application Performance by Submitting Scripts to Batch using Zend Server for IBM i Improving Application Performance by Submitting Scripts to Batch using Zend Server for IBM i Mike Pavlak Solution Consultant mike.p@zend.com Insert->Header 1 & Footer Agenda Overview of Zend Server Advantages

More information

New.Net track at COMMON Let COMMON know if you want more.net classes. VB.Net and iseries for Dummies An Introduction to VB.Net for iseries Developers

New.Net track at COMMON Let COMMON know if you want more.net classes. VB.Net and iseries for Dummies An Introduction to VB.Net for iseries Developers Handouts Will be Available on COMMON Web Site VB.Net and iseries for Dummies An Introduction to VB.Net for iseries Developers Presented by Richard Schoen Email: richard@rjssoftware.com Phone: 888-RJSSOFT

More information

Charles Guarino. About The Speaker

Charles Guarino. About The Speaker Get With The Program! It s Not Your Grandma s RPG Anymore Charles Guarino Twitter @charlieguarino Central Park Data Systems, Inc. About The Speaker With an IT career spanning over 30 years, Charles Guarino

More information

From RPG OA to PHP: IBM i Modernization and Mobile Approaches

From RPG OA to PHP: IBM i Modernization and Mobile Approaches From RPG OA to PHP: IBM i Modernization and Mobile Approaches Presented by: Greg Patterson Senior Sales Engineer Quadrant and BCD Software Agenda Brief History of Modernization 5250 Refacing RPG OA PHP

More information

Looking Inside the Developer s Toolkit: Web Services for Everyday RPG Consumption. Charles Guarino XML. Charles Guarino

Looking Inside the Developer s Toolkit: Web Services for Everyday RPG Consumption. Charles Guarino XML. Charles Guarino Looking Inside the Developer s Toolkit: Web Services for Everyday RPG Consumption Charles Guarino XML Charles Guarino Central Park Data Systems, Inc. Copyright Central Park Data Systems, Inc. 1 About the

More information

Externally Described SQL -- An SQL iquery API

Externally Described SQL -- An SQL iquery API Externally Described SQL -- An SQL iquery API Introduced as a beta test API in SQL iquery v4r7, Externally Described SQL is a simple set of APIs that provide the ability for RPG programmers to leverage

More information

Web API Lab. The next two deliverables you shall write yourself.

Web API Lab. The next two deliverables you shall write yourself. Web API Lab In this lab, you shall produce four deliverables in folder 07_webAPIs. The first two deliverables should be pretty much done for you in the sample code. 1. A server side Web API (named listusersapi.jsp)

More information

Database Driven Web 2.0 for the Enterprise

Database Driven Web 2.0 for the Enterprise May 19, 2008 1:30 p.m. 2:30 p.m. Platform: Linux, UNIX, Windows Session: H03 Database Driven Web 2.0 for the Enterprise Rav Ahuja IBM Agenda What is Web 2.0 Web 2.0 in the Enterprise Web 2.0 Examples and

More information

Rational Developer for i: What's New in 9.0.1

Rational Developer for i: What's New in 9.0.1 John Fellner, Developer, Rational Developer for i Rational Developer for i: What's New in 9.0.1 TUG Meeting of Members, Jan 22, 2014 Agenda Quick Product Intro What's New in Rational Developer for i v9.0.1

More information

Advanced Functions with DB2 and PHP for IBM i

Advanced Functions with DB2 and PHP for IBM i Advanced Functions with DB2 and PHP for IBM i Mike Pavlak Solution Consultant Agenda DB2 features in i6.1 and i7.1 Review DB2 functions in PHP Explore the possibilities Q&A 2 Three primary ingredients

More information

Profound.js. Future of open source development on IBM i. Alex Roytman Profound Logic

Profound.js. Future of open source development on IBM i. Alex Roytman Profound Logic Profound.js Future of open source development on IBM i Alex Roytman Profound Logic What is Node.js? The most exciting technology ever to be brought over to IBM i Brings the platform forward in a way like

More information

Externally Described SQL -- An SQL iquery API

Externally Described SQL -- An SQL iquery API Externally Described SQL -- An SQL iquery API Introduced as a beta test API in SQL iquery v4r7, Externally Described SQL is a simple set of APIs that provide the ability for RPG programmers to leverage

More information

RPG Subprocedures Basics

RPG Subprocedures Basics RPG Subprocedures Basics Susan Gantner susan.gantner@partner400.com www.partner400.com SystemiDeveloper.com Your partner in IBM i Education Susan doesn t code subroutines any more. In her opinion, subprocedures

More information

Databases PHP I. (GF Royle, N Spadaccini ) PHP I 1 / 24

Databases PHP I. (GF Royle, N Spadaccini ) PHP I 1 / 24 Databases PHP I (GF Royle, N Spadaccini 2006-2010) PHP I 1 / 24 This lecture This covers the (absolute) basics of PHP and how to connect to a database using MDB2. (GF Royle, N Spadaccini 2006-2010) PHP

More information

Database Applications

Database Applications Database Applications Database Programming Application Architecture Objects and Relational Databases John Edgar 2 Users do not usually interact directly with a database via the DBMS The DBMS provides

More information

Contents. Acknowledgments Introduction

Contents. Acknowledgments Introduction Contents Acknowledgments Introduction iv xiii 1: Communicating with the System 1 The System 2 IBM i Objects 2 Subsystems 3 Types of Jobs 3 Control Language (CL) 4 System Values 5 Licensed Programs 6 User

More information

Ch04 JavaServer Pages (JSP)

Ch04 JavaServer Pages (JSP) Ch04 JavaServer Pages (JSP) Introduce concepts of JSP Web components Compare JSP with Servlets Discuss JSP syntax, EL (expression language) Discuss the integrations with JSP Discuss the Standard Tag Library,

More information

Putting the Pedal to the Metal RDi from *ZERO to *SIXTY. Charles Guarino Central Park Data Systems, Inc.

Putting the Pedal to the Metal RDi from *ZERO to *SIXTY. Charles Guarino Central Park Data Systems, Inc. Putting the Pedal to the Metal RDi from *ZERO to *SIXTY Charles Guarino Central Park Data Systems, Inc. About the Speaker With an IT career spanning over 30 years, Charles Guarino has been a consultant

More information

Charles Guarino

Charles Guarino Looking Inside the Developer s Toolkit: REST Web Services for Everyday RPG and SQL Consumption Charles Guarino REST SERVICES Charles Guarino Twitter @charlieguarino Central Park Data Systems, Inc. About

More information

Are you covered? New tooling for Quality Assurance

Are you covered? New tooling for Quality Assurance Are you covered? New tooling for Quality Assurance Edmund Reinhardt IBM i Application Development Tooling Edmund.Reinhardt@ca.ibm.com TUG TEC Agenda Key: 23C Agenda What is code coverage Code Coverage

More information

Programming the World Wide Web by Robert W. Sebesta

Programming the World Wide Web by Robert W. Sebesta Programming the World Wide Web by Robert W. Sebesta Tired Of Rpg/400, Jcl And The Like? Heres A Ticket Out Programming the World Wide Web by Robert Sebesta provides students with a comprehensive introduction

More information

Putting the Pedal to the Metal RDi from *ZERO to *SIXTY. Charles Guarino Central Park Data Systems, Inc.

Putting the Pedal to the Metal RDi from *ZERO to *SIXTY. Charles Guarino Central Park Data Systems, Inc. Putting the Pedal to the Metal RDi from *ZERO to *SIXTY Charles Guarino Central Park Data Systems, Inc. About the Speaker With an IT career spanning over 30 years, Charles Guarino has been a consultant

More information

Visually Create Web Databases Apps with WDSC. By Jim Mason

Visually Create Web Databases Apps with WDSC. By Jim Mason Visually Create Web Databases Apps with WDSC By Jim Mason Visually create web database apps with WDSC Author: Jim Mason Want to learn to create iseries e business applications quickly and affordably? We

More information

Vendor: IBM. Exam Code: Exam Name: ILE RPG Programmer. Version: Demo

Vendor: IBM. Exam Code: Exam Name: ILE RPG Programmer. Version: Demo Vendor: IBM Exam Code: 000-972 Exam Name: ILE RPG Programmer Version: Demo Questions: 1 Which of the following operation codes is supported in both fixed form and /Free form? A. CALL B. EVALR C. ALLOC

More information

Looking Inside the Developer s Toolkit: Introduction to Processing XML with RPG and SQL Too! Charles Guarino

Looking Inside the Developer s Toolkit: Introduction to Processing XML with RPG and SQL Too! Charles Guarino Looking Inside the Developer s Toolkit: Introduction to Processing XML with RPG and SQL Too! Charles Guarino Central Park Data Systems, Inc. @charlieguarino About The Speaker With an IT career spanning

More information

RPG IV Subprocedures Basics

RPG IV Subprocedures Basics RPG IV Subprocedures Basics Jon Paris Jon.Paris@Partner400.com www.partner400.com Your Partner in AS/400 and iseries Education Partner400, 2002-2003 Unit 6 - Subprocedures Basics - Page 1-2 What is a Subprocedure?

More information

This lecture. PHP tags

This lecture. PHP tags This lecture Databases I This covers the (absolute) basics of and how to connect to a database using MDB2. (GF Royle 2006-8, N Spadaccini 2008) I 1 / 24 (GF Royle 2006-8, N Spadaccini 2008) I 2 / 24 What

More information

Speech 2 Part 2 Transcript: The role of DB2 in Web 2.0 and in the IOD World

Speech 2 Part 2 Transcript: The role of DB2 in Web 2.0 and in the IOD World Speech 2 Part 2 Transcript: The role of DB2 in Web 2.0 and in the IOD World Slide 1: Cover Welcome to the speech, The role of DB2 in Web 2.0 and in the Information on Demand World. This is the second speech

More information

Enterprise Modernization for IBM System z:

Enterprise Modernization for IBM System z: Enterprise Modernization for IBM System z: Transform 3270 green screens to Web UI using Rational Host Access Transformation Services for Multiplatforms Extend a host application to the Web using System

More information

Lesson 3 Transcript: Part 1 of 2 - Tools & Scripting

Lesson 3 Transcript: Part 1 of 2 - Tools & Scripting Lesson 3 Transcript: Part 1 of 2 - Tools & Scripting Slide 1: Cover Welcome to lesson 3 of the db2 on Campus lecture series. Today we're going to talk about tools and scripting, and this is part 1 of 2

More information

Using Sample DB2 Web Query Reports and Charts built over IBM i (SQL) Services for System Administrators

Using Sample DB2 Web Query Reports and Charts built over IBM i (SQL) Services for System Administrators Using Sample DB2 Web Query Reports and Charts built over IBM i (SQL) Services for System Administrators For those customers with DB2 Web Query Version 2.2 already installed Table of Contents 1. Sample

More information

Zend Server 5 for IBM i Reference Manual

Zend Server 5 for IBM i Reference Manual Zend Server 5 for IBM i Reference Manual By Zend Technologies www.zend.com Abstract This is the Reference Manual for Zend Server for IBM i Version 5.0 Beta. The information in this document is subject

More information

IBM i: JOURNEY TO THE CENTER OF THE CLOUD

IBM i: JOURNEY TO THE CENTER OF THE CLOUD IBM i: JOURNEY TO THE CENTER OF THE CLOUD Prepared by Matt Shannon, Sr. Solutions Specialist and Jeffrey Whicker, Sr. Solutions Specialist Sirius Computer Solutions, Inc. July 2017 Contents Executive Summary...

More information

Scala, Your Next Programming Language

Scala, Your Next Programming Language Scala, Your Next Programming Language (or if it is good enough for Twitter, it is good enough for me) WORLDCOMP 2011 By Dr. Mark C. Lewis Trinity University Disclaimer I am writing a Scala textbook that

More information

IBM Toolbox for Java. What's New in V5R2? New functionality gives users more power and flexibility

IBM Toolbox for Java. What's New in V5R2? New functionality gives users more power and flexibility IBM Toolbox for Java What's New in V5R2? New functionality gives users more power and flexibility By Robb Wiedrich Robb Wiedrich As I mentioned in my article What s in the IBM Toolbox for Java V5R1?, IBM

More information

Optimizing LAMP Development with PHP5

Optimizing LAMP Development with PHP5 Optimizing LAMP Development with PHP5 Wednesday, November 9, 2005 Jamil Hassan Spain NCSSM Database Administrator March 12, 2005 Presentation Agenda Simple Upgrade Method to PHP5 Enterprise LAMP Development

More information

PHP 101. Function Junction. Mike Pavlak Solutions Consultant (815) All rights reserved. Zend Technologies, Inc.

PHP 101. Function Junction. Mike Pavlak Solutions Consultant (815) All rights reserved. Zend Technologies, Inc. PHP 101 Mike Pavlak Solutions Consultant mike.p@zend.com (815) 722 3454 Function Junction PHP Sessions Session 1-9:00 Session 2-10:30 11:45 Session 3-12:30 Session 4-1:45 Session 5-3:00 4:00 PHP101 PHP

More information

1. Survey Introduction

1. Survey Introduction 1. Survey Introduction The WritersUA Skills & Technologies Survey is now in progress. Please consider contributing your experiences. This helps make the results better for everyone. The survey consists

More information

Windows Script Host Fundamentals

Windows Script Host Fundamentals O N E Windows Script Host Fundamentals 1 The Windows Script Host, or WSH for short, is one of the most powerful and useful parts of the Windows operating system. Strangely enough, it is also one of least

More information

Jim Buck Phone Twitter

Jim Buck Phone Twitter Jim Buck Phone 262-705-2832 Email jbuck@impowertechnologies.com Twitter - @jbuck_impower www.impowertechnologies.com Presentation Copyright 2017 impowertechnologies.com 5250 & SEU Doesn t work anymore!

More information

Index. Note: Boldface numbers indicate code and illustrations; an italic t indicates a table.

Index. Note: Boldface numbers indicate code and illustrations; an italic t indicates a table. Index Note: Boldface numbers indicate code and illustrations; an italic t indicates a table. A absolute positioning, in HTML, 184 187, 184 187 abstract classes, 6, 6 Accept header, 260 265, 261 265 access

More information

Java and i. A Salesforce Recipe: Integrating Java and RPGLE

Java and i. A Salesforce Recipe: Integrating Java and RPGLE Java and i A Salesforce Recipe: Integrating Java and RPGLE Dr. Paul Coleman Systems Integration Consultant paul.coleman@averyinstitute.com April 13, 2011 Introduction Problem: Legacy RPGLE CRM to Salesforce.com

More information

Tutorial: Using Java/JSP to Write a Web API

Tutorial: Using Java/JSP to Write a Web API Tutorial: Using Java/JSP to Write a Web API Contents 1. Overview... 1 2. Download and Install the Sample Code... 2 3. Study Code From the First JSP Page (where most of the code is in the JSP Page)... 3

More information

Today. Review. Unix as an OS case study Intro to Shell Scripting. What is an Operating System? What are its goals? How do we evaluate it?

Today. Review. Unix as an OS case study Intro to Shell Scripting. What is an Operating System? What are its goals? How do we evaluate it? Today Unix as an OS case study Intro to Shell Scripting Make sure the computer is in Linux If not, restart, holding down ALT key Login! Posted slides contain material not explicitly covered in class 1

More information

Web-enable a 5250 application with the IBM WebFacing Tool

Web-enable a 5250 application with the IBM WebFacing Tool Web-enable a 5250 application with the IBM WebFacing Tool ii Web-enable a 5250 application with the IBM WebFacing Tool Contents Web-enable a 5250 application using the IBM WebFacing Tool......... 1 Introduction..............1

More information

DAVID M. KROENKE and DAVID J. AUER. DATABASE CONCEPTS, 7 th Edition. Chapter Seven. Database Processing Applications. Chapter Objectives

DAVID M. KROENKE and DAVID J. AUER. DATABASE CONCEPTS, 7 th Edition. Chapter Seven. Database Processing Applications. Chapter Objectives DAVID M. KROENKE and DAVID J. AUER DATABASE CONCEPTS, 7 th Edition Chapter Seven Database Processing Applications Chapter Objectives Understand and be able to set up Web database processing Learn the basic

More information

Connecting the Dots. Building Web Applications with PHP, HTML, CSS, and JavaScript

Connecting the Dots. Building Web Applications with PHP, HTML, CSS, and JavaScript Connecting the Dots Building Web Applications with PHP, HTML, CSS, and JavaScript John Valance division 1 systems johnv@div1sys.com www.div1sys.com All materials copyright 2014-2017 John Valance

More information

Introduction to WebSphere Development Studio for i5/os

Introduction to WebSphere Development Studio for i5/os Introduction to WebSphere Development Studio for i5/os Alison Butterill butteril@ca.ibm.com i want stress-free IT. i want control. Simplify IT Table of Contents 1. Background 2. Rational Development Tools

More information

31CM From RPG OA to Node.js Modernization and Mobile. Presented by: Greg Patterson Senior Sales Engineer Fresche Solutions May 9, 2017

31CM From RPG OA to Node.js Modernization and Mobile. Presented by: Greg Patterson Senior Sales Engineer Fresche Solutions May 9, 2017 31CM From RPG OA to Node.js Modernization and Mobile Presented by: Greg Patterson Senior Sales Engineer Fresche Solutions May 9, 2017 Agenda Brief History of Modernization 5250 Refacing RPG Open Access

More information

Princess Nourah bint Abdulrahman University. Computer Sciences Department

Princess Nourah bint Abdulrahman University. Computer Sciences Department Princess Nourah bint Abdulrahman University Computer Sciences Department 1 And use http://www.w3schools.com/ PHP Part 1 Objectives Introduction to PHP Computer Sciences Department 4 Introduction HTML CSS

More information

What s new in Mainframe Express 3.0

What s new in Mainframe Express 3.0 What s new in Mainframe Express 3.0 TABLE OF CONTENTS Introduction 3 1 Mainframe Compatibility 4 1.1 Enterprise COBOL for z/os 4 1.2 DB2 4 1.3 IMS 5 1.4 CICS 5 1.5 JCL Support 5 2 Testing Enhancements

More information

IBM Lotus Sametime Advanced 8

IBM Lotus Sametime Advanced 8 IBM Lotus Sametime Advanced 8 Lisa Sarkady Lotus IT Specialist Great Lakes District 1 Agenda Sametime product family overview Sametime Advanced overview & demo Architecture & Deployment 2 IBM Software

More information

Oracle Application Express: Administration 1-2

Oracle Application Express: Administration 1-2 Oracle Application Express: Administration 1-2 The suggested course agenda is displayed in the slide. Each lesson, except the Course Overview, will be followed by practice time. Oracle Application Express:

More information

Lesson 13 Transcript: User-Defined Functions

Lesson 13 Transcript: User-Defined Functions Lesson 13 Transcript: User-Defined Functions Slide 1: Cover Welcome to Lesson 13 of DB2 ON CAMPUS LECTURE SERIES. Today, we are going to talk about User-defined Functions. My name is Raul Chong, and I'm

More information

Tooling for Ajax-Based Development. Craig R. McClanahan Senior Staff Engineer Sun Microsystems, Inc.

Tooling for Ajax-Based Development. Craig R. McClanahan Senior Staff Engineer Sun Microsystems, Inc. Tooling for Ajax-Based Development Craig R. McClanahan Senior Staff Engineer Sun Microsystems, Inc. 1 Agenda In The Beginning Frameworks Tooling Architectural Approaches Resources 2 In The Beginning 3

More information

Click to edit H06the title text format

Click to edit H06the title text format Click to edit H06the title text format Click to edit the outline text format Fourth Outline Level Fifth Stefan Outline Level Hummel Sixth IBM Outline Germany Level Competitive Database Migration to Informix

More information

Solution overview VISUAL COBOL BUSINESS CHALLENGE SOLUTION OVERVIEW BUSINESS BENEFIT

Solution overview VISUAL COBOL BUSINESS CHALLENGE SOLUTION OVERVIEW BUSINESS BENEFIT BUSINESS CHALLENGE There is an increasing demand from users of business software for easier to use applications which integrate with other business systems. As a result IT organizations are being asked

More information

Invasion of APIs and the BLOB,

Invasion of APIs and the BLOB, Invasion of APIs and the BLOB, or how I learned to stop worrying and love the acronym. By Eamonn Foley Senior Programmer Analyst Who I Am 15+ Years in Synon/2e DBA, Architect, Developer, Instructor, Consultant,

More information

Alter Package Schema Name Package Name Compile Debug Package Specification Body

Alter Package Schema Name Package Name Compile Debug Package Specification Body Alter Package Schema Name Package Name Compile Debug Package Specification Body Compiling PL/SQL Subprograms for Native Execution Debugging Stored Subprograms Let you modify package objects without recompiling

More information

Tivoli Directory Integrator (TDI)

Tivoli Directory Integrator (TDI) Tivoli Directory Integrator (TDI) The Best Free Tool You ve Never Heard Of Marie Scott Thomas Duffbert Duff 2010 by the individual speaker Sponsors 2010 by the individual speaker Agenda Introduction to

More information

What is PHP? [1] Figure 1 [1]

What is PHP? [1] Figure 1 [1] PHP What is PHP? [1] PHP is an acronym for "PHP: Hypertext Preprocessor" PHP is a widely-used, open source scripting language PHP scripts are executed on the server PHP is free to download and use Figure

More information

TPF Users Group Fall 2007

TPF Users Group Fall 2007 TPF Users Group Fall 2007 z/tpf Enhancements for SOAP Provider Support and Tooling for Web Services Development Jason Keenaghan Distributed Systems Subcommittee 1 Developing Web services for z/tpf Exposing

More information

AIM. 10 September

AIM. 10 September AIM These two courses are aimed at introducing you to the World of Web Programming. These courses does NOT make you Master all the skills of a Web Programmer. You must learn and work MORE in this area

More information

Database Systems: Design, Implementation, and Management Tenth Edition. Chapter 14 Database Connectivity and Web Technologies

Database Systems: Design, Implementation, and Management Tenth Edition. Chapter 14 Database Connectivity and Web Technologies Database Systems: Design, Implementation, and Management Tenth Edition Chapter 14 Database Connectivity and Web Technologies Database Connectivity Mechanisms by which application programs connect and communicate

More information

Utilizing Databases in Grid Engine 6.0

Utilizing Databases in Grid Engine 6.0 Utilizing Databases in Grid Engine 6.0 Joachim Gabler Software Engineer Sun Microsystems http://sun.com/grid Current status flat file spooling binary format for jobs ASCII format for other objects accounting

More information

A web application serving queries on renewable energy sources and energy management topics database, built on JSP technology

A web application serving queries on renewable energy sources and energy management topics database, built on JSP technology International Workshop on Energy Performance and Environmental 1 A web application serving queries on renewable energy sources and energy management topics database, built on JSP technology P.N. Christias

More information

<Insert Picture Here>

<Insert Picture Here> Oracle Forms Modernization with Oracle Application Express Marc Sewtz Software Development Manager Oracle Application Express Oracle USA Inc. 540 Madison Avenue,

More information

Using EnScript to Make Your Life Easier Session 1. Suzanne Widup, James Habben, Bill Taroli

Using EnScript to Make Your Life Easier Session 1. Suzanne Widup, James Habben, Bill Taroli Using EnScript to Make Your Life Easier Session 1 Suzanne Widup, James Habben, Bill Taroli 1 Master Title Session 1 Getting Started with EnScript 2 EnScript Basics To Begin With EnScript is similar to

More information

How Application Modernization is Helping to Transform Business. Alison Butterill WW IBM i Offering Manager

How Application Modernization is Helping to Transform Business. Alison Butterill WW IBM i Offering Manager How Application Modernization is Helping to Transform Business Alison Butterill WW IBM i Offering Manager akbutter@us.ibm.com The Evolution of IT IBM i Architecture DB2 for i & Single Level Store Object

More information

OEM FRU TECHNICAL WHITE PAPER

OEM FRU TECHNICAL WHITE PAPER OEM FRU TECHNICAL WHITE PAPER Capabilities and Use Cases of the OEM FRU Storage Feature on Dell EMC PowerEdge Servers ABSTRACT This white paper describes the capabilities of the OEM FRU storage feature

More information

LANSA V13 SP2 introduces many new features and enhancements. The highlights are described in this newsletter.

LANSA V13 SP2 introduces many new features and enhancements. The highlights are described in this newsletter. Newsletter August 2014 LANSA V13 SP2 The second Service Pack for LANSA Version 13 is now available with lots of new features! LANSA V13 SP2 introduces many new features and enhancements. The highlights

More information

PHP: Hypertext Preprocessor. A tutorial Introduction

PHP: Hypertext Preprocessor. A tutorial Introduction PHP: Hypertext Preprocessor A tutorial Introduction Introduction PHP is a server side scripting language Primarily used for generating dynamic web pages and providing rich web services PHP5 is also evolving

More information

Getting Started in the World of WebSphere; Real World Case Studies

Getting Started in the World of WebSphere; Real World Case Studies s Getting Started in the World of WebSphere; Real World Case Studies Paul Holm PlanetJ Corporation Pholm@planetjavainc.com 2005 PlanetJ Corporation. All rights reserved. What We'll Cover... How are Java

More information

Make your IBM i Sizzle

Make your IBM i Sizzle Make your IBM i Sizzle with WordPress seidengroup.com Seiden Group and Club Seiden Alan is a leader and expert in PHP on IBM i; leader, Zend s PHP Toolkit for IBM i; and Performance guru of PHP on IBM

More information

Application Migration with X-Analysis

Application Migration with X-Analysis MANAGEMENT OVERVIEW A GUIDE TO THE BENEFITS OF USING APPLICATION MIGRATION Application Migration with X-Analysis Databorough Ltd. 66 York Road Weybridge UK info@databorough.com Phone +44 (0)1932 848564

More information

Test Driven Development Best practices applied to IBM i with the assistance of tooling. Barbara Morris RPG compiler lead Edmund Reinhardt RDi lead

Test Driven Development Best practices applied to IBM i with the assistance of tooling. Barbara Morris RPG compiler lead Edmund Reinhardt RDi lead Test Driven Development Best practices applied to IBM i with the assistance of tooling Barbara Morris RPG compiler lead Edmund Reinhardt RDi lead The Vision IBM i developers are able to confidently change

More information

Using XML and RDBMS Data Sources in XPages Paul T. Calhoun NetNotes Solutions Unlimited, Inc

Using XML and RDBMS Data Sources in XPages Paul T. Calhoun NetNotes Solutions Unlimited, Inc Using XML and RDBMS Data Sources in XPages Paul T. Calhoun NetNotes Solutions Unlimited, Inc 2010 by the individual speaker Sponsors 2010 by the individual speaker Speaker Information Independent Consultant,

More information

Database Programming with PL/SQL

Database Programming with PL/SQL Database Programming with PL/SQL 1-2 Objectives This lesson covers the following objectives: List and explain the benefits of PL/SQL List the differences between PL/SQL and other programming languages

More information

Professional Course in Web Designing & Development 5-6 Months

Professional Course in Web Designing & Development 5-6 Months Professional Course in Web Designing & Development 5-6 Months BASIC HTML Basic HTML Tags Hyperlink Images Form Table CSS 2 Basic use of css Formatting the page with CSS Understanding DIV Make a simple

More information

PHP 101 for IBM i. Mike Pavlak, Solution Consultant Zend Technologies, Inc.

PHP 101 for IBM i. Mike Pavlak, Solution Consultant Zend Technologies, Inc. PHP 101 for IBM i Mike Pavlak, Solution Consultant Zend Technologies, Inc. Mike.p@zend.com Target audience Interested in leveraging web technology and IBM i Learn more about how PHP integrates with IBM

More information

A Web-Based Introduction

A Web-Based Introduction A Web-Based Introduction to Programming Essential Algorithms, Syntax, and Control Structures Using PHP, HTML, and MySQL Third Edition Mike O'Kane Carolina Academic Press Durham, North Carolina Contents

More information

THE POSIT TOOLSET WITH GRAPHICAL USER INTERFACE

THE POSIT TOOLSET WITH GRAPHICAL USER INTERFACE THE POSIT TOOLSET WITH GRAPHICAL USER INTERFACE Martin Baillie George R. S. Weir Department of Computer and Information Sciences University of Strathclyde Glasgow G1 1XH UK mbaillie@cis.strath.ac.uk george.weir@cis.strath.ac.uk

More information

Charles Guarino. About The Speaker

Charles Guarino. About The Speaker A Walk Through RDi Starting at Go! (Rational Developer for i) Charles Guarino Central Park Data Systems, Inc. About The Speaker With an IT career spanning over 30 years, Charles Guarino has been a consultant

More information

Featuring: Call Hierarchy and Program Structure diagrams,

Featuring: Call Hierarchy and Program Structure diagrams, IBM Software Group Rational Developer for IBM i (RDi) Application Diagram Viewer Featuring: Call Hierarchy and Program Structure diagrams, Last Update: 9/10/2009 2009 IBM Corporation Agenda Application

More information

(Worth 50% of overall Project 1 grade)

(Worth 50% of overall Project 1 grade) 第 1 页共 8 页 2011/11/8 22:18 (Worth 50% of overall Project 1 grade) You will do Part 3 (the final part) of Project 1 with the same team as for Parts 1 and 2. If your team partner dropped the class and you

More information