quarta-feira, 29 de janeiro de 2020

IDOC - WPUBON - Implementação geraçao de doc de faturamento

Código para geração de doc. de faturamento utilizando o IDOC WPUBON.

Obs: mantive a rotina incompleta, apenas o caminho das pedras...


     CLEAR ls_e1wpb01.
      ls_e1wpb01-poskreis    = <perfil determninado no customizing>.
      ls_e1wpb01-kassid      = <CÓDIGO DO CAIXA>.
      ls_e1wpb01-vorgdatum   sy-datum.
      ls_e1wpb01-vorgzeit    sy-uzeit.
      ls_e1wpb01-kundnr      = <CLIENTE>.
      ls_e1wpb01-belegwaers  'BRL'.

      APPEND INITIAL LINE TO lt_idoc_data ASSIGNING FIELD-SYMBOL(<ls_idoc_data>).
      <ls_idoc_data>-sdata  ls_e1wpb01.
      <ls_idoc_data>-mandt  sy-mandt.
      <ls_idoc_data>-segnam 'E1WPB01'.

      LOOP AT lt_zsdt_0082 ASSIGNING FIELD-SYMBOL(<ls_item>).

        CLEAR ls_e1wpb02.
        ls_e1wpb02-vorgangart <TIPO DO FATURAMENTO>.
        ls_e1wpb02-qualartnr  'ARTN'.
        ls_e1wpb02-artnr      = <MATERIAL>.
        ls_e1wpb02-seriennr   ''.
        ls_e1wpb02-vorzeichen '-'.
        ls_e1wpb02-menge      = <QUANTIDADE>.
        ls_e1wpb02-artnr_long = <MATERIAL>.

        APPEND INITIAL LINE TO lt_idoc_data ASSIGNING <ls_idoc_data>.
        <ls_idoc_data>-sdata  ls_e1wpb02.
        <ls_idoc_data>-mandt  sy-mandt.
        <ls_idoc_data>-segnam 'E1WPB02'.

        CLEAR ls_e1wpb03.
        ls_e1wpb03-vorzeichen '+'.
        ls_e1wpb03-kondition  <CONDIÇÃO DE PREÇO(customizing)>.
        ls_e1wpb03-kondvalue  = <VALOR TO ITEM>.

        APPEND INITIAL LINE TO lt_idoc_data ASSIGNING <ls_idoc_data>.
        <ls_idoc_data>-sdata  ls_e1wpb03.
        <ls_idoc_data>-mandt  sy-mandt.
        <ls_idoc_data>-segnam 'E1WPB03'.

        "Campos adicionais do cabeçalho
        "Verificar implementação função exit EXIT_SAPLWPUE_106
        APPEND INITIAL LINE TO lt_idoc_data ASSIGNING <ls_idoc_data>.
        ls_e1wxx01-fldgrp  'HEAD'.
        ls_e1wxx01-fldname 'ZTERM'.
        ls_e1wxx01-fldval  = <CONDICAO DE PAGAMENTO>.
        <ls_idoc_data>-sdata  ls_e1wxx01.
        <ls_idoc_data>-mandt  sy-mandt.
        <ls_idoc_data>-segnam 'E1WXX01'.

        "Campo STAFO - elimina verificação estatistica ao gerar faturamento
        "Se estiver preenchido um  DUMP acontece
        APPEND INITIAL LINE TO lt_idoc_data ASSIGNING <ls_idoc_data>.
        ls_e1wxx01-fldgrp  'HEAD'.
        ls_e1wxx01-fldname 'STAFO'.
        ls_e1wxx01-fldval  ''.
        <ls_idoc_data>-sdata  ls_e1wxx01.
        <ls_idoc_data>-mandt  sy-mandt.
        <ls_idoc_data>-segnam 'E1WXX01'.

        APPEND INITIAL LINE TO lt_idoc_data ASSIGNING <ls_idoc_data>.
        ls_e1wxx01-fldgrp  'HEAD'.
        ls_e1wxx01-fldname 'KUNWE'.
        ls_e1wxx01-fldval  = <RECEBEDOR DA MERCADORIA>.
        <ls_idoc_data>-sdata  ls_e1wxx01.
        <ls_idoc_data>-mandt  sy-mandt.
        <ls_idoc_data>-segnam 'E1WXX01'.

        "Forma de pagamento
        APPEND INITIAL LINE TO lt_idoc_data ASSIGNING <ls_idoc_data>.
        ls_e1wxx01-fldgrp  'HEAD'.
        ls_e1wxx01-fldname 'ZLSCH'.

        CASE ls_zsdt_0081-tppag.
          WHEN gc_pag_vista.
            ls_e1wxx01-fldval  'E'.
          WHEN gc_pag_prazo.
            ls_e1wxx01-fldval  'A'.
          WHEN gc_pag_ccc.
            ls_e1wxx01-fldval  'L'.
          WHEN gc_pag_folha.
            ls_e1wxx01-fldval  'I'.
        ENDCASE.

        <ls_idoc_data>-sdata  ls_e1wxx01.
        <ls_idoc_data>-mandt  sy-mandt.
        <ls_idoc_data>-segnam 'E1WXX01'.

        APPEND INITIAL LINE TO lt_idoc_data ASSIGNING <ls_idoc_data>.
        ls_e1wxx01-fldgrp  'MSEG'.
        ls_e1wxx01-fldname 'CHARG'.
        ls_e1wxx01-fldval  <ls_item>-charg.
        <ls_idoc_data>-sdata  ls_e1wxx01.
        <ls_idoc_data>-mandt  sy-mandt.
        <ls_idoc_data>-segnam 'E1WXX01'.


      ENDLOOP.

      APPEND INITIAL LINE TO lt_idoc_data ASSIGNING <ls_idoc_data>.
      ls_e1wpb06-vorzeichen '-'.
      ls_e1wpb06-zahlart '----'.
      <ls_idoc_data>-sdata  ls_e1wpb06.
      <ls_idoc_data>-mandt  sy-mandt.
      <ls_idoc_data>-segnam 'E1WPB06'.



      CALL FUNCTION 'IDOC_WRITE_AND_START_INBOUND'
        EXPORTING
          i_edidc        ls_idoc_control
          do_commit      ''
        IMPORTING
          docnum         ls_idoc_control-docnum
        TABLES
          i_edidd        lt_idoc_data
        EXCEPTIONS
          idoc_not_saved 1
          OTHERS         2.



=====================

Customizing 

Perfil:

Config. dados pagamento


TEM MAIS CONFIG, MAS TÁ DANDO MUITO TRABALHO



Nenhum comentário:

Postar um comentário