OJS 3.3.0-14 agendamento de artigos em edições e à atribuição de DOI

Olá, pessoal.

Estou com um comportamento estranho no OJS 3.3.0-14 relacionado ao agendamento de artigos em edições e à atribuição de DOI.

O problema aparece quando um artigo já esteve vinculado a uma edição. Se eu retiro esse artigo da edição em que ele estava e depois tento agendá-lo em outra edição, o OJS não parece reconhecer corretamente o novo agendamento. Nessa situação, a opção de atribuição do DOI ao artigo não fica disponível como esperado.

O comportamento que mais chamou minha atenção é que, se eu volto o mesmo artigo para a edição anterior, em que ele estava originalmente vinculado, o OJS volta a reconhecer o agendamento normalmente e a opção de DOI também volta a funcionar.

Em resumo, o fluxo está acontecendo assim:

  • o artigo está na edição A e o agendamento funciona normalmente;
  • retiro o artigo da edição A;
  • tento agendá-lo na edição B;
  • o OJS não reconhece corretamente o agendamento e não disponibiliza a atribuição do DOI;
  • se volto o artigo para a edição A, o agendamento volta a funcionar.

Gostaria de saber se alguém já encontrou esse comportamento no OJS 3.3.0-14, especialmente ao mover um artigo de uma edição para outra depois de ele já ter sido agendado anteriormente.

Há algum procedimento recomendado para desvincular completamente o artigo da edição anterior antes de agendá-lo em uma nova edição? Ou existe algum problema conhecido nessa versão relacionado à troca da edição de uma publicação já agendada?

Obrigado!

1 curtida

Olá @B_D89 ,

Pelo comportamento descrito, eu verificaria primeiro o estado do agendamento da publicação e a associação com a edição anterior, antes de tratar o problema como uma falha específica do DOI.
No OJS 3.3, quando um artigo é agendado para uma edição futura, a publicação assume internamente o estado STATUS_SCHEDULED. O PKP já documentou problemas nessa área, inclusive um bug no OJS 3.3 em que, ao remover uma submissão de uma edição, o issueId podia continuar registrado na tabela publication_settings PKP issue #6584 (when a submission is removed from the issue TOC the publication still contains issueId · Issue #6584 · pkp/pkp-lib · GitHub). Há também registro no desenvolvimento do fluxo de publicação de que, ao desfazer um agendamento, a associação com a edição deve ser efetivamente limpa antes de um novo agendamento.
Isso é compatível com o comportamento relatado: o artigo esteve na edição A, aparentemente é retirado dela pela interface, mas alguma informação da associação/agendamento anterior pode permanecer; ao tentar colocá-lo na edição B, o estado não é reconstruído corretamente. Quando retorna à edição A, o fluxo volta a funcionar porque essa associação é novamente coerente.
Eu tentaria o seguinte procedimento pela interface:

  1. abrir o artigo e ir em Publicação;
  2. utilizar explicitamente Desagendar/Unschedule, caso ele ainda esteja como agendado;
  3. em Publicação → Edição, deixar o artigo temporariamente sem edição, salvar e recarregar a página;
  4. selecionar então a nova edição (B) e salvar;
  5. executar novamente Agendar para publicação;
  6. depois verificar Publicação → Identificadores → DOI.

Também vale conferir a configuração do sufixo do DOI. No OJS 3.3, dependendo do padrão configurado, o DOI pode utilizar metadados da edição, como volume, número, ano ou páginas. No Fórum do PKP existem relatos em que o sistema informava que não era possível gerar o DOI mesmo com o artigo aparentemente associado à edição; em alguns casos, o problema era um elemento exigido pelo padrão do DOI que não estava preenchido na nova edição.
Portanto, eu compararia os metadados da edição A com os da edição B - principalmente volume, número, ano e paginação, conforme o padrão de DOI configurado.
Se esse procedimento não resolver, seria interessante solicitar ao administrador do banco uma conferência apenas de leitura. No OJS 3.3, pode-se verificar qual issueId está efetivamente associado à publicação atual:

SELECT
    s.submission_id,
    s.current_publication_id,
    p.status,
    ps.setting_value AS issue_id
FROM submissions s
JOIN publications p
    ON p.publication_id = s.current_publication_id
LEFT JOIN publication_settings ps
    ON ps.publication_id = p.publication_id
    AND ps.setting_name = 'issueId'
WHERE s.submission_id = ID_DA_SUBMISSAO;

Se, depois de desagendar e retirar o artigo da edição A, ainda aparecer o ID da edição A nessa consulta, teríamos uma evidência bastante forte de que a associação antiga não foi eliminada corretamente.
Eu não recomendo alterar diretamente o banco como primeira solução. A consulta serviria inicialmente para diagnóstico. Qualquer correção de dados deveria ser feita somente após backup e análise das demais versões da publicação.
Existe ainda outro ponto específico da versão 3.3.0-14: o PKP registrou o bug #9104 (Unassigned JM/JE/Site Admin can't make publication changes when having lower-level roles (OJS 3.3.0.14) · Issue #9104 · pkp/pkp-lib · GitHub), no qual usuários que acumulam papel de Editor/Gerente com papéis de nível inferior podem ter problemas em ações de publicação, incluindo agendamento e salvamento da atribuição de DOI. Se o procedimento acima não resolver, vale testar também com um usuário exclusivamente Editor/Gerente da Revista devidamente atribuído à submissão.
Por fim, a 3.3.0-14 já é uma versão antiga da série 3.3. Se a instalação ainda estiver nessa versão, eu recomendaria também planejar sua atualização, pois várias correções foram incorporadas posteriormente.

Espero que ajude. Se puder informar qual é o padrão de sufixo DOI configurado e se a edição B possui volume/número/ano preenchidos, dá para restringir ainda mais o diagnóstico.

1 curtida

Olá, @diegojmacedo, obrigado pelas orientações!

Fiz o teste pela interface. O DOI está habilitado para edições e artigos, com o sufixo padrão do sistema. Meu perfil possui somente o papel de Gerente da Revista. A edição futura tem volume, ano e título cadastrados.

Ao clicar em Desagendar , salvar, sair e entrar novamente no sistema, o artigo volta para a aba Ativos , mas continua associado à edição. A interface exibe a mensagem:

Atribuído a {$ issueName} , mas não foi agendado para publicação.

O texto {$ issueName} aparece literalmente, embora o link aponte corretamente para a edição. Ao clicar em Alterar número , a edição futura v. 42 (2026): Publicação contínua já aparece selecionada.

Em seguida, agendei novamente o artigo. O sistema:

  • apresenta a etiqueta azul Agendado ao lado do ID da submissão;
  • informa que o artigo foi agendado para a v. 42 (2026);
  • mostra o artigo como agendado no módulo Edições .

Entretanto, na guia Publicação , o campo DOI continua desabilitado e aparece a mensagem:

Você não pode gerar um DOI até que esta publicação tenha sido atribuída a um fascículo.

Portanto, o módulo Edições e o estado da submissão reconhecem o agendamento na edição futura, mas o componente DOI continua tratando a publicação como se ela não estivesse atribuída a um fascículo.

Nesse cenário, seria recomendável verificar todas as versões da publicação, comparando o current_publication_id , o status e o issueId de cada publication_id ? Pode estar ocorrendo uma divergência entre a versão corrente da publicação e aquela que aparece associada à edição?

Obrigado novamente

Olá, @B_D89,

Sim, a verificação das diferentes versões da publicação pode ser o próximo passo, principalmente comparando o current_publication_id com o issueId associado a cada publication_id . Entretanto, antes de partir para o banco, eu verificaria um detalhe no cadastro da edição.

Você informou que a edição futura possui volume, ano e título , mas não mencionou se o campo Número também está preenchido.

Como está sendo utilizado o sufixo padrão do sistema para o DOI , no OJS 3.3 o padrão utilizado para artigos é:

%j.v%vi%i.%a

Nesse padrão, %v corresponde ao volume e %i ao número da edição . O código do plugin DOI da série 3.3 busca explicitamente issueVolume , issueNumber e year da edição para montar os dados necessários ao identificador.

Portanto, eu verificaria primeiro em Edições → Edições futuras → Dados da edição se o campo Número está efetivamente preenchido.

Há um detalhe importante: no código do OJS 3.3, quando é usado o padrão padrão de DOI e falta algum dos elementos necessários, a interface utiliza a mensagem missingIssue . Por isso, a mensagem:

Você não pode gerar um DOI até que esta publicação tenha sido atribuída a um fascículo.

não significa necessariamente que o issueId esteja ausente. Ela também pode aparecer quando o padrão do DOI não consegue ser completado com os metadados da edição.

Há inclusive relato semelhante no fórum do PKP, em que a publicação estava atribuída à edição, mas o DOI não era gerado porque faltava um dos elementos utilizado pelo padrão. Fórum PKP

Se o campo Número estiver vazio , acredito que esse seja o primeiro ponto a corrigir ou avaliar. Caso o periódico trabalhe com publicação contínua e deliberadamente não utilize número, pode ser necessário avaliar um padrão personalizado de sufixo que não utilize %i .

Se o Número também estiver preenchido , então concordo com a sua hipótese: vale verificar todas as versões da publicação.

Nesse segundo cenário, eu compararia:

  • submissions.current_publication_id ;
  • todos os publication_id da submissão;
  • status de cada publicação;
  • issueId de cada versão em publication_settings .

O objetivo é confirmar se o issueId da edição 42 está associado à mesma publication_id indicada em current_publication_id .

Por exemplo, uma situação como esta seria bastante significativa:

current_publication_id = 541

publication_id 530 → issueId = 42
publication_id 541 → issueId = NULL

Nesse caso, a edição estaria associada a uma versão da publicação, enquanto a guia Publicação/DOI estaria trabalhando com outra versão corrente sem issueId .

Essa hipótese é plausível na série 3.3 porque o issueId era armazenado em publication_settings . O PKP inclusive registrou o bug #6584, no qual a remoção de uma publicação de uma edição podia deixar o issueId antigo persistido nessa tabela. Posteriormente, o próprio PKP decidiu normalizar essa relação, movendo o vínculo da edição para a tabela publications na linha 3.5. GitHub

Então eu seguiria nesta ordem:

1. confirmar se o campo Número da edição 42 está preenchido;
2. se estiver, comparar current_publication_id , publication_id e issueId das diferentes versões;
3. somente depois avaliar eventual correção de dados.

Eu evitaria qualquer alteração direta no banco antes dessa confirmação.

Quanto ao {$issueName} aparecer literalmente, parece ser um problema adicional de localização/interpolação/tradução da interface. Como o link aponta corretamente para a edição, eu não o consideraria, isoladamente, como evidência de que a associação com a edição está ausente.

Abraços!

1 curtida