O Zoom é tipo o componente Filter do Style Guide, porém já é carregado automaticamente. Por isso você não conseguirá criar um Zoom com append.
Você pode fazer o append com um input e então executar a função que cria o Filter.
Documentação do Filter: https://style.fluig.com/miscellaneous.html#filter
Porém o Fluig não criará o campo na tabela/dataset do Formulário, pois ele cria os campos analisando os campos do formulário no HTML e como esse campo não existe ele não será criado. Então você terá que armazenar seus dados de alguma forma diferente.
Depois de pesquisar como funciona a técnica Pai x Filho eu consegui fazer o append do Zoom e carregá-lo. Segue um código de exemplo.
// Criando o elemento Zoom
let zoomInput = $(`<input type="zoom" class="form-control" name="teste" id="teste" data-zoom="{'displayKey':'CATEGORIA','datasetId':'ds_rm_produto_categorias','fields':[{'field':'CATEGORIA','label':'Categoria','standard': true},{'field':'CODIGO','label': 'Código','visible': 'false'}]}">`);
// Fazendo o append dele
$("#painelProduto").append(zoomInput);
// Executando o loading do Zoom. Aqui preciso passar o elemento HTML ao invés do objeto JQuery
loadZoomForInput(zoomInput.get(0));
Então você faria algum botão pra executar as ações.
Porém, salientando novamente, dessa forma o Fluig não criará os campos no dataset do formulário. Até estou curioso pra saber o motivo de usar assim.
Ele vai ser inserido em determinada atividade ou conforme seleção de algum campo? Eu geralmente deixo ele oculto, mas criado no formulário, dependendo da situação eu exibo ele.
— RODRIGO DOS SANTOS GOMES 01 de Jun de 2020Olá, Rodrigo! Anteriormente eu já fiz desse jeito, mas agora são muitos campos nas opções e deixa-los no código oculto iria gerar muito "lixo", por isso estou optando por adicionar os campos de forma dinâmica.
— Felipe Barreto 02 de Jun de 2020