Интеграция с API веб-сервиса Bullhorn SOAP с использованием Coldfusion - PullRequest
3 голосов
/ 13 марта 2012

Я начинаю работать над интеграцией веб-сервиса Bullhorn SOAP с использованием Coldfusion 8. У меня проблемы с аутентификацией - получение сеанса. Я пытался сделать это, как кто-то сделал здесь :

<cfset   session_arg   =   structnew()>
<cfset   session_arg.username   =   'xxxxxx'>
<cfset   session_arg.password   =   'xxxxxxx'>
<cfset   session_arg.apiKey      =   'xxxxxxxxxxxxxxxxxxxxxxx'>

<cfinvoke
           webservice         =   "https://api.bullhornstaffing.com/webservices-2.0/?wsdl"
           method            =   "startSession"
           returnvariable      =   "bhSession"
           argumentcollection   =   "#session_arg#">
</cfinvoke>

Я заменил конечную точку 1.1 конечной точкой веб-службы 2.0. startSession () работает нормально, но я должен получить значение сеанса с помощью getSession (), но он не доступен в возвращаемом объекте - это функция из родительского класса.

enter image description here

Я пытался использовать bhSession.super.getSession (), но это тоже не сработало.

Буду благодарен за любые предложения о том, как подойти к этой интеграции:

  • я должен полностью покинуть cfinvoke / createObject и продолжить CFHTTP а изготовление мыльных конвертов от руки?

  • или, может быть, использовать какую-то библиотеку Java для интеграции?

  • или, может быть, использовать версию API 1.1?


SOAP-ответ, который я получаю с помощью soapUI:

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   <S:Body>
      <ns2:startSessionResponse xmlns:ns2="http://apiservice.bullhorn.com/">
         <return>
            <session>THE_SESSION_VAR</session>
            <corporationId>COPRPORATION_ID</corporationId>
            <userId>USER_ID</userId>
         </return>
      </ns2:startSessionResponse>
   </S:Body>
</S:Envelope>

Там все хорошо. Кажется, что ручное решение было бы правильным решением.

Спасибо за вашу помощь.
Lucas

1 Ответ

2 голосов
/ 13 марта 2012

Разобрался в итоге.

Должен был использовать GetSOAPResponse, чтобы получить фактический ответ.

Пример кода, если кому-то интересно:

<cfscript>
    webservice = createObject("webservice", "https://api.bullhornstaffing.com/webservices-2.0/?wsdl");
    webservice.startSession(myUsername, myPassword, myAPIKey);
    sessionResult = GetSOAPResponse(webservice);
</cfscript>

sessionResult будет содержать необходимый XML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...