Friday, April 02, 2010
What is RPGsp (RPG Smart Pages)
RPGsp is an award-winning rapid Web development environment that has been proven and trusted by thousands of System i users. Whether you need to extend your existing legacy programs or build new applications, RPGsp can deliver phenomenal results in a short amount of time.
With RPGsp, you will save time by using existing RPG resources and not having to rewrite code or retrain your staff. You will increase your productivity with the help of cutting edge tools like intuitive point-and-click wizards, HTML design, visual debugging, advanced RPG editing, code analysis, and hybrid compiling. You will instantly construct advanced applications like dynamic graphs, inquiries, drill-downs, BI dashboards, and file maintenances. RPGsp supports the latest in SOA, Web Services, AJAX, Web 2.0, and eCommerce to help you build the most interactive and flexible applications.
Native System i Web Development
Web applications are business applications. Why not then use RPG, the platform's undisputed best business language, to build modern IBM i Web applications? RPGsp (RPG Smart Pages) enhances the native RPG language to have powerful Web capabilities. This makes it a true Web development language, with all of the features a modern Web language should have, including AJAX, SOA, Dynamic HTML, Forms, Cookies, and much more. System i developers feel right at home in this environment. Finally, you can get to the Web without middleware, third party application servers, or Websphere.
^ Back to top ^
Short Learning Curve
Build on what you already know. If you are already familiar with standard RPG, you can start building Web applications right away. Even non-programmers can create applications in minutes by using any of the powerful wizards that are available. You will have access to comprehensive documentation, numerous examples, and detailed HTML/RPG references to help as you begin coding your applications.
^ Back to top ^
Rapid Development
With RPGsp, application development is now faster than ever before. You can build all kinds of applications within minutes. Choose from an abundance of rapid application development tools to speed development tasks. Instantly build advanced dynamic fields like data-driven dropdowns and list boxes. Reuse any of your existing code, including RPG, CL , DDS, and HTML. Control all HTML attributes in a point and click manner, and let our comprehensive designer write most of the HTML for you. Plus, you can quickly build applications such as advanced database inquiries, file maintenances, drill-downs, header/detail screens, pop-up selection windows, data entry forms, and much more without manual coding.
^ Back to top ^
Numerous Wizards, Templates, and Snippets
New to Web development? Our IDE is packed with wizards and templates to get you going. Just pick a template and RPGsp will walk you through creating the application. You can quickly create working programs without writing any code. You will end up with clean ILE RPG code (free or fixed format) working together with dynamic HTML output. As you maintain your application, you will have access to various code snippets for RPG, CSS, and JavaScript. Also included is a ready-made AJAX library which allows you to easily integrate Web 2.0 features, exchange XML, or use Web services.
^ Back to top ^
Built-in Charting
Creating interactive charts, dashboards, and KPI's with RPGsp is as simple as point and click. Just follow our comprehensive step-by-step wizards to build any type of single-series, multi-series, or combination chart. Our wizards offer hundreds of options to help you build comprehensive applications for visualizing your business data. Pick from 2D or 3D Column Charts, Bar Charts, Line Charts, Area Charts, Pie Charts, Doughnut Charts, and more. Each type of chart is completely customizable with data being built either by record level RPG code or SQL. You can easily make the charts interact with each other or with other Web components. Users may click on the chart to drill-down and/or activate another chart.
^ Back to top ^
Intelligent Code Editing and Design Tools
RPGsp comes with an award winning code editor. It is full of helpful features such as HTML reformatting, fixed to free format conversion, intelligent prompting, code outlines, syntax highlighting, and context-sensitive help. It supports both Web and back-end languages, including JavaScript, CSS, HTML, RPG, CL, and DDS. In addition, you can visually inspect your application with our built-in HTML designer. The designer can automatically render dynamic RPG and resources residing on the System i. It may also be launched in Split-View, which allows developers to work with Code and Design at the same time in one view.
^ Back to top ^
Integrated Visual Debugger
RPGsp offers 3 different ways to debug RPG-based web applications, including a completely integrated Visual Debugger. The Visual Debugger provides unique features such as variable evaluation on hover, job-transparent debugging, and even the ability to step back in time to examine execution history. You will be able to set breakpoints and visually step through running Web applications while reviewing both RPG and HTML code in one view.
^ Back to top ^
Cross-platform Capabilities
RPGsp pages can read or update Oracle, SQL Server, MySQL, MS Access, and other databases. Created programs will be able to communicate with other Web applications running on any platform. Your applications will also have complete support for SOA, XML, AJAX, and Web services.
^ Back to top ^
Unmatched Performance
RPGsp produces lightening fast CGI code. Our unique "look-ahead" compile technology allows for performance up to four times faster than other native technologies, such as CGIDEV2. Your applications will run entirely in batch processing.
^ Back to top ^
Rock Solid Security
RPGsp applications reside entirely on the System i and take full advantage of the system's object-based architecture to protect against viruses, malicious scripts, hackers, and other threats. You also receive another layer of security by having your Web applications separated from the rest of the system. Complete support for SSL is provided.
^ Back to top ^
Automated Server Configuration
Install the development environment and configure the Web server in less than five minutes using RPGsp's intelligent server analysis and configuration utilities. Effortlessly configure logging and user authentication with easy to use wizards.
^ Back to top ^
Automatic Conversions
Move your existing applications to the Web rapidly. No more screen-scrapping or web-facing. With our conversion process, your applications will be transformed into true Web applications very quickly. All of your converted screens will be completely customizable with no ties to the original Display Files and no limitations of green-screens.
^ Back to top ^
Integrated Source Control & Change Management
RPGsp includes change management exit points and an integrated multi-user source control system to prevent developers from stepping on each others' toes as they work on Web applications, green-screen programs, and modernization projects. Source code is checked in and out within the RPGsp IDE using a simple point-and-click interface.
^ Back to top ^
A Smart Investment
You will never have to worry about hidden costs, lengthy training, and lack of support. Join the thousands of satisfied clients around the world who already rely on our state-of-the-art tools and industry-leading technical support. Leverage your existing assets, deploy your projects quickly, and be productive from day one with RPGsp.
^ Back to top ^
Backed by an Industry Leader
Profound Logic Software is a proven provider of the best tools, services, and support for System i Web development projects. We have been developing modern System i Web applications and tools for years. After countless successful implementations of our technology and multiple awards for innovation, we have again and again proven that we have what it takes to effectively modernize and add value to AS400, iSeries, and i applications. Profound Logic's impressive list of System i customers further demonstrates our capacity to deliver outstanding results with our products and services. Once you engage with Profound Logic, you will immediately notice our superb level of support and our commitment to providing the best modernization solutions for the System i.
Saturday, January 16, 2010
UDATE and *DATE in AS400 RPG
o
The date retrieved by UDATE/*DATE can be modified using the as400 CL command CHGJOB to change the job date.
o
For interactive jobs, UDATE/*DATE retrieves the date when the interactive session started. Scenario: A user signs on a machine at a date X and stays logged on past midnight (and possibly over several days). The user then runs an interactive RPG program containing UDATE/*DATE. Either of these reserved words will return date X regardless of what the current date is. To reset what the reserved words return, the user must sign off and back on and, therefore, retain a fresh interactive session.
o
For prestart jobs (PJ) and batch immediate jobs (BCI), the date that is returned for a prestart job (PJ) is the date when the job gets started. It is not the time the connection was made.
Note: Prestart jobs are recycled according to the prestart job entry settings ( WRKSBS , Option 5, Option 10). The date the daemon job started is returned for BCI jobs rather than the time the BCI job started.
o
For batch jobs, UDATE/*DATE retrieves the date when the job was submitted to run. Scenario: A user submits on date X a batch job consisting of a CL program which calls an IBM RPG/400 program with UDATE/*DATE in it. In addition, suppose the CL program includes aDLYJOB command which delays the call to the RPG program until past midnight. When the RPG program finally runs, the UDATE/*DATE in it returns date X (the start date of the batch job) rather than X+1 (the date when the RPG program actually starts running). The same behavior continues on should the CL program recursively call itself over multiple days; as400 rpg UDATE/*DATE continues returning date X for the duration of the job.
Friday, September 18, 2009
Using free-form RPG program to call another RPG program
eg
For program myrpg01
d myrpg01 pr
d parm 1A
d myrpg01 pi
d parm 1A
then to call
either CALLP myrpg01('MYPARM');
or just
myrpg01('MYPARM');
Friday, July 24, 2009
Calling an RPG program from Groovy
I've been integrating Java applications with AS400/iSeries/Systemi RPG programs for over ten years. I've covered it in my book (Java Application Strategies for the iSeries) as well as in many of my articles. Calling RPG from Java can be complex. There are 4 or so options but I've been fairly emphatic about using JDBC callable statements as it is the simplest approach. To do that you need to create a stored produce "wrapper" for the RPG. But the Java code still can be quite verbose. Not so with Groov
http://denoncourt.blogspot.com/2009/07/calling-rpg-program-from-groovy.html
Monday, May 18, 2009
80 Column Punched Cards and the History of RPG on the AS400
http://ibmsystemsmag.blogs.com/idevelop/2007/09/of-80-column-pu.html
Anyway it got me thinking about how little many of us know of our own history as it relates to the IT industry. Would you believe that there are people out there who actually believe that Bill Gates and Microsoft invented the concept of a windowing GUI! They probably believe they invented DOS too--poor misguided souls.
On the subject of punch cards, let's take a quick look at how they impacted our favorite language--RPG. Since some of you may not have actually seen a punch card before, here's a picture of one so that we all know of which we speak:
As you can see there are 80 vertical columns, which explains the 80-column limit in RPG II and RPG III. You might also have wondered why the first five columns of the spec are designated as the sequence number. Well, suppose you had a 600-line RPG program and it was on punch cards. Now suppose that you dropped the box and 600 cards hit the floor. How long do you think it would take you to put the program back in order? Now you understand the reason for the sequence number.
Friday, May 01, 2009
RPG World RPG Developers Conference
2009 Conference and ShowCase
Some of The Topics Includes:
Web Applications with RPG IV - 101.
Creating an Excel Worksheet with RPG IV.
Sending Email from RPG IV with multiple attachments.
Data Entry using a Web Browser and RPG IV.
Using RPG IV to post and retrieve messages to/from Twitter.com and other online services.
Using RPG IV to connect send an HTTP request to another (e.g., Microsoft .Net/ASP SOA) server.
XML Topics.
SQL Topics.
Traditional RPG, CL and Subfile Topics.
How to Install and use RDi (the new name for WDSc)
Monday, May 26, 2008
Free i5 (AS400) RPG Utility - Change Current User
This will allow you to change the current user that you are logged on with without logging off the system first. This command uses the QSYGETPH API to verify the password entered and then uses the QWTSETP API to actually change the user that is currently signed on. This is very useful in making sure that a peticular program is always run as a certain user
http://www.freerpgtools.com/downloads/chgcurusr.html
as400 tips
Friday, January 21, 2005
Difference between OPM RPG and ILE RPG
way the compiler and runtime are coded. For example, the handling of eof
and record-not-found is much faster for ILE RPG. Also, program
initialization is much faster when you have no PSDS or a small PSDS (this is
most dramatic when the called program returns immediately).
There may be some difference due to the fact that the ILE RPG runtime is
statically bound and the OPM runtime is not, but this may not be as big a
difference as you'd expect, because the OPM RPG runtime is used much less
than the ILE RPG runtime. Many OPM RPG programs only call the
initialization runtime program; all the code is generated directly into the
program rather than calling out to the runtime; system programs for file
handling are called directly from the generated code.
I think most of the difference is due to the optimizating translator used by
the ILE compilers, which takes the code generated by the compiler and
generates machine code.
Thursday, January 20, 2005
Blocking, Sequential Only, and the Effect on an RPG Program
All high-level language programs (HLLs) use blocking at certain times and use single record I/O at other times, based on program specifications. Because blocking takes less system resources to perform a single I/O, a program that blocks performs better and uses less system resources. The default for the HLL uses record blocking if opening a file for output only (write) or input only (read). The programmer is expected to override the file or use larger blocks if the default is not appropriate. The HLLs do single I/O if files are opened for both input/output or update/delete. Blocking works well only if one reads many records sequentially because the block of records read are from some position in the file and the next N records. If one is going to position randomly within the file (CHAIN or set lower limit (SETLL) in RPG) and then read only two records, blocking may actually be a waste of system resources as the read after the random position reads a single record; however, the next read reads a block of records and the program reads only one.
The parameter on the override command that expresses the intent to block is sequential only (SEQONLY) to emphasize that the intent is to read some number of records in a row (you choose the number). Sequential only does not preclude the program from doing random positioning; however, remember the system reads an entire block of records when the second READ is run after the position (the first read accesses a single record only).
http://www-912.ibm.com/s_dir/slkbase.NSF/0/d6738e1cd37e1f33862565c2007cef79?OpenDocument
Wednesday, January 19, 2005
Copying Data Faster in RPG - MC Press Online
http://www.mcpressonline.com/mc/1@148.tRsoc7Mjhrm.0@.6b211eea
Thursday, January 13, 2005
WDSC: How to build a Java Web application calling RPG
The Web Interaction wizard in WDSC is a great tool that Web-enables any type of iSeries server application or Java bean easily. If you're building a Java Web application for users or a Web services application, this tool is key to creating those applications rapidly.
There are many alternatives to using the Web Interaction wizard for creating calls to RPG programs in Web applications. Many of the ones outside of WDSC require buying a special tool OR having a very high Java development skill level. Within WDSC, you could also use the Program Call bean wizard to create a program call bean and write your own JSP and Java code to invoke the Program Call bean and return the response, but that would also be more work.
Other options include using TCP sockets to call a host program or JDBC Stored Procedures. IF you need to return a result set to your Web page to navigate a set of rows, then Stored Procedures is definitely the right answer.
We use both Stored procedures and program call beans frequently in Web applications. The Web Interaction wizard can use both easily to build Web applications that call iSeries server programs.
"
Wednesday, January 12, 2005
Common Gateway Interface (CGI) on the as400 / iSeries
First you need to setup your HTTP server to allow CGI:
On the as400 the HTTP server jobs run in the subsystem QHTTPSVR. You will see groups of jobs running for each HTTP Server instance (each configured HTTP Server).
To gain access to the confirguration of the HTTP server you can use the green screen command Work with HTTP Configuration (WRKHTTPCFG), but I much prefer the browser based HTTP Admin client.
To use this you must have started you HTTP Server admin instance using STRTCPSVR SERVER(*HTTP) HTTPSVR(*ADMIN). This will start the QHTTPSVR subsystem if it is not active, and then start the ADMIN instance.
In your browser, Go to http://youras400name:2001/. You will need to login with an authorised as400 logon at this point.
At the AS400 tasks screen click on IBM HTTP Server. At this point you need to either select an existing HTTP server, or setup a new HTTP Server using the wizard.
Click the Add a Directory to the Web task. Click CGI programs, and click next.
Enter the serving directory (as400 program library), and clicked next,
enter Alias (url to be used to invoke the as400 CGI program), click next.
Restart the HTTP server.
Now you can serve CGI. Here is a sample RPG CGI Program
Create a binding directory for the CGI service program:
CRTBNDDIR, and add QHTTPSVR / QZHBCGI (*SVRPGM) to it.
H bnddir('CGI') * New Line Constant DCRLF C CONST(X'0D25') C EVAL OUTTXT = 'Content-Type: text/html'+CRLF+CRLF C EXSR OutputText C EVAL OUTTXT = 'Hello World C EXSR OutputText C SETON LR C RETURN C OutputText BEGSR C ' ' CHECKR OUTTXT OUTLEN C CALLB 'QtmhWrStout' C PARM OUTTXT C PARM OUTLEN C PARM ERRCDE C ENDSR
xx
This would get invoked by something such as a URL like http://your-server/your-cgi-bin/helloworld
and as400 Bobs your uncle!