@luizeduos/n8n-nodes-sankhya 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +21 -0
- package/README.md +43 -0
- package/dist/credentials/SankhyaApi.credentials.d.ts +16 -0
- package/dist/credentials/SankhyaApi.credentials.js +136 -0
- package/dist/credentials/SankhyaApi.credentials.js.map +1 -0
- package/dist/nodes/Sankhya/Sankhya.node.d.ts +5 -0
- package/dist/nodes/Sankhya/Sankhya.node.js +305 -0
- package/dist/nodes/Sankhya/Sankhya.node.js.map +1 -0
- package/dist/nodes/Sankhya/sankhya.svg +13 -0
- package/dist/nodes/SankhyaRest/SankhyaRest.node.d.ts +5 -0
- package/dist/nodes/SankhyaRest/SankhyaRest.node.js +233 -0
- package/dist/nodes/SankhyaRest/SankhyaRest.node.js.map +1 -0
- package/dist/nodes/SankhyaRest/sankhya.svg +13 -0
- package/index.js +3 -0
- package/package.json +62 -0
package/LICENSE.md
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 luizeduos
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# @luizeduos/n8n-nodes-sankhya
|
|
2
|
+
|
|
3
|
+
Nodes community do [n8n](https://n8n.io) para o **ERP Sankhya**. Cobre a API em duas camadas:
|
|
4
|
+
|
|
5
|
+
- **Sankhya (Gateway)** — camada genérica `service.sbr`: `loadRecords`, `loadRecord`, `loadView`, `DatasetSP.save`, `removeRecord`, `executeQuery` (SQL) e **Custom Service Call** (qualquer `serviceName`, incl. Comercial `CACSP.*`). Alcança qualquer entidade/serviço do ERP.
|
|
6
|
+
- **Sankhya REST** — endpoints REST `/v1` por módulo: Cadastros, Financeiro, Fiscal, Pessoal, Estoque.
|
|
7
|
+
|
|
8
|
+
## Autenticação
|
|
9
|
+
|
|
10
|
+
A credencial **Sankhya API** suporta dois fluxos (seletor) e ambiente prod/sandbox:
|
|
11
|
+
|
|
12
|
+
- **OAuth 2.0** (recomendado): `POST {base}/authenticate` com header `X-Token` + `client_id`/`client_secret` (`grant_type=client_credentials`) → JWT.
|
|
13
|
+
- **Legado**: `POST {base}/login` com headers `token`/`appkey`/`username`/`password` → `bearerToken`.
|
|
14
|
+
|
|
15
|
+
O token é gerado automaticamente (preAuthentication) e injetado como `Authorization: Bearer`.
|
|
16
|
+
|
|
17
|
+
Bases: produção `https://api.sankhya.com.br/` · sandbox `https://api.sandbox.sankhya.com.br/`.
|
|
18
|
+
|
|
19
|
+
## Build & instalação
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
cd sankhya-node
|
|
23
|
+
npm install
|
|
24
|
+
npm run build
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Instalar no n8n self-hosted via **Settings → Community Nodes → Install** → `@luizeduos/n8n-nodes-sankhya` (após publicar), ou via pasta custom montada no Docker (`npm pack` + `npm install <tgz>`).
|
|
28
|
+
|
|
29
|
+
## Uso rápido
|
|
30
|
+
|
|
31
|
+
1. Crie a credencial **Sankhya API** (escolha OAuth2 ou Legado e o ambiente).
|
|
32
|
+
2. **Gateway**: ex. *Execute Query* com um SELECT, ou *Load Records* na entidade `Parceiro`.
|
|
33
|
+
3. **REST**: ex. *Cadastros → Cidades (listar)*.
|
|
34
|
+
|
|
35
|
+
## Observações
|
|
36
|
+
|
|
37
|
+
- O gateway envia `POST` em `service.sbr` (aceito universalmente pelo Sankhya).
|
|
38
|
+
- Os endpoints REST usam path params tipados + **Query Parameters**/**Body (JSON)** genéricos — cobertura ampla sem schema campo-a-campo (enriquecível por módulo).
|
|
39
|
+
- A credencial não tem botão **Test** (depende de dados reais). Valide rodando uma operação simples.
|
|
40
|
+
|
|
41
|
+
## Licença
|
|
42
|
+
|
|
43
|
+
MIT
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { IAuthenticateGeneric, ICredentialDataDecryptedObject, ICredentialType, IHttpRequestOptions, INodeProperties } from 'n8n-workflow';
|
|
2
|
+
export declare function sankhyaBaseUrl(environment: unknown): string;
|
|
3
|
+
export declare class SankhyaApi implements ICredentialType {
|
|
4
|
+
name: string;
|
|
5
|
+
displayName: string;
|
|
6
|
+
documentationUrl: string;
|
|
7
|
+
properties: INodeProperties[];
|
|
8
|
+
preAuthentication(this: {
|
|
9
|
+
helpers: {
|
|
10
|
+
httpRequest: (options: IHttpRequestOptions) => Promise<any>;
|
|
11
|
+
};
|
|
12
|
+
}, credentials: ICredentialDataDecryptedObject): Promise<{
|
|
13
|
+
sessionToken: string;
|
|
14
|
+
}>;
|
|
15
|
+
authenticate: IAuthenticateGeneric;
|
|
16
|
+
}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SankhyaApi = void 0;
|
|
4
|
+
exports.sankhyaBaseUrl = sankhyaBaseUrl;
|
|
5
|
+
function sankhyaBaseUrl(environment) {
|
|
6
|
+
return environment === 'sandbox'
|
|
7
|
+
? 'https://api.sandbox.sankhya.com.br'
|
|
8
|
+
: 'https://api.sankhya.com.br';
|
|
9
|
+
}
|
|
10
|
+
class SankhyaApi {
|
|
11
|
+
constructor() {
|
|
12
|
+
this.name = 'sankhyaApi';
|
|
13
|
+
this.displayName = 'Sankhya API';
|
|
14
|
+
this.documentationUrl = 'https://developer.sankhya.com.br';
|
|
15
|
+
this.properties = [
|
|
16
|
+
{
|
|
17
|
+
displayName: 'Ambiente',
|
|
18
|
+
name: 'environment',
|
|
19
|
+
type: 'options',
|
|
20
|
+
options: [
|
|
21
|
+
{ name: 'Produção', value: 'production' },
|
|
22
|
+
{ name: 'Sandbox', value: 'sandbox' },
|
|
23
|
+
],
|
|
24
|
+
default: 'production',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
displayName: 'Tipo De Autenticação',
|
|
28
|
+
name: 'authType',
|
|
29
|
+
type: 'options',
|
|
30
|
+
options: [
|
|
31
|
+
{ name: 'OAuth 2.0 (recomendado)', value: 'oauth2' },
|
|
32
|
+
{ name: 'Legado (appkey + token + usuário/senha)', value: 'legacy' },
|
|
33
|
+
],
|
|
34
|
+
default: 'oauth2',
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
displayName: 'Client ID',
|
|
38
|
+
name: 'clientId',
|
|
39
|
+
type: 'string',
|
|
40
|
+
default: '',
|
|
41
|
+
displayOptions: { show: { authType: ['oauth2'] } },
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
displayName: 'Client Secret',
|
|
45
|
+
name: 'clientSecret',
|
|
46
|
+
type: 'string',
|
|
47
|
+
typeOptions: { password: true },
|
|
48
|
+
default: '',
|
|
49
|
+
displayOptions: { show: { authType: ['oauth2'] } },
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
displayName: 'Gateway Token (X-Token)',
|
|
53
|
+
name: 'gatewayToken',
|
|
54
|
+
type: 'string',
|
|
55
|
+
typeOptions: { password: true },
|
|
56
|
+
default: '',
|
|
57
|
+
description: 'Token obtido na tela "Configurações Gateway" do Sankhya Om',
|
|
58
|
+
displayOptions: { show: { authType: ['oauth2'] } },
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
displayName: 'AppKey',
|
|
62
|
+
name: 'appkey',
|
|
63
|
+
type: 'string',
|
|
64
|
+
typeOptions: { password: true },
|
|
65
|
+
default: '',
|
|
66
|
+
displayOptions: { show: { authType: ['legacy'] } },
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
displayName: 'Token',
|
|
70
|
+
name: 'token',
|
|
71
|
+
type: 'string',
|
|
72
|
+
typeOptions: { password: true },
|
|
73
|
+
default: '',
|
|
74
|
+
displayOptions: { show: { authType: ['legacy'] } },
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
displayName: 'Username',
|
|
78
|
+
name: 'username',
|
|
79
|
+
type: 'string',
|
|
80
|
+
default: '',
|
|
81
|
+
displayOptions: { show: { authType: ['legacy'] } },
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
displayName: 'Password',
|
|
85
|
+
name: 'password',
|
|
86
|
+
type: 'string',
|
|
87
|
+
typeOptions: { password: true },
|
|
88
|
+
default: '',
|
|
89
|
+
displayOptions: { show: { authType: ['legacy'] } },
|
|
90
|
+
},
|
|
91
|
+
];
|
|
92
|
+
this.authenticate = {
|
|
93
|
+
type: 'generic',
|
|
94
|
+
properties: {
|
|
95
|
+
headers: {
|
|
96
|
+
Authorization: '=Bearer {{$credentials.sessionToken}}',
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
async preAuthentication(credentials) {
|
|
102
|
+
const base = sankhyaBaseUrl(credentials.environment);
|
|
103
|
+
if (credentials.authType === 'legacy') {
|
|
104
|
+
const response = await this.helpers.httpRequest({
|
|
105
|
+
method: 'POST',
|
|
106
|
+
url: `${base}/login`,
|
|
107
|
+
headers: {
|
|
108
|
+
token: credentials.token,
|
|
109
|
+
appkey: credentials.appkey,
|
|
110
|
+
username: credentials.username,
|
|
111
|
+
password: credentials.password,
|
|
112
|
+
},
|
|
113
|
+
});
|
|
114
|
+
const parsed = typeof response === 'string' ? JSON.parse(response) : response;
|
|
115
|
+
return { sessionToken: (parsed.bearerToken || parsed.access_token) };
|
|
116
|
+
}
|
|
117
|
+
const body = new URLSearchParams({
|
|
118
|
+
client_id: String(credentials.clientId || ''),
|
|
119
|
+
client_secret: String(credentials.clientSecret || ''),
|
|
120
|
+
grant_type: 'client_credentials',
|
|
121
|
+
}).toString();
|
|
122
|
+
const response = await this.helpers.httpRequest({
|
|
123
|
+
method: 'POST',
|
|
124
|
+
url: `${base}/authenticate`,
|
|
125
|
+
headers: {
|
|
126
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
127
|
+
'X-Token': credentials.gatewayToken,
|
|
128
|
+
},
|
|
129
|
+
body,
|
|
130
|
+
});
|
|
131
|
+
const parsed = typeof response === 'string' ? JSON.parse(response) : response;
|
|
132
|
+
return { sessionToken: (parsed.access_token || parsed.bearerToken) };
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
exports.SankhyaApi = SankhyaApi;
|
|
136
|
+
//# sourceMappingURL=SankhyaApi.credentials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SankhyaApi.credentials.js","sourceRoot":"","sources":["../../credentials/SankhyaApi.credentials.ts"],"names":[],"mappings":";;;AAQA,wCAIC;AAJD,SAAgB,cAAc,CAAC,WAAoB;IAClD,OAAO,WAAW,KAAK,SAAS;QAC/B,CAAC,CAAC,oCAAoC;QACtC,CAAC,CAAC,4BAA4B,CAAC;AACjC,CAAC;AAED,MAAa,UAAU;IAAvB;QACC,SAAI,GAAG,YAAY,CAAC;QAEpB,gBAAW,GAAG,aAAa,CAAC;QAE5B,qBAAgB,GAAG,kCAAkC,CAAC;QAEtD,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,UAAU;gBACvB,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE;oBACR,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE;oBACzC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;iBACrC;gBACD,OAAO,EAAE,YAAY;aACrB;YACD;gBACC,WAAW,EAAE,sBAAsB;gBACnC,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE;oBACR,EAAE,IAAI,EAAE,yBAAyB,EAAE,KAAK,EAAE,QAAQ,EAAE;oBACpD,EAAE,IAAI,EAAE,yCAAyC,EAAE,KAAK,EAAE,QAAQ,EAAE;iBACpE;gBACD,OAAO,EAAE,QAAQ;aACjB;YAGD;gBACC,WAAW,EAAE,WAAW;gBACxB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE;aAClD;YACD;gBACC,WAAW,EAAE,eAAe;gBAC5B,IAAI,EAAE,cAAc;gBACpB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC/B,OAAO,EAAE,EAAE;gBACX,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE;aAClD;YACD;gBACC,WAAW,EAAE,yBAAyB;gBACtC,IAAI,EAAE,cAAc;gBACpB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC/B,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,4DAA4D;gBACzE,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE;aAClD;YAGD;gBACC,WAAW,EAAE,QAAQ;gBACrB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC/B,OAAO,EAAE,EAAE;gBACX,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE;aAClD;YACD;gBACC,WAAW,EAAE,OAAO;gBACpB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC/B,OAAO,EAAE,EAAE;gBACX,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE;aAClD;YACD;gBACC,WAAW,EAAE,UAAU;gBACvB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE;aAClD;YACD;gBACC,WAAW,EAAE,UAAU;gBACvB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC/B,OAAO,EAAE,EAAE;gBACX,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE;aAClD;SACD,CAAC;QA4CF,iBAAY,GAAyB;YACpC,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACX,OAAO,EAAE;oBACR,aAAa,EAAE,uCAAuC;iBACtD;aACD;SACD,CAAC;IACH,CAAC;IAjDA,KAAK,CAAC,iBAAiB,CAEtB,WAA2C;QAE3C,MAAM,IAAI,GAAG,cAAc,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAErD,IAAI,WAAW,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;gBAC/C,MAAM,EAAE,MAAM;gBACd,GAAG,EAAE,GAAG,IAAI,QAAQ;gBACpB,OAAO,EAAE;oBACR,KAAK,EAAE,WAAW,CAAC,KAAe;oBAClC,MAAM,EAAE,WAAW,CAAC,MAAgB;oBACpC,QAAQ,EAAE,WAAW,CAAC,QAAkB;oBACxC,QAAQ,EAAE,WAAW,CAAC,QAAkB;iBACxC;aACD,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC9E,OAAO,EAAE,YAAY,EAAE,CAAC,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,YAAY,CAAW,EAAE,CAAC;QAChF,CAAC;QAGD,MAAM,IAAI,GAAG,IAAI,eAAe,CAAC;YAChC,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,QAAQ,IAAI,EAAE,CAAC;YAC7C,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,YAAY,IAAI,EAAE,CAAC;YACrD,UAAU,EAAE,oBAAoB;SAChC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAEd,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;YAC/C,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,GAAG,IAAI,eAAe;YAC3B,OAAO,EAAE;gBACR,cAAc,EAAE,mCAAmC;gBACnD,SAAS,EAAE,WAAW,CAAC,YAAsB;aAC7C;YACD,IAAI;SACJ,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC9E,OAAO,EAAE,YAAY,EAAE,CAAC,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,WAAW,CAAW,EAAE,CAAC;IAChF,CAAC;CAUD;AA3ID,gCA2IC"}
|
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Sankhya = void 0;
|
|
4
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
5
|
+
function baseUrl(environment) {
|
|
6
|
+
return environment === 'sandbox'
|
|
7
|
+
? 'https://api.sandbox.sankhya.com.br'
|
|
8
|
+
: 'https://api.sankhya.com.br';
|
|
9
|
+
}
|
|
10
|
+
function parseJsonParam(raw, itemIndex, paramName) {
|
|
11
|
+
if (raw == null || raw === '')
|
|
12
|
+
return {};
|
|
13
|
+
if (typeof raw === 'object')
|
|
14
|
+
return raw;
|
|
15
|
+
try {
|
|
16
|
+
return JSON.parse(String(raw));
|
|
17
|
+
}
|
|
18
|
+
catch (e) {
|
|
19
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `JSON inválido em "${paramName}": ${e.message}`, { itemIndex });
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
class Sankhya {
|
|
23
|
+
constructor() {
|
|
24
|
+
this.description = {
|
|
25
|
+
displayName: 'Sankhya (Gateway)',
|
|
26
|
+
name: 'sankhya',
|
|
27
|
+
icon: 'file:sankhya.svg',
|
|
28
|
+
group: ['transform'],
|
|
29
|
+
version: 1,
|
|
30
|
+
subtitle: '={{$parameter["operation"]}}',
|
|
31
|
+
description: 'Camada genérica service.sbr do ERP Sankhya (loadRecords, save, query, etc.)',
|
|
32
|
+
defaults: {
|
|
33
|
+
name: 'Sankhya',
|
|
34
|
+
},
|
|
35
|
+
inputs: ['main'],
|
|
36
|
+
outputs: ['main'],
|
|
37
|
+
credentials: [
|
|
38
|
+
{
|
|
39
|
+
name: 'sankhyaApi',
|
|
40
|
+
required: true,
|
|
41
|
+
},
|
|
42
|
+
],
|
|
43
|
+
properties: [
|
|
44
|
+
{
|
|
45
|
+
displayName: 'Operação',
|
|
46
|
+
name: 'operation',
|
|
47
|
+
type: 'options',
|
|
48
|
+
noDataExpression: true,
|
|
49
|
+
options: [
|
|
50
|
+
{ name: 'Carregar Registros (loadRecords)', value: 'loadRecords', action: 'Carregar vários registros' },
|
|
51
|
+
{ name: 'Carregar Registro (loadRecord)', value: 'loadRecord', action: 'Carregar um registro' },
|
|
52
|
+
{ name: 'Carregar View (loadView)', value: 'loadView', action: 'Carregar uma view' },
|
|
53
|
+
{ name: 'Salvar Registro (DatasetSP.save)', value: 'save', action: 'Incluir ou alterar registro' },
|
|
54
|
+
{ name: 'Excluir Registro (removeRecord)', value: 'delete', action: 'Excluir registro' },
|
|
55
|
+
{ name: 'Executar Query SQL (executeQuery)', value: 'executeQuery', action: 'Executar uma query SQL' },
|
|
56
|
+
{ name: 'Chamada De Serviço Customizada', value: 'custom', action: 'Chamar qualquer serviço' },
|
|
57
|
+
],
|
|
58
|
+
default: 'loadRecords',
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
displayName: 'Módulo',
|
|
62
|
+
name: 'module',
|
|
63
|
+
type: 'options',
|
|
64
|
+
options: [
|
|
65
|
+
{ name: 'MGE (cadastros gerais)', value: 'mge' },
|
|
66
|
+
{ name: 'MGECOM (comercial)', value: 'mgecom' },
|
|
67
|
+
],
|
|
68
|
+
default: 'mge',
|
|
69
|
+
description: 'Módulo do gateway. Para serviços comerciais (CACSP.*) use MGECOM.',
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
displayName: 'Entidade',
|
|
73
|
+
name: 'entity',
|
|
74
|
+
type: 'string',
|
|
75
|
+
default: '',
|
|
76
|
+
placeholder: 'Parceiro, Produto, CabecalhoNota...',
|
|
77
|
+
required: true,
|
|
78
|
+
displayOptions: { show: { operation: ['loadRecords', 'loadRecord', 'loadView', 'save', 'delete'] } },
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
displayName: 'Campos (lista separada por vírgula)',
|
|
82
|
+
name: 'fields',
|
|
83
|
+
type: 'string',
|
|
84
|
+
default: '',
|
|
85
|
+
placeholder: 'CODPARC, NOMEPARC, CGC_CPF',
|
|
86
|
+
displayOptions: { show: { operation: ['loadRecords', 'loadRecord', 'loadView'] } },
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
displayName: 'Expressão De Critério (SQL WHERE)',
|
|
90
|
+
name: 'criteriaExpression',
|
|
91
|
+
type: 'string',
|
|
92
|
+
default: '',
|
|
93
|
+
placeholder: 'this.CODPARC = ? AND this.ATIVO = ?',
|
|
94
|
+
description: 'Use ? como placeholders preenchidos pelos parâmetros abaixo',
|
|
95
|
+
displayOptions: { show: { operation: ['loadRecords', 'loadRecord', 'loadView'] } },
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
displayName: 'Parâmetros Do Critério',
|
|
99
|
+
name: 'criteriaParameters',
|
|
100
|
+
type: 'fixedCollection',
|
|
101
|
+
typeOptions: { multipleValues: true },
|
|
102
|
+
placeholder: 'Adicionar parâmetro',
|
|
103
|
+
default: {},
|
|
104
|
+
displayOptions: { show: { operation: ['loadRecords', 'loadRecord', 'loadView'] } },
|
|
105
|
+
options: [
|
|
106
|
+
{
|
|
107
|
+
name: 'parameter',
|
|
108
|
+
displayName: 'Parâmetro',
|
|
109
|
+
values: [
|
|
110
|
+
{ displayName: 'Valor', name: 'value', type: 'string', default: '' },
|
|
111
|
+
{
|
|
112
|
+
displayName: 'Tipo',
|
|
113
|
+
name: 'type',
|
|
114
|
+
type: 'options',
|
|
115
|
+
options: [
|
|
116
|
+
{ name: 'String (S)', value: 'S' },
|
|
117
|
+
{ name: 'Integer (I)', value: 'I' },
|
|
118
|
+
{ name: 'Date (D)', value: 'D' },
|
|
119
|
+
{ name: 'Number (F)', value: 'F' },
|
|
120
|
+
],
|
|
121
|
+
default: 'S',
|
|
122
|
+
},
|
|
123
|
+
],
|
|
124
|
+
},
|
|
125
|
+
],
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
displayName: 'Incluir Campos De Apresentação',
|
|
129
|
+
name: 'includePresentationFields',
|
|
130
|
+
type: 'boolean',
|
|
131
|
+
default: false,
|
|
132
|
+
displayOptions: { show: { operation: ['loadRecords', 'loadRecord', 'loadView'] } },
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
displayName: 'Página (offsetPage)',
|
|
136
|
+
name: 'offsetPage',
|
|
137
|
+
type: 'number',
|
|
138
|
+
default: 0,
|
|
139
|
+
displayOptions: { show: { operation: ['loadRecords'] } },
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
displayName: 'Valores (JSON campo→valor)',
|
|
143
|
+
name: 'valuesJson',
|
|
144
|
+
type: 'json',
|
|
145
|
+
default: '{\n "CAMPO": "valor"\n}',
|
|
146
|
+
description: 'Objeto JSON com os campos a incluir/alterar',
|
|
147
|
+
displayOptions: { show: { operation: ['save'] } },
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
displayName: 'Chave Primária (JSON, p/ alteração)',
|
|
151
|
+
name: 'pkJsonSave',
|
|
152
|
+
type: 'json',
|
|
153
|
+
default: '',
|
|
154
|
+
placeholder: '{ "CODPROD": 123 }',
|
|
155
|
+
description: 'Se informado, faz alteração; se vazio, inclusão',
|
|
156
|
+
displayOptions: { show: { operation: ['save'] } },
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
displayName: 'Chave Primária (JSON)',
|
|
160
|
+
name: 'pkJsonDelete',
|
|
161
|
+
type: 'json',
|
|
162
|
+
default: '{\n "CODPROD": 123\n}',
|
|
163
|
+
required: true,
|
|
164
|
+
displayOptions: { show: { operation: ['delete'] } },
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
displayName: 'SQL',
|
|
168
|
+
name: 'sql',
|
|
169
|
+
type: 'string',
|
|
170
|
+
typeOptions: { rows: 4 },
|
|
171
|
+
default: '',
|
|
172
|
+
placeholder: 'SELECT CODPARC, NOMEPARC FROM TGFPAR WHERE ROWNUM <= 10',
|
|
173
|
+
required: true,
|
|
174
|
+
description: 'Somente consulta (SELECT). Inserções/exclusões não são permitidas por este serviço.',
|
|
175
|
+
displayOptions: { show: { operation: ['executeQuery'] } },
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
displayName: 'Service Name',
|
|
179
|
+
name: 'serviceName',
|
|
180
|
+
type: 'string',
|
|
181
|
+
default: '',
|
|
182
|
+
placeholder: 'CACSP.incluirNota',
|
|
183
|
+
required: true,
|
|
184
|
+
displayOptions: { show: { operation: ['custom'] } },
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
displayName: 'Request Body (JSON)',
|
|
188
|
+
name: 'requestBodyJson',
|
|
189
|
+
type: 'json',
|
|
190
|
+
default: '{\n "requestBody": {}\n}',
|
|
191
|
+
description: 'Conteúdo do corpo da requisição. Pode incluir a chave "requestBody" ou ser o requestBody diretamente.',
|
|
192
|
+
displayOptions: { show: { operation: ['custom'] } },
|
|
193
|
+
},
|
|
194
|
+
],
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
async execute() {
|
|
198
|
+
var _a;
|
|
199
|
+
const items = this.getInputData();
|
|
200
|
+
const returnData = [];
|
|
201
|
+
const credentials = await this.getCredentials('sankhyaApi');
|
|
202
|
+
const base = baseUrl(credentials.environment);
|
|
203
|
+
for (let i = 0; i < items.length; i++) {
|
|
204
|
+
try {
|
|
205
|
+
const operation = this.getNodeParameter('operation', i);
|
|
206
|
+
const module = this.getNodeParameter('module', i);
|
|
207
|
+
let serviceName = '';
|
|
208
|
+
let requestBody = {};
|
|
209
|
+
if (operation === 'loadRecords' || operation === 'loadRecord' || operation === 'loadView') {
|
|
210
|
+
serviceName =
|
|
211
|
+
operation === 'loadRecords' ? 'CRUDServiceProvider.loadRecords'
|
|
212
|
+
: operation === 'loadRecord' ? 'CRUDServiceProvider.loadRecord'
|
|
213
|
+
: 'CRUDServiceProvider.loadView';
|
|
214
|
+
const rootEntity = this.getNodeParameter('entity', i);
|
|
215
|
+
const fields = this.getNodeParameter('fields', i, '').trim();
|
|
216
|
+
const expression = this.getNodeParameter('criteriaExpression', i, '').trim();
|
|
217
|
+
const includePresentationFields = this.getNodeParameter('includePresentationFields', i) ? 'S' : 'N';
|
|
218
|
+
const params = this.getNodeParameter('criteriaParameters.parameter', i, []) || [];
|
|
219
|
+
const dataSet = {
|
|
220
|
+
rootEntity,
|
|
221
|
+
includePresentationFields,
|
|
222
|
+
entity: { fieldset: { list: fields } },
|
|
223
|
+
};
|
|
224
|
+
if (operation === 'loadRecords') {
|
|
225
|
+
dataSet.offsetPage = String(this.getNodeParameter('offsetPage', i, 0));
|
|
226
|
+
}
|
|
227
|
+
if (expression) {
|
|
228
|
+
dataSet.criteria = {
|
|
229
|
+
expression: { $: expression },
|
|
230
|
+
parameter: params.map((p) => { var _a, _b; return ({ $: String((_a = p.value) !== null && _a !== void 0 ? _a : ''), type: String((_b = p.type) !== null && _b !== void 0 ? _b : 'S') }); }),
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
requestBody = { dataSet };
|
|
234
|
+
}
|
|
235
|
+
else if (operation === 'save') {
|
|
236
|
+
serviceName = 'DatasetSP.save';
|
|
237
|
+
const entityName = this.getNodeParameter('entity', i);
|
|
238
|
+
const valuesObj = parseJsonParam.call(this, this.getNodeParameter('valuesJson', i), i, 'Valores');
|
|
239
|
+
const pkObj = parseJsonParam.call(this, this.getNodeParameter('pkJsonSave', i, ''), i, 'Chave Primária');
|
|
240
|
+
const fieldNames = Object.keys(valuesObj);
|
|
241
|
+
const values = {};
|
|
242
|
+
fieldNames.forEach((f, idx) => {
|
|
243
|
+
values[String(idx)] = valuesObj[f];
|
|
244
|
+
});
|
|
245
|
+
const record = { values };
|
|
246
|
+
if (Object.keys(pkObj).length)
|
|
247
|
+
record.pk = pkObj;
|
|
248
|
+
requestBody = {
|
|
249
|
+
entityName,
|
|
250
|
+
standAlone: false,
|
|
251
|
+
fields: fieldNames,
|
|
252
|
+
records: [record],
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
else if (operation === 'delete') {
|
|
256
|
+
serviceName = 'CRUDServiceProvider.removeRecord';
|
|
257
|
+
const entityName = this.getNodeParameter('entity', i);
|
|
258
|
+
const pkObj = parseJsonParam.call(this, this.getNodeParameter('pkJsonDelete', i), i, 'Chave Primária');
|
|
259
|
+
requestBody = {
|
|
260
|
+
entityName,
|
|
261
|
+
standAlone: false,
|
|
262
|
+
fields: [],
|
|
263
|
+
records: [{ pk: pkObj }],
|
|
264
|
+
};
|
|
265
|
+
}
|
|
266
|
+
else if (operation === 'executeQuery') {
|
|
267
|
+
serviceName = 'DbExplorerSP.executeQuery';
|
|
268
|
+
requestBody = { sql: this.getNodeParameter('sql', i) };
|
|
269
|
+
}
|
|
270
|
+
else if (operation === 'custom') {
|
|
271
|
+
serviceName = this.getNodeParameter('serviceName', i);
|
|
272
|
+
const raw = parseJsonParam.call(this, this.getNodeParameter('requestBodyJson', i, {}), i, 'Request Body');
|
|
273
|
+
requestBody = (_a = raw.requestBody) !== null && _a !== void 0 ? _a : raw;
|
|
274
|
+
}
|
|
275
|
+
else {
|
|
276
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Operação não suportada: ${operation}`, { itemIndex: i });
|
|
277
|
+
}
|
|
278
|
+
const url = `${base}/gateway/v1/${module}/service.sbr?serviceName=${encodeURIComponent(serviceName)}&outputType=json`;
|
|
279
|
+
const options = {
|
|
280
|
+
method: 'POST',
|
|
281
|
+
url,
|
|
282
|
+
headers: { 'Content-Type': 'application/json' },
|
|
283
|
+
body: { serviceName, requestBody },
|
|
284
|
+
json: true,
|
|
285
|
+
};
|
|
286
|
+
const response = await this.helpers.httpRequestWithAuthentication.call(this, 'sankhyaApi', options);
|
|
287
|
+
if (response && typeof response === 'object' && response.status !== undefined && String(response.status) === '0') {
|
|
288
|
+
const msg = String(response.statusMessage || 'Erro retornado pelo Sankhya');
|
|
289
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), msg, { itemIndex: i });
|
|
290
|
+
}
|
|
291
|
+
returnData.push({ json: response, pairedItem: { item: i } });
|
|
292
|
+
}
|
|
293
|
+
catch (error) {
|
|
294
|
+
if (this.continueOnFail()) {
|
|
295
|
+
returnData.push({ json: { error: error.message }, pairedItem: { item: i } });
|
|
296
|
+
continue;
|
|
297
|
+
}
|
|
298
|
+
throw new n8n_workflow_1.NodeApiError(this.getNode(), error, { itemIndex: i });
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
return [returnData];
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
exports.Sankhya = Sankhya;
|
|
305
|
+
//# sourceMappingURL=Sankhya.node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Sankhya.node.js","sourceRoot":"","sources":["../../../nodes/Sankhya/Sankhya.node.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<svg width="400" height="400" viewBox="0 0 400 400" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<g clip-path="url(#clip0_33_47)">
|
|
3
|
+
<path d="M0 0H400V400H0V0Z" fill="#2B3C54"/>
|
|
4
|
+
<path d="M192.641 122.02C194.184 121.93 194.002 121.704 195.143 122.378C195.284 125.696 181.799 137.396 178.109 141.626C175.489 144.601 173.202 147.853 171.286 151.323C161.963 168.226 166.691 186.894 165.254 205.223C165.027 208.119 164.467 210.515 162.625 212.88C155.936 221.464 146.68 229.453 138.959 237.177C133.452 242.264 128.516 248.069 122.819 252.937C113.452 260.941 105.988 256.505 99.5137 248.427C93.6539 240.836 89.8606 231.857 88.5027 222.364C85.8633 204.339 92.8852 186.959 103.438 172.611C122.699 146.424 160.618 126.564 192.641 122.02Z" fill="#65CB65"/>
|
|
5
|
+
<path d="M255.049 101.64C263.748 100.894 274.559 104.604 281.697 109.331C278.601 113.351 271.084 120.219 267.14 124.144L233.771 157.044C229.996 160.792 223.439 166.437 221.018 171.017C218.604 176.039 219.759 180.513 219.412 185.834C218.442 195.821 221.851 219.833 217.095 228.116C211.046 238.649 190.135 257.067 181.285 265.839L162.73 284.301C156.629 290.332 153.531 294.68 145.311 297.74C136.871 298.849 125.166 294.743 118.188 290.359C120.3 287.19 128.6 279.734 131.71 276.682L167.089 241.385C172.631 235.83 178.277 230.403 183.757 224.788C189.17 219.62 187.659 213.948 188.032 207.547C188.7 196.06 186.682 180.888 188.652 169.819C189.113 167.262 189.967 164.792 191.184 162.497C192.091 160.756 193.22 159.14 194.544 157.689C202.011 149.347 214.023 138.264 222.288 129.978L237.655 114.572C243.624 108.593 246.683 104.222 255.049 101.64Z" fill="#65CB65"/>
|
|
6
|
+
<path d="M284.739 142.626C297.738 141.911 305.163 156.519 309.13 167.17C314.488 181.554 312.02 199.761 305.03 213.303C288.986 244.383 259.531 261.832 227.481 272.824C223.764 273.938 207.132 279.223 204.777 276.921C204.614 273.893 213.686 266.759 216.04 264.229C220.353 259.593 225.227 255.341 229.398 250.493C232.635 246.803 235.361 242.695 237.503 238.278C239.738 233.724 241.21 228.834 241.859 223.804C243.023 214.738 240.577 184.606 244.715 179.581C251.1 171.831 275.92 144.79 284.739 142.626Z" fill="#65CB65"/>
|
|
7
|
+
</g>
|
|
8
|
+
<defs>
|
|
9
|
+
<clipPath id="clip0_33_47">
|
|
10
|
+
<rect width="400" height="400" rx="65" fill="white"/>
|
|
11
|
+
</clipPath>
|
|
12
|
+
</defs>
|
|
13
|
+
</svg>
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SankhyaRest = void 0;
|
|
4
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
5
|
+
function baseUrl(environment) {
|
|
6
|
+
return environment === 'sandbox'
|
|
7
|
+
? 'https://api.sandbox.sankhya.com.br'
|
|
8
|
+
: 'https://api.sankhya.com.br';
|
|
9
|
+
}
|
|
10
|
+
const ENDPOINTS = [
|
|
11
|
+
{ resource: 'cadastros', value: 'clientesList', name: 'Clientes: Listar', method: 'GET', path: '/clientes' },
|
|
12
|
+
{ resource: 'cadastros', value: 'clientesCreate', name: 'Clientes: Criar', method: 'POST', path: '/clientes', body: true },
|
|
13
|
+
{ resource: 'cadastros', value: 'clientesUpdate', name: 'Clientes: Atualizar', method: 'PUT', path: '/clientes/{id}', id: true, body: true },
|
|
14
|
+
{ resource: 'cadastros', value: 'clientesAddContato', name: 'Clientes: Adicionar Contato', method: 'POST', path: '/clientes/{id}/contatos', id: true, body: true },
|
|
15
|
+
{ resource: 'cadastros', value: 'clientesUpdateContato', name: 'Clientes: Atualizar Contato', method: 'PUT', path: '/clientes/{id}/contatos/{id2}', id: true, id2: true, body: true },
|
|
16
|
+
{ resource: 'cadastros', value: 'bairrosList', name: 'Bairros: Listar', method: 'GET', path: '/v1/bairros' },
|
|
17
|
+
{ resource: 'cadastros', value: 'cidadesList', name: 'Cidades: Listar', method: 'GET', path: '/v1/cidades' },
|
|
18
|
+
{ resource: 'cadastros', value: 'empresasList', name: 'Empresas: Listar', method: 'GET', path: '/v1/empresas' },
|
|
19
|
+
{ resource: 'cadastros', value: 'usuariosList', name: 'Usuários: Listar', method: 'GET', path: '/v1/usuarios' },
|
|
20
|
+
{ resource: 'cadastros', value: 'vendedoresList', name: 'Vendedores: Listar', method: 'GET', path: '/v1/vendedores' },
|
|
21
|
+
{ resource: 'cadastros', value: 'veiculosList', name: 'Veículos: Listar', method: 'GET', path: '/v1/veiculos' },
|
|
22
|
+
{ resource: 'cadastros', value: 'tiposOperacaoList', name: 'Tipos De Operação: Listar', method: 'GET', path: '/v1/tipos-operacao' },
|
|
23
|
+
{ resource: 'cadastros', value: 'regioesList', name: 'Regiões: Listar', method: 'GET', path: '/v1/regioes' },
|
|
24
|
+
{ resource: 'cadastros', value: 'projetosList', name: 'Projetos: Listar', method: 'GET', path: '/v1/projetos' },
|
|
25
|
+
{ resource: 'cadastros', value: 'naturezasList', name: 'Naturezas: Listar', method: 'GET', path: '/v1/naturezas' },
|
|
26
|
+
{ resource: 'cadastros', value: 'centrosResultadoList', name: 'Centros De Resultado: Listar', method: 'GET', path: '/v1/centros-resultado' },
|
|
27
|
+
{ resource: 'cadastros', value: 'logradourosList', name: 'Logradouros: Listar', method: 'GET', path: '/v1/logradouros' },
|
|
28
|
+
{ resource: 'financeiro', value: 'receitasList', name: 'Receitas: Listar', method: 'GET', path: '/v1/financeiros/receitas' },
|
|
29
|
+
{ resource: 'financeiro', value: 'receitasCreate', name: 'Receitas: Criar', method: 'POST', path: '/v1/financeiros/receitas', body: true },
|
|
30
|
+
{ resource: 'financeiro', value: 'receitasUpdate', name: 'Receitas: Atualizar', method: 'PUT', path: '/v1/financeiros/receitas/{id}', id: true, body: true },
|
|
31
|
+
{ resource: 'financeiro', value: 'receitasBaixa', name: 'Receitas: Baixar', method: 'POST', path: '/v1/financeiros/receitas/{id}/baixa', id: true, body: true },
|
|
32
|
+
{ resource: 'financeiro', value: 'despesasList', name: 'Despesas: Listar', method: 'GET', path: '/v1/financeiros/despesas' },
|
|
33
|
+
{ resource: 'financeiro', value: 'despesasCreate', name: 'Despesas: Criar', method: 'POST', path: '/v1/financeiros/despesas', body: true },
|
|
34
|
+
{ resource: 'financeiro', value: 'despesasUpdate', name: 'Despesas: Atualizar', method: 'PUT', path: '/v1/financeiros/despesas/{id}', id: true, body: true },
|
|
35
|
+
{ resource: 'financeiro', value: 'despesasBaixa', name: 'Despesas: Baixar', method: 'POST', path: '/v1/financeiros/despesas/{id}/baixa', id: true, body: true },
|
|
36
|
+
{ resource: 'financeiro', value: 'tiposPagamentoList', name: 'Tipos De Pagamento: Listar', method: 'GET', path: '/v1/financeiros/tipos-pagamento' },
|
|
37
|
+
{ resource: 'financeiro', value: 'contasBancariaList', name: 'Contas Bancárias: Listar', method: 'GET', path: '/v1/financeiros/contas-bancaria' },
|
|
38
|
+
{ resource: 'financeiro', value: 'moedasList', name: 'Moedas: Listar', method: 'GET', path: '/v1/financeiros/moedas' },
|
|
39
|
+
{ resource: 'financeiro', value: 'bandeirasTefList', name: 'Bandeiras TEF: Listar', method: 'GET', path: '/v1/financeiros/bandeiras-tef' },
|
|
40
|
+
{ resource: 'financeiro', value: 'redesTefList', name: 'Redes TEF: Listar', method: 'GET', path: '/v1/financeiros/redes-tef' },
|
|
41
|
+
{ resource: 'fiscal', value: 'impostosCalculo', name: 'Impostos: Calcular', method: 'POST', path: '/v1/fiscal/impostos/calculo', body: true },
|
|
42
|
+
{ resource: 'fiscal', value: 'nfseImportar', name: 'Serviços Tomados: Importar NFSe', method: 'POST', path: '/v1/fiscal/servicos-tomados/nfse', body: true },
|
|
43
|
+
{ resource: 'pessoal', value: 'cargosList', name: 'Cargos: Listar', method: 'GET', path: '/v1/pessoal/cargos' },
|
|
44
|
+
{ resource: 'pessoal', value: 'funcoesList', name: 'Funções: Listar', method: 'GET', path: '/v1/pessoal/funcoes' },
|
|
45
|
+
{ resource: 'pessoal', value: 'departamentosList', name: 'Departamentos: Listar', method: 'GET', path: '/v1/pessoal/departamentos' },
|
|
46
|
+
{ resource: 'pessoal', value: 'empresasPessoalList', name: 'Empresas: Listar', method: 'GET', path: '/v1/pessoal/empresas' },
|
|
47
|
+
{ resource: 'pessoal', value: 'cargaHorariaList', name: 'Carga Horária: Listar', method: 'GET', path: '/v1/pessoal/carga-horaria' },
|
|
48
|
+
{ resource: 'pessoal', value: 'cargaHorariaHistList', name: 'Carga Horária Histórica: Listar', method: 'GET', path: '/v1/pessoal/carga-horaria-historica' },
|
|
49
|
+
{ resource: 'pessoal', value: 'movimentosList', name: 'Movimentos: Listar', method: 'GET', path: '/v1/pessoal/movimentos' },
|
|
50
|
+
{ resource: 'pessoal', value: 'ocorrenciasList', name: 'Ocorrências: Listar', method: 'GET', path: '/v1/pessoal/ocorrencias' },
|
|
51
|
+
{ resource: 'pessoal', value: 'historicosOcorrenciaList', name: 'Históricos De Ocorrência: Listar', method: 'GET', path: '/v1/pessoal/historicos-ocorrencia' },
|
|
52
|
+
{ resource: 'pessoal', value: 'feriasList', name: 'Férias: Listar', method: 'GET', path: '/v1/pessoal/ferias' },
|
|
53
|
+
{ resource: 'pessoal', value: 'faltasList', name: 'Faltas: Listar', method: 'GET', path: '/v1/pessoal/faltas' },
|
|
54
|
+
{ resource: 'pessoal', value: 'atrasosList', name: 'Atrasos: Listar', method: 'GET', path: '/v1/pessoal/atrasos' },
|
|
55
|
+
{ resource: 'estoque', value: 'estoqueLocaisList', name: 'Locais De Estoque: Listar', method: 'GET', path: '/v1/estoque-locais' },
|
|
56
|
+
{ resource: 'estoque', value: 'estoqueProduto', name: 'Saldo De Um Produto', method: 'GET', path: '/estoque/{id}', id: true },
|
|
57
|
+
{ resource: 'estoque', value: 'estoqueTodos', name: 'Saldo De Vários Produtos', method: 'GET', path: '/estoque' },
|
|
58
|
+
];
|
|
59
|
+
const EP_BY_VALUE = {};
|
|
60
|
+
ENDPOINTS.forEach((e) => {
|
|
61
|
+
EP_BY_VALUE[e.value] = e;
|
|
62
|
+
});
|
|
63
|
+
const RESOURCES = [
|
|
64
|
+
{ name: 'Cadastros', value: 'cadastros' },
|
|
65
|
+
{ name: 'Financeiro', value: 'financeiro' },
|
|
66
|
+
{ name: 'Fiscal', value: 'fiscal' },
|
|
67
|
+
{ name: 'Pessoal', value: 'pessoal' },
|
|
68
|
+
{ name: 'Estoque', value: 'estoque' },
|
|
69
|
+
];
|
|
70
|
+
function buildProperties() {
|
|
71
|
+
const props = [
|
|
72
|
+
{
|
|
73
|
+
displayName: 'Recurso',
|
|
74
|
+
name: 'resource',
|
|
75
|
+
type: 'options',
|
|
76
|
+
noDataExpression: true,
|
|
77
|
+
options: RESOURCES,
|
|
78
|
+
default: 'cadastros',
|
|
79
|
+
},
|
|
80
|
+
];
|
|
81
|
+
for (const r of RESOURCES) {
|
|
82
|
+
const eps = ENDPOINTS.filter((e) => e.resource === r.value);
|
|
83
|
+
props.push({
|
|
84
|
+
displayName: 'Operação',
|
|
85
|
+
name: 'operation',
|
|
86
|
+
type: 'options',
|
|
87
|
+
noDataExpression: true,
|
|
88
|
+
displayOptions: { show: { resource: [r.value] } },
|
|
89
|
+
options: eps.map((e) => ({ name: e.name, value: e.value, action: e.name })),
|
|
90
|
+
default: eps[0].value,
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
const idOps = ENDPOINTS.filter((e) => e.id).map((e) => e.value);
|
|
94
|
+
const id2Ops = ENDPOINTS.filter((e) => e.id2).map((e) => e.value);
|
|
95
|
+
const bodyOps = ENDPOINTS.filter((e) => e.body).map((e) => e.value);
|
|
96
|
+
const getOps = ENDPOINTS.filter((e) => e.method === 'GET').map((e) => e.value);
|
|
97
|
+
props.push({
|
|
98
|
+
displayName: 'ID (path)',
|
|
99
|
+
name: 'id',
|
|
100
|
+
type: 'string',
|
|
101
|
+
default: '',
|
|
102
|
+
required: true,
|
|
103
|
+
description: 'Identificador usado no caminho da URL (ex.: id do cliente, código do produto)',
|
|
104
|
+
displayOptions: { show: { operation: idOps } },
|
|
105
|
+
});
|
|
106
|
+
props.push({
|
|
107
|
+
displayName: 'ID Secundário (path)',
|
|
108
|
+
name: 'id2',
|
|
109
|
+
type: 'string',
|
|
110
|
+
default: '',
|
|
111
|
+
required: true,
|
|
112
|
+
description: 'Segundo identificador no caminho (ex.: id do contato)',
|
|
113
|
+
displayOptions: { show: { operation: id2Ops } },
|
|
114
|
+
});
|
|
115
|
+
props.push({
|
|
116
|
+
displayName: 'Parâmetros De Query',
|
|
117
|
+
name: 'queryParameters',
|
|
118
|
+
type: 'fixedCollection',
|
|
119
|
+
typeOptions: { multipleValues: true },
|
|
120
|
+
placeholder: 'Adicionar parâmetro',
|
|
121
|
+
default: {},
|
|
122
|
+
displayOptions: { show: { operation: getOps } },
|
|
123
|
+
options: [
|
|
124
|
+
{
|
|
125
|
+
name: 'parameter',
|
|
126
|
+
displayName: 'Parâmetro',
|
|
127
|
+
values: [
|
|
128
|
+
{ displayName: 'Nome', name: 'name', type: 'string', default: '' },
|
|
129
|
+
{ displayName: 'Valor', name: 'value', type: 'string', default: '' },
|
|
130
|
+
],
|
|
131
|
+
},
|
|
132
|
+
],
|
|
133
|
+
});
|
|
134
|
+
props.push({
|
|
135
|
+
displayName: 'Body (JSON)',
|
|
136
|
+
name: 'bodyJson',
|
|
137
|
+
type: 'json',
|
|
138
|
+
default: '{}',
|
|
139
|
+
description: 'Corpo da requisição em JSON',
|
|
140
|
+
displayOptions: { show: { operation: bodyOps } },
|
|
141
|
+
});
|
|
142
|
+
return props;
|
|
143
|
+
}
|
|
144
|
+
class SankhyaRest {
|
|
145
|
+
constructor() {
|
|
146
|
+
this.description = {
|
|
147
|
+
displayName: 'Sankhya REST',
|
|
148
|
+
name: 'sankhyaRest',
|
|
149
|
+
icon: 'file:sankhya.svg',
|
|
150
|
+
group: ['transform'],
|
|
151
|
+
version: 1,
|
|
152
|
+
subtitle: '={{$parameter["operation"]}}',
|
|
153
|
+
description: 'Endpoints REST /v1 do ERP Sankhya por módulo',
|
|
154
|
+
defaults: {
|
|
155
|
+
name: 'Sankhya REST',
|
|
156
|
+
},
|
|
157
|
+
inputs: ['main'],
|
|
158
|
+
outputs: ['main'],
|
|
159
|
+
credentials: [
|
|
160
|
+
{
|
|
161
|
+
name: 'sankhyaApi',
|
|
162
|
+
required: true,
|
|
163
|
+
},
|
|
164
|
+
],
|
|
165
|
+
properties: buildProperties(),
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
async execute() {
|
|
169
|
+
const items = this.getInputData();
|
|
170
|
+
const returnData = [];
|
|
171
|
+
const credentials = await this.getCredentials('sankhyaApi');
|
|
172
|
+
const base = baseUrl(credentials.environment);
|
|
173
|
+
for (let i = 0; i < items.length; i++) {
|
|
174
|
+
try {
|
|
175
|
+
const operation = this.getNodeParameter('operation', i);
|
|
176
|
+
const ep = EP_BY_VALUE[operation];
|
|
177
|
+
if (!ep) {
|
|
178
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Operação não suportada: ${operation}`, { itemIndex: i });
|
|
179
|
+
}
|
|
180
|
+
let path = ep.path;
|
|
181
|
+
if (ep.id)
|
|
182
|
+
path = path.replace('{id}', encodeURIComponent(this.getNodeParameter('id', i)));
|
|
183
|
+
if (ep.id2)
|
|
184
|
+
path = path.replace('{id2}', encodeURIComponent(this.getNodeParameter('id2', i)));
|
|
185
|
+
const qs = {};
|
|
186
|
+
if (ep.method === 'GET') {
|
|
187
|
+
const params = this.getNodeParameter('queryParameters.parameter', i, []) || [];
|
|
188
|
+
params.forEach((p) => {
|
|
189
|
+
if (p.name)
|
|
190
|
+
qs[String(p.name)] = p.value;
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
let body;
|
|
194
|
+
if (ep.body) {
|
|
195
|
+
const raw = this.getNodeParameter('bodyJson', i, {});
|
|
196
|
+
if (typeof raw === 'object') {
|
|
197
|
+
body = raw;
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
try {
|
|
201
|
+
body = JSON.parse(String(raw));
|
|
202
|
+
}
|
|
203
|
+
catch (e) {
|
|
204
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Body JSON inválido: ${e.message}`, { itemIndex: i });
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
const options = {
|
|
209
|
+
method: ep.method,
|
|
210
|
+
url: `${base}${path}`,
|
|
211
|
+
qs,
|
|
212
|
+
json: true,
|
|
213
|
+
};
|
|
214
|
+
if (body !== undefined) {
|
|
215
|
+
options.body = body;
|
|
216
|
+
options.headers = { 'Content-Type': 'application/json' };
|
|
217
|
+
}
|
|
218
|
+
const response = await this.helpers.httpRequestWithAuthentication.call(this, 'sankhyaApi', options);
|
|
219
|
+
returnData.push({ json: response, pairedItem: { item: i } });
|
|
220
|
+
}
|
|
221
|
+
catch (error) {
|
|
222
|
+
if (this.continueOnFail()) {
|
|
223
|
+
returnData.push({ json: { error: error.message }, pairedItem: { item: i } });
|
|
224
|
+
continue;
|
|
225
|
+
}
|
|
226
|
+
throw new n8n_workflow_1.NodeApiError(this.getNode(), error, { itemIndex: i });
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
return [returnData];
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
exports.SankhyaRest = SankhyaRest;
|
|
233
|
+
//# sourceMappingURL=SankhyaRest.node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SankhyaRest.node.js","sourceRoot":"","sources":["../../../nodes/SankhyaRest/SankhyaRest.node.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<svg width="400" height="400" viewBox="0 0 400 400" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<g clip-path="url(#clip0_33_47)">
|
|
3
|
+
<path d="M0 0H400V400H0V0Z" fill="#2B3C54"/>
|
|
4
|
+
<path d="M192.641 122.02C194.184 121.93 194.002 121.704 195.143 122.378C195.284 125.696 181.799 137.396 178.109 141.626C175.489 144.601 173.202 147.853 171.286 151.323C161.963 168.226 166.691 186.894 165.254 205.223C165.027 208.119 164.467 210.515 162.625 212.88C155.936 221.464 146.68 229.453 138.959 237.177C133.452 242.264 128.516 248.069 122.819 252.937C113.452 260.941 105.988 256.505 99.5137 248.427C93.6539 240.836 89.8606 231.857 88.5027 222.364C85.8633 204.339 92.8852 186.959 103.438 172.611C122.699 146.424 160.618 126.564 192.641 122.02Z" fill="#65CB65"/>
|
|
5
|
+
<path d="M255.049 101.64C263.748 100.894 274.559 104.604 281.697 109.331C278.601 113.351 271.084 120.219 267.14 124.144L233.771 157.044C229.996 160.792 223.439 166.437 221.018 171.017C218.604 176.039 219.759 180.513 219.412 185.834C218.442 195.821 221.851 219.833 217.095 228.116C211.046 238.649 190.135 257.067 181.285 265.839L162.73 284.301C156.629 290.332 153.531 294.68 145.311 297.74C136.871 298.849 125.166 294.743 118.188 290.359C120.3 287.19 128.6 279.734 131.71 276.682L167.089 241.385C172.631 235.83 178.277 230.403 183.757 224.788C189.17 219.62 187.659 213.948 188.032 207.547C188.7 196.06 186.682 180.888 188.652 169.819C189.113 167.262 189.967 164.792 191.184 162.497C192.091 160.756 193.22 159.14 194.544 157.689C202.011 149.347 214.023 138.264 222.288 129.978L237.655 114.572C243.624 108.593 246.683 104.222 255.049 101.64Z" fill="#65CB65"/>
|
|
6
|
+
<path d="M284.739 142.626C297.738 141.911 305.163 156.519 309.13 167.17C314.488 181.554 312.02 199.761 305.03 213.303C288.986 244.383 259.531 261.832 227.481 272.824C223.764 273.938 207.132 279.223 204.777 276.921C204.614 273.893 213.686 266.759 216.04 264.229C220.353 259.593 225.227 255.341 229.398 250.493C232.635 246.803 235.361 242.695 237.503 238.278C239.738 233.724 241.21 228.834 241.859 223.804C243.023 214.738 240.577 184.606 244.715 179.581C251.1 171.831 275.92 144.79 284.739 142.626Z" fill="#65CB65"/>
|
|
7
|
+
</g>
|
|
8
|
+
<defs>
|
|
9
|
+
<clipPath id="clip0_33_47">
|
|
10
|
+
<rect width="400" height="400" rx="65" fill="white"/>
|
|
11
|
+
</clipPath>
|
|
12
|
+
</defs>
|
|
13
|
+
</svg>
|
package/index.js
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@luizeduos/n8n-nodes-sankhya",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Node n8n para o ERP Sankhya: gateway genérico (service.sbr) + endpoints REST por módulo, com autenticação OAuth 2.0 ou legado.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"n8n-community-node-package",
|
|
7
|
+
"n8n",
|
|
8
|
+
"sankhya",
|
|
9
|
+
"erp",
|
|
10
|
+
"gateway"
|
|
11
|
+
],
|
|
12
|
+
"license": "MIT",
|
|
13
|
+
"homepage": "https://github.com/luizeduos/n8n-nodes-sankhya#readme",
|
|
14
|
+
"author": {
|
|
15
|
+
"name": "luizeduos"
|
|
16
|
+
},
|
|
17
|
+
"repository": {
|
|
18
|
+
"type": "git",
|
|
19
|
+
"url": "git+https://github.com/luizeduos/n8n-nodes-sankhya.git"
|
|
20
|
+
},
|
|
21
|
+
"bugs": {
|
|
22
|
+
"url": "https://github.com/luizeduos/n8n-nodes-sankhya/issues"
|
|
23
|
+
},
|
|
24
|
+
"publishConfig": {
|
|
25
|
+
"access": "public"
|
|
26
|
+
},
|
|
27
|
+
"engines": {
|
|
28
|
+
"node": ">=18.10"
|
|
29
|
+
},
|
|
30
|
+
"main": "index.js",
|
|
31
|
+
"scripts": {
|
|
32
|
+
"build": "tsc && gulp build:icons",
|
|
33
|
+
"dev": "tsc --watch",
|
|
34
|
+
"lint": "eslint nodes credentials",
|
|
35
|
+
"lintfix": "eslint nodes credentials --fix"
|
|
36
|
+
},
|
|
37
|
+
"files": [
|
|
38
|
+
"dist"
|
|
39
|
+
],
|
|
40
|
+
"n8n": {
|
|
41
|
+
"n8nNodesApiVersion": 1,
|
|
42
|
+
"credentials": [
|
|
43
|
+
"dist/credentials/SankhyaApi.credentials.js"
|
|
44
|
+
],
|
|
45
|
+
"nodes": [
|
|
46
|
+
"dist/nodes/Sankhya/Sankhya.node.js",
|
|
47
|
+
"dist/nodes/SankhyaRest/SankhyaRest.node.js"
|
|
48
|
+
]
|
|
49
|
+
},
|
|
50
|
+
"devDependencies": {
|
|
51
|
+
"@types/node": "^18.16.0",
|
|
52
|
+
"@typescript-eslint/parser": "^7.18.0",
|
|
53
|
+
"eslint": "^8.57.0",
|
|
54
|
+
"eslint-plugin-n8n-nodes-base": "^1.16.0",
|
|
55
|
+
"gulp": "^4.0.2",
|
|
56
|
+
"n8n-workflow": "*",
|
|
57
|
+
"typescript": "^5.5.0"
|
|
58
|
+
},
|
|
59
|
+
"peerDependencies": {
|
|
60
|
+
"n8n-workflow": "*"
|
|
61
|
+
}
|
|
62
|
+
}
|