Yes that’s what I did, still generates a js file full of “__namespace”.
I opened the Project Service Builder
I removed the DataAbstract RODL
I re-added the DataAbstract RODL
The path of the RODL I used is : $(Data Abstract for Delphi)\Source\DataAbstract4.rodl
I clicked on CodeGen - JavaScript - Generate RemObjects SDK for JavaScript Interface
I still got the warning “Code Generation” : “Used RODL for DataAbstract could not be loaded”.
This is the generated code :
//----------------------------------------------------------------------------//
// This unit was automatically generated by the RemObjects SDK after reading //
// the RODL file associated with this project . //
// //
// Do not modify this unit manually, or your changes will be lost when this //
// unit is regenerated the next time you compile the project. //
//----------------------------------------------------------------------------//
/* This codegen depends on RemObjectsSDK.js
* Usage:
* var Channel = new RemObjects.SDK.HTTPClientChannel("http://localhost:8099/JSON");
* var Message = new RemObjects.SDK.JSONMessage();
* var Service = new NewService(Channel, Message);
* Service.Sum(1, 2,
* function(result) {
* alert(result);
* },
* function(msg) {alert(msg.getErrorMessage())}
* );
*
*/
__namespace = this;
if ("VCLApplication4" != "") {
var parts = "VCLApplication4".split(".");
var current = this;
for (var i = 0; i < parts.length; i++) {
current[parts[i]] = current[parts[i]] || {};
current = current[parts[i]];
};
__namespace = current;
};
// Struct: TTerm
__namespace.TTerm = function TTerm() {
this.Beginning = {dataType : "DateTime", value : null};
this.Ending = {dataType : "DateTime", value : null};
};
__namespace.TTerm.prototype = new RemObjects.SDK.ROStructType();
__namespace.TTerm.prototype.constructor = __namespace.TTerm;
RemObjects.SDK.RTTI["TTerm"] = __namespace.TTerm;
// Service: LoginService
__namespace.LoginService = function LoginService(__channel, __message, __service_name) {
RemObjects.SDK.ROService.call(this, __channel, __message, __service_name);
this.fServiceName = this.fServiceName || __service_name || "LoginService";
};
__namespace.LoginService.prototype = new __namespace.SimpleLoginService();
// Service: DataService
__namespace.DataService = function DataService(__channel, __message, __service_name) {
RemObjects.SDK.ROService.call(this, __channel, __message, __service_name);
this.fServiceName = this.fServiceName || __service_name || "DataService";
};
__namespace.DataService.prototype = new __namespace.DataAbstractService();
// Service: TermService
__namespace.TermService = function TermService(__channel, __message, __service_name) {
RemObjects.SDK.ROService.call(this, __channel, __message, __service_name);
this.fServiceName = this.fServiceName || __service_name || "TermService";
};
__namespace.TermService.prototype.ApplicationTerm = function(
Term,
__success, __error) {
try {
var msg = this.fMessage.clone();
msg.initialize(this.fServiceName, "ApplicationTerm");
msg.write("Term", "TTerm", Term);
msg.finalize();
this.fChannel.dispatch(msg, function (__message) {
var __Term = __message.read("Term", "TTerm");
__success(
__Term
);
}, __error);
} catch (e) {
__error(msg, e);
};
};
__namespace.TermService.prototype.UserTerm = function(
Term,
__success, __error) {
try {
var msg = this.fMessage.clone();
msg.initialize(this.fServiceName, "UserTerm");
msg.write("Term", "TTerm", Term);
msg.finalize();
this.fChannel.dispatch(msg, function (__message) {
var __Term = __message.read("Term", "TTerm");
__success(
__Term
);
}, __error);
} catch (e) {
__error(msg, e);
};
};
In my index.html file I have :
// R:/RemObjects SDK for JavaScript/Source/RemObjectsSDK.js
<script src="vendor/data-abstract/RemObjectsSDK.js" type="text/javascript"></script>
// R:/Data Abstract for JavaScript/Source/DataAbstract.js
<script src="vendor/data-abstract/DataAbstract.js" type="text/javascript"></script>
// R:/Data Abstract for JavaScript/Source/DataAbstract4_Intf.js
<script src="vendor/data-abstract/DataAbstract4_intf.js" type="text/javascript"></script>
// Generated code
<script src="vendor/data-abstract/VCLApplication4.js" type="text/javascript"></script>