É possível exportar apenas alguns itens em vez da coleção completa?

Oi pessoal, tudo bem?

Estou com uma necessidade de alterar o tipo de alguns metadados (texto simples para texto longo). Como a cópia do metadado não funciona na edição em massa pelos tipos serem diferentes, a solução seria exportar e importar o item, fazendo a mudança dentro do CSV.

Isso funciona bem, porém só consigo exportar todos os dados (principalmente special_item_id) se eu exportar a coleção completa.

Existe alguma maneira de fazer essa exportação completa apenas com parte desses itens?

Será que não estou vendo no lugar certo

O mundo ideal seria filtrar os itens que quero trabalhar na interface do Tainacan, selecionar aqueles que interessam e exportar apenas eles com o special_item_id.

Hoje a coleção está com 3000 itens, mas está previsto crescer para dezenas de milhares. Eu preferiria não ter de exportar milhares de itens pra trabalhar com algumas dezenas.

Tentei exportar em CSV penas itens selecionados, mas eles não apresentam o special_item_id no CSV gerado, o que me impede de atualizar itens.

Obrigado!

Oi @marvila!

Hoje temos dois caminhos para retiradas de dados, o Exportador e o Expositor. Eles funcionam de formas diferentes, cada um com sua vantagem e desvantagem:

  • Exportador: exporta tudo, sem filtragem, mas trás todas as informações incluindo dados que não são metadados (como o special_item_id, special_document, special_attachments). Ele gera um processo em plano de fundo por isso consegue rodar sem pesar o servidor para qualquer quantidade;
  • Expositor (botão “Ver como…”): é uma consulta direta à API, portanto vai ser paginado (capado pela constante de máximo de itens por consulta, que por padrão é 96). Por ser uma consulta à API ele aceita filtragem, tando uma seleção manual quanto qualquer filtro ou busca avançada que você quiser aplicar. O filtro que estiver aplicado na interface ou na url é o filtro que ele vai usar. Sua saída, ao menos no CSV, é mais adaptada para consumo humano, por exemplo ele não fica trazendo campos especiais.

Sempre nos pegamos discutindo se devemos evoluir um ou o outro. No seu caso o que você gostaria seria por exemplo, que permitíssemos que o `special_item_id` viesse no Expositor. Mas considerando a sua demanda de quantidade de itens eu diria que isso não é ideal porque você ainda teria que sair fazendo a paginação (3000 itens daria umas 30 planilhas CSV).

O outro caminho seria permitir que a saída do Exportador, que é uma consulta muito mais direta ao Banco de Dados, sem passar pela camada da API, fosse filtrável. Nós temos issue aberta pra isso:

O que posso dizer é que é complexo e ainda não sabemos bem o quanto dessa filtragem vamos oferecer. Em parte achamos que hoje a maioria dos casos de uso nestes fluxos de importação — exportação podem ser filtrados no próprio contexto de um editor de planilhas. Além disso este tipo de mudança estruturante nos metadados (alterações de modelagem que levem a exportar e reimportar tudo) não é algo que achamos que vá ser super frequente no dia a dia.

Portanto hoje a solução que eu acho mais viável é realmente exportar tudo. Isso demora, é verdade, mas não vai pesar muito seu servidor, visto que o processo ocorre em plano de fundo e é divido em pacotes justamente para não sobrecarregar da forma que uma consulta direta (como a que é feita quando usamos o Expositor com filtros) faz.

Muito obrigado pelas informações, Mateus.

Eu já estava indo nessa linha, mas tinha de perguntar. Vai que havia uma maneira melhor de fazer, né? :wink:

Uma última pergunta, existe alguma maneira de exibir o special_item_id em alguma tela do tainacan para quando for necessário alterar apenas um ou poucos itens sem ter de exportar toda a coleção?

Obrigado!

Hoje mesmo eu estava revisitando essa issue aqui…

Eu ainda não tenho certeza da melhor forma de mostrarmos isso na interface. Mas você pode vê-lo pela URL sempre que navegar na parte administrativa. Por exemplo dentro de uma página de edição de item a URL:

https://localhost/wp-admin/admin.php?page=tainacan_admin#/collections/46/items/409

Refere-se ao item de `special_item_id` 409 na coleção de ID 46

Isso já ajuda bastante! Obrigado!