Histórico da Página
...
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:
...
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
Execução dos pontos de
...
entrada
- 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:
...
Ou seja, o processo é repetido para cada opcional individualmente.
Estrutura de Entrada
Os pontos de entrada recebem como parâmetro (PARAMIXB) 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). |
optionalCode | Código do opcional (produto) que está sendo processado no momento. |
optionalVersion | Código da versão do opcional (produto) que está sendo processado. |
O retorno deve ser um objeto JSON com a seguinte estrutura:
| Atributo | Descrição |
|---|---|
| success | .T. caso deva gravar o opcional; .F. caso não deva gravar o opcional |
| message | No caso de não permitir a gravação, uma mensagem da justificativa pode ser inserida, essa mensagem será visível no response do endpoint. |
| Bloco de código | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
#Include 'Totvs.ch'
User Function |
...
PLOPCPF() Local oJRet |
...
:= JsonObject():new() |
...
If paramixm["beneficiaryRegistration"] == "00010001000153004" .AND. ; paramixm["entityType "] |
...
== |
...
"F" .AND. ; paramixm["optionalCode"] == "1234" .AND. ; paramixm["optionalVersion"] == "001" oJRet["success"] := .F. oJRet["message"] := "Beneficiário sem opcional" Else oJRet["success"] := .T. oJRet["message"] := "" EndIf |
...
Return oJRet |
05. ASSUNTOS RELACIONADOS
...