CE PLUS - Nota 012842

Módulo: CÂMBIO FINANCEIRO

Funcionalidade: SISCOSERV

Data/Hora da Publicação: 08/03/2013 00:00:00

Data/Hora Última Alteração: 08/04/2013 16:20:30

Descrição da Nota: SISCOSERV

Sintoma

Adequação da Geração de XML para versões Unicode e não-Unicode do SAP

 

 

Solução

Adequação da Geração de XML para versões Unicode e não-Unicode do SAP

 

Versões Tratadas

9.0


Pré-Requisitos

Produto:

Nota

Descrição

VALOR DA MERCADORIA INCORRETO NO DETALHE DO ITEM (ANA)

SISCOSERV

SISCOSERV

Informações Complementares

----------------------------------------------------------------------------------------------------

Nota Número 12842 Data: 08/03/2013 Hora: 16:27:36

----------------------------------------------------------------------------------------------------

 

----------------------------------------------------------------------------------------------------

Nota Número              : 12842

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 9.0

Pacote                   : 00003

Agrupamento              : 00149

----------------------------------------------------------------------------------------------------

Referência às notas relacionadas:

Número - Ordem - Versão - Pacote - Descrição Breve

 

12480  - 00001 - 9.0    - 00001  - SISCOSERV

12684  - 00002 - 9.0    - 00002  - VALOR DA MERCADORIA INCORRETO NO DETALHE DO ITEM (ANA)

12811  - 00003 - 9.0    - 00003  - SISCOSERV

----------------------------------------------------------------------------------------------------

SISCOSERV

----------------------------------------------------------------------------------------------------

Palavras Chave:

SISCOSERV - GERAÇÃO DE XML

 

----------------------------------------------------------------------------------------------------

Objetos da nota:

DOMA /PWS/ZYGLD983

DTEL /PWS/ZYGLL1546

TABD /PWS/ZYCAE003

FUNC /PWS/ZYCA_FILA_SISCOSERV

FUNC /PWS/ZYCA_GERA_XML_SISCOSERV

REPS /PWS/LZYCAGFO01

REPS /PWS/LZYCAGFTOP

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em DOMA /PWS/ZYGLD983

 

------------------------------------------------------------------------

Domínio incluído: /PWS/ZYGLD983

Descrição breve incluída (21 caracteres), idioma: PT

"Linha XML - Siscoserv"

Classe de desenvolvimento: /PWS/ZYGL

Idioma original: PT

Categoria de dados: RAW

Número de posições: 256

Comprimento de saída: 512

Rotina de conversão:

Incluída tabela de valores:

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em DTEL /PWS/ZYGLL1546

 

------------------------------------------------------------------------

Elemento de dados incluído: /PWS/ZYGLL1546

Classe de desenvolvimento: /PWS/ZYGL

Idioma original: PT

Descrição breve incluída: (21 caracteres), idioma: PT

"Linha XML - Siscoserv"

Categoria de dados: Domínio

Domínio: /PWS/ZYGLD983

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 (3 caracteres), idioma: PT

"XML"

Comprimento máximo do denominador médio: 15

Denominador médio incluído (9 caracteres), idioma: PT

"Linha XML"

Comprimento máximo do denominador longo: 20

Denominador longo incluído (9 caracteres), idioma: PT

"Linha XML"

Comprimento máximo do título: 09

Título incluído (9 caracteres), idioma: PT

"Linha XML"

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em TABD /PWS/ZYCAE003

Alterar o TipoComponente do campo XML para /PWS/ZYGLL1546

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em FUNC /PWS/ZYCA_FILA_SISCOSERV

 

FUNCTION /pws/zyca_fila_siscoserv.

  DATA: itab_zycat030 TYPE TABLE OF /pws/zycat030,

        itab_zycat031 TYPE TABLE OF /pws/zycat031,

        itab_zycat034 TYPE TABLE OF /pws/zycat034,

        itab_zycat036 TYPE TABLE OF /pws/zycat036,

        itab_zycat037 TYPE TABLE OF /pws/zycat037,

        itab_zycat038 TYPE TABLE OF /pws/zycat038,

* >> Início da exclusão: FUNCTION /PWS/ZYCA_FILA_SISCOSERV

        it_xml        TYPE STANDARD TABLE OF char256.

* << Fim da exclusão

* >> Início da inclusão: FUNCTION /PWS/ZYCA_FILA_SISCOSERV

        it_xml        TYPE STANDARD TABLE OF /pws/zygll1546.

* << Fim da inclusão

  DATA: wa_zycat030 TYPE /pws/zycat030,

        wa_zycat031 TYPE /pws/zycat031,

        wa_zycat034 TYPE /pws/zycat034,

        wa_zycat036 TYPE /pws/zycat036,

        wa_zycat037 TYPE /pws/zycat037,

        wa_zycat038 TYPE /pws/zycat038,

        wa_zycat039 TYPE /pws/zycat039,

        wa_zycae002 TYPE /pws/zycae002,

        wa_zycae003 TYPE /pws/zycae003,

* >> Início da exclusão: FUNCTION /PWS/ZYCA_FILA_SISCOSERV

        wa_xml      TYPE char256.

* << Fim da exclusão

* >> Início da inclusão: FUNCTION /PWS/ZYCA_FILA_SISCOSERV

        wa_xml      TYPE /pws/zygll1546.

* << Fim da inclusão

  DATA: v_cgc_number TYPE j_1bwfield-cgc_number,

        v_indice     TYPE /pws/zycat038-indice_xml,

        v_tabix      TYPE sy-tabix,

        v_funcionalidade TYPE /pws/zyglt390-programa,

        v_identificador  TYPE /pws/zyglt390-identificador.

  SELECT * FROM /pws/zycat038

    INTO TABLE itab_zycat038

    WHERE ( prot_transm =  '            ' AND

            status      =  '  ' )         OR

          ( prot_transm NE '            ' AND

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em FUNC /PWS/ZYCA_GERA_XML_SISCOSERV

 

...

    document       TYPE REF TO if_ixml_document,

    encoding       TYPE REF TO if_ixml_encoding,

    stream_factory TYPE REF TO if_ixml_stream_factory,

    stream         TYPE REF TO if_ixml_ostream,

    renderer       TYPE REF TO if_ixml_renderer.

  DATA:

    element_principal    TYPE REF TO if_ixml_element,

    element_operacao     TYPE REF TO if_ixml_element,

    element_enquad       TYPE REF TO if_ixml_element,

    element_re_di        TYPE REF TO if_ixml_element.

* >> Início da exclusão: FUNCTION /PWS/ZYCA_GERA_XML_SISCOSERV

  DATA: wa_xml TYPE char256,

* << Fim da exclusão

* >> Início da inclusão: FUNCTION /PWS/ZYCA_GERA_XML_SISCOSERV

  DATA: wa_xml TYPE /pws/zygll1546,

* << Fim da inclusão

        v_split    TYPE string,

        v_split1   TYPE string,

        v_split2   TYPE string,

        v_lines    TYPE i,

        v_len_spl  type i,

        v_len_xml  type i,

* >> Início da exclusão: FUNCTION /PWS/ZYCA_GERA_XML_SISCOSERV

        it_xml_aux TYPE STANDARD TABLE OF char256.

* << Fim da exclusão

* >> Início da inclusão: FUNCTION /PWS/ZYCA_GERA_XML_SISCOSERV

        it_xml_aux TYPE STANDARD TABLE OF /pws/zygll1546.

* << Fim da inclusão

  CLEAR ixml.

  REFRESH: it_xml, it_xml_aux.

  IF i_processo NE 'ERVS' and

     i_processo NE 'ERAS' and

     i_processo NE 'EARVS' and

     i_processo NE 'EARAS'.

    CALL METHOD cl_ixml=>create

        RECEIVING

           rval = ixml.

    CALL METHOD ixml->create_document

...

 

...

            rval  = stream.

    CALL METHOD ixml->create_renderer

         EXPORTING

            document = document

            ostream  = stream

         RECEIVING

            rval     = renderer.

    CALL METHOD renderer->render

         RECEIVING

            rval   = ret_code.

* >> Início da exclusão: FUNCTION /PWS/ZYCA_GERA_XML_SISCOSERV

    PERFORM converte_it_xml.

    DESCRIBE TABLE it_xml LINES v_lines.

    it_xml_aux[] = it_xml[].

    REFRESH it_xml.

    LOOP AT it_xml_aux INTO wa_xml.

      IF sy-tabix < v_lines.

        APPEND wa_xml TO it_xml.

      ELSE.

        v_len_spl = strlen( v_split ).

        v_len_xml = strlen( wa_xml ).

        if v_len_xml < v_len_spl.

          v_len_spl = v_len_spl - v_len_xml.

          v_split = v_split+v_len_spl(v_len_xml).

        endif.

        SPLIT wa_xml AT v_split INTO v_split1 v_split2.

        CLEAR wa_xml.

        CONCATENATE v_split1 v_split INTO wa_xml.

        CONDENSE wa_xml.

        APPEND wa_xml TO it_xml.

      ENDIF.

    ENDLOOP.

* << Fim da exclusão

    IF NOT it_xml[] IS INITIAL.

      PERFORM grava_xml TABLES i_zycat031

                        USING  i_zycat030

                               i_zycat039

                               i_processo.

    ELSE.

      RAISE xml_error.

    ENDIF.

    IF NOT i_path IS INITIAL.

      CONCATENATE i_path i_processo INTO v_path.

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/LZYCAGFO01

 

...

  SET PF-STATUS '0002'.

  SET TITLEBAR '0002'.

ENDMODULE.

MODULE cria_html OUTPUT.

  DATA: html_viewer    TYPE REF TO cl_gui_html_viewer,

        my_container   TYPE REF TO cl_gui_custom_container,

        evt_receiver   TYPE REF TO cl_myevent_handler,

        myevent_tab    TYPE cntl_simple_events,

        myevent        TYPE cntl_simple_event,

        v_url(80)      TYPE c.

* >> Início da inclusão: MODULE CRIA_HTML

  data: it_xml_aux type table of char256,

        wa_xml     type /pws/zygll1546,

        v_null(4)  type x,

        v_lines    type i,

        v_split1(256) type c,

        v_split2(256) type c.

  field-symbols: <fs_xml>  type c,

                 <fs_null> type c.

* << Fim da inclusão

  IF my_container IS INITIAL.

    CREATE OBJECT my_container

        EXPORTING

            container_name = 'CC_HTML'

        EXCEPTIONS

            others = 1.

    CASE sy-subrc.

      WHEN 0.

      WHEN OTHERS.

        RAISE cntl_error.

...

 

...

    ENDIF.

    myevent-eventid = html_viewer->m_id_navigate_complete.

    myevent-appl_event = 'X'.

    APPEND myevent TO myevent_tab.

    CALL METHOD html_viewer->set_registered_events

        EXPORTING

           events = myevent_tab.

    CREATE OBJECT evt_receiver.

    SET HANDLER evt_receiver->on_navigate_complete

                FOR html_viewer.

* >> Início da inclusão: MODULE CRIA_HTML

    if sy-saprl(2) eq '46'.                               "#EC PORTABLE

      refresh it_xml_aux.

      describe table it_xml lines v_lines.

      assign v_null to <fs_null> casting.

      loop at it_xml into wa_xml.

        if sy-tabix < v_lines.

          assign wa_xml to <fs_xml> casting.

          append <fs_xml> to it_xml_aux.

        else.

          split <fs_xml> at <fs_null>(1) into v_split1 v_split2.

          append v_split1 to it_xml_aux.

        endif.

      endloop.

      call method html_viewer->load_data

          exporting

            type    = 'HTML'

            subtype = 'XML'

          importing

            assigned_url = v_url

          changing

            data_table = it_xml_aux

          exceptions

            dp_invalid_parameter = 1

            dp_error_general = 2.

      call method html_viewer->show_url

        exporting

          url = v_url

      exceptions

        cntl_error = 1.

    else.

* << Fim da inclusão

    CALL METHOD html_viewer->load_data

        EXPORTING

          type    = 'HTML'

          subtype = 'XML'

        IMPORTING

          assigned_url = v_url

        CHANGING

          data_table = it_xml

        EXCEPTIONS

          dp_invalid_parameter = 1

          dp_error_general = 2.

* >> Início da inclusão: MODULE CRIA_HTML

    endif.

* << Fim da inclusão

    CALL METHOD html_viewer->show_url

      EXPORTING

        url = v_url

    EXCEPTIONS

      cntl_error = 1.

  ENDIF.

ENDMODULE.

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/LZYCAGFTOP

 

...

  hora           type /pws/zycat038-hora,

  prot_transm    type /pws/zycat038-prot_transm,

  status         type /pws/zycat038-status,

  status_t(25)   type c,

  cod_erro       type /pws/zycat038-cod_erro,

  cod_erro_t     type /pws/zycat040-mensagem,

  indice_xml     type /pws/zycat038-indice_xml,

end of ty_zycat038_alv.

data:

  attrib_value     type string,

* >> Início da exclusão:

  it_xml           type standard table of char256,

* << Fim da exclusão

* >> Início da inclusão:

  it_xml           type standard table of /pws/zygll1546,

* << Fim da inclusão

  ret_code         type i,

  size_it_xml      type i,

  wa_zycat030      type /pws/zycat030,

  v_exibe          type c,

  v_okcode         type sy-ucomm,

  it_zycat038_alv  type table of ty_zycat038_alv.

data: itab_zycat031_alt type table of /pws/zycat031,

      wa_zycat031       type /pws/zycat031,

      wa_toolbar        type stb_button.

class lcl_event_handler_log definition.

...