midrange.com code scratchpad
Name:
Anonymous
Scriptlanguage:
Plain Text
Tabwidth:
4
Date:
11/26/2019 04:24:27 pm
IP:
Logged
Description:
tried below code but got these errors:-
sg id Sv Number Seq Message text
*RNF7030 30 118 004400 The name or indicator LEN is not defined.
*RNF7503 30 118 004400 Expression contains an operand that is not defined.
*RNF5410 30 118 004400 The prototype for the call is not defined.
*RNF7086 00 4 000400 RPG handles blocking for file K1. INFDS is updated only
when blocks of data are transferred.
Code:
  1.      H DftActGrp(*No) BndDir('QC2LE')
  2.      FUNIX      IF   F 1000        SPECIAL PGMNAME('UNIXCMD')
  3.      F                                     PLIST(UNIXPARM) USROPN
  4.      FK1        IF   E             DISK
  5.      F*QSYSPRT   O    F 1000        PRINTER
  6.      dencodedExcha...
  7.      dngeToken         s            500    VARYING
  8.  
  9.      DPOS2             S              5U 0
  10.      D cmd             s           5000a
  11.      D mode            s              1A   inz('P')
  12.      DN1               S              2P 0
  13.      D HexEquivalent   S             52A
  14.      d cvthc           PR                  ExtProc('cvthc')
  15.      d   target                   65534A   options(*varsize)
  16.      d   src_bits                 32767A   options(*varsize) const
  17.      d   tgt_length                  10I 0 value
  18.      d QDCXLATE        PR                  ExtPgm('QDCXLATE')
  19.      d   len                          5p 0 const
  20.      d   data                     32702a   options(*varsize)
  21.      d   table                       10a   const
  22.      D Åcommand        s            512a
  23.      d QCMDEXC         PR                  ExtPgm('QCMDEXC')
  24.      d   command                    500a   const
  25.      d   clength                     15p 5 const
  26.  
  27.      D record          ds          1000
  28.      D outrec          s           1000    varying  inz
  29.      Dreplkey          s            100a   inz
  30.  
  31.      C     UNIXPARM      PLIST
  32.      C                   PARM                    CMD
  33.      C                   PARM                    MODE
  34.       /free
  35.        RECORD = *BLANKS;
  36.        OUTREC = *BLANKS;
  37.        // replkey = '363631653237354f494d31554c594c4a';
  38.        XML-INTO encodedExchangeToken %XML('/home/I0RS01HU/+
  39.        IN2.xml':'doc=file case=any path=+
  40.        TokenExchangeResponse/encodedExchangeToken');
  41.        eval encodedExchangeToken =%trimr(encodedExchangeToken);
  42.        read rec ;
  43.         //Convert from EBCDIC to ASCII
  44.               QDCXLATE(len: key: 'QTCPASC');
  45.  
  46.                cvthc(HexEquivalent: key: %len(key)*2);
  47.  
  48.        cmd = 'echo ' + '''' +  encodedExchangeToken + ''' ! openssl +
  49.        // enc -d -aes-128-ecb -K 363631653237354f494d31554c594c4a +
  50.           enc -d -aes-128-ecb -K ' + %trimr(HexEquivalent) +
  51.           ' -nopad -nosalt -base64 -A';
  52.        open UNIX;
  53.        read UNIX record;
  54.        dow not %eof(UNIX);
  55.        pos2 = %scan(x'10' :record);
  56.        Record = %subst(Record :1 :(Pos2 - 1));
  57.        eval outrec = %trimr(record);
  58.        EVAL N1  = %LEN(OUTREC);
  59.         DSPLY N1;
  60.         //Delete the TESTFILE
  61.           Åcommand = 'DLTF FILE(rishi/TESTFILE)';
  62.           QCMDEXC(%trim(Åcommand): %len(%trim(Åcommand)));
  63.           Åcommand = *blanks;
  64.           Åcommand = 'CRTPF FILE(RISHI/TESTFILE) RCDLEN(' + %char(N1) + ')';
  65.           QCMDEXC(%trim(Åcommand): %len(%trim(Åcommand)));
  66.         //Write into file
  67.            EXEC SQL
  68.           INSERT INTO rishi/TESTFILE VALUES (:outrec);
  69.       //   dsply %subst(outrec:1:48);
  70.            read UNIX record;
  71.            enddo;
  72.         close UNIX;
  73.         return;
  74.       /end-free
  75.  
© 2004-2019 by midrange.com generated in 0.008s valid xhtml & css