At first glance, it will break because you are looking 1 to 32, but the prototype is dim(20)
-----Original Message-----
From: RPG400-L [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Koester, Michael
Sent: Monday, May 05, 2014 3:22 PM
To: RPG programming on the IBM i (AS/400 and iSeries)
Subject: RE: Varying length subfield contains blanks instead of length 0 ?
Here's the offending code in all its [stripped-down] glory.
     h option(*srcstmt : *nounref : *nodebugio )
     h   dftactgrp(*no)  actgrp(*new)
     D results         s          32767A   varying
     d ParmsIn         ds                  qualified
     d   keysAndValues...
     d                                     likeds(Pairs) dim(32)
     d  Pairs          ds                  qualified inz
     d   Key                         32a   varying
     d   Value                       32a   varying
     D*--------------------------------------------------
     D* Procedure name: AddUser
     D*------------- ------------------------------------
     D AddUser...
     D                 pr           512a   VARYING
     d  KVPairs                            likeds(pairs)  dim(20)
      *==================================================
      *  *********    Main logic   ***********
      *==================================================
      * Program Prototype  (*Entry parms)
     d TEST_1          PR
     d TEST_1          PI
      /free
       ParmsIn.keysAndValues(1).key = 'LastName';
       ParmsIn.keysAndValues(2).key = 'Company';
       results =  AddUser(ParmsIn.keysAndValues);
       *inlr = *on;
      /end-free
      * End Mainline Logic
_____ * Private subprocedures
     D*--------------------------------------------------
     D* Procedure name: AddUser
     D* Purpose:        Construct & return the XML string for add_user method.
     D*------------- ------------------------------------
     P AddUser...
     P                 B
     D AddUser...
     D                 pi           512a   VARYING
     d  KVPairs                            likeds(pairs)  dim(20)
      * Local fields
     d String          s            512a   varying inz
     d x               s              3u 0 inz
      /free
       KVPairs(1).value = 'Moose';
       KVPairs(2).value = 'Null & Void, Inc.';
       for x = 1 to 32;
          select;
          when KVPairs(x).key = *blanks;    // this is where it breaks
             LEAVE;
          when KVPairs(x).key = 'LastName';
             String = KVPairs(x).value;
          when KVPairs(x).key = 'Company';
             String += ' of ';
             String += KVPairs(x).value;
          endsl;
       endfor;
       Return string;
      /end-free
     P AddUser...
     P                 E
-----Original Message-----
From: RPG400-L [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of 
Koester, Michael
Sent: Monday, May 05, 2014 3:22 PM
To: RPG programming on the IBM i (AS/400 and iSeries)
Subject: RE: Varying length subfield contains blanks instead of length
0 ?
Give me a few minutes to put together a condensed version without all 
the complexities of reality...
-Michael
--
This is the RPG programming on the IBM i (AS/400 and iSeries) (RPG400-L) mailing list To post a message email: RPG400-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options,
visit: 
http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives at 
http://archive.midrange.com/rpg400-l.
As an Amazon Associate we earn from qualifying purchases.