Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Encerramento de Custo
Data/Hora da Publicação: 26/07/2011 00:00:00
Data/Hora Última Alteração: 07/08/2012 16:04:57
Descrição da Nota: TRATAMENTO DE CAMPOS DE VENDA NA MR22
Sintoma
No pedido de compras, quando a classificação contábil for C, E ou M, abre a pasta de classificação
contábil no detalhe do item para inclusão da ordem do cliente e item.
No momento de fazer a MR22, será necessário incluir estes dois dados.
Solução
Criado tratamento no batch input da mr22 para os campos Doc.Venda e item.
9.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 11355 Data: 26/07/2011 Hora: 11:28:33
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 11355
Categoria : Erro de Programa
Prioridade : Alta
Versão PW.CE : 8.0
Pacote : 00008
Agrupamento : 00079
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
09754 - 00001 - 8.0 - 00002 - TRATAMENTO DE ESTOQUE ESPECIAL NA MR22
----------------------------------------------------------------------------------------------------
TRATAMENTO DE CAMPOS DE VENDA NA MR22
----------------------------------------------------------------------------------------------------
Palavras Chave:
VBELN - POSNR - MR22 - CLASSIFICAÇÃO CONTÁBIL - ENCERRAMENTO
----------------------------------------------------------------------------------------------------
Objetos da nota:
FUNC /PWS/ZYCI_TRANSACAO_MR22
REPS /PWS/MZYCI010F02
TABD /PWS/ZYCIE031
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCI_TRANSACAO_MR22
...
* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSACAO_MR22
data:
v_vbeln(30),
v_vbelp(30).
* << Fim da inclusão
TABLES: mbew.
DATA: v_cpep(30) TYPE c,
v_pep TYPE prps-posid.
LOOP AT t_dados.
CHECK t_dados-tcode = 'MR22'.
READ TABLE t_zycit031 INDEX 1.
WRITE t_dados-budat TO v_budat.
PERFORM bdc_screen USING 'SAPRCKM_MR22' '0201'.
PERFORM bdc_field USING:
'MR21HEAD-BUKRS' t_dados-bukrs,
'MR21HEAD-WERKS' t_dados-werks,
'MR21HEAD-XBLNR' t_dados-xblnr,
'MR21HEAD-BKTXT' t_dados-bktxt,
'MR21HEAD-BUDAT' v_budat,
'BDC_OKCODE' '=ENTR'.
PERFORM bdc_screen USING 'SAPRCKM_MR22' '0201'.
IF sy-saprl NE '46B'.
PERFORM bdc_field USING:
* >> Início da exclusão: FUNCTION /PWS/ZYCI_TRANSACAO_MR22
'MR21HEAD-SCREEN_VARIANT' 'ALLE MATERIALIEN - OHNE BWKEY_'.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSACAO_MR22
'MR21HEAD-SCREEN_VARIANT' 'ALLE MATERIALIEN_0250'.
* << Fim da inclusão
ENDIF.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_TRANSACAO_MR22
PERFORM bdc_field USING 'BDC_OKCODE' '=ENTR'.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSACAO_MR22
PERFORM bdc_field USING 'BDC_OKCODE' '=DUMMY'.
* << Fim da inclusão
v_srows = sy-srows - 13.
LOOP AT t_zycit031.
v_aba = 2.
...
...
WHERE matnr = t_zycit031-matnr.
IF mbew-bwtty = 'H'.
PERFORM bdc_screen USING 'SAPRCKM_MR22' '0201'.
PERFORM bdc_field USING:
v_bwkey t_zycit031-werks,
v_matnr v_matnr_in,
v_bwtar v_bwtar_in,
v_zuumb v_wrbtr ,
v_cpep v_pep,
v_menge v_meng2 .
* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSACAO_MR22
IF NOT t_zycit031-vbeln IS INITIAL.
CONCATENATE 'CKI_MR22_0250-VBELN' '(' v_cont ')' INTO v_vbeln.
PERFORM bdc_field USING v_vbeln t_zycit031-vbeln.
ENDIF.
IF NOT t_zycit031-vbelp IS INITIAL.
CONCATENATE 'CKI_MR22_0250-POSNR' '(' v_cont ')' INTO v_vbelp.
PERFORM bdc_field USING v_vbelp t_zycit031-vbelp.
ENDIF.
* << Fim da inclusão
ELSE.
PERFORM bdc_screen USING 'SAPRCKM_MR22' '0201'.
PERFORM bdc_field USING:
v_bwkey t_zycit031-werks,
v_matnr v_matnr_in,
v_bwtar v_bwtar_in,
v_zuumb v_wrbtr ,
v_cpep v_pep,
v_menge v_meng2 .
* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSACAO_MR22
IF NOT t_zycit031-vbeln IS INITIAL.
CONCATENATE 'CKI_MR22_0250-VBELN' '(' v_cont ')' INTO v_vbeln.
PERFORM bdc_field USING v_vbeln t_zycit031-vbeln.
ENDIF.
IF NOT t_zycit031-vbelp IS INITIAL.
CONCATENATE 'CKI_MR22_0250-POSNR' '(' v_cont ')' INTO v_vbelp.
PERFORM bdc_field USING v_vbelp t_zycit031-vbelp.
ENDIF.
* << Fim da inclusão
ENDIF.
PERFORM bdc_field USING 'BDC_OKCODE' '=ENTR'.
DO v_moeda TIMES.
IF NOT v_moeda IS INITIAL.
PERFORM bdc_screen USING 'SAPRCKM_MR22' '0201'.
PERFORM bdc_field USING:
'BDC_OKCODE' v_tab,
'BDC_SUBSCR' 'SAPRCKM_MR22 0250MR22_SUB',
'BDC_CURSOR' v_matnr .
IF sy-saprl NE '46B'.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI010F02
...
itab_zycie031_aux-menge = itab_zycit003-qtd_iten .
IF itab_zycit003-meins NE itab_mara-meins.
PERFORM carrega_um USING itab_mara-matnr
CHANGING itab_zycit003-meins
itab_zycie031_aux-menge.
ENDIF.
ENDIF.
ENDIF.
itab_zycie031_aux-ebeln = itab_zycit003_custo-ebeln.
itab_zycie031_aux-ebelp = itab_zycit003_custo-ebelp.
* >> Início da exclusão: FORM GET_PARAMETERS_MR22
itab_zycie031_aux-wrbtr = itab_zycit003_custo-vldif .
itab_zycie031_aux-waers = wa_zycbt007-waersb.
* << Fim da exclusão
* >> Início da inclusão: FORM GET_PARAMETERS_MR22
itab_zycie031_aux-wrbtr = itab_zycit003_custo-vldif .
itab_zycie031_aux-waers = wa_zycbt007-waersb.
IF 'CME' CA itab_material-knttp.
SELECT SINGLE vbeln vbelp FROM ekkn
INTO (itab_zycie031_aux-vbeln, itab_zycie031_aux-vbelp)
WHERE ebeln = itab_zycit003_custo-ebeln
AND ebelp = itab_zycit003_custo-ebelp.
ENDIF.
* << Fim da inclusão
APPEND itab_zycie031_aux.
ENDLOOP.
FREE itab_zycie031.
LOOP AT itab_zycie031_aux.
itab_zycie031-tcode = itab_zycie031_aux-tcode.
itab_zycie031-tabela = itab_zycie031_aux-tabela.
itab_zycie031-cpochv = itab_zycie031_aux-cpochv.
itab_zycie031-werks = itab_zycie031_aux-werks.
itab_zycie031-matnr = itab_zycie031_aux-matnr.
itab_zycie031-bwtar = itab_zycie031_aux-bwtar.
itab_zycie031-wrbtr = itab_zycie031_aux-wrbtr.
itab_zycie031-menge = itab_zycie031_aux-menge.
itab_zycie031-selkz_soll = itab_zycie031_aux-selkz_soll.
itab_zycie031-selkz_habe = itab_zycie031_aux-selkz_habe.
itab_zycie031-waers = itab_zycie031_aux-waers.
itab_zycie031-ps_psp_pnr = itab_zycie031_aux-ps_psp_pnr.
* >> Início da inclusão: FORM GET_PARAMETERS_MR22
itab_zycie031-vbeln = itab_zycie031_aux-vbeln.
itab_zycie031-vbelp = itab_zycie031_aux-vbelp.
* << Fim da inclusão
COLLECT itab_zycie031.
ENDLOOP.
ENDFORM.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIE031
* Criar os campos ao fim da estrutura /PWS/ZYCIE031
Campos
Nome campo Elem.dados Cat.Dados Comprimento
VBELN VBELN_CO CHAR 10
VBELP POSNR_CO NUMC 6