npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

node-red-contrib-saprfc

v1.2.6

Published

A node-red node wrapper for node-rfc (SAP Net Weaver Remote Function Call SDK Client).

Readme

node-red-contrib-saprfc

Currently in Beta state.

Node-Red (http://nodered.org) nodes for communicating with SAP via node-rfc (https://github.com/SAP/node-rfc).

There are three nodes included:

  • call - used to make a remote function or BAPI call.
  • read table - query a table. a wrapper for RFC_READ_TABLE which allows you to query a table with conditions and returns parsed rows.
  • field list - gets the field list of a table. This is a wrapper for RFC_READ_TABLE which only gets the field list.

image

Install

Woah cowboy...

This package is a wrapper for node-rfc, which relies on the SAP NW RFC SDK. Make sure you have a working install of node-rfc before continuing.

Okay, I have a working node-rfc install

Run the following command after you have done a global install of Node-RED & node-rfc

npm install -g node-red-contrib-saprfc

You will need the connection parameters for your SAP system, which can usually be obtained from your SAP GUI Logon.

Usage

These nodes will appear in their own "sapRFC" catagory on the Node-Red pallet.

Config

After adding the first node, you have to configure the connection to your SAP system.

This node sets up a node-rfc connection pool and an async queue which limits the amount of simultaneous connections to 4. In testing, there does not seem to be a performance gain for using more than 4 connections. The queue is processed first in first out.

Field List

The field list node is the easiest to use. It is a wrapper around RFC_READ_TABLE - you only need to enter the table name for which you would like to get the list of fields and wire it to a debug node to inspect the output.

Use the condense flag to convert the standard output from the RFC to a simple object where each property is the technical name of the table and it's value is the display name.

Read Table

The read table node is a wrapper around RFC_READ_TABLE. It converts the result into a native Array of JS Objects, each representing one result row.

To use the node, enter the table name and click the Fetch Fields button to get all the fields of the table. Then select the fields you wish to include in the output. You will also want to use a function node pass a structure with additional parameters, such as ROWCOUNT, OPTIONS, etc. Here is an example function node which builds the import structure:

var date = new Date();

msg.payload = {
  OPTIONS: ["ERSDA >= '"+date.getFullYear()+""+("0" + (date.getMonth() - 2)).slice(-2)+""+("0" + date.getDate()).slice(-2)+"'"],
  ROWCOUNT: 10
}
return msg;

You could also specify the table and field list in the input payload instead of configuring them in the GUI:

msg.payload = {
  QUERY_TABLE: "MARA",
  FIELDS: ["MATNR","ERSDA","ERNAM"],
  OPTIONS: ["ERSDA >= '"+date.getFullYear()+""+("0" + (date.getMonth() - 2)).slice(-2)+""+("0" + date.getDate()).slice(-2)+"'"],
  ROWCOUNT: 10
}

Call

The call node allows you to call any SAP RFC you would like. Just like the read table node, you must use a function node to build and pass the import parameters.

This example shows how you would build an import structure for BAPI_USER_CHANGE to update a user's email address:

msg.payload = {
  USERNAME: "SOME_SAP_USER",
  ADDRESS: {
    E_MAIL: "[email protected]"
  },
  ADDRESSX: {
    E_MAIL: "X"
  }
}
return msg;

Catching Errors

If an error is encountered by any RFC, an error is throw. In order to see the full content of this error, drag a catch node into your flow and attach it to a debug node. The debug node must be configured to output msg.sapError.

image

Disclaimer

Use these programs at your own risk.

Author

Paul Wieland, https://github.com/PaulWieland

Feedback and Support

Submit any issues here on github, or ping me @Paul W on the node-red slack channel.