I am using Data Loader in command line format. I am updating a record of type Knowledge__kav, in which we have a custom rich text field called Body__c. As per documentation, I have fortmatted it as HTML in the csv file. Also as per documentation, quote charcater is escaped by adding an extra quote. This is what my csv file looks like:
"ID","BODY__C"
"ka0S0000000449LIAQ","<table border=""0"" style=""width: 100%;""><tbody><tr><td colspan=""1"" rowspan=""1"" style=""vertical-align: bottom;""> <ul><li>this is line 1</li><li>this is line 2</li></ul> </td><td colspan=""1"" rowspan=""1"" style=""text-align: center;width: 20%;""><b>Alert example:</b> <div style=""text-align: center;"">ALERT </div> </td></tr></tbody></table>"
This is the SDL file:
ID=Id
BODY__C=Body__c
This is some of the entries in process-conmf.xml:
entry key="dataAccess.name" value="/home/hamayoun/ups/DL/kmdata/KKUpdateB.csv"/>
<entry key="dataAccess.readBatchSize" value="200"/>
<entry key="dataAccess.writeBatchSize" value="500"/>
<entry key="loader.csvComma" value="true"/>
<entry key="loader.csvOther" value="false"/>
<entry key="loader.csvTab" value="false"/>
<entry key="process.enableExtractStatusOutput" value="false"/>
<entry key="process.enableLastRunOutput" value="true"/>
<entry key="process.loadRowToStartAt" value="0"/>
<entry key="process.mappingFile" value="/home/hamayoun/ups/DL/kmconf/KKMapUB.sdl"/>
<entry key="process.outputError" value="/home/hamayoun/ups/DL/kmstatus/ekkub.csv"/>
<entry key="process.outputSuccess" value="/home/hamayoun/ups/DL/kmstatus/skkub.csv"/>
<entry key="sfdc.bulkApiCheckStatusInterval" value="5000"/>
<entry key="sfdc.bulkApiSerialMode" value="false"/>
<entry key="sfdc.bulkApiZipContent" value="false"/>
<entry key="sfdc.connectionTimeoutSecs" value="60"/>
<entry key="sfdc.enableRetries" value="true"/>
<entry key="sfdc.endpoint" value="https://test.salesforce.com"/>
<entry key="sfdc.extractionRequestSize" value="500"/>
<entry key="sfdc.insertNulls" value="false"/>
<entry key="sfdc.loadBatchSize" value="200"/>
<entry key="sfdc.maxRetries" value="3"/>
<entry key="sfdc.minRetrySleepSecs" value="2"/>
<entry key="sfdc.resetUrlOnLogin" value="true"/>
<entry key="sfdc.timeoutSecs" value="540"/>
<entry key="sfdc.truncateFields" value="true"/>
<entry key="sfdc.useBulkApi" value="false"/>
<entry key="sfdc.wireOutput" value="false"/>
<entry key="dataAccess.readUTF8" value="false"/>
<entry key="dataAccess.type" value="csvRead"/>
<entry key="dataAccess.writeUTF8" value="false"/>
<entry key="process.operation" value="update"/>
<entry key="sfdc.endpoint" value="https://test.salesforce.com"/>
<entry key="sfdc.entity" value="Knowledge__kav"/>
<entry key="sfdc.loadBatchSize" value="100"/>
After successfully updating, it appears that tags with properties defined with quotes are getting changed or deleted. This is what the Body__c field looks like after the update:
<table><tbody><tr></tr></tbody></table> <ul><li>this is line 1</li><li>this is line 2</li></ul> <b>Alert example:</b> ALERT
So what is happening here?