dts-backoffice-util 17.0.0 → 17.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/README.md +407 -335
- package/esm2022/lib/services/validate.service.mjs +42 -0
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/dts-backoffice-util.mjs +40 -2
- package/fesm2022/dts-backoffice-util.mjs.map +1 -1
- package/lib/services/validate.service.d.ts +12 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
package/README.md
CHANGED
|
@@ -12,7 +12,7 @@ Segue abaixo as últimas versões da Biblioteca, conforme a versão do PO-UI e A
|
|
|
12
12
|
|
|
13
13
|
| PO-UI | Angular | Versão dtsBackofficeUtil |
|
|
14
14
|
|-|-|-|
|
|
15
|
-
| v17 | v17 | 17.
|
|
15
|
+
| v17 | v17 | 17.1.0 |
|
|
16
16
|
| v16 | v16 | 16.1.0 |
|
|
17
17
|
| v15 | v15 | 15.4.1 |
|
|
18
18
|
| v14 | v14 | 14.4.1 |
|
|
@@ -34,35 +34,189 @@ npm install dts-backoffice-util
|
|
|
34
34
|
|
|
35
35
|
<br>
|
|
36
36
|
|
|
37
|
-
# Componentes
|
|
37
|
+
# Componentes
|
|
38
38
|
|
|
39
|
+
## TotvsScheduleExecutionComponent
|
|
39
40
|
<br>
|
|
40
41
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
**Objetivo:** Realizar o controle do idioma corrente, considerando o que estiver parametrizado no Cadastro de Usuários do Datasul, e caso não esteja informado, será considerado o idioma informado no Browse.
|
|
42
|
+
**Objetivo:** Componente para realização de agendamentos RPW.
|
|
44
43
|
|
|
45
|
-
|
|
44
|
+
**Dependências:** Para usar esse componente deve ser instalado no projeto o pacote rxjs-compat.<br/>
|
|
45
|
+
```cmd
|
|
46
|
+
npm i rxjs-compat --save
|
|
46
47
|
```
|
|
47
|
-
|
|
48
|
+
**Importação:** No módulo da aplicação importar o módulo abaixo:
|
|
49
|
+
```ts
|
|
50
|
+
@NgModule({
|
|
51
|
+
declarations: [
|
|
52
|
+
...
|
|
53
|
+
],
|
|
54
|
+
imports: [
|
|
55
|
+
...,
|
|
56
|
+
DtsBackofficeUtilsModule.forRoot()
|
|
57
|
+
],
|
|
58
|
+
providers: [],
|
|
59
|
+
bootstrap: [...]
|
|
60
|
+
})
|
|
48
61
|
```
|
|
49
62
|
|
|
50
|
-
|
|
63
|
+
**Parâmetros:**
|
|
64
|
+
|
|
65
|
+
| Nome | Tipo | Obrigatório | Descrição |
|
|
66
|
+
|-|-|-|-|
|
|
67
|
+
| programName | string | Sim | Código de Programa cadastrado no menu, do programa que será executado no RPW. |
|
|
68
|
+
| externalName | string | Sim | Nome completo do Programa que será executado no RPW, diretório + nome externo.<br>**Importante:** Em virtude do dicionário (Foundation), este parâmetro é limitado a 24 dígitos. |
|
|
69
|
+
| programEMS5 | boolean | Não | Indica se o programa progress é do EMS5. |
|
|
70
|
+
| programStyle | number | Não | Número que representa o Estilo do Relatório no EMS5. |
|
|
71
|
+
| programVersion | string | Não | Versão do programa progress. |
|
|
72
|
+
| parameters | Array | Sim | Objeto representando a Temp-Table que será enviada ao progress. |
|
|
73
|
+
| paramDigitDef | Array | Não | Definição da Temp-Table tt-digita. Utilizado apenas pelo EMS2. Para cada campo da tt-digita, deve ser enviado um objeto com o seguinte formato: **{"chave": "string", "tipo": "string" }**. Onde **chave** representa o nome do campo, e **tipo** representa o tipo de dado (exemplo: character, integer, etc...). |
|
|
74
|
+
| paramDigitData | Array | Não | Dados que serão enviados e alimentados na tt-digita. Utilizado apenas pelo EMS2. |
|
|
75
|
+
| paramSelections | Array | Não | Parâmetros de Seleção. Utilizado apenas pelo EMS5. |
|
|
76
|
+
| disabledParams | boolean | Não | Quando for igual a **"Sim"**, irá desabilitar todos os campos do Agendamento (Data Execução, Servidor, Repetir ocorrência, etc...). |
|
|
77
|
+
| loading | boolean | Não | Quando for igual a **"Sim"**, irá apresentar a tela de "loading" no momento da criação da agenda até o retorno do serviço. |
|
|
78
|
+
| endExecution | EventEmitter | Não | Evento que será disparado ao finalizar o agendamento. Ele irá enviar como parâmetro um objeto da interface **IScheduleParameters**, contendo os parâmetros informados pelo usuário. |
|
|
79
|
+
---
|
|
80
|
+
**Métodos:**
|
|
51
81
|
|
|
52
82
|
| Nome | Descrição |
|
|
53
83
|
|-|-|
|
|
54
|
-
|
|
|
55
|
-
|
|
|
84
|
+
| setScheduleParameters | Atualiza as informações de agendamento com base no objeto que foi enviado como parâmetro.<br>**Parâmetros:**<br>- schParam (**IScheduleParameters**): Objeto com as informações do agendamento (Data Execução, Servidor, Repetir ocorrência, etc...).<br>**Retorno:** Não há. |
|
|
85
|
+
| getScheduleParameters | Retorna um objeto da interface **IScheduleParameters**, contendo os atuais parâmetros informados pelo usuário na tela de agendamento.<br>**Parâmetros:** Não há.<br>**Retorno:**<br>- schParam (**IScheduleParameters**): Objeto com as informações do agendamento (Data Execução, Servidor, Repetir ocorrência, etc...). |
|
|
56
86
|
---
|
|
87
|
+
**Exemplo de Uso:**
|
|
88
|
+
|
|
89
|
+
Em conjunto com o parâmetro **endExecution** o método **setScheduleParameters** pode ser utilizado para salvar e recuperar as informações de agendamento informadas pelo usuário.
|
|
90
|
+
|
|
91
|
+
**Definições no HTML:**
|
|
92
|
+
```html
|
|
93
|
+
// EXEMPLO PARA EMS5
|
|
94
|
+
<app-totvs-schedule-execution #schParam
|
|
95
|
+
programName="rpt_grp_repres"
|
|
96
|
+
externalName="rpt_grp_repres"
|
|
97
|
+
programEMS5="true"
|
|
98
|
+
programStyle="40"
|
|
99
|
+
programVersion="1.00.00.004"
|
|
100
|
+
[parameters]="parametersRpw"
|
|
101
|
+
[paramSelections]="paramSelectionsRpw"
|
|
102
|
+
(endExecution)="endExecutionSchedule($event)">
|
|
103
|
+
</app-totvs-schedule-execution>
|
|
104
|
+
|
|
105
|
+
// EXEMPLO PARA EMS2
|
|
106
|
+
<app-totvs-schedule-execution #schParam
|
|
107
|
+
programName="pdapi701"
|
|
108
|
+
externalName="pdp/pdapi701.p"
|
|
109
|
+
[parameters]="parametersRpw"
|
|
110
|
+
[paramDigitDef]="paramDigitDefRpw"
|
|
111
|
+
[paramDigitData]="paramDigitDataRpw"
|
|
112
|
+
(endExecution)="endExecutionSchedule($event)">
|
|
113
|
+
</app-totvs-schedule-execution>
|
|
114
|
+
```
|
|
115
|
+
**Definições no JavaScript:**
|
|
116
|
+
```ts
|
|
117
|
+
@ViewChild('schParam', { static: true }) schParam: TotvsScheduleExecutionComponent;
|
|
118
|
+
|
|
119
|
+
scheduleParams: IScheduleParameters;
|
|
120
|
+
parametersRpw = new Array<any>();
|
|
121
|
+
paramDigitDefRpw = new Array<any>();
|
|
122
|
+
paramDigitDataRpw = new Array<any>();
|
|
123
|
+
paramSelectionsRpw = new Array<any>();
|
|
124
|
+
|
|
125
|
+
ngOnInit(): void {
|
|
126
|
+
this.loadLocalStorage();
|
|
127
|
+
this.schParam.setScheduleParameters(this.scheduleParams);
|
|
128
|
+
|
|
129
|
+
this.createParametersRpw();
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
createParametersRpw(): void {
|
|
133
|
+
// Parâmetros
|
|
134
|
+
this.parametersRpw = [
|
|
135
|
+
{ chave: 'destino', valor: 2, tipo: 'integer' },
|
|
136
|
+
{ chave: 'arquivo', valor: '', tipo: 'character' },
|
|
137
|
+
{ chave: 'usuario', valor: 'FERNANDO', tipo: 'character' },
|
|
138
|
+
{ chave: 'perfil', valor: 880, tipo: 'integer' }
|
|
139
|
+
];
|
|
140
|
+
|
|
141
|
+
// Definição da tt-digita (EMS2)
|
|
142
|
+
this.paramDigitDefRpw = [
|
|
143
|
+
{ chave: 'cod-estab', tipo: 'character' },
|
|
144
|
+
{ chave: 'cod-ccusto', tipo: 'integer' }
|
|
145
|
+
];
|
|
146
|
+
|
|
147
|
+
// Dados da tt-digita (EMS2)
|
|
148
|
+
this.paramDigitDataRpw = [
|
|
149
|
+
{ "cod-estab": '19', "cod-ccusto": 17 },
|
|
150
|
+
{ "cod-estab": '28', "cod-ccusto": 11 },
|
|
151
|
+
{ "cod-estab": '73', "cod-ccusto": 90 }
|
|
152
|
+
];
|
|
153
|
+
|
|
154
|
+
// Seleção (Relatório Regra/Exceção do EMS5)
|
|
155
|
+
this.paramSelectionsRpw = [
|
|
156
|
+
{ ind_dwb_set_type: "Regra", cod_dwb_set: "estab",
|
|
157
|
+
cod_dwb_set_initial: "01", cod_dwb_set_final: "FF", log_dwb_rule: true },
|
|
158
|
+
{ ind_dwb_set_type: "Exceção", cod_dwb_set: "ccusto",
|
|
159
|
+
cod_dwb_set_initial: "30", cod_dwb_set_final: "35", log_dwb_rule: false }
|
|
160
|
+
]
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
endExecutionSchedule(event): void {
|
|
164
|
+
this.scheduleParams = event;
|
|
165
|
+
this.saveLocalStorage();
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
private saveLocalStorage(): void {
|
|
169
|
+
if (typeof (Storage) === 'undefined') { return; }
|
|
170
|
+
localStorage.setItem('param-maint.schParam', JSON.stringify(this.scheduleParams));
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
private loadLocalStorage(): void {
|
|
174
|
+
if (typeof (Storage) === 'undefined') { return; }
|
|
175
|
+
this.scheduleParams = JSON.parse(localStorage.getItem('param-maint.schParam'));
|
|
176
|
+
}
|
|
177
|
+
```
|
|
178
|
+
**Definições no Progress:**
|
|
179
|
+
```
|
|
180
|
+
DEFINE TEMP-TABLE tt-param NO-UNDO
|
|
181
|
+
FIELD destino AS INTEGER
|
|
182
|
+
FIELD arquivo AS CHARACTER
|
|
183
|
+
FIELD usuario AS CHARACTER
|
|
184
|
+
FIELD perfil AS INTEGER.
|
|
185
|
+
|
|
186
|
+
DEFINE TEMP-TABLE tt-digita NO-UNDO
|
|
187
|
+
FIELD cod-estab AS CHARACTER
|
|
188
|
+
FIELD cod-ccusto AS INTEGER.
|
|
189
|
+
```
|
|
57
190
|
|
|
191
|
+
Interfaces:
|
|
192
|
+
|
|
193
|
+
IScheduleParameters
|
|
194
|
+
| Nome | Tipo | Descrição | Valor - Label Valor |
|
|
195
|
+
|-|-|-|-|
|
|
196
|
+
| executionType | number | Tipo Execução | 1 - Executar Hoje<br>2 - Agendar Execução |
|
|
197
|
+
| execAppointDate | date | Data Agendada | |
|
|
198
|
+
| execAppointHour | string | Hora Agendada | |
|
|
199
|
+
| executionServer | string | Servidor RPW | |
|
|
200
|
+
| repeatExecution | boolean | Repetir Ocorrência | |
|
|
201
|
+
| repeatType | number | Tipo Repetição | 1 - Diária<br>2 - Semanal<br>3 - Mensal |
|
|
202
|
+
| frequency | string | Frequência | "no" - Uma vez no dia<br>"yes" - Várias vezes no dia |
|
|
203
|
+
| frequencyValue | number | Quantidade da Frequência | |
|
|
204
|
+
| frequencyType | string | Tipo Frequência | "hour" - Hora(s)<br>"minute" - Minuto(s) |
|
|
205
|
+
| execAppointHourInit | string | Hora Inicial Frequência | |
|
|
206
|
+
| execAppointHourFinal | string | Hora Final Frequência | |
|
|
207
|
+
| selectWeeklys | Array | Dia da Semana<br>Frequência Semanal | Sunday - Domingo<br>Monday - Segunda<br>Tuesday - Terça<br>Wednesday - Quarta<br>Thursday - Quinta<br>Friday - Sexta<br>Saturday - Sábado |
|
|
208
|
+
| dayOfMonth | number | Dia do Mês<br>Frequência Mensal | |
|
|
209
|
+
---
|
|
58
210
|
<br>
|
|
59
211
|
|
|
60
|
-
#
|
|
212
|
+
# Pipes
|
|
213
|
+
|
|
214
|
+
## dtsDateFormat
|
|
61
215
|
|
|
62
216
|
**Objetivo:** PIPE para formatar datas, ele foi criado pois o PIPE date do angular não consegue formatada datas inferiores a 1901.
|
|
63
217
|
|
|
64
218
|
**Importação:** No módulo de funcionalidade importar o módulo abaixo:
|
|
65
|
-
```
|
|
219
|
+
```ts
|
|
66
220
|
@NgModule({
|
|
67
221
|
declarations: [
|
|
68
222
|
...
|
|
@@ -77,7 +231,7 @@ Métodos:
|
|
|
77
231
|
```
|
|
78
232
|
|
|
79
233
|
Exemplo de uso:
|
|
80
|
-
```
|
|
234
|
+
```html
|
|
81
235
|
<po-info p-label="Data"
|
|
82
236
|
[p-value]="date | dtsDateFormat : 'dd/MM/yyyy'">
|
|
83
237
|
</po-info>
|
|
@@ -86,22 +240,49 @@ Exemplo de uso:
|
|
|
86
240
|
[p-value]="date | dtsDateFormat : 'MM/dd/yyyy'">
|
|
87
241
|
</po-info>
|
|
88
242
|
```
|
|
243
|
+
<br>
|
|
244
|
+
|
|
245
|
+
# Serviços
|
|
246
|
+
|
|
247
|
+
## BreadcrumbControlService
|
|
248
|
+
|
|
249
|
+
**Objetivo:** Realiza a criação e controle do breadcrumb das telas.
|
|
250
|
+
|
|
251
|
+
**Importação:**
|
|
252
|
+
```ts
|
|
253
|
+
import { BreadcrumbControlService } from 'dts-backoffice-util';
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
**Métodos:**
|
|
257
|
+
|
|
258
|
+
| Nome | Descrição |
|
|
259
|
+
|-|-|
|
|
260
|
+
| newBreadcrumb | "Reinicia" o breadcrumb quando necessário. Ex: Telas que possuem menu lateral, ao passar de um menu para outro, o breadcrumb deve ser reiniciado.<br>**Parâmetros:** Não há.<br>**Retorno:** Não há. |
|
|
261
|
+
| addBreadcrumb | Adiciona um item ao breadcrumb, considerando a URL atual da tela.<br>**Parâmetros:**<br>- literal (string): Nome da tela que será apresentado no breadcrumb.<br>- activatedRoute (ActivatedRoute): ActivedRoute da tela.<br>**Retorno:** Não há. |
|
|
262
|
+
| addBreadcrumbURL | Adiciona um item ao breadcrumb, informando uma URL específica.<br>**Parâmetros:**<br>- literal (string): Nome da tela que será apresentado no breadcrumb.<br>- url (string): URL específica.<br>**Retorno:** Não há. |
|
|
263
|
+
| updBreadcrumbURL | Altera uma informação qualquer contida na URL do item informado.<br>**Parâmetros:**<br>- literal (string): Nome da tela que está no breadcrumb.<br>- valueOld (string): Valor a ser substituído.<br>- valueNew (string): Novo valor.<br>**Retorno:** Não há. |
|
|
264
|
+
| delBreadcrumb | Exclui um item do breadcrumb.<br>**Parâmetros:**<br>- literal (string): Nome do item (nome da tela), que deve ser excluído do breadcrumb.<br>**Retorno:** Não há. |
|
|
265
|
+
| getBreadcrumb | Retorna o breadcrumb atual completo.<br>**Parâmetros:** Não há.<br>**Retorno:**<br>- breadcrumb (PoBreadcrumb) |
|
|
266
|
+
| getCurrentRouter | Retorna a URL do breadcrumb do item corrente.<br>**Parâmetros:** Não há.<br>**Retorno:**<br>- url (string) |
|
|
267
|
+
| getPrevRouter | Retorna a URL do breadcrumb do item anterior.<br>**Parâmetros:** Não há.<br>**Retorno:**<br>- url (string) |
|
|
268
|
+
| hasPreviousRouter | Indica se existe um item de breadcrumb anterior.<br>**Parâmetros:** Não há.<br>**Retorno:**<br>- exist (boolean) |
|
|
269
|
+
---
|
|
89
270
|
|
|
90
271
|
<br>
|
|
91
272
|
|
|
92
|
-
|
|
273
|
+
## MenuDatasulService
|
|
93
274
|
|
|
94
275
|
**Objetivo:** Interagir com o Menu do Datasul.
|
|
95
276
|
|
|
96
|
-
Importação
|
|
97
|
-
```
|
|
277
|
+
**Importação:**
|
|
278
|
+
```ts
|
|
98
279
|
import { MenuDatasulService } from 'dts-backoffice-util';
|
|
99
280
|
|
|
100
281
|
constructor(public menuDatasulService: MenuDatasulService) {
|
|
101
282
|
}
|
|
102
283
|
```
|
|
103
284
|
|
|
104
|
-
Métodos
|
|
285
|
+
**Métodos:**
|
|
105
286
|
|
|
106
287
|
| Nome | Descrição |
|
|
107
288
|
|-|-|
|
|
@@ -112,8 +293,8 @@ Métodos:
|
|
|
112
293
|
| programSecurity | Verifica a Segurança do Menu, identificando se o usuário corrente possui acesso a um ou mais programas.<br>**Parâmetros:**<br>- programName (string ou Array): Nome do Programa cadastro no Menu, que se deseja consultar a segurança. Podendo ser informado uma string simples com o Nome do Programa, ou um Array de strings com a lista de Programas.<br>**Retorno:** response (Observable(Array)): Array com as informações dos Programas pesquisados. O objeto contido no Array terá dois atributos:<br>programName (string): Nome do Programa no Menu.<br>hasAccess (boolean): Valor "TRUE" ou "FALSE", indicando se o usuário tem acesso ao programa. **Obs:** Se o programa não estiver cadastro no Menu, o retorno deste atributo será "FALSE". |
|
|
113
294
|
---
|
|
114
295
|
|
|
115
|
-
Exemplo de uso
|
|
116
|
-
```
|
|
296
|
+
**Exemplo de uso:**
|
|
297
|
+
```ts
|
|
117
298
|
// Executando uma tela Progress
|
|
118
299
|
program = {
|
|
119
300
|
prg: 'bas_lote_liquidac_acr',
|
|
@@ -167,182 +348,150 @@ this.menuDatasulService
|
|
|
167
348
|
|
|
168
349
|
<br>
|
|
169
350
|
|
|
170
|
-
|
|
351
|
+
## ProfileService
|
|
171
352
|
|
|
172
|
-
**Objetivo:**
|
|
353
|
+
**Objetivo:** Salvar preferências do usuário.
|
|
173
354
|
|
|
174
|
-
**
|
|
175
|
-
|
|
355
|
+
**Importação:**
|
|
356
|
+
```ts
|
|
357
|
+
import { ProfileService, IProfile } from 'dts-backoffice-util';
|
|
176
358
|
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
@NgModule({
|
|
180
|
-
declarations: [
|
|
181
|
-
...
|
|
182
|
-
],
|
|
183
|
-
imports: [
|
|
184
|
-
...,
|
|
185
|
-
DtsBackofficeUtilsModule.forRoot()
|
|
186
|
-
],
|
|
187
|
-
providers: [],
|
|
188
|
-
bootstrap: [...]
|
|
189
|
-
})
|
|
359
|
+
constructor(public preferenceService: ProfileService) {
|
|
360
|
+
}
|
|
190
361
|
```
|
|
191
362
|
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
| Nome | Tipo | Obrigatório | Descrição |
|
|
195
|
-
|-|-|-|-|
|
|
196
|
-
| programName | string | Sim | Código de Programa cadastrado no menu, do programa que será executado no RPW. |
|
|
197
|
-
| externalName | string | Sim | Nome completo do Programa que será executado no RPW, diretório + nome externo.<br>**Importante:** Em virtude do dicionário (Foundation), este parâmetro é limitado a 24 dígitos. |
|
|
198
|
-
| programEMS5 | boolean | Não | Indica se o programa progress é do EMS5. |
|
|
199
|
-
| programStyle | number | Não | Número que representa o Estilo do Relatório no EMS5. |
|
|
200
|
-
| programVersion | string | Não | Versão do programa progress. |
|
|
201
|
-
| parameters | Array | Sim | Objeto representando a Temp-Table que será enviada ao progress. |
|
|
202
|
-
| paramDigitDef | Array | Não | Definição da Temp-Table tt-digita. Utilizado apenas pelo EMS2. Para cada campo da tt-digita, deve ser enviado um objeto com o seguinte formato: **{"chave": "string", "tipo": "string" }**. Onde **chave** representa o nome do campo, e **tipo** representa o tipo de dado (exemplo: character, integer, etc...). |
|
|
203
|
-
| paramDigitData | Array | Não | Dados que serão enviados e alimentados na tt-digita. Utilizado apenas pelo EMS2. |
|
|
204
|
-
| paramSelections | Array | Não | Parâmetros de Seleção. Utilizado apenas pelo EMS5. |
|
|
205
|
-
| disabledParams | boolean | Não | Quando for igual a **"Sim"**, irá desabilitar todos os campos do Agendamento (Data Execução, Servidor, Repetir ocorrência, etc...). |
|
|
206
|
-
| loading | boolean | Não | Quando for igual a **"Sim"**, irá apresentar a tela de "loading" no momento da criação da agenda até o retorno do serviço. |
|
|
207
|
-
| endExecution | EventEmitter | Não | Evento que será disparado ao finalizar o agendamento. Ele irá enviar como parâmetro um objeto da interface **IScheduleParameters**, contendo os parâmetros informados pelo usuário. |
|
|
208
|
-
|
|
209
|
-
Métodos:
|
|
363
|
+
**Métodos:**
|
|
210
364
|
|
|
211
365
|
| Nome | Descrição |
|
|
212
366
|
|-|-|
|
|
213
|
-
|
|
|
214
|
-
|
|
|
367
|
+
| setProfile | Salva informações no profile do usuário.<br>**Parâmetros:**<br>- profile (IProfile): Objeto com as informações do usuário e as informações serem salvas.<br>**Retorno:**<br>- response (Observable(any)): Retorno do BackEnd. |
|
|
368
|
+
| getProfileAsString | Retorna os valores salvos no formato de uma string.<br>**Parâmetros:**<br>- profile (IProfile): Objeto com as informações do usuário.<br>- showLoading (boolean): Indica se deve apresentar a tela de loading enquanto busca as informações.<br>**Retorno:**<br>- response (Observable(string)): Informações salvas. |
|
|
369
|
+
| getProfileAsJSON | Retorna os valores salvos no formato de um JSON.<br>**Parâmetros:**<br>- profile (IProfile): Objeto com as informações do usuário.<br>- showLoading (boolean): Indica se deve apresentar a tela de loading enquanto busca as informações.<br>**Retorno:**<br>- response (Observable(object)): Informações salvas. |
|
|
370
|
+
---
|
|
215
371
|
|
|
216
|
-
|
|
372
|
+
**Interfaces:**
|
|
217
373
|
|
|
218
|
-
|
|
374
|
+
IProfile
|
|
375
|
+
| Nome | Tipo | Obrigatório | Descrição |
|
|
376
|
+
|-|-|-|-|
|
|
377
|
+
| pageId | string | Sim | Um ID para identificar a Tela que está salvando os parâmetros. |
|
|
378
|
+
| userCode | string | Sim | Código do usuário (login). |
|
|
379
|
+
| dataCode | string | Sim | Um ID para identificar o parâmetro. |
|
|
380
|
+
| dataValue | string | Não | Valor a ser salvo, nos GET's é opcional. |
|
|
381
|
+
---
|
|
219
382
|
|
|
220
|
-
**
|
|
221
|
-
```
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
programVersion="1.00.00.004"
|
|
229
|
-
[parameters]="parametersRpw"
|
|
230
|
-
[paramSelections]="paramSelectionsRpw"
|
|
231
|
-
(endExecution)="endExecutionSchedule($event)">
|
|
232
|
-
</app-totvs-schedule-execution>
|
|
383
|
+
**Exemplo de Uso:**
|
|
384
|
+
```ts
|
|
385
|
+
const profile: IProfile = {
|
|
386
|
+
pageId: 'about-component',
|
|
387
|
+
userCode: 'super',
|
|
388
|
+
dataCode: 'preference',
|
|
389
|
+
dataValue: this.preference
|
|
390
|
+
};
|
|
233
391
|
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
(endExecution)="endExecutionSchedule($event)">
|
|
242
|
-
</app-totvs-schedule-execution>
|
|
243
|
-
```
|
|
244
|
-
**Definições no JavaScript:**
|
|
392
|
+
this.preferenceService
|
|
393
|
+
.setProfile(profile)
|
|
394
|
+
.subscribe((response) => {
|
|
395
|
+
this.notification.success('Preferência salva com sucesso!');
|
|
396
|
+
}, (error) => {
|
|
397
|
+
this.notification.error('Não foi possível salvar a preferência');
|
|
398
|
+
});
|
|
245
399
|
```
|
|
246
|
-
@ViewChild('schParam', { static: true }) schParam: TotvsScheduleExecutionComponent;
|
|
247
400
|
|
|
248
|
-
|
|
249
|
-
parametersRpw = new Array<any>();
|
|
250
|
-
paramDigitDefRpw = new Array<any>();
|
|
251
|
-
paramDigitDataRpw = new Array<any>();
|
|
252
|
-
paramSelectionsRpw = new Array<any>();
|
|
401
|
+
<br>
|
|
253
402
|
|
|
254
|
-
|
|
255
|
-
this.loadLocalStorage();
|
|
256
|
-
this.schParam.setScheduleParameters(this.scheduleParams);
|
|
403
|
+
## ReportService
|
|
257
404
|
|
|
258
|
-
|
|
405
|
+
**Objetivo:** Faz a chamada do datasul-report e realiza o download do arquivo caso seja especificado.
|
|
406
|
+
|
|
407
|
+
**Importação:**
|
|
408
|
+
```ts
|
|
409
|
+
import {
|
|
410
|
+
ReportService,
|
|
411
|
+
IReportServiceParams,
|
|
412
|
+
ReportFormats
|
|
413
|
+
} from 'dts-backoffice-util';
|
|
414
|
+
|
|
415
|
+
constructor(public reportService: ReportService) {
|
|
259
416
|
}
|
|
417
|
+
```
|
|
418
|
+
**Métodos:**
|
|
260
419
|
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
{ chave: 'usuario', valor: 'FERNANDO', tipo: 'character' },
|
|
267
|
-
{ chave: 'perfil', valor: 880, tipo: 'integer' }
|
|
268
|
-
];
|
|
420
|
+
| Nome | Descrição |
|
|
421
|
+
|-|-|
|
|
422
|
+
| generate | Retorna o arquivo binário gerado pelo datasul-report e faz o download do arquivo.<br>**Parâmetros:**<br>- params (IReportServiceParams): Parâmetros para execução do relatório.<br>- showLoading (boolean): Indica se deve apresentar a tela de loading enquanto busca as informações.<br>**Retorno:**<br>- response (Observable(Blob)) |
|
|
423
|
+
---
|
|
424
|
+
<br>
|
|
269
425
|
|
|
270
|
-
|
|
271
|
-
this.paramDigitDefRpw = [
|
|
272
|
-
{ chave: 'cod-estab', tipo: 'character' },
|
|
273
|
-
{ chave: 'cod-ccusto', tipo: 'integer' }
|
|
274
|
-
];
|
|
426
|
+
**Interfaces:**
|
|
275
427
|
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
428
|
+
IReportServiceParams
|
|
429
|
+
|
|
430
|
+
| Nome | Tipo | Obrigatório | Descrição |
|
|
431
|
+
|-|-|-|-|
|
|
432
|
+
| reportName | string | Sim | Nome do arquivo .rptDesign |
|
|
433
|
+
| programName | string | Sim | Nome do programa progress. |
|
|
434
|
+
| properties | Array | Sim | Lista de parâmetros que serão enviados ao progress. O objeto do Array deve implementar a interface **IProperty**. |
|
|
435
|
+
| dialect | string | Sim | Idioma do usuário. |
|
|
436
|
+
| downloadName | string | Sim | Nome que será dado ao arquivo de download. |
|
|
437
|
+
| download | boolean | Sim | O download deve ser efetuado |
|
|
438
|
+
| format | enum | Sim | Formato do Arquivo (XLSX, PDF, DOCX ou HTML). Enum: **ReportFormats**. |
|
|
439
|
+
---
|
|
282
440
|
|
|
283
|
-
|
|
284
|
-
this.paramSelectionsRpw = [
|
|
285
|
-
{ ind_dwb_set_type: "Regra", cod_dwb_set: "estab",
|
|
286
|
-
cod_dwb_set_initial: "01", cod_dwb_set_final: "FF", log_dwb_rule: true },
|
|
287
|
-
{ ind_dwb_set_type: "Exceção", cod_dwb_set: "ccusto",
|
|
288
|
-
cod_dwb_set_initial: "30", cod_dwb_set_final: "35", log_dwb_rule: false }
|
|
289
|
-
]
|
|
290
|
-
}
|
|
441
|
+
IProperty
|
|
291
442
|
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
443
|
+
| Nome | Tipo | Obrigatório | Descrição |
|
|
444
|
+
|-|-|-|-|
|
|
445
|
+
| name | string | Sim | Nome do parâmetro |
|
|
446
|
+
| value | string | Sim | Valor do parâmetro |
|
|
447
|
+
---
|
|
296
448
|
|
|
297
|
-
|
|
298
|
-
if (typeof (Storage) === 'undefined') { return; }
|
|
299
|
-
localStorage.setItem('param-maint.schParam', JSON.stringify(this.scheduleParams));
|
|
300
|
-
}
|
|
449
|
+
<br>
|
|
301
450
|
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
451
|
+
**Enums**
|
|
452
|
+
```ts
|
|
453
|
+
declare enum ReportFormats {
|
|
454
|
+
XLSX = "xlsx",
|
|
455
|
+
PDF = "pdf",
|
|
456
|
+
DOCX = "docx",
|
|
457
|
+
HTML = "html"
|
|
305
458
|
}
|
|
306
459
|
```
|
|
307
|
-
**Definições no Progress:**
|
|
308
|
-
```
|
|
309
|
-
DEFINE TEMP-TABLE tt-param NO-UNDO
|
|
310
|
-
FIELD destino AS INTEGER
|
|
311
|
-
FIELD arquivo AS CHARACTER
|
|
312
|
-
FIELD usuario AS CHARACTER
|
|
313
|
-
FIELD perfil AS INTEGER.
|
|
314
|
-
|
|
315
|
-
DEFINE TEMP-TABLE tt-digita NO-UNDO
|
|
316
|
-
FIELD cod-estab AS CHARACTER
|
|
317
|
-
FIELD cod-ccusto AS INTEGER.
|
|
318
|
-
```
|
|
319
460
|
|
|
320
|
-
|
|
461
|
+
**Exemplo de Uso:**
|
|
462
|
+
```ts
|
|
463
|
+
const properties: Array<IProperty> = [
|
|
464
|
+
{
|
|
465
|
+
name: 'custom.quick_search',
|
|
466
|
+
value: '186'
|
|
467
|
+
}
|
|
468
|
+
];
|
|
321
469
|
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
| frequency | string | Frequência | "no" - Uma vez no dia<br>"yes" - Várias vezes no dia |
|
|
332
|
-
| frequencyValue | number | Quantidade da Frequência | |
|
|
333
|
-
| frequencyType | string | Tipo Frequência | "hour" - Hora(s)<br>"minute" - Minuto(s) |
|
|
334
|
-
| execAppointHourInit | string | Hora Inicial Frequência | |
|
|
335
|
-
| execAppointHourFinal | string | Hora Final Frequência | |
|
|
336
|
-
| selectWeeklys | Array | Dia da Semana<br>Frequência Semanal | Sunday - Domingo<br>Monday - Segunda<br>Tuesday - Terça<br>Wednesday - Quarta<br>Thursday - Quinta<br>Friday - Sexta<br>Saturday - Sábado |
|
|
337
|
-
| dayOfMonth | number | Dia do Mês<br>Frequência Mensal | |
|
|
470
|
+
const params: IReportServiceParams = {
|
|
471
|
+
reportName: 'crm/rel_campaign_export',
|
|
472
|
+
programName: '/report/crm/crm0010',
|
|
473
|
+
properties,
|
|
474
|
+
dialect: 'pt',
|
|
475
|
+
download: true,
|
|
476
|
+
downloadName: '2020-1-10_13-51-53_CRM_CAMPANHAS',
|
|
477
|
+
format: ReportFormats.XLSX
|
|
478
|
+
};
|
|
338
479
|
|
|
480
|
+
this.reportService
|
|
481
|
+
.generate(params)
|
|
482
|
+
.subscribe(() => {
|
|
483
|
+
this.notification.error("Arquivo baixado com sucesso!");
|
|
484
|
+
}, () => {
|
|
485
|
+
this.notification.error("Não foi possível baixar o arquivo");
|
|
486
|
+
});
|
|
487
|
+
```
|
|
339
488
|
<br>
|
|
340
489
|
|
|
341
|
-
|
|
490
|
+
## TotvsScheduleExecutionService
|
|
342
491
|
|
|
343
492
|
**Objetivo:** Serviço que disponibiliza métodos para geração de agendamento e acompanhamento do RPW.
|
|
344
493
|
|
|
345
|
-
Métodos
|
|
494
|
+
**Métodos:**
|
|
346
495
|
|
|
347
496
|
| Nome | Descrição |
|
|
348
497
|
|-|-|
|
|
@@ -352,13 +501,13 @@ Métodos:
|
|
|
352
501
|
| followUpExcByJobScheduleID | Utilizado para acompanhar a execução do agendamento realizado no RPW, verificando o status da execução, até que ele seja finalizado.<br>**Parâmetros:**<br>- jobScheduleID (string): ID interno do Agendamento que se deseja acompanhar.<br>- intervalNum (number): Tempo em milisegundos para verificação do status do agendamento. Por exemplo, se for informado **5000**, será verificado o status do agendamento em 5 e 5 segundos até a execução terminar.<br>- fncCallBack (Function): Método que será executado após a tela receber o status da execução do agendamento. Ele será executado várias vezes até a execução terminar, no intervalo de tempo determinado no parâmetro **intervalNum**. Este método irá receber um objeto da interface **IExecutionStatus** com o status da execução. O método deverá retornar um valor **boolean** indicando se o processo deve continuar sendo monitorado ou não. Se for retornado "false", o agendamento não será mais monitorado. **Observação**: Isto não afeta a execução do agendamento no RPW, ele continuará executando normalmente.<br>- loading (boolean): Quando for igual a **"Sim"**, irá apresentar a tela de "loading" até finalizar o acompanhamento do agendamento.<br>**Retorno:** Não há. |
|
|
353
502
|
| followUpExcByExecutionID | Utilizado para acompanhar a execução do agendamento realizado no RPW, verificando o status da execução, até que ele seja finalizado.<br>**Parâmetros:**<br>- executionID (string): Número do Agendamento que se deseja acompanhar.<br>- intervalNum (number): Tempo em milisegundos para verificação do status do agendamento. Por exemplo, se for informado **5000**, será verificado o status do agendamento em 5 e 5 segundos até a execução terminar.<br>- fncCallBack (Function): Método que será executado após a tela receber o status da execução do agendamento. Ele será executado várias vezes até a execução terminar, no intervalo de tempo determinado no parâmetro **intervalNum**. Este método irá receber um objeto da interface **IExecutionStatus** com o status da execução. O método deverá retornar um valor **boolean** indicando se o processo deve continuar sendo monitorado ou não. Se for retornado "false", o agendamento não será mais monitorado. **Observação**: Isto não afeta a execução do agendamento no RPW, ele continuará executando normalmente.<br>- loading (boolean): Quando for igual a **"Sim"**, irá apresentar a tela de "loading" até finalizar o acompanhamento do agendamento.<br>**Retorno:** Não há. |
|
|
354
503
|
| getObjectByValue <br> getFilteredItems | Métodos utilizados pelo componente PO-LOOKUP. Desta forma, é possível utilizar o **TotvsScheduleExecutionService** para disponibilizar um lookup de Servidor de Execução RPW na tela. |
|
|
355
|
-
|
|
356
|
-
Exemplo de Uso
|
|
504
|
+
---
|
|
505
|
+
**Exemplo de Uso:**
|
|
357
506
|
|
|
358
507
|
Segue abaixo exemplos da geração de agendamento, busca e acompanhamento da execução.
|
|
359
508
|
|
|
360
509
|
**Definições no HTML:**
|
|
361
|
-
```
|
|
510
|
+
```html
|
|
362
511
|
<po-lookup
|
|
363
512
|
p-label="Servidor RPW"
|
|
364
513
|
p-placeholder="Servidor RPW"
|
|
@@ -371,7 +520,7 @@ Segue abaixo exemplos da geração de agendamento, busca e acompanhamento da exe
|
|
|
371
520
|
</po-lookup>
|
|
372
521
|
```
|
|
373
522
|
**Definições no JavaScript:**
|
|
374
|
-
```
|
|
523
|
+
```ts
|
|
375
524
|
executionServer: string;
|
|
376
525
|
jobScheduleID: string;
|
|
377
526
|
executionID: string;
|
|
@@ -536,7 +685,7 @@ DEFINE TEMP-TABLE tt-digita NO-UNDO
|
|
|
536
685
|
FIELD cod-ccusto AS INTEGER.
|
|
537
686
|
```
|
|
538
687
|
|
|
539
|
-
Interfaces
|
|
688
|
+
**Interfaces:**
|
|
540
689
|
|
|
541
690
|
IExecutionParameters
|
|
542
691
|
| Nome | Tipo | Obrigatório | Descrição |
|
|
@@ -551,6 +700,7 @@ IExecutionParameters
|
|
|
551
700
|
| paramDigitDef | Array | Não | Definição da Temp-Table tt-digita. Utilizado apenas pelo EMS2. Para cada campo da tt-digita, deve ser enviado um objeto com o seguinte formato: **{"chave": "string", "tipo": "string" }**. Onde **chave** representa o nome do campo, e **tipo** representa o tipo de dado (exemplo: character, integer, etc...). |
|
|
552
701
|
| paramDigitData | Array | Não | Dados que serão enviados e alimentados na tt-digita. Utilizado apenas pelo EMS2. |
|
|
553
702
|
| paramSelections | Array | Não | Parâmetros de Seleção. Utilizado apenas pelo EMS5. |
|
|
703
|
+
---
|
|
554
704
|
|
|
555
705
|
IExecutionStatus
|
|
556
706
|
| Nome | Tipo | Descrição |
|
|
@@ -560,214 +710,137 @@ IExecutionStatus
|
|
|
560
710
|
| startedDate | Date | Data e hora em que o agendamento iniciou a execução no RPW. |
|
|
561
711
|
| error | string | Quando o status for igual a **'FAILURE'**, esta propriedade terá a descrição do erro. |
|
|
562
712
|
| status | string | Status da execução, podendo ser:<br>- PENDING: O agendamento está enfileirado, aguardando o início da execução.<br>- RUNNING: O agendamento está em execução.<br>- SUCCESS: O agendamento terminou corretamente, sem erros.<br>- FAILURE: O agendamento terminou com erro. A descrição do erro estará disponível na propriedade **error**. Observação: Caso não exista um agendamento com o ID informado, também será retornar este status de erro. |
|
|
563
|
-
|
|
564
713
|
---
|
|
565
714
|
|
|
566
715
|
<br>
|
|
567
716
|
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
**Objetivo:** Salvar preferências do usuário.
|
|
717
|
+
## TranslateService
|
|
571
718
|
|
|
572
|
-
|
|
573
|
-
```
|
|
574
|
-
import { ProfileService, IProfile } from 'dts-backoffice-util';
|
|
719
|
+
**Objetivo:** Realizar o controle do idioma corrente, considerando o que estiver parametrizado no Cadastro de Usuários do Datasul, e caso não esteja informado, será considerado o idioma informado no Browse.
|
|
575
720
|
|
|
576
|
-
|
|
577
|
-
|
|
721
|
+
**Importação:**
|
|
722
|
+
```ts
|
|
723
|
+
import { TranslateService } from 'dts-backoffice-util';
|
|
578
724
|
```
|
|
579
725
|
|
|
580
|
-
Métodos
|
|
726
|
+
**Métodos:**
|
|
581
727
|
|
|
582
728
|
| Nome | Descrição |
|
|
583
729
|
|-|-|
|
|
584
|
-
|
|
|
585
|
-
|
|
|
586
|
-
| getProfileAsJSON | Retorna os valores salvos no formato de um JSON.<br>**Parâmetros:**<br>- profile (IProfile): Objeto com as informações do usuário.<br>- showLoading (boolean): Indica se deve apresentar a tela de loading enquanto busca as informações.<br>**Retorno:**<br>- response (Observable(object)): Informações salvas. |
|
|
587
|
-
---
|
|
588
|
-
|
|
589
|
-
Interfaces:
|
|
590
|
-
|
|
591
|
-
IProfile
|
|
592
|
-
| Nome | Tipo | Obrigatório | Descrição |
|
|
593
|
-
|-|-|-|-|
|
|
594
|
-
| pageId | string | Sim | Um ID para identificar a Tela que está salvando os parâmetros. |
|
|
595
|
-
| userCode | string | Sim | Código do usuário (login). |
|
|
596
|
-
| dataCode | string | Sim | Um ID para identificar o parâmetro. |
|
|
597
|
-
| dataValue | string | Não | Valor a ser salvo, nos GET's é opcional. |
|
|
730
|
+
| getCurrentLanguage | Retorna o idioma corrente. Será considerado no primeiro momento a chave "user.language" do localStorage. Caso ela não exista ou seja inválida, será considerado o idioma parametrizado no Browse. Além disso, o idioma deve estar disponível na lista de suportados, conforme métodos "getSuportLanguage".<br>**Parâmetros:** Não há.<br>**Retorno:** string |
|
|
731
|
+
| getSuportLanguage | Retornar uma lista com os atuais idiomas suportados.<br>**Parâmetros:** Não há.<br>**Retorno:** Array(string) |
|
|
598
732
|
---
|
|
599
733
|
|
|
600
|
-
Exemplo de Uso:
|
|
601
|
-
```
|
|
602
|
-
const profile: IProfile = {
|
|
603
|
-
pageId: 'about-component',
|
|
604
|
-
userCode: 'super',
|
|
605
|
-
dataCode: 'preference',
|
|
606
|
-
dataValue: this.preference
|
|
607
|
-
};
|
|
608
|
-
|
|
609
|
-
this.preferenceService
|
|
610
|
-
.setProfile(profile)
|
|
611
|
-
.subscribe((response) => {
|
|
612
|
-
this.notification.success('Preferência salva com sucesso!');
|
|
613
|
-
}, (error) => {
|
|
614
|
-
this.notification.error('Não foi possível salvar a preferência');
|
|
615
|
-
});
|
|
616
|
-
```
|
|
617
|
-
|
|
618
734
|
<br>
|
|
619
735
|
|
|
620
|
-
|
|
736
|
+
## UserLoginService
|
|
621
737
|
|
|
622
738
|
**Objetivo:** Retorna o login do usuário tanto no framework atual e quanto no novo framework.
|
|
623
739
|
|
|
624
|
-
Importação
|
|
625
|
-
```
|
|
740
|
+
**Importação:**
|
|
741
|
+
```ts
|
|
626
742
|
import { UserLoginService } from 'dts-backoffice-util';
|
|
627
743
|
|
|
628
744
|
constructor( public sessionService: UserLoginService) {
|
|
629
745
|
}
|
|
630
746
|
```
|
|
631
747
|
|
|
632
|
-
Métodos
|
|
748
|
+
**Métodos:**
|
|
633
749
|
|
|
634
750
|
| Nome | Descrição |
|
|
635
751
|
|-|-|
|
|
636
752
|
| getUserLogin | Retorna o login do usuário.<br>**Parâmetros:** Não há.<br>**Retorno:**<br>- response (Observable(string)) |
|
|
637
753
|
---
|
|
638
754
|
|
|
639
|
-
Exemplo de Uso
|
|
640
|
-
```
|
|
755
|
+
**Exemplo de Uso:**
|
|
756
|
+
```ts
|
|
641
757
|
this.sessionService
|
|
642
758
|
.getUserLogin()
|
|
643
759
|
.subscribe((user) => {
|
|
644
760
|
this.notification.success(`O usuário logado é ${user}`);
|
|
645
761
|
});
|
|
646
762
|
```
|
|
647
|
-
|
|
648
763
|
<br>
|
|
649
764
|
|
|
650
|
-
|
|
765
|
+
## ValidateService
|
|
651
766
|
|
|
652
|
-
**Objetivo:**
|
|
767
|
+
**Objetivo:** Realizar o tratamento da validação de campos em formulários, quando utilizados vários componentes **Dynamic Form** na tela de criação/edição. Nesse caso, ao disparar uma validação através de um campo presente em um formulário e nessa validação alterar propriedades e valores de campos que estão em um formulário diferente, a validação não é aplicada. Para o correto funcionamento das validações, é necessário que haja um tratamento da validação no Front End utilizando os métodos criados neste serviço.
|
|
653
768
|
|
|
654
|
-
Importação
|
|
655
|
-
```
|
|
656
|
-
import {
|
|
657
|
-
ReportService,
|
|
658
|
-
IReportServiceParams,
|
|
659
|
-
ReportFormats
|
|
660
|
-
} from 'dts-backoffice-util';
|
|
769
|
+
**Importação:**
|
|
770
|
+
```ts
|
|
771
|
+
import { ValidateService } from 'dts-backoffice-util';
|
|
661
772
|
|
|
662
|
-
constructor(
|
|
773
|
+
constructor(private validateService: ValidateService) {
|
|
663
774
|
}
|
|
664
775
|
```
|
|
665
|
-
|
|
776
|
+
|
|
777
|
+
**Métodos:**
|
|
666
778
|
|
|
667
779
|
| Nome | Descrição |
|
|
668
780
|
|-|-|
|
|
669
|
-
|
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
Interfaces:
|
|
673
|
-
|
|
674
|
-
IReportServiceParams
|
|
675
|
-
|
|
676
|
-
| Nome | Tipo | Obrigatório | Descrição |
|
|
677
|
-
|-|-|-|-|
|
|
678
|
-
| reportName | string | Sim | Nome do arquivo .rptDesign |
|
|
679
|
-
| programName | string | Sim | Nome do programa progress. |
|
|
680
|
-
| properties | Array | Sim | Lista de parâmetros que serão enviados ao progress. O objeto do Array deve implementar a interface **IProperty**. |
|
|
681
|
-
| dialect | string | Sim | Idioma do usuário. |
|
|
682
|
-
| downloadName | string | Sim | Nome que será dado ao arquivo de download. |
|
|
683
|
-
| download | boolean | Sim | O download deve ser efetuado |
|
|
684
|
-
| format | enum | Sim | Formato do Arquivo (XLSX, PDF, DOCX ou HTML). Enum: **ReportFormats**. |
|
|
781
|
+
| validate | Realiza uma requisição com o verbo POST para a URL de validação recebida por parâmetro e enviando no payload o objeto de validação também recebido por parâmetro.<br>**Parâmetros:** <br>- url (string): URL referente ao endPoint de validação de formulários da API. Ex.: "/api/rep/v1/userParameters/validateForm".<br>- value ([PoDynamicFormFieldChanged](https://github.com/po-ui/po-angular/blob/master/projects/ui/src/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-validation/po-dynamic-form-field-changed.interface.ts)): Objeto com a interface do PO UI que é recebido na função de `validate` do [Dynamic Form](https://po-ui.io/documentation/po-dynamic-form).<br>**Retorno:** Promise([PoDynamicFormValidation](https://github.com/po-ui/po-angular/blob/master/projects/ui/src/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-validation/po-dynamic-form-validation.interface.ts)) - Retorna uma promise de um objeto com a interface PoDynamicFormValidation. |
|
|
782
|
+
| updateFormFields | Atualiza as propriedades dos campos do formulário enviado por parâmetro com base nas validações, também recebidas por parâmetro.<br>**Parâmetros:** <br>- validation ([PoDynamicFormValidation](https://github.com/po-ui/po-angular/blob/master/projects/ui/src/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-validation/po-dynamic-form-validation.interface.ts)): Objeto com o resultado das validações retornado pelo método validate.<br>- fields (Array([PoDynamicFormField](https://github.com/po-ui/po-angular/blob/master/projects/ui/src/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-field.interface.ts))): Array de objetos com a interface do PO UI. Esse array corresponde à lista de campos do formulário, utilizado para definir a propriedade `fields` no [Dynamic Form](https://po-ui.io/documentation/po-dynamic-form).<br>**Retorno:** Array([PoDynamicFormField](https://github.com/po-ui/po-angular/blob/master/projects/ui/src/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-field.interface.ts)) - Retorna o array de campos com as propriedades atualizadas conforme a validação. |
|
|
783
|
+
| updateFormValue | Atualiza os valores dos campos utilizados no formulário com base nas validações.<br>**Parâmetros:** <br>- validation ([PoDynamicFormValidation](https://github.com/po-ui/po-angular/blob/master/projects/ui/src/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-validation/po-dynamic-form-validation.interface.ts)): Objeto com o resultado das validações retornado pelo método validate.<br>- value (Objeto(any)): Objeto com os dados da entidade/recurso utilizado para alimentar os campos dos formulários, utilizado para definir a propriedade `fields` no [Dynamic Form](https://po-ui.io/documentation/po-dynamic-form).<br>**Retorno:** Objeto(any) - Retorna o objeto de dados da entidade/recurso com os dados atualizados conforme a validação. |
|
|
685
784
|
---
|
|
686
785
|
|
|
687
|
-
|
|
786
|
+
**Exemplo de Uso:**
|
|
688
787
|
|
|
689
|
-
|
|
690
|
-
|-|-|-|-|
|
|
691
|
-
| name | string | Sim | Nome do parâmetro |
|
|
692
|
-
| value | string | Sim | Valor do parâmetro |
|
|
693
|
-
---
|
|
788
|
+
**Definições no HTML:**
|
|
694
789
|
|
|
695
|
-
|
|
696
|
-
```
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
790
|
+
Ao invés de passar diretamente a url do endPoint para a propriedade `p-validate` do componente Dynamic Form, deve ser passada uma função `[p-validate]="onValidate.bind(this)"`, como apresentado a seguir. Fazer isso para todos os componentes Dynamic Form.
|
|
791
|
+
```html
|
|
792
|
+
<po-accordion-item [p-label]="metadata?.literals?.enableDisableFields" #enableDisableFields>
|
|
793
|
+
<po-dynamic-form name="formEnableDisableFields"
|
|
794
|
+
[p-fields]="metadata?.fieldsTypingEnableDisable"
|
|
795
|
+
[p-value]="userParameters"
|
|
796
|
+
[p-validate]="onValidate.bind(this)"
|
|
797
|
+
[p-validate-fields]='metadata?.validateFields'>
|
|
798
|
+
</po-dynamic-form>
|
|
799
|
+
</po-accordion-item>
|
|
800
|
+
|
|
801
|
+
<po-accordion-item [p-label]="metadata?.literals?.configurations" #configurationsTyping>
|
|
802
|
+
<po-dynamic-form name="formConfigurations"
|
|
803
|
+
[p-fields]="metadata?.fieldsTypingConfigurations"
|
|
804
|
+
[p-value]="userParameters"
|
|
805
|
+
[p-validate]="onValidate.bind(this)"
|
|
806
|
+
[p-validate-fields]='metadata?.validateFields'>
|
|
807
|
+
</po-dynamic-form>
|
|
808
|
+
</po-accordion-item>
|
|
809
|
+
```
|
|
810
|
+
**Definições no TypeScript:**
|
|
811
|
+
|
|
812
|
+
No typescript de controle do componente defina a função de validação conforme apresentado a seguir.
|
|
813
|
+
```ts
|
|
814
|
+
public async onValidate(fieldChanged: PoDynamicFormFieldChanged){
|
|
815
|
+
let validation: PoDynamicFormValidation = await this.validateService.validate('/api/rep/v1/userParameters/validateForm', fieldChanged);
|
|
816
|
+
|
|
817
|
+
this.metadata.fieldsTypingEnableDisable = [...this.validateService.updateFormFields(validation, this.metadata.fieldsTypingEnableDisable)];
|
|
818
|
+
this.metadata.fieldsTypingConfigurations = [...this.validateService.updateFormFields(validation, this.metadata.fieldsTypingConfigurations)];
|
|
819
|
+
|
|
820
|
+
this.userParameters = {...this.validateService.updateFormValue(validation, this.userParameters)};
|
|
821
|
+
|
|
822
|
+
return validation;
|
|
702
823
|
}
|
|
703
824
|
```
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
{
|
|
709
|
-
name: 'custom.quick_search',
|
|
710
|
-
value: '186'
|
|
711
|
-
}
|
|
712
|
-
];
|
|
713
|
-
|
|
714
|
-
const params: IReportServiceParams = {
|
|
715
|
-
reportName: 'crm/rel_campaign_export',
|
|
716
|
-
programName: '/report/crm/crm0010',
|
|
717
|
-
properties,
|
|
718
|
-
dialect: 'pt',
|
|
719
|
-
download: true,
|
|
720
|
-
downloadName: '2020-1-10_13-51-53_CRM_CAMPANHAS',
|
|
721
|
-
format: ReportFormats.XLSX
|
|
722
|
-
};
|
|
723
|
-
|
|
724
|
-
this.reportService
|
|
725
|
-
.generate(params)
|
|
726
|
-
.subscribe(() => {
|
|
727
|
-
this.notification.error("Arquivo baixado com sucesso!");
|
|
728
|
-
}, () => {
|
|
729
|
-
this.notification.error("Não foi possível baixar o arquivo");
|
|
730
|
-
});
|
|
731
|
-
```
|
|
732
|
-
|
|
733
|
-
<br>
|
|
734
|
-
|
|
735
|
-
# BreadcrumbControlService
|
|
736
|
-
|
|
737
|
-
**Objetivo:** Realiza a criação e controle do breadcrumb das telas.
|
|
738
|
-
|
|
739
|
-
Importação:
|
|
740
|
-
```
|
|
741
|
-
import { BreadcrumbControlService } from 'dts-backoffice-util';
|
|
742
|
-
```
|
|
743
|
-
|
|
744
|
-
Métodos:
|
|
745
|
-
|
|
746
|
-
| Nome | Descrição |
|
|
747
|
-
|-|-|
|
|
748
|
-
| newBreadcrumb | "Reinicia" o breadcrumb quando necessário. Ex: Telas que possuem menu lateral, ao passar de um menu para outro, o breadcrumb deve ser reiniciado.<br>**Parâmetros:** Não há.<br>**Retorno:** Não há. |
|
|
749
|
-
| addBreadcrumb | Adiciona um item ao breadcrumb, considerando a URL atual da tela.<br>**Parâmetros:**<br>- literal (string): Nome da tela que será apresentado no breadcrumb.<br>- activatedRoute (ActivatedRoute): ActivedRoute da tela.<br>**Retorno:** Não há. |
|
|
750
|
-
| addBreadcrumbURL | Adiciona um item ao breadcrumb, informando uma URL específica.<br>**Parâmetros:**<br>- literal (string): Nome da tela que será apresentado no breadcrumb.<br>- url (string): URL específica.<br>**Retorno:** Não há. |
|
|
751
|
-
| updBreadcrumbURL | Altera uma informação qualquer contida na URL do item informado.<br>**Parâmetros:**<br>- literal (string): Nome da tela que está no breadcrumb.<br>- valueOld (string): Valor a ser substituído.<br>- valueNew (string): Novo valor.<br>**Retorno:** Não há. |
|
|
752
|
-
| delBreadcrumb | Exclui um item do breadcrumb.<br>**Parâmetros:**<br>- literal (string): Nome do item (nome da tela), que deve ser excluído do breadcrumb.<br>**Retorno:** Não há. |
|
|
753
|
-
| getBreadcrumb | Retorna o breadcrumb atual completo.<br>**Parâmetros:** Não há.<br>**Retorno:**<br>- breadcrumb (PoBreadcrumb) |
|
|
754
|
-
| getCurrentRouter | Retorna a URL do breadcrumb do item corrente.<br>**Parâmetros:** Não há.<br>**Retorno:**<br>- url (string) |
|
|
755
|
-
| getPrevRouter | Retorna a URL do breadcrumb do item anterior.<br>**Parâmetros:** Não há.<br>**Retorno:**<br>- url (string) |
|
|
756
|
-
| hasPreviousRouter | Indica se existe um item de breadcrumb anterior.<br>**Parâmetros:** Não há.<br>**Retorno:**<br>- exist (boolean) |
|
|
757
|
-
---
|
|
825
|
+
> Notas:
|
|
826
|
+
> + A função `onValidate` precisar ser definado com a palavre `async`, pois precisa aguardar o retorno da função `validate` do serviço.
|
|
827
|
+
> + Substitua o array de campos nas chamadas do método `updateFormFields` para corresponder ao array utilizado no Dynamic Form. Para cada formulário dinâmico existente na tela, deve haver uma chamada ao método `updateFormFields`.
|
|
828
|
+
> + Substitua o objeto na chamada do método `updateFormValue` para corresponder ao objeto utilizado no `p-value` dos formulários. Como será utilizado o mesmo objeto para os valores essa chamada ocorrerá apenas uma vez.
|
|
758
829
|
|
|
759
830
|
<br>
|
|
760
831
|
|
|
761
|
-
#
|
|
832
|
+
# Utils
|
|
833
|
+
|
|
834
|
+
## DateUtil
|
|
762
835
|
|
|
763
836
|
**Objetivo:** Manipula informações de data.
|
|
764
837
|
|
|
765
|
-
Importação
|
|
766
|
-
```
|
|
838
|
+
**Importação:**
|
|
839
|
+
```ts
|
|
767
840
|
import { DateUtil } from 'dts-backoffice-util';
|
|
768
841
|
```
|
|
769
842
|
|
|
770
|
-
Métodos
|
|
843
|
+
**Métodos:**
|
|
771
844
|
|
|
772
845
|
| Nome | Descrição |
|
|
773
846
|
|-|-|
|
|
@@ -778,19 +851,30 @@ Métodos:
|
|
|
778
851
|
| ajustDateToModel | Ajusta a data para o padrão do objeto Date. Utilizado nos construtores dos modelos.<br>**Parâmetros:**<br>- object (object): Objeto que possui atributos do tipo data.<br>- fieldName (string): Nome do Atributo que possui a data.<br>**Retorno:**<br>- date (date) |
|
|
779
852
|
| pad | Adiciona zero à esquerda do número.<br>**Parâmetros:**<br>- number (number): Número.<br>**Retorno:**<br>- number (string) |
|
|
780
853
|
---
|
|
854
|
+
<br>
|
|
855
|
+
|
|
856
|
+
## DisclaimerUtil
|
|
857
|
+
|
|
858
|
+
xxxx
|
|
859
|
+
|
|
860
|
+
<br>
|
|
861
|
+
|
|
862
|
+
## FieldValidationUtil
|
|
863
|
+
|
|
864
|
+
xxxx
|
|
781
865
|
|
|
782
866
|
<br>
|
|
783
867
|
|
|
784
|
-
|
|
868
|
+
## FileUtil
|
|
785
869
|
|
|
786
870
|
**Objetivo:** Auxílio na manipulação de Arquivos.
|
|
787
871
|
|
|
788
|
-
Importação
|
|
789
|
-
```
|
|
872
|
+
**Importação:**
|
|
873
|
+
```ts
|
|
790
874
|
import { FileUtil } from 'dts-backoffice-util';
|
|
791
875
|
```
|
|
792
876
|
|
|
793
|
-
Métodos
|
|
877
|
+
**Métodos:**
|
|
794
878
|
|
|
795
879
|
| Nome | Descrição |
|
|
796
880
|
|-|-|
|
|
@@ -798,13 +882,12 @@ Métodos:
|
|
|
798
882
|
| downloadData | Realiza a criação e o download de um arquivo CSV gerado a partir de um listagem de dados (criada diretamente no FrontEnd ou retornada do BackEnd). Este método pode ser utilizado para, por exemplo, exportar os dados de um Grid.<br>**Parâmetros:**<br>- data (Array): Um Array com a listagem de dados, por exemplo, uma lista de clientes.<br>- dwldDataParam (IDownloadDataParams): Parâmetros de configuração do arquivo. Este parâmetro é opcional, caso ele não seja informado, serão assumidos valores padrões de configuração, conforme descrito na inteface **IDownloadDataParams**.<br>**Retorno:** não há. |
|
|
799
883
|
| fileToB64 | Realiza a conversão de um arquivo para o formato Base64.<br>**Parâmetros:**<br>- file (File): Objeto do Tipo "File".<br>**Retorno:**<br>- content (string): Conteúdo do arquivo no formato Base64. |
|
|
800
884
|
| b64toBlob | Realiza a conversão de um arquivo que está no formato Base64, para o formato Blob.<br>**Parâmetros:**<br>- b64Data (any): Conteúdo do Arquivo no formato Base64.<br>- contentType (string): Tipo do Arquivo no formato [**MIME Type**](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types). Este parâmetro é opcional.<br>**Retorno:**<br>- content (Blob): Conteúdo do arquivo no formato Blob. |
|
|
801
|
-
|
|
802
885
|
---
|
|
803
886
|
|
|
804
|
-
Exemplo de Uso
|
|
887
|
+
**Exemplo de Uso:**
|
|
805
888
|
|
|
806
889
|
**Definições no JavaScript:**
|
|
807
|
-
```
|
|
890
|
+
```ts
|
|
808
891
|
// TS da Tela
|
|
809
892
|
|
|
810
893
|
import { FileUtil } from 'dts-backoffice-util';
|
|
@@ -885,7 +968,7 @@ oOutput:ADD("filename", v_cod_arq).
|
|
|
885
968
|
oOutput:ADD("content", v_lch_arq).
|
|
886
969
|
```
|
|
887
970
|
|
|
888
|
-
Interfaces
|
|
971
|
+
**Interfaces:**
|
|
889
972
|
|
|
890
973
|
IDownloadDataParams
|
|
891
974
|
|
|
@@ -896,27 +979,16 @@ IDownloadDataParams
|
|
|
896
979
|
| columnDelimiter | string | Não | Caracter utilizado para separação das colunas. Caso não seja informado, será utilizado o caracter **";"**. |
|
|
897
980
|
| columnList | Array(string) | Não | Lista das colunas que devem ser exportadas para o arquivo. As colunas serão exportadas na mesma ordem informada neste parâmetro. Caso não seja informada, serão exportadas todas as colunas da listagem. |
|
|
898
981
|
| columnExclude | Array(string) | Não | Lista das colunas que não devem ser exportadas para o arquivo. Caso não seja informada, serão exportadas todas as colunas da listagem. |
|
|
982
|
+
---
|
|
899
983
|
|
|
900
984
|
<br>
|
|
901
985
|
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
xxxx
|
|
905
|
-
|
|
906
|
-
<br>
|
|
907
|
-
|
|
908
|
-
# FieldValidationUtil
|
|
909
|
-
|
|
910
|
-
xxxx
|
|
911
|
-
|
|
912
|
-
<br>
|
|
913
|
-
|
|
914
|
-
# FilterRangeUtil
|
|
986
|
+
## FilterRangeUtil
|
|
915
987
|
|
|
916
988
|
xxxx
|
|
917
989
|
|
|
918
990
|
<br>
|
|
919
991
|
|
|
920
|
-
|
|
992
|
+
## GenericFunctionsUtils
|
|
921
993
|
|
|
922
994
|
xxxx
|