You are on page 1of 5

R

Modificao de Lotes

{{{
*** Agora vem o Programa ***
************************************************************************
*****
M O N S A N T O - PROJETO BIS
*
************************************************************************
***** EMPRESA : DELOITTE CONSULTING
*
*****
*
*** PROGRAMA: Modelo para criao de cargas
*
***** TIPO : Executavel
*
*** AUTOR : Nivea M L Faria
*
*** DATA
: 07/08/2000
*
*** OBS.
:
*
***
*
***
************************************************************************
************************************************************************
*
HISTRICO DAS MODIFICAES
*
************************************************************************
* DATA
CHANGE
AUTOR
DESCRIO
*
************************************************************************
* 14.12.2000 DV2K909910 Nvea Faria
Desenvolvimento inicial
*
* 14.12.2000 DV2K912271 Nvea Faria
Incluso de caractersticas *
* 12.02.2001 DV2K913803 Ernesto Veiga Incluso de caractersticas *
* 05.03.2001 DV2K915396 N. Carramate Acerto de transporte
*
* 06.03.2001 DV2K915618 Ernesto Veiga If nas caractersticas
*
* 06.03.2001 DV2K915641 Ernesto Veiga If nas caractersticas
*
************************************************************************
REPORT ZMMB004 MESSAGE-ID zfase2 LINE-SIZE 85.
************************************************************************
***** Tabelas
************************************************************************
************************************************************************
***** Variaveis
************************************************************************
data: v_tam_matnr
type i,
v_duas_posicoes type char2.
************************************************************************
*
Constante de acerto de layout de dados de entrada.
*
Caso o layout do arquivo de entrada de dados contenha mais de um
*
tipo de registro vc podera formatar os mesmos
************************************************************************
Constants: cc_MSC2N
C_GERMINA
c_teste_frio
C_PUREZA
C_ATESTADO
c_clas_qua
c_peso_liq

LIKE sy-TCODE value 'MSC2',


TYPE char30 VALUE 'SE_LOT_GERMINA',
TYPE char30 value 'SE_LOT_VIGOR',
TYPE char30 VALUE 'SE_LOT_PUREZA',
TYPE char30 VALUE 'SE_LOT_ATESTADO',
type char30 value 'SE_LOT_QUAL',
type char30
value 'SE_LOT_PESO_LIQUIDO_IMPRESSAO'.

************************************************************************
***** Tabelas internas
************************************************************************
*Registro padro da interface
data : BEGIN OF rec ,
MATNR(018),
CHARG(010),
WERKS(004),
LGORT(004),
HSDAT(010),
FZUST(001),
MHD_IO(010),
LWEDT(010),
DATNU(010),
MWERT_01(004),
mwert_02(004),
MWERT_03(006),
MWERT_04(008),
MWERT_05(002),
MWERT_06(005),
END OF rec.

"Material
"Lote
"Centro
"Depsito
"Data da produo
"Estoque para livre utilizao
"Data de vencimento
"Data da ltima entrada de mercadoria
"Data - no usada na MSC2
"% de germinao
"% de teste de frio
"% de pureza
"Atestado de anlise
"Classe de qualidade
"Peso liquido de impresso

************************************************************************
***** Include
************************************************************************
INCLUDE ZBIM_i_DATA_LOAD.
************************************************************************
***** Lista de parmetros
************************************************************************
************************************************************************
***** Inicio da codificao
***** Sub-Rotinas
************************************************************************
*&---------------------------------------------------------------------*
*&
Form PROCESSA_DADOS
*&---------------------------------------------------------------------*
* Rotina onde executado todo o processamento dos dados do sistema
*----------------------------------------------------------------------*
FORM processa_dados.
* Loop principal do programa
LOOP AT t_rec.
*Incrementa o contador de registros
ADD 1 TO conta_reg.
*Preenche a tabela BDC
PERFORM preenche_registro.
ENDLOOP.
ENDFORM.

" PROCESSA_DADOS

*&---------------------------------------------------------------------*
*&
Form PREENCHE_REGISTRO
*&---------------------------------------------------------------------*
* Preenchimento do registro
*
*----------------------------------------------------------------------*
FORM preenche_registro.

REFRESH bdc_tab.
* Aqui entra o bloco vindo da SHDB
perform bloco_shdb_MSC2N.
perform call_transaction using CC_MSC2N.
ENDFORM.

" PREENCHE_REGISTRO

*&---------------------------------------------------------------------*
*&
Form CARREGA_ESTRUT
*&---------------------------------------------------------------------*
* Carrega as tabelas internas do data load a partir da tabela interna
* t_data_load para as outras tabelas que forem necessarias
*----------------------------------------------------------------------*
FORM carrega_estrut.
CLEAR : t_rec, t_erro.
REFRESH : t_rec, t_erro.
FREE
: t_rec, t_erro.
* este trecho carregue todas as tabelas necessarias
t_rec[] = t_data_load[].
ENDFORM.

" CARREGA_ESTRUT

*&---------------------------------------------------------------------*
*&
Form ARQUI_ERRO_ITEM
*&---------------------------------------------------------------------*
* Caso a carga tenha um arquivo do tipo Header --> Item
* Neste ponto carregado para a t_erro os itens
*----------------------------------------------------------------------*
FORM arqui_erro_item.
ENDFORM.

" ARQUI_ERRO_ITEM

*&---------------------------------------------------------------------*
*&
Form bloco_shdb_MSC2N
*&---------------------------------------------------------------------*
FORM bloco_shdb_MSC2N.
perform bdc_dynpro

using 'SAPMM03S'

perform bdc_field

using:

Lote
'RM03S-CHARG'
Centro
'RM03S-WERKS'
Depsito
'RM03S-LGORT'
Enter
'BDC_OKCODE'

*
*
*

*
*
*

perform bdc_dynpro

using 'SAPMM03S'

perform bdc_field

using:

'0105'.

T_REC-CHARG,
T_REC-WERKS,
T_REC-LGORT,
'/00'.
'0200'.

Data da produo
'MCHA-HSDAT'
T_REC-HSDAT,
Estoque de livre utilizao: branco
'RM03S-FZUST'
T_REC-FZUST,
Data de vencimento
'MCHA-VFDAT'
T_REC-MHD_IO,

Data da ltima entrada de mercadoria


'MCHA-LWEDT'
T_REC-LWEDT,
Boto classificao
'BDC_OKCODE'
'=CLAS'.

*
perform bdc_dynpro

using 'SAPLCTMS'

'0109'.

* Monta as caractersticas para o lote


perform bdc_field
using:
*
% de germinao - caracterstica
'RCTMS-MNAME(01)' C_GERMINA,
*
% de germinao - valor
'RCTMS-MWERT(01)' t_rec-mwert_01,
*
% de teste de frio - caracterstica
'RCTMS-MNAME(02)' c_teste_frio,
*
% de teste de frio - valor
'RCTMS-MWERT(02)' t_rec-mwert_02,
*
% de pureza - caracterstica
'RCTMS-MNAME(03)' C_PUREZA,
*
% de pureza - valor
'RCTMS-MWERT(03)' t_rec-mwert_03.
* Se o cdigo do no material terminar com "BB", h Atestado de
* qualidade
v_tam_matnr
= strlen( t_rec-matnr ).
v_tam_matnr
= v_tam_matnr - 2.
v_duas_posicoes = t_rec-matnr+v_tam_matnr(2).
if v_duas_posicoes ne 'BB'.
perform bdc_field
using:
*
Atestado de anlise - caracterstica
'RCTMS-MNAME(04)' C_ATESTADO,
*
Atestado de anlise - valor
'RCTMS-MWERT(04)' t_rec-mwert_04.
endif.
perform bdc_field
*

using:
Classe de qualidade - caracterstica
'RCTMS-MNAME(05)' c_clas_qua,
Classe de qualidade - valor
'RCTMS-MWERT(05)' t_rec-mwert_05.

* S insere dados para a caracterstica Peso Lquido de Impresso se o


* material comear com 'SM' e a terceira letra no for 'B'
if ( t_rec-matnr(2) eq 'SM' ) and ( t_rec-matnr+2(1) ne 'B' ).
perform bdc_field
using:
*
Peso lquido impreso - caracterstica
'RCTMS-MNAME(06)' c_peso_liq,
*
Peso lquido impreso - valor
'RCTMS-MWERT(06)' t_rec-mwert_06.
endif.
perform bdc_field
*

using:
Ao
'BDC_OKCODE'

'=BACK'.

perform bdc_dynpro

using 'SAPMM03S'

'0200'.

perform bdc_field

using: 'BDC_OKCODE'

'=BU'.

ENDFORM.

" bloco_shdb_msc2

************************************************************************

You might also like