The date values used in this interaction with the service are set in UTC/GMT. This behavior may be specified as part of the web service API by using the http-header value of "X-FSC-TZ: 0" or alternatively by adding the url-argument "tz=0".
To use WebDAV and the GetChangedObjects API a password for applications has to be generated.
A detailed transcript of the data passed to and from the services is listed using the command line utility curl.
Read initial refdate from server |
---|
# user and password export usr="<cloud-user-id>" export pwd="<cloud-service-password>" # service url export svc="https://at.cloud.fabasoft.com/folio" export svc="$svc/wsjson/FSCOWSSTDSERVICES@1.1001:WebService/GetChangedObjects?tz=0" # read refdate curl -u $usr:$pwd -X POST --data-binary '{"refdate":"2016-01-01T00:00:00Z"}' $svc { "refdate": "2016-03-14T10:43:00Z", "objects": null, "changedates": null, "names": null } |
Initial traversal |
---|
# user and password export usr="<cloud-user-id>" export pwd="<application-password>" # read root folder curl -u $usr:$pwd -X PROPFIND -H 'Depth: 1' https://at.cloud.fabasoft.com/folio/webdav/ <?xml version="1.0" encoding="utf-8"?> <D:multistatus xmlns:D="DAV:" xmlns:lp2="http://schemas.fabasoft.com/swc/"> <D:response> <D:href>/folio/webdav/</D:href> <D:propstat> <D:prop> <lp2:COOSYSTEM_1_1_objaddress xmlns:lp2="http://schemas.fabasoft.com/swc/">COO.6505.100.1.211</lp2:COOSYSTEM_1_1_objaddress> <D:creationdate>2009-08-10T14:29:51Z</D:creationdate> <D:getcontentlanguage>de</D:getcontentlanguage> <D:getcontentlength/> <D:getcontenttype>httpd/unix-directory</D:getcontenttype> <D:getetag>"cfe8d07a47fdae19f1ae64272c86fb71"</D:getetag> <D:getlastmodified>Fri, 26 Feb 2016 07:32:54 GMT</D:getlastmodified> <D:lockdiscovery/> <D:resourcetype> <D:collection/> </D:resourcetype> <D:supportedlock> <D:lockentry> <D:lockscope> <D:exclusive/> </D:lockscope> <D:locktype> <D:write/> </D:locktype> </D:lockentry> </D:supportedlock> <D:iscollection>1</D:iscollection> </D:prop> <D:status>HTTP/1.1 200 OK</D:status> </D:propstat> </D:response> <D:response> <D:href>/folio/webdav/Test-Etc/</D:href> <D:propstat> <D:prop> <lp2:COOSYSTEM_1_1_objaddress xmlns:lp2="http://schemas.fabasoft.com/swc/">COO.6505.100.5.1695911</lp2:COOSYSTEM_1_1_objaddress> <D:creationdate>2016-01-18T14:44:56Z</D:creationdate> <D:getcontentlanguage>de</D:getcontentlanguage> <D:getcontentlength/> <D:getcontenttype>httpd/unix-directory</D:getcontenttype> <D:getetag>"faec0018f2ee2514472b0107779ded72"</D:getetag> <D:getlastmodified>Fri, 11 Mar 2016 13:44:10 GMT</D:getlastmodified> <D:lockdiscovery/> <D:resourcetype> <D:collection/> </D:resourcetype> <D:supportedlock> <D:lockentry> <D:lockscope> <D:exclusive/> </D:lockscope> <D:locktype> <D:write/> </D:locktype> </D:lockentry> </D:supportedlock> <D:iscollection>1</D:iscollection> </D:prop> <D:status>HTTP/1.1 200 OK</D:status> </D:propstat> </D:response> </D:multistatus> # read folder “Test-Etc” curl -u $usr:$pwd -X PROPFIND -H 'Depth: 1' https://at.cloud.fabasoft.com/folio/webdav/Test-Etc/ <?xml version="1.0" encoding="utf-8"?> <D:multistatus xmlns:D="DAV:" xmlns:lp2="http://schemas.fabasoft.com/swc/"> <D:response> <D:href>/folio/webdav/Test-Etc/</D:href> <D:propstat> <D:prop> <lp2:COOSYSTEM_1_1_objaddress xmlns:lp2="http://schemas.fabasoft.com/swc/">COO.6505.100.5.1695911</lp2:COOSYSTEM_1_1_objaddress> <D:creationdate>2016-01-18T14:44:56Z</D:creationdate> <D:getcontentlanguage>de</D:getcontentlanguage> <D:getcontentlength/> <D:getcontenttype>httpd/unix-directory</D:getcontenttype> <D:getetag>"faec0018f2ee2514472b0107779ded72"</D:getetag> <D:getlastmodified>Fri, 11 Mar 2016 13:44:10 GMT</D:getlastmodified> <D:lockdiscovery/> <D:resourcetype> <D:collection/> </D:resourcetype> <D:supportedlock> <D:lockentry> <D:lockscope> <D:exclusive/> </D:lockscope> <D:locktype> <D:write/> </D:locktype> </D:lockentry> </D:supportedlock> <D:iscollection>1</D:iscollection> </D:prop> <D:status>HTTP/1.1 200 OK</D:status> </D:propstat> </D:response> <D:response> <D:href>/folio/webdav/Test-Etc/Audio/</D:href> <D:propstat> <D:prop> <lp2:COOSYSTEM_1_1_objaddress xmlns:lp2="http://schemas.fabasoft.com/swc/">COO.6505.100.2.12635429</lp2:COOSYSTEM_1_1_objaddress> <D:creationdate>2016-03-11T13:44:03Z</D:creationdate> <D:getcontentlanguage>de</D:getcontentlanguage> <D:getcontentlength/> <D:getcontenttype>httpd/unix-directory</D:getcontenttype> <D:getetag>"2fb256fc3e02e77d9a1fd8c3191d6605"</D:getetag> <D:getlastmodified>Fri, 11 Mar 2016 13:46:58 GMT</D:getlastmodified> <D:lockdiscovery/> <D:resourcetype> <D:collection/> </D:resourcetype> <D:supportedlock> <D:lockentry> <D:lockscope> <D:exclusive/> </D:lockscope> <D:locktype> <D:write/> </D:locktype> </D:lockentry> </D:supportedlock> <D:iscollection>1</D:iscollection> </D:prop> <D:status>HTTP/1.1 200 OK</D:status> </D:propstat> </D:response> </D:multistatus> # read folder “Test-Etc/Audio” curl -u $usr:$pwd -X PROPFIND -H 'Depth: 1' https://at.cloud.fabasoft.com/folio/webdav/Test-Etc/Audio/ <?xml version="1.0" encoding="utf-8"?> <D:multistatus xmlns:D="DAV:" xmlns:lp2="http://schemas.fabasoft.com/swc/"> <D:response> <D:href>/folio/webdav/Test-Etc/Audio/</D:href> <D:propstat> <D:prop> <lp2:COOSYSTEM_1_1_objaddress xmlns:lp2="http://schemas.fabasoft.com/swc/">COO.6505.100.2.12635429</lp2:COOSYSTEM_1_1_objaddress> <D:creationdate>2016-03-11T13:44:03Z</D:creationdate> <D:getcontentlanguage>de</D:getcontentlanguage> <D:getcontentlength/> <D:getcontenttype>httpd/unix-directory</D:getcontenttype> <D:getetag>"ad93b8af64f0a64b9d1a407664fe37f8"</D:getetag> <D:getlastmodified>Fri, 11 Mar 2016 13:46:58 GMT</D:getlastmodified> <D:lockdiscovery/> <D:resourcetype> <D:collection/> </D:resourcetype> <D:supportedlock> <D:lockentry> <D:lockscope> <D:exclusive/> </D:lockscope> <D:locktype> <D:write/> </D:locktype> </D:lockentry> </D:supportedlock> <D:iscollection>1</D:iscollection> </D:prop> <D:status>HTTP/1.1 200 OK</D:status> </D:propstat> </D:response> <D:response> <D:href>/folio/webdav/Test-Etc/Audio/Ode%20to%20Joy.mp3</D:href> <D:propstat> <D:prop> <lp2:COOSYSTEM_1_1_objaddress xmlns:lp2="http://schemas.fabasoft.com/swc/">COO.6505.100.5.2535086</lp2:COOSYSTEM_1_1_objaddress> <D:creationdate>2016-03-11T13:43:22Z</D:creationdate> <D:displayname>Ode to Joy.mp3</D:displayname> <D:getcontentlanguage>de</D:getcontentlanguage> <D:getcontentlength>47008530</D:getcontentlength> <D:getcontenttype>audio/mpeg</D:getcontenttype> <D:getetag>"056ecacb366d60e4f94605416f20e24e"</D:getetag> <D:getlastmodified>Fri, 11 Mar 2016 13:44:03 GMT</D:getlastmodified> <D:lockdiscovery/> <D:resourcetype/> <D:supportedlock> <D:lockentry> <D:lockscope> <D:exclusive/> </D:lockscope> <D:locktype> <D:write/> </D:locktype> </D:lockentry> </D:supportedlock> <D:iscollection>0</D:iscollection> </D:prop> <D:status>HTTP/1.1 200 OK</D:status> </D:propstat> </D:response> <D:response> <D:href>/folio/webdav/Test-Etc/Audio/Welcome.txt</D:href> <D:propstat> <D:prop> <lp2:COOSYSTEM_1_1_objaddress xmlns:lp2="http://schemas.fabasoft.com/swc/">COO.6505.100.6.2535092</lp2:COOSYSTEM_1_1_objaddress> <D:creationdate>2016-03-11T13:46:58Z</D:creationdate> <D:displayname>Welcome.txt</D:displayname> <D:getcontentlanguage>de</D:getcontentlanguage> <D:getcontentlength>10</D:getcontentlength> <D:getcontenttype>text/plain</D:getcontenttype> <D:getetag>"f7111e8429bfcd4b39bd471421b816d0"</D:getetag> <D:getlastmodified>Fri, 11 Mar 2016 13:47:32 GMT</D:getlastmodified> <D:lockdiscovery/> <D:resourcetype/> <D:supportedlock> <D:lockentry> <D:lockscope> <D:exclusive/> </D:lockscope> <D:locktype> <D:write/> </D:locktype> </D:lockentry> </D:supportedlock> <D:iscollection>0</D:iscollection> </D:prop> <D:status>HTTP/1.1 200 OK</D:status> </D:propstat> </D:response> </D:multistatus> |
From the response to the calls above the following data is collected.
refdate |
---|
2016-03-14T10:43:00Z |
href | objaddress |
---|---|
/folio/webdav/ | COO.6505.100.1.211 |
/folio/webdav/Test-Etc/ | COO.6505.100.5.1695911 |
/folio/webdav/Test-Etc/Audio/ | COO.6505.100.2.12635429 |
/folio/webdav/Test-Etc/Audio/Ode to Joy.mp3 | COO.6505.100.5.2535086 |
/folio/webdav/Test-Etc/Audio/Welcome.txt | COO.6505.100.6.2535092 |
From this data, the following input JSON is generated.
JSON |
---|
{ "refdate": "2016-03-14T10:43:00Z", |
Query for changes |
---|
# show input cat query.txt { "refdate": "2016-03-14T10:43:00Z", "objects": [ "COO.6505.100.1.211", "COO.6505.100.5.1695911", "COO.6505.100.2.12635429", "COO.6505.100.5.2535086", "COO.6505.100.6.2535092" ] } # user and password export usr="<cloud-user-id>" export pwd="<cloud-service-password>" # service url export svc="https://at.cloud.fabasoft.com/folio" export svc="$svc/wsjson/FSCOWSSTDSERVICES@1.1001:WebService/GetChangedObjects?tz=0" # call get changed objects (zero changes) curl -u $usr:$pwd -X POST --data-binary "@query.txt" $svc { "refdate": "2016-03-14T12:22:38Z", "objects": null, "changedates": null, "names": null } # call get changed objects after the Welcome.txt document was changed (one change) curl -u $usr:$pwd -X POST --data-binary "@query.txt" " $svc { "refdate":"2016-03-14T12:29:54Z", "objects":"COO.6505.100.6.2535092", "changedates":"2016-03-14T12:29:41Z", "names":"Welcome" } # call get changed objects after yet another change: a document was added to the Audio folder (two changes) curl -u $usr:$pwd -X POST --data-binary "@query.txt" " $svc { "refdate":"2016-03-14T12:35:55Z", "objects":[ "COO.6505.100.6.2535092", "COO.6505.100.2.12635429" ], "changedates":[ "2016-03-14T12:29:41Z", "2016-03-14T12:35:49Z" ], "names":[ "Welcome", "Audio" ] } |