Help to find a character string

I am not a Natural programmer and we are using an unsupported version of the product. I need to be able to scan our Natural VSAM file to see if there are any references to a given character string. In this case the string is T1000ME. This is actually a CICS file name. I’m trying to find out if there are any programs that use the dataset associated with this file name. I have no idea of what libraries are defined or any other information. I would need to find which libraries I can scan and scan each/all of them.
Is there a command or series of commands which I can use to see if this character string is used anywhere?
Thanks for any assistance anyone can provide on this matter.

check out the SCAN command.

If you have Natural Security (LOGON SYSSEC, MENU), then you can find out what libraries you have defined. If not, you can use SYSMAIN to search your system file.

Thanks for the response but…
In my CICS region I typed the transid NATV which brings me to a splash screen which has the word NEXT in the upper left corner and LIB=SYSTEM in the upper right corner. I typed LOGON SYSSEC,MENU and pressed Enter. I then got a screen titled NATURAL LOGON PROCEDURE with the message “NO LOGON IS POSSIBLE TO LIBRARY SYSSEC”.

I pressed the Clear key and once again I’m at the screen with NEXT in the upper left corner and LIB=SYSTEM in the upper right corner. I then type SCAN on the top line and press the Enter key. I get a message "NAT0082 INVALID COMMAND OR PROGRAM DOES NOT EXIST IN LIBRARY. "

As I mentioned in the original post you can’t assume I know anything so any replies to my request need to be as detailed as possible.

forums aren’t a great substitute for training.

SCAN is documented in the Natural documentation - check out the documentation links with the forum -

Forums are supposed to be where people who need help can ask for it and that’s what I’m doing.

We don’t have anyone who has any knowledge of the product here so I’m looking to the world at large for suggestions. Your reply was appreciated but our system is either so far out of date (version 1.2) or we’re missing something.

Version 1.2 ??? WOW. This has to be a record. I understand you are not a Natural person, so some history might be of interest. Version 2.1 arrived on the scene in either 1984 or 1985. The applications you have, and the software that is running them, are over twenty years old.

You should either get someone inhouse who knows about Adabas/Natural, or should look to get off the platform. This is not intended to be derogatory in any way. Simply a reflection of what appears to be an all but untenable situation. What do you do if someone wants to change functionality? Or add an enhancement?


ok…to get back to the original question, given that you are on v1.2…

You will need a competent Natural programmer who can write “reporting mode” Natural programs. You need a program that will read the Natural system file to scan for the strings you are looking for. As v1.2 is not accessible to those of us on the forums, we can’t provide a working program: I don’t know which of system file layout decription you might have (a “DDM” - data definition module), nor can I test anything without access to a v1.2 environment. As the language has evolved in the past 20+ years, I don’t know that a program I could write now would compile or run in v1.2.

With that old of a version, we can’t possibly give you detailed answers on how to do anything. As evidenced by my suggestion to use the SCAN command, which wasn’t implemented then.

There is no one in house who is conversant in the language. That’s why I was looking for help from the outside.

I appreciate everyones surprise at the level we are running and also am grateful for all of the replies you’ve given me. I guess I’ll just have to forget about figuring this out. It’s more of a curiosity than a problem.

Thanks to all.


Is it possible to scan for linefeed and/or carriage return (LF/CR)? We have the contents of a Windows text file passed to a dynamic variable in nat414 and it would be handy to split it into records


maybe you could open a new topic since your question doesn’t sound much like a Natural 1.2 problem that RESETS had.

When you do, please do clarify: are you passing the name of a file to a variable (from where?) or the contents of a file to a variable. There are lots of possibilities…SEPARATE statement pops to mind; setting the DEFINE WORK FILE options correctly could also solve your problem without resorting to scanning.