Текущее время: Чт, май 08 2025, 15:07

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Из SAP в ХМL?
СообщениеДобавлено: Пт, ноя 18 2005, 14:40 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, окт 06 2005, 09:02
Сообщения: 64
Пол: Мужской
Есть запрос, нужно результат запроса выгрузить в xml
как можно реализовать?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, ноя 18 2005, 15:49 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, июн 22 2005, 09:51
Сообщения: 208
Пол: Мужской
Например, посмотреть на класс CL_XML_DOCUMENT. :D

_________________
С уважением, В.Ш.
4.6C


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, ноя 18 2005, 15:54 
Специалист
Специалист

Зарегистрирован:
Вс, мар 13 2005, 13:59
Сообщения: 201
Откуда: Moscau
Code:
FUNCTION zbc_xml_file.
*"----------------------------------------------------------------------
*"*"Локальный интерфейс:
*"  IMPORTING
*"     REFERENCE(PATH) TYPE  LOCALFILE DEFAULT ''
*"     REFERENCE(XSLT) TYPE  STRING DEFAULT ''
*"  TABLES
*"      IT_DATA TYPE  TABLE
*"----------------------------------------------------------------------

*---------------------------------------------------------------------*
* .DATA
*---------------------------------------------------------------------*
  DATA: strm     TYPE REF TO if_ixml_ostream,
        size     TYPE i VALUE 0.
  DATA: s        TYPE string.
  DATA: parser   TYPE string.
  DATA: xmltab   TYPE table_t.

*---------------------------------------------------------------------*
* .CODE
*---------------------------------------------------------------------*
  IF path IS INITIAL.
    PERFORM get_path USING path CHANGING s.
    CHECK sy-subrc IS INITIAL.
  ELSE.
    s = path.
  ENDIF.
*
  g_ixml = cl_ixml=>create( ).
  g_stream_factory = g_ixml->create_stream_factory( ).
  g_encoding = g_ixml->create_encoding( character_set = encoding
                                        byte_order    = 0 ).
  TRY.
      REFRESH xmltab.
      strm = g_stream_factory->create_ostream_itable( table = xmltab ).
      strm->set_encoding( encoding = g_encoding ).
      IF NOT it_data[] IS INITIAL.
*       ABAP to XML
        IF xslt IS INITIAL.
          parser = 'ID_INDENT'.
        ELSE.
          parser = xslt.
        ENDIF.
        CALL TRANSFORMATION (parser)
          SOURCE it_data = it_data[]
          RESULT XML strm.
        size = strm->get_num_written_raw( ).
        PERFORM store_file USING s size xmltab.
      ELSE.
*       XML to ABAP
        PERFORM load_file USING s CHANGING xmltab.
        size = strm->get_num_written_raw( ).
        IF xslt IS INITIAL.
          parser = 'ZBC_XML_FILE'.
        ELSE.
          parser = xslt.
        ENDIF.
        CALL TRANSFORMATION (parser)
          SOURCE XML xmltab
          RESULT it_data = it_data[].
      ENDIF.
    CATCH cx_xslt_exception INTO xslt_err.
      s = xslt_err->get_text( ).
      MESSAGE e000 WITH s.
  ENDTRY.
ENDFUNCTION.

ФМ для выгрузки/загрузки произвольной внутренней таблицы.
Если не передавать параметр XSLT - используется стандартное преобразование ID_INDENT.
А вот пример xslt, для преобразования к нужному формату.
Code:
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"
>
  <xsl:strip-space elements="*"/>
  <xsl:output encoding="utf-8" indent="no"/>

  <!--comment-->
  <xsl:template match="IT_DATA" name="material">
  <asx:abap version="1.0" xmlns:asx="http://www.sap.com/abapxml">
  <asx:values>
    <materials>
      <xsl:for-each select="ZSD_MATNR_XML_IMPORT">
        <xsl:variable name="matnr" select="."/>
        <material>
          <MATNR>
            <xsl:value-of select="$matnr/MATNR"/>
          </MATNR>
          <MAKTX>
            <xsl:value-of select="$matnr/MAKTX"/>
          </MAKTX>
          <MENGE>
            <xsl:value-of select="$matnr/MENGE"/>
          </MENGE>
          <MEINS>
            <xsl:value-of select="$matnr/MEINS"/>
          </MEINS>
        </material>
      </xsl:for-each>
    </materials>
  </asx:values>
  </asx:abap>
  </xsl:template>
</xsl:transform>


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Из SAP в ХМL?
СообщениеДобавлено: Пт, окт 23 2015, 14:56 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, окт 23 2015, 14:48
Сообщения: 93
Добрый день/вечер! Народ,очень прошу помощи у вас. Есть вопрос по трансформациям(преобразованиям).
Делаю трансформацию из абапа в XML-все отлично. Т.е. Простое преобразование:

CALL TRANSFORMATION ZPI_TR_ARCHIVE_TO_XML
SOURCE object = object
RESULT XML result.

Мне возвращается строка с тегами. Но вот беда..если я передаю object пустым,А у меня большая вложенность XML документа в частности таблицы и если они не инициализируются
-то в строке возврата их нет,а мне нужна вся структура-полная<вместе с куче пустых таблиц..


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB