× 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 18-Oct-2016 09:13 -0500, David Gibbs wrote:
I'm a bit confused about the CPYTOIMPF command's STMFCCSID &
STMFCODPAG parameters.

The two parameters should be, essentially mutually exclusive [perhaps not fully enforced; e.g. for *STMF default or explicitly specified], with the former superseding the latter.


Can anyone point me to a concise explanation of what the they are
supposed to do?

With the specification of the older Stream File Code Page (STMFCODPAG), and since, with the Stream File Coded Character Set Identifier (STMFCCSID), the intent is to allow assigning with what CCSID the new output file should be tagged; i.e. if the file already exists, the specification is quite nearly ignored [if not instead, the cause for an error being issued].


Here's the problem ... at one customer, when we run the CPYTOIMPF
command on a file with CCSID 937, with the STMFCCSID parameter set
to *PCASCII, we get EBCDIC in the resulting stream file.

The actual command string is typically best, to reveal more, and further knowing any changed command defaults helps eliminate further unknowns in review of the request. Also, for that feature, be sure to use a *ALLOBJ user and review for and record any results of WRKDTAARA QCP*; the list and data within any appearing on the list.

And often, implications such as that [i.e. we get EBCDIC], requires actually determining how that conclusion was made; by what interface et al. Easier just to provide actual hex data used as the input and the hex data resultant as the output; the Dump (DMP) command for a STMF will show the actual hex rather than other interfaces that might more easily confuse -- i.e. Display File (DSPF) will translate the data to the job CCSID, thus into an EBCDIC CCSID. Copy File (CPYF) using Output Format (OUTFMT) of *HEX and To File (TOFILE) of *PRINT will do similar for a database file member.

Perhaps the "resulting stream file" was a pre-existing file with an EBCDIC CCSID? Note also: generally a CCSID is specific to the column rather than to the file; e.g. some [var]char column(s) with the mixed CCSID 937 was exported. The given scenario, for output/export to a new STMF, presumably should have effected creation of a file having been tagged with CCSID(950) as a "computed"/corresponding x4105 Multi-Byte Character Set (MBCS) CCSID; and of course, that mixed EBCDIC data would be expected to have been translated into that ASCII multi-byte data.


On the same customers system, with the same file, if we set the
STMFCODPAG parameter to *PCASCII, we get a ASCII text file.

What about the other parameter specifications on the Copy To Import File (CPYTOIMPF); i.e. other than FROMFILE() and STMFCODPAG()? And again, "get ASCII" is better described with methodology, but the DMP request avoids having to try to explain [in words or scripted actions].


Any thoughts?

Eliminate the possibility of pre-existing files. And in any test, review/record first what is the Coded Character Set ID presented on the Display Attributes panel via the option 8=Attributes from Work With Links (WRKLNK). Then, beware interfaces that might confuse the viewer about what data is actually in the file; i.e. be sure to use an interface that gives the hex values rather than trying to show representational glyphs, such as DMP. Verify also what is in the From File (FROMFILE) and that the data as code-points matches the CCSID tagging.


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
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.