Export to PubMed XML in OJS 3.x not working?

Hi there,
Can someone tell me whether PubMed XML export is functioning in OJS 3.x.

My attempts to export the article to PubMed XML result in error 500 and upon clicking refresh in browser, generation of XML file with only this code:

    > <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ArticleSet PUBLIC "-//NLM//DTD PubMed 2.0//EN" "http://www.ncbi.nlm.nih.gov:80/entrez/query/static/PubMed.dtd">
<ArticleSet/>

PubMed XML plugin is one of the most important features of OJS. Please implement it soon if it is not implemented, or teach me how to fix it in my installation.

Thanks for help!
Dijana

Hi @dijana,

The PubMed plugin will need some work before it’ll function with OJS 3.x. I’ve filed this for attention – watch there for progress.

Regards,
Alec Smecher
Public Knowledge Project Team

Hello,

I have troubles with PubMed XML Export. I can’t get it to work. I use PHP 7.1.
I get HTTP ERROR 500.

My error log is too technical for me and I would much appreciate your help. It looks like this:

[25-Nov-2018 07:49:31 CST6CDT] PHP Fatal error: Uncaught Error: Call to a member function execute() on null in …/OJS/plugins/importexport/pubmed/PubMedExportPlugin.inc.php:133
Stack trace:
#0 …/OJS/plugins/importexport/pubmed/PubMedExportPlugin.inc.php(85): PubMedExportPlugin->exportSubmissions(Array, Object(Journal), Object(User))
#1 …/OJS/lib/pkp/pages/management/PKPToolsHandler.inc.php(98): PubMedExportPlugin->display(Array, Object(Request))
#2 …/OJS/lib/pkp/classes/core/PKPRouter.inc.php(390): PKPToolsHandler->importexport(Array, Object(Request))
#3 …/OJS/lib/pkp/classes/core/PKPPageRouter.inc.php(232): PKPRouter->_authorizeInitializeAndCallRequest(Array, Object(Request), Array, false)
#4 …/OJS/lib/pkp/classes/core/Dispatcher.inc.php(134): PKPPageRouter->route(Object(Request))
#5 …/OJS/lib/pkp/classes/core/PKPApplication.inc.php(247): Dispatcher->dispatch(Object(Request))
#6 /home in …/OJS/plugins/importexport/pubmed/PubMedExportPlugin.inc.php on line 133
[25-Nov-2018 07:49:48 CST6CDT] PHP Deprecated: Non-static method Config::getContextBaseUrls() should not be called statically in …/OJS/lib/pkp/plugins/generic/usageEvent/PKPUsageEventPlugin.inc.php on line 199
[25-Nov-2018 07:49:58 CST6CDT] PHP Deprecated: Non-static method Config::getContextBaseUrls() should not be called statically in …/OJS/lib/pkp/plugins/generic/usageEvent/PKPUsageEventPlugin.inc.php on line 199
[25-Nov-2018 07:50:24 CST6CDT] PHP Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; Smarty_Compiler has a deprecated constructor in …/OJS/lib/pkp/lib/vendor/smarty/smarty/libs/Smarty_Compiler.class.php on line 35
[25-Nov-2018 07:50:28 CST6CDT] PHP Deprecated: Non-static method PKPRequest::redirect() should not be called statically in …/OJS/lib/pkp/pages/admin/AdminFunctionsHandler.inc.php on line 125
[25-Nov-2018 07:50:28 CST6CDT] PHP Deprecated: Non-static method PKPRequest::_checkThis() should not be called statically in …/OJS/lib/pkp/classes/core/PKPRequest.inc.php on line 735
[25-Nov-2018 07:50:34 CST6CDT] PHP Deprecated: Non-static method PKPRequest::redirect() should not be called statically in …/OJS/lib/pkp/classes/security/Validation.inc.php on line 178
[25-Nov-2018 07:50:34 CST6CDT] PHP Deprecated: Non-static method PKPRequest::_checkThis() should not be called statically in …/OJS/lib/pkp/classes/core/PKPRequest.inc.php on line 735
[25-Nov-2018 07:50:36 CST6CDT] PHP Deprecated: Non-static method Validation::verifyPassword() should not be called statically in …/OJS/lib/pkp/classes/security/Validation.inc.php on line 58
[25-Nov-2018 07:51:42 CST6CDT] PHP Fatal error: Uncaught Error: Call to a member function execute() on null in …/OJS/plugins/importexport/pubmed/PubMedExportPlugin.inc.php:133
Stack trace:
#0 …/OJS/plugins/importexport/pubmed/PubMedExportPlugin.inc.php(85): PubMedExportPlugin->exportSubmissions(Array, Object(Journal), Object(User))
#1 …/OJS/lib/pkp/pages/management/PKPToolsHandler.inc.php(98): PubMedExportPlugin->display(Array, Object(Request))
#2 …OJS/lib/pkp/classes/core/PKPRouter.inc.php(390): PKPToolsHandler->importexport(Array, Object(Request))
#3 …/OJS/lib/pkp/classes/core/PKPPageRouter.inc.php(232): PKPRouter->_authorizeInitializeAndCallRequest(Array, Object(Request), Array, false)
#4 …OJS/lib/pkp/classes/core/Dispatcher.inc.php(134): PKPPageRouter->route(Object(Request))
#5 …OJS/lib/pkp/classes/core/PKPApplication.inc.php(247): Dispatcher->dispatch(Object(Request))
#6 …OJS/plugins/importexport/pubmed/PubMedExportPlugin.inc.php on line 133

Hi @dijana,

What version of OJS are you using? (Please include this in your posts.)

Regards,
Alec Smecher
Public Knowledge Project Team

Hi @asmecher

Thank you for your time.
Well. It is complicated. A long time ago, among the first users, I upgraded from 2.5.x to 3.0.x using the Softaculous script. I suspect that Softaculous copied the files, but never cleaned leftovers from 2.5.x.

Last time I tried to upgrade from 3.0.2 to 3.1.1.4. Upgrade never went to the end. I guess the files were successfully copied, then within the OJS installer I clicked to start the upgrade process, and it ended with server HTML error 500. But still, I could use the software and interface looks like 3.1.1.4, although the system information shows that the actual version is 3.0.2.

I am stuck with this mess for a long time, I don’t know how to make a clean install but not lose or destroy my data (database and submission files). I would pay someone to have it fix for me so I can continue to work without hassle.

So… I think my files are from 3.1.1.4 version, while I am not sure if the database needed some upgrade, and if it is upgraded from 3.0.2.

Thank you for your help.
Dijana

Hi @dijana,

There never was an OJS 2.5.x – maybe it was 2.4.5?

It’s hard to know what to recommend in this case – is there any chance you have the error message from your PHP error log from the time you ran the upgrade script and got a 500 error?

Regards,
Alec Smecher
Public Knowledge Project Team

Hi @asmecher,

You are right, it was 2.4.5.x.
I can run the upgrade script again. Just have to switch installed = off and run upgrade, then check the logs. Would that be useful?

Is there any chance someone fix my OJS for good?
Thanks,
Dijana

Hi @dijana,

The problem is that a failed upgrade will leave your system’s database (and possibly its files directory) halfway between the two versions, and that can be very difficult to fix – especially if you don’t know exactly where it stopped. We always recommend making a backup before running an upgrade, and restoring from backup to try again if you encounter a problem.

There are a lot of unknowns on your system, so I can only guess at the problem, but I would suggest running this database query:

SELECT * FROM filter_groups WHERE symbolic='article=>pubmed-xml';

The query should come back with something like…

+-----------------+---------------------+-----------------------------------------+-----------------------------------------+----------------------------------+-------------+
| filter_group_id | symbolic            | display_name                            | description                             | input_type                       | output_type |
+-----------------+---------------------+-----------------------------------------+-----------------------------------------+----------------------------------+-------------+
|              32 | article=>pubmed-xml | plugins.importexport.pubmed.displayName | plugins.importexport.pubmed.description | class::classes.article.Article[] | xml::dtd    |
+-----------------+---------------------+-----------------------------------------+-----------------------------------------+----------------------------------+-------------+
1 row in set (0.01 sec)

In your case I suspect it’ll come back empty.

Regards,
Alec Smecher
Public Knowledge Project Team

@asmecher

It came back empty :cold_sweat:

I have a backup of 3.0.2 database version, but I am not sure whether that database was successfully upgraded from 2.4.5.x.

If I purge my database and submitted articles of declined articles, then do a native article export, then import articles back to a fresh OJS installation, would my articles keep their submission numbers, URLs, DOIs?

Thanks, @asmecher.
Dijana

@asmecher
By the way, my Native XML export is also broken. :sob:
Is there any, any hope, hack, workaround, trick?

Dijana

@asmecher

Update: Native XML is working if I export one by one issue.
The error came up when I tried to export all the issues at once.

Hi @dijana,

OJS 3.x contains a set of “filters” that it uses to perform conversions between different document types. It looks to me like the configuration for these filters was never installed, which could be the outcome if the upgrade from 2.x to 3.x wasn’t completed successfully.

The “proper” solution is to make sure you restore from backup and try again if an upgrade fails, but I don’t think that solution is available to you any more. What I might suggest is making a fresh installation of the same version of OJS 3.x, then exporting the filters and filter_settings tables and importing them into the 3.x installation that you’re trying to fix.

Regards,
Alec Smecher
Public Knowledge Project Team

@asmecher

Can I compare and merge fresh database with the current one so I get the missing tables and data?

Is this a bad idea? I would appreciate your comments, warnings, or special care directions.

Thank you,
Dijana

Hi @dijana,

In general it’s very hard to describe how to fix a broken database – I’d suggest reviewing dbscripts/xml/upgrade.xml, which is the script that coordinates all upgrades, for a sense of all the steps involved. It sounds like you have possibly 2 failed upgrades, so the situation is quite muddy. It may be possible to work backwards from the last step in the script and identify the first step that hasn’t been completed, but this will require in-depth knowledge of both your own installation’s lifespan and then upgrade scripts.

On the plus side, if your installation is generally working and it’s just the occasional feature that’s broken, you may be able to continue operating and fix issues as they arise.

Regards,
Alec Smecher
Public Knowledge Project Team