.load

.load [-o] [-e] [-v] [-j] [<relative_path>/]<filename>
.load -r|-p <registername>
.load -s `<command name>`

.load コマンドは XML ファイルからプロジェクトをロードし、ロードしたプロジェクトの ステップを現行プロジェクトに追加します。 ロードしたプロジェクト のステップは、.load コマンドを実行したステップの に追加され、これによ り、プロジェクトは実行時に 動的にステップを作成およびロードすることができます。オプションを使用し、.load コマンドで、 レジスターまたはコマンドの出力からデータを引き出すことができます。

.load コマンド用の XML ファイルを作成する場合は、既存プロジェ クトのエクスポート・ファイルを雛形として使用することをお勧めします。システム内で プロジェクトを作成してから、エクスポートして .load コマンドで使用することもできます。 このトピックには、サンプル XML コードが含まれます。

.load コマンドでロードされたステップは、インライン化または チェーニングされたプロジェクトへの参照を含むことができます。デフォルトでは、システムは XML ファイル内にあるインライン化されたプロジェクトの定義を検索し、そのステップをロードします。インライン化されたプロジェクト定義をデータベースから取得する方法については、このトピックで後述する -e オプションを参照してください。 成功チェーンまたは失敗チェーンのプロジェクトの場合、システムは常に、 データベースでプロジェクト定義を検索します。

注: .load から実行される JPO ステップの場合、Else インラインが指定されたプロジェクトまたはライブラリーは、すでにシステム内に存在するプロジェクトまたはライブラリーである必要があります。そうでない場合、そのインラインは実行されません。

XML ファイル内の複数プロジェクト

システムは インライン化されたプロジェクトをそれらの呼び出しプロジェクトとともにエクスポートするため、XML ファイルには いくつかのプロジェクトが含まれる場合があります。 .load コマンドは、ファイル内で primary とラベルが付けられたプロジェクトを実行します。このプロジェクトには、 <project> エレメント上に属性 primary="1" があります。

コマンド・オプションおよびパラメーター

最も単純な コマンド・フォームは .load <filename> です。ファイル名の前に、 オプションの (ジョブ・ディレクトリーに対する相対) パス名を含めることができます。例えば、次のコマンドは、
.load ../../project.xml

サーバー・ディレクトリー (そのプロジェクトとジョブ・ディレクトリーが含まれるディレクトリー) から ファイル project.xml をロードし、ステップのパス・プロパティーが "/" (デフォルト) であると想定します。

注: 通常のステップがインライン化されたプロジェクトを起動する場合、 システムはデータベースにアクセスして、そのプロジェクトの現在の定義を取得します。 .load コマンドによってインポートされたステップがインライン化されたプロジェクトを起動する場合、 システムは XML ファイル内でインライン化されたプロジェクトの定義を探します。 この状態を回避する方法については、以下の -e オプションの説明を参照してください。
注: バージョン 7.1 より前の Build Forge から生成された XML のステップはサポートされておらず、これらのエレメントは ID ではなく名前で参照されるため、失敗する可能性が高くなります。
注: .load ではインポート・ユーティリティーを使用するため、インポート・ユーティリティーの設定に従ってアクセス・グループ所有権を適用します。詳しくは、インポート・オブジェクトへのアクセス・グループの割り当て方法を参照してください。
このコマンドには 以下のオプションがあります。
-r または -p
これらのオプションにより、システムはレジスターから ステップをロードします。 これらのオプションを指定してコマンド行を使用します。
.load -r|-p <registername>
-r オプションは通常のレジスターからステップをロードしますが、-p オプションはプロジェクト・レジスターから ステップをロードします。プロジェクトの以前のステップでレジスターに日付を作成してから、 このコマンドを使用して、そのレジスターからステップをロードすることができます。
-s
このオプションにより、システムはコマンドを実行し、 そのコマンドの出力をロード対象のデータとして使用します。 次のコマンド行を使用します。
.load -s `<command name>`
-e
-e オプションが 設定されている場合、システムは、ロードされた XML ファイルからではなく、データベースから インライン化されたプロジェクトを取得します。これは値 chainID を、 データベース内のプロジェクト ID への参照として処理します。これにより、XML ファイルは、 XML ファイル内のインライン化されたプロジェクトではなく、最新バージョンのインライン化されたプロジェクトを参照したり、 XML ファイルに含まれないプロジェクトを参照したり することができます。
-o
-o オプションを使用し、XML ファイル内でインライン化されたプロジェクトを使用不可にします。この オプションが使用される場合、システムはメイン・プロジェクト内にあるインライン化されたプロジェクトを 無視します。インライン化されたプロジェクトへの参照が含まれるステップは、コマンドは実行しますが、 インラインは無視します。
-j
-j オプションは、XML ファイル内の最後のステップ・セットがスレッド化され、.load コマンドに続くステップもスレッド化される場合に使用します。-j オプションは、最後にスレッド化されたステップを結合ステップに変えます。それ以外の場合、スレッド化されたステップは、.load コマンドの後の、スレッド化されたステップ・ブロックの一部になります。
-v
表示用にディスプレイ端末 (STDOUT) にロードされる XML ファイルの内容を送信します。

サンプル XML

以下の例に、 .load コマンドとともに使用する XML ファイルを示します。XML は、 HelloWorldPlusInline というプロジェクトをエクスポートすることによって作成されます。

以下のサンプル XML の詳細に 注意してください。
  • XML には 2 つの <project> エレメントが含まれます。
  • XML の最初のプロジェクトは基本プロジェクトで、属性 name="HelloWorldPlusInline" および primary="1" を持ちます。
  • XML の 2 番目のプロジェクトは Sleepytime と呼ばれ、それが基本ではないことを示す属性 primary="0" を 持ちます。
  • HelloWorldPlusInline の最初のステップは、エコー・コマンドと chainID 属性が含まれる EchoHelloWorld というステップです。chainID 属性には 値 2 が含まれ、システムは ID 2 を持つプロジェクト (Sleepytime プロジェクト) をインライン化する ことを示します。
    注: ステップ属性 inline は無視してください。 これは推奨されない属性で、使用されなくなりました。すべてのステップには、値 N を持つこの属性が あります。ステップにインライン化されたプロジェクトがあるかどうかを判別する場合、 属性 chainID を検索してください。値 chainID は、 プロジェクトの ID を表します。デフォルトでは、システムは XML ファイル内で インライン化されたプロジェクトを検索しますが、.load コマンドで -e オプションを使用する場合、 システムはその値をデータベース内でプロジェクト ID として扱います。これにより、 インライン化されたプロジェクトを内部に組み込むことなく、独自の .load ファイルを 作成できます。
    注: .load を、Build Forge バージョン 7.0.x 以前で生成された XML ファイルとともに使用することはサポートされておらず、古い構文では UUID ではなく名前でオブジェクトを参照するため、適切に機能しません。
  • 各プロジェクトには id 属性があります。この ID 値は、 データベース内のプロジェクトの ID と同じです。プロジェクト ID のリストは、 インストール・ディレクトリーから以下のコマンドを実行することによって取得できます。
    bfexport -l 
  • commandStore 属性には、特定の文字が XML 形式でエスケープされた状態で、<command> エレメントの内容のコピーが含まれています。例えば、 <command> 内には "、'、&、<、>、または改行などが含まれていることがあります。 commandStore 内では、これらの文字はそれぞれ、 &quot;、&apos;、&amp;、&lt;、&gt;、および &#10; と表現されます。

<?xml version="1.0" encoding="UTF-8"?>

<buildforge schema="7.115014" comment="">
  <project access="6" active="Y" name="HelloWorldPlusInline" primary="1" 
   selectorId="Choose_local" maxthread="0" increment="Y" tagsync="0" 
   buildclass="Production" sticky="N" envId="0" tag="BUILD_$B" id="19" exclusive="0">
    <tagvar autoincrement="Y" name="B" id="1">2</tagvar>
    <step absolute="N" failwait="N" selectorId="" dir="/" broadcast="N" 
     timeout="300" id="1" passwait="N" inline="N" threadable="N" chainId="2" 
     access="6" active="Y" passnotify="0" description="EchoHelloWorld" onfail=" " 
     failnotify="0" envId="0" commandStore="echo Hello World">
      <command>echo Hello World</command>
    </step>
    <step absolute="N" failwait="N" selectorId="" dir="/" broadcast="N"
     timeout="300" id="2" passwait="N" inline="N" threadable="N" access="6"
     active="Y" passnotify="0" description="export proj to build and server folders"
     onfail=" " failnotify="0" envId="0"
     commandStore=".export $BF_PROJECTNAME_PHYS.xml&#10;copy /Y $BF_PROJECTNAME_PHYS.xml ..¥..">
      <command>.export $BF_PROJECTNAME_PHYS.xml
copy /Y $BF_PROJECTNAME_PHYS.xml ..¥..</command>
    </step>
  </project>
  <project access="6" active="Y" name="Sleepytime" primary="0" 
   selectorId="Choose_local" maxthread="0" increment="Y" tagsync="0" 
   buildclass="Production" sticky="N" envId="0" tag="SLEEP_$B" id="2" exclusive="0">
    <tagvar autoincrement="Y" name="B" id="1">21</tagvar>
    <step absolute="N" failwait="N" selectorId="" dir="/" broadcast="N" 
     timeout="300" id="1" passwait="N" inline="N" threadable="N" access="6" 
     active="Y" passnotify="0" description="Sleep, perchance to dream" onfail=" " 
     failnotify="0" envId="0" commandStore=".sleep 0">
      <command>.sleep 0</command>
    </step>
  </project>
  <class maxdays="0" access="1" entranceprojectId="1" name="Production" keepfiles="B" 
   deletechangedata="N" purgeprojectId="2" exitProjectId="5" candidates="AnyBuild " 
   maxbuilds="0"></class>
  <selector operator="" required="" access="6" value="" name="Choose_local" 
   selectorId="" property=""></selector>
</buildforge>


フィードバック