jsegd-fluig-types 1.0.27 → 1.0.28
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/README.md +139 -194
- package/package.json +1 -1
- package/types/fluig/fluig.backend.d.ts +11 -11
- package/types/fluig/fluig.dataset.d.ts +9 -9
- package/types/fluig/fluig.frontend.d.ts +0 -12
- package/types/fluig/fluig.webservice.d.ts +1 -98
- package/types/java/java.d.ts +1 -1
- package/types/fluig/fluig.events.d.ts +0 -6
package/README.md
CHANGED
|
@@ -1,245 +1,190 @@
|
|
|
1
1
|
# jsegd-fluig-types
|
|
2
2
|
|
|
3
|
-

|
|
4
4
|

|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
Definições de tipos TypeScript (`.d.ts`) para desenvolvimento na plataforma **Fluig**, cobrindo APIs frontend, eventos de workflow, datasets, SDK Java, webservices e classes Java básicas usadas no runtime Rhino.
|
|
7
|
+
|
|
8
|
+
## 🎯 Objetivo
|
|
9
|
+
|
|
10
|
+
Disponibilizar tipagem global para todos os identificadores expostos pelo Fluig em scripts de:
|
|
11
|
+
|
|
12
|
+
- **Frontend** (widgets, formulários, eventos): `FLUIGC`, `WCMAPI`, `Datatable`, `Modal`, `Toast`, `Autocomplete`, `formMode`, etc.
|
|
13
|
+
- **Backend / Workflow** (Rhino + Java): `hAPI`, `log`, `globalVars`, `getValue`, `ServiceManager`, `JSONUtil`, `FormController`, `customHTML`.
|
|
14
|
+
- **Datasets**: `DatasetFactory`, `DatasetBuilder`, `DefaultDataset`, `AddColumn`, `setKey`, `addIndex`, `defineStructure`, `onSync`, `onMobileSync`, `createDataset`, `ConstraintType`, `DatasetFieldType`.
|
|
15
|
+
- **SDK Java do Fluig**: namespaces `com.fluig.sdk.*` (services, VOs, OAuth).
|
|
16
|
+
- **Webservice ECM**: `com.totvs.technology.ecm.workflow.ws.ECMWorkflowEngineServiceService` e DTOs relacionados.
|
|
17
|
+
- **Java**: `java.util.*`, `java.lang.*`, `java.sql.*`, `javax.naming.*`, `javax.sql.*`.
|
|
18
|
+
|
|
19
|
+
Todos os símbolos são declarados em `declare global { ... }`, ficando disponíveis sem `import` em qualquer arquivo `.ts` do projeto consumidor.
|
|
7
20
|
|
|
8
21
|
## 📦 Instalação
|
|
9
22
|
|
|
10
23
|
```bash
|
|
11
|
-
npm install jsegd-fluig-types
|
|
24
|
+
npm install -D jsegd-fluig-types
|
|
12
25
|
```
|
|
13
26
|
|
|
14
|
-
|
|
27
|
+
ou com yarn:
|
|
15
28
|
|
|
16
|
-
|
|
29
|
+
```bash
|
|
30
|
+
yarn add -D jsegd-fluig-types
|
|
31
|
+
```
|
|
17
32
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
33
|
+
ou com pnpm:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
pnpm add -D jsegd-fluig-types
|
|
21
37
|
```
|
|
22
38
|
|
|
23
|
-
|
|
39
|
+
## 🚀 Uso
|
|
40
|
+
|
|
41
|
+
### Carregamento global
|
|
42
|
+
|
|
43
|
+
Adicione uma única referência num arquivo de bootstrap (ex.: `src/types/global.d.ts`):
|
|
24
44
|
|
|
25
|
-
#### Frontend (Widget/Portal)
|
|
26
45
|
```typescript
|
|
27
|
-
|
|
28
|
-
// Exemplo: usando tipos de formulário
|
|
29
|
-
const mode: FormMod = FormMod.ADD;
|
|
30
|
-
|
|
31
|
-
// Exemplo: usando DatasetFactory no frontend (retorna DatasetWcmResult)
|
|
32
|
-
DatasetFactory.getDataset(
|
|
33
|
-
"colleague",
|
|
34
|
-
["colleagueId", "colleagueName"],
|
|
35
|
-
constraints,
|
|
36
|
-
["colleagueName"]
|
|
37
|
-
).then(result => {
|
|
38
|
-
// result é do tipo DatasetWcmResult
|
|
39
|
-
console.log(result.columns); // string[]
|
|
40
|
-
console.log(result.values); // unknown[]
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
// Exemplo: usando componentes de autocomplete
|
|
44
|
-
const autocompleteConfig: AutocompleteOptions = {
|
|
45
|
-
type: AutocompleteTypes.tag,
|
|
46
|
-
// ... outras configurações
|
|
47
|
-
};
|
|
46
|
+
import 'jsegd-fluig-types'
|
|
48
47
|
```
|
|
49
48
|
|
|
50
|
-
|
|
51
|
-
```typescript
|
|
52
|
-
// Tipos para datasets (retorna DefaultDataset com tipos Java)
|
|
53
|
-
function createDataset(fields: string[], constraints: SearchConstraint[]): DefaultDataset {
|
|
54
|
-
const dataset = DatasetFactory.getDataset("myDataset", fields, constraints, []);
|
|
55
|
-
// dataset é do tipo DefaultDataset com métodos Java tipados
|
|
56
|
-
return dataset;
|
|
57
|
-
}
|
|
49
|
+
Ou inclua nos `types` do `tsconfig.json`:
|
|
58
50
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
ConstraintType.MUST
|
|
65
|
-
); // Retorna SearchConstraint para backend
|
|
66
|
-
|
|
67
|
-
// Tipos para eventos de workflow
|
|
68
|
-
function beforeTaskSave(colleagueId: string, nextSequenceId: number, userTaskVO: UserTaskVO): void {
|
|
69
|
-
// Implementação do evento
|
|
51
|
+
```json
|
|
52
|
+
{
|
|
53
|
+
"compilerOptions": {
|
|
54
|
+
"types": ["jsegd-fluig-types"]
|
|
55
|
+
}
|
|
70
56
|
}
|
|
71
57
|
```
|
|
72
58
|
|
|
73
|
-
|
|
74
|
-
```typescript
|
|
75
|
-
// Exemplo: usando ECMWorkflowEngineService
|
|
76
|
-
const serviceManager = new ServiceManager();
|
|
77
|
-
const workflowService = serviceManager.instantiate("ECMWorkflowEngineService");
|
|
78
|
-
// ou alternativamente:
|
|
79
|
-
const workflowService2 = serviceManager.instantiate("WorkflowEngineService");
|
|
80
|
-
|
|
81
|
-
// Acesso ao service port com tipagem completa
|
|
82
|
-
const port = serviceManager.getWorkflowEngineServicePort();
|
|
83
|
-
const processes = port.listMyRequestProcesses("usuario123", 0, 10);
|
|
84
|
-
```
|
|
59
|
+
### Subpath imports (opcional)
|
|
85
60
|
|
|
86
|
-
|
|
87
|
-
```typescript
|
|
88
|
-
// Acesso às APIs do Fluig com tipagem completa
|
|
89
|
-
const fluigAPI = new com.fluig.sdk.api.FluigAPI();
|
|
90
|
-
const documentService = fluigAPI.getDocumentService();
|
|
91
|
-
const userService = fluigAPI.getUserService();
|
|
92
|
-
```
|
|
61
|
+
O pacote expõe entradas individuais em `package.json#exports` para uso seletivo:
|
|
93
62
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
|
97
|
-
|
|
98
|
-
|
|
|
99
|
-
|
|
|
100
|
-
|
|
|
101
|
-
|
|
|
102
|
-
|
|
|
103
|
-
|
|
|
104
|
-
| **`index.d.ts`** | Arquivo principal que exporta todos os tipos |
|
|
105
|
-
|
|
106
|
-
## 🎯 Funcionalidades
|
|
107
|
-
|
|
108
|
-
### ✅ Frontend
|
|
109
|
-
- Tipos para componentes de formulário
|
|
110
|
-
- Enums para modos de formulário (`FormMod`)
|
|
111
|
-
- Tipos para autocomplete e widgets
|
|
112
|
-
- Interfaces para eventos frontend
|
|
113
|
-
- **DatasetFactory** com retorno otimizado para JavaScript (`DatasetWcmResult`)
|
|
114
|
-
|
|
115
|
-
### ✅ Backend
|
|
116
|
-
- Tipos para datasets e constrangimentos
|
|
117
|
-
- Interfaces para eventos de workflow
|
|
118
|
-
- Tipos para respostas de APIs
|
|
119
|
-
- Enums para status e tipos de dados
|
|
120
|
-
- **ClassNameMap** para tipagem inteligente do método `instantiate()`
|
|
121
|
-
- **ServiceManager** com suporte a webservices
|
|
122
|
-
- **DatasetFactory** com retorno de tipos Java (`DefaultDataset`)
|
|
123
|
-
|
|
124
|
-
### ✅ Webservices
|
|
125
|
-
- **ECMWorkflowEngineService** com tipagem completa baseada em WSDL
|
|
126
|
-
- Mais de 40 métodos tipados para workflow engine
|
|
127
|
-
- Interface **WorkflowEngineService** para operações de workflow
|
|
128
|
-
- Suporte a mapeamento duplo de nomes de classe
|
|
129
|
-
|
|
130
|
-
### ✅ SDK
|
|
131
|
-
- Tipagem completa para todas as APIs do Fluig
|
|
132
|
-
- Serviços de documentos, usuários, workflow, etc.
|
|
133
|
-
- Classes e interfaces para integração Java
|
|
134
|
-
|
|
135
|
-
## 💡 Exemplos Práticos
|
|
136
|
-
|
|
137
|
-
### DatasetFactory - Implementação Dual
|
|
138
|
-
|
|
139
|
-
#### No Backend (Tipos Java)
|
|
140
|
-
```typescript
|
|
141
|
-
// Retorna DefaultDataset com métodos Java tipados
|
|
142
|
-
const dataset = DatasetFactory.getDataset(
|
|
143
|
-
"colleague",
|
|
144
|
-
["colleagueId", "colleagueName"],
|
|
145
|
-
constraints,
|
|
146
|
-
["colleagueName"]
|
|
147
|
-
);
|
|
148
|
-
|
|
149
|
-
// Métodos Java disponíveis
|
|
150
|
-
const rowCount = dataset.getRowsCount(); // number
|
|
151
|
-
const value = dataset.getValue(0, "colleagueId"); // java.lang.Object
|
|
152
|
-
const resultSet = dataset.toResultSet(); // java.sql.ResultSet
|
|
153
|
-
```
|
|
63
|
+
| Subpath | Conteúdo |
|
|
64
|
+
| ------------------------------ | ----------------------------------------------------------------------------------------- |
|
|
65
|
+
| `jsegd-fluig-types` | Reexporta todos os módulos abaixo (recomendado). |
|
|
66
|
+
| `jsegd-fluig-types/frontend` | Tipos de widgets/portal: `FLUIGC`, `WCMAPI`, `Datatable`, `Toast`, `formMode`. |
|
|
67
|
+
| `jsegd-fluig-types/backend` | Tipos de Rhino/workflow: `hAPI`, `log`, `getValue`, `globalVars`, `ServiceManager`. |
|
|
68
|
+
| `jsegd-fluig-types/dataset` | Tipos de dataset: `DatasetFactory`, `DefaultDataset`, `ConstraintType`, `AddColumn`, etc. |
|
|
69
|
+
| `jsegd-fluig-types/sdk` | Namespaces `com.fluig.sdk.*` (FluigAPI e services). |
|
|
70
|
+
| `jsegd-fluig-types/webservice` | `ECMWorkflowEngineServiceService` e DTOs de workflow. |
|
|
71
|
+
| `jsegd-fluig-types/api` | Parâmetros das APIs REST do Fluig (`SearchDatasetValuesParams`). |
|
|
72
|
+
| `jsegd-fluig-types/java` | Tipos `java.*` e `javax.*` necessários no Rhino. |
|
|
154
73
|
|
|
155
|
-
#### No Frontend (Tipos JavaScript)
|
|
156
74
|
```typescript
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
"colleague",
|
|
160
|
-
["colleagueId", "colleagueName"],
|
|
161
|
-
constraints,
|
|
162
|
-
["colleagueName"]
|
|
163
|
-
);
|
|
164
|
-
|
|
165
|
-
// Estrutura JavaScript simples
|
|
166
|
-
console.log(result.columns); // string[]
|
|
167
|
-
console.log(result.values); // unknown[]
|
|
75
|
+
import 'jsegd-fluig-types/backend'
|
|
76
|
+
import 'jsegd-fluig-types/dataset'
|
|
168
77
|
```
|
|
169
78
|
|
|
170
|
-
|
|
79
|
+
## 🧩 Conteúdo
|
|
80
|
+
|
|
81
|
+
### Frontend (widget/portal)
|
|
82
|
+
|
|
171
83
|
```typescript
|
|
172
|
-
const
|
|
84
|
+
const opts: ModalSettings = {
|
|
85
|
+
title: 'Confirmação',
|
|
86
|
+
content: '<p>Deseja continuar?</p>',
|
|
87
|
+
id: 'modal-confirm',
|
|
88
|
+
showHeader: true,
|
|
89
|
+
showFooter: true,
|
|
90
|
+
actions: [],
|
|
91
|
+
headerActions: [],
|
|
92
|
+
headerContent: '',
|
|
93
|
+
size: 'small',
|
|
94
|
+
formModal: false,
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
FLUIGC.modal(opts)
|
|
173
98
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
99
|
+
if (formMode === FormMod.ADD) {
|
|
100
|
+
// formulário em modo de inclusão
|
|
101
|
+
}
|
|
177
102
|
|
|
178
|
-
|
|
179
|
-
|
|
103
|
+
DatasetFactory.getDataset('colleague', ['colleagueId', 'colleagueName'], [], ['colleagueName'], {
|
|
104
|
+
success: function (result) {
|
|
105
|
+
// result: DatasetWcmResult<unknown>
|
|
106
|
+
console.log(result.columns, result.values)
|
|
107
|
+
},
|
|
108
|
+
})
|
|
180
109
|
```
|
|
181
110
|
|
|
182
|
-
###
|
|
111
|
+
### Backend (Rhino / workflow)
|
|
112
|
+
|
|
183
113
|
```typescript
|
|
184
|
-
|
|
185
|
-
const
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
);
|
|
191
|
-
|
|
192
|
-
// Frontend - retorna Constraint
|
|
193
|
-
const frontendConstraint = DatasetFactory.createConstraint(
|
|
194
|
-
"field",
|
|
195
|
-
"value1",
|
|
196
|
-
"value2",
|
|
197
|
-
ConstraintType.MUST
|
|
198
|
-
);
|
|
114
|
+
function beforeTaskSave(colleagueId: string, nextSequenceId: number, userTaskVO: unknown): void {
|
|
115
|
+
const numProc = getValue('WKNumProces')
|
|
116
|
+
const card = hAPI.getCardData(parseInt(numProc))
|
|
117
|
+
log.info('Salvando tarefa de ' + colleagueId + ' no processo ' + numProc)
|
|
118
|
+
globalVars.put('ultimoUsuario', new java.lang.String(colleagueId))
|
|
119
|
+
}
|
|
199
120
|
```
|
|
200
121
|
|
|
201
|
-
###
|
|
122
|
+
### Dataset
|
|
123
|
+
|
|
202
124
|
```typescript
|
|
203
|
-
function
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
)
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
125
|
+
function defineStructure(): void {
|
|
126
|
+
AddColumn(new java.lang.String('NOME'), DatasetFieldType.STRING)
|
|
127
|
+
AddColumn(new java.lang.String('IDADE'), DatasetFieldType.NUMBER)
|
|
128
|
+
setKey([new java.lang.String('NOME')])
|
|
129
|
+
addIndex([new java.lang.String('IDADE')])
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
function createDataset(fields: string[], constraints: SearchConstraint[], sortFields: string[]): DefaultDataset {
|
|
133
|
+
const ds = DatasetBuilder.newDataset()
|
|
134
|
+
ds.addColumn(new java.lang.String('NOME'))
|
|
135
|
+
ds.addRow([new java.lang.String('Maria')] as any)
|
|
136
|
+
return ds
|
|
212
137
|
}
|
|
213
138
|
```
|
|
214
139
|
|
|
215
|
-
|
|
140
|
+
### SDK e webservice
|
|
216
141
|
|
|
217
|
-
|
|
218
|
-
|
|
142
|
+
```typescript
|
|
143
|
+
const fluig = new com.fluig.sdk.api.FluigAPI()
|
|
144
|
+
const userService = fluig.getUserService()
|
|
219
145
|
|
|
220
|
-
|
|
146
|
+
const wsService = ServiceManager.getService('ECMWorkflowEngineService')
|
|
147
|
+
const port = wsService.getBean().instantiate('com.totvs.technology.ecm.workflow.ws.ECMWorkflowEngineServiceService').getWorkflowEngineServicePort()
|
|
148
|
+
|
|
149
|
+
const cardData = new java.util.HashMap<java.lang.String, java.lang.String>()
|
|
150
|
+
const choosedUsers = new java.util.ArrayList<string>()
|
|
151
|
+
choosedUsers.add('admin')
|
|
152
|
+
port.startProcess('admin', 'secret', 1, 'ProcExemplo', 2, choosedUsers, 'ok', true, cardData, false)
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
## 🗂️ Estrutura
|
|
156
|
+
|
|
157
|
+
```text
|
|
158
|
+
types/
|
|
159
|
+
├── index.d.ts # reexporta todos os módulos
|
|
160
|
+
├── fluig/
|
|
161
|
+
│ ├── fluig.api.d.ts # parâmetros das APIs REST do Fluig
|
|
162
|
+
│ ├── fluig.backend.d.ts # workflow, hAPI, log, ServiceManager, FormController
|
|
163
|
+
│ ├── fluig.dataset.d.ts # DatasetFactory, DefaultDataset, constraints
|
|
164
|
+
│ ├── fluig.frontend.d.ts # FLUIGC, WCMAPI, Datatable, Modal, Toast
|
|
165
|
+
│ ├── fluig.sdk.d.ts # com.fluig.sdk.* (FluigAPI, services, VOs)
|
|
166
|
+
│ └── fluig.webservice.d.ts # ECMWorkflowEngineServiceService e DTOs
|
|
167
|
+
└── java/
|
|
168
|
+
└── java.d.ts # java.util, java.lang, java.sql, javax.*
|
|
169
|
+
```
|
|
221
170
|
|
|
222
|
-
|
|
171
|
+
## 🔗 Integração com `jsegd-fluig-lint`
|
|
223
172
|
|
|
224
|
-
|
|
225
|
-
- ✅ Uso permitido para fins **não comerciais**
|
|
226
|
-
- ✅ Atribuição obrigatória ao autor
|
|
227
|
-
- ❌ Modificações não permitidas
|
|
228
|
-
- ❌ Uso comercial não permitido
|
|
173
|
+
O plugin [`jsegd-fluig-lint`](https://www.npmjs.com/package/jsegd-fluig-lint) extrai automaticamente os globais declarados aqui em tempo de carga, evitando duplicação de listas de identificadores. Mantenha as duas dependências sincronizadas:
|
|
229
174
|
|
|
230
|
-
|
|
175
|
+
```bash
|
|
176
|
+
npm install -D jsegd-fluig-lint jsegd-fluig-types eslint
|
|
177
|
+
```
|
|
231
178
|
|
|
232
|
-
|
|
233
|
-
[EGD Tecnologia](https://www.egd.tec.br/)
|
|
179
|
+
## 📋 Requisitos
|
|
234
180
|
|
|
235
|
-
|
|
181
|
+
- TypeScript **3.0+** (testado em 5.9 com `strict: true`).
|
|
182
|
+
- Ambiente Fluig em runtime (não há código emitido — somente tipagens).
|
|
183
|
+
|
|
184
|
+
## 📄 Licença
|
|
236
185
|
|
|
237
|
-
|
|
186
|
+
Distribuído sob **CC-BY-NC-ND-4.0**. Consulte os termos antes de uso comercial ou redistribuição modificada.
|
|
238
187
|
|
|
239
188
|
---
|
|
240
189
|
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
**[EGD Tecnologia](https://www.egd.tec.br/)** - Especialistas em Fluig
|
|
244
|
-
|
|
245
|
-
</div>
|
|
190
|
+
Desenvolvido com ❤️ pela [**EGD Tecnologia**](https://www.egd.tec.br/)
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
declare enum FormMod {
|
|
2
|
-
'ADD' = 'ADD',
|
|
3
|
-
'MOD' = 'MOD',
|
|
4
|
-
'VIEW' = 'VIEW',
|
|
5
|
-
'NONE' = 'NONE',
|
|
6
|
-
}
|
|
7
|
-
|
|
8
1
|
declare global {
|
|
2
|
+
enum FormMod {
|
|
3
|
+
ADD = 'ADD',
|
|
4
|
+
MOD = 'MOD',
|
|
5
|
+
VIEW = 'VIEW',
|
|
6
|
+
NONE = 'NONE',
|
|
7
|
+
}
|
|
8
|
+
|
|
9
9
|
interface ServiceRequestOptions {
|
|
10
10
|
companyId: string
|
|
11
11
|
serviceCode: string
|
|
@@ -204,10 +204,10 @@ declare global {
|
|
|
204
204
|
class customHTML {
|
|
205
205
|
append(html: string): void
|
|
206
206
|
}
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
207
|
+
export type DisplayFieldsHandler = (form: FormController, customHTML: customHTML) => void;
|
|
208
|
+
export type EnableFieldsHandler = (form: FormController) => void;
|
|
209
|
+
export type InputFieldsHandler = (form: FormController) => void;
|
|
210
|
+
export type ValidateFormHandler = (form: FormController) => void;
|
|
211
211
|
|
|
212
212
|
// #########################################################################
|
|
213
213
|
// ####################### Definição de Log ################################
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
declare enum DatasetFieldType {
|
|
2
|
-
NUMBER = "NUMBER",
|
|
3
|
-
DATE = "DATE",
|
|
4
|
-
BOOLEAN = "BOOLEAN",
|
|
5
|
-
STRING = "STRING",
|
|
6
|
-
TEXT = "TEXT",
|
|
7
|
-
}
|
|
8
|
-
|
|
9
1
|
declare global {
|
|
2
|
+
enum DatasetFieldType {
|
|
3
|
+
NUMBER = "NUMBER",
|
|
4
|
+
DATE = "DATE",
|
|
5
|
+
BOOLEAN = "BOOLEAN",
|
|
6
|
+
STRING = "STRING",
|
|
7
|
+
TEXT = "TEXT",
|
|
8
|
+
}
|
|
9
|
+
|
|
10
10
|
enum ConstraintType {
|
|
11
11
|
MUST = 1,
|
|
12
12
|
SHOULD = 2,
|
|
@@ -46,7 +46,7 @@ declare global {
|
|
|
46
46
|
message: string;
|
|
47
47
|
data?: unknown;
|
|
48
48
|
errors?: ErrorDetail[];
|
|
49
|
-
timestamp:
|
|
49
|
+
timestamp: number;
|
|
50
50
|
}
|
|
51
51
|
interface DatasetResponse {
|
|
52
52
|
response: DatasetResponseValues;
|
|
@@ -1,15 +1,3 @@
|
|
|
1
|
-
// types.d.ts
|
|
2
|
-
// =============================
|
|
3
|
-
// ENUMS
|
|
4
|
-
// =============================
|
|
5
|
-
|
|
6
|
-
declare enum FormMod {
|
|
7
|
-
'ADD' = 'ADD',
|
|
8
|
-
'MOD' = 'MOD',
|
|
9
|
-
'VIEW' = 'VIEW',
|
|
10
|
-
'NONE' = 'NONE',
|
|
11
|
-
}
|
|
12
|
-
|
|
13
1
|
declare enum AutocompleteTypes {
|
|
14
2
|
tag = 'tag',
|
|
15
3
|
autocomplete = 'autocomplete',
|
|
@@ -1,18 +1,10 @@
|
|
|
1
|
-
// fluig.webservice.d.ts
|
|
2
|
-
// Tipos para webservices do Fluig
|
|
3
|
-
|
|
4
1
|
declare global {
|
|
5
|
-
// #########################################################################
|
|
6
|
-
// #################### ECM Workflow Engine Service Types ##################
|
|
7
|
-
// #########################################################################
|
|
8
|
-
|
|
9
2
|
namespace com {
|
|
10
3
|
namespace totvs {
|
|
11
4
|
namespace technology {
|
|
12
5
|
namespace ecm {
|
|
13
6
|
namespace workflow {
|
|
14
7
|
namespace ws {
|
|
15
|
-
// Classe principal do serviço ECM Workflow Engine
|
|
16
8
|
class ECMWorkflowEngineServiceService {
|
|
17
9
|
constructor();
|
|
18
10
|
|
|
@@ -250,95 +242,6 @@ declare global {
|
|
|
250
242
|
}
|
|
251
243
|
}
|
|
252
244
|
|
|
253
|
-
// #########################################################################
|
|
254
|
-
// ##################### WebService ServiceManager Types ###################
|
|
255
|
-
// #########################################################################
|
|
256
|
-
|
|
257
|
-
// A classe ECMWorkflowEngineServiceService já está mapeada no ClassNameMap do fluig.backend.d.ts
|
|
258
|
-
// Este arquivo apenas define os tipos específicos para webservices
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
/*
|
|
262
|
-
// ############################################################################
|
|
263
|
-
// #################### Exemplos de uso do ECMWorkflowEngineService ##########
|
|
264
|
-
// ############################################################################
|
|
265
|
-
|
|
266
|
-
// Exemplo de uso básico do ECMWorkflowEngineService
|
|
267
|
-
function exemploWorkflowService() {
|
|
268
|
-
// Instanciando o serviço com tipagem completa
|
|
269
|
-
const service = ServiceManager.getService("ECMWorkflowEngineServiceService");
|
|
270
|
-
const workflowServiceClass = service.getBean().instantiate('com.totvs.technology.ecm.workflow.ws.ECMWorkflowEngineServiceService');
|
|
271
|
-
|
|
272
|
-
// Obtendo o port/endpoint do webservice
|
|
273
|
-
const workflowService = workflowServiceClass.getWorkflowEngineServicePort();
|
|
274
|
-
|
|
275
|
-
// Exemplo 1: Iniciar um processo
|
|
276
|
-
const cardData = new java.util.HashMap<string, string>();
|
|
277
|
-
cardData.put("campo1", "valor1");
|
|
278
|
-
cardData.put("campo2", "valor2");
|
|
279
|
-
|
|
280
|
-
const choosedUsers = new java.util.ArrayList<string>();
|
|
281
|
-
choosedUsers.add("usuario123");
|
|
282
|
-
|
|
283
|
-
const result = workflowService.startProcess(
|
|
284
|
-
"admin", // username
|
|
285
|
-
"senha", // password
|
|
286
|
-
1, // companyId
|
|
287
|
-
"ProcessoTeste", // processId
|
|
288
|
-
2, // nextState
|
|
289
|
-
choosedUsers, // choosedUsers
|
|
290
|
-
"Iniciando processo via webservice", // comments
|
|
291
|
-
true, // completeTask
|
|
292
|
-
cardData, // cardData
|
|
293
|
-
false // managerMode
|
|
294
|
-
);
|
|
295
|
-
|
|
296
|
-
// Exemplo 2: Obter processos disponíveis
|
|
297
|
-
const availableProcesses = workflowService.getAvailableProcess("admin", "senha", 1);
|
|
298
|
-
for (const process of availableProcesses.item) {
|
|
299
|
-
log.info(`Processo: ${process.processId} - Versão: ${process.version}`);
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
// Exemplo 3: Obter dados do cartão de uma instância
|
|
303
|
-
const instanceCardData = workflowService.getInstanceCardData("admin", "senha", 1, 12345);
|
|
304
|
-
|
|
305
|
-
// Exemplo 4: Avançar uma tarefa
|
|
306
|
-
const nextCardData = new java.util.HashMap<string, string>();
|
|
307
|
-
nextCardData.put("aprovacao", "APROVADO");
|
|
308
|
-
nextCardData.put("observacoes", "Processo aprovado com sucesso");
|
|
309
|
-
|
|
310
|
-
const taskResult = workflowService.saveAndSendTask(
|
|
311
|
-
"admin", // username
|
|
312
|
-
"senha", // password
|
|
313
|
-
1, // companyId
|
|
314
|
-
12345, // processInstanceId
|
|
315
|
-
3, // choosedState
|
|
316
|
-
1, // threadSequence
|
|
317
|
-
"usuario123", // userId
|
|
318
|
-
true, // completeTask
|
|
319
|
-
"Aprovando processo", // comments
|
|
320
|
-
nextCardData, // cardData
|
|
321
|
-
false // managerMode
|
|
322
|
-
);
|
|
323
|
-
|
|
324
|
-
// Exemplo 5: Obter usuários disponíveis para uma atividade
|
|
325
|
-
const availableUsers = workflowService.getAvailableUsers("admin", "senha", 1, 12345, 3, 1);
|
|
326
|
-
for (const user of availableUsers.item) {
|
|
327
|
-
log.info(`Usuário disponível: ${user.userId} - ${user.userName}`);
|
|
328
|
-
}
|
|
329
|
-
|
|
330
|
-
// Exemplo 6: Cancelar uma instância
|
|
331
|
-
const cancelResult = workflowService.cancelInstance(
|
|
332
|
-
"admin", // username
|
|
333
|
-
"senha", // password
|
|
334
|
-
1, // companyId
|
|
335
|
-
12345, // processInstanceId
|
|
336
|
-
"admin", // userId
|
|
337
|
-
"Cancelamento solicitado pelo administrador" // cancelText
|
|
338
|
-
);
|
|
339
|
-
|
|
340
|
-
return result;
|
|
341
245
|
}
|
|
342
|
-
*/
|
|
343
246
|
|
|
344
|
-
export {};
|
|
247
|
+
export {};
|
package/types/java/java.d.ts
CHANGED
|
@@ -198,7 +198,7 @@ declare global {
|
|
|
198
198
|
namespace naming {
|
|
199
199
|
class InitialContext {
|
|
200
200
|
constructor()
|
|
201
|
-
lookup(dataSource: java.lang.String):
|
|
201
|
+
lookup(dataSource: java.lang.String): javax.sql.DataSource
|
|
202
202
|
}
|
|
203
203
|
}
|
|
204
204
|
namespace sql {
|