1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Salesforce Knowledgeの一括更新

Last updated at Posted at 2022-02-15

ナレッジの一括更新

この質問に対する回答を考えました。

残念なことにこのヘルプを読む限りはデータローダでステータスをドラフトにすることはできないと書かれています。

You may be able to leverage the Apex Knowledge Management Publishing Service Class in order to set articles to draft, update them, and then re-publish but doing so would require the creation of a client tool to manage this overall process which is not supported.

Update Knowledge Base articles with Data Loader

探してみるとApexで一括更新ができるらしい。

How to mass update Knowledge Article in Salesforce?

このようなコードを匿名windowで処理させるとドラフトの記事が新規に作成されました。

KbManagement.PublishingService.editOnlineArticle('kA02x0000001qpuCAA',false);

ここで、Idと思って値をセットしていたのですが、 Invalid Idエラーになりました。

PublishingService.publishArticle Invalid Id

これを読むとここにセットする値はオブジェクトのIdでなくKnowledgeArticleIdだったようです。
先ほどのApexも、もしかしたら同じエラーだったかもしれないです。

例えば、ExcelにKnowledgeArticleId列を作って
="KbManagement.PublishingService.editOnlineArticle('" & A1 &"',false);" みたいな数式を作ります。

この数式をコピーして、違う列に文字列として保存します。
この文字列の式を匿名windowで処理させたら、Apexのコードをかかなくても(Testクラスが無くても)ドラフトの記事を作ることが可能になると思いますね。

残念がらApexを使ったせいで、この回答は不採用でした....

もっといい案はないのかな?

このApexコードを使って Apex REST API化できればKnowledgeArticleIdを使ってもっと手軽に一括更新ができるような気がします。
ちょっと時間があれば作ってみたいですね。

関連情報

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?