Я хотел бы отредактировать webcontent (journalarticle) в Liferay и создать новую версию из этого пользовательского портлета. Я называю JournalArticleLocalServiceUtil.addArticle()
метод со следующими соответствующими параметрами:Добавить новую версию webcontent в Liferay
articleId = article.getArticleId();
autoArticleId = false;
version = article.getVersion()+0.1;
So старого ArticleID и версию возрастала.
Этот код работает в LR 6.1.30EE, но в 6.1.20EE и 6.1.1CE я получил DuplicateArticleIdException
. Это ошибка в более ранней версии? Есть ли способ обхода или другой метод для создания новой версии существующего webcontent программно?
Незначительный вопрос: какой правильный способ увеличения версии? Вышеуказанный способ +0.1 создается из v1.1 v1.200000000000002, но предпочтительнее будет v1.2.
Примечание: updateArticle()
метод с новой версией тоже не работает, он выбрасывает ArticleVersionException
. Похоже, что это правильно, поскольку он должен обновлять уже существующий контент.
Можете ли вы быть более конкретным? Я получаю такую же ошибку, LR 6.2sp11. В моем случае я извлекаю статью, получая версию с '.getVersion()' и передавая эту возвращенную версию непосредственно в 'updateArticle()'. Если я вручную увеличиваю версию, я получаю сообщение о том, что LR не смог найти статью. Если я передаю исходную версию, я получаю «ArticleVersionException» без другого описания того, что не так. – CodeChimp
Я делаю то же самое, передавая возвращаемое значение '.getVersion()' to 'updateArticle()'. Вы уверены, что получаете последнюю версию статьи? (Например, с помощью 'JournalArticleLocalServiceUtil.getLatestArticle()') – ttamas