× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



On 22 May 2013 21:07, Vernon Hamberg wrote:
How about just a redirect like this -

qsh cmd('find . -name "*.c" > /qsys.lib/qprint.file')

If your user profile has the authority to create into QSYS [e.g. has *ALLOBJ special authority], then if the above quoted request was actually issued for a test, then be sure to verify that the creation of a device file [possibly with the attribute SAVF] named QPRINT in QSYS was not effected when that request was issued. Such a file, if created, could be problematic for jobs referring to QPRINT without an explicit library-qualification of QGPL; i.e. requests to /print/ using the printer device file named *LIBL/QPRINT would start to fail for attempting to write non-save-records to the save file with that name. Read further for an anomaly [¿apparent defect?] which existed in v5r3 [and may persist], to understand why I suggest checking for that outcome.

Not sure if that'd work, but something like it should. Maybe chain
an OVRPRTF command in the QShell command string.

In my experience, the use of the shell's "system" utility to effect an override is worthless because the "Run CL command" work is done in a different job from the Find activity; the effects of the override would not be visible. Even use of the -i /interactive/ option to have each CL request run "in the current job" seems not to assist; both that there are no effects from a job-scoped override on the later command requests, nor is the override visible in the job when the next request is to DLYJOB thus giving time to review. If the request to run is to activate a CLP or similar, wherein the override and other work are done within one request of the /system/ invocation, then an override applies to the work it performs just as expected.

Anyhow...

The redirection seems not to like a printer device file; at least on v5r3. So even if the specified name were corrected, e.g. to instead have named /QSYS.LIB/QSYSPRT.FILE as the target, then the request still fails with the same error 001-0055 "Error found creating file /qsys.lib/qsysprt.file. The value specified for the argument is not correct." The redirect apparently either wants to /create/ a /file/ into a directory or to clear\replace the data in an _existing_ "file". In /QSYS.LIB terms, that would mean replacing data in a ".MBR"; e.g. a target such as /qsys.lib/mylib.lib/myfile.file/thembr.mbr

Only the database *FILE object [i.e. none of the other variants of the same *FILE object type] serves as a /directory/ into which /files/ can be created [into which the data can be written]; again, with naming "membername.MBR". Thus the request could instead refer to a database file member. However that would not be helpful to effect spooling, unless the database file implements something like a TRIGGER which redirects the output as a side effect of the inserted data. In a native program coded to write to a database member, an output request that had been overridden to write to a printer file might fail merely because there is no /clear/ method supported. But mimicking such an override whereby the /qsys.lib/qsysprt.file/bogus.mbr is specified as the target, the secondary text for the 001-0055 error suggests that the cause is now, that the device file is "Not a directory"; which of course is accurate, albeit not helpful, if the hope were that the member name would just be ignored by the open of the named file.

Oddly, even disturbingly IMO, on v5r3 in a test, if the named file does not exist when using /QSYS.LIB IFS naming, then a file with that name is created as a Save File; i.e. a device file of the attribute SAVF is created as target for the redirection to a ".FILE". That is hardly a predictable or even a logical effect, because any data other than binary /save file/ records can not be written, and the Save File is clearly not a directory for .MBR "files". The /disturbing/ part is not just the choice of a device\save file as an apparent directory, but also that the same generic error is issued, yet that the named file actually gets created is counter-intuitive. The following request for example, will create a save file named MYLIB/NOTASAVF, even though the error suggests that the request failed; of course, by replacing MYLIB with a library other than QTEMP that is owned or authorized to your user profile:
qsh cmd('ls *.daft > /qsys.lib/MYLIB.lib/notasavf.file')

The above request will "fail" with "qsh: 001-0055 Error found creating file /qsys.lib/mylib.lib/notasavf.file. Operation not supported." but WRKF MYLIB/NOTASAVF issued afterward will show a save file in the list of one file, and 4=Delete will be necessary to cleanup that conspicuously undesirable effect\defect [which may or may not exist on newer releases than v5r3, on which I encountered the effect].


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.