@adempiere/grpc-data-client

    2.5.2 • Public • Published

    ADempiere Data Client for gRPC

    npm version License Downloads Dependencies

    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

    Install

    npm i @adempiere/grpc-data-client

    DownloadsWeekly Downloads

    0

    Version

    2.5.2

    License

    GPL-3.0-or-later

    Unpacked Size

    895 kB

    Total Files

    15

    Last publish

    Collaborators

    • elsio15
    • erpya
    • yamelsenih
    • adempiere-develop