In SmartClient release 6.5.1 in some cases a RestDataSource with operationBindings' dataProtocol set to 'postMessage' can cause a JS error when performing operations.
This patch will avoid this error.
This patch will avoid this error.
Code:
//---------------------------------------------------------------------------- // Isomorphic SmartClient 6.5.1 patch // Purpose: Fix for a case where REST dataSources could experience JS Errors // if dataProtocol was set to 'postMessage' for some operations. // // Applies to SmartClient 6.5.1 build only //---------------------------------------------------------------------------- if (window.isc && isc.version.startsWith("6.5.1/") ){ if (isc.RestDataSource) { isc.RestDataSource.addProperties({ transformRequest:function (_1) { var _2 = this.getDataProtocol(_1); if (_2 == "postMessage") { if (this.dataFormat == "json") { this.logWarn("DataSource dataProtocol specified for operation as \"postMessage\". Data will be sent to the server as a serialized xml message even though dataFormat is set to \"json\""); } var _3 = {dataSource: this.getID(), operationType: _1.operationType, operationID: _1.operationID, startRow: _1.startRow, endRow: _1.endRow, sortBy: _1.sortBy, textMatchStyle: _1.textMatchStyle}; var _4 = isc.DataSource.create({fields: [{name: "data", multiple: true, type: this.getID()}, {name: "oldValues", type: this.getID()}]}); _3.data = _1.data; _3.oldValues = _1.oldValues; return _4.xmlSerialize(_3, null, null, "request"); } else { if (_2 != "getParams" && _2 != "postParams") { this.logWarn("RestDataSource operation:" + _1.operationID + ", of type " + _1.operationType + " has dataProtocol specified as '" + _2 + "'. Supported protocols are 'postParams', 'getParams' " + "and 'postMessage' only. Defaulting to 'getParams'."); _1.dataProtocol = "getParams"; } var _3 = isc.addProperties({}, _1.data, _1.params); if (this.sendMetaData) { if (!this.parameterNameMap) { var _5 = {}; _5[this.metaDataPrefix + "operationType"] = "operationType"; _5[this.metaDataPrefix + "operationID"] = "operationID"; _5[this.metaDataPrefix + "startRow"] = "startRow"; _5[this.metaDataPrefix + "endRow"] = "endRow"; _5[this.metaDataPrefix + "sortBy"] = "sortBy"; _5[this.metaDataPrefix + "textMatchStyle"] = "textMatchStyle"; _5[this.metaDataPrefix + "oldValues"] = "oldValues"; this.parameterNameMap = _5; } for (var _6 in this.parameterNameMap) { var _7 = _1[this.parameterNameMap[_6]]; if (_7 != null) { _3[_6] = _7; } } _3[this.metaDataPrefix + "dataSource"] = this.getID(); } return _3; } } }); } } else if (window.isc) { isc.Log.logWarn("Patch for SmartClient 6.5.1 build included in this application. " + "You are currently running SmartClient verion '"+ isc.version + "'. This patch is not compatible with this build and will have no effect. " + "It should be removed from your application source."); } // End of patch // ------------