Módulo: DOC. IMPORTAÇÃO
Funcionalidade: PLI
Data/Hora da Publicação: 05/08/2010 00:00:00
Data/Hora Última Alteração: 23/02/2011 09:26:03
Descrição da Nota: AJUSTE PREENCHIMENTO ESPECIFICAÇÃO TÉCNICA E VALOR NO LOCAL EMBARQUE
Sintoma
Não está sendo preenchida a especificação técnica de acordo com o parametrizado na tabela
/pws/zycit338.
Não está preenchendo o valor de mercadoria no local de embarque para os itens de programa de
remessa. Estava olhando /pws/zycet050, sendo que não transmite mais.
Solução
Ajustada montagem da chave de busca do texto da especificação técnica e adicionado tratamento para
itens de remessa no calculo do valor no local de embarque.
8.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 10468 Data: 05/08/2010 Hora: 15:04:39
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 10468
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 8.0
Pacote : 00004
Agrupamento : 00033
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
09381 - 00001 - 8.0 - 00001 - O VALOR TOTAL DA MERCADORIA NO LOCAL DE EMBARQUE ESTÁ ERRADO
10307 - 00002 - 8.0 - 00004 - IMPLEMENTAÇÕES NA PLI PARA ATENDER SUFRAMA 5.0
----------------------------------------------------------------------------------------------------
AJUSTE PREENCHIMENTO ESPECIFICAÇÃO TÉCNICA E VALOR NO LOCAL EMBARQUE
----------------------------------------------------------------------------------------------------
Palavras Chave:
PLI - PREENCHIMENTO - ESPECIFICAÇÃO - TÉCNICA - VALOR - LOCAL - EMBARQUE
/PWS/SAPMZYCI020
----------------------------------------------------------------------------------------------------
Objetos da nota:
DYNP /PWS/SAPMZYCI020 0521
REPS /PWS/MZYCI020F01
REPS /PWS/MZYCI020F02
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCI020 0521
EXCLUIR TEXTO "C_ESP"
EXCLUIR CAMPO "V_ESP"
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI020F01
...
IF v_field = 'V_ESP338'.
SELECT SINGLE matnr FROM ekpo INTO v_matnr
WHERE ebeln = /pws/zycie079a-ebeln
AND ebelp = /pws/zycie079a-ebelp.
SELECT SINGLE * FROM /pws/zycit338 INTO itab_zycit338
WHERE matnr = v_matnr
AND codsufra = /PWS/ZYCIE079A-CODSUFRA.
READ TABLE itab_zycit338 INDEX 1.
* >> Início da exclusão: FORM PREENCHE_V_ESP
CONCATENATE sy-mandt v_matnr itab_zycit338-codsufra INTO v_txtki.
* << Fim da exclusão
* >> Início da inclusão: FORM PREENCHE_V_ESP
CLEAR v_txtki.
itab_zycit338-mandt = sy-mandt.
itab_zycit338-matnr = v_matnr.
v_txtki = itab_zycit338(25).
* << Fim da inclusão
CLEAR: rtexti.
REFRESH: rtexti.
CALL FUNCTION 'READ_TEXT'
EXPORTING
client = sy-mandt
id = '0338'
language = sy-langu
name = v_txtki
object = '/PWS/ZYCI'
TABLES
...
...
kschl = itab_itens_auxs-kschl AND
evrtn = itab_itens_auxs-ebeln AND
evrtp = itab_itens_auxs-ebelp AND
datbi GE /pws/zycie078-dtuserc AND
datab LE /pws/zycie078-dtuserc .
ENDIF.
IF NOT itab_a016[] IS INITIAL.
SELECT * FROM konp INTO TABLE itab_konp
FOR ALL ENTRIES IN itab_a016 WHERE
knumh = itab_a016-knumh AND
* >> Início da exclusão: FORM VERIFICA_ITENS
krech = 'C' AND
* << Fim da exclusão
* >> Início da inclusão: FORM VERIFICA_ITENS
krech IN ('C','B') AND
* << Fim da inclusão
loevm_ko = space .
LOOP AT itab_konp.
READ TABLE itab_a016 WITH KEY knumh = itab_konp-knumh.
itab_konp-ebeln = itab_a016-evrtn.
itab_konp-ebelp = itab_a016-evrtp.
MODIFY itab_konp TRANSPORTING ebeln ebelp.
ENDLOOP.
ELSE.
MESSAGE i015 WITH text-433.
ENDIF.
...
...
LOOP AT itab_zycit030.
MOVE-CORRESPONDING itab_zycit030 TO itab_zycit030_aux.
IF itab_itens_aux-bstyp = 'L'.
LOOP AT itab_konp WHERE ebeln = it_zycit079-ebeln AND
ebelp = it_zycit079-ebelp AND
kschl = itab_zycit030-kschl.
* >> Início da exclusão: FORM VERIFICA_ITENS
IF NOT itab_konp-kpein IS INITIAL.
* << Fim da exclusão
PERFORM retorna_decimais USING itab_konp-konwa
CHANGING itab_konp-kbetr.
* >> Início da inclusão: FORM VERIFICA_ITENS
IF itab_konp-krech EQ 'B'.
itab_zycit030_aux-valor = itab_konp-kbetr /
it_zycit079-menge .
APPEND itab_zycit030_aux.
ELSE.
IF NOT itab_konp-kpein IS INITIAL.
* << Fim da inclusão
itab_zycit030_aux-valor = itab_konp-kbetr
/ itab_konp-kpein.
APPEND itab_zycit030_aux.
ENDIF.
* >> Início da inclusão: FORM VERIFICA_ITENS
ENDIF.
* << Fim da inclusão
ENDLOOP.
ELSE.
CLEAR v_ebelp.
...
...
EXCEPTIONS
OTHERS = 1.
READ TABLE itab_komk_aux WITH KEY knumv = itab_komk-knumv.
itab_komv-ebeln = itab_komk_aux-ebeln.
MODIFY itab_komv TRANSPORTING ebeln
WHERE knumv = itab_komk-knumv.
APPEND LINES OF itab_komv TO itab_komv_aux.
ENDLOOP.
REFRESH itab_komv.
itab_komv[] = itab_komv_aux[].
* >> Início da inclusão: FORM VERIFICA_VLTOTAL_LOCAL_EMB
REFRESH: itab_itens_aux2.
MOVE: itab_itens_aux[] TO itab_itens_aux2[].
DELETE itab_itens_aux2 WHERE bstyp NE 'L'.
IF NOT itab_itens_aux2[] IS INITIAL.
REFRESH: itab_itens_auxs, itab_a016, itab_konp.
LOOP AT itab_zycit030.
LOOP AT itab_itens_aux2.
itab_itens_auxs-ebeln = itab_itens_aux2-ebeln.
itab_itens_auxs-ebelp = itab_itens_aux2-ebelp.
itab_itens_auxs-kschl = itab_zycit030-kschl.
APPEND itab_itens_auxs.
ENDLOOP.
ENDLOOP.
IF NOT itab_itens_auxs[] IS INITIAL.
SELECT * FROM a016 INTO TABLE itab_a016
FOR ALL ENTRIES IN itab_itens_auxs WHERE
kappl = 'M ' AND
kschl = itab_itens_auxs-kschl AND
evrtn = itab_itens_auxs-ebeln AND
evrtp = itab_itens_auxs-ebelp AND
datbi GE /pws/zycie078-dtuserc AND
datab LE /pws/zycie078-dtuserc .
ENDIF.
IF NOT itab_a016[] IS INITIAL.
SELECT * FROM konp INTO TABLE itab_konp
FOR ALL ENTRIES IN itab_a016 WHERE
knumh = itab_a016-knumh AND
krech = 'C' AND
loevm_ko = space .
LOOP AT itab_konp.
READ TABLE itab_a016 WITH KEY knumh = itab_konp-knumh.
itab_konp-ebeln = itab_a016-evrtn.
itab_konp-ebelp = itab_a016-evrtp.
MODIFY itab_konp TRANSPORTING ebeln ebelp.
ENDLOOP.
ELSE.
MESSAGE i015 WITH text-433.
ENDIF.
ENDIF.
* << Fim da inclusão
SELECT SINGLE * FROM t001 WHERE bukrs EQ /pws/zycie078-bukrs.
SELECT * FROM /pws/zycit030
INTO TABLE itab_zycit030
WHERE codigo EQ 'FOB'
AND land1 EQ t001-land1
AND bukrs EQ /pws/zycie078-bukrs.
LOOP AT it_zycit079_a.
CLEAR v_vlmerc.
CLEAR itab_itens_aux.
READ TABLE itab_itens_aux WITH KEY ebeln = it_zycit079_a-ebeln
...
...
MOVE itab_itens_aux-ktmng TO it_zycit079_a-menge.
ENDIF.
ENDIF.
IF itab_itens_aux-loekz EQ 'L'.
MESSAGE w061 WITH text-014
itab_itens_aux-ebeln itab_itens_aux-ebelp
text-015.
ENDIF.
LOOP AT itab_zycit030.
MOVE-CORRESPONDING itab_zycit030 TO itab_zycit030_aux.
* >> Início da inclusão: FORM VERIFICA_VLTOTAL_LOCAL_EMB
IF itab_itens_aux-bstyp = 'L'.
LOOP AT itab_konp WHERE ebeln = it_zycit079_a-ebeln AND
ebelp = it_zycit079_a-ebelp AND
kschl = itab_zycit030-kschl.
PERFORM retorna_decimais USING itab_konp-konwa
CHANGING itab_konp-kbetr.
IF itab_konp-krech EQ 'B'.
itab_zycit030_aux-valor = itab_konp-kbetr /
it_zycit079_a-menge.
APPEND itab_zycit030_aux.
ELSE.
IF NOT itab_konp-kpein IS INITIAL.
itab_zycit030_aux-valor = itab_konp-kbetr
/ itab_konp-kpein.
APPEND itab_zycit030_aux.
ENDIF.
ENDIF.
ENDLOOP.
ELSE.
* << Fim da inclusão
CLEAR v_ebelp.
CONCATENATE '0' it_zycit079_a-ebelp INTO v_ebelp.
LOOP AT itab_komv
WHERE kposn EQ v_ebelp
AND kschl EQ itab_zycit030-kschl
AND ebeln EQ it_zycit079_a-ebeln.
IF NOT it_zycit079_a-menge IS INITIAL.
itab_zycit030_aux-valor = itab_komv-kwert /
it_zycit079_a-menge.
ENDIF.
APPEND itab_zycit030_aux.
ENDLOOP.
* >> Início da inclusão: FORM VERIFICA_VLTOTAL_LOCAL_EMB
ENDIF.
* << Fim da inclusão
ENDLOOP.
LOOP AT itab_zycit030_aux.
IF itab_zycit030_aux-fator EQ '+'
OR itab_zycit030_aux-fator IS INITIAL.
v_vlmerc = v_vlmerc + itab_zycit030_aux-valor .
ELSE.
v_vlmerc = v_vlmerc - itab_zycit030_aux-valor.
ENDIF.
AT END OF codigo.
it_zycit079_a-netpr = v_vlmerc.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI020F02
...
READ TABLE rtexti INDEX 1.
v_esp = rtexti-tdline.
ENDIF.
SELECT SINGLE matnr FROM ekpo INTO v_matnr
WHERE ebeln = /pws/zycie079a-ebeln
AND ebelp = /pws/zycie079a-ebelp.
SELECT SINGLE * FROM /pws/zycit338 INTO itab_zycit338
WHERE matnr = v_matnr
AND codsufra = /pws/zycie079a-codsufra.
READ TABLE itab_zycit338 INDEX 1.
* >> Início da exclusão: FORM FILL_DESC
CONCATENATE sy-mandt v_matnr itab_zycit338-codsufra INTO v_txtki.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DESC
CLEAR v_txtki.
itab_zycit338-mandt = sy-mandt.
itab_zycit338-matnr = v_matnr.
v_txtki = itab_zycit338(25).
* << Fim da inclusão
CLEAR: rtexti.
REFRESH: rtexti.
CALL FUNCTION 'READ_TEXT'
EXPORTING
client = sy-mandt
id = '0338'
language = sy-langu
name = v_txtki
object = '/PWS/ZYCI'
TABLES
...
...
FORM send.
* >> Início da inclusão: FORM SEND
DATA: rimc11 LIKE indx-srtfd VALUE 'ZYCIT079'.
IF wa_zycit136-tp_doc = 'PLI'.
EXPORT it_zycit079 TO MEMORY ID rimc11.
SUBMIT /pws/zycir041 AND RETURN. "#EC CI_SUBMIT
IF sy-subrc = 0.
MESSAGE i061 WITH text-512.
ENDIF.
EXIT.
ENDIF.
* << Fim da inclusão
IF wa_zycit136-stasis = text-300.
MESSAGE s061 WITH text-305 text-307 text-306.
EXIT.
ENDIF.
IF wa_zycit136-stasis = text-302.
MESSAGE s061 WITH text-305 text-307 text-306.
EXIT.
ENDIF.
IF wa_zycit136-stasis = text-303.
MESSAGE s061 WITH text-305 text-307 text-306.
...
...
IF v_string_ex IS INITIAL.
MESSAGE s061 WITH text-313 text-314 text-315 text-309.
EXIT.
ENDIF.
DATA: v_tam TYPE i.
CLEAR: v_tam.
CASE wa_zycit136-tp_doc.
WHEN 'PLI'.
* >> Início da exclusão: FORM SEND
DATA: rimc11 LIKE indx-srtfd VALUE 'ZYCIT079'.
EXPORT it_zycit079 TO MEMORY ID rimc11.
SUBMIT /pws/zycir041 AND RETURN. "#EC CI_SUBMIT
IF sy-subrc = 0.
MESSAGE i061 WITH text-512.
ENDIF.
* << Fim da exclusão
WHEN OTHERS.
CALL FUNCTION 'GUI_GET_FILE_INFO'
EXPORTING
fname = v_string_ex
IMPORTING
file_size = v_tam
EXCEPTIONS
fileinfo_error = 1
OTHERS = 2.
...