Доброе время суток.
Настраиваю http-запросы из SAP к УТМ ЕГАИС-а.
Считывание файлов настроила, проблема при отправке фалов на сервер.
Код следующий:
в SM59 создала HTTP-соединение:
Code:
cl_http_client=>create_by_destination( EXPORTING
destination = http_dest IMPORTING client = CLIENT ).
request = CLIENT->request.
* устанавливаю метод POST
call method client->request->set_method(
if_http_request=>CO_REQUEST_METHOD_POST ).
* устанавливаю версию протокола
client->request->set_version(
if_http_request=>co_protocol_version_1_0 ).
* content type 'multipart/form-data'
CALL METHOD CLIENT->REQUEST->IF_HTTP_ENTITY~SET_CONTENT_TYPE
EXPORTING
* CONTENT_TYPE = 'text/xml'.
CONTENT_TYPE = 'multipart/form-data'.
CALL METHOD CLIENT->REQUEST->SET_HEADER_FIELD
EXPORTING
NAME = 'Accept'
* VALUE = 'text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8'.
VALUE = 'text/xml'.
CALL METHOD CLIENT->REQUEST->SET_HEADER_FIELD
EXPORTING
NAME = 'Accept-Charset'
VALUE = 'ISO-8859-1,utf-8;q=0.7,*;q=0.7'.
CALL METHOD CLIENT->REQUEST->IF_HTTP_ENTITY~SET_FORMFIELD_ENCODING
EXPORTING
FORMFIELD_ENCODING = CL_HTTP_REQUEST=>IF_HTTP_ENTITY~CO_ENCODING_RAW .
data: part type ref to if_http_entity.
* устанавливаю имя выгружаемого файла
part = CLIENT->REQUEST->IF_HTTP_ENTITY~ADD_MULTIPART( ).
CALL METHOD part->set_header_field
EXPORTING
name = 'content-disposition'
value = 'form-data; name="xml_file"; filename="TTNAct.xml";'.
* в переменной str текст XML файла в бинарном виде длина 671 символ
CALL METHOD part->set_data
EXPORTING
data = str
offset = 0.
*и делаю отправку
call method client->send
EXPORTING
timeout = 200
EXCEPTIONS
http_communication_failure = 1
http_invalid_state = 2
http_processing_failed = 3
others = 4.
В ответ ошибка 500 Error Server
В логах УТМ сл. ошибка : Элемент ns:Documents должен завершаться символом > или />
получается что при выгрузке файла на сервер часть данных обрезается.
кто сталкивался с данной проблемой????
P.S. XML файл следующего формата
<?xml version="1.0" encoding="UTF-8"?>
<ns:Documents Version="1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ns= "http://fsrar.ru/WEGAIS/WB_DOC_SINGLE_01"
xmlns:oref="http://fsrar.ru/WEGAIS/ClientRef"
xmlns:pref="http://fsrar.ru/WEGAIS/ProductRef"
xmlns:wa= "http://fsrar.ru/WEGAIS/ActTTNSingle"
>
<ns:Owner>
<ns:FSRAR_ID>011111111</ns:FSRAR_ID>
</ns:Owner>
<ns:Document>
<ns:WayBillAct>
<wa:Header>
<wa:IsAccept>Rejected</wa:IsAccept>
<wa:ACTNUMBER>1</wa:ACTNUMBER>
<wa:ActDate>2015-11-28</wa:ActDate>
<wa:WBRegId>TEST-TTN-1</wa:WBRegId>
<wa:Note> ПРИЧИНА </wa:Note>
</wa:Header>
<wa:Content>
</wa:Content>
</ns:WayBillAct>
</ns:Document>
</ns:Documents>