拡張メモもContentDocumentと同じでContentDocumentLinkで対象のオブジェクトと関連付けないといけないので、データローダなどではできなくはないけど、面倒だろう。
とりあえず、1レコードずつ処理する簡単なバージョンをさくっと作ってみた。
public class BAT_Create_ContentNote implements Database.Batchable<sObject> {
public Database.QueryLocator start(Database.BatchableContext BC) {
// collect the batches of records or objects to be passed to execute
String query = 'Select Id,Name,Note1__c,Note2__c,Note3__c From Opportunity where Id =\'0066D000003595SQAQ\'';
return Database.getQueryLocator(query);
}
public void execute(Database.BatchableContext BC, List<Opportunity> oppList) {
System.debug('******** oppList ' + oppList);
List<ContentDocumentLink> cdlinkList = new List<ContentDocumentLink>();
for (Opportunity o : oppList){
if(o.Note1__c != null ){
ContentNote cn = new ContentNote();
cn.Title = 'test1';
String body = o.Note1__c;
cn.Content = Blob.valueOf(body.escapeHTML4());
insert(cn);
ContentDocumentLink cdl = new ContentDocumentLink();
cdl.LinkedEntityId = o.id;
cdl.ShareType = 'V';
//ContentVersion cv2 = cvMap.get(cv.Id);
//Id cdId = cv2.ContentDocumentId;
cdl.ContentDocumentId = cn.Id;
cdlinkList.add(cdl);
}
if(o.Note2__c != null ){
ContentNote cn = new ContentNote();
cn.Title = 'test1';
String body = o.Note2__c;
cn.Content = Blob.valueOf(body.escapeHTML4());
insert(cn);
ContentDocumentLink cdl = new ContentDocumentLink();
cdl.LinkedEntityId = o.id;
cdl.ShareType = 'V';
//ContentVersion cv2 = cvMap.get(cv.Id);
//Id cdId = cv2.ContentDocumentId;
cdl.ContentDocumentId = cn.Id;
cdlinkList.add(cdl);
}
if(o.Note3__c != null ){
ContentNote cn = new ContentNote();
cn.Title = 'test1';
String body = o.Note3__c;
cn.Content = Blob.valueOf(body.escapeHTML4());
insert(cn);
ContentDocumentLink cdl = new ContentDocumentLink();
cdl.LinkedEntityId = o.id;
cdl.ShareType = 'V';
//ContentVersion cv2 = cvMap.get(cv.Id);
//Id cdId = cv2.ContentDocumentId;
cdl.ContentDocumentId = cn.Id;
cdlinkList.add(cdl);
}
}
try {
if(cdlinkList.size() > 0) insert cdlinkList;
} catch(Exception e) {
System.debug(e);
}
}
public void finish(Database.BatchableContext BC) {
}
}