Skip to content
Iliya Kuznetsov edited this page May 5, 2023 · 3 revisions

Как прикинуться что ты сервер ESR для абапа?

  1. Настраиваем в карлутке get("/rep") для пинга из SM59, get("/rep/{etc}") для слушания HMI-запросов и выдачи ответов
  2. Абоп шлёт:

GET /rep/applcomp/ext service=APPLCOMP&method=release */* узнать уровень пиая

GET /rep/query/ext service=QUERY&method=GENERIC&body=QUERY_REQUEST_XML&release=3.0 text/html получить объекты ESR

/rep/applcomp/ext

Обычный гет-запрос, на который надо выдать <release>7.0</release>

/rep/query/ext

Несмотря на то что приходит гет, это с пейлоадом: <generalQueryRequest> <types><type id="workspace"/></types><qc qcType="S" delMode="N"><clCxt consider="L"/><swcListDef def="A"/></qc><condition><complex><elementary><single><key>NAME</key><val><simple><strg>SAP_BASIS</strg></simple></val><op>EQ</op></single></elementary><elementary><single><key>VERSION</key><val><simple><strg>700</strg></simple></val><op>EQ</op></single></elementary><elementary><single><key>WS_TYPE</key><val><simple><strg>S</strg></simple></val><op>EQ</op></single></elementary></complex></condition><result><attrib>RA_WORKSPACE_ID</attrib><attrib>WS_NAME</attrib><attrib>VENDOR</attrib><attrib>NAME</attrib><attrib>VERSION</attrib><attrib>CAPTION</attrib><attrib>WS_TYPE</attrib><attrib>ORIGINAL_LANGUAGE</attrib><attrib>DEPWS_ID</attrib></result> </generalQueryRequest>

Надо выдать: <queryResult><headerInfo xmlns=""><rows count="0" /><cols count="0" /><colDef><def type="RA_WORKSPACE_ID" pos="0" /><def type="WS_NAME" pos="1" /><def type="VENDOR" pos="2" /><def type="NAME" pos="3" /><def type="VERSION" pos="4" /><def type="CAPTION" pos="5" /><def type="WS_TYPE" pos="6" /><def type="ORIGINAL_LANGUAGE" pos="7" /><def type="DEPWS_ID" pos="8" /></colDef></headerInfo><typeInfo xmlns=""><type id="workspace"><keyElem name="WS_ID" pos="0" /><keyElem name="WS_ORDER" pos="1" /></type></typeInfo><matrix xmlns="" /></queryResult>