Re: Driving TN5250 non-interactively

Davide Grandi <davide.grandi-dP4/[email protected]>
Newsgroups gmane.comp.emulators.tn5250
Message-ID <[email protected]>
  Dear Richard,

nearly one month ago on that list there was this message :
---
Oggetto: 	Re: [LINUX5250] use lib5250 without display
Data: 	Wed, 16 Jun 2010 17:01:35 +0200
Mittente: 	Holger Schurig <[email protected]>

---
that gave some useful info on driving lib5250 (the "engine" of tn5250) 
from another C program.
I suggest  that you will try to do the screen scraping part of your 
application using lib5250 (or the engine of tn5250j, if you're more 
proficient in Java than in C) instead of digging in the details of 5250 
protocol.

At work I wrote many java "transaction" that use a layer over a 5250 
emulator ("connect", wait, get list of fields, field content, 
attributes, move to, send, ...) and ... the programming is very easy.

They are blazingly fast (the 5250 protocol is very light and ... there's 
no graphic to wait for!), the program logic is as simple as you need (a 
state machine or a bunch of if-then-else) and you can skip completely 
the data access, decoding and validation phases.

I use a (jakarta commons) pool of sessions pre-logged and kept on the 
main menu so a typical transaction involving ...

- the input of a menu code <ENTER>
- the input of a customer card numer in a known field <ENTER>
- the scan of a subfile (generally on a single page, seldom on two or 
more pages) to collect the yearly points accumulated on the card
- picking (guess how : 1 + <ENTER> on the top left of the subfile) the 
topmost year (+ F16 + wait if scrolled)
- collecting data on a multipage subfile (with varying format on the 
lines) and converting to an XML tree spitted back on a web response

... requires times of 0.1 - 0.5 seconds.
(the validation - restoring - housekeeping of the 5250 sessions are made 
by separate thread or directly by the pool, so they don't get accounted 
on the strict timing required by our customer).

Just my 2 (euro) cents.

Best regards,

     Davide Grandi


Il 16/07/10 22:44, Richard Nolde ha scritto:
> Original message:
>> TN5250 list members:
>>
>> I've been tasked with writing an interface between an application that
>> runs on a remote iSeries host, accessible with TN5250 over a private
>> network, and our application that would query the iSeries in real time
>> without human interaction. My application will run on a Linux or AIX
>> box, and act like a broker between the local application and the remote
>> iSeries host application that contains the database we are querying.
>>    ...
>>
>> Thanks,
>> Richard Nolde
>>
>> ------------------------------
>>
>> message: 2
>> date: Thu, 15 Jul 2010 18:10:08 -0600
>> from: Xavier S?nchez<[email protected]>
>>
>> It seems like what you want to know are details about the 5250 data stream.
>>
>> 5250 is a data stream that contains not only plain text data, but attributes
>> for the data displayed on the screen (like foreground color, background
>> color, underlining and bold), along with keyboard command attention (CA) and
>> command function (CF) keys.
>>
>>
> Yes, I've studied enough of the source code to the tn5250 application to
> see that it is a highly complex protocol with a multitude of control
> sequences and status bits and very demanding sequencing requirements.
>> I think the best source of that complete information is specified in a set
>> of books by IBM, like "SNA Formats", and others related to the SNA data
>> streams used in 5250-like terminals.
>>
>> There is an on-line source of information where you will probably find it.
>>
>> I'd suggest you search the IBM search engine at this URL.  You will have to
>> look for further to find what you need.  Try to find out one version that
>> deals with iSeries under the same bookmanager library reader.
>>
>> http://www-03.ibm.com/systems/z/os/zos/library/softcopy/softfeat.html
>>
>> Good luck!
>>
>>
> Thanks for the link. As with most things IBM, it is harder to find with
> there own search engine that with Google, but your link saved me a lot
> of time.
>> X Sanchez
>>
>> -----Mensaje original-----
>> De: linux5250-bounces-Zwy7GipZuJhWk0Htik3J/[email protected] [mailto:linux5250-bounces-Zwy7GipZuJhWk0Htik3J/[email protected]]
>> En nombre de Richard Nolde
>> Enviado el: Jueves, 15 de Julio de 2010 04:47 p.m.
>> Para: linux5250-Zwy7GipZuJhWk0Htik3J/[email protected]
>> Asunto: [LINUX5250] Driving TN5250 non-interactively
>>
>>
> from: Jim Oberholtzer<[email protected]>
>
> subject: Re: [LINUX5250] Driving TN5250 non-interactively
>
>> You say that the iSeries is on a private LAN.  Why not just write a
>> program using ODBC to access the data you are after? Or, create some
>> stored procedures on the iSeries and use a web service over there. I
>> wonder if the direction is coming from someone that does not realize
>> those facilities are available on that machine, or alternatively you
>> don't have the ability to sign on and create things there.  If the goal
>> is to run specific commands, you might consider an FTP script using
>> "syscmd".
> We do not have any access to the remote AS400 machine except to run this one specific application. The business partner with the AS400 does not have its own developers and the administrative staff is scared to change anything. We looked into developing a web service on their end and they have no development environment or programming staff. None of our IT staff has ever worked on an AS400. We do only Linux/AIX and database applications that interface with our own servers so we are stuck with this kind of interface.
>
> That said creating a screen scraper application really is all about
> knowing the 5250 data stream.
>
>> Try this for more understanding.  I pulled it from V5R3 since you said
>> "iSeries" guessing that the system might be a bit further back in OS
>> than current.
>>   http://publib.boulder.ibm.com/infocenter/iseries/v5r3/index.jsp?topic=/apis/dsm1f.htm
> I don't even know the exact hardware or version of the OS they are running but I can be relatively sure it isn't current.  Thanks for the link.
>
>> Jim Oberholtzer
>> CEO/Chief Technical Architect
>> Agile Technology Architects, LLC
>> message: 4
>> date: Fri, 16 Jul 2010 10:29:23 -0400
>> from: "Raul A. Jager W."<raul-txJ8x5cWuapVBtrROPlz/[email protected]>
>> subject: Re: [LINUX5250] Driving TN5250 non-interactively
>> Can you use a web service instead?
>> If the reports to be transfered are easy to build, you can generate a
>> web page and retrieve it automaticlay.
>> If you need the output of a "batch" program, you can run it from a web
>> page (automaticaly, by using something like wget) and retrive the spool
>> file after.
> See above. Our only option is to use the existing interface at this point. I think it is going to be a long shot at best, with lots of potential for hangups, but we have to prove whether it is practical or not.
>
> Thanks,
>     Richard Nolde

-- 
This is the Linux 5250 Development Project (LINUX5250) mailing list
To post a message email: LINUX5250-Zwy7GipZuJhWk0Htik3J/[email protected]
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/linux5250
or email: LINUX5250-request-Zwy7GipZuJhWk0Htik3J/[email protected]
Before posting, please take a moment to review the archives
at http://archive.midrange.com/linux5250.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.