Экспорт списка проектов из Clarity PPM в Excel

Кто-нибудь знает, как получить список проектов из Clarity PPM, чтобы преуспеть с помощью интерфейсов SOAP (XOG PPM) и VBA (Excel)?

Я смог использовать интерфейс для успешного входа в систему, но не могу идти дальше... Документация по XML недостаточно ясна для меня.

Вот как я мог войти и получить идентификатор сессии

Sub Soap_LOGIN()
' RKO
' add MS XML v6 reference : tool/Reference

 'Set and instantiate our working objects
    Dim Req As Object
    Dim sEnv As String
    Dim Resp As New MSXML2.DOMDocument60
    Set Req = CreateObject("MSXML2.XMLHTTP")
    Set Resp = CreateObject("MSXML2.DOMDocument.6.0")
    Req.Open "Post", "http://SERVER/niku/xog", False
    Req.setRequestHeader "Content-Type", "text/plain; charset=UTF-8"
    Req.setRequestHeader "soapaction", "http://www.niku.com/xog/Query/Login" ' per the documentation
    Req.setRequestHeader "Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
    Req.setRequestHeader "Connection", "keep -alive"



 ' we create our SOAP envelope for submission to the Web Service
     sEnv = sEnv & "<?xml version=""1.0"" encoding=""utf-8""?>"
     sEnv = sEnv & "<soap:Envelope xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"">"
     sEnv = sEnv & " <soap:Body>"
     sEnv = sEnv & "  <Login xmlns=""http://www.niku.com/xog/Query"">"
     sEnv = sEnv & "   <TenantID>Clarity</TenantID>"
     sEnv = sEnv & "   <Username>XXXX</Username>"
     sEnv = sEnv & "   <Password>YYYY</Password>"
     sEnv = sEnv & "  </Login>"
     sEnv = sEnv & " </soap:Body>"
     sEnv = sEnv & "</soap:Envelope>"
     MsgBox sEnv


' Send SOAP Request
    Req.send (sEnv)

' Display results in MessageBox
    'MsgBox Req.responseText
    Resp.LoadXML Req.responseText
    MsgBox (Req.responseText)
    MsgBox Resp.Text '<--- This is the Session ID


  'clean up code
    Set Req = Nothing
    Set Resp = Nothing



End Sub

1 ответ

Если вам удалось войти в систему и получить идентификатор сеанса, то вы почти у цели. Вы можете создать SOAP-запрос для запроса проектов:

<soap:invoke endpoint="${XOGURL}/niku/xog" var="xogoutput">
    <soap:message>
        <soap-env:Envelope>
            <soap-env:Header>
                <xog:Auth>
                    <xog:SessionID>SESSIONID</xog:SessionID>
                </xog:Auth>
            </soap-env:Header>
            <soap-env:Body>
                <XOGREQUEST/>
            </soap-env:Body>
        </soap-env:Envelope>
    </soap:message>
</soap:invoke>

В приведенном выше тексте замените SESSIONID на свой идентификатор сессии. Затем замените ваш XML-запрос на чтение ваших проектов. Примером этого может быть:

<NikuDataBus xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/nikuxog_read.xsd">
  <Header version="6.0.11" action="read" objectType="project" externalSource="NIKU">
  </Header>
  <Query>
      <Filter name="projectID" criteria="EQUALS">test</Filter>
  </Query>
</NikuDataBus>

Замените тест идентификатором проекта, который вы хотите вернуть. В зависимости от вашей конфигурации Clarity это может вернуть большое количество данных, только для одного проекта. В руководстве Clarity XOG и Интеграция будет показано, как расширить вышеупомянутый фильтр, чтобы получить больше проектов. В качестве альтернативы, в любой документации Clarity загрузите клиент XOG, чтобы получить образец project_read.xml из папки примеров xml.

Когда вы вернете свои проекты, вам нужно будет обработать данные XML. Это может быть довольно сложной задачей.

Если вы просто хотите получить список проектов, более простым механизмом может быть написание SQL в MS Excel (Меню / Данные / Из источников Otehr /SQL) и использование ODBC-соединения для прямого подключения к базе данных Clarity.

Другими альтернативами может стать написание отчета (если вы используете SQL Server, вы можете использовать SSRS для этого).

Другой подход, который лучше всего использовать для простых интеграций, может заключаться в написании сценария GEL на сервере Clarity для извлечения списка проектов и копирования результатов в файл CSV на сервере FTP.

Другие вопросы по тегам