Se desejar usar um modelo que contém um subconjunto dos
elementos no modelo de saída padrão, crie um modelo de saída dinâmico.
Sobre esta tarefa
Se desejar a capacidade de remover alguns elementos do modelo
padrão e, talvez, incluir seus próprios elementos, você faz isso transmitindo
seus dados XML ou um nome de arquivo para o objeto YFSEnvironment.
Para
definir e implementar um modelo dinâmico:
Procedimento
- Copie o modelo de saída padrão para a API que você deseja modificar do arquivo <runtime_sandbox>/repository/xapi/template/merged/api/FileName.xml como <runtime_sandbox>/extensions/global/template/api/FileName.xml.
Ao nomear seu novo arquivo de modelo, use o mesmo nome que
o modelo padrão
O nome do modelo de saída corresponde ao nome da
API ou do evento associado a ela. Por exemplo, a API
getOrderDetails() usa o arquivo de modelo de saída
getOrderDetails.xml.
- Modifique o modelo copiado no diretório /extensions/global/template/api conforme necessário, tendo em mente as melhores práticas para criar modelos XML de saída customizados.
- Durante a extensibilidade da interface com o usuário, chame a função setApiTemplate()
no objeto YFSEnvironment. Isso permite que você especifique
um modelo de saída antes de chamar uma API, usando uma das
funções a seguir:
- Dados XML como uma variável - como no exemplo a seguir:
YFSEnvironment env = createEnv();
Document doc = getTemplateDocument();
env.setApiTemplate("getOrderDetails", doc);
private YFSEnvironment createEnv() {
//create new environment by passing the user id, program id, etc.
}
private Document getTemplateDocument() {
//create a Document object containing the desired template XML.
}
- Arquivo XML como uma variável - como no exemplo a seguir:
YFSEnvironment env = createEnv();
env.clearApiTemplates();
env.setApiTemplate("getOrderDetails", "myOrderDetails");
private YFSEnvironment createEnv() {
//create new environment by passing the user id, program id, etc.
}
A API, então, usa o modelo transmitido através
de YFSEnvironment para produzir o documento XML de saída. Para obter detalhes sobre a interface do YFSEnvironment, consulte o Javadoc