Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Referenzierung

Mit openFT-Script können Sie Kontextobjekte zusammensetzen.
Ein Partner (siehe Abschnitt „partner") zum Beispiel muss nicht an jeder Stelle vollständig spezifiziert werden. Sie können einen Partner in ein Kontextobjekt auslagern und über Referenzierung mehrfach verwenden.

Für die Dereferenzierung gelten folgende Regeln:

  1. Ein Attribut ref referenziert ein Kontextobjekt mit der spezifizierten Id und dem Objekttyp des Kontextobjekts
    (z.B. file, partner).

  2. Die Suche wird im Eltern-Kontext weiter geführt, wenn im aktuellen Kontext kein passendes Objekt gefunden wird. Wird auch dort kein passendes Kontextobjekt gefunden, wird die Suche in dessen Eltern-Kontext fortgesetzt.
    Mehrstufige Referenzierungen sind erlaubt.

  3. Wird kein passendes Kontextobjekt gefunden, wird das Script mit dem Fehler ft_reference abgebrochen (siehe Abschnitt „Fehlerbehandlung").

  4. ref="A" in einem Kontextobjekt mit der ID="A" ist erlaubt.
    ref bezieht sich in diesem Fall immer auf den Eltern-Kontext.

  5. Zirkel sind nicht erlaubt:

    obj1(ID="A", ref="B"); obj2(ID="B", ref="A") in demselben Kontext ist nicht möglich. Es wird der Fehler ft_reference ausgegeben.

  6. Es werden alle Attribute und Elemente des referenzierten Elementes übernommen, die im referenzierenden Element nicht vorhanden sind. Vor dieser Übernahme wird das referenzierte Element seinerseits nach diesen Regeln dereferenziert.

Beispiele

  1. Gültige Referenzierung

     <?xml version="1.0" encoding="UTF-8"?> 
     <ftscript version="1">
       <context>
         <partner id="remote" name="WindowsP_1">
           <transferAdmission>
             <ftacAdmission ftacAdmission="FTACADM"/>
           </transferAdmission>
         </partner>
         <file id="pack" name="pack1.bin">
           <partner ref="remote"/>
           <directory name="frg_eis_01"/>
         </file>
       </context>
       <transferFile>
         <fromRemoteFile ref="pack"/>
         <toLocalFile name="pack1.bin">
           <directory name="frg_eis_01"/>
         </toLocalFile>
       </transferFile>
    
       <transferFile>
         <context>
           <partner id="remote" name="UnixP_1">
             <transferAdmission>
               <ftacAdmission ftacAdmission="FTACADM"/>
             </transferAdmission>
           </partner>
         </context>
         <fromRemoteFile ref="pack">
           <partner ref="remote"/>
         </fromRemoteFile>
         <toLocalFile name="pack2.bin">
           <directory name="frg_eis_01"/>
         </toLocalFile>
       </transferFile>
     </ftscript>
    

    Das Dateiobjekt mit der Id="pack" referenziert ein Partnerobjekt mit der Id="remote".
    In der ersten transferFile Aktivität wird der Partner WindowsP_1 verwendet.

    In der zweiten transferFile Aktivität wird dasselbe Dateiobjekt pack referenziert. Der Partner wurde jedoch überschrieben. Dadurch wird der Partner UnixP_1 angesprochen, der im Kontext des zweiten transferFile definiert ist. Diese Definition überdeckt den Windows-Partner mit der Id="remote".

    Wenn der Partner nicht überschrieben wäre, würde der Windows-Partner verwendet werden, da dieser von der Objektdefinition pack im Kontext von ftscript gefunden wird. Der Partner (auf dem Unix-System) aus dem Kontext des zweiten transferFile würde ignoriert werden, da er von der Definition Id="pack" aus nicht mehr zugänglich ist.

  2. Ungültige Referenzierung

     <?xml version="1.0" encoding="UTF-8"?> 
     <ftscript version="1">
       <transferFile>
         <fromRemoteFile ref="pack"/>
         <toLocalFile name="pack1.bin">
           <directory name="frg_eis_02"/>
         </toLocalFile>
       </transferFile>
     </ftscript>
    

    Die Referenz pack ist nicht definiert. Das Script gibt einen Fehler ft_noRef aus. Dieser wird nicht behandelt (kein faulthandler definiert). Das Script wird vor Ausführung der transferFile Aktivität beendet. Ein Wiederanlauf ist nicht mehr möglich. Mit ftshws können Sie den Grund für den Abbruch anzeigen.