.load

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

O comando .load carrega um projeto de um arquivo XML e inclui as etapas do projeto carregado no projeto atual após a etapa que executou o comando .load, permitindo que um projeto crie dinamicamente e carregue as etapas no tempo de execução. Utilizando as opções, é possível fazer com que o comando .load retire seus dados de um registro ou da saída de um comando.

Para gravar um arquivo XML de um comando .load, comece exportando o arquivo de um projeto existente para ter a estrutura básica apropriada. É possível também criar um projeto no sistema e, em seguida, exportá-lo para usar em um comando .load. Esse tópico inclui o código XML de amostra.

As etapas carregadas por um comando .load podem conter referências aos projetos embutidos ou em cadeia. Por padrão, o sistema procura definições dos projetos embutidos no arquivo XML e carrega suas etapas; consulte a opção -e posteriormente neste tópico para obter uma maneira de fazer com que o sistema adquira a definição do projeto embutido do banco de dados. Para projetos em cadeia transmitidos ou com falha, o sistema sempre procura a definição de projeto no banco de dados.

Nota: Para etapas JPO executadas a partir de um .load, o projeto ou biblioteca identificado como não sequencial deve ser um projeto ou biblioteca já existente no sistema; caso contrário, o sequencial não será executado.

Vários Projetos em Arquivos XML

Em razão de o sistema exportar os projetos embutidos juntamente com seus projetos em chamada, um arquivo XML pode conter vários projetos. O comando .load executa o projeto que é rotulado como principal no arquivo. Esse projeto tem o atributo primary="1" em seu elemento <project>.

Opções e Parâmetros de Comando

O formato mais simples do comando é .load <filename>. É possível incluir um nome do caminho opcional (referente ao diretório da tarefa) na frente do nome do arquivo. Por exemplo, o comando
.load ../../project.xml

carrega o arquivo project.xml do diretório do servidor (o diretório que contém o projeto e os diretórios da tarefa), assumindo que a propriedade do caminho da etapa é "/" (o padrão).

Nota: Quando uma etapa normal ativa um projeto embutido, o sistema acessa o banco de dados para obter a definição atual desse projeto; quando uma etapa que é importada pelo comando .load ativa um projeto embutido, o sistema procura dentro do arquivo XML a definição do projeto embutido. Consulte a descrição da opção -e abaixo para obter uma maneira de evitar essa situação.
Nota: A etapa XML gerada a partir de versões do Build Forge anteriores a 7.1 não é suportada e, provavelmente, falhará, pois esses nomes são referenciados por nome, em vez de ID.
Nota: O .load usa o utilitário de importação e, como tal, aplica a propriedade de grupo de acesso de acordo com as configurações do utilitário de importação. Consulte Como os Grupos de Acesso São Designados para Objetos Importados para obter mais informações.
O comando tem as seguintes opções:
-r ou -p
Essas opções fazem com que o sistema carregue as etapas de um registro. Utilize a linha de comandos com essas opções.
.load -r|-p <registername>
A opção -r carrega as etapas de um registro comum, enquanto que a opção -p carrega as etapas de um registro de projeto. É possível construir dados em um registro nas etapas anteriores em seu projeto e, em seguida, carregar as etapas do registro com esse comando.
-s
Essa opção faz com que o sistema execute um comando e utilize a saída desse comando como dados para carregar. Utilize a linha de comando
.load -s `<command name>`
-e
Quando a opção -e for definida, o sistema obterá os projetos embutidos do banco de dados em vez de obtê-los do arquivo XML carregado Ele considera o valor de chainID como uma referência a um ID de projeto no banco de dados. Isso permite que seu arquivo XML faça referência à versão mais recente de um projeto embutido, em vez daquele no arquivo XML, ou faça referência a um projeto que não está incluído no arquivo XML.
-o
Utilize a opção -o para desativar os projetos embutidos no arquivo XML. Quando essa opção for utilizada, o sistema ignorará quaisquer projetos embutidos no projeto principal. Uma etapa que contém uma referência a um projeto embutido executa seu comando, mas depois ignora o fato de ser embutido.
-j
Utilize a opção -j se as etapas do último conjunto de etapas no arquivo XML estiverem encadeadas e as etapas seguintes ao comando .load também estiverem encadeadas. A opção -j transforma a última etapa encadeada em uma etapa de junção. Caso contrário, as etapas encadeadas tornam-se parte do bloco encadeado de etapas seguintes ao comando .load.
-v
Envia o conteúdo do arquivo XML que é carregado no terminal de exibição (stdout) para visualização.

XML de Amostra

O exemplo a seguir mostra um arquivo XML a ser utilizado com o comando .load. O XML foi criado ao exportar um projeto chamado HelloWorldPlusInline.

Observe os detalhes a seguir do XML de exemplo:
  • O XML contém dois elementos <project>.
  • O primeiro projeto no XML é o projeto principal; ele possui os atributos name="HelloWorldPlusInline" e primary="1" .
  • O segundo projeto no XML é chamado de Sleepytime e possui o atributo primary="0" para indicar que não é principal.
  • A primeira etapa do HelloWorldPlusInline é uma etapa denominada EchoHelloWorld, que contém um comando echo e um atributo chainID. O atributo chainID tem um valor de 2, indicando que o sistema deve deixar o projeto embutido com o ID 2, que é o projeto Sleepytime.
    Nota: Ignore o atributo da etapa inline; ele é um atributo reprovado que não é mais utilizado. Todas as etapas possuem esse atributo com um valor de N. Para determinar se uma etapa possui um projeto embutido, procure o atributo chainID . O valor de chainID se refere ao ID de um projeto. Por padrão, o sistema procura o projeto embutido no arquivo XML, mas se você usar a opção -e em seu comando .load, o sistema tratará o valor como um ID do projeto no banco de dados. Isso permite que você crie seus próprios arquivos .load sem ter que incluir projetos embutidos neles.
    Nota: O uso de .load com arquivos XML gerados pelo Build Forge versões 7.0.x e mais antigas não é suportado e não funcionará de forma adequada, pois a sintaxe mais antiga faz referência a objetos por nome, não por UUID.
  • Cada projeto possui um atributo id. Esse valor de ID é o mesmo que o ID do projeto no banco de dados. É possível obter uma lista dos IDs do projeto executando o seguinte comando a partir de seu diretório de instalação:
    bfexport -l 
  • O atributo commandStore contém uma cópia do conteúdo do elemento <command>, com determinados caracteres de escape XML. Por exemplo, em <command>, é possível ter ", ', &, <, > ou uma nova linha. Os caracteres seriam representados em commandStore respectivamente por &quot;, &apos;, &amp;, &lt;, &gt; e &#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>


Feedback