Jump to content

Bob320

Supportworks Users
  • Posts

    64
  • Joined

  • Last visited

Everything posted by Bob320

  1. I'm trying to clear down the assets in preparation for a fresh upload using the cleaner but get this: D:\hornbill>hornbillCleaner_w64.exe ===== Hornbill Cleaner Utility v1.0.3 ===== WARNING! This utility will delete all records from the following entities in Hornbill instance: https://eurapi.hornbill.com/xxxxxxxxxx/xmlmc/ as specified in your configuration file: * All Assets (and related data) Are you sure you want to permanently delete these records? (yes/no): yes Are you absolutely sure? Type in the word 'delete' to confirm... delete sqlQuery was unsuccessful for table [h_cmdb_assets]: Unable to execute query There are no assets to delete. I know I have some assets
  2. We have a need for authorised members of staff to carry out the authorisation of procurement requests based on the cost code that is entered as a question in a service request work flow. Once the service request is logged in generates a task for a user to accept/reject. As the authority process is outside Hornbill it would be nice to trigger a notification to the authority service with the details of what needs to be authorised. When authorisation then happens it uses the api to fire back the response and complete the task. It's not essential as I can poll the user for tasks, and if a webhook is fired for every task it may generate more traffic than polling.
  3. You mean if I actually use the api then a webhook is triggered, but if the app adds the task then now webhook is triggered? My reasoning is that if a task is created for a specific user I can capture it externally. That way I don't have to regularly poll the user by api key to find a new task. Not the end of the world and depending on the regularity of it being triggered it may prove more detrimental than polling anyhow.
  4. I've added a webhook that I'd like to capture when a task is created. But so far have been unable to see any activity in my requestbin. Attached is my setup screen. I then go and use the service portal and complete a procurement form with spawns a task for a user and I can then query the tasks for that user and see that there is in deed a task for them. But the request bin remains unmolested. So then I thought maybe it's creating the task in collaboration so chose that as the application and still see nothing.
  5. That's obviously why you get paid da big bucks Simple change now makes it return json - even with the forced error!
  6. * Hostname was found in DNS cache * Trying 78.129.173.117... * Connected to eurapi.hornbill.com (78.129.173.117) port 443 (#0) * successfully set certificate verify locations: * CAfile: none CApath: /etc/ssl/certs * SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384 * Server certificate: * subject: C=GB; ST=Middlesex; L=Ruislip; O=Hornbill Service Management Limited; OU=Marketing; CN=*.hornbill.com * start date: 2014-10-29 00:00:00 GMT * expire date: 2017-03-24 23:59:59 GMT * subjectAltName: eurapi.hornbill.com matched * issuer: C=US; O=GeoTrust Inc.; CN=GeoTrust SSL CA - G3 * SSL certificate verify ok. > POST /charnwoodbc/xmlmc/apps/com.hornbill.servicemanager/Requests/ HTTP/1.1 User-Agent: GuzzleHttp/6.2.1 curl/7.38.0 PHP/5.6.24-0+deb8u1 Host: eurapi.hornbill.com Content-type: text/xmlmc Authorization: ESP-APIKEY xxxxxxxxxxxxxxxxxxxxxxxxxxxxx Accept: Application/json Content-Length: 230 * upload completely sent off: 230 out of 230 bytes < HTTP/1.1 200 OK * Server nginx is not blacklisted < Server: nginx < Date: Thu, 01 Sep 2016 10:08:35 GMT < Content-Type: text/xmlmc; charset=utf-8 < Content-Length: 1771 < Connection: keep-alive < Accept-Ranges: bytes < Cache-Control: no-cache < X-esp-instance: charnwoodbc < X-esp-service-build-date: 2016-07-12 < X-esp-service-name: Esp.charnwoodbc.ServerService < X-esp-service-version: 8.0.0.2578 < X-esp-transaction-id: 1c537af0-07e0-4554-a3b3-bfbbe400ceb0 < X-esp-transaction-perf: t=2016-09-01 10:08:35Z, tt=88.831ms < Strict-Transport-Security: max-age=31536000; includeSubDomains < * Connection #0 to host eurapi.hornbill.com left intact Just saying it in a different way?
  7. Not sure if this is any help? I create the Request object and send that to the Guzzle client Request {#372 ▼ -method: "POST" -requestTarget: null -uri: Uri {#369 ▼ -scheme: "https" -userInfo: "" -host: "eurapi.hornbill.com" -port: null -path: "/charnwoodbc/xmlmc/apps/com.hornbill.servicemanager/Requests/" -query: "" -fragment: "" } -headers: array:5 [▼ "Host" => array:1 [▼ 0 => "eurapi.hornbill.com" ] "Content-type" => array:1 [▼ 0 => "text/xmlmc" ] "Authorization" => array:1 [▶] "Accept" => array:1 [▼ 0 => "Application/json" ] "Content-length" => array:1 [▼ 0 => "230" ] ] -headerNames: array:5 [▼ "content-type" => "Content-type" "authorization" => "Authorization" "accept" => "Accept" "content-length" => "Content-length" "host" => "Host" ] -protocol: "1.1" -stream: Stream {#370 ▼ -stream: stream resource @16 ▼ wrapper_type: "PHP" stream_type: "TEMP" mode: "w+b" unread_bytes: 0 seekable: true uri: "php://temp" options: [] } -size: 230 -seekable: true -readable: true -writable: true -uri: "php://temp" -customMetadata: [] } } With the XML content method call: <methodCall service="apps/com.hornbill.servicemanager/Requests" method="smGetRequests"> <params> <requestNumberEquals>SR00000087</requestNumberEquals> <rowstart>0</rowstart> <limit>1</limit> </params> </methodCall> And the response object I get back (definitely states it's text/xmlmc): Response {#395 ▼ -reasonPhrase: "OK" -statusCode: 200 -headers: array:14 [▼ "Server" => array:1 [▼ 0 => "nginx" ] "Date" => array:1 [▼ 0 => "Thu, 01 Sep 2016 10:02:06 GMT" ] "Content-Type" => array:1 [▼ 0 => "text/xmlmc; charset=utf-8" ] "Content-Length" => array:1 [▼ 0 => "1771" ] "Connection" => array:1 [▼ 0 => "keep-alive" ] "Accept-Ranges" => array:1 [▼ 0 => "bytes" ] "Cache-Control" => array:1 [▼ 0 => "no-cache" ] "X-esp-instance" => array:1 [▼ 0 => "charnwoodbc" ] "X-esp-service-build-date" => array:1 [▼ 0 => "2016-07-12" ] "X-esp-service-name" => array:1 [▼ 0 => "Esp.charnwoodbc.ServerService" ] "X-esp-service-version" => array:1 [▼ 0 => "8.0.0.2578" ] "X-esp-transaction-id" => array:1 [▼ 0 => "cd02894d-6693-45a5-a6f0-e167e25a8e98" ] "X-esp-transaction-perf" => array:1 [▼ 0 => "t=2016-09-01 10:02:06Z, tt=85.296ms" ] "Strict-Transport-Security" => array:1 [▼ 0 => "max-age=31536000; includeSubDomains" ] ] -headerNames: array:14 [▼ "server" => "Server" "date" => "Date" "content-type" => "Content-Type" "content-length" => "Content-Length" "connection" => "Connection" "accept-ranges" => "Accept-Ranges" "cache-control" => "Cache-Control" "x-esp-instance" => "X-esp-instance" "x-esp-service-build-date" => "X-esp-service-build-date" "x-esp-service-name" => "X-esp-service-name" "x-esp-service-version" => "X-esp-service-version" "x-esp-transaction-id" => "X-esp-transaction-id" "x-esp-transaction-perf" => "X-esp-transaction-perf" "strict-transport-security" => "Strict-Transport-Security" ] -protocol: "1.1" -stream: Stream {#396 ▼ -stream: stream resource @18 ▼ wrapper_type: "PHP" stream_type: "TEMP" mode: "w+b" unread_bytes: 0 seekable: true uri: "php://temp" options: [] } -size: null -seekable: true -readable: true -writable: true -uri: "php://temp" -customMetadata: [] } }
  8. The embedded json was "stringified" but the paste to code seems to have replace the html entities with their html equivalent - eg. string was full of &apos; but pasted here got changed to ' With the error I'll have to check the return response header. But because the http response is 200 it's not as obvious an error occurred and relies on checking the data. Lol, you make it sound easy for me to drop the curl in I'm going to have to poke around with Guzzle to figure that out
  9. I was hoping that was the case This is what I get back from smGetRequests when I ask for SR00000087. Json embedded in <requests> <?xml version="1.0" encoding="utf-8" ?> <methodCallResult status="ok"> <params> <requests>{"row":{"h_pk_reference":"SR00000087","h_fk_user_id":"paulb","h_requesttype":"Service Request","h_status":"status.open","h_datelogged":{"@raw":"2016-08-29 13:15:17","#text":"2016-08-29 14:15:17"},"h_fk_team_id":"CBC/CORP/RBCS/ICS/GENSUP/","h_datelastmodified":{"@raw":"2016-08-29 13:15:18","#text":"2016-08-29 14:15:18"},"h_isanalystunread":"1","h_container_id":"0","h_createdby":"paulb","h_customer_type":"0","customer_name":"Paul Bargewell","h_team_name":"General Support","h_fk_serviceid":"4","h_service_name":"Procurement","h_reopencount":"0","h_source_type":"Self Service","h_source_id":"paulb","h_site":"Southfield Road","h_site_id":"1","h_company_name":"Charnwood Borough Council","h_company_id":"CBC","h_catalog_id":"17","h_catalog":"Request a new laptop","h_catalog_title":"Request a new laptop","createdby_name":"Paul Bargewell"}}</requests> <count>1</count> <export>null</export> </params> <flowCodeDebugState> <step>d06f88c0-5676-4915-aaf3-2cbd41728dcf</step> <executionId>25449</executionId> <debugState></debugState> </flowCodeDebugState> </methodCallResult> If I force an error I get back XML even with the Accept json header. <?xml version="1.0" encoding="utf-8" ?> <methodCallResult status="fail"> <state> <code>0002</code> <error>The service specified is not available: apps1</error> </state> </methodCallResult> But when I call getRequestQuestions() I get what I expect: { "@status": true, "params": { "rowsAffected": 0, "lastInsertId": 0, "rowData": { "row": [ { "h_id": "151", "h_entity_ref": "SR00000087", "h_entity_type": "request", "h_question_id": "WhoFor", "h_question": "Who is this laptop for?", "h_answer": "John Smith", "h_field_type": "text", "h_form_id": "WhoFor" }, { "h_id": "152", "h_entity_ref": "SR00000087", "h_entity_type": "request", "h_question_id": "existing_Chk", "h_question": "Is this a replacement for an existing laptop?", "h_answer": "No", "h_field_type": "select", "h_form_id": "Replace_exist" }, { "h_id": "153", "h_entity_ref": "SR00000087", "h_entity_type": "request", "h_question_id": "field_1", "h_question": "Please provide reason for this request", "h_answer": "Why?", "h_field_type": "textarea", "h_form_id": "Bus_Justification" }, { "h_id": "154", "h_entity_ref": "SR00000087", "h_entity_type": "request", "h_question_id": "CostCode", "h_question": "Cost Code", "h_answer": "G102", "h_field_type": "text", "h_form_id": "CostCode_details" }, { "h_id": "155", "h_entity_ref": "SR00000087", "h_entity_type": "request", "h_question_id": "SubjCode", "h_question": "Subjective Code", "h_answer": "P3N15", "h_field_type": "text", "h_form_id": "CostCode_details" } ] } } }
  10. I thought I'd spend some time tidying up my PHP implementation of Invoke() as I was using little in the way of error checking and was pretty much dumping the response back to the calling functions. It works, but it's not as I'd like. So I started adding in some error checking on the responses and found that I'm at a loss as to what Invoke() is actually returning. My initial understanding was that by submitting the headers and xml parameters I'd be getting back json as requested in the header. 'Accept' => 'Application/json', But it looks like this isn't necessarily the case. If an error is returned then the response looks like xml. So then I thought I'd best check the response header for the type returned and use that to determine what I got back. So I didn't try parsing xml as json. Seemed straight forward, but then I ran into apps/com.hornbill.servicemanager/Requests::smGetRequests() and apps/com.hornbill.core::getCoWorkersList() and that plan went out of the window. It seems these return xml with json embedded in it as params. So the data returned, even though I ask for json, could be json, could be xml or could be xml with json in. That doesn't seem too smart. Is this really how it works or am I doing something wrong?
  11. Is there a query or task function that will return a list of all tasks, not just those assigned to you? I'm after a way of looking for tasks assigned to a particular user, or all open tasks.
  12. Further to this it's become really quite a major issue. The call to apps/com.hornbill.servicemanager/Asset::updateAsset may not require much more than those field above to validate, but if you don't provide the parameters they get wiped out. So it's not a real update - you have to read ALL the parameters from an existing asset only to write them ALL back. If you don't the fields become the string 'undefined'. I did some asset updates using just the parameter above and the description, asset tag and name all became 'undefined'. Not at all useful. So in any form submission I have to call entityGetRecord, scrape all the data to add it back to the submitted data or it's gone. I really don't want to fetch all that data to the end-user form for them to submit in hidden fields, so all the additional processing has to be done before actually calling updateAsset.
  13. Great thanks. It's working fine for me as long as I populate the parameters. I'll have to keep an eye out for the replacement function.
  14. com.hornbill.core::getCoWorkersList The documentation seems to imply that all of the parameters are optional. This doesn't seem to be the case. If I leave any out the call fails with a Flow Code error. <?xml version="1.0" encoding="utf-8" ?> <methodCallResult status="fail"> <state> <code>0200</code> <service>apps</service> <operation>getCoWorkersList</operation> <error>FlowCode Exception (com.hornbill.core/flowcode/fc_ops/getCoWorkersList): nodeName: CoWorker Search; nodeId: 2b21fc1e-de0c-41a7-b536-74c7ed3690da; At 170/1: &quot;Uncaught EspMethodCall::invoke: Operation[data::queryExec] queryParams validation error: Non-digit characters found in the element &lt;rowstart&gt;, the expected data type is &apos;integer&apos;. The value was [undefined] at location &apos;/methodCall/params/queryParams/rowstart&apos;&quot; throw(e); _fc_node_exec_2b21fc1e_de0c_41a7_b536_74c7ed3690da</error> </state> </methodCallResult>
  15. Thanks both. I'll poke around some more in the experimental bit to get more info. The things I'm struggling with are in relation to assets. I really don't understand the direction taken for sites, buildings, floors and locations being so free form. We have a site and within that site are buildings, floors and locations. But SM seems only interested in being able to choose a site, then everything else is a free for all. So we're trying to handle a simple daily process where we take an asset from the stores and move it to a location or user. It's a simple form that could just be select the asset, select the location, submit. However, in the SM world we can only use a site as there are no lookups on any of the other fields. So far I've build a page that queries the API and does a lot of what we're after. I'm using data::queryExec to search and filter the asset record selection using a typeahead and then for the sites using data::entityBrowseRecords but that only returns h_site_name and none of the other attributes like location. I could probably use our own json data source for the locations, but then that doesn't become available in SM and is then unique to our developments.
  16. Where can I get this? It's reference in the self documenting api and without it the api is becoming less useful. For example: data::entityBrowseRecords - What can I pass as an entity to get the entity data? apps/com.hornbill.servicemanager/Asset::searchAssetGlobal - what can I pass as filter to get the list of assets I'm looking for? data::queryExec - What are the names of the available queries to pass as queryName? There's only so much guessing I can do.
  17. I'm trying to carry out a simple asset update of a Computer Peripheral and it's proven quite hard work. I only want to change the "location" of the asset. In order to achieve success I couldn't just submit the "required" fields as the FlowCode refused to validate the data that must already be part of the record. So I have had to populate all kinds of other fields to get it to work. Required fields are: assetId, name, type, version But I actually had to fill in all of these. $peripheral = [ 'acqMethod' => 1, 'actualRetireDate' => '1970-01-01 00:00:00', 'assetId' => 3533, 'cost' => 0, 'deprecMethod' => 0, 'deprecStart' => '1970-01-01 00:00:00', 'deprecValue' => 0, 'disposalPrice' => 0, 'location' => 'Bedroom', 'locationType' => 0, 'maintenanceCost' => 0, 'maintenanceRef' => '', 'name' => 'CBC8522', 'operationalState' => 0, 'orderDate' => '1970-01-01 00:00:00', 'receivedDate' => '1970-01-01 00:00:00', 'residualValue' => 0, 'scheduledRetireDate' => '1970-01-01 00:00:00', 'siteId' => 1, 'sourceImage' => '', 'state' => 0, 'type' => 8, //'Monitor', 'version' => 0, 'warrantyExpires' => '1970-01-01 00:00:00', 'warrantyStart' => '1970-01-01 00:00:00', 'wireless' => '' ]; Which produces the XML: <methodCall service="apps/com.hornbill.servicemanager/AssetsComputerPeripheral" method="updateAssetComputerPeripheral"><params> <acqMethod>1</acqMethod> <actualRetireDate>1970-01-01 00:00:00</actualRetireDate> <assetId>3533</assetId> <cost>0</cost> <deprecMethod>0</deprecMethod> <deprecStart>1970-01-01 00:00:00</deprecStart> <deprecValue>0</deprecValue> <disposalPrice>0</disposalPrice> <location>Bedroom</location> <locationType>0</locationType> <maintenanceCost>0</maintenanceCost> <maintenanceRef></maintenanceRef> <name>CBC8522</name> <operationalState>0</operationalState> <orderDate>1970-01-01 00:00:00</orderDate> <receivedDate>1970-01-01 00:00:00</receivedDate> <residualValue>0</residualValue> <scheduledRetireDate>1970-01-01 00:00:00</scheduledRetireDate> <siteId>1</siteId> <sourceImage></sourceImage> <state>0</state> <type>8</type> <version>0</version> <warrantyExpires>1970-01-01 00:00:00</warrantyExpires> <warrantyStart>1970-01-01 00:00:00</warrantyStart> <wireless></wireless> </params></methodCall> I can understand the validation reasoning, but it would seem that all this is bypassed during the asset import process, which is probably going to leave a minefield for later. My only recourse would be to search for the asset, retrieve all the current values, validate them locally and populate them where necessary, then resubmit the data just to update the one field I want to update. If the fields aren't set as mandatory surely the flowcode shouldn't be acting like this?
  18. The passwords in the post are not real I have managed to figure this out and have rolled my own php library that gets me the responses needed. It was more straight forward than I thought, but a simple mistake can tie things up for quite a while. $api->SetParam('filter', 'ASSETSTRING'); $api->Invoke('apps/com.hornbill.servicemanager/Asset', 'searchAssetGlobal'); My mistake was omitting the apps/ part of the service. The filter string itself is nothing but the string you'd type in to search in the UI. Also as I hoped, as long as the API key is set then no user logon is required. Just set params and call invoke.
  19. Further to this how do you get hold of the documentation that's mentioned in regard to Hornbill Development? For example, I've managed to talk with the api and got some responses, but not sure what I need to pass in order to get what I'm after. At this stage I'm interested in simple form data to update an asset location/site. So The process I need to go through would seem to be: session::userLogon - pass userid and password (or maybe the api key let's me skip this?) Take the SessionID com.hornbill.servicemanager/Asset::searchAssetGlobal - Send the previous SessionID and pass a string as a filter??? This is what I struggle with. Can I just pass an asset name or does it need something more like "h_name like '%search%'"? session::userLogoff - Send previous SessionID So this shows it logs me on: <methodCall service="session" method="userLogon"><params><userId>paulb</userId><password>ODFGDFGGGSDxOg==</password></params></methodCall> Esp\XmlmcInstStruct Object ( [server] => https://eurapi.hornbill.com/charnwoodbc/xmlmc/ [paramsXml] => paulbODFGDFGGGSDxOg== [statusCode] => [timeout] => 30 [sessionID] => [apiKey] => xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx [jsonResp] => ) * Hostname was NOT found in DNS cache * Trying 78.129.173.117... * Connected to eurapi.hornbill.com (78.129.173.117) port 443 (#0) * successfully set certificate verify locations: * CAfile: none CApath: /etc/ssl/certs * SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384 * Server certificate: * subject: C=GB; ST=Middlesex; L=Ruislip; O=Hornbill Service Management Limited; OU=Marketing; CN=*.hornbill.com * start date: 2014-10-29 00:00:00 GMT * expire date: 2017-03-24 23:59:59 GMT * subjectAltName: eurapi.hornbill.com matched * issuer: C=US; O=GeoTrust Inc.; CN=GeoTrust SSL CA - G3 * SSL certificate verify ok. > POST /charnwoodbc/xmlmc/session/ HTTP/1.1 Content-type: text/xmlmc Authorization: ESP-APIKEY xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Accept: Application/json User-Agent: GuzzleHttp/6.2.1 curl/7.38.0 PHP/5.6.24-0+deb8u1 Host: eurapi.hornbill.com headers: text/xmlmc headers: ESP-APIKEY xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx headers: Application/json headers: 138 Content-Length: 138 * upload completely sent off: 138 out of 138 bytes < HTTP/1.1 200 OK * Server nginx is not blacklisted < Server: nginx < Date: Thu, 18 Aug 2016 15:05:44 GMT < Content-Type: text/json; charset="utf-8" < Content-Length: 79 < Connection: keep-alive < Accept-Ranges: bytes < Cache-Control: no-cache < Set-Cookie: ESPSessionState=KA59jllmB48qZVhJojMWCsT1dwd1QOj_stURehYxkqgHUZfgwKNa; path=/charnwoodbc < X-esp-instance: charnwoodbc < X-esp-service-build-date: 2016-07-12 < X-esp-service-name: Esp.charnwoodbc.ServerService < X-esp-service-version: 8.0.0.2578 < X-esp-transaction-id: af6468db-8d3d-40eb-b489-9d05293a327b < X-esp-transaction-perf: t=2016-08-18 15:05:44Z, tt=40.842ms < Strict-Transport-Security: max-age=31536000; includeSubDomains < * Connection #0 to host eurapi.hornbill.com left intact Then I try to query for an asset and am not sure what to pass here: <methodCall service="com.hornbill.servicemanager/Asset" method="searchAssetGlobal"><params><filter>** WHAT TO PUT HERE? **</filter><sessionId>KA59jllmB48qZVhJojMWCsT1dwd1QOj_stURehYxkqgHUZfgwKNa</sessionId></params></methodCall> Esp\XmlmcInstStruct Object ( [server] => https://eurapi.hornbill.com/charnwoodbc/xmlmc/ [paramsXml] => 3533 [statusCode] => 200 [timeout] => 30 [sessionID] => KA59jllmB48qZVhJojMWCsT1dwd1QOj_stURehYxkqgHUZfgwKNa [apiKey] => xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx [jsonResp] => ) * Hostname was found in DNS cache * Trying 78.129.173.117... * Connected to eurapi.hornbill.com (78.129.173.117) port 443 (#0) * successfully set certificate verify locations: * CAfile: none CApath: /etc/ssl/certs * SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384 * Server certificate: * subject: C=GB; ST=Middlesex; L=Ruislip; O=Hornbill Service Management Limited; OU=Marketing; CN=*.hornbill.com * start date: 2014-10-29 00:00:00 GMT * expire date: 2017-03-24 23:59:59 GMT * subjectAltName: eurapi.hornbill.com matched * issuer: C=US; O=GeoTrust Inc.; CN=GeoTrust SSL CA - G3 * SSL certificate verify ok. > POST /charnwoodbc/xmlmc/com.hornbill.servicemanager/Asset/ HTTP/1.1 Content-type: text/xmlmc Authorization: ESP-APIKEY xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Accept: Application/json User-Agent: GuzzleHttp/6.2.1 curl/7.38.0 PHP/5.6.24-0+deb8u1 Host: eurapi.hornbill.com headers: text/xmlmc headers: ESP-APIKEY xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx headers: Application/json headers: 209 Content-Length: 209 * upload completely sent off: 209 out of 209 bytes < HTTP/1.1 200 OK * Server nginx is not blacklisted < Server: nginx < Date: Thu, 18 Aug 2016 15:05:44 GMT < Content-Type: text/xmlmc; charset=utf-8 < Content-Length: 226 < Connection: keep-alive < Accept-Ranges: bytes < Cache-Control: no-cache < Set-Cookie: ESPSessionState=; path=/charnwoodbc < X-esp-instance: charnwoodbc < X-esp-service-build-date: 2016-07-12 < X-esp-service-name: Esp.charnwoodbc.ServerService < X-esp-service-version: 8.0.0.2578 < X-esp-transaction-id: 770d0c28-de81-4a98-9707-0554c14e4683 < X-esp-transaction-perf: t=2016-08-18 15:05:44Z, tt=1.235ms < Strict-Transport-Security: max-age=31536000; includeSubDomains < * Connection #0 to host eurapi.hornbill.com left intact Why does it set the ESPSessionState to empty here?
  20. Looking at the documentation for the api I see PHP examples make use of a class ESP. Is this class publically available? It would save me a lot of time translating from go. $the_transport = new \Esp\Transport("", "xmlmc", "dav"); $mc = new \Esp\MethodCall($the_transport); try {
×
×
  • Create New...