cap. 2 batch input
DESCRIPTION
sap batch inputTRANSCRIPT
Capítulo 2 Técnicas de Batch Input - Introdução
O que NÃO se deve fazer !!!
Sistema externo (não SAP)Sistema externo (não SAP)
Sistema SAPSistema SAP
BD ou arquivosequencial
BDSAP
Atualização direta dos dados externosnas tabelas da base de dados SAP
Processo aconselhado: BDC
(Batch Data Communication)
Arquivo Sequencial
Queue FileQueue File
Programa de transferência do clientePrograma de transferência do cliente
Batch inputBatch input
SAP R/3SAP R/3
Dados Mestre Cliente
Dados Mestre Fornecedor Documentos
Financeiros
Recebe os dados provenientes dos programas de batch input e agrupa os dados associados em “sessões” ou “pastas” (folders)
Simulação do diálogo com o usuário na introdução manual do mesmo tipo de dados, com as mesmas validações, com a mesma lógica de processamento ...
Programa de Transferência do
Cliente
Programa Batch inputPrograma Batch inputPrograma Batch inputPrograma Batch input
TabelaTabela BDCBDC
TabelaTabela BDCBDC
EstruturaEstruturaBDCDATABDCDATAEstruturaEstruturaBDCDATABDCDATA
Queue fileQueue file
ArquivoArquivosequencialsequencial
DicionárioDicionárioDadosDados
READ DATASET
CALL FUNCTION
INCLUDESTRUCTURE
Queue
Dados de cabeçalho da sessão (APQI)
•Mandante no qual a sessão será processada•Nome da sessão•Usuário de batch input•Data a partir da qual a sessão poderá ser processada•Eliminar sessão após processamento?
…
Dados de cabeçalho da sessão (APQI)
•Mandante no qual a sessão será processada•Nome da sessão•Usuário de batch input•Data a partir da qual a sessão poderá ser processada•Eliminar sessão após processamento?
…
Dados (APQD)Dados (APQD)
Criar sessões Batch Input
Abrir sessãobatch input
Abrir sessãobatch input
Introduzir dados das transações
Introduzir dados das transações
Fechar sessãobatch input
Fechar sessãobatch input
Funções para programas de
Batch InputMandanteNome sessãoData de bloqueioApagar sessão processadaNome usuário
MandanteNome sessãoData de bloqueioApagar sessão processadaNome usuário
CLIENTGROUPHOLDKEEP
USER
CLIENTGROUPHOLDKEEP
USER
Código da transaçãoTabela BDC
Código da transaçãoTabela BDC
TCODEDYNPROTAB
TCODEDYNPROTAB
BDC_OPEN_GROUPBDC_OPEN_GROUP
BDC_INSERTBDC_INSERT
BDC_CLOSE_GROUPBDC_CLOSE_GROUP
Função BDC_OPEN_GRO
UPCALL FUNCTION ’BDC_OPEN_GROUP’CALL FUNCTION ’BDC_OPEN_GROUP’
EXPORTING CLIENT = <Mandante> GROUP = <Nome sessão> HOLDDATE = <Data limite bloqueio> KEEP = <Indicador apagar> USER = <Nome usuário>
EXCEPTIONS RUNNING QUEUE_ERROR = 1 CLIENT_INVALID = 2 GROUP_INVALID = 3 . . .
EXPORTING CLIENT = <Mandante> GROUP = <Nome sessão> HOLDDATE = <Data limite bloqueio> KEEP = <Indicador apagar> USER = <Nome usuário>
EXCEPTIONS RUNNING QUEUE_ERROR = 1 CLIENT_INVALID = 2 GROUP_INVALID = 3 . . .
Função BDC_INSERT
CALL FUNCTION ’BDC_INSERT’CALL FUNCTION ’BDC_INSERT’
EXPORTING TCODE = <Código transação>
TABLES DYNPROTAB = <Tabela BDC>
EXCEPTIONS
INTERNAL_ERROR = 1
NOT_OPEN = 2
QUEUE_ERROR = 3
TCODE_INVALID = 4
EXPORTING TCODE = <Código transação>
TABLES DYNPROTAB = <Tabela BDC>
EXCEPTIONS
INTERNAL_ERROR = 1
NOT_OPEN = 2
QUEUE_ERROR = 3
TCODE_INVALID = 4
Tabela BDC: dados de uma
transaçãoDATA: BEGIN OF <Tabela BDC> OCCURS <Parâmetro OCCURS>. INCLUDE STRUCTURE BDCDATA.DATA: END OF <Tabela BDC>.
DATA: BEGIN OF <Tabela BDC> OCCURS <Parâmetro OCCURS>. INCLUDE STRUCTURE BDCDATA.DATA: END OF <Tabela BDC>.
Nome campo Tipo Compr. Descrição
PROGRAM CHAR 40 Pool de módulosDYNPRO NUMC 4 Nº da Tela DYNBEGIN CHAR 1 Iniciar uma telaFNAM CHAR 132 Nome do campoFVAL CHAR 132 Conteúdo do campo
Nome campo Tipo Compr. Descrição
PROGRAM CHAR 40 Pool de módulosDYNPRO NUMC 4 Nº da Tela DYNBEGIN CHAR 1 Iniciar uma telaFNAM CHAR 132 Nome do campoFVAL CHAR 132 Conteúdo do campo
Estrutura BDCDATAEstrutura BDCDATA
Tabela BDC: dados de uma transação
Programa Tela Inicio Nome campo Conteúdo Programa Tela Inicio Nome campo Conteúdo
<nome 1> <num 1> X<campo 1> <valor 1><campo 2> <valor 2> . .
<nome 2> <num 2> X<campo 1> <valor 1><campo 2> <valor 2>
. . . .
<nome 1> <num 1> X<campo 1> <valor 1><campo 2> <valor 2> . .
<nome 2> <num 2> X<campo 1> <valor 1><campo 2> <valor 2>
. . . .
O conteúdo não é case-sensitive
Como preencher a tabela BDC
FORM <fill_tabela_bdc>. REFRESH <tabela bdc>. CLEAR <tabela bdc>. MOVE: <nome prog 1> TO <tabela bdc>-PROGRAM, <num.tela 1> TO <tabela bdc>-DYNPRO, ‘X’ TO <tabela bdc>-DYNBEGIN. APPEND <tabela bdc>. CLEAR <tabela bdc>. MOVE: <campo 1> TO <tabela bdc>-FNAM, <valor 1> TO <tabela bdc>-FVAL. APPEND <tabela bdc>. CLEAR <tabela bdc>.
... MOVE: <campo x> TO <tabela bdc>-FNAM, <valor x> TO <tabela bdc>-FVAL. APPEND <tabela bdc>. ...
CLEAR <tabela bdc>. MOVE <nome programa> TO <tabela bdc>-PROGRAM, <num.tela 2> TO <tabela bdc>-DYNPRO, 'X’ TO <tabela bdc>-DYNBEGIN. APPEND <tabela bdc>. ...
ENDFORM.
FORM <fill_tabela_bdc>. REFRESH <tabela bdc>. CLEAR <tabela bdc>. MOVE: <nome prog 1> TO <tabela bdc>-PROGRAM, <num.tela 1> TO <tabela bdc>-DYNPRO, ‘X’ TO <tabela bdc>-DYNBEGIN. APPEND <tabela bdc>. CLEAR <tabela bdc>. MOVE: <campo 1> TO <tabela bdc>-FNAM, <valor 1> TO <tabela bdc>-FVAL. APPEND <tabela bdc>. CLEAR <tabela bdc>.
... MOVE: <campo x> TO <tabela bdc>-FNAM, <valor x> TO <tabela bdc>-FVAL. APPEND <tabela bdc>. ...
CLEAR <tabela bdc>. MOVE <nome programa> TO <tabela bdc>-PROGRAM, <num.tela 2> TO <tabela bdc>-DYNPRO, 'X’ TO <tabela bdc>-DYNBEGIN. APPEND <tabela bdc>. ...
ENDFORM.
Função BDC_CLOSE_
GROUP
CALL FUNCTION ’BDC_CLOSE_GROUP’CALL FUNCTION ’BDC_CLOSE_GROUP’
EXCEPTIONSNOT_OPEN = 1QUEUE_ERROR = 2
EXCEPTIONSNOT_OPEN = 1QUEUE_ERROR = 2
Exemplo 1: Alterar Dados de
ClientesTransação FD02 - Alterar Dados de ClientesTransação FD02 - Alterar Dados de Clientes
GravarGravar
Cliente 4711
Endereço X
Nome MillerConceito pesq. Teste
Exemplo 1: preparação para o programa de
batch input
Tabela RF02DCampo T0110
Tabela RF02DCampo T0110
Tabela RF02DCampo BUKRS
Tabela RF02DCampo BUKRS
Tabela RF02DCampo KUNNR
Tabela RF02DCampo KUNNR
Informação Técnica / F9
Informação Técnica / F9 Help
F1HelpF1
Programa SAPMF02DNº de tela 106
Programa SAPMF02DNº de tela 106
Cliente
Empresa
Endereço Cliente
Sistema
Status
Exemplo 1: preparação para o programa de
batch input (Screen Painter)
Programa SAPMF02DNº de tela 106
Programa SAPMF02DNº de tela 106
ClienteEmpresa
Endereço
Sistema
Status
Lista de camposLista de campos
Nome Campo Lg Form I ORFD02-KUNNR 16 CHAR x x...RFD02-BUKRS 4 CHAR x x...RFD02-D0110 1 CHAR x x...
Screen PainterScreen Painter
Exemplo 1:
estrutura da tabela
BDCPROGRAMA DYNPRO DYNBEGIN FNAM FVALPROGRAMA DYNPRO DYNBEGIN FNAM FVAL
SAPMF02D 0106 X
RF02D-KUNNR 4711
RF02D-D0110 X
...
SAPMF02D 0110 X
KNA1-SORTL TESTE
BDC_OKCODE /11
KNA1-NAME2 BDC_TEST
SAPMF02D 0106 X
RF02D-KUNNR 4711
RF02D-D0110 X
...
SAPMF02D 0110 X
KNA1-SORTL TESTE
BDC_OKCODE /11
KNA1-NAME2 BDC_TEST
Transação SM35 - Batch input
Sessões de Batch InputLogs das sessões Batch Input
Sessões de Batch InputLogs das sessões Batch Input
Visualizar telas da sessãoVisualizar dados de Batch InputLogs
Visualizar telas da sessãoVisualizar dados de Batch InputLogs
Apagar sessõesBloquear/Desbloquear Sessões
Apagar sessõesBloquear/Desbloquear Sessões
Processar em foregroundVisualizar apenas os errosProcessar em background
Processar em foregroundVisualizar apenas os errosProcessar em background
Visão GeralVisão Geral
AnáliseAnálise
AdministraçãoAdministração
ProcessamentoProcessamento
Funcionalidades:
Modo de
Processament
oProcessamento visível Visualiza todas as telas
Exibir apenas erros Visualiza telas, apenas quando
acontecer algum erro
Oculto Processamento em background
Processamento visível Visualiza todas as telas
Exibir apenas erros Visualiza telas, apenas quando
acontecer algum erro
Oculto Processamento em background
Modo de processam
ento: funções
adicionaisLog Ampliado Além das mensagens tipo E registra
também as dos tipos W, I e S
Modo especial Suprime a mensagem 344 em sessões interativas
Log Ampliado Além das mensagens tipo E registra também as dos tipos W, I e S
Modo especial Suprime a mensagem 344 em sessões interativas
Processamento Batch InputFunçãoFunção
Terminar a transação de batch input correntee marcar como incorretaTerminar a transação de batch input correntee marcar como incorreta
Apagar a transação de batch input correnteda sessãoApagar a transação de batch input correnteda sessão
Terminar processamento batch input e marcar sessão como incorretaTerminar processamento batch input e marcar sessão como incorreta
OK codeOK codeOK codeOK code
/n/n
/bdel/bdel
/bend/bend
Alterar modo de processamento , passar a visualizar telas em vez de ver apenas errosAlterar modo de processamento , passar a visualizar telas em vez de ver apenas erros /bda/bda
/bde/bdeAlterar modo de processamento , passar a visualizar apenas erros em vez de ver as telas
Status da sessãoProcessadaProcessada
DefeituosaDefeituosa
A ser processada
A ser processada
Em criação Em criação
Emprocessamento
Emprocessamento
BackgroundBackground
Sessão processada com sucessoSessão processada com sucesso
Sessão processada mas contendotransações com errosSessão processada mas contendotransações com erros
Sessão foi gravada mas ainda não foiprocessadaSessão foi gravada mas ainda não foiprocessada
Sessão está a ser gravadaSessão está a ser gravada
Sessão está a ser processadaSessão está a ser processada
Sessão agendada para processamento em backgroundSessão agendada para processamento em background
Criar e processar sessões
Arquivos sequenciaisArquivos sequenciais
t
t2
t1
Criar sessão
Processar sessão
Base Dados SAPBase Dados SAP
Resumo: atividades preparatór
iasCorrer (lançar) a transaçãoCorrer (lançar) a transação
Anotar nome dos programas e números das telas
Anotar nome dos programas e números das telas
Anotarnome dos campos
Anotarnome dos campos
Anotar sequência de telase códigos de função
Anotar sequência de telase códigos de função
Criar estrutura da tabela BDC
Criar estrutura da tabela BDC
Resumo: estrutura geral dos programas de batch inputDefinir estruturas
e tabela BDC
Definir estruturase tabela BDC
Abrir arquivo de input e sessãoAbrir arquivo de input e sessão
Ler registros de dadosLer registros de dados
Preencher tabela BDCPreencher tabela BDC
Fechar arquivo de input e sessãoFechar arquivo de input e sessão
Incluir tabela BDC na sessão
Incluir tabela BDC na sessão