Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cityssm/node-dynamics-gp
Read only inquiries into Microsoft Dynamics GP with a SQL Server connection.
https://github.com/cityssm/node-dynamics-gp
dynamics-gp microsoft-dynamics microsoft-dynamics-gp
Last synced: 27 days ago
JSON representation
Read only inquiries into Microsoft Dynamics GP with a SQL Server connection.
- Host: GitHub
- URL: https://github.com/cityssm/node-dynamics-gp
- Owner: cityssm
- License: mit
- Created: 2023-03-01T18:07:37.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-11-13T18:21:33.000Z (about 2 months ago)
- Last Synced: 2024-11-13T18:38:15.896Z (about 2 months ago)
- Topics: dynamics-gp, microsoft-dynamics, microsoft-dynamics-gp
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/@cityssm/dynamics-gp
- Size: 414 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README
# Node Dynamics GP
[![npm (scoped)](https://img.shields.io/npm/v/@cityssm/dynamics-gp)](https://www.npmjs.com/package/@cityssm/dynamics-gp)
[![Maintainability](https://api.codeclimate.com/v1/badges/b850568e64485c966d4a/maintainability)](https://codeclimate.com/github/cityssm/node-dynamics-gp/maintainability)
[![codecov](https://codecov.io/gh/cityssm/node-dynamics-gp/branch/main/graph/badge.svg?token=K2D0W6D1LN)](https://codecov.io/gh/cityssm/node-dynamics-gp)
[![Build Status](https://github.com/cityssm/node-dynamics-gp/actions/workflows/coverage.yml/badge.svg)](https://github.com/cityssm/node-dynamics-gp/actions/workflows/coverage.yml)
[![DeepSource](https://app.deepsource.com/gh/cityssm/node-dynamics-gp.svg/?label=active+issues&show_trend=true&token=8upUaCFLWbSvxfWIhbeiD2_E)](https://app.deepsource.com/gh/cityssm/node-dynamics-gp/)_Read only inquiries into Microsoft Dynamics GP using a SQL Server connection._
The purpose of this project to make it easy to incorporate **on prem** Dynamics GP data
into custom business applications. It connects to the underlying SQL Server directly,
and returns data in easy-to-use Javascript objects.Built to validate transactions linked from the City of Sault Ste. Marie's
[Lot Occupancy System](https://github.com/cityssm/lot-occupancy-system)._Tested with Microsoft Dynamics GP 2018._
## Features
- 🙌 **TypeScript types.** Easy to get started.
- 🙌 **Temporary caching** to reduce database hits and function return times.
- 🙌 **All whitespace trimmed** from the end of the `char` data. Strings are ready to use!
- 🙌 **Consistent and clear field names.** For example:
- `PRIMVNDR` becomes `primaryVendorId`
- `PHNUMBR2` becomes `phoneNumber2`
- `PHONE3` becomes `phoneNumber3`### Good Use Cases
- ✔️ Validating a corresponding receipt number was properly entered.
- ✔️ Displaying the status of an outstanding invoice in a business application.
- ✔️ Populating contact fields based on customer information.
### Not So Good Use Cases
- ❌ Reporting on all of the inventory items at a specific location.
_Use a SmartList instead._- ❌ Modifying Dynamics GP data.
_Use Dynamics GP._## Installation
```sh
npm install @cityssm/dynamics-gp
```## Dynamics GP Functions
```javascript
import { DynamicsGP } from '@cityssm/dynamics-gp'const gp = new DynamicsGP(mssqlConfig)
const account = await gp.getAccountByAccountIndex(123)
const customer = await gp.getCustomerByCustomerNumber('CUST0001')
const invoice = await gp.getInvoiceByInvoiceNumber('INV00000002')
const item = await gp.getItemByItemNumber('01-0001-00001')
const vendor = await gp.getVendorByVendorId('VEND002')
```## Diamond-Specific GP Functions
The functions below query Dynamics GP tables with extensions from
[Diamond Municipal Solutions](https://diamondmunicipal.com/).```javascript
const cashReceipt = await gp.getDiamondCashReceiptByDocumentNumber('123456')const invoice = await gp.getDiamondExtendedInvoiceByInvoiceNumber(invoiceNumber)
```## Contributions
Is a field you need missing? An entire table?
[Create an issue](https://github.com/cityssm/node-dynamics-gp/issues) with your request,
or better yet, [submit a pull request](https://github.com/cityssm/node-dynamics-gp/pulls)
implementing the feature you need!