Histórico da Página
...
| Bloco de código | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
{
"id": "DETAILOPC",
"modeltype": "GRID",
"optional": 1,
"struct": [
{
"id": "MATRICULA",
"order": 1
},
{
"id": "RESULT",
"order": 2
}
],
"items": [
{
"id": 1,
"deleted": 0,
"fields": [
{
"id": "MATRICULA",
"value": "00010001000152008"
},
{
"id": "RESULT",
"value": "[{\"product\":\"9896\",\"version\":\"001\",\"response\":{\"success\":true,\"message\":\"\"}},{\"product\":\"9897\",\"version\":\"001\",\"response\": \"success\":true,\"message\":\"\"}}]"
}
]
},
{
"id": 2,
"deleted": 0,
"fields": [
{
"id": "MATRICULA",
"value": "00010001000152016"
},
{
"id": "RESULT",
"value": "[{\"product\":\"9896\",\"version\":\"001\",\"response\":{\"success\":true,\"message\":\"\"}},{\"product\":\"9897\",\"version\":\"001\",\"response\":{\"success\":true,\"message\":\"\"}}]"
}
]
}
]
} |
04. DEMAIS INFORMAÇÕES
...
Foram desenvolvidos dois pontos de entrada
...
que permitem definir regras para determinar se um opcional deve ou não ser gravado, em complemento ao parâmetro MV_PLCAROP.
...
Funcionamento Geral
- Ambos os pontos de entrada retornam a mesma estrutura.
- A diferença entre eles está no tipo de beneficiário:
- PLOPCPJ → executado quando o beneficiário é Pessoa Jurídica (PJ).
- PLOPCPF → executado quando o beneficiário é Pessoa Física (PF).
Esses pontos podem conter a mesma regra ou regras distintas, mas o objetivo final é sempre o mesmo: permitir ou não a gravação do opcional em processamento.
Momento de Execução
- Tanto o PLOPCPJ quanto o PLOPCPF são executados no momento da gravação dos opcionais
...
- .
- O retorno do ponto de entrada define se o opcional em questão deve ou não ser gravado, de acordo com a regra implementada.
Exemplo de Execução
Se houver previsão de gravação de dois opcionais, por exemplo 0001 e 0002:
- Antes de gravar o opcional 0001, o ponto de entrada
...
- é executado.
- Em seguida, antes de gravar
...
- o opcional 0002, o ponto de entrada é executado novamente.
Ou seja, o processo é repetido para cada opcional individualmente.
Estrutura de Entrada
Os pontos de entrada recebem como parâmetro um objeto JSON com os seguintes atributos:
| Atributo | Descrição |
|---|---|
| beneficiaryRegistration | Matrícula do beneficiário em que o opcional será gravado. |
| entityType | Tipo de entidade: PJ (Pessoa Jurídica) ou PF (Pessoa Física). |
| healthPlanCode | Código do opcional (produto) que está sendo processado no momento. |
| healthPlanVersion | Código da versão do opcional (produto) que está sendo processado. |
| Bloco de código | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
#Include 'Totvs.ch'
User Function PLOPCPJ()
Local oJRet := JsonObject():new()
Local oModel := FWModelActive()
Local oMdPrpGen := oModel:getmodel("DETAILPRPGEN")
Local aSveLines := FWSaveRows()
Local nI := 0
aHeader := oMdPrpGen:GetOldData()
lExMatric := aScan(aHeader[1], { |x| x[2] == "matriculaBen" }) > 0
lExSalario := aScan(aHeader[1], { |x| x[2] == "salario" }) > 0
lExProduto := aScan(aHeader[1], { |x| x[2] == "produto" }) > 0
lExNome := aScan(aHeader[1], { |x| x[2] == "nome" }) > 0
For nI := 1 To oMdPrpGen:Length()
oMdPrpGen:GoLine(nI)
If lExMatric
cBnMatric := oMdPrpGen:GetValue("matriculaBen")
EndIf
If lExSalario
cSalario := oMdPrpGen:GetValue("salario")
EndIf
If lExProduto
cproduto := oMdPrpGen:GetValue("produto")
EndIf
If lExNome
cnome := oMdPrpGen:GetValue("nome")
EndIf
Next
FWRestRows( aSveLines )
oJRet["success"] := .T.
oJRet["message"] := ""
return oJRet |
05. ASSUNTOS RELACIONADOS
...
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas