1
Solicitação de compras
Solicitação de compra - Ginseng
Este flow permite abertura de solicitação de compras automatizadas, informando qual item será comprado e direcionado para as aprovações corretas.
true
false
Default
Compras - Testes
<AssignmentController><Group>TIC</Group></AssignmentController>
0
0
0
Default
false
1
true
false
0
0
true
1
Solicitação de compra - Ginseng
8
9305
true
false
false
true
false
false
0
2
false
false
false
1
Solicitação de compras
1
1
Solicitar compra
Solicitar compra
Inicio da atividade
0
false
0
1
true
false
false
0
0
0
0
false
0
true
true
false
100
30
0
0
false
false
0
0
false
Default
0
10
0
false
0
0
0
0
false
1
Solicitação de compras
1
18
Receber o produto/serviço
Receber o produto/serviço
604800
false
0
Executor Atividade
<AssignmentController><BaseActivity>1</BaseActivity><Returns>Last</Returns></AssignmentController>
1
false
false
false
0
0
0
0
false
0
true
true
false
1440
13
0
0
false
false
0
0
false
0
80
0
false
0
0
0
0
false
0
1
Solicitação de compras
1
24
Verificar problema
Verificar problema
172800
false
0
Pool Grupo
<AssignmentController><Group>ComprasIndiretos</Group></AssignmentController>
1
false
false
false
0
0
0
0
false
0
true
true
false
1560
415
0
0
false
false
0
0
false
0
80
0
false
0
0
0
0
false
0
1
Solicitação de compras
1
73
Tratar erro
Tratar erro
0
false
0
Pool Grupo
<AssignmentController><Group>TIC</Group></AssignmentController>
1
false
true
false
3600
3600
0
0
false
0
true
false
false
970
640
0
0
false
false
0
0
false
0
80
0
false
0
0
0
0
false
0
1
Solicitação de compras
1
82
Enviar SC
Enviar SC
0
false
0
1
false
false
false
0
0
0
0
false
0
true
false
false
560
632
0
0
false
false
0
0
false
0
82
0
false
0
0
0
0
false
1
1
Solicitação de compras
1
105
Selecionar cotação
Selecionar cotação
0
false
0
Executor Atividade
<AssignmentController><BaseActivity>1</BaseActivity><Returns>Last</Returns></AssignmentController>
1
false
true
false
3600
3600
0
0
false
0
true
false
false
620
21
0
0
false
false
0
0
false
0
80
0
false
0
0
0
0
false
0
1
Solicitação de compras
1
114
Integrador Cotação
Integrador Cotação
0
false
0
1
false
false
false
0
0
0
0
false
0
true
false
false
560
225
0
0
false
false
0
0
false
0
82
0
false
0
0
0
0
false
1
1
Solicitação de compras
1
118
Cotação fora do prazo
Cotação fora do prazo
0
false
0
Pool Grupo
<AssignmentController><Group>ComprasIndiretos</Group></AssignmentController>
1
false
true
false
3600
3600
0
0
false
0
true
false
false
640
327
0
0
false
false
0
0
false
0
80
0
false
0
0
0
0
false
0
1
Solicitação de compras
1
121
Analisar necessidade de compra
Analisar necessidade de compra
0
false
0
Campo Formulário
<AssignmentController><FormField>gestor_cc</FormField></AssignmentController>
1
false
true
false
3600
3600
0
0
false
0
true
false
false
460
100
0
0
false
false
0
0
false
0
80
0
false
0
0
0
0
false
0
1
Solicitação de compras
1
133
Aprovação Centro de custo
Aprovação Centro de custo
0
false
0
Campo Formulário
<AssignmentController><FormField>gestor_cc</FormField></AssignmentController>
1
false
true
false
3600
3600
0
0
false
0
true
false
false
910
110
0
0
false
false
0
0
false
0
80
0
false
0
0
0
0
false
0
1
Solicitação de compras
1
137
Aprovação Compras
Aprovação Compras
0
false
0
1
false
true
false
3600
3600
0
0
false
0
true
false
false
800
225
0
0
false
false
0
0
false
0
80
0
false
0
0
0
0
false
0
1
Solicitação de compras
1
147
Aprovação GERF
Aprovação GERF
0
false
0
1
false
true
false
3600
3600
0
0
false
0
true
false
false
1060
429
0
0
false
false
0
0
false
0
80
0
false
0
0
0
0
false
0
1
Solicitação de compras
1
158
Aprovação CEO
Aprovação CEO
0
false
0
1
false
true
false
3600
3600
0
0
false
0
true
false
false
1340
520
0
0
false
false
0
0
false
0
80
0
false
0
0
0
0
false
0
1
Solicitação de compras
1
85
Intermediário
Intermediário
Evento intermediário do processo
0
false
0
0
false
true
false
1
1
0
0
false
0
true
false
false
630
662
0
0
false
false
0
false
0
43
0
false
0
false
82
1
Solicitação de compras
1
117
Intermediário
Intermediário
Evento intermediário do processo
0
false
0
0
false
true
false
1
1
0
0
false
0
true
false
false
630
265
0
0
false
false
0
false
0
43
0
false
0
false
114
1
Solicitação de compras
1
46
Validar compra
Validar compra
false
false
false
0
true
1580
5
false
1
120
0
0
false
1
Solicitação de compras
1
128
Alçada
Alçada
false
false
false
0
true
710
217
false
1
120
0
0
false
1
Solicitação de compras
1
150
Valor N1
Valor N1
false
false
false
0
true
1090
100
false
1
120
0
0
false
1
Solicitação de compras
1
154
Valor N2
Valor N2
false
false
false
0
true
1220
230
false
1
120
0
0
false
1
Solicitação de compras
1
39
Cancelado
Cancelado
Atividade final do processo
0
false
0
0
false
true
false
0
1
0
0
false
0
false
true
false
360
126
0
0
false
false
0
0
false
6
65
0
false
0
false
1
Solicitação de compras
1
52
Fim
Fim
Atividade final do processo
0
false
0
0
false
true
false
0
1
0
0
false
0
false
false
false
1670
41
0
0
false
false
0
0
false
6
60
0
false
0
false
1
Solicitação de compras
1
8
46
hAPI.getCardValue("validacaoItens") == "entregue"
52
0
1
Solicitação de compras
2
8
46
true
24
0
1
Solicitação de compras
1
8
128
parseFloat(hAPI.getCardValue("valorTotalCotacao")) <= 100000.00
137
<AssignmentController><User>001142</User></AssignmentController>
Usuário
0
1
Solicitação de compras
1
8
150
parseFloat(hAPI.getCardValue("valorTotalCotacao")) >= 5001.00 &&
parseFloat(hAPI.getCardValue("valorTotalCotacao")) <= 50000.00
147
<AssignmentController><User>AriNascimento</User></AssignmentController>
Usuário
0
1
Solicitação de compras
2
8
150
true
18
<AssignmentController><User>andrey.cunha</User></AssignmentController>
Usuário
0
1
Solicitação de compras
1
8
154
parseFloat(hAPI.getCardValue("valorTotalCotacao")) > 50000.00
158
<AssignmentController><User>900010</User></AssignmentController>
Usuário
0
1
Solicitação de compras
2
8
154
parseFloat(hAPI.getCardValue("valorTotalCotacao")) < 50000.00
18
<AssignmentController><BaseActivity>1</BaseActivity><Returns>Last</Returns></AssignmentController>
Executor Atividade
0
1
Solicitação de compras
1
26
false
24
18
false
false
0
1
Solicitação de compras
1
47
false
18
46
false
false
0
1
Solicitação de compras
1
48
false
46
24
Reprovar
false
false
0
1
Solicitação de compras
1
78
false
46
52
false
false
0
1
Solicitação de compras
1
86
false
85
73
false
false
0
1
Solicitação de compras
1
88
false
73
82
false
false
0
1
Solicitação de compras
1
97
false
73
false
false
0
1
Solicitação de compras
1
119
false
117
118
false
false
0
1
Solicitação de compras
1
120
false
118
114
false
false
0
1
Solicitação de compras
1
124
Rejeitar
false
121
39
false
false
0
1
Solicitação de compras
1
125
false
1
121
false
false
0
1
Solicitação de compras
1
126
Aprovar
false
121
82
false
false
0
1
Solicitação de compras
1
127
false
82
114
false
false
0
1
Solicitação de compras
1
129
Enviar para gestão
false
105
128
false
false
0
1
Solicitação de compras
1
138
false
128
137
false
false
0
1
Solicitação de compras
1
142
false
114
105
false
false
0
1
Solicitação de compras
1
144
false
137
133
false
false
0
1
Solicitação de compras
1
151
false
133
150
false
false
0
1
Solicitação de compras
1
152
false
150
18
false
false
0
1
Solicitação de compras
1
153
false
150
147
false
false
0
1
Solicitação de compras
1
155
false
147
154
false
false
0
1
Solicitação de compras
1
156
false
154
18
false
false
0
1
Solicitação de compras
1
159
false
154
158
false
false
0
1
Solicitação de compras
1
160
false
158
18
false
false
0
1
Solicitação de compras
1
161
Ajustar Solicitação
false
121
1
false
false
0
1
servicetask82
Solicitação de compras
1
function toProtheusDate(d) {
if (!d) return "";
if (d.indexOf("/") > -1) {
var parts = d.split("/");
return parts[2] + parts[1] + parts[0]; // dd/MM/yyyy -> yyyyMMdd
}
if (d.indexOf("-") > -1) {
return d.replace(/-/g, ""); // yyyy-MM-dd -> yyyyMMdd
}
return d; // já está no formato certo
}
function hojeProtheus() {
var d = new Date();
var yyyy = d.getFullYear();
var mm = d.getMonth() + 1;
var dd = d.getDate();
if (mm < 10) mm = "0" + mm;
if (dd < 10) dd = "0" + dd;
return "" + yyyy + mm + dd; // yyyyMMdd
}
function servicetask82(attempt, message) {
log.info("🚀 Iniciando servicetask82");
var qtdItens = hAPI.getChildrenIndexes("tbItens");
log.info("📦 Total de itens na tabela: " + qtdItens.length);
var itens = [];
for (var i = 0; i < qtdItens.length; i++) {
var index = qtdItens[i];
var item = {
"C1_PRODUTO": String(hAPI.getCardValue("Codproduto___" + index)),
"C1_QUANT": Number(hAPI.getCardValue("qtd___" + index)),
"C1_DATPRF": toProtheusDate(String(hAPI.getCardValue("dataNec___" + index)))
};
itens.push(item);
log.info("📌 Item adicionado: " + JSON.stringify(item));
}
var payload = {
"C1_SOLICIT": String(hAPI.getCardValue("usuarioSolicitante")),
"C1_EMISSAO": hojeProtheus(),
"C1_FILENT": String(hAPI.getCardValue("filialProtheus")).trim(),
"C1_OBS": String(hAPI.getCardValue("observacoes")),
"itens": itens
};
log.info("📦 Payload montado:");
log.info(JSON.stringify(payload));
var data1 = {
companyId: '1',
serviceCode: 'Postprod',
endpoint: '/rest/UF_MATA110',
method: 'post',
timeoutService: '100',
params: payload, // objeto puro
headers: {
'Content-Type': 'application/json'
}
};
try {
var clientService = fluigAPI.getAuthorizeClientService();
var response = clientService.invoke(JSON.stringify(data1)); // SEMPRE stringify aqui
log.info("📬 Resposta da API Protheus:");
log.dir(response);
if (response && response.getResult()) {
var result = JSON.parse(response.getResult());
if (result.sucesso) {
hAPI.setCardValue("numeroSCProtheus", result.C1_NUM || "");
hAPI.setCardValue("statusSCProtheus", "SC cadastrada com sucesso");
hAPI.setCardValue("solicitanteSCProtheus", result.C1_SOLICIT || "");
hAPI.setCardValue("emissaoSCProtheus", result.C1_EMISSAO || "");
hAPI.setCardValue("qtdItensSCProtheus", String(result.quantidade_itens || ""));
hAPI.setCardValue("dataCadastroSCProtheus", result.data_cadastro || "");
hAPI.setCardValue("horaCadastroSCProtheus", result.hora_cadastro || "");
} else {
hAPI.setCardValue("statusSCProtheus", "Erro: " + result.erro);
throw "Erro Protheus: " + result.message;
}
} else {
throw "Sem resposta da API Protheus";
}
} catch (e) {
log.error("❌ Erro ao enviar SC para o Protheus: " + e);
throw e;
}
log.info("🏁 Finalização da servicetask82");
}
1
servicetask114
Solicitação de compras
1
function servicetask114(attempt, message) {
log.info("🚀 ST92 — Verifica se já existe código de cotação no formulário");
var numSC = hAPI.getCardValue("numeroSCProtheus");
var numCot = hAPI.getCardValue("cotacaoSCProtheus");
log.info("📌 SC: " + numSC + " | Cotação: " + numCot);
if (!numSC) {
throw "❌ Número da SC não informado no formulário.";
}
// se não tiver cotação ainda, força o loop da atividade
if (!numCot || numCot === "000000" || numCot === "000001") {
throw "⏳ Cotação ainda não disponível para a SC " + numSC;
}
// se já tiver código, só registra log e deixa o processo seguir
log.info("✅ Cotação " + numCot + " encontrada no formulário. Processo segue.");
}
FFFFFF
715
1710
11
6
Solicitação de compras
1
0
1
Solicitação de compras
1
1
82b0b7
102
1680
41
6
Solicitante
2
1
1
Solicitação de compras
1
2
d0daae
102
1680
41
210
Compras
2
1
1
Solicitação de compras
1
3
d6e0d0
102
1680
41
108
Gestor CC
2
1
1
Solicitação de compras
1
4
adc9ac
103
1680
41
618
TI
2
1
1
Solicitação de compras
1
5
C0C0C0
102
1680
41
312
Compras
2
1
1
Solicitação de compras
1
6
c9c3ac
102
1680
41
414
GERF
2
1
1
Solicitação de compras
1
7
9fc1c6
102
1680
41
516
CEO
2
1
1
Solicitação de compras
1
8
1
Solicitação de compras
8
26
1
1492
452
1
Solicitação de compras
8
125
1
512
47
1
Solicitação de compras
8
126
1
513
662
1
Solicitação de compras
8
127
1
612
498
1
Solicitação de compras
8
129
1
739
61
1
Solicitação de compras
8
142
1
612
48
1
Solicitação de compras
8
144
1
852
155
1
Solicitação de compras
8
152
1
1120
96
1
Solicitação de compras
8
152
2
1120
59
1
Solicitação de compras
8
161
1
511
47
1
Solicitação de compras
descProduto
descProduto
1
1
Solicitação de compras
empresa
empresa
2
1
Solicitação de compras
estabelecimento
estabelecimento
3
1
Solicitação de compras
filialdest
filialdest
4
1
Solicitação de compras
numeroSCProtheus
numeroSCProtheus
5
1
Solicitação de compras
pedidoSCProtheus
pedidoSCProtheus
6
1
Solicitação de compras
quantidade
quantidade
7
1
Solicitação de compras
solicitanteSCProtheus
solicitanteSCProtheus
8
1
Solicitação de compras
urgencia
urgencia
9
1
Solicitação de compras
valorTotalCotacao
valorTotalCotacao
10
1
Solicitação de compras
1
82
5
Solicitação enviada com sucesso
1
0
1
Solicitação de compras
1
114
5
Integração executada com sucesso
1
2