getLogin(database::String, username::String,
password::String, validdata::Boolean=False)::Object |
Functions: getLogin_amf, getLogin_json
Login rights control. Successful login
additional information is available.
database:
an NAS alias set for a database
username, password:
valid username and password for the database
The result value is a validator object.
Examples:
ActionScript and
RemoteObject:
var channel:AMFChannel = new AMFChannel("amf-channel", "http://127.0.0.1:8000/nerva2py/npi/call/amfrpc3");
var channels:ChannelSet = new ChannelSet(); channels.addChannel(channel);
var ro:RemoteObject = new RemoteObject("amfrpc3");
ro.destination="default"; ro.concurrency = "multiple"; ro.showBusyCursor = true; ro.channelSet = channels;
var op:AbstractOperation = ro.getOperation('getLogin_amf');
op.addEventListener(ResultEvent.RESULT, getLogin_amf); op.addEventListener(FaultEvent.FAULT, connectFault);
op.send("demo", "admin", null, true);
private function getLogin_amf(event:Event):void {if (ResultEvent(event).result["valid"]== true) {}}
private function connectFault(event:FaultEvent):void {}
Python and PyAMF:
service = RemotingService("http://127.0.0.1:8000/nerva2py/npi/call/amfrpc3").getService("default")
login = service.getLogin_amf("demo", "admin", None, True)
if login["valid"]==True:
pass
Javascript and JSON-RPC:
data = {"id":1, "method":"getLogin_json", "jsonrpc":"2.0",
"params":{"database":"demo","username":"demo","password":""}}
$.ajax({
type: "post",
url: "http://127.0.0.1:8000/npi/call/jsonrpc2/",
data: JSON.stringify(data),
contentType: "application/json",
success: function(response){
response = JSON.parse(response);
if ("error" in response) {
alert(response.error.message);
} else {
console.log(response.result);}}
error: function(jqXHR, textStatus, errorThrown ) {
alert("POST ERROR");}
});
|
callFunction(login::Object, functionName::String,
paramList::Any type)::Any type |
Functions: callFunction_amf, callFunction_json
It calls for the functionName server-side function. The
paramList parameters are passed.
The result for the called function result.
Examples:
ActionScript and
RemoteObject:
ro = (...)
var op:AbstractOperation = ro.getOperation('callFunction_amf');
op.addEventListener(ResultEvent.RESULT, getCustnumber); op.addEventListener(FaultEvent.FAULT, connectFault);
op.send({database: "demo", username: "admin", password: null}, "nextNumber", {id:"custnumber", step:true});
Python and PyAMF:
service = RemotingService("http://127.0.0.1:8000/nerva2py/npi/call/amfrpc3").getService("default")
result = service.callFunction_amf({"database": "demo", "username": "admin", "password": None},
"nextNumber", {"id":"customer_number", "step":False})
Javascript and JSON-RPC:
data = {"id":11, "method":"callFunction_json", "jsonrpc":"2.0",
"params":{
"login":{"database":"demo", "username":"admin", "password":""},
"functionName":"nextNumber",
"paramList":{"id":"customer_number", "step":False}}};
$.ajax({...});
|
executeSql(login::Object, sqlKey::String, sqlStr::String,
paramList::Array)::Boolean |
Functions: executeSql_amf, executeSql_json
Execute the sqlStr statement on the database. If sqlKey
value is not null, the statement is replaced with stored in the NAS login.appl table.
paramList:
the list of param objects
True if the SQL statement runs successfully.
Examples:
Close all customer order between 2011.01.01 and 2011.02.01, in EUR:
sqlStr = "update trans set closed=1
where deleted=0 and transtype =(select id from groups where groupvalue='order')
and direction =(select id from groups where groupvalue='out')
and curr=@curr and transdate>=@from_date and transdate<@to_date"
ActionScript and
RemoteObject:
ro = (...)
var paramList:ArrayCollection = new ArrayCollection;
paramList.addItem({name:"@curr", value:"EUR", wheretype:"in", type:"string"});
paramList.addItem({name:"@from_date", value:"2011-01-01", wheretype:"in", type:"date"});
paramList.addItem({name:"@to_date", value:"2011-02-01", wheretype:"in", type:"date"});
var op:AbstractOperation = ro.getOperation('executeSql_amf');
op.addEventListener(ResultEvent.RESULT, closedResult); op.addEventListener(FaultEvent.FAULT, connectFault);
op.send({database: "demo", username: "admin", password: null}, null, sqlStr, paramList);
Python and PyAMF:
service = RemotingService("http://127.0.0.1:8000/nerva2py/npi/call/amfrpc3").getService("default")
paramList = []
paramList.append({"name":"@curr", "value":"EUR", "wheretype":"in", "type":"string"})
paramList.append({"name":"@from_date", "value":"2011-01-01", "wheretype":"in", "type":"date"})
paramList.append({"name":"@to_date", "value":"2011-02-01", "wheretype":"in", "type":"date"})
result = service.executeSql_amf({"database": "demo", "username": "admin", "password": None},
null, sqlStr, paramList)
Javascript and JSON-RPC:
data = {"id":5, "method":"executeSql_json", "jsonrpc":"2.0",
"params":{
"login":{"database":"demo", "username":"admin", "password":""},
"sqlKey":"", "sqlStr":sqlStr,
"paramList":[
{"name":"@curr", "value":"EUR", "wheretype":"in", "type":"string"},
{"name":"@from_date", "value":"2011-01-01", "wheretype":"in", "type":"date"},
{"name":"@to_date", "value":"2011-02-01", "wheretype":"in", "type":"date"}]};
$.ajax({...});
|
loadView(login::Object, sqlKey::String, sqlStr::String,
whereStr::String, havingStr::String,
paramList::Array,
simpleList::Boolean=False,
orderStr::String="")::Array |
Functions: loadView_amf, loadView_json
Loads the sqlStr query from the database. If sqlKey
value is not null, the query is replaced with stored in the NAS login.appl table.
whereStr:
the valid sql where filter string
havingStr:
the valid sql having filter string
paramList:
the list of param objects
simpleList:
Optional. If set to False, the results will be converted to a sequence of dictionaries keyed with the table field names.
Default value: False.
orderStr:
Optional. The valid sql orderby string. Default value: ""
The result for the execute query result.
Examples:
All customer invoices from 2011.01.01, between 0 and 1 000 000, in EUR, order by duedate:
sqlStr = "select t.transnumber, t.transdate
from trans t
inner join groups tt on t.transtype=tt.id and tt.groupvalue='invoice'
inner join groups dt on t.direction=dt.id and dt.groupvalue='out'
where t.deleted=0 @where_str
and t.id in(select trans_id from item where deleted=0 group by trans_id having @having_str)
order by @orderby_str"
whereStr="and t.curr=@curr and t.transdate>@from_date"
havingStr="sum(amount)>=@from_amount and sum(amount)<=@to_amount"
orderStr="duedate"
ActionScript and
RemoteObject:
ro = (...)
var paramList:ArrayCollection = new ArrayCollection;
paramList.addItem({name:"@curr", value:"EUR", wheretype:"where", type:"string"});
paramList.addItem({name:"@from_date", value:"2011-01-01", wheretype:"where", type:"date"});
paramList.addItem({name:"@from_amount", value:0, wheretype:"having", type:"number"});
paramList.addItem({name:"@to_amount", value:1000000, wheretype:"having", type:"number"});
var op:AbstractOperation = ro.getOperation('loadView_amf');
op.addEventListener(ResultEvent.RESULT, loadResult); op.addEventListener(FaultEvent.FAULT, connectFault);
op.send({database: "demo", username: "admin", password: null},
null, sqlStr, whereStr, havingStr, paramList, False, orderStr);
Python and PyAMF:
service = RemotingService("http://127.0.0.1:8000/nerva2py/npi/call/amfrpc3").getService("default")
paramList = []
paramList.append({"name":"@curr", "value":"EUR", "wheretype":"where", "type":"string"})
paramList.append({"name":"@from_date", "value":"2011-01-01", "wheretype":"where", "type":"date"})
paramList.append({"name":"@from_amount", "value":0, "wheretype":"having", "type":"number"})
paramList.append({"name":"@to_amount", "value":1000000, "wheretype":"having", "type":"number"})
result = service.loadView_amf({"database": "demo", "username": "admin", "password": None},
null, sqlStr, whereStr, havingStr, paramList, False, orderStr)
Javascript and JSON-RPC:
data = {"id":2, "method":"loadView_json", "jsonrpc":"2.0",
"params":{
"login":{"database":"demo", "username":"admin", "password":""},
"sqlKey":"", "sqlStr":sqlStr, "whereStr":whereStr, "havingStr":havingStr, "orderStr":orderStr, simpleList:false,
"paramList":[
{"name":"@curr", "value":"EUR", "wheretype":"where", "type":"string"},
{"name":"@from_date", "value":"2011-01-01", "wheretype":"where", "type":"date"},
{"name":"@from_amount", "value":0, "wheretype":"having", "type":"number"},
{"name":"@to_amount", "value":1000000, "wheretype":"having", "type":"number"}]};
$.ajax({...});
|
loadTable(login::Object, classAlias::String, filterStr::String,
orderStr::String)::Array |
Functions: loadTable_amf, loadTable_json
Loads data from a database table.
classAlias:
a registered class name
filterStr:
the valid sql having where string
orderStr:
Optional. The valid sql orderby string. Default value: ""
The result a Typed Object (class instance).
Examples:
ActionScript and
RemoteObject:
ro = (...)
var op:AbstractOperation = ro.getOperation('loadTable_amf');
op.addEventListener(ResultEvent.RESULT, getCustomer); op.addEventListener(FaultEvent.FAULT, connectFault);
op.send({database: "demo", username: "admin", password: null}, "models.customer", "id=1", null);
Python and PyAMF:
service = RemotingService("http://127.0.0.1:8000/nerva2py/npi/call/amfrpc3").getService("default")
result = service.loadTable_amf({"database": "demo", "username": "admin", "password": None},
"models.customer", "id=1", None)
Javascript and JSON-RPC:
data = {"id":3, "method":"loadTable_json", "jsonrpc":"2.0",
"params":{
"login":{"database":"demo", "username":"admin", "password":""},
"classAlias":"customer", "filterStr":"id=1", "orderStr":""};
$.ajax({...});
|
loadDataSet(login::Object, dataSetInfo::Array)::Array |
In a group, any number can be sent loadTable, loadView, executeSql and callFunction requests.
dataSetInfo:
the list of recordSetInfo objects
Functions: loadDataSet_amf, loadDataSet_json
The result value a list of infoSet objects.
Examples:
ActionScript and
RemoteObject:
ro = (...)
var dataSetInfo:ArrayCollection = new ArrayCollection;
var paramList:ArrayCollection;
dataSetInfo.list.addItem({infoName:"groups", infoType:"table", classAlias:"models.groups",
filterStr:"deleted=0 and groupname in ('customer', 'nervatype', 'fieldtype', 'logstate', 'custtype')",
orderStr:"groupname, groupvalue" });
dataSetInfo.list.addItem({infoName:"deffield", infoType:"table", classAlias:"models.deffield",
filterStr:"deleted=0 and nervatype = (select id from groups where groupname = 'nervatype' and groupvalue = 'customer')",
orderStr:"description" });
paramList = new ArrayCollection;
paramList.addItem({name:"@customer_id", value:1, wheretype:"in", type:"integer"});
dataSetInfo.list.addItem({infoName:"calendar_view", infoType:"view", sqlKey:"fCustomer_getCalendarView",
sqlStr:null, whereStr:"", havingStr:"", paramList:paramList});
dataSetInfo.list.addItem({infoName:"custnumber", infoType:"function", functionName:"nextNumber",
paramList:{id:"custnumber", step:false}});
var op:AbstractOperation = ro.getOperation('loadDataSet_amf');
op.addEventListener(ResultEvent.RESULT, getDataSet); op.addEventListener(FaultEvent.FAULT, connectFault);
op.send({database: "demo", username: "admin", password: null}, dataSetInfo);
Python and PyAMF:
service = RemotingService("http://127.0.0.1:8000/nerva2py/npi/call/amfrpc3").getService("default")
dataSetInfo = []
dataSetInfo.append({"infoName":"groups", "infoType":"table", "classAlias":"models.groups",
"filterStr":"deleted=0 and groupname in ('customer', 'nervatype', 'fieldtype', 'logstate', 'custtype')",
"orderStr":"groupname, groupvalue" })
dataSetInfo.append({"infoName":"deffield", "infoType":"table", "classAlias":"models.deffield",
"filterStr":"deleted=0 and nervatype = (select id from groups where groupname = 'nervatype' and groupvalue = 'customer')",
"orderStr":"description" })
paramList = []
paramList.append({"name":"@customer_id", "value":1, "wheretype":"in", "type":"integer"})
dataSetInfo.append({"infoName":"calendar_view", "infoType":"view", "sqlKey":"fCustomer_getCalendarView",
"sqlStr":null, "whereStr":"", "havingStr":"", "paramList":paramList})
dataSetInfo.append({"infoName":"custnumber", "infoType":"function", "functionName":"nextNumber",
"paramList":{id:"custnumber", step:false}})
result = service.loadDataSet_amf({"database": "demo", "username": "admin", "password": None}, dataSetInfo)
Javascript and JSON-RPC:
data = {"id":2, "method":"loadDataSet_json", "jsonrpc":"2.0",
"params":{
"login":{"database":"demo", "username":"admin", "password":""},
"dataSetInfo":[
{"infoName":"groups", "infoType":"table", "classAlias":"models.groups",
"filterStr":"deleted=0 and groupname in ('customer', 'nervatype', 'fieldtype', 'logstate', 'custtype')",
"orderStr":"groupname, groupvalue"},
{"infoName":"deffield", "infoType":"table", "classAlias":"models.deffield",
"filterStr":"deleted=0 and nervatype = (select id from groups where groupname = 'nervatype' and groupvalue = 'customer')",
"orderStr":"description"},
{"infoName":"calendar_view", "infoType":"view", "sqlKey":"fCustomer_getCalendarView",
"sqlStr":null, "whereStr":"", "havingStr":"",
"paramList":[{"name":"@customer_id", "value":1, "wheretype":"in", "type":"integer"}]},
{"infoName":"custnumber", "infoType":"function", "functionName":"nextNumber",
"paramList":{id:"custnumber", step:false}}
]}};
$.ajax({...});
|
saveRecord(login
::Object, record::Typed Object,
validate::Boolean=False)::Typed Object |
Functions: saveRecord_amf, saveRecord_json
Insert or update a data row. A new record, set the returned id.
validate: if True, it calls the DAL validators for the fields before performing the update or insert
The result value of the input record object.
|
saveRecordSet(login
::Object, recordSet::Array,
validate::Boolean=False)::Array |
Functions: saveRecordSet_amf, saveRecordSet_json
Insert or update multiple rows of data.
recordSet:
the list of record objects.
A new record, set the returned id.
validate: if True, it calls the DAL validators for the fields before performing the update or insert
The result value of the input recordSet list.
|
deleteRecord(login
::Object, record::Typed Object)::Boolean |
Functions: deleteRecord_amf, deleteRecord_json
Delete a data row.
True value if the deletion is successful.
|
deleteRecordSet(login
::Object, recordSet::Array)::Boolean |
Functions: deleteRecordSet_amf, deleteRecordSet_json
Delete multiple rows of data.
recordSet:
the list of record objects.
True value if the all deletion is successful.
|
saveDataSet(login::Object, dataSetInfo::Array)::Array |
Functions: saveDataSet_amf, saveDataSet_json
In a group, any number can be sent saveRecordSet, deleteRecordSet and callFunction requests.
dataSetInfo:
the list of updateSetInfo objects
The result value of the input dataSetInfo list (with returned new id).
|