ibmi-brunch-learn

Announcement

Collapse
No announcement yet.

Renaming a field in a RPG program

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Renaming a field in a RPG program

    Hi All

    I am using two files in a RPG Program. In the two files some of the fields have same name. But In my program I want to rename the fields of one of the file. Is it possible to rename the fields of the Physical file in a RPG Program.

    Thanks
    Mohan

  • #2
    Re: Renaming a field in a RPG program

    Define an externally described data structure and rename fields inside that data structure.
    F.E.
    PHP Code:
    D Wrk_Rcd       E DS                  EXTNAME(MyFile)    
    D  Wrk_Field1   E                     EXTFLD(Field1)     
    D  Wrk_Field2   E                     EXTFLD(Field2
    In this example Field1 and Field2 are respectively renamed Wrk_Field1 and Wrk_Field2. Other fields are unaltered.

    However I think that you'd be better off using the PREFIX keyword instead to get rid of that EXTFLD so RPGIII style.

    F.E.
    PHP Code:
    D Wrk_Rcd       E DS                  EXTNAME(MyFile
    D                                     PREFIX(Wrk_)       
      /
    free                                                 
        Read MyFile Wrk_Rcd

    Last edited by Mercury; November 13, 2007, 07:25 AM.
    Philippe

    Comment


    • #3
      Re: Renaming a field in a RPG program

      PHP Code:
      FFileName  IF   E           K DISK                  
      f                                                   PREFIX
      (P_
      This will prefix all fields for this file with "P_"

      Good Luck
      Bill
      Last edited by Billw; November 13, 2007, 07:20 AM.
      Bill
      "A good friend will bail you out of jail,
      A true friend would be sitting beside you saying,
      'Wow, that was fun.'"

      Comment


      • #4
        Re: Renaming a field in a RPG program

        PREFIX(prefix{:nbr_of_char_replaced})
        The PREFIX keyword is used to partially rename the fields in an externally
        described file. The character string or character literal specified is prefixed to the
        names of all fields defined in all records of the file specified in positions 7-16. In
        addition, you can optionally specify a numeric value to indicate the number of
        characters, if any, in the existing name to be replaced. If the ?nbr_of_char_replaced?
        is not specified, then the string is attached to the beginning of the name.
        If the ?nbr_of_char_replaced? is specified, it must be a numeric constant containing
        a value between 0 and 9 with no decimal places. For example, the specification
        PREFIX(YE:3) would change the field name ?YTDTOTAL? to ?YETOTAL?.
        Specifying a value of zero is the same as not specifying ?nbr_of_char_replaced? at
        all.
        Rules:
        v You can explicitly rename a field on an input specification, even when the
        PREFIX keyword is specified for a file. The compiler will recognize (and require)
        the name which is first USED in your program. For example, if you specify the
        prefixed name on an input specification to associate the field with an indicator,
        and you then try to rename the field referencing the unprefixed name, you will
        get an error. Conversely, if you first rename the field to something other than the
        prefixed name, and you then use the prefixed name on a specification, you will
        get an error at compile-time.
        v The total length of the name after applying the prefix must not exceed the
        maximum length of an RPG field name.
        v The number of characters in the name to be prefixed must not be less than or
        equal to the value represented by the ?nbr_of_char_replaced? parameter. That is,
        after applying the prefix, the resulting name must not be the same as the prefix
        string.
        v If the prefix is a character literal, it can end in a period.
        v If the prefix is a character literal, it must be uppercase. In this case, the field
        names must all be subfields of the same qualified data structure.

        Comment


        • #5
          Re: Renaming a field in a RPG program

          Thanks Mercury for the quick response. But I am Using RPGIII. So is there any way out to do that in RPGIII.


          Originally posted by Mercury View Post
          Define an externally described data structure and rename fields inside that data structure.
          F.E.
          PHP Code:
          D Wrk_Rcd       E DS                  EXTNAME(MyFile)    
          D  Wrk_Field1   E                     EXTFLD(Field1)     
          D  Wrk_Field2   E                     EXTFLD(Field2
          In this example Field1 and Field2 are respectively renamed Wrk_Field1 and Wrk_Field2. Other fields are unaltered.

          However I think that you'd be better off using the PREFIX keyword instead to get rid of that EXTFLD so RPGIII style.

          F.E.
          PHP Code:
          D Wrk_Rcd       E DS                  EXTNAME(MyFile
          D                                     PREFIX(Wrk_)       
            /
          free                                                 
              Read MyFile Wrk_Rcd

          Comment


          • #6
            Re: Renaming a field in a RPG program

            Yoiu have to use "I" specs to rename each individual field for the file.

            PHP Code:
            IRecFormat                                                 
            I
            *                                                        
            IRENAME FIELDS FOR TRANSACTION LINE DESCRIPTION 
            I
            * -------------------                                    
            I              CURFLD                          NEWFLD 
            Bill
            "A good friend will bail you out of jail,
            A true friend would be sitting beside you saying,
            'Wow, that was fun.'"

            Comment


            • #7
              Re: Renaming a field in a RPG program

              Thanks Bill

              Comment

              Working...
              X