Текущее время: Ср, май 07 2025, 19:13

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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