Текущее время: Пн, июл 28 2025, 21:12

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: XML-отчет, выгрузка структуры изделия
СообщениеДобавлено: Пн, июн 07 2010, 11:50 
Начинающий
Начинающий

Зарегистрирован:
Пн, июн 07 2010, 11:10
Сообщения: 8
Цитата:
*&---------------------------------------------------------------------
*& Report ZOSPEKA *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*

REPORT ZOSPEKA .

TYPE-POOLS: ixml.

TYPES: BEGIN OF xml_line,
data(256) TYPE x,
END OF xml_line.

DATA: l_ixml TYPE REF TO if_ixml,
l_streamfactory TYPE REF TO if_ixml_stream_factory,
l_ostream TYPE REF TO if_ixml_ostream,
l_renderer TYPE REF TO if_ixml_renderer,
l_document TYPE REF TO if_ixml_document.

DATA: l_element_SprutTP TYPE REF TO if_ixml_element,
l_element_TTPObjectList TYPE REF TO if_ixml_element,
l_element_TTPObject TYPE REF TO if_ixml_element,
l_element_TTPObjectAttrList TYPE REF TO if_ixml_element,
l_element_TTPObjectDocList TYPE REF TO if_ixml_element,
l_element_ChildList TYPE REF TO if_ixml_element,
l_element_TTPObjectLink TYPE REF TO if_ixml_element,
l_element_TTPObjectLinkAttrLit TYPE REF TO if_ixml_element,
l_element_TTPObjectLinkAttr TYPE REF TO if_ixml_element,
l_element_TTPObjectAttr TYPE REF TO if_ixml_element,
l_element_TTPObjectDocument TYPE REF TO if_ixml_element,
l_value TYPE string.

DATA: l_xml_table TYPE TABLE OF xml_line,
l_xml_size TYPE i,
l_rc TYPE i.

DATA: lt_stpo TYPE TABLE OF stpo.
DATA: l_stpo TYPE stpo.


START-OF-SELECTION.
* Fill the internal table
SELECT * FROM stpo INTO TABLE lt_stpo
where stlnr like '00002856'.
* Sort internal table
SORT lt_stpo BY idnrk.

* Start filling xml dom object from internal table
LOOP AT lt_stpo INTO l_stpo.

AT FIRST.

* Creating a ixml factory
l_ixml = cl_ixml=>create( ).
* Creating the dom object model
l_document = l_ixml->create_document( ).
* Fill root node with value materials
l_element_SprutTP = l_document->create_simple_element(
name = 'SprutTP'
parent = l_document ).


* Create element 'TTPObjectlist' as child of 'SprutTP'
l_element_TTPObjectList = l_document->create_simple_element(
name = 'TTPObjectList'
parent = l_element_SprutTP ).
ENDAT.



* Create element 'TTPObject' as child of 'TTPObjectlist'
l_element_TTPObject = l_document->create_simple_element(
name = 'TTPObject'
parent = l_element_TTPObjectList ).


* Create element 'TTPObjectAttrList' as child of 'TTPObject'
l_element_TTPObjectAttrList =
l_document->create_simple_element(
name = 'TTPObjectAttrList'
parent = l_element_TTPObject ).



* Create element 'TTPObjectDocList' as child of 'TTPObject'


l_element_TTPObjectDocList =
l_document->create_simple_element(
name = 'TTPObjectDocList'
parent = l_element_TTPObject ).

* Create element 'ChildList' as child of 'TTPObject'

l_element_ChildList =
l_document->create_simple_element(
name = 'ChildList'
parent = l_element_TTPObject ).



* Create attribute 'kod' of node 'TTPObject'
l_value = l_stpo-idnrk.
l_rc = l_element_TTPObject->set_attribute( name = 'Kod' value =
l_value ).


* Create element 'name' as child of 'TTPObject'
l_value = 'val'.
l_element_TTPObject->set_attribute(
name = 'Name'
value = l_value ).
* Create attribute 'ShowKod' of node 'TTPObject'
l_value = '1'.
l_rc = l_element_TTPObject->set_attribute( name =
'ShowKod'
value = l_value ).

* Create attribute 'KodClass' of node 'TTPObject'
l_value = 'SBED'.
l_rc = l_element_TTPObject->set_attribute( name =
'KodClass'
value = l_value ).


* Create element 'DateCreate' as child of 'TTPObject'
l_value = ''.
l_element_TTPObject->set_attribute(
name = 'DateCreate'
value = l_value ).

* Create element 'DateModify' as child of 'TTPObject'
l_value = ''.
l_element_TTPObject->set_attribute(
name = 'DateModify'
value = l_value ).

* Create element 'KodUserCreate' as child of 'TTPObject'
l_value = 'Технолог'.
l_element_TTPObject->set_attribute(
name = 'KodUserCreate'
value = l_value ).

* Create element 'KodUserModify' as child of 'TTPObject'
l_value = 'Технолог'.
l_element_TTPObject->set_attribute(
name = 'KodUserModify'
value = l_value ).



ENDLOOP.



* Creating a stream factory
l_streamfactory = l_ixml->create_stream_factory( ).
* Connect internal XML table to stream factory
l_ostream = l_streamfactory->create_ostream_itable( table =
l_xml_table ).

* Rendering the document
l_renderer = l_ixml->create_renderer( ostream = l_ostream
document = l_document ).
l_rc = l_renderer->render( ).

* Saving the XML document
l_xml_size = l_ostream->get_num_written_raw( ).

CALL METHOD cl_gui_frontend_services=>gui_download
EXPORTING
bin_filesize = l_xml_size
filename = 'c:\temp\spec8.xml'
filetype = 'BIN'
CHANGING
data_tab = l_xml_table
EXCEPTIONS
OTHERS = 24.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.



Необходимо выгрузить структуру изделия из САПа в стороннюю программу через xml файл заданной структуры, данный отчет пока с заглушками по полю Name, необходимо выгрузить из структуры rc29p поле ktext или из таблицы makt поле maktx, где makt-matnr=stpo-idnrk, ка это можно осуществить программно? Либо сделать всю выгрузку из данной структуры.

Поле с датой и временем необходимо преобразовать к виду число.месяц.год час:минута:секунда.

И необходимо организовать вложенную структуру:
Для номера спецификации stlnr выписываются idnrk с именами из структуры rc29p или таблицы makt.
У элемента ChildList создаются элементы TTPObjectLink с атрибутами KodObj, KodClass, KodLink, IsForwardLink, LinkOrder и элементы TTPObjectLinkAttrList(превышает допустимые 30 символов) и TTPObjectLinkAttr. У элемента TTPObjectLinkAttr атрибуты Kod и ValueAttr у которых может быть несколько значений QUANTITY и POSITION у поля Kod и значения их в поле ValueAttr. Как это можно сделать, подскажите, плз, хотя бы заглушками....очень надо


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: XML-отчет, выгрузка структуры изделия
СообщениеДобавлено: Пн, июн 07 2010, 12:01 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
nonflame, на какой результат вы расчитываете, опубликовав ТЗ и невнятный кусок кода? Задавайте конкретные вопросы, пожалуйста.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: XML-отчет, выгрузка структуры изделия
СообщениеДобавлено: Пн, июн 07 2010, 12:05 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
nonflame написал(а):
...

Необходимо выгрузить структуру изделия из САПа в стороннюю программу через xml файл заданной структуры, данный отчет пока с заглушками по полю Name, необходимо выгрузить из структуры rc29p поле ktext или из таблицы makt поле maktx, где makt-matnr=stpo-idnrk, ка это можно осуществить программно? Либо сделать всю выгрузку из данной структуры.

Поле с датой и временем необходимо преобразовать к виду число.месяц.год час:минута:секунда.

И необходимо организовать вложенную структуру:
Для номера спецификации stlnr выписываются idnrk с именами из структуры rc29p или таблицы makt.
У элемента ChildList создаются элементы TTPObjectLink с атрибутами KodObj, KodClass, KodLink, IsForwardLink, LinkOrder и элементы TTPObjectLinkAttrList(превышает допустимые 30 символов) и TTPObjectLinkAttr. У элемента TTPObjectLinkAttr атрибуты Kod и ValueAttr у которых может быть несколько значений QUANTITY и POSITION у поля Kod и значения их в поле ValueAttr. Как это можно сделать, подскажите, плз, хотя бы заглушками....очень надо

По аналогии с "с заглушками по полю Name".

Вы уточните в чём именно заключается Ваша проблема, сложность, непонятность?
Вы не знаете как выбирать значения из таблиц БД??
Вам непонятно как выполнять преобразование формата даты???
Или как организовать структуру XML-документа????
Пока же видно, что Вы привели здесь часть Вашего задания и желаете чтобы Вам выдали готовое решение.

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: XML-отчет, выгрузка структуры изделия
СообщениеДобавлено: Пн, июн 07 2010, 12:20 
Начинающий
Начинающий

Зарегистрирован:
Пн, июн 07 2010, 11:10
Сообщения: 8
Извините, может не так описала задачу, данный отчет работает и загружается в стороннюю программу, только осталось "докрутить гайки", а у меня не получается, т.к. новичок в этом деле :(
Работаю с таблицей STPO которая наиболее близка к структуре rc29p, так как из самой структуры не выгрузишь, во все связанные с ней таблицы могу залезть через программу, а вот несвязанные, как например makt не выходит.
На данный момент пишу диплом, связанный с выгрузкой структуры изделия из САПа.
Сейчас данный отчет выгружается в нужной структуре xml и загружается в другую программу, но как сделать чтобы для номера спецификации выгружались все изделия из нее в childlist->TTPObjectLink
пока получается вот так
Цитата:
<?xml version="1.0"?><SprutTP>
<TTPObjectList>
<TTPObject Kod="00002856" Name="reductor" ShowKod="1" KodClass="SBED" DateCreate="" DateModify="" KodUserCreate="Технолог" KodUserModify="Технолог"><TTPObjectAttrList/><TTPObjectDocList/>
<ChildList>
<TTPObjectLink KodObj="" KodClass="DETAL" KodLink="SP_KONSTR" IsForwardLink="1" LinkOrder="1">
<TTPObjectLinkAttrLit>
<TTPObjectLinkAttr Kod="QUANTITY" ValueAttr="1"/>
</TTPObjectLinkAttrLit>
</TTPObjectLink>
</ChildList>
</TTPObject>
<TTPObject Kod="00002856" Name="reductor" ShowKod="1" KodClass="SBED" DateCreate="" DateModify="" KodUserCreate="Технолог" KodUserModify="Технолог"><TTPObjectAttrList/><TTPObjectDocList/>
<ChildList>
<TTPObjectLink KodObj="" KodClass="DETAL" KodLink="SP_KONSTR" IsForwardLink="1" LinkOrder="1">
<TTPObjectLinkAttrLit>
<TTPObjectLinkAttr Kod="QUANTITY" ValueAttr="1"/>
</TTPObjectLinkAttrLit>
</TTPObjectLink>
</ChildList>
</TTPObject>
<TTPObject Kod="00002856" Name="reductor" ShowKod="1" KodClass="SBED" DateCreate="" DateModify="" KodUserCreate="Технолог" KodUserModify="Технолог"><TTPObjectAttrList/><TTPObjectDocList/>
<ChildList>
<TTPObjectLink KodObj="" KodClass="DETAL" KodLink="SP_KONSTR" IsForwardLink="1" LinkOrder="1">
<TTPObjectLinkAttrLit>
<TTPObjectLinkAttr Kod="QUANTITY" ValueAttr="1"/>
</TTPObjectLinkAttrLit>
</TTPObjectLink>
</ChildList>
</TTPObject>
<TTPObject Kod="00002856" Name="reductor" ShowKod="1" KodClass="SBED" DateCreate="" DateModify="" KodUserCreate="Технолог" KodUserModify="Технолог"><TTPObjectAttrList/><TTPObjectDocList/>
<ChildList>
<TTPObjectLink KodObj="" KodClass="DETAL" KodLink="SP_KONSTR" IsForwardLink="1" LinkOrder="1">
<TTPObjectLinkAttrLit>
<TTPObjectLinkAttr Kod="QUANTITY" ValueAttr="1"/>
</TTPObjectLinkAttrLit>
</TTPObjectLink>
</ChildList>
</TTPObject>
<TTPObject Kod="00002856" Name="reductor" ShowKod="1" KodClass="SBED" DateCreate="" DateModify="" KodUserCreate="Технолог" KodUserModify="Технолог"><TTPObjectAttrList/><TTPObjectDocList/>
<ChildList>
<TTPObjectLink KodObj="" KodClass="DETAL" KodLink="SP_KONSTR" IsForwardLink="1" LinkOrder="1">
<TTPObjectLinkAttrLit>
<TTPObjectLinkAttr Kod="QUANTITY" ValueAttr="1"/>
</TTPObjectLinkAttrLit>
</TTPObjectLink>
</ChildList>
</TTPObject>
</TTPObjectList>
</SprutTP>

а надо вот как
Цитата:
<?xml version="1.0" encoding="UTF-8"?>
<SprutTP><TTPObjectList>
<TTPObject Kod="RK0-0001" Name="VAL" ShowKod="1" KodClass="SBED" DateCreate="" DateModify="" KodUserCreate="" KodUserModify=""><TTPObjectAttrList/><TTPObjectDocList/>
<ChildList>
<TTPObjectLink KodObj="RK0-0002" KodClass="SBED" KodLink="SP_KONSTR" IsForwardLink="1" LinkOrder="3">
<TTPObjectLinkAttrList>
<TTPObjectLinkAttr Kod="QUANTITY" ValueAttr="1"/>
<TTPObjectLinkAttr Kod="POSITION" ValueAttr="1"/>
<TTPObjectLinkAttr Kod="ZONE" ValueAttr=""/>
<TTPObjectLinkAttr Kod="PRIM" ValueAttr=""/>
</TTPObjectLinkAttrList>
</TTPObjectLink>
<TTPObjectLink KodObj="RK9-0003" KodClass="SBED" KodLink="SP_KONSTR" IsForwardLink="1" LinkOrder="4">
<TTPObjectLinkAttrList>
<TTPObjectLinkAttr Kod="QUANTITY" ValueAttr="1"/>
<TTPObjectLinkAttr Kod="POSITION" ValueAttr="2"/>
<TTPObjectLinkAttr Kod="ZONE" ValueAttr=""/>
<TTPObjectLinkAttr Kod="PRIM" ValueAttr=""/>
</TTPObjectLinkAttrList>
</TTPObjectLink>
<TTPObjectLink KodObj="RK9-0004" KodClass="SBED" KodLink="SP_KONSTR" IsForwardLink="1" LinkOrder="5">
<TTPObjectLinkAttrList>
<TTPObjectLinkAttr Kod="QUANTITY" ValueAttr="1"/>
<TTPObjectLinkAttr Kod="POSITION" ValueAttr="3"/>
<TTPObjectLinkAttr Kod="ZONE" ValueAttr=""/>
<TTPObjectLinkAttr Kod="PRIM" ValueAttr=""/>
</TTPObjectLinkAttrList>
</TTPObjectLink>
<TTPObjectLink KodObj="RK9-0005" KodClass="SBED" KodLink="SP_KONSTR" IsForwardLink="1" LinkOrder="6">
<TTPObjectLinkAttrList>
<TTPObjectLinkAttr Kod="QUANTITY" ValueAttr="1"/>
<TTPObjectLinkAttr Kod="POSITION" ValueAttr="4"/>
<TTPObjectLinkAttr Kod="ZONE" ValueAttr=""/>
<TTPObjectLinkAttr Kod="PRIM" ValueAttr=""/>
</TTPObjectLinkAttrList>
</TTPObjectLink>
</ChildList>
</TTPObject>

<TTPObject Kod="RK0-0002" Name="VAL" ShowKod="1" KodClass="SBED" DateCreate="" DateModify="" KodUserCreate="" KodUserModify=""><TTPObjectAttrList/><TTPObjectDocList/><ChildList/></TTPObject>

<TTPObject Kod="RK9-0003" Name="VAL" ShowKod="1" KodClass="SBED" DateCreate="" DateModify="" KodUserCreate="" KodUserModify=""><TTPObjectAttrList/><TTPObjectDocList/><ChildList/></TTPObject>

<TTPObject Kod="RK9-0004" Name="VAL" ShowKod="1" KodClass="SBED" DateCreate="" DateModify="" KodUserCreate="" KodUserModify=""><TTPObjectAttrList/><TTPObjectDocList/><ChildList/></TTPObject>

<TTPObject Kod="RK9-0005" Name="VAL" ShowKod="1" KodClass="SBED" DateCreate="" DateModify="" KodUserCreate="" KodUserModify=""><TTPObjectAttrList/><TTPObjectDocList/><ChildList/></TTPObject>
</TTPObjectList>
</SprutTP>





Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: XML-отчет, выгрузка структуры изделия
СообщениеДобавлено: Пн, июн 07 2010, 12:28 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
nonflame, вам же уже намекнули, что готовые решения ваших задач в форуме не раздают.
Сформулируйте вопрос(ы). Вам sy-uname даже очертил их круг.
Что конкретно не получается сделать? По пунктам. Без XML простыней.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: XML-отчет, выгрузка структуры изделия
СообщениеДобавлено: Пн, июн 07 2010, 12:30 
Начинающий
Начинающий

Зарегистрирован:
Пн, июн 07 2010, 11:10
Сообщения: 8
Пономарев Артем написал:
nonflame, вам же уже намекнули, что готовые решения ваших задач в форуме не раздают.
Сформулируйте вопрос(ы). Вам sy-uname даже очертил их круг.
Что конкретно не получается сделать? По пунктам. Без XML простыней.

Я не пытаюсь получить готовое решение, просто показываю в какой структуре выводятся данные.
Вопросы:
1.Как преобразовать дату (по книжке сделать не получилось), чтобы и дата и время в нужном формате заполнилось в одном поле?
2. Как заставить программу заполнять отчет номер спецификации-список компонентов с названиями? а не номер спецификации-компонент, номер спецификации-компонент
Номер спецификации должен в данном случае быть объектом а компоненты спецификации в списке ChildList
3. Как залезть в несвязанные таблицы с таблицей STPO программно? пробовала образ таблицы с полями подключать через модель -структурированный объект с данными
Если можно осуществить выгрузку непосредственно из структуры, через создание по ней временной таблицы в БД, то как это лучше сделать.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: XML-отчет, выгрузка структуры изделия
СообщениеДобавлено: Пн, июн 07 2010, 12:42 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
nonflame, посмотрите ФМ CSGU_ITEM_PROVIDE_BY_GUIDX. Получите данные о позиции в формате искомой вами структуры rc29p.
По поводу даты - форматируйте как вам душе угодно. Посмотрите для начала F1 по WRITE TO.
По поводу струтуры XML - немного подумайте самостоятельно. Ответ лежит на поверхности. У каждого добавляемого элемента есть атрибут parent...


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: XML-отчет, выгрузка структуры изделия
СообщениеДобавлено: Пн, июн 07 2010, 15:27 
Начинающий
Начинающий

Зарегистрирован:
Пн, июн 07 2010, 11:10
Сообщения: 8
Пономарев Артем написал:
nonflame, посмотрите ФМ CSGU_ITEM_PROVIDE_BY_GUIDX. Получите данные о позиции в формате искомой вами структуры rc29p.
По поводу даты - форматируйте как вам душе угодно. Посмотрите для начала F1 по WRITE TO.
По поводу струтуры XML - немного подумайте самостоятельно. Ответ лежит на поверхности. У каждого добавляемого элемента есть атрибут parent...

Спасибо, как раз с созданием сущностей не было проблем, в итоге нужная структура отчета получена добавлением контрольных точек прерывания с помощью at new f...endat в нужных местах.
Можно последний вопрос? Я хочу задать в программе у последнего элемента 2 атрибута: Kod и ValueAttr, атрибуту Код хочу сама задать 4 значения: quantity, position, zone, prm, а в valueattr заполнить из таблицы БД.
Проблема в том, что когда я в программе пишу

Цитата:

l_value = 'QUANTITY'.
l_element_TTPObjectLinkAttr->set_attribute(
name = 'Kod'
value = l_value ).


l_value = l_stpo-menge.
l_element_TTPObjectLinkAttr->set_attribute(
name = 'ValueAttr'
value = l_value ).


l_value = 'POSITION'.
l_element_TTPObjectLinkAttr->set_attribute(
name = 'Kod'
value = l_value ).


l_value = l_stpo-stlkn.
l_element_TTPObjectLinkAttr->set_attribute(
name = 'ValueAttr'
value = l_value ).

Он выводит в отчет только последнее значение для атрибута Код - POSITION, а нужно чтобы было и то, и то, каким циклом можно это организовать?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: XML-отчет, выгрузка структуры изделия
СообщениеДобавлено: Пн, июн 07 2010, 15:37 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
Я не совсем понял вопрос.
Напишите, что вы хотите увидеть в XML файле, пожалуйста.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: XML-отчет, выгрузка структуры изделия
СообщениеДобавлено: Пн, июн 07 2010, 15:42 
Начинающий
Начинающий

Зарегистрирован:
Пн, июн 07 2010, 11:10
Сообщения: 8
Пономарев Артем написал:
Я не совсем понял вопрос.
Напишите, что вы хотите увидеть в XML файле, пожалуйста.

Для этого я выкладывала xml отчеты

Цитата:
<TTPObjectLinkAttrList>
<TTPObjectLinkAttr Kod="QUANTITY" ValueAttr="1"/>
<TTPObjectLinkAttr Kod="POSITION" ValueAttr="3"/>
<TTPObjectLinkAttr Kod="ZONE" ValueAttr=""/>
<TTPObjectLinkAttr Kod="PRIM" ValueAttr=""/>
</TTPObjectLinkAttrList>


<TTPObjectLinkAttr Kod="QUANTITY" ValueAttr=l_stpo-menge/> Здесь описаны поля, откуда записываются значения, в отчете, естественно сами значения стоят.
<TTPObjectLinkAttr Kod="POSITION" ValueAttr=l_stpo-posnr/>

Примерно чтобы было так, но, к сожалению записывается только последнее l_value для атрибута Kod.
Как можно организовать запись значений для атрибута код, чтобы в отчете вывелись все 4 значения


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: XML-отчет, выгрузка структуры изделия
СообщениеДобавлено: Пн, июн 07 2010, 16:23 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
Ваш код работает неверно, потому как вы меняете значение атрибутов для одного и того же элемента.
Вам нужно создавать новый элемент l_element_TTPObjectLinkAttr для каждой пары атрибутов в XML файле.
Т.е.:
Code:
l_element_TTPObjectAttrList =
l_document->create_simple_element(
name = 'TTPObjectAttrList'
parent = l_element_TTPObject ).

l_value = 'QUANTITY'.
l_element_TTPObjectLinkAttr->set_attribute(
name = 'Kod'
value = l_value ).

l_value = l_stpo-menge.
l_element_TTPObjectLinkAttr->set_attribute(
name = 'ValueAttr'
value = l_value ).

l_element_TTPObjectAttrList =
l_document->create_simple_element(
name = 'TTPObjectAttrList'
parent = l_element_TTPObject ).

l_value = 'POSITION'.
l_element_TTPObjectLinkAttr->set_attribute(
name = 'Kod'
value = l_value ).

l_value = l_stpo-stlkn.
l_element_TTPObjectLinkAttr->set_attribute(
name = 'ValueAttr'
value = l_value ).

и т.д.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: XML-отчет, выгрузка структуры изделия
СообщениеДобавлено: Пн, июн 07 2010, 16:45 
Начинающий
Начинающий

Зарегистрирован:
Пн, июн 07 2010, 11:10
Сообщения: 8
Спасибо,работает почти как надо, только вместо 4х групп значений создается 5, первые пустые, а 1-4 с нужными данными


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: XML-отчет, выгрузка структуры изделия
СообщениеДобавлено: Пн, июн 07 2010, 16:51 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
Найдите и удалите в коде создание лишнего элемента.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: XML-отчет, выгрузка структуры изделия
СообщениеДобавлено: Чт, июн 10 2010, 10:30 
Начинающий
Начинающий

Зарегистрирован:
Пн, июн 07 2010, 11:10
Сообщения: 8
Спасибо большое.
Вновь появившиеся вопросы: когда выгружаю в отчет все числовые значения вроде количества и позиции в спецификации отображаются с нулями 00001 и 1.000 и являются почему-то строковыми( так ругается программа, в которую загружаю), когда в редакторе xml отрезаю нули и точки, все нормально, как можно сделать это в теле программы?
И еще в абапе длина элемента l_element_TTPObjectLinkAttrList превышает 30 символов, как можно увеличить длину элемента?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: XML-отчет, выгрузка структуры изделия
СообщениеДобавлено: Чт, июн 10 2010, 13:23 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, июн 02 2009, 22:28
Сообщения: 228
Откуда: MOW
Пол: Мужской
Насчет как побороть начальные нули (lv_var - переменная):
Code:
SHIFT lv_var LEFT DELETING LEADING '0'.


Насчет отсутствия десятичных знаков:
вместо
Code:
l_value = l_stpo-menge.


напишите
Code:
WRITE l_stpo-menge TO l_value DECIMALS 0.


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

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


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

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


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

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