Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Encerramento Contábil
Data/Hora da Publicação: 25/03/2009 00:00:00
Data/Hora Última Alteração: 22/02/2011 15:41:13
Descrição da Nota: ENCERRAMENTO PROCESSO DE SERVIÇO( ITEM SEM MATUSE )
Sintoma
Está permitindo realizar o encerramento contabil sem realizar o recebimento da fatura de serviço.
Não está realizando o encerramento contabil quando o item não possui matuse.
Solução
Ajustado programa para verificar se foi realizado o recebimento antes de realizar o encerramento
contabil.
Ajustado encerramento contabil para buscar a conta através da classificação contabil quando o item
não possuir matuse.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 08240 Data: 25/03/2009 Hora: 14:26:14
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 08240
Categoria : Erro de Programa
Prioridade : Alta
Versão PW.CE : 7.0
Pacote : 00009
Agrupamento : 00091
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
06756 - 00001 - 7.0 - 00005 - AO FAZER ENCERRAMENTO DE ITENS DE SERVIÇO, RECLAMA DE RECEBIMENTO
08189 - 00002 - 7.0 - 00008 - EMBARQUE DE SERVIÇO NÃO ESTA PERMITINDO ENCERRAR CUSTO E CONTABIL
----------------------------------------------------------------------------------------------------
ENCERRAMENTO PROCESSO DE SERVIÇO( ITEM SEM MATUSE )
----------------------------------------------------------------------------------------------------
Palavras Chave:
ENCERRAMENTO - CUSTO - CONTABIL - MATUSE - CONTA - CLASSE - AVALIAÇÃO
/PWS/SAPMZYCI010 - /PWS/SAPMZYCI037 - RECEBIMENTO
----------------------------------------------------------------------------------------------------
Objetos da nota:
DYNP /PWS/SAPMZYCI037 0112
REPS /PWS/MZYCI010F02
REPS /PWS/MZYCI010F03
REPS /PWS/MZYCI010X01
REPS /PWS/MZYCI037F01
REPS /PWS/MZYCI037X01
REPT /PWS/SAPMZYCI010
TABD /PWS/ZYCIE211
TABD /PWS/ZYCIT211
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCI037 0112
INCLUIR CAMPO TEXTO "ITAB_ZYCIT211-BELNR_F05" em tbl.contr./tabstr.
Altura 25
Comprimento Visível 10
Linha 1
Coluna 3
Formato CHAR
Texto __________
INCLUIR TEXTO "ITAB_ZYCIT211-BELNR_F05" em tbl.contr./tabstr.
Altura 25
Comprimento Visível 12
Linha 1
Coluna 3
Formato CHAR
Texto Var. Cambial
MODIFICAR CONTROLE DE TABELA "TC_BKLAS"
Comprimento Visível 76
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI010F02
FORM encerramento.
* >> Início da inclusão: FORM ENCERRAMENTO
DATA: itab_zycit263b TYPE /pws/zycit263 OCCURS 0 WITH HEADER LINE.
* << Fim da inclusão
...
...
LOOP AT itab_zycit003_custo.
v_vldif = itab_zycit003_custo-vldif + v_vldif.
ENDLOOP.
CLEAR: v_mr22, v_vldif1.
CLEAR v_nota.
* >> Início da inclusão: FORM ENCERRAMENTO
CLEAR: v_fatura.
* << Fim da inclusão
...
...
ENDIF.
IF e_subrc EQ 0.
IF itab_zycit042[] IS INITIAL AND /pws/zycie001-modalidade NE '02'.
SELECT * FROM /pws/zycit042
INTO TABLE itab_zycit042 "#EC CI_NOFIRST
WHERE nrseq = /pws/zycie001-nrseq.
IF sy-subrc NE 0.
v_nota = 'X'.
MESSAGE i015 WITH text-072.
ENDIF.
* >> Início da inclusão: FORM ENCERRAMENTO
ELSEIF /pws/zycie001-modalidade EQ '02'.
CLEAR: v_fatura.
itab_zycit263b[] = itab_zycit263[].
DELETE itab_zycit263b WHERE eliminado EQ 'X'.
IF NOT itab_zycit263b[] IS INITIAL.
SELECT * FROM /pws/zycit006 "#EC CI_NOFIELD
INTO TABLE itab_zycit006
FOR ALL ENTRIES IN itab_zycit263b
WHERE nrseq_pgfat EQ itab_zycit263b-nrseq_pgfat
AND tpfatura EQ '11'
AND eliminado EQ space
AND belnr_mr1m NE space.
* << Fim da inclusão
ELSE.
* >> Início da inclusão: FORM ENCERRAMENTO
v_fatura = 'X'.
MESSAGE i015 WITH text-088.
ENDIF.
LOOP AT itab_zycit003.
CLEAR: v_qtd_fat.
MULTIPLY itab_zycit003-qtd_iten BY 10000.
DIVIDE itab_zycit003-qtd_iten BY 10000.
LOOP AT itab_zycit263b WHERE nrseq EQ itab_zycit003-nrseq
AND ebeln EQ itab_zycit003-ebeln
AND ebelp EQ itab_zycit003-ebelp
AND eliminado NE 'X'.
ADD itab_zycit263b-qtd_iten TO v_qtd_fat.
READ TABLE itab_zycit006 WITH KEY
nrseq_pgfat = itab_zycit263b-nrseq_pgfat.
IF sy-subrc NE 0.
MESSAGE i015 WITH text-086.
v_fatura = 'X'.
EXIT.
ENDIF.
ENDLOOP.
IF itab_zycit003-qtd_iten < v_qtd_fat.
MESSAGE i015 WITH text-084 text-087.
v_fatura = 'X'.
EXIT.
ENDIF.
IF v_fatura = 'X'.
EXIT.
ENDIF.
ENDLOOP.
ELSE.
* << Fim da inclusão
LOOP AT itab_zycit003 WHERE servico NE 'X'.
READ TABLE itab_zycit042 WITH KEY nrseq = itab_zycit003-nrseq
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
IF sy-subrc NE 0.
v_nota = 'X'.
EXIT.
ENDIF.
ENDLOOP.
SELECT * FROM /pws/zycit041 INTO TABLE itab_zycit041
...
...
WHERE belnr_mr22 EQ /pws/zycie001-belnr_mr22.
SELECT * FROM /pws/zycit201
INTO TABLE itab_zycit201
WHERE nrseqenc EQ /pws/zycit202-nrseqenc.
LOOP AT itab_zycit201.
v_vldif = v_vldif + itab_zycit201-vldif.
ENDLOOP.
v_mr22 = 'X'.
v_vldif1 = v_vldif.
ENDIF.
* >> Início da exclusão: FORM ENCERRAMENTO
IF v_vldif NE 0 AND v_nota IS INITIAL.
* << Fim da exclusão
* >> Início da inclusão: FORM ENCERRAMENTO
IF v_vldif NE 0 AND v_nota IS INITIAL AND v_fatura IS INITIAL.
* << Fim da inclusão
CLEAR: /pws/zycie001-belnr_f_02,
/pws/zycie001-belnr_f51_mt0, /pws/zycie001-belnr_f51_mt1,
/pws/zycie001-belnr_f51_mt2, /pws/zycie001-belnr_f51_mt3.
CLEAR v_conta.
IF v_mr22 IS INITIAL.
CLEAR /pws/zycie001-belnr_mr22.
PERFORM get_parameters_mr22.
ENDIF.
PERFORM multiplos_lancamentos_f_02.
PERFORM get_parameters_f-02.
...
...
/pws/zycie001-status_e = 'E'.
MODIFY /pws/zycit001 FROM /pws/zycie001.
PERFORM fill_encerramento USING '1'.
PERFORM fill_diferencas.
COMMIT WORK AND WAIT.
PERFORM call_encerramento.
ENDIF.
ELSE.
EXIT.
ENDIF.
* >> Início da exclusão: FORM ENCERRAMENTO
ELSEIF v_nota IS INITIAL.
* << Fim da exclusão
* >> Início da inclusão: FORM ENCERRAMENTO
ELSEIF v_nota IS INITIAL AND v_fatura IS INITIAL.
* << Fim da inclusão
/pws/zycie001-dtencer = sy-datlo.
/pws/zycie001-status = 'EN'.
/pws/zycie001-status_e = 'E'.
UPDATE /pws/zycit001 SET dtencer = /pws/zycie001-dtencer
status = /pws/zycie001-status
status_e = /pws/zycie001-status_e
WHERE nrseq = /pws/zycie001-nrseq.
IF sy-subrc = 0.
EXPORT /pws/zycie001-dtencer TO MEMORY ID 'ENCER01'.
EXPORT /pws/zycie001-status TO MEMORY ID 'ENCER02'.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI010F03
...
FORM mult_lancamentos.
* >> Início da inclusão: FORM MULT_LANCAMENTOS
DATA: itab_t023 TYPE t023 OCCURS 0 WITH HEADER LINE.
* << Fim da inclusão
...
...
IF NOT itab_ekkn[] IS INITIAL.
SELECT anln1 anln2 gsber FROM anlz INTO TABLE itab_anlz
FOR ALL ENTRIES IN itab_ekkn
WHERE bukrs = /pws/zycie001-bukrs AND
anln1 = itab_ekkn-anln1 AND
anln2 = itab_ekkn-anln2.
ENDIF.
FREE itab_matuse.
IF NOT itab_zycit003_custo[] IS INITIAL.
SELECT ebeln ebelp matnr bwtar j_1bmatuse knttp werks
* >> Início da inclusão: FORM MULT_LANCAMENTOS
matkl
* << Fim da inclusão
FROM ekpo INTO TABLE itab_matuse
FOR ALL ENTRIES IN itab_zycit003_custo
WHERE ebeln = itab_zycit003_custo-ebeln
AND ebelp = itab_zycit003_custo-ebelp.
ENDIF.
CLEAR: itab_classe_aval ,
itab_param_classe.
REFRESH: itab_classe_aval ,
itab_param_classe.
IF NOT itab_matuse[] IS INITIAL.
...
...
itab_classe_aval-bklas TO itab_zycbt035_aux-bklas .
ELSE.
MOVE: itab_matuse-j_1bmatuse TO itab_zycbt035_aux-matuse,
itab_matuse-knttp TO itab_zycbt035_aux-knttp,
space TO itab_zycbt035_aux-bklas .
ENDIF.
ELSE.
MOVE: itab_matuse-j_1bmatuse TO itab_zycbt035_aux-matuse,
itab_matuse-knttp TO itab_zycbt035_aux-knttp,
space TO itab_zycbt035_aux-bklas .
* >> Início da inclusão: FORM MULT_LANCAMENTOS
IF itab_matuse-j_1bmatuse IS INITIAL.
CLEAR: itab_t023.
READ TABLE itab_t023 WITH KEY matkl = itab_matuse-matkl.
IF sy-subrc NE 0.
SELECT SINGLE * FROM t023 INTO itab_t023
WHERE matkl EQ itab_matuse-matkl.
APPEND itab_t023.
ENDIF.
MOVE: itab_t023-bklas TO itab_zycbt035_aux-bklas.
ENDIF.
* << Fim da inclusão
ENDIF.
IF itab_matuse-knttp EQ 'N'.
MOVE: itab_ekkn-nplnr TO itab_zycbt035_aux-nplnr.
SELECT SINGLE vornr FROM afvc
INTO itab_zycbt035_aux-vornr
WHERE aufpl EQ itab_ekkn-aufpl
AND aplzl EQ itab_ekkn-aplzl.
ENDIF.
IF /pws/zycit000-clucro_ia = 'X'.
PERFORM verifica_centro_l.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI010X01
...
DATA: BEGIN OF itab_matuse OCCURS 0 .
DATA: ebeln TYPE ekpo-ebeln ,
ebelp TYPE ekpo-ebelp ,
matnr TYPE ekpo-matnr ,
bwtar TYPE ekpo-bwtar ,
j_1bmatuse TYPE ekpo-j_1bmatuse,
knttp TYPE ekpo-knttp ,
* >> Início da exclusão:
werks TYPE ekpo-werks.
* << Fim da exclusão
* >> Início da inclusão:
werks TYPE ekpo-werks ,
matkl type ekpo-matkl .
* << Fim da inclusão
DATA: END OF itab_matuse .
...
...
* >> Início da inclusão:
DATA: v_fatura TYPE c,
v_qtd_fat type /pws/zycit263-qtd_iten.
* << Fim da inclusão
DATA: END OF COMMON PART b.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI037F01
...
LOOP AT it_zycit201 WHERE codigo = v_valor.
MOVE-CORRESPONDING it_zycit201 TO it_zycit201_d.
READ TABLE itab_dd07t WITH KEY
domvalue_l = it_zycit201-origem.
it_zycit201_d-descricao = itab_dd07t-ddtext.
APPEND it_zycit201_d.
ENDLOOP.
CALL SCREEN '0111'.
ENDIF.
ELSEIF sy-dynnr EQ '0112'.
* >> Início da exclusão: FORM COMM_DRILLDOWN
IF v_campo = 'ITAB_ZYCIT211-BELNR_AVALIACAO' AND NOT
* << Fim da exclusão
* >> Início da inclusão: FORM COMM_DRILLDOWN
IF ( v_campo = 'ITAB_ZYCIT211-BELNR_AVALIACAO' OR
v_campo = 'ITAB_ZYCIT211-BELNR_F05' ) AND NOT
* << Fim da inclusão
v_valor IS INITIAL.
READ TABLE itab_zycit211 INDEX 1.
CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'
EXPORTING
v_bukrs = /pws/zycie001-bukrs
v_date = itab_zycit211-dt_avaliacao
IMPORTING
v_year = v_ano
EXCEPTIONS
variante_de_exercicio = 1
...
...
nrseq = /pws/zycie001-nrseq.
IF itab_zycit003[] IS INITIAL.
MESSAGE w061 WITH text-038 /pws/zycie001-nrseq text-039.
EXIT.
ENDIF.
DESCRIBE TABLE it_zycit202 LINES v_line.
READ TABLE it_zycit202 INDEX v_line.
MOVE it_zycit202 TO /pws/zycie202.
IF NOT itab_zycit003[] IS INITIAL.
SELECT ebeln ebelp j_1bmatuse matnr bwtar knttp werks
* >> Início da inclusão: FORM COMM_ENCER_CONTABIL
matkl
* << Fim da inclusão
FROM ekpo INTO TABLE itab_ekpo
FOR ALL ENTRIES IN itab_zycit003
WHERE ebeln = itab_zycit003-ebeln
AND ebelp = itab_zycit003-ebelp.
ENDIF.
SELECT SINGLE *
FROM /pws/zycbt007
WHERE bukrs EQ /pws/zycie001-bukrs.
SELECT SINGLE land1 FROM t001 INTO v_land1
WHERE bukrs = /pws/zycie001-bukrs.
...
...
REFRESH: it_zycit211.
v_execloop = 'N'.
LOOP AT itab_bsis_aux2 WHERE NOT doccont IS initial.
READ TABLE itab_matuse_aux2 WITH KEY
conta_r = itab_bsis_aux2-hkont.
IF sy-subrc EQ 0.
LOOP AT itab_matuse_aux1 WHERE conta_r = itab_matuse_aux2-conta_r.
IF sy-subrc EQ 0.
IF NOT itab_matuse_aux1-bklas IS INITIAL.
v_execloop = 'S'.
* >> Início da inclusão: FORM COMM_ENCER_CONTABIL
READ TABLE itab_zycit211 WITH KEY
nrseqenc = /pws/zycie202-nrseqenc
bklas = itab_matuse_aux1-bklas.
IF sy-subrc EQ 0.
itab_zycit211-belnr_avaliacao = itab_bsis_aux2-doccont.
MODIFY itab_zycit211 TRANSPORTING belnr_avaliacao
WHERE nrseqenc = /pws/zycie202-nrseqenc
AND bklas = itab_matuse_aux1-bklas.
ELSE.
* << Fim da inclusão
itab_zycit211-nrseqenc = /pws/zycie202-nrseqenc.
itab_zycit211-bklas = itab_matuse_aux1-bklas.
itab_zycit211-belnr_avaliacao = itab_bsis_aux2-doccont.
itab_zycit211-dt_avaliacao = sy-datlo.
APPEND itab_zycit211.
* >> Início da inclusão: FORM COMM_ENCER_CONTABIL
ENDIF.
LOOP AT itab_zycit061 WHERE hkont = itab_bsis_aux2-hkont.
MODIFY /pws/zycit061 FROM itab_zycit061.
ENDLOOP.
* << Fim da inclusão
ELSE.
IF itab_matuse_aux1-matuse EQ '0'.
v_execloop = 'S'.
/pws/zycie001-belnr_f51_mt0 = itab_bsis_aux2-doccont.
/pws/zycie001-dt_f51_mt = sy-datlo.
/pws/zycie202-belnr_f51_mt0 = itab_bsis_aux2-doccont.
/pws/zycie202-dt_f51_mt = sy-datlo.
ELSEIF itab_matuse_aux1-matuse EQ '1'.
v_execloop = 'S'.
/pws/zycie001-belnr_f51_mt1 = itab_bsis_aux2-doccont.
...
...
FORM seleciona_conta_matuse.
* >> Início da inclusão: FORM SELECIONA_CONTA_MATUSE
DATA: itab_t023 TYPE t023 OCCURS 0 WITH HEADER LINE.
* << Fim da inclusão
...
...
v_matuse = itab_ekpo-matuse.
ENDIF.
CLEAR itab_cta. REFRESH itab_cta.
PERFORM seek_account_number
TABLES itab_cta
USING /pws/zycie001-bukrs
'IPA'
itab_ekpo-werks
space
v_matuse
space
space.
ENDIF.
* >> Início da inclusão: FORM SELECIONA_CONTA_MATUSE
READ TABLE itab_cta INDEX 1.
IF itab_cta-konth IS INITIAL.
CLEAR: itab_t023.
READ TABLE itab_t023 WITH KEY matkl = itab_ekpo-matkl.
IF sy-subrc NE 0.
SELECT SINGLE * FROM t023 INTO itab_t023
WHERE matkl EQ itab_ekpo-matkl.
APPEND itab_t023.
ENDIF.
CLEAR itab_cta. REFRESH itab_cta.
PERFORM seek_account_number
TABLES itab_cta
USING /pws/zycie001-bukrs
'IPA'
itab_ekpo-werks
itab_t023-bklas
space
space
space.
itab_matuse_aux1-bklas = itab_t023-bklas.
ENDIF.
* << Fim da inclusão
READ TABLE itab_cta INDEX 1.
itab_matuse_aux1-matuse = itab_ekpo-matuse.
itab_matuse_aux1-conta_r = itab_cta-konth.
itab_matuse_aux1-werks = itab_ekpo-werks.
...
...
v_belnrf05 = /pws/zycie202-belnr_0_f05.
ELSEIF itab_matuse_aux1-matuse = '1'.
/pws/zycie202-belnr_1_f05 = itab_zycbt032-belnr.
v_belnrf05 = /pws/zycie202-belnr_1_f05.
ELSEIF itab_matuse_aux1-matuse = '2'.
/pws/zycie202-belnr_2_f05 = itab_zycbt032-belnr.
v_belnrf05 = /pws/zycie202-belnr_2_f05.
ELSEIF itab_matuse_aux1-matuse = '3'.
/pws/zycie202-belnr_3_f05 = itab_zycbt032-belnr.
v_belnrf05 = /pws/zycie202-belnr_3_f05.
* >> Início da inclusão: FORM VARIACAO_DI
ELSEIF NOT itab_matuse_aux1-bklas IS INITIAL.
itab_zycit211-nrseqenc = /pws/zycie202-nrseqenc.
itab_zycit211-bklas = itab_matuse_aux1-bklas.
itab_zycit211-belnr_f05 = itab_zycbt032-belnr.
itab_zycit211-dt_avaliacao = sy-datlo.
APPEND itab_zycit211.
* << Fim da inclusão
ENDIF.
v_belnr = v_belnrf05.
ENDLOOP.
UPDATE /pws/zycit202 SET
belnr_0_f05 = /pws/zycie202-belnr_0_f05
belnr_1_f05 = /pws/zycie202-belnr_1_f05
belnr_2_f05 = /pws/zycie202-belnr_2_f05
belnr_3_f05 = /pws/zycie202-belnr_3_f05
WHERE nrseqenc = /pws/zycie202-nrseqenc.
COMMIT WORK.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI037X01
...
DATA: BEGIN OF itab_ekpo OCCURS 0 .
DATA: ebeln LIKE ekpo-ebeln ,
ebelp LIKE ekpo-ebelp ,
matuse LIKE ekpo-j_1bmatuse,
matnr LIKE ekpo-matnr,
bwtar LIKE ekpo-bwtar,
knttp LIKE ekpo-knttp,
* >> Início da exclusão:
werks LIKE ekpo-werks.
* << Fim da exclusão
* >> Início da inclusão:
werks LIKE ekpo-werks,
matkl TYPE ekpo-matkl.
* << Fim da inclusão
DATA: END OF itab_ekpo .
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPT /PWS/SAPMZYCI010
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 086
Texto: (48 caracteres)
"Existe(m) fatura(s) sem recebimento no processo."
Comprimento máximo: 50
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 087
Texto: (7 caracteres)
"Fatura."
Comprimento máximo: 50
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 088
Texto: (24 caracteres)
"Fatura ainda não criada."
Comprimento máximo: 50
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIE211
Nome de campo Elem.dados Tab.verif. N CtDt Comp.
MANDT MANDT X CLNT 3
NRSEQENC /PWS/ZYCIL365 X CHAR 10
BKLAS BKLAS X CHAR 4
BELNR_AVALIACAO RE_BELNR CHAR 10
DT_AVALIACAO BUDAT DATS 8
* >> Início da inclusão:
BELNR_F05 BELNR_D CHAR 10
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIT211
Nome de campo Chv Elem.dados Tab.verif. N CtDt Comp.
MANDT X MANDT X CLNT 3
NRSEQENC X /PWS/ZYCIL365 X CHAR 10
BKLAS X BKLAS X CHAR 4
BELNR_AVALIACAO RE_BELNR CHAR 10
DT_AVALIACAO BUDAT DATS 8
* >> Início da inclusão:
BELNR_F05 BELNR_D CHAR 10
* << Fim da inclusão