@adempiere/grpc-data-client

ADempiere Data Client write in Javascript for gRPC service


Keywords
compiere, adempiere, erp, grpc, grpc-web, java, web, data
License
CNRI-Python-GPL-Compatible
Install
npm install @adempiere/grpc-data-client@2.4.6

Documentation

ADempiere Data Client for gRPC

npm version License Downloads

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
# 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:

protoc proto/businessdata.proto \
--js_out=import_style=commonjs:src/grpc \
--grpc-web_out=import_style=commonjs,mode=grpcwebtext:src/grpc

The result is generated on: src/grpc folder