Figure 5: New procedures to retain backward compatibility

     P cust_getName...

     P                 B                   export

     D cust_getName...

     D                 PI            25A   varying

     D name            s             25A   varying

      /free

          name = cust_getNameLong();

          return name;

      /end-free

     P                 E



     P cust_setName...

     P                 B                   export

     D cust_setName...

     D                 PI             1N

     D    Name                       25A   const

      /free

         return cust_setNameLong(Name);

      /end-free

     P                 E



     P cust_getNameLong...

     P                 B                   export

     D cust_getNameLong...

     D                 PI            50A   varying

      /free

         return %trimr(InCust.Name);

      /end-free

     P                 E



     P cust_setNameLong...

     P                 B                   export

     D cust_setNameLong...

     D                 PI             1N

     D    Name                       50A   const

      /free

         if (Name = *blanks);

             SetError(CUST_EBADNAME: 'Name can''t be blank!');

             return *OFF;

         endif;

         InCust.Name = Name;

         return *ON;

      /end-free

     P                 E