Versionamento de documentos em fluxo de processo

Bom dia. Estou transcrevendo um fluxo para o Fluig e a minha necessidade é a seguinte: preciso passar por um fluxo completo e quando o documento chegar no status de vigente (Publicado)(final), possamos ir até ele e escolher gerar revisão. Sendo assim um "novo documento" (com algumas informações sendo repassadas para ele)(com número de Versão 2) segue o mesmo fluxo, porém ao chegar em vigente (publicado), o da versão anterior fica como status Obsoleto. E assim vai-se gerando novas versões publicadas e as anteriores alterando seus status como obsoleto ao chegar com a nova versão até o final (Vigente - Publicado). E ter alguma forma de visualizar essas versões agrupadas. De preferencia vendo somente os vigentes em um lugar e quando acessar esse documento vigente, melhor ver as versões antigas por dentro dele (ter acesso). Muito Obrigado!

Ricardo, você pode fazer uso dos serviços de manipulação de documentos do Fluig. Um deles é o copyDocumentToUploadArea, com ele você consegue copiar um documento do GED do Fluig para pasta de upload do usuário, depois disso, basta usar o createDocument ou createSimpleDocument para publicar novamente o documento na versão que deseja. Todos são métodos do serviço ECMDocumentService. Este serviço utiliza protocolo SOAP, mas há correspondentes no protocolo REST. Segue a documentação que pode te ajudar, e muito:

https://tdn.totvs.com/pages/releaseview.action?pageId=73084007

Bom dia. Mas como um documento de nova versão de algum outro receberia um número de versão novo (dependendo da versão em que estiver). Como abrir uma versão nova de um documento. Como alterar o status do documento de versão anterior. Sou novo no fluig ainda. Eu fiz dois cursos no fluig academy (Desenvolvimento de Processos BPM/ECM Essentials e Intermediate). Muito obrigado pela ajuda!

Ricardo, nunca passei pela demanda, mas sei que há serviços no Fluig que podem te auxiliar. Acredito que seja possível criar uma cópia do documento em questão ou um novo upload baseado no endereço do documento já existente. Vou pesquisar um pouco em meio aos serviços e te retorno com alguma ideia.

Segue a dica, Ricardo!

Oi. Eu fiz esse código abaixo e coloquei em um button pra quando clicar ele gerar uma cópia dentro da pasta com versão diferente (compreendendo ainda como alterar a versão da nova cópia). Eu chamei essa função através de um button (Gerar Revisão) que deve aparecer quando finalizado. Mas notei que uma função java script não reconhece funções do Fluig. Sabe alguma forma? Estou fazendo corretamente? Obrigado!
Link do código fonte: "Mover" aquivo utilizando apenas docAPI e fluigAPI · GitHub
Código Fluig no javascript:
var doc = getValue(“WKDocument”);
var documentId = doc.getDocumentId();

Esses são eventos do backend, Ricardo.

Ricardo, sempre que uma resposta lhe for satisfatória, é importante marcar ela como correta, isso pode ajudar outros usuários com a mesma dúvida. Desculpa a demora, só vi seu comentário agora. Pois então, você pode mesclar essas variáveis e funções que são do backend em um evento de formulário, como o displayFields por exemplo. Isso te esclarece alguma coisa?