× 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.



Luis Martins wrote:


Dear Sir,

At the moment of CRTRPGMOD of the next RPG ILE IV program, Why i receive
the message RNF5343 ?


1 - Source of the Database File




            A     R   BCKDES
                BIB           10A         TEXT('Biblioteca')
                DESC          50A         TEXT('Descrição')

The file have some records that have the names of library's to pass to the 
parameter OMITLIB of
th command SAVCHGOBJ.

2 - Source of the Program


FBCKDESF IT F 10 DISK


DTapeIFS          S             25
DSTRING           S            256
DLENGHT           S             15  5 INZ(256)
DTape             S             10
DArray            S             10A   DIM(300) FROMFILE(BCKDESF)

C     *ENTRY        PLIST
C                   PARM                    Tape

C                   EVAL      STRING = 'SAVCHGOBJ OBJ(*ALL) LIB(*ALLUSR)  +
C                             DEV('+Tape+') OBJJRN(*YES) REFDATE(*SAVLIB) +
C                             ENDOPT(*LEAVE) TGTRLS(*CURRENT)             +
C                             SAVACT(*SYSDFN) ACCPTH(*YES)                +
C                             SAVFDTA(*YES) OMITLIB('+Array+')            +
C                             OUTPUT(*PRINT) INFTYPE(*OBJ)'

C EXSR COMANDO


C EXSR COMANDO


C RETURN

C     COMANDO       BEGSR
C
C                   CALL      'QCMDEXC'
C                   PARM                    STRING
C                   PARM                    LENGHT
C
C                   ENDSR


Thank You !

The message points to the following line, right?


C SAVFDTA(*YES) OMITLIB('+Array+') +

You've coded an array within the expression, but you did not code an array index. Leaving off the array index is allowed only when the target of the assignment is also an unindexed array, in which case the operation is performed element by element through the arrays.

If you want to include all the names in that array in the command string, you need to code something like:

/free
   namelist = '';
   for i = 1 to %elem(array);
      // append library name to list
      namelist += %trim(array(i)) + ' ';
   endfor;
   namelist = %trimr(namelist);
/end-free

where NAMELIST is defined as a varying length character variable. Then, code NAMELIST within that command expression instead of ARRAY.

Cheers! Hans



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.