Текущее время: Вт, июл 29 2025, 12:39

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


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

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


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

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