77
88import { CsvChunks } from '../../models' ;
99import {
10- ApiEngineBase ,
11- ApiInfo ,
12- IApiEngineInitParameters ,
10+ ApiEngineBase ,
11+ ApiInfo ,
12+ IApiEngineInitParameters ,
1313} from '../../models/api_models' ;
1414import {
15- IApiEngine ,
16- IApiJobCreateResult ,
17- ICsvChunk ,
15+ IApiEngine ,
16+ IApiJobCreateResult ,
17+ ICsvChunk ,
1818} from '../../models/api_models/helper_interfaces' ;
1919import { Common } from '../common_components/common' ;
2020import { OPERATION } from '../common_components/enumerations' ;
@@ -42,9 +42,12 @@ export class RestApiEngine extends ApiEngineBase implements IApiEngine {
4242 }
4343
4444 async createCRUDApiJobAsync ( allRecords : Array < any > ) : Promise < IApiJobCreateResult > {
45+
46+ this . _fixRecords ( allRecords ) ;
47+
4548 let connection = Sfdx . createOrgConnection ( this . connectionData ) ;
4649 let chunks : CsvChunks ;
47- if ( ! this . restApiBatchSize ) {
50+ if ( ! this . restApiBatchSize ) {
4851 chunks = new CsvChunks ( ) . fromArray ( this . getSourceRecordsArray ( allRecords ) ) ;
4952 } else {
5053 let recordChunks = Common . chunkArray ( this . getSourceRecordsArray ( allRecords ) , this . restApiBatchSize ) ;
@@ -139,7 +142,7 @@ export class RestApiEngine extends ApiEngineBase implements IApiEngine {
139142 }
140143 } ) ;
141144 if ( progressCallback ) {
142- if ( self . numberJobRecordsFailed > 0 ) {
145+ if ( self . numberJobRecordsFailed > 0 ) {
143146 // Some records are failed
144147 progressCallback ( new ApiInfo ( {
145148 jobState : "JobComplete" ,
@@ -150,7 +153,7 @@ export class RestApiEngine extends ApiEngineBase implements IApiEngine {
150153 } ) ) ;
151154 }
152155 // Progress message: operation finished
153- if ( self . numberJobRecordProcessed == self . numberJobTotalRecordsToProcess ) {
156+ if ( self . numberJobRecordProcessed == self . numberJobTotalRecordsToProcess ) {
154157 progressCallback ( new ApiInfo ( {
155158 jobState : "OperationFinished" ,
156159 numberRecordsProcessed : self . numberJobRecordProcessed ,
@@ -159,7 +162,7 @@ export class RestApiEngine extends ApiEngineBase implements IApiEngine {
159162 batchId : apiInfo . batchId
160163 } ) ) ;
161164 } else {
162- progressCallback ( new ApiInfo ( {
165+ progressCallback ( new ApiInfo ( {
163166 jobState : "InProgress" ,
164167 numberRecordsProcessed : self . numberJobRecordProcessed ,
165168 numberRecordsFailed : self . numberJobRecordsFailed ,
@@ -177,7 +180,17 @@ export class RestApiEngine extends ApiEngineBase implements IApiEngine {
177180 getEngineClassType ( ) : typeof ApiEngineBase {
178181 return RestApiEngine ;
179182 }
183+
180184 // ----------------------- ---------------- -------------------------------------------
185+ private _fixRecords ( allRecords : Array < any > ) {
186+ allRecords . forEach ( record => {
187+ Object . keys ( record ) . forEach ( key => {
188+ if ( record [ key ] === '#N/A' ) {
189+ record [ key ] = null ;
190+ }
191+ } ) ;
192+ } ) ;
193+ }
181194
182195
183196
0 commit comments