Como excluir registros do Master Data massivamente?

Olá pessoal, com alguma frequência vejo este questionamento na comunidade, e por isto compartilho aqui um método que utilizo nestas situações, segue abaixo o passo a passo.

2 Likes

1) Acesse o Postman e baixe a coleção de API’s do Master Data

2) Abra o método Delete a Document: https://snipboard.io/Nj40CA.jpg https://documenter.getpostman.com/view/164907/vtex-masterdata-api-v102/2TqWsD?version=latest#e4b6a65a-c808-4dd0-910c-91ee9414d8b3

3) Acesse o Master Data e exporte os Ids dos registros que deseja apagar. Você deverá exportar o campo ID do Documento https://prnt.sc/qhl8et

4) Após ter em mãos a lista dos Ids, monte uma planilha no Excel com estes valores, um por linha. https://snipboard.io/RxSwe4.jpg O nome do cabeçalho deve ser o mesmo nome da variável na URL. No nosso caso, é “id”

5) Selecione todo o conteúdo do Excel https://snipboard.io/QMUtnE.jpg e copie

6) Abra o site https://www.csvjson.com/csv2json e cole o conteúdo na aba da esquerda. Clique em Convert https://snipboard.io/RWNHXQ.jpg

7) É gerado um JSON. É preciso salvá-lo como arquivo .json. Aconselho utilizar um editor HTML, como o Sublime Text. No entanto, é possível fazê-lo online, como neste site, por exemplo: https://jsoneditoronline.org/

8) Voltando ao Postman, crie uma coleção específica, contendo apenas o método que vai utilizar para o Runner, por exemplo: https://snipboard.io/mJH051.jpg

9) Clique na seta ao lado da coleção e vá em ‘Run’ https://snipboard.io/vRwHl7.jpg Será exibida uma tela como esta https://snipboard.io/GnU4tO.jpg

10) Faça upload do arquivo https://snipboard.io/6eu3JW.jpg e em Data File Type selecione ‘application/json’

11) Clique em ‘Preview’ para exibir o número de registros https://snipboard.io/Hm9XiV.jpg e em seguida alimente o campo Iterations com o valor de registros que quer executar. Se todos, basta inserir o mesmo valor do ‘Preview’

12) Confira todas as informações, como se a coleção está selecionada, e clique em ‘Run’ https://snipboard.io/tuNk5r.jpg

13) Este é um exemplo de como ocorre o processo https://snipboard.io/08fUNq.jpg Observe o status ‘204’, que é indicador de sucesso. Neste exemplo da imagem, o erro deve-se à ausência das credenciais de acesso (appkey e token)

14) Ao final, será exibido um Summary com o resultado do processo

15) Por fim, volte à entidade do Master Data para confirmar a exclusão dos registros.

3 Likes

@Eduardo Gomes​ ,

Executei o runner e todos os retornos forma com sucesso, mas os registros continuam lá. Por via das, fiz um teste unitário e mesmo assim não excluiu o registro. Estou desconfiado que seja o data entity name. Estou colocando a sigla que é exibida no master data, pois o nome em si possui espaços. Estou fazendo corretamente?

@Igor Nassif​ desculpe a demora! Qual código recebe no Postman após a exclusão? Veja se está usando o ID correto do registro. Sobre as entidades, é possível também. Aqui pode consultar as siglas: https://i.imgur.com/72HxiOo.png

Qualquer dúvida, nos avise.

Fala Edu, tranquilo?
Cara estou tendo o mesmo problema do Igor, tento fazer o delete de um registro de uma tabela específica, faço a requisição conforme o passo a passo e obtenho um retorno 204, porém ao consultar o registro na tabela ele ainda se encontra “ativo”.

Estou usando o postman para fazer o delete, passando apenas um registro específico.
Segue um pouco do que estou enviando na req…
OBS: estou passando o Acronym da entidade.

https://apiexamples.environment.com.br/api/dataentities/MG/documents/d8aee47f-e78c-11ee-8452-126ecf8d817b

X-VTEX-API-AppToken: …
X-VTEX-API-AppKey: …
Content-Type: application/json
Accept: application/json

Fala Felipe! Confesso que estou há algum tempo sem trabalhar com a VTEX diretamente, mas posso lançar algumas hipóteses. Está utilizando o MD V1 ou V2?

  1. Garantir que esteja usando o ID do documento do registro
  2. Verificar configurações da entidade para entender se há alguma restrição
  3. Sugiro fazer um teste similar em outra entidade/registro para eliminar algumas hipóteses
  4. Confirme que a appKey possui as permissões necessárias no License Manager

Vou conversar com um amigo e aviso se souber mais informações

1 Like

Opa Edu, valeu por responder tão rápido mesmo estando a um tempo sem mexer com a VTEX.

Cara, eu estou utilizando o MD V2. Verifiquei todos os pontos que você indicou e ta tudo certo, mas o problema ainda continua ocorrendo. Inclusive fiz um teste na entidade CL e aconteceu a mesma coisa, a request retorna 204 mas quando vou no MD e pesquiso pelo id que tentei deletar ele ainda permanece “ativo/criado”.

Caso consiga alguma outra informação que você ache válido para a resolução desse problema, agradeço bastante por compartilhar.

Forte abraço!

Oi @Felipearrudao, tudo joia?

O Accept no header está errado. O valor correto para a chave Accept para o DELETE do documents seria ‘Accept: application/vnd.vtex.ds.v10+json’ em lugar do Accept: application/json

curl --request delete
–url https://apiexamples.vtexcommercestable.com.br/api/dataentities//documents/
–header ‘Accept: application/vnd.vtex.ds.v10+json’
–header ‘Content-Type: application/json’
–header 'X-VTEX-API-AppKey: ’
–header 'X-VTEX-API-AppToken: ’

1 Like

Opa @andremiani , tudo Jóia?

Cara, deu certo, obrigado pela força, ajudou muito!

@eduardo valeu pela ajuda também, forte abraço!

1 Like

This topic was automatically closed 24 hours after the last reply. New replies are no longer allowed.