midrange.com code scratchpad
Name:
Data structure fields can't be defined as varying
Scriptlanguage:
Plain Text
Tabwidth:
4
Date:
11/19/2019 10:48:57 am
IP:
Logged
Description:
Hi,

I can't define data structure fields as varying that is why unable to use %trimr for outrec and record that is why unable to remove those junk values after my decrypted value please refer below code and please advise what can i do in this condition as if i use keyword varying for my data structure fields then compiler SEU gives error and if i use them as stand alone fields then run time error and if i use them as it is then unable to remove junk values using %trimr.
Code:
  1.      FUNIX      IF   F 1000        SPECIAL PGMNAME('UNIXCMD')
  2.      F                                     PLIST(UNIXPARM) USROPN
  3.      FQSYSPRT   O    F  132        PRINTER
  4.      dencodedExcha...
  5.      dngeToken         s            500    VARYING
  6.  
  7.      DPOS2             S              5U 0
  8.      D cmd             s           5000a
  9.      D mode            s              1A   inz('P')
  10.      D Åcommand        s            512a
  11.      d QCMDEXC         PR                  ExtPgm('QCMDEXC')
  12.      d   command                    500a   const
  13.      d   clength                     15p 5 const
  14.  
  15.      D record          DS          1000
  16.      D outrec          DS           132
  17.  
  18.      C     UNIXPARM      PLIST
  19.      C                   PARM                    CMD
  20.      C                   PARM                    MODE
  21.       /free
  22.        RECORD = *BLANKS;
  23.        OUTREC = *BLANKS;
  24.        XML-INTO encodedExchangeToken %XML('/home/I0RS01HU/+
  25.        INPUT.xml':'doc=file case=any path=+
  26.        TokenExchangeResponse/encodedExchangeToken');
  27.        eval encodedExchangeToken =%trimr(encodedExchangeToken);
  28.        cmd = 'echo ' + '''' +  encodedExchangeToken + ''' ! openssl +
  29.           enc -d -aes-128-ecb -K 363631653237354f494d31554c594c4a +
  30.           -nopad -nosalt -base64 -A';
  31.        open UNIX;
  32.        read UNIX record;
  33.        dow not %eof(UNIX);
  34.            outrec = record;
  35.            eval outrec = %trimr(outrec);
  36.           Åcommand = 'CRTPF FILE(RISHI/TESTFILE) RCDLEN(500)';
  37.           QCMDEXC(%trim(Åcommand): %len(%trim(Åcommand)));
  38.         //Write into file
  39.            EXEC SQL
  40.           INSERT INTO rishi/TESTFILE VALUES (:outrec);
  41.            write QSYSPRT outrec;
  42.            outrec = record;
  43.            write QSYSPRT outrec;
  44.            dsply %subst(outrec:1:48);
  45.            read UNIX record;
  46.            enddo;
  47.         close UNIX;
  48.         *inlr = *on;
  49.       /end-free
  50.  
© 2004-2019 by midrange.com generated in 0.009s valid xhtml & css