Você está na página 1de 17

Especificação Técnica do Desenvolvimento - PRG

PRG
Campo Objetivo
ID Infotipo 9200 – Creche / Baba
Título Criação do Infotipo de PA 9200 – Creche Babá
Responsável Celso – 4253.celsokm@bradesco.com.br - tel.: (11) 3684 3403.
Estágio em que se encontra o desenvolvimento:
Status
E Em Fase de Especificação

Criar o Infotipo 9200, que fará a manutenção das informações das Creches e
Propósito
Babás, bem como os dependentes relacionados.

 Criar o infotipo de 9200 (infotipo de PA);


 O nome do infotipo será “Creche / Babá”
 O infotipo deve ter a ligação temporal orientada por subcategoria de
tabela (T591A). Todos os subtipos deverão ter a ligação temporal 2 e
deverá ser marcado o flag “Permitida Identificação de Objeto para
Subinfotipo” (pode haver o cadastramento de mais de uma creche ou
babá para um mesmo período, mudando apenas os dependentes ligados
a determinado prestador de serviço)
 Este infotipo terá a entrada do subinfotipo obrigatória e será permitido
Descrição
somente para os subinfotipos:
o 0001- Creche
o 0002 - Babá
 A tabela de subinfotipos válida para este infotipo é a T591A. A tabela de
textos do subinfotipo deverá ser a T591S. O campo do subinfotipo
deverá ser o campo “Tipo”. A tabela de ligação temporal do infotipo
deverá ser a T591A.
 O infotipo deverá ter a entrada de textos permitida
 O infotipo deverá ter marcada a opção “Autorização Acesso”
ID RICE MELHR171002
Tipo do programa sendo criado:
Tipo
EN : Melhoria
Especifique a linguagem/ferramenta sendo utilizada:
Método
A : ABAP
Grupo

Analista TI Celso – 4253.celsokm@bradesco.com.br - tel.: (11) 3684 3403.

Módulo RH – Folha de Pagamento


Requerimentos
de Segurança
Complexidade da interface:
Complexidade
B: Baixa
736217840.doc Pág.: 1 de 17 3/18/2024
PRG
Campo Objetivo
Autor Diogo Martini de Oliveira – Fone: 3684-3645

Data Preparação 17/08/2004

Desenvolvedor Fábrica ABAP

Data Aprovação

Aprovador
As informações constantes no item “Validações” de qualquer anexo deverão ser
desdobradas em tarefas na Estratégia de Testes Detalhada.
Os subinfotipos do infotipo 0021 deverão ter a ligação temporal 2, sendo
Informações
que aqueles que permitem mais de um objeto deverão ter marcado o flag
Adicionais
“Permitir Id.Objeto”. Este é um pré requisito para o funcionamento do
Infotipo de Creche Babá, pois os dependentes serão identificados pela
chave “Tipo Registro Parentesco” e “Identificação Objeto”.

736217840.doc Pág.: 2 de 17 3/18/2024


ANEXO 1 (Especificação Técnica MACRO): Modelo de tela

Exemplo de cadastramento :

VALIDADE SUBINFOTIPO NUM PRESTADOR DEPENDENTES


10/01/2001 a 0001 – Creche 01 Creche Criança Huguinho
31/12/9999 Feliz Zezinho
15/11/2002 a 0001 – Creche 02 Creche Bebê Luizinho
31/12/9999 Risonho
25/10/2003 a 0002-Baba 03 Mary Popins Mônica
31/12/9999 Cebolinha
25/12/2004 a 0002-Baba 02 Robbin Willians Cascao
31/12/9999

736217840.doc Pág.: 3 de 17 3/18/2024


ANEXO 2 (Especificação Técnica MACRO): Ao clicar no ícone de texto do lado direito superior
da tela, deverá aparecer a seguinte tela para que o usuário digite seu texto (com opção para que
possa ser impressa) :

736217840.doc Pág.: 4 de 17 3/18/2024


ANEXO 3 (Especificação Técnica MACRO):

Operações válidas para o infotipo :


1. Inclusão
2. Alteração
3. Cópia
4. Exclusão
5. Delimitação
6. Visualização

Validações :

1. Conceitos gerais
1.1. Para cada condição não satisfeita, dar mensagem de erro.
1.2. Na execução dos testes, após uma operação ter sido concluída (inclusão, alteração, etc),
sair da transação PA30 e entrar novamente para verificar se o registro foi efetivamente
gravado no banco de dados.
1.3. Respeitar sempre as regras de integridade da ligação temporal do infotipo.
1.4. Dentro de um mesmo período, um dependente não pode estar ligado a mais de uma creche
ou mais de uma babá, ou ainda a uma creche e a uma babá ao mesmo tempo.
1.5. Não existirá um cadastramento prévio das creches e das babás. Não haverá validação de
existência para estes prestadores de serviço.
1.6. Mesmo que tenha havido uma seleção de dependentes conforme as regras de elegibilidade,
no momento da gravação do infotipo, validar se o dependente já está cadastrado para outra
creche ou babá, para o mesmo período do infotipo que está sendo gravado. Se já estiver
cadastrado, dar mensagem de erro.

2. Inclusão
2.1. O sistema deverá disponibilizar na tela DEPENDENTES (com o flag desmarcado), todos
os dependentes elegíveis, conforme as regras :
2.1.1. Ler o infotipo 0021 para o período do infotipo 9200 que está sendo incluído –
somente os subtipos Filho/Enteado/Tutelado (se for alteração, desprezar o próprio
registro que está sendo alterado);
2.1.2. Se o dependente tiver marcado o flag de “Dependente Inválido”, ele está
automaticamente elegível (neste caso, desconsiderar a regra de idade para
elegibilidade);
2.1.3. Desconsiderar os dependentes cuja idade ultrapasse 6 anos e 11 meses (inclusive)
para a data inicial de validade do infotipo.
2.1.4. Ler o infotipo 9200 para o período do infotipo 9200 que está sendo incluído –
desconsiderar os dependentes que já estejam marcados em outro infotipo 9200 do
mesmo período considerado, independentemente do subinfotipo;
2.2. Todos e somente os dependentes marcados (selecionados) deverão ser gravados no infotipo
de tabela do infotipo 9200.
3. Alteração
3.1. O sistema deverá disponibilizar na tela DEPENDENTES todos os dependentes encontrados
no infotipo de tabela do infotipo 9200 (estarão na tela com o flag marcado) mais os
dependentes elegíveis, conforme as regras de elegibilidade de dependentes definidas no
item Inclusão (estarão na tela com o flag desmarcado).

736217840.doc Pág.: 5 de 17 3/18/2024


3.2. Todos e somente os dependentes marcados (selecionados) deverão ser gravados no infotipo
de tabela do infotipo 9200.
3.3. Os dependentes que forem desmarcados deverão ser excluídos do infotipo de tabela do
infotipo 9200.
4. Cópia
4.1. Seguir as regras definidas no item alteração (de disponibilizar os dependentes já marcados
mais os dependentes elegíveis).
5. Exclusão
5.1. Os registros deverão ser excluídos do infotipo principal e todos os dependentes deverão ser
excluídos do infotipo de tabela do infotipo principal.
6. Delimitação
6.1. Nenhuma validação específica
7. Visualização
7.1. Nenhum campo deverá estar disponível para digitação

736217840.doc Pág.: 6 de 17 3/18/2024


ANEXO 4 (Especificação Técnica MACRO):

Além dos campos padrões do infotipo, este deverá conter os seguintes campos :
Campo Descrição Observação Label na tela Categoria Tamanho Casas Validação Prevista
de Dados decimais
TIPO Tipo Pesquisa Tipo que indica o Tipo CHAR 4 0 Mover o conteúdo do
tipo do prestador campo SUBTY. A
de serviço -Creche tela deverá conter a
ou Babá – descrição deste
(próprio campo do campo.
subinfotipo)
NOME Nome do Nome da Creche Nome CHAR 60 Campo Obrigatório.
Prestador de ou da Babá Converter o conteúdo
Serviço informado para
maiúsculas. Se o
usuário preencher
com qualquer
caractere especial ou
acentos, dar
mensagem de erro.
CPF CPF do Prestador, CPF É obrigatório que seja
se Pessoa Física preenchido o CPF ou
o CNPJ. Seguir as
mesmas
características de
definição e validação
do campo CPF do
infotipo 0465
(subtipo 0001).
CNPJ CNPJ do CNPJ É obrigatório que seja
Prestador, se preenchido o CPF ou

736217840.doc Pág.: 7 de 17 3/18/2024


Pessoa Jurídica o CNPJ. Seguir as
mesmas
características de
definição e validação
do campo
“Num.Id.Fiscal 1”,
existente na segunda
tela da transação
XK01 (cadastro de
fornecedores).

Os dados relativos à repetição deverão conter os seguintes campos (seguir o mesmo padrão do infotipo 0008) :
FAMSA Subinfotipo Refere-se ao Tipo P0021-
de Parentesco – SUBTY ou
Na tela, mostrar a FAMSA
descrição deste
campo na coluna
GRAU
OBJPS Identificação do Este campo P0021-
Objeto refere-se ao OBJPS
campo ID da tela
de dependentes

A tela deverá conter ainda o seguinte campo (somente na tela) :


BENEFIC Nome do Campo oriundo do Vide layout de tela Campo Campo desabilitado
Dependente Infotipo 0021 nome para digitação.
Elegível completo
do IT 0021
(P0021-
FCNAM)

736217840.doc Pág.: 8 de 17 3/18/2024


ESPECIFICAÇÃO TÉCNICA DETALHADA

ANEXO 5 – Procedimentos:

Criação de Elemento de dados:

Através da transação SE11, clicar em “Categoria de Dados”, Criar, Elemento de Dados.


Criar o seguinte elemento de dados:
Elemento de Denominação Denominação Denominação Longa Ajuda Domínio
dados Breve Média e Título de
Pesquisa
ZNOME_PRES Nome Nome Pres. Nome do prestador CHAR60

Criação do infotipo:

Na transação PM01 digitar o número do infotipo 9200 e clicar sobre o botão tudo

Criar a estrutura PS9200 com os campos abaixo:


Campo Elemento de Label na tela Categoria Tamanho
dados de Dados
TIPO ZTIPO_DOC Tipo CHAR 4
NOME ZNOME_PRES Nome CHAR 60
CPF PBR_CPFNR CPF CHAR 15
CNPJ ZCNPJ CNPJ CHAR 15
FAMSA01 FAMSA GRAU CHAR 4
FAMSA02 FAMSA GRAU CHAR 4
FAMSA03 FAMSA GRAU CHAR 4
FAMSA04 FAMSA GRAU CHAR 4
FAMSA05 FAMSA GRAU CHAR 4
FAMSA06 FAMSA GRAU CHAR 4
FAMSA07 FAMSA GRAU CHAR 4
FAMSA08 FAMSA GRAU CHAR 4
FAMSA09 FAMSA GRAU CHAR 4
FAMSA10 FAMSA GRAU CHAR 4
FAMSA11 FAMSA GRAU CHAR 4
FAMSA12 FAMSA GRAU CHAR 4
FAMSA13 FAMSA GRAU CHAR 4
FAMSA14 FAMSA GRAU CHAR 4
FAMSA15 FAMSA GRAU CHAR 4
OBJPS01 OBJPS ID CHAR 2
OBJPS02 OBJPS ID CHAR 2
OBJPS03 OBJPS ID CHAR 2
OBJPS04 OBJPS ID CHAR 2
OBJPS05 OBJPS ID CHAR 2
OBJPS06 OBJPS ID CHAR 2
OBJPS07 OBJPS ID CHAR 2
OBJPS08 OBJPS ID CHAR 2
736217840.doc Pág.: 9 de 17 3/18/2024
OBJPS09 OBJPS ID CHAR 2
OBJPS10 OBJPS ID CHAR 2
OBJPS11 OBJPS ID CHAR 2
OBJPS12 OBJPS ID CHAR 2
OBJPS13 OBJPS ID CHAR 2
OBJPS14 OBJPS ID CHAR 2
OBJPS15 OBJPS ID CHAR 2

- Ativar a estrutura PS9200 e clicar em voltar.

- Solicitar customizações de infotipo e subtipos ao DDS e aguardar retorno.

- Na transação SE80 editar o programa MP920000

- No include MP920010 declarar as tabelas conforme abaixo, estas tabelas serão utilizadas
para controle da table control como a TBLGART no infotipo 0008:
DATA: BEGIN OF TBFAMSA OCCURS 15,
SEQNR(3),
SELEC(1),
FAMSA LIKE t591S-STEXT,
OBJPS LIKE P9200-OBJPS,
BENEFIC LIKE P0021-FCNAM,
END OF TBFAMSA.

- No screen painter gráfico, editar o layout da tela 2000, para que ela contenha o seginte
layout:

Campo 1
Campo 2 Campo 10

Campo 3

Campo 4 Campo 5

Campo 6 Campo 8 Campo 9

Campo 7

736217840.doc Pág.: 10 de 17 3/18/2024


Campo 1 (P9200-TIPO): Campo apenas de saída no qual deve ser gravado o conteúdo do campo
subtipo (P9200-SUBTY). Este campo será atualizado na tabela de banco de dados do infotipo.

Campo 2: Campo apenas de saída que deve conter a descrição do valor exibido no campo 1 que
deve ser o conteúdo do campo STEXT da tabela T591S onde SPRSL = SY-LANGU, INFTY =
P9200-INFTY e SUBTY = P9200-SUBTY (chave primária).

Campo 3 (P9200-NOME): Campo obrigatório de entrada e saída que deve conter o conteúdo de
P9200-NOME converter o campo para letras maiúsculas (comando CONVERT TO UPPER
CASE). Se o usuário preencher com qualquer caractere especial ou acentos, emitir mensagem de
erro: “Não utilizar caracteres especiais ou acentos” (utilizar a função RS_CHARACTER_CHECK).

Campo 6 (VT_2000_CPF): Campo entrada e saída que deve conter o conteúdo de P9200-CPF,
formatar o layout do campo na tela usando a máscara, (999.999.999-99) para isso utilizar a função
“HR_BR_CHECK_CPF_FORMAT” passando o valor informado na tela, e retornando dois
campos: CPF_NUMBER_FORMATTED contendo o CPF formatado (movê-lo para
VT_2000_CPF) e CPF_NUMBER_RAW contendo apenas a parte numérica (movê-lo para P9200-
CNPJ), na gravação considerar apenas a parte numérica ( testar o retorno da função com isso,
verificar se o CPF é válido).

Campo 5 (VT_2000_CNPJ): Campo de entrada e saída, que deve conter o número do CNPJ,
formatar o layout do campo na tela usando a máscara, (999999999/9999-99) para isso utilizar a
função “HR_BR_CHECK_CGC_FORMAT” passando o valor informado na tela, e retornando dois
campos: CGC_NUMBER_FORMATTED contendo o CNPJ formatado (movê-lo para
VT_2000_CNPJ) e CGC_NUMBER_RAW contendo apenas a parte numérica (movê-lo para
P9200-CNPJ), na gravação, considerar apenas a parte numérica ( testar o retorno da função com
isso, verificar se o CNPJ é válido).

Os campos P9200-CPF e P9200-CNPJ devem conter a seguinte validação:


Se P9200-CPF é inicial e P9200-CNPJ é inicial.
Emitir mensagem de erro ‘Preencher o CPF ou CNPJ do Prestador’.
Fim-se.

Campo 10 (P9200-OBJPS): Campo de entrada e saída onde será digitado o ID do prestador de


serviço.

OS CAMPOS SEGUINTES SÃO REFERENTES AO TABLE-CONTROL, QUE DEVE SER


MONTADO DA SEGUINTE MANEIRA:

Campo 6 (TBFAMSA-SELEC): Campo do tipo Check-box, responsável pela marcação da linha,


esse campo será necessário no momento da gravação da table-control.

Campo 7 (TBFAMSA-FAMSA): Campo apenas de saída, que contem o tipo de parentesco, campo
P0021-FAMSA, definir como listbox.

Campo 8 (TBFAMSA-OBJPS): Campo apenas de saída, o número do dependente, campo P0021-


OBJPS.

736217840.doc Pág.: 11 de 17 3/18/2024


Campo 9 (TBFAMSA-BENEFIC): Campo apenas de saída, o nome do dependente, campo P0021-
FCNAM.

TABLE-CONTROL

a. No modo gráfico excluir todos os campos de código da linha da tela


b. Ainda no modo gráfico, com auxílio do Assistente de criação de table control definir a
table control onde o nome da tabela interna será TBFAMSA, e serão selecionados os
campos SELEC, FAMSA, OBJPS, BENEFIC. Essa table control deve ser de entrada,
com títulos nas colunas e sem coluna de marcação múltipla, o campo SELEC deve ser
definido como Check-box, não deve permitir paginar, inserir / eliminar linha e marcar /
desmarcar tudo. O include de dados é o MP920010, o de PBO é o MP920020, o de PAI
é o MP920030 e o de subprogramas é o MP920000.

c. Observar que foram incluídos vários códigos no seu fonte. Você deve alterar o código de
forma que as primeiras chamadas do PBO sejam:
MODULE BEFORE_OUTPUT.
CALL SUBSCREEN subscreen_empl INCLUDING empl_prog empl_dynnr.
CALL SUBSCREEN subscreen_header INCLUDING header_prog header_dynnr.
MODULE P9200.

d. Definir:
Infotipos: 0021, 0397.
Variáveis: my_tabix like sy-tabix,
v_months like p0347-scrmm.

Tabelas internas: t_p9200 like p9200 com 0 ocorrências e header line,


t_p9200_aux com os campos:
famsa like p0021-famsa,
objps like p0021-objps.

e. Selecionar do infotipo 0021, todos os dependentes elegíveis para o funcionário em


questão, para isso:
Para inserção, buscar todos os elegíveis no IT0021e excluir os dependentes já
marcados em outros registros do IT9200 na data.
Para Alteração, Visualização, Deleção, Delimitação e Cópia, guardar os dependentes
gravados no registro a ser alterado em uma estrutura, selecionar todos os elegíveis,
excluir os dependentes já marcados em outros registros do IT9200 na data, e
adicionar(marcados) todos os registros guardados na estrutura. Para isso:

No PBO da tela 2000:

Chamar a função ‘HR_READ_INFOTYPE’


call function 'HR_READ_INFOTYPE'
exporting
pernr = p9200-pernr
infty = '0021'
BEGDA = P9200-begda
ENDDA = P9200-endda
tables
infty_tab = p0021
EXCEPTIONS
INFTY_NOT_FOUND =1

736217840.doc Pág.: 12 de 17 3/18/2024


OTHERS = 2.

Deletar os registro da p0021 onde subty <> '2' e subty <> '5' e subty <> '6'.

Loop em p0021.
Limpar variável v_months.
Adicionar 1 em my-Tabix.
Chamar a função ‘HR_READ_INFOTYPE’
call function 'HR_READ_INFOTYPE'
exporting
pernr = p0021-pernr
infty = '0397'
begda = P9200-begda
endda = P9200-endda
tables
infty_tab = p0397
exceptions
infty_not_found = 1
others = 2.

Loop em P0397 onde subty = p0021-subty


e objps = p0021-objps
e stinv ne 'X'.
Chamar o função ‘HR_HK_DIFF_BT_2_DATES’.
call function 'HR_HK_DIFF_BT_2_DATES'
exporting
date1 = sy-datum
date2 = p0021-fgbdt
output_format = '04'
importing
months = v_months
exceptions
invalid_dates_specified =1
others = 2.

Se v_months > 83.


deletar p0021 indexado por my_tabix.
my_tabix = My_tabix - 1.
Fim-se.
Sair.
Fim-loop
Fim-loop

Chamar a função ‘HR_READ_INFOTYPE’.


call function 'HR_READ_INFOTYPE'
exporting
pernr = p9200-pernr
infty = '9200'
begda = P9200-begda
endda = P9200-endda
tables
infty_tab = t_p9200
exceptions
infty_not_found = 1
others = 2.

Deletar a tabela interna t_p9200 onde ( pernr = p9200-pernr e subty = p9200-subty e


objps = p9200-objps e sprps = p9200-sprps e endda = p9200-endda e begda = p9200-
begda e seqnr = p9200-seqnr.

736217840.doc Pág.: 13 de 17 3/18/2024


Se P9200-FAMSA01 não é inicial.

Mover P9200-FAMSA01 para t_p9200_aux-FAMSA.


Mover P9200-OBJPS01 para t_p9200_aux-OBJPS.
Append t_p9200_aux.
Limpar P9200-FAMSA01.
Limpar P9200-OBJPS01.

Fim-se
Se P9200-FAMSA02 não é inicial.

Mover P9200-FAMSA01 para t_p9200_aux-FAMSA.


Mover P9200-OBJPS01 para t_p9200_aux-OBJPS.
Append t_p9200_aux.
Limpar P9200-FAMSA02.
Limpar P9200-OBJPS02.

Fim-se
Se P9200-FAMSA03 não é inicial.

Mover P9200-FAMSA01 para t_p9200_aux-FAMSA.


Mover P9200-OBJPS01 para t_p9200_aux-OBJPS.
Append t_p9200_aux.
Limpar P9200-FAMSA03.
Limpar P9200-OBJPS03.

Fim-se
Se P9200-FAMSA04 não é inicial.

Mover P9200-FAMSA01 para t_p9200_aux-FAMSA.


Mover P9200-OBJPS01 para t_p9200_aux-OBJPS.
Append t_p9200_aux.
Limpar P9200-FAMSA04.
Limpar P9200-OBJPS04.

Fim-se
Se P9200-FAMSA05 não é inicial.

Mover P9200-FAMSA01 para t_p9200_aux-FAMSA.


Mover P9200-OBJPS01 para t_p9200_aux-OBJPS.
Append t_p9200_aux.
Limpar P9200-FAMSA05.
Limpar P9200-OBJPS05.

Fim-se
Se P9200-FAMSA06 não é inicial.

Mover P9200-FAMSA01 para t_p9200_aux-FAMSA.


Mover P9200-OBJPS01 para t_p9200_aux-OBJPS.
Append t_p9200_aux.
736217840.doc Pág.: 14 de 17 3/18/2024
Limpar P9200-FAMSA06.
Limpar P9200-OBJPS06.

Fim-se
Se P9200-FAMSA07 não é inicial.

Mover P9200-FAMSA01 para t_p9200_aux-FAMSA.


Mover P9200-OBJPS01 para t_p9200_aux-OBJPS.
Append t_p9200_aux.
Limpar P9200-FAMSA07.
Limpar P9200-OBJPS07.

Fim-se
Se P9200-FAMSA08 não é inicial.

Mover P9200-FAMSA01 para t_p9200_aux-FAMSA.


Mover P9200-OBJPS01 para t_p9200_aux-OBJPS.
Append t_p9200_aux.
Limpar P9200-FAMSA08.
Limpar P9200-OBJPS08.

Fim-se
Se P9200-FAMSA09 não é inicial.

Mover P9200-FAMSA01 para t_p9200_aux-FAMSA.


Mover P9200-OBJPS01 para t_p9200_aux-OBJPS.
Append t_p9200_aux.
Limpar P9200-FAMSA09.
Limpar P9200-OBJPS09.

Fim-se
Se P9200-FAMSA10 não é inicial.

Mover P9200-FAMSA01 para t_p9200_aux-FAMSA.


Mover P9200-OBJPS01 para t_p9200_aux-OBJPS.
Append t_p9200_aux.
Limpar P9200-FAMSA10.
Limpar P9200-OBJPS10.

Fim-se
Se P9200-FAMSA11 não é inicial.

Mover P9200-FAMSA01 para t_p9200_aux-FAMSA.


Mover P9200-OBJPS01 para t_p9200_aux-OBJPS.
Append t_p9200_aux.
Limpar P9200-FAMSA11.
Limpar P9200-OBJPS11.

Fim-se
Se P9200-FAMSA12 não é inicial.
736217840.doc Pág.: 15 de 17 3/18/2024
Mover P9200-FAMSA01 para t_p9200_aux-FAMSA.
Mover P9200-OBJPS01 para t_p9200_aux-OBJPS.
Append t_p9200_aux.
Limpar P9200-FAMSA12.
Limpar P9200-OBJPS12.

Fim-se
Se P9200-FAMSA13 não é inicial.

Mover P9200-FAMSA01 para t_p9200_aux-FAMSA.


Mover P9200-OBJPS01 para t_p9200_aux-OBJPS.
Append t_p9200_aux.
Limpar P9200-FAMSA13.
Limpar P9200-OBJPS13.

Fim-se
Se P9200-FAMSA14 não é inicial.

Mover P9200-FAMSA01 para t_p9200_aux-FAMSA.


Mover P9200-OBJPS01 para t_p9200_aux-OBJPS.
Append t_p9200_aux.
Limpar P9200-FAMSA14.
Limpar P9200-OBJPS14.

Fim-se
Se P9200-FAMSA15 não é inicial.

Mover P9200-FAMSA01 para t_p9200_aux-FAMSA.


Mover P9200-OBJPS01 para t_p9200_aux-OBJPS.
Append t_p9200_aux.
Limpar P9200-FAMSA15.
Limpar P9200-OBJPS15.
Fim-se

Loop em P0021.

Ler a tabela t_p9200 com a chave subty = p0021-subty


objps = p0021-objps.
Se sy-subrc ne 0.
tbfamsa-famsa = P0021-famsa.

tbfamsa-objps = p0021-objps.
tbfamsa-benefic = p0021-fcnam.
append tbfamsa.
Fim-se.

Fim-Loop.

736217840.doc Pág.: 16 de 17 3/18/2024


Se psyst-ioper = ‘MOD’ ou psyst-ioper = ‘LIS9’ ou psyst-ioper = ‘DEL’
ou psyst- ioper = ‘COP’ ou psyst-ioper = ‘DIS’.

Loop em t_p9200_aux.
Ler a tabela t_p9200 com a chave subty = p0021_aux-subty
objps = p0021_aux-objps.

tbfamsa-selec = ‘X’.

tbfamsa-stext = P0021-famsa.

tbfamsa-objps = p0021-objps.
tbfamsa-benefic = p0021-fcnam.
append tbfamsa.

Fim-Loop.
Fim-se.
Com isso a seleção de dependentes elegíveis e já gravados, já estará pronta, permitindo
assim, que o registro seja gravado conforme a seguinte lógica:

Gravação:

No PAI da tela 2000:

Criar um módulo dentro do loop da tabela TBFAMSA, criado previamente pelo Table-
control (modificar o código para garantir que esse loop estará antes do módulo
‘PRE_INPUT_CHECKS’), e no módulo criado implementar a seguinte lógica:

Se TBFAMSA-SELEC = ‘X’.

Ler a tabela t_p9200 com a chave famsa = tbfamsa-famsa e objps = tbfamsa-objps.

Se sy-subrc = 0.
Enviar mensagem de erro: “Dependente já cadastrado no Benefício Creche/Baba”.
Fim-se.

Mover TBFAMSA-FAMSA para P9200-FAMSAXX (onde XX é o índice do campo, se


for o primeiro registro XX = ‘01’ se for o segundo registro XX = ‘02’ e assim por diante
até o registro 15.

Mover TBFAMSA-OBJPS para P9200-OBJPSXX (onde XX é o índice do campo, se


for o primeiro registro XX = ‘01’ se for o segundo registro XX = ‘02’ e assim por diante
até o registro 15 ).
Fim-se.

736217840.doc Pág.: 17 de 17 3/18/2024

Você também pode gostar