Eigenständige Funktionsabschnitte

Eigenständige Funktionsabschnitte unterstützen die Migration von Sprachen, die keine Bibliotheken verwenden.

Jede Funktion, die nicht in einem anderen Abschnitt enthalten ist, wird als eigenständige Funktion bezeichnet. Eigenständige Funktionsabschnitte zeichnen sich durch folgende Merkmale aus:
  • Im Gegensatz zu regulären Funktionen handelt es sich bei eigenständigen Funktionen um Abschnitte, und diese Abschnitte können nicht in anderen Abschnitten enthalten sein.
  • Setzen Sie die Programmeigenschaft 'includeReferencedFunctions' in allen Programmen, die eine eigenständige Funktion aufrufen, auf YES. Details hierzu finden Sie unter 'includeReferencedFunctions'.
  • Eigenständige Funktionen sollten nicht in neuem Code verwendet werden.
  • Bei der Verwendung eigenständiger Funktionen muss unter Umständen die Eigenschaft 'containerContextDependent' verwendet werden, um Verweise aufzulösen. Details hierzu finden Sie unter 'containerContextDependent'.

Beispiel

Das folgende Beispiel zeigt eine eigenständige Funktion:
package com.CompanyB.CustomerPackage;

// eigenständige Funktion - außerhalb eines Programms
function printBalance (pBal DECIMAL(7,2) in)
  writeStdOut (strLib.formatNumber(pBal)); 
end

program BalanceCheck type BasicProgram {
  includeReferencedFunctions = YES // ohne diese Eigenschaft
  }                                // kann 'printBalance()' nicht gefunden werden
  customer INT = 1;
  balance DECIMAL(7,2) = 0;

  function main()
    while (balance >= 0)
      balance = getCustomerBalance(customer);   // Rückgabe: -1
      printBalance (balance);
    end  // Ende von 'while'
  end // Ende von 'main'

  function getCustomerBalance (custNo INT in) returns (DECIMAL(7,2))
    ...
  end // Ende von 'function'
end  // Ende von 'program'

Kompatibilität

Tabelle 1. Hinweise zur Kompatibilität für eigenständige Funktionen
Plattform Problem
VisualAge Generator-Kompatibilitätsmodus Die Eigenschaft 'containerContextDependent' stellt im Hinblick auf das Auflösen von Verweisen von eigenständigen Funktionen Leistungsmerkmale bereit, die in VisualAge Generator verfügbar waren. Sämtliche Verweise auf Funktionen und Abschnitte werden so aufgelöst, als wäre die Funktion in den Logikabschnitt eingebettet, der sie aufruft. Siehe 'containerContextDependent'.