Ibm midrange 将源代码作为文本复制到IFS时出现问题,映射错误

Ibm midrange 将源代码作为文本复制到IFS时出现问题,映射错误,ibm-midrange,rpgle,Ibm Midrange,Rpgle,因此,我在将源代码复制到IFS时遇到了一个问题。我基本上只是希望代码中的文本看起来像一个.txt文件。我正在本地计算机上存储数据,以便在已有备份的基础上保留另一个备份 我发现并使用了一个CL程序,它可以很好地处理我想要的许多文件。它的作用如下: PGM PARM(&file &LIBRARY) dcl &file *char 10 dcl &library *char

因此,我在将源代码复制到IFS时遇到了一个问题。我基本上只是希望代码中的文本看起来像一个.txt文件。我正在本地计算机上存储数据,以便在已有备份的基础上保留另一个备份

我发现并使用了一个CL程序,它可以很好地处理我想要的许多文件。它的作用如下:

PGM        PARM(&file &LIBRARY)
             dcl        &file  *char 10
             dcl        &library *char 12
             dcl        &docname *char 12
             DCLF       FILE(QTEMP/MEMBERS)

             monmsg     cpf0000

             DSPFD      FILE(&LIBRARY/&FILE) TYPE(*MBRLIST) +
                          OUTPUT(*OUTFILE) OUTFILE(QTEMP/MEMBERS)


 Loop:       Rcvf
             MONMSG     MSGID(CPF0864) EXEC(GOTO CMDLBL(EXIT))


             CPYTOIMPF  FROMFILE(&LIBRARY/&FILE &MLNAME) +
                          TOSTMF('/BACKUP/SOURCE/' *TCAT &LIBRARY +
                          *TCAT '/' *TCAT &FILE *TCAT '/' *TCAT +
                          &MLNAME) MBROPT(*REPLACE) +
                          STMFCODPAG(*PCASCII) RCDDLM(*CRLF) +
                          DTAFMT(*FIXED)


             goto       loop


     Exit:
             RCLRSC
             ENDPGM                                                     
同样,这适用于我的几个库和文件。然而,我有一些会给我一个数据映射错误,并会一直给我一个通知,它正在被包装,直到我结束工作。同样,同一个库中的其他文件也可以传输数据,但是文本不可读,因此基本上毫无价值。只有这一个库我遇到了这个问题

我已经找过了推荐人,但我找到的所有信息都不适合我的情况

你知道为什么这些dspf,pf,rpgle,clp,txt等等。。。项目是不同的。当我运行它时,我得到的另一件事是:

Primary group of object QCPEXTEMPS in QTEMP type *USRSPC changed.
Primary group of object QACP000135 in QTEMP type *USRSPC changed.
Primary group of object QACEXFLD12 in QTEMP type *USRSPC changed.
我不知道这是否是我成功时得到的,我不会在成功时查看代码。我也不知道这是否重要。但在我的工作日志中,它显示在错误之前

Data mapping error on member
Data mapping error on member
Data mapping error on member
Data mapping error on member
如果我发现成员xxxx上的数据映射错误,我将得到以下结果

Cause . . . . . :   A data mapping error occurred on field                    
  file_member_1.SRCDAT in record number 1, record format *FIRST, member   
  number 1, in member xxxx file xxxx in library xxxx, because of 
  error
  code 1. The error code meanings follow:                                     
    1 -- There is data in a decimal field that is not valid.    

这对我来说毫无意义,因为我以为我只是把粘贴复制到IFS上的文本文件中

我尝试在SRCSEQ和SRCDAT字段中对无效数据使用CPYTOIMPF,结果出现了错误


但是cpytostf工作得很好,并且它似乎对源文件产生了相同的结果。

您查看了第一条记录中文件\u member\u 1.SRCDAT中的数据了吗?这里的错误是告诉您数据不正确。很可能表中有空值或转换无法处理的内容。是的,它就像一条间隔线:a***************************************************************************************************************************************************************************好,但错误消息说它认为这是一个十进制字段。如果你说的是真的,那么看起来你的文本字段应该是一个数字。这没有意义,它是一个dspf。A规格是第一位的。是什么导致它需要一个数字?我从未见过在a之前有数字的dspf。源物理文件都有三个字段:SRCSEQ、SRCDAT和SRCDTA,按顺序排列。SRCSEQ是行号,SRCDAT是日期,SRCDTA是文本。前两个字段是数字字段,每个字段的长度为6字节。这应该给你一个线索。今天早上试过了,但出了问题。我创建了.savf,这不是我想做的,但在这上面花了太多时间。我可能会重新考虑这个建议,并更多地使用它。您使用的cpytostf命令是什么?我从未见过它创建savfNo命令CPYTOSTMF没有创建savf,我的意思是,在我的工作中,我创建了成员的savf,而不是复制文本。因此,如果我想再次获得这些信息,我必须进行恢复。cpytostfrommbr'/QSYS.LIB/'*TCAT&LIBRARY*TCAT'.LIB/'+*TCAT&FILE*TCAT.FILE/'*TCAT&MLNAME*TCAT+'.MBR'TOSTMF'/BACKUP/SOURCE/'*TCAT&LIBRARY+*TCAT'/'*TCAT&FILE*TCAT'/'*TCAT&MLNAME+STMFOPT*替换STMFCODPAG*PCASCII