Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Recebimento
Data/Hora da Publicação: 16/08/2013 00:00:00
Data/Hora Última Alteração: 19/08/2013 17:25:23
Descrição da Nota: DESENVOLVIMENTO PRA CONTABILIZAÇÃO DA MIGO VIA BAPI
Sintoma
Desenvolvimento pra contabilização da MIGO via BAPI
Solução
Novo parâmetro na /pws/zycit000 para optar entre processar a MIGO do recebimento físico (recebimento
de mercadorias e de serviços) por BAPI ou manter em batch-input
9.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 13179 Data: 16/08/2013 Hora: 10:41:01
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 13179
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 9.0
Pacote : 00005
Agrupamento : 00161
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
04474 - 00001 - 7.0 - 00002 - NECESSÁRIO CRIAR CHAMADAS DE EXITS EM VÁRIOS PONTOS DA FATURA
12793 - 00002 - 9.0 - 00003 - UNIFICAÇÃO DAS MENSAGENS DE RECEBIMENTO
----------------------------------------------------------------------------------------------------
DESENVOLVIMENTO PRA CONTABILIZAÇÃO DA MIGO VIA BAPI
----------------------------------------------------------------------------------------------------
Palavras Chave:
DESENVOLVIMENTO - CONTABILIZAÇÃO - MIGO - BAPI - FATURA - RECEBIMENTO
/PWS/SAPMZYCI003 - /PWS/SAPMZYCI017
----------------------------------------------------------------------------------------------------
Objetos da nota:
DTEL /PWS/ZYCIL950
TABD /PWS/ZYCIT000
DYNP /PWS/SAPLZYCIGF1 0005
REPS /PWS/MZYCI003F03
REPS /PWS/MZYCI017F03
REPS /PWS/MZYCI017F01
REPS /PWS/MZYCI003F02
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DTEL /PWS/ZYCIL950
------------------------------------------------------------------------
Elemento de dados incluído: /PWS/ZYCIL950
Classe de desenvolvimento: /PWS/ZYGL
Idioma original: PT
Descrição breve incluída: (30 caracteres), idioma: EN
"GL - Physical receipt via BAPI"
Descrição breve incluída: (28 caracteres), idioma: PT
"GL - Entrada Fisica via BAPI"
Descrição breve incluída: (28 caracteres), idioma: ES
"GL - Entrada Fisica via BAPI"
Categoria de dados: Domínio
Domínio: XFELD
ID parâmetro:
Nome componente default:
Documentar modificações: NÃO
Nome da ajuda de pesquisa:
Parâmetro da ajuda de pesquisa:
Comprimento máximo do denominador breve: 10
Denominador breve incluído (9 caracteres), idioma: EN
"BAPI MIGO"
Denominador breve incluído (9 caracteres), idioma: PT
"BAPI MIGO"
Denominador breve incluído (9 caracteres), idioma: ES
"BAPI MIGO"
Comprimento máximo do denominador médio: 15
Denominador médio incluído (12 caracteres), idioma: EN
"MIGO by BAPI"
Denominador médio incluído (13 caracteres), idioma: PT
"MIGO via BAPI"
Denominador médio incluído (13 caracteres), idioma: ES
"MIGO via BAPI"
Comprimento máximo do denominador longo: 25
Denominador longo incluído (24 caracteres), idioma: EN
"Physical receipt by BAPI"
Denominador longo incluído (23 caracteres), idioma: PT
"Entrada Fisica via BAPI"
Denominador longo incluído (23 caracteres), idioma: ES
"Entrada Fisica via BAPI"
Comprimento máximo do título: 30
Título incluído (30 caracteres), idioma: EN
"GL - Physical receipt via BAPI"
Título incluído (28 caracteres), idioma: PT
"GL - Entrada Fisica via BAPI"
Título incluído (28 caracteres), idioma: ES
"GL - Entrada Fisica via BAPI"
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIT000
Nome de campo |Chv |Elem.dados |Tab.verif. |CtDt |Comp.
...
* >> Início da inclusão:
MIGO_BAPI | |/PWS/ZYCIL950 | |CHAR | 1
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPLZYCIGF1 0005
MODIFICAR CARACTERÍSTICAS DA TELA 0005
Altura atual (linhas) 63
INCLUIR CAIXA DE VERIFICAÇÃO "/PWS/ZYCIT000-MIGO_BAPI"
Comprimento Visível 1
Linha 63
Coluna 2
Formato CHAR
Linhas mínimas 1
Texto _
Código função
INCLUIR CHTXT "/PWS/ZYCIT000-MIGO_BAPI"
Comprimento Visível 15
Linha 63
Coluna 4
Formato CHAR
Texto MIGO via BAPI
Código função
MODIFICAR LÓGICA DE PROCESSAMENTO TELA 0005
...
FIELD /pws/zycit000-cod_antidump .
FIELD /pws/zycit000-newbw .
FIELD /pws/zycit000-flag_recof .
FIELD /pws/zycit000-ndias_lead_time .
FIELD /pws/zycit000-rat_pes .
FIELD /pws/zycit000-aliqii .
FIELD /pws/zycit000-freten .
FIELD /pws/zycit000-fat_frete .
FIELD /pws/zycit000-sem_cambio .
FIELD /pws/zycit000-di_dif_fat.
* >> Início da inclusão:
FIELD /pws/zycit000-migo_bapi.
* << Fim da inclusão
MODULE set_update_flag ON CHAIN-REQUEST.
ENDCHAIN.
CHAIN.
FIELD /pws/zycit000-land1 .
MODULE detail_pai.
ENDCHAIN.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003F03
...
* >> Início da inclusão:
FORM bapi_migo.
DATA: l_goodsmvt_header TYPE bapi2017_gm_head_01,
l_goodsmvt_code TYPE bapi2017_gm_code,
l_bapi2017_head_ret TYPE bapi2017_gm_head_ret,
lt_goodsmvt_item TYPE TABLE OF bapi2017_gm_item_create,
l_goodsmvt_item TYPE bapi2017_gm_item_create,
l_messages2 TYPE bapiret2,
lt_messages2 TYPE TABLE OF bapiret2.
DATA: l_posid LIKE prps-posid.
DATA: l_erfmg(13).
DATA: t_serie TYPE TABLE OF bapi2017_gm_serialnumber,
l_serie TYPE bapi2017_gm_serialnumber.
DATA: BEGIN OF it_ekpo OCCURS 0,
ebeln TYPE ekpo-ebeln,
ebelp TYPE ekpo-ebelp,
insmk TYPE ekpo-insmk,
END OF it_ekpo.
IF NOT itab_zycit031[] IS INITIAL.
SELECT ebeln ebelp insmk FROM ekpo
INTO TABLE it_ekpo
FOR ALL ENTRIES IN itab_zycit031
WHERE ebeln EQ itab_zycit031-ebeln
AND ebelp EQ itab_zycit031-ebelp.
ENDIF.
CLEAR l_goodsmvt_header.
l_goodsmvt_header-pstng_date = sy-datlo.
l_goodsmvt_header-doc_date = itab_zycie033-bldat.
l_goodsmvt_header-pr_uname = sy-uname.
l_goodsmvt_header-header_txt = itab_zycie033-bktxt.
l_goodsmvt_header-ref_doc_no = itab_zycie033-lfsnr.
l_goodsmvt_header-ver_gr_gi_slip = 1.
l_goodsmvt_header-ver_gr_gi_slipx = 'X'.
IF NOT itab_zycie033-xabln IS INITIAL.
l_goodsmvt_header-gr_gi_slip_no = itab_zycie033-xabln.
ENDIF.
l_goodsmvt_header-bill_of_lading = itab_zycie033-xblnr.
l_goodsmvt_item-spec_stock = ' '.
CLEAR: v_indice, l_goodsmvt_item.
LOOP AT itab_zycit031.
READ TABLE itab_zycit003 WITH KEY ebeln = itab_zycit031-ebeln
ebelp = itab_zycit031-ebelp.
READ TABLE it_ekpo WITH KEY ebeln = itab_zycit031-ebeln
ebelp = itab_zycit031-ebelp.
CLEAR itab_serie.
l_goodsmvt_item-material = itab_zycit031-matnr.
l_goodsmvt_item-plant = itab_zycit003-werks.
l_goodsmvt_item-stge_loc = itab_zycit031-lgort.
l_goodsmvt_item-batch = itab_zycit031-charg.
l_goodsmvt_item-stck_type = it_ekpo-insmk.
l_goodsmvt_item-po_number = itab_zycit031-ebeln.
l_goodsmvt_item-po_item = itab_zycit031-ebelp.
l_goodsmvt_item-move_type = itab_zycie033-bwartwe.
l_goodsmvt_item-vendrbatch = itab_zycit031-lichn.
l_goodsmvt_item-expirydate = itab_zycit031-vfdat.
l_goodsmvt_item-prod_date = itab_zycit031-hsdat.
l_goodsmvt_item-item_text = itab_zycie033-sgtxt.
l_goodsmvt_item-entry_qnt = itab_zycit031-menge.
l_goodsmvt_item-no_more_gr = space.
l_goodsmvt_item-mvt_ind = 'B'.
l_goodsmvt_item-serialno_auto_numberassignment =
itab_zycit031-sernp .
APPEND l_goodsmvt_item TO lt_goodsmvt_item.
ENDLOOP.
l_goodsmvt_code-gm_code = '01'.
CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
EXPORTING
goodsmvt_header = l_goodsmvt_header
goodsmvt_code = l_goodsmvt_code
IMPORTING
goodsmvt_headret = l_bapi2017_head_ret
TABLES
goodsmvt_item = lt_goodsmvt_item
goodsmvt_serialnumber = t_serie
return = lt_messages2.
REFRESH itab_zycit032.
IF lt_messages2[] IS INITIAL.
itab_zycit032-tcode = 'MIGO'.
itab_zycit032-tabela = '/PWS/ZYCIT006'.
itab_zycit032-cpochv = /pws/zycie006-nrseq.
itab_zycit032-tpmsg = 'S'.
itab_zycit032-belnr = l_bapi2017_head_ret-mat_doc.
APPEND itab_zycit032.
SET PARAMETER ID 'MBN' FIELD l_bapi2017_head_ret-mat_doc.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ELSE.
LOOP AT lt_messages2 INTO l_messages2.
itab_zycit032-tcode = 'MIGO'.
itab_zycit032-tabela = '/PWS/ZYCIT006'.
itab_zycit032-cpochv = /pws/zycie006-nrseq.
itab_zycit032-tpmsg = l_messages2-type.
itab_zycit032-msg = l_messages2-message.
itab_zycit032-msgv1 = l_messages2-message_v1.
itab_zycit032-msgv2 = l_messages2-message_v2.
itab_zycit032-msgv3 = l_messages2-message_v3.
itab_zycit032-msgv4 = l_messages2-message_v4.
itab_zycit032-belnr = l_bapi2017_head_ret-mat_doc.
APPEND itab_zycit032.
ENDLOOP.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ENDIF.
ENDFORM.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI017F03
...
* >> Início da inclusão:
FORM bapi_migo.
DATA: l_goodsmvt_header TYPE bapi2017_gm_head_01,
l_goodsmvt_code TYPE bapi2017_gm_code,
l_bapi2017_head_ret TYPE bapi2017_gm_head_ret,
lt_goodsmvt_item TYPE TABLE OF bapi2017_gm_item_create,
l_goodsmvt_item TYPE bapi2017_gm_item_create,
l_messages2 TYPE bapiret2,
lt_messages2 TYPE TABLE OF bapiret2.
DATA: t_serie TYPE TABLE OF bapi2017_gm_serialnumber,
l_serie TYPE bapi2017_gm_serialnumber.
DATA: BEGIN OF it_ekpo OCCURS 0,
ebeln TYPE ekpo-ebeln,
ebelp TYPE ekpo-ebelp,
insmk TYPE ekpo-insmk,
END OF it_ekpo.
IF NOT itab_zycit031[] IS INITIAL.
SELECT ebeln ebelp insmk FROM ekpo
INTO TABLE it_ekpo
FOR ALL ENTRIES IN itab_zycit031
WHERE ebeln EQ itab_zycit031-ebeln
AND ebelp EQ itab_zycit031-ebelp.
ENDIF.
CLEAR l_goodsmvt_header.
l_goodsmvt_header-pstng_date = sy-datlo.
l_goodsmvt_header-doc_date = itab_zycie033-bldat.
l_goodsmvt_header-pr_uname = sy-uname.
l_goodsmvt_header-header_txt = itab_zycie033-bktxt.
l_goodsmvt_header-ref_doc_no = itab_zycie033-lfsnr.
l_goodsmvt_header-ver_gr_gi_slip = 1.
l_goodsmvt_header-ver_gr_gi_slipx = 'X'.
IF NOT itab_zycie033-xabln IS INITIAL.
l_goodsmvt_header-gr_gi_slip_no = itab_zycie033-xabln.
ENDIF.
l_goodsmvt_header-bill_of_lading = itab_zycie033-xblnr.
l_goodsmvt_item-spec_stock = ' '.
CLEAR: v_indice, l_goodsmvt_item.
LOOP AT itab_zycit031.
READ TABLE itab_itens_nf WITH KEY ebeln = itab_zycit031-ebeln
ebelp = itab_zycit031-ebelp.
READ TABLE it_ekpo WITH KEY ebeln = itab_zycit031-ebeln
ebelp = itab_zycit031-ebelp.
CLEAR itab_serie.
l_goodsmvt_item-material = itab_zycit031-matnr.
l_goodsmvt_item-plant = itab_itens_nf-werks.
l_goodsmvt_item-stge_loc = itab_zycit031-lgort.
l_goodsmvt_item-batch = itab_zycit031-charg.
l_goodsmvt_item-stck_type = it_ekpo-insmk.
l_goodsmvt_item-po_number = itab_zycit031-ebeln.
l_goodsmvt_item-po_item = itab_zycit031-ebelp.
l_goodsmvt_item-move_type = itab_zycie033-bwartwe.
l_goodsmvt_item-vendrbatch = itab_zycit031-lichn.
l_goodsmvt_item-expirydate = itab_zycit031-vfdat.
l_goodsmvt_item-prod_date = itab_zycit031-hsdat.
l_goodsmvt_item-item_text = itab_zycie033-sgtxt.
l_goodsmvt_item-entry_qnt = itab_zycit031-menge.
l_goodsmvt_item-no_more_gr = space.
l_goodsmvt_item-mvt_ind = 'B'.
l_goodsmvt_item-serialno_auto_numberassignment =
itab_zycit031-sernp .
APPEND l_goodsmvt_item TO lt_goodsmvt_item.
ADD 1 TO l_serie-matdoc_itm.
LOOP AT itab_zycit505 WHERE ebeln EQ itab_zycit031-ebeln
AND ebelp EQ itab_zycit031-ebelp.
l_serie-serialno = itab_zycit505-serie.
APPEND l_serie TO t_serie.
ENDLOOP.
ENDLOOP.
l_goodsmvt_code-gm_code = '01'.
CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
EXPORTING
goodsmvt_header = l_goodsmvt_header
goodsmvt_code = l_goodsmvt_code
IMPORTING
goodsmvt_headret = l_bapi2017_head_ret
TABLES
goodsmvt_item = lt_goodsmvt_item
goodsmvt_serialnumber = t_serie
return = lt_messages2.
REFRESH itab_zycit032.
IF lt_messages2[] IS INITIAL.
itab_zycit032-tcode = 'MIGO'.
itab_zycit032-tabela = 'WA_NF'.
itab_zycit032-cpochv = v_chave.
itab_zycit032-tpmsg = 'S'.
itab_zycit032-belnr = l_bapi2017_head_ret-mat_doc.
APPEND itab_zycit032.
SET PARAMETER ID 'MBN' FIELD l_bapi2017_head_ret-mat_doc.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ELSE.
LOOP AT lt_messages2 INTO l_messages2.
itab_zycit032-tcode = 'MIGO'.
itab_zycit032-tabela = 'WA_NF'.
itab_zycit032-cpochv = v_chave.
itab_zycit032-tpmsg = l_messages2-type.
itab_zycit032-msg = l_messages2-message.
itab_zycit032-msgv1 = l_messages2-message_v1.
itab_zycit032-msgv2 = l_messages2-message_v2.
itab_zycit032-msgv3 = l_messages2-message_v3.
itab_zycit032-msgv4 = l_messages2-message_v4.
itab_zycit032-belnr = l_bapi2017_head_ret-mat_doc.
APPEND itab_zycit032.
ENDLOOP.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ENDIF.
ENDFORM.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI017F01
...
v_modo_bi
CHANGING wa_nf_aux
e_subrc
IF FOUND .
IF e_subrc EQ '8'.
EXIT.
ENDIF.
ENDIF.
ENDIF.
IF e_subrc = 0.
* >> Início da inclusão: FORM FILL_DATE_MB01
IF /pws/zycit000-migo_bapi NE 'X'.
* << Fim da inclusão
CALL FUNCTION '/PWS/ZYCI_TRANSACAO_MIGO'
EXPORTING
v_modo = v_modo_bi
inbound = v_inbound
TABLES
t_dados = itab_zycie033
t_campo = itab_zycit034
t_zycit032 = itab_zycit032
t_zycit031 = itab_zycit031
t_zycit505 = itab_zycit505
EXCEPTIONS
campo_em_branco = 1
OTHERS = 3.
* >> Início da inclusão: FORM FILL_DATE_MB01
ELSE.
PERFORM bapi_migo.
ENDIF.
* << Fim da inclusão
ENDIF.
IF sy-subrc = 0 OR e_subrc = 4.
PERFORM atualiza_dados_migo.
ELSE.
LOOP AT itab_zycit034.
CALL FUNCTION 'MESSAGE_STORE'
EXPORTING
arbgb = '/PWS/ZYCIM'
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003F02
...
READ TABLE itab_zyglt100 WITH KEY
zexit = 'FAT009' BINARY SEARCH.
IF sy-subrc EQ 0.
IF NOT itab_zyglt100-zexit_ativa IS INITIAL.
e_estorno = 'MB01' .
PERFORM (itab_zyglt100-formulario) IN PROGRAM
(itab_zyglt100-programa) IF FOUND.
ENDIF.
ENDIF.
IF e_subrc EQ 0.
* >> Início da inclusão: FORM FILL_DATE_MB01
IF /pws/zycit000-migo_bapi NE 'X'.
* << Fim da inclusão
CALL FUNCTION '/PWS/ZYCI_TRANSACAO_MIGO'
EXPORTING
v_modo = v_modo_bi
TABLES
t_dados = itab_zycie033
t_campo = itab_zycit034
t_zycit032 = itab_zycit032
t_zycit031 = itab_zycit031
EXCEPTIONS
campo_em_branco = 1
OTHERS = 3.
* >> Início da inclusão: FORM FILL_DATE_MB01
ELSE.
PERFORM bapi_migo.
ENDIF.
* << Fim da inclusão
IF sy-subrc = 0.
READ TABLE itab_zycit032 WITH KEY tcode = 'MIGO'
tabela = '/PWS/ZYCIT006'
cpochv = /pws/zycie006-nrseq
tpmsg = 'S'.
IF sy-subrc EQ 0.
GET PARAMETER ID 'MBN' FIELD xmkpf-mblnr.
itab_zycit032-belnr = xmkpf-mblnr.
MESSAGE i010 WITH text-007 itab_zycit032-belnr.
/pws/zycie006-statusp_mb01 = 'C'.
...