@adempiere/grpc-data-client 中文文档教程
ADempiere Data Client for gRPC
ADempiere Data Client 用 Javascript 编写 gRPC 服务,用它来连接 ADempiere-gRPC-Server。
Requirements
Using it
# installing via NPM
npm i @adempiere/grpc-data-client --save
# installing via Yarn
yarn add @adempiere/grpc-data-client
A Example
Declare Data
const Data = require('@adempiere/grpc-data-client');
let data = new Data(GRPC_HOST, 'Session UUID');
Declare Data with specific language
const Data = require('@adempiere/grpc-data-client');
let data = new Data(GRPC_HOST, 'Session UUID', 'es_VE');
Request a simple Object based on Table and UUID
// Request a single Object
data.getEntity('AD_Element', '8cc49692-fb40-11e8-a479-7a0060f0aa01')
.then(valueObject => {
console.log("Object with single UUID");
// Value
let map = valueObject.getValuesMap();
console.log("ColumnName: " + map.get("ColumnName").getStringvalue());
console.log("Name: " + map.get("Name").getStringvalue());
console.log("Display Type: " + map.get("AD_Reference_ID").getIntvalue());
console.log("Value Type: " + map.get("AD_Reference_ID").getValuetype());
})
.catch(err => console.log("Error: " + err.message));
Output
Object with single UUID
ColumnName: HR_JobOpening_ID
Name: Job Openings
Display Type: 13
Value Type: 0
Request a simple Object based on Criteria for search
// Request a Object from criteria
let criteria = data.getCriteria('C_BPartner');
criteria.setWhereclause("AD_Client_ID = 11");
data.requestObjectFromCriteria(criteria)
.then(valueObject => {
console.log("Object with criteria C_BPartner table");
// Value
let map = valueObject.getValuesMap();
console.log("Value: " + map.get("Value").getStringvalue());
console.log("Name: " + map.get("Name").getStringvalue());
if(map.get("Name2")) {
console.log("Name2: " + map.get("Name2").getStringvalue());
}
if(map.get("Description")) {
console.log("Description: " + map.get("Description").getStringvalue());
}
console.log("IsVendor: " + map.get("IsVendor").getBooleanvalue());
console.log("IsCustomer: " + map.get("IsCustomer").getBooleanvalue());
})
.catch(err => console.log("Error: " + err.message));
Output
Object with criteria C_BPartner table
Value: GardenUser
Name: GardenUser BP
IsVendor: true
IsCustomer: true
Request a Object List from criteria (User example)
// Request a Object LIst from criteria
let criteriaForList = data.getCriteria('AD_User');
criteriaForList.setWhereclause("IsLoginUser = 'Y'");
data.requestObjectListFromCriteria(criteriaForList)
.then(valueObject => {
console.log("Request a Object List from criteria for User table");
console.log("Record Quantity: " + valueObject.getRecordcount());
// Value
for(var i = 0; i < valueObject.getRecordsList().length; i++) {
let values = valueObject.getRecordsList()[i];
let map = values.getValuesMap();
console.log("Value: " + map.get("Value").getStringvalue());
console.log("Name: " + map.get("Name").getStringvalue());
if(map.get("EMail")) {
console.log("EMail: " + map.get("EMail").getStringvalue());
}
if(map.get("Description")) {
console.log("Description: " + map.get("Description").getStringvalue());
}
}
})
.catch(err => console.log("Error: " + err.message));
Output
quest a Object List from criteria for User table
Record Quantity: 5
Value: GardenAdmin
Name: GardenAdmin
EMail: admin @ gardenworld.com
Description: GardenAdmin
Value: GardenUser
Name: GardenUser
EMail: user @ gardenworld.com
Description: GardenUser
Value: WebService
Name: WebService
Value: SuperUser
Name: SuperUser
Description: Super User with Access to all levels
Value: System
Name: System
Description: ** Do not change **
Recreate proto stub class (only for contribute to project)
对于重新创建存根类,您必须遵循:
注意:您还可以通过转到存储库目录并运行命令:
sh install-protoc.sh
安装完成后,检查版本
protoc --version
安装后只需转到源代码文件夹并运行它:
运行 Business gRPC
protoc proto/business.proto \
--js_out=import_style=commonjs:src/grpc \
--grpc-web_out=import_style=commonjs,mode=grpcwebtext:src/grpc
或运行:
sh generate-stub.sh
结果生成于:src/grpc 文件夹
business_pb.js
business_grpc_web_pb.js
ADempiere Data Client for gRPC
ADempiere Data Client write in Javascript for gRPC service, use it for connect with ADempiere-gRPC-Server.
Requirements
Using it
# installing via NPM
npm i @adempiere/grpc-data-client --save
# installing via Yarn
yarn add @adempiere/grpc-data-client
A Example
Declare Data
const Data = require('@adempiere/grpc-data-client');
let data = new Data(GRPC_HOST, 'Session UUID');
Declare Data with specific language
const Data = require('@adempiere/grpc-data-client');
let data = new Data(GRPC_HOST, 'Session UUID', 'es_VE');
Request a simple Object based on Table and UUID
// Request a single Object
data.getEntity('AD_Element', '8cc49692-fb40-11e8-a479-7a0060f0aa01')
.then(valueObject => {
console.log("Object with single UUID");
// Value
let map = valueObject.getValuesMap();
console.log("ColumnName: " + map.get("ColumnName").getStringvalue());
console.log("Name: " + map.get("Name").getStringvalue());
console.log("Display Type: " + map.get("AD_Reference_ID").getIntvalue());
console.log("Value Type: " + map.get("AD_Reference_ID").getValuetype());
})
.catch(err => console.log("Error: " + err.message));
Output
Object with single UUID
ColumnName: HR_JobOpening_ID
Name: Job Openings
Display Type: 13
Value Type: 0
Request a simple Object based on Criteria for search
// Request a Object from criteria
let criteria = data.getCriteria('C_BPartner');
criteria.setWhereclause("AD_Client_ID = 11");
data.requestObjectFromCriteria(criteria)
.then(valueObject => {
console.log("Object with criteria C_BPartner table");
// Value
let map = valueObject.getValuesMap();
console.log("Value: " + map.get("Value").getStringvalue());
console.log("Name: " + map.get("Name").getStringvalue());
if(map.get("Name2")) {
console.log("Name2: " + map.get("Name2").getStringvalue());
}
if(map.get("Description")) {
console.log("Description: " + map.get("Description").getStringvalue());
}
console.log("IsVendor: " + map.get("IsVendor").getBooleanvalue());
console.log("IsCustomer: " + map.get("IsCustomer").getBooleanvalue());
})
.catch(err => console.log("Error: " + err.message));
Output
Object with criteria C_BPartner table
Value: GardenUser
Name: GardenUser BP
IsVendor: true
IsCustomer: true
Request a Object List from criteria (User example)
// Request a Object LIst from criteria
let criteriaForList = data.getCriteria('AD_User');
criteriaForList.setWhereclause("IsLoginUser = 'Y'");
data.requestObjectListFromCriteria(criteriaForList)
.then(valueObject => {
console.log("Request a Object List from criteria for User table");
console.log("Record Quantity: " + valueObject.getRecordcount());
// Value
for(var i = 0; i < valueObject.getRecordsList().length; i++) {
let values = valueObject.getRecordsList()[i];
let map = values.getValuesMap();
console.log("Value: " + map.get("Value").getStringvalue());
console.log("Name: " + map.get("Name").getStringvalue());
if(map.get("EMail")) {
console.log("EMail: " + map.get("EMail").getStringvalue());
}
if(map.get("Description")) {
console.log("Description: " + map.get("Description").getStringvalue());
}
}
})
.catch(err => console.log("Error: " + err.message));
Output
quest a Object List from criteria for User table
Record Quantity: 5
Value: GardenAdmin
Name: GardenAdmin
EMail: admin @ gardenworld.com
Description: GardenAdmin
Value: GardenUser
Name: GardenUser
EMail: user @ gardenworld.com
Description: GardenUser
Value: WebService
Name: WebService
Value: SuperUser
Name: SuperUser
Description: Super User with Access to all levels
Value: System
Name: System
Description: ** Do not change **
Recreate proto stub class (only for contribute to project)
For recreate stub class you must have follow:
Note: You can also install protoc
and protoc-gen-grpc-web
by going to the repository directory and run the command:
sh install-protoc.sh
When installation is complete, check the version with
protoc --version
After installed it just go to source code folder an run it:
Run Business gRPC
protoc proto/business.proto \
--js_out=import_style=commonjs:src/grpc \
--grpc-web_out=import_style=commonjs,mode=grpcwebtext:src/grpc
Or run:
sh generate-stub.sh
The result is generated on: src/grpc folder
business_pb.js
business_grpc_web_pb.js
更多