
 
  
         
         
 Identifier-1 must be a four-byte data item.
 Identifier-1 must be a four-byte data item. 
                     	 
                   If object-identifier-1 references a universal object reference, neither the BY CONTENT nor BY VALUE phrase can be specified
                     and the BY REFERENCE phrase, if not specified explicitly, is assumed implicitly.
 If object-identifier-1 references a universal object reference, neither the BY CONTENT nor BY VALUE phrase can be specified
                     and the BY REFERENCE phrase, if not specified explicitly, is assumed implicitly. 
                     		
                      The BY CONTENT and BY VALUE phrases can be specified.
 The BY CONTENT and BY VALUE phrases can be specified. 
                        		
                     
 If identifier-2 is specified, object-identifier-1 must be a universal object reference.
 If identifier-2 is specified, object-identifier-1 must be a universal object reference. 
                     		
                      Object-identifier-1 is not required to be a universal object reference.
 Object-identifier-1 is not required to be a universal object reference. 
                        		
                     
 
                        		   Object-Storage,
 Object-Storage, 
                        		
                     
Local-Storage, or Linkage Section.
 Neither identifier-4, identifier-5, identifier-6, identifier-7, nor identifier-8 can be a function-identifier.
 Neither identifier-4, identifier-5, identifier-6, identifier-7, nor identifier-8 can be a function-identifier. 
                     	 
                   Integer-1 may be signed or zero.
 Integer-1 may be signed or zero. 
                     	 
                   GIVING and RETURNING are equivalent.
 GIVING and RETURNING are equivalent. 
                     	 
                   Identifier-10 must be defined as a data item in the Linkage Section with a level number of 01 or 77.
 Identifier-10 must be defined as a data item in the Linkage Section with a level number of 01 or 77. 
                     	 
                   
                        		   or identifier-1
 or identifier-1 
                           		   
                        		
                     
identifies an object instance. If object-identifier-1 is specified as a class-name, object-identifier-1 identifies the factory object of that class-name. Literal-1 or the content of the data item referenced by identifier-2 identifies a method of that object that will act upon that object instance:
If the object instance is identified by a universal object reference, neither a formal parameter nor the returning item in the invoked method may be described with the ANY LENGTH clause
 The AS phrase enables you to invoke methods on a COBOL data item. If template-1 is specified, it is used as a class template.
                     Creation of templates is a function provided by objects in the supplied Class Library. (See your COBOL system documentation
                     for details.)
 The AS phrase enables you to invoke methods on a COBOL data item. If template-1 is specified, it is used as a class template.
                     Creation of templates is a function provided by objects in the supplied Class Library. (See your COBOL system documentation
                     for details.) 
                     	 
                  If a RETURNING phrase is specified on the INVOKE statement, a non-COBOL method must return a result in the appropriate format.
If a parameter is an index-name, no such correspondence is established. Index-names in the invoked method and the invoking run-time system element always refer to separate indices.
The effect of the USING phrase on the activated run-time system element is described in as described in the topic General Rules in the topic The PROCEDURE DIVISION Header
If no BY CONTENT, BY REFERENCE or BY VALUE phrase is specified prior to the first parameter, the BY REFERENCE phrase is assumed.
If the BY CONTENT phrase is specified or implied for a parameter, the object program operates as if an additional data item had been declared and this additional data item used as the parameter in a BY REFERENCE phrase. If identifier-5 is specified then both the implied data description of the additional data item and its contents are identical to that of identifier-5. If literal-3 is specified then the implied data description of the additional item is equivalent to an alphanumeric data item with the same size as literal-3 and with its contents set to the value of literal-3. If LENGTH OF identifier-6 is specified, then the data description of the additional item is equivalent to PIC S9(n) USAGE COMP-5, where the value of n is at least 9 and defines a data item that is large enough to hold the maximum length of a data item in the COBOL system. The contents of the additional data item are set to the number of bytes of storage allocated to identifier-6.
If identifier-7 is specified and is BINARY, COMP-4, COMP-5 or COMP-X, then the data description of the additional data item is identical to that of identifier-7, except its usage is COMP-5. The contents of the additional data item are identical to the COMP-5 representation of the contents of identifier-7. This conversion and representation facilitates calling non-COBOL programs.
Otherwise, if identifier-7 is specified then the implied data description of the additional data item and its contents are identical to that of identifier-7.
If integer-1 is specified, then the data description of the additional item is equivalent to a signed numeric item USAGE COMP-5 that occupies the number of bytes of storage indicated by the value of integer-2, if specified, or the size of the system area otherwise (typically the size of a POINTER on the system).
If LENGTH OF identifier-8 is specified, then the data description of the additional item is equivalent to PIC S9(n) USAGE COMP-5, where the value of n is at least 9 and defines a data item that is large enough to hold the maximum length of a data item in the COBOL system. The contents of the additional data item are set to the number of bytes of storage allocated to identifier-8.
If the method being invoked is a COBOL method, each parameter in the BY VALUE phrase of the INVOKE statement must have a corresponding parameter declared in the USING phrase of the PROCEDURE DIVISION header that also has the BY VALUE phrase specified or implied.
The additional data item generated as a result of the INVOKE statement, described above, is related to this corresponding parameter in the invoked method, as follows.
If the method being invoked is non-COBOL, the details of when you need to use the BY VALUE phrase are dependent on the domain involved.
 If identifier-4 is in the Linkage Section and has a level number other than 01 or 77 or is in the Working-Storage Section,
                     the item is passed as if BY CONTENT had been specified and the address of identifier-4 cannot be modified by the invoked method.
 If identifier-4 is in the Linkage Section and has a level number other than 01 or 77 or is in the Working-Storage Section,
                     the item is passed as if BY CONTENT had been specified and the address of identifier-4 cannot be modified by the invoked method.
                     
                     	 
                   If the BY REFERENCE literal-2 phrase is specified or implied then the method processes literal-2 as described for literal-3.
 If the BY REFERENCE literal-2 phrase is specified or implied then the method processes literal-2 as described for literal-3.
                     
                     	 
                   If LENGTH OF identifier-6 is specified then the data description of the argument is PIC S9(9) USAGE BINARY and its content
                     is set to the number of bytes of storage allocated to identifier-6.
 If LENGTH OF identifier-6 is specified then the data description of the argument is PIC S9(9) USAGE BINARY and its content
                     is set to the number of bytes of storage allocated to identifier-6. 
                     	 
                   If integer-1 is specified then the implied data description of the argument is a signed numeric item USAGE COMP-5 that occupies
                     the number of bytes of storage specified by the value of integer-2, if specified, or 4 bytes otherwise.
 If integer-1 is specified then the implied data description of the argument is a signed numeric item USAGE COMP-5 that occupies
                     the number of bytes of storage specified by the value of integer-2, if specified, or 4 bytes otherwise. 
                     	 
                   If LENGTH OF identifier-8 is specified then the data description of the argument is PIC S9(9) USAGE BINARY and its content
                     is set to the number of bytes of storage allocated to identifier-8.
 If LENGTH OF identifier-8 is specified then the data description of the argument is PIC S9(9) USAGE BINARY and its content
                     is set to the number of bytes of storage allocated to identifier-8. 
                     	 
                   If identifier-10 is specified, the invoked method must return a value with explicit or implicit USAGE POINTER. The result
                     of the method is assigned to identifier-10 using the rules for the SET statement.
 If identifier-10 is specified, the invoked method must return a value with explicit or implicit USAGE POINTER. The result
                     of the method is assigned to identifier-10 using the rules for the SET statement.