[OJS 3.2.1-2 with Postgres] Error CrossRef DOI

Hi all,
I really need your help.
A journal will be rating, but the editor is unable to place the DOI.
When you enter the CrossRef plugin, you only load the articles, but they do not appear for deposit.
image

This is the error in the log:

PHP Fatal error:  Uncaught Error: Call to a member function getId() on null in /var/www/ojs-3.2.1-2/controllers/grid/submissions/ExportPublishedSubmissionsListGridCellProvider.inc.php:77\nStack trace:\n#0 /var/www/ojs-3.2.1-2/lib/pkp/classes/controllers/grid/GridCellProvider.inc.php(56): ExportPublishedSubmissionsListGridCellProvider->getCellActions(Object(Request), Object(GridRow), Object(GridColumn))\n#1 /var/www/ojs-3.2.1-2/lib/pkp/classes/controllers/grid/GridHandler.inc.php(1104): GridCellProvider->render(Object(Request), Object(GridRow), Object(GridColumn))\n#2 /var/www/ojs-3.2.1-2/lib/pkp/classes/controllers/grid/GridHandler.inc.php(1011): GridHandler->_renderCellInternally(Object(Request), Object(GridRow), Object(GridColumn))\n#3 /var/www/ojs-3.2.1-2/lib/pkp/classes/controllers/grid/GridHandler.inc.php(988): GridHandler->renderRowInternally(Object(Request), Object(GridRow))\n#4 /var/www/ojs-3.2.1-2/lib/pkp/classes/controllers/grid/GridHandler.inc.php(1033): GridHandler->renderRowsInternally(Object(Request), Array)\n#5 /var/ww in /var/www/ojs-3.2.1-2/controllers/grid/submissions/ExportPublishedSubmissionsListGridCellProvider.inc.php on line 77, referer: https://periodicos.ufes.br/geografares/management/importexport/plugin/CrossRefExportPlugin

Another thing I noticed in this journal is that the Usage Statistics plugin is not showing on the articles page. In other journals, it is showing normally, with the same configuration.

could you help us? we are very concerned about this rating.

I founded one of the reasons that this error is showing up. Some articles are published but have no associated publication.

image

And when entering DOI Plugin Settings, and clicking on Assign DOIs, it turned out that these articles received the DOI and is giving this error. How can I do to find all these submissions in this published situation but without an issue?

Try using the following SQL query to view the publication id, submission id and issue id of all published publications:

select p.publication_id,p.submission_id,ps.setting_value as issue_id from publications as p left join publication_settings as ps on (p.publication_id = ps.publication_id) where p.status=3 and ps.setting_name = 'issueId';

If there are any without an issue_id value, those are going to be a problem.

Hi @NateWr, very thanks.
We have more than 33 journals, so the result was huge.
The problem I have now is in the journal Geografares (journal 1).
How do I limit journal 1 to this sql?

I got it!

select p.publication_id,p.submission_id,ps.setting_value as issue_id 
from publications as p 
left join publication_settings as ps on (p.publication_id = ps.publication_id) 
left join issues as i on (i.issue_id  = CAST(ps.setting_value AS INT))
where p.status=3 
and ps.setting_name = 'issueId' 
and i.journal_id = 1;

Is it ok?

Hmm, that might work. What happens if there is no ps.setting_name = 'issueId'? The goal is to find publications where the issueId is missing or points to a non-existent issue. If there’s no issueId, I think i.journal_id would be null.

Try joining the submissions table:

select p.publication_id,p.submission_id,ps.setting_value as issue_id 
from publications as p 
left join publication_settings as ps on (p.publication_id = ps.publication_id) 
left join submissions as s on (p.submission_id = s.submission_id)
where p.status=3 
and ps.setting_name = 'issueId'
and s.context_id = 1;