jsegd-fluig-types 1.0.26 → 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 +350 -111
- 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',
|
|
@@ -171,9 +159,44 @@ declare global {
|
|
|
171
159
|
message: message
|
|
172
160
|
toast: (options: Toast) => void
|
|
173
161
|
loading: (target: unknown, options?: object) => Loading
|
|
174
|
-
modal: (option: ModalSettings, callback
|
|
162
|
+
modal: (option: ModalSettings, callback?: (err: unknown, data: object) => void) => Modal
|
|
175
163
|
datatable: <T>(target: string, options: DatatableOptions<T>) => Datatable
|
|
176
164
|
autocomplete<T>(target: string | HTMLElement, options: object, callback?: (error: unknown, data: object) => void): Autocomplete<T>
|
|
165
|
+
ajax<T = any>(options: {
|
|
166
|
+
url: string
|
|
167
|
+
contentType?: string
|
|
168
|
+
dataType?: string
|
|
169
|
+
type?: HttpMethod
|
|
170
|
+
data?: any
|
|
171
|
+
async?: boolean
|
|
172
|
+
}, callback: (err: any, data: T) => void): void
|
|
173
|
+
rightbar(options: {
|
|
174
|
+
appendTo?: string
|
|
175
|
+
content: string
|
|
176
|
+
backdrop?: boolean
|
|
177
|
+
width?: string
|
|
178
|
+
height?: string | number
|
|
179
|
+
position?: string
|
|
180
|
+
}): void
|
|
181
|
+
sidebar(options: {
|
|
182
|
+
title: string
|
|
183
|
+
content: string
|
|
184
|
+
actions?: Array<{
|
|
185
|
+
label: string
|
|
186
|
+
bind?: string
|
|
187
|
+
classType?: string
|
|
188
|
+
autoClose?: boolean
|
|
189
|
+
btnLink?: boolean
|
|
190
|
+
hasIcon?: boolean
|
|
191
|
+
flaticon?: string
|
|
192
|
+
}>
|
|
193
|
+
}): void
|
|
194
|
+
calendar: {
|
|
195
|
+
formatDateTimeZone(date: number | string): string
|
|
196
|
+
}
|
|
197
|
+
utilities: {
|
|
198
|
+
ctrlIsPressed(event: Event): boolean
|
|
199
|
+
}
|
|
177
200
|
}
|
|
178
201
|
ECM: {
|
|
179
202
|
workflowView: {
|
|
@@ -193,10 +216,12 @@ declare global {
|
|
|
193
216
|
docFileOrigName: any
|
|
194
217
|
nameFileToBeSigned: any
|
|
195
218
|
counterSign: any
|
|
196
|
-
tabView: {
|
|
197
|
-
|
|
219
|
+
tabView: {
|
|
220
|
+
selectTab?: (tab: number) => void
|
|
221
|
+
}
|
|
222
|
+
availableStates: any[]
|
|
198
223
|
forecastedEffortType: number
|
|
199
|
-
appointments: any
|
|
224
|
+
appointments: any[]
|
|
200
225
|
adHocTask: boolean
|
|
201
226
|
userPermissions: string[]
|
|
202
227
|
processDefinition: {
|
|
@@ -208,51 +233,41 @@ declare global {
|
|
|
208
233
|
processInstanceId: number
|
|
209
234
|
}
|
|
210
235
|
sequence: number
|
|
236
|
+
selectOrderAttachment: number
|
|
237
|
+
attachments: Attachment[]
|
|
238
|
+
requesterId?: string
|
|
239
|
+
formId?: number
|
|
240
|
+
selectUserAutomatic?: any
|
|
241
|
+
resizeHeight?: () => void
|
|
242
|
+
}
|
|
243
|
+
attachmentTable: Datatable
|
|
244
|
+
newAttachmentsDocs: Attachment[]
|
|
245
|
+
documentPublisher: {
|
|
246
|
+
action?: string
|
|
247
|
+
doc?: {
|
|
248
|
+
documentType: string
|
|
249
|
+
principalFileName?: string
|
|
250
|
+
deleteUploadFiles?: boolean
|
|
251
|
+
companyId?: number
|
|
252
|
+
uploadFolder?: string
|
|
253
|
+
documentId?: number
|
|
254
|
+
version?: number
|
|
255
|
+
documentDescription?: string
|
|
256
|
+
}
|
|
257
|
+
panel?: any
|
|
258
|
+
createTabs?: () => void
|
|
211
259
|
}
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
getRow(index: number): { [key: string]: string }
|
|
260
|
+
documentTypes: {
|
|
261
|
+
WORKFLOWATTACHMENT: string
|
|
215
262
|
}
|
|
216
263
|
restUrl: string
|
|
264
|
+
WKFViewAttachment?: WKFViewAttachment
|
|
217
265
|
}
|
|
218
266
|
WCMAPI: WCMAPI
|
|
219
267
|
WKFViewAttachment: WKFViewAttachment
|
|
220
268
|
formMode: FormMod
|
|
221
|
-
ECM_WKFView:
|
|
222
|
-
|
|
223
|
-
validateBeforeSend(arg0: null, arg1: null, isAutomatic: boolean, pass: string, isTransfer: boolean): unknown
|
|
224
|
-
enableActionButtons(): unknown
|
|
225
|
-
enableSendButton(): unknown
|
|
226
|
-
getSelectedColleagues(): unknown
|
|
227
|
-
getFormData(): unknown
|
|
228
|
-
lastSelectedState: null
|
|
229
|
-
conditionsAutomatic: any
|
|
230
|
-
hideModals(): unknown
|
|
231
|
-
createUserSelectionModal(): unknown
|
|
232
|
-
createAdHoc(): unknown
|
|
233
|
-
sendRequest: (isAutomatic: boolean, isTransfer: boolean, pass: string) => void
|
|
234
|
-
load: any
|
|
235
|
-
lastSelectedState: null
|
|
236
|
-
conditionsAutomatic: any
|
|
237
|
-
selectActivity(): string
|
|
238
|
-
callFormFunction(functionName: string, args: any[]): Promise<boolean>
|
|
239
|
-
disableActionButtons(): unknown
|
|
240
|
-
movimentActivity(
|
|
241
|
-
arg0: boolean,
|
|
242
|
-
formData: any,
|
|
243
|
-
selectedColleague: any,
|
|
244
|
-
selectedState: any,
|
|
245
|
-
arg4: boolean,
|
|
246
|
-
isAutomatic: boolean,
|
|
247
|
-
arg6: null,
|
|
248
|
-
isReturn: any,
|
|
249
|
-
passValue: string | number | string[],
|
|
250
|
-
subProcessId: string,
|
|
251
|
-
subProcessSequence: string,
|
|
252
|
-
arg11: boolean,
|
|
253
|
-
isTransfer: boolean
|
|
254
|
-
): unknown
|
|
255
|
-
}
|
|
269
|
+
ECM_WKFView: ECM_WKFView
|
|
270
|
+
|
|
256
271
|
}
|
|
257
272
|
|
|
258
273
|
// Funções globais do Fluig
|
|
@@ -271,9 +286,12 @@ declare global {
|
|
|
271
286
|
selectedIndex: number[]
|
|
272
287
|
}
|
|
273
288
|
class Datatable {
|
|
274
|
-
reload<T>(data: DataRequest<T>): void
|
|
289
|
+
reload<T>(data: DataRequest<T> | DataRequest<T>[]): void
|
|
275
290
|
on(event: string, callback: (data: DataCallback) => void): void
|
|
276
|
-
getRow(index: number, isHtml
|
|
291
|
+
getRow(index: number, isHtml?: boolean): any
|
|
292
|
+
getData(): any[]
|
|
293
|
+
selectedRows(): number[]
|
|
294
|
+
updateRow(index: number, data: any): void
|
|
277
295
|
showLoading(): void
|
|
278
296
|
hideLoading(): void
|
|
279
297
|
}
|
|
@@ -298,9 +316,44 @@ declare global {
|
|
|
298
316
|
static message: message
|
|
299
317
|
static toast: (options: Toast) => void
|
|
300
318
|
static loading: (option: unknown) => Loading
|
|
301
|
-
static modal: (option: ModalSettings, callback
|
|
319
|
+
static modal: (option: ModalSettings, callback?: (err: unknown, data: object) => void) => Modal
|
|
302
320
|
static datatable: <T>(target: string, options: DatatableOptions<T>) => Datatable
|
|
303
321
|
static autocomplete<T>(target: string | HTMLElement, options: object, callback?: (error: unknown, data: object) => void): Autocomplete<T>
|
|
322
|
+
static ajax<T = any>(options: {
|
|
323
|
+
url: string
|
|
324
|
+
contentType?: string
|
|
325
|
+
dataType?: string
|
|
326
|
+
type?: HttpMethod
|
|
327
|
+
data?: any
|
|
328
|
+
async?: boolean
|
|
329
|
+
}, callback: (err: any, data: T) => void): void
|
|
330
|
+
static rightbar(options: {
|
|
331
|
+
appendTo?: string
|
|
332
|
+
content: string
|
|
333
|
+
backdrop?: boolean
|
|
334
|
+
width?: string
|
|
335
|
+
height?: string | number
|
|
336
|
+
position?: string
|
|
337
|
+
}): void
|
|
338
|
+
static sidebar(options: {
|
|
339
|
+
title: string
|
|
340
|
+
content: string
|
|
341
|
+
actions?: Array<{
|
|
342
|
+
label: string
|
|
343
|
+
bind?: string
|
|
344
|
+
classType?: string
|
|
345
|
+
autoClose?: boolean
|
|
346
|
+
btnLink?: boolean
|
|
347
|
+
hasIcon?: boolean
|
|
348
|
+
flaticon?: string
|
|
349
|
+
}>
|
|
350
|
+
}): void
|
|
351
|
+
static calendar: {
|
|
352
|
+
formatDateTimeZone(date: number | string): string
|
|
353
|
+
}
|
|
354
|
+
static utilities: {
|
|
355
|
+
ctrlIsPressed(event: Event): boolean
|
|
356
|
+
}
|
|
304
357
|
static switcher: {
|
|
305
358
|
onInitSendScope(element: any, scope: any, arg2: (element: any, event: any, scope: any) => void): unknown
|
|
306
359
|
enable(arg0: string): unknown
|
|
@@ -355,15 +408,55 @@ declare global {
|
|
|
355
408
|
// =============================
|
|
356
409
|
|
|
357
410
|
class WKFViewAttachment {
|
|
411
|
+
// Propriedades
|
|
412
|
+
currentAttachmentSize: number
|
|
413
|
+
attachmentsDocs: Record<string, any>
|
|
414
|
+
jFileUpload: any
|
|
415
|
+
defFullPath: string
|
|
416
|
+
defHasApprovers: boolean
|
|
417
|
+
userPermissions: string[] | null
|
|
418
|
+
workflowDetail: any
|
|
419
|
+
parent: any
|
|
420
|
+
rowsSelected: number[]
|
|
421
|
+
filter: string | null
|
|
422
|
+
filterType: 'title' | 'user' | 'activity'
|
|
423
|
+
filterDateStart: string | null
|
|
424
|
+
filterDateEnd: string | null
|
|
425
|
+
keyTimer: number
|
|
426
|
+
datasUpload: any
|
|
427
|
+
progress: number
|
|
428
|
+
officeExtensions: string[]
|
|
429
|
+
|
|
430
|
+
// Métodos principais
|
|
358
431
|
removeAttach(indexes: number[]): void
|
|
359
432
|
getAllAttachments(): Attachment[]
|
|
433
|
+
getNewAttachments(): Attachment[]
|
|
434
|
+
getAttachment(documentId: number): Attachment | undefined
|
|
360
435
|
openAttachmentView(colleagueId: string, docId: number, docVersion: number): void
|
|
361
436
|
confirmRemoveAttach(index: number[]): void
|
|
362
437
|
checkAllAttachments(): void
|
|
363
438
|
desmarkAllCheckbox(): void
|
|
364
439
|
selectedRowOpenAttachmentView(): void
|
|
365
440
|
downloadAttach(indexes: number[]): void
|
|
441
|
+
downloadAttachments(attachments: string[]): void
|
|
442
|
+
deleteAttachments(attachments: any): void
|
|
366
443
|
attachEdit(attach: { [key: string]: string }, index: number): void
|
|
444
|
+
|
|
445
|
+
// Métodos de controle
|
|
446
|
+
updateAttachmentStatus(): void
|
|
447
|
+
loadAttachments(): void
|
|
448
|
+
searchTable(el: any, ev: any): void
|
|
449
|
+
applyFilters(): void
|
|
450
|
+
closeFilters(): void
|
|
451
|
+
clearFilters(el: any): void
|
|
452
|
+
changeSearchField(el: any, ev: any): void
|
|
453
|
+
cleanNewAttachmentsDocs(): void
|
|
454
|
+
updateAttachment(attachment: any): void
|
|
455
|
+
|
|
456
|
+
// Métodos de publicação
|
|
457
|
+
publishFile(index: number): void
|
|
458
|
+
createFindDocumentModal(index: number): void
|
|
459
|
+
createPublishModal(index: number, selectedDocument: any): void
|
|
367
460
|
}
|
|
368
461
|
|
|
369
462
|
class Attachment {
|
|
@@ -375,8 +468,11 @@ declare global {
|
|
|
375
468
|
newAttach: boolean
|
|
376
469
|
description: string
|
|
377
470
|
documentId: number
|
|
471
|
+
documentType?: string
|
|
378
472
|
attachedUser: string
|
|
379
473
|
attachedActivity: string
|
|
474
|
+
attachedDate: string
|
|
475
|
+
attachedDateNotFormated?: number
|
|
380
476
|
attachments: Array<{
|
|
381
477
|
attach: boolean
|
|
382
478
|
principal: boolean
|
|
@@ -392,9 +488,9 @@ declare global {
|
|
|
392
488
|
deleted: boolean
|
|
393
489
|
iconClass: string
|
|
394
490
|
iconUrl: boolean
|
|
491
|
+
iconPath?: string
|
|
395
492
|
colleagueId: string
|
|
396
493
|
version: number
|
|
397
|
-
attachedDate: string
|
|
398
494
|
}
|
|
399
495
|
|
|
400
496
|
// =============================
|
|
@@ -406,69 +502,87 @@ declare global {
|
|
|
406
502
|
// =============================
|
|
407
503
|
|
|
408
504
|
class WCMAPI {
|
|
409
|
-
|
|
505
|
+
// Propriedades
|
|
410
506
|
userCode: string
|
|
411
507
|
tenantURL: string
|
|
412
|
-
convertFtlAsync(): string
|
|
413
|
-
generateId(): string
|
|
414
508
|
userEmail: string
|
|
415
509
|
userLogin: string
|
|
416
510
|
user: string
|
|
511
|
+
organizationId: number
|
|
512
|
+
serverURL: string
|
|
513
|
+
|
|
514
|
+
// Métodos de servidor
|
|
515
|
+
getServerURL(): string
|
|
417
516
|
getTenantCode(): string
|
|
418
517
|
getProtectedContextPath(): string
|
|
419
|
-
|
|
518
|
+
getUploadURL(): string
|
|
519
|
+
|
|
520
|
+
// Métodos utilitários
|
|
521
|
+
convertFtlAsync(): string
|
|
522
|
+
generateId(): string
|
|
523
|
+
getUserCode(): string
|
|
524
|
+
isIe(): boolean
|
|
525
|
+
isIe9(): boolean
|
|
526
|
+
|
|
527
|
+
// Event listener
|
|
528
|
+
addListener(obj: any, eventName: string, callback: (eventName: string, data: any) => void): void
|
|
529
|
+
|
|
530
|
+
// Requisições AJAX
|
|
531
|
+
Create(options: {
|
|
420
532
|
url: string
|
|
421
|
-
async
|
|
422
|
-
data
|
|
423
|
-
processInstanceId
|
|
424
|
-
processId
|
|
425
|
-
version
|
|
426
|
-
taskUserId
|
|
427
|
-
completeTask
|
|
428
|
-
currentMovto
|
|
429
|
-
managerMode
|
|
430
|
-
selectedDestinyAfterAutomatic
|
|
431
|
-
conditionAfterAutomatic
|
|
432
|
-
selectedColleague
|
|
433
|
-
comments
|
|
434
|
-
newObservations
|
|
435
|
-
appointments
|
|
436
|
-
attachments
|
|
437
|
-
pass
|
|
438
|
-
digitalSignature
|
|
439
|
-
formData
|
|
440
|
-
deleteUploadFiles
|
|
441
|
-
isDigitalSigned
|
|
442
|
-
isLinkReturn
|
|
443
|
-
versionDoc
|
|
444
|
-
selectedState
|
|
445
|
-
internalFields
|
|
446
|
-
subProcessId
|
|
447
|
-
subProcessSequence
|
|
448
|
-
transferTaskAfterSelection
|
|
449
|
-
currentState
|
|
533
|
+
async?: boolean
|
|
534
|
+
data?: {
|
|
535
|
+
processInstanceId?: number
|
|
536
|
+
processId?: any
|
|
537
|
+
version?: any
|
|
538
|
+
taskUserId?: any
|
|
539
|
+
completeTask?: any
|
|
540
|
+
currentMovto?: any
|
|
541
|
+
managerMode?: boolean
|
|
542
|
+
selectedDestinyAfterAutomatic?: any
|
|
543
|
+
conditionAfterAutomatic?: any
|
|
544
|
+
selectedColleague?: any
|
|
545
|
+
comments?: string
|
|
546
|
+
newObservations?: any
|
|
547
|
+
appointments?: any
|
|
548
|
+
attachments?: any
|
|
549
|
+
pass?: any
|
|
550
|
+
digitalSignature?: any
|
|
551
|
+
formData?: any
|
|
552
|
+
deleteUploadFiles?: any
|
|
553
|
+
isDigitalSigned?: any
|
|
554
|
+
isLinkReturn?: any
|
|
555
|
+
versionDoc?: any
|
|
556
|
+
selectedState?: any
|
|
557
|
+
internalFields?: any
|
|
558
|
+
subProcessId?: any
|
|
559
|
+
subProcessSequence?: any
|
|
560
|
+
transferTaskAfterSelection?: any
|
|
561
|
+
currentState?: number
|
|
562
|
+
[key: string]: any
|
|
450
563
|
}
|
|
451
|
-
styleGuide
|
|
452
|
-
success
|
|
453
|
-
content
|
|
454
|
-
processLinkMessage
|
|
455
|
-
processInstanceId
|
|
456
|
-
currentMovto
|
|
457
|
-
nrDoc
|
|
458
|
-
versionDoc
|
|
459
|
-
status
|
|
460
|
-
selectedDestinyAfterAutomatic
|
|
461
|
-
conditionAfterAutomatic
|
|
462
|
-
availableUsers
|
|
463
|
-
availableStates
|
|
464
|
-
sequence
|
|
465
|
-
subProcessCreated
|
|
466
|
-
nameFileToBeSigned
|
|
467
|
-
docFileOrigName
|
|
468
|
-
signPath
|
|
564
|
+
styleGuide?: boolean
|
|
565
|
+
success?: (data: {
|
|
566
|
+
content?: any
|
|
567
|
+
processLinkMessage?: any
|
|
568
|
+
processInstanceId?: string | number
|
|
569
|
+
currentMovto?: any
|
|
570
|
+
nrDoc?: any
|
|
571
|
+
versionDoc?: any
|
|
572
|
+
status?: number
|
|
573
|
+
selectedDestinyAfterAutomatic?: any
|
|
574
|
+
conditionAfterAutomatic?: any
|
|
575
|
+
availableUsers?: { isCollectiveTask: any; users: any }
|
|
576
|
+
availableStates?: any
|
|
577
|
+
sequence?: any
|
|
578
|
+
subProcessCreated?: null
|
|
579
|
+
nameFileToBeSigned?: any
|
|
580
|
+
docFileOrigName?: any
|
|
581
|
+
signPath?: any
|
|
582
|
+
[key: string]: any
|
|
469
583
|
}) => void
|
|
470
|
-
error
|
|
471
|
-
complete
|
|
584
|
+
error?: (err: { responseText: string }) => void
|
|
585
|
+
complete?: (xhr: any, status: any) => Promise<void> | void
|
|
472
586
|
}): unknown
|
|
473
587
|
}
|
|
474
588
|
|
|
@@ -480,5 +594,130 @@ declare global {
|
|
|
480
594
|
static setMessage(message: string): void
|
|
481
595
|
static setVisible(visible: boolean): void
|
|
482
596
|
}
|
|
597
|
+
|
|
598
|
+
class ECM_WKFView {
|
|
599
|
+
// Propriedades de estado
|
|
600
|
+
workflowDetail: boolean
|
|
601
|
+
more: boolean
|
|
602
|
+
sendModal: any
|
|
603
|
+
needValidateUser: boolean
|
|
604
|
+
timeoutSearchColleague: any
|
|
605
|
+
colleaguesAutocomplete: Autocomplete<any> | null
|
|
606
|
+
showCancel: boolean
|
|
607
|
+
movimentWindow: boolean
|
|
608
|
+
reloadingCard: boolean
|
|
609
|
+
currentEvent: string
|
|
610
|
+
isCancelable: boolean
|
|
611
|
+
availableUsersInit: any[]
|
|
612
|
+
|
|
613
|
+
// Propriedades de widgets relacionados
|
|
614
|
+
wkfViewObservation: any
|
|
615
|
+
wkfViewProcess: any
|
|
616
|
+
wkfViewHistory: any
|
|
617
|
+
wkfViewAttachment: WKFViewAttachment | null
|
|
618
|
+
wkfViewAppointments: any
|
|
619
|
+
|
|
620
|
+
// Propriedades de processo
|
|
621
|
+
detailsProcessInstanceID: number
|
|
622
|
+
processId: string
|
|
623
|
+
processInstanceId: number
|
|
624
|
+
taskUserId: string
|
|
625
|
+
nrDoc: number
|
|
626
|
+
versionDoc: number
|
|
627
|
+
currentMovto: number
|
|
628
|
+
managerMode: boolean
|
|
629
|
+
afterRedirectMessage: string
|
|
630
|
+
|
|
631
|
+
// Propriedades de configuração
|
|
632
|
+
userSearch: string
|
|
633
|
+
initUser: number
|
|
634
|
+
urlHistory: string
|
|
635
|
+
allowComplements: boolean
|
|
636
|
+
complementsLevel: number
|
|
637
|
+
buttonTakeTask: boolean
|
|
638
|
+
newRequest: boolean
|
|
639
|
+
reloadSvg: boolean
|
|
640
|
+
messagePage: Record<string, any>
|
|
641
|
+
|
|
642
|
+
// Constantes e configurações
|
|
643
|
+
WorkflowActions: {
|
|
644
|
+
SAVE: number
|
|
645
|
+
MOVE: number
|
|
646
|
+
}
|
|
647
|
+
conditionsAutomatic: {
|
|
648
|
+
selectedDestinyAfterAutomatic: number
|
|
649
|
+
conditionAfterAutomatic: number
|
|
650
|
+
}
|
|
651
|
+
lastSelectedState: any
|
|
652
|
+
|
|
653
|
+
// Loading
|
|
654
|
+
load: {
|
|
655
|
+
loading?: Loading
|
|
656
|
+
show(): void
|
|
657
|
+
hide(): void
|
|
658
|
+
}
|
|
659
|
+
|
|
660
|
+
// Métodos de ação principais
|
|
661
|
+
save(): void
|
|
662
|
+
transfer(): void
|
|
663
|
+
send(): void
|
|
664
|
+
sendRequestEvent(): void
|
|
665
|
+
sendAutomaticRequest(): void
|
|
666
|
+
cancelAutomaticRequest(): void
|
|
667
|
+
sendTransferRequest(): void
|
|
668
|
+
sendRequest(isAutomatic: boolean, isTransfer: boolean, pass?: string): void
|
|
669
|
+
|
|
670
|
+
// Métodos de navegação
|
|
671
|
+
back(): void
|
|
672
|
+
backModal(): void
|
|
673
|
+
backBtn(): void
|
|
674
|
+
|
|
675
|
+
// Métodos de cancelamento
|
|
676
|
+
cancel(): void
|
|
677
|
+
cancelRequest(): void
|
|
678
|
+
|
|
679
|
+
// Métodos de controle de interface
|
|
680
|
+
enableSendButton(): void
|
|
681
|
+
disableSendButton(): void
|
|
682
|
+
enableActionButtons(): void
|
|
683
|
+
disableActionButtons(): void
|
|
684
|
+
hideModals(): void
|
|
685
|
+
closeModal(): void
|
|
686
|
+
|
|
687
|
+
// Métodos de modal
|
|
688
|
+
createUserSelectionModal(processInstanceId: any, isFormField: any, pass: any): void
|
|
689
|
+
createAdHoc(): void
|
|
690
|
+
|
|
691
|
+
// Métodos de formulário
|
|
692
|
+
callFormFunction(functionName: string, args: any[]): Promise<boolean>
|
|
693
|
+
getSelectedColleagues(): any
|
|
694
|
+
getFormData(): any
|
|
695
|
+
|
|
696
|
+
// Métodos de atividade
|
|
697
|
+
selectActivity(): string
|
|
698
|
+
movimentActivity(
|
|
699
|
+
completeTask: boolean,
|
|
700
|
+
formData: any,
|
|
701
|
+
selectedColleague: any,
|
|
702
|
+
selectedState: any,
|
|
703
|
+
showMessage: boolean,
|
|
704
|
+
isAutomatic: boolean,
|
|
705
|
+
onComplete: any,
|
|
706
|
+
isReturn: any,
|
|
707
|
+
passValue: string | number | string[],
|
|
708
|
+
subProcessId: string,
|
|
709
|
+
subProcessSequence: string,
|
|
710
|
+
hideModal: boolean,
|
|
711
|
+
transferTaskAfterSelection: boolean
|
|
712
|
+
): void
|
|
713
|
+
|
|
714
|
+
// Métodos de validação
|
|
715
|
+
validateBeforeSend(activity: any, completeTask: any, isAutomatic: boolean, pass?: string, isTransfer?: boolean): any
|
|
716
|
+
|
|
717
|
+
// Métodos de atualização de status
|
|
718
|
+
updateAdHocStatus(qtt: number): void
|
|
719
|
+
updateComplementsStatus(qtt: number): void
|
|
720
|
+
updateAttachmentStatus(qtt: number): void
|
|
721
|
+
}
|
|
483
722
|
}
|
|
484
723
|
export {}
|
|
@@ -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 {
|