<
From version < 6.2 >
edited by Robert Jan Daams
on 2022/08/23 11:14
To version < 1.3 >
edited by Roelof Zwaan
on 2021/11/22 10:43
>
Change comment: There is no comment for this version

Summary

Details

Page properties
Parent
... ... @@ -1,1 +1,1 @@
1 -Implementation documentation.WebHome
1 +Implementatie dcoumentatie.WebHome
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.RjDaams
1 +XWiki.RoelofZwaan
Content
... ... @@ -16,19 +16,6 @@
16 16  (((
17 17  (% class="col-xs-12 col-sm-8" %)
18 18  (((
19 -== Changelog ==
20 -
21 -=== Update 2022-08-23 ===
22 -
23 -As part of on-going efforts to improve performance and scalability, we have introduced a dedicated version of DataWS named DataWSExternals.  This new service should be used for external API consumers.
24 -
25 -| |**URL**|
26 -|**Old**|{{code language="none"}}https://web.terraindex.com/DataWS/{{/code}}|[[https:~~/~~/web.terraindex.com/DataWS/ITWImportExportServiceASMX_V1_0.asmx?wsdl>>https://web.terraindex.com/DataWS/ITWImportExportServiceASMX_V1_0.asmx?wsdl]]
27 -|**New**|​{{code language="none"}}https://web.terraindex.com/DataWSExternals/{{/code}}|[[https:~~/~~/web.terraindex.com/DataWSExternals/ITWImportExportServiceASMX_V1_0.asmx?wsdl>>https://web.terraindex.com/DataWSExternals/ITWImportExportServiceASMX_V1_0.asmx?wsdl]]
28 -
29 -(% class="wikigeneratedid" %)
30 -== ==
31 -
32 32  == 1. Retreive all changed project from TerraIndex ==
33 33  
34 34  To retreive all changed project from the TerraIndex database since a specific timestamp, there is a webservice call you can do. This will return all project rows that have changes since the timestamp you send within the request.
... ... @@ -49,7 +49,7 @@
49 49   "Language": "en"
50 50   },
51 51   "LanguageCode": "en",
52 - "WebserviceVersion": "1.0",
39 + "WebserviceVersion": 1,
53 53   "SearchFilter": "",
54 54   "ArchiveID": 0,
55 55   "PageSize": 30,
... ... @@ -251,7 +251,7 @@
251 251  == 2. Retreive the project export from TerraIndex ==
252 252  
253 253  To request the export from TerraIndex we have a SOAP webservice. This webservice is called the ExportService, and it will provide a full project in TerraIndex Format.
254 -The format of the projectfile is documentated here: [[Documentation TerraIndex Export format - dsFieldProject.xsd>>Implementation documentation.Documentation TerraIndex Export format - dsFieldProject\.xsd.WebHome]]
241 +The format of the projectfile is documentated here: [[Documentation TerraIndex Export format - dsFieldProject.xsd>>Implementatie dcoumentatie.Documentation TerraIndex Export format - dsFieldProject\.xsd.WebHome]]
255 255  
256 256  To start connecting this webservice, you should use this URL of the Import Export Webservice:
257 257  [[https:~~/~~/web.terraindex.com/DataWS/ITWImportExportServiceASMX_V1_0.asmx>>url:https://web.terraindex.com/DataWS/ITWImportExportServiceASMX_V1_0.asmx]]
... ... @@ -269,15 +269,12 @@
269 269  Also fill the license and the applicationCode. //(These two fields can be requested at the TerraIndex Servicedesk.)//
270 270  5; Fill the **ExportType **'**Export_FIELD_XML_v1_0_0**’. This export corresponds with dsFieldProject.xsd and is the best XML to connect TI with.
271 271  Create at least create 2 parameters as in the image. Beacause 2 parameters are needed.
272 -//If JSON is prevered use: ExportType = 'Export_FIELD_JSON_v1_0_0'//
273 273  6; Fill the parameter with the FileName.
274 274  7; Fill the parameter with **projectID**. Instead of ‘ProjectID' it’s also possible to fill the parameter ‘ProjectCode'.
275 275  8; Send the request and wait for the reponse. In response field ‘ResultCode’ should be 'SUCCES’ when it all went OK. If not it will tell what went wrong.
276 276  9; The response field 'Filecontent’is filled if it went OK, and it contains XML you can serialize.
277 -10; an extra parameter is added calles: **UseZipStream**. The result data is default Base64 encoded, if you add UseZipStream = true, the result string is GZIPSTREAMED Base64 encoded. **At the end of this page, we have added an class as code, to parse the base64 or ZIPStream Base64 to a normal string.**
278 -*Username and password are known by each TI user and the application manager of your company can create new usernames.
263 +\\*Username and password are known by each TI user and the application manager of your company can create new usernames.
279 279  
280 -
281 281  **EXAMPLE CODE**
282 282  
283 283  ExportType:
... ... @@ -319,76 +319,11 @@
319 319  
320 320  Example call
321 321  
322 -{{code language="none" layout="LINENUMBERS"}}
323 -<soapenv:Envelope
324 - xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
325 - xmlns:itw="https://wsterraindex.terraindex.com/ITWorks.TerraIndex/">
326 - <soapenv:Header></soapenv:Header>
327 - <soapenv:Body>
328 - <itw:Export>
329 - <itw:request>
330 - <itw:AuthorisationRequest>
331 - <itw:Username>USERNAME</itw:Username>
332 - <itw:Password>PASSWORD</itw:Password>
333 - <itw:Licensenumber>LICENSE</itw:Licensenumber>
334 - <itw:ApplicationCode>APPCODE</itw:ApplicationCode>
335 - </itw:AuthorisationRequest>
336 - <itw:WebserviceVersion>1.0</itw:WebserviceVersion>
337 - <itw:LanguageCode>nld</itw:LanguageCode>
338 - <itw:UseCompression>true</itw:UseCompression>
339 - <itw:TypeOfExport>Export_FIELD_XML_v1_0_0</itw:TypeOfExport>
340 - <itw:Parameters>
341 - <itw:ExportParameter>
342 - <itw:ParameterType>FileName</itw:ParameterType>
343 - <itw:StringValue>Export</itw:StringValue>
344 - </itw:ExportParameter>
345 - <itw:ExportParameter>
346 - <itw:ParameterType>projectID</itw:ParameterType>
347 - <itw:FloatValue>917</itw:FloatValue>
348 - </itw:ExportParameter> -----
349 - <itw:ExportParameter>
350 - <itw:ParameterType>ProjectCode</itw:ParameterType>
351 - <itw:StringValue>202020</itw:StringValue>
352 - </itw:ExportParameter> ----
353 - </itw:Parameters>
354 - <itw:LogFormat>XML</itw:LogFormat>
355 - <itw:UseZipStream>true</itw:UseZipStream>
356 - </itw:request>
357 - </itw:Export>
358 - </soapenv:Body>
359 -</soapenv:Envelope>
360 -{{/code}}
306 +<soapenv:Envelope xmlns:soapenv="http:~/~/schemas.xmlsoap.org/soap/envelope/" xmlns:itw="https:~/~/wsterraindex.terraindex.com/ITWorks.TerraIndex/"> <soapenv:Header/> <soapenv:Body> <itw:Export> <itw:request> <itw:AuthorisationRequest> <itw:Username>USERNAME</itw:Username> <itw:Password>PASSWORD</itw:Password> <itw:Licensenumber>LICENSE</itw:Licensenumber> <itw:ApplicationCode>APPCODE</itw:ApplicationCode> </itw:AuthorisationRequest> <itw:WebserviceVersion>1.0</itw:WebserviceVersion> <itw:LanguageCode>nld</itw:LanguageCode> <itw:UseCompression>true</itw:UseCompression> <itw:TypeOfExport>Export_FIELD_XML_v1_0_0</itw:TypeOfExport> <itw:Parameters> <itw:ExportParameter> <itw:ParameterType>FileName</itw:ParameterType> <itw:StringValue>Export</itw:StringValue> </itw:ExportParameter> <itw:ExportParameter> <itw:ParameterType>projectID</itw:ParameterType> <itw:FloatValue>917</itw:FloatValue> </itw:ExportParameter> ~-~-~-~-- <itw:ExportParameter> <itw:ParameterType>ProjectCode</itw:ParameterType> <itw:StringValue>202020</itw:StringValue> </itw:ExportParameter> ~-~-~-~- </itw:Parameters> <itw:LogFormat>XML</itw:LogFormat> <itw:UseZipStream>true</itw:UseZipStream> </itw:request> </itw:Export> </soapenv:Body></soapenv:Envelope>
361 361  
362 362  Example response:
363 363  
364 -{{code language="none"}}
365 -<soap:Envelope
366 - xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
367 - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
368 - xmlns:xsd="http://www.w3.org/2001/XMLSchema">
369 - <soap:Body>
370 - <ExportResponse
371 - xmlns="https://wsterraindex.terraindex.com/ITWorks.TerraIndex/">
372 - <ExportResult>
373 - <ResultCode>Export_Succes</ResultCode>
374 - <TypeOfExport>Export_TI_v1_0_0</TypeOfExport>
375 - <Files>
376 - <File>
377 - <FileName>917.xml</FileName>
378 - <TypeOfFile>Field_XML_Compressed</TypeOfFile>
379 - <FileContent>H4sIAAAAAAAEAFWRuZaqQABEP4hAGnAGggm6odlREFkkA2WRRRCBxv76YeYF70yFVXUqqBvgl4KQBzcZ8Aho2iqxdhxDSPDmNGjz9Z/weMa8/aimTAUeF42KgxRRzd3YaGfdXtvECEBvWafSNwf+dOsjVXpZUzs+lw/p3gBhuXQ5S8T3MdIBlxUQEam+LOVgVo4D8w4c2E8pEgp3haewcpQx1KQ41Z8DKWv16seaDLp3GABLuIKXK5Ucq31EfSXm0172YvG87hcbayYGdB1t0CbcuueLpU5UawgHSitFr564Aet5LeegD0/tocZDTvuIuc9Ja0tDFt/m7kZnomdVJc+2SkqBGXmTdPiiPzJa2OznLkX67p2PCNM7iHU11QbIilVkMDBVd0J8gK4Ams6ycJQagnww/SaxuiZ/EdS6DZ0cf17BIhUq87CSkQvxat/2dEG1xu94BoaeT7C8XR38/C1DZbpygwfW+gk8Z+Mgm3DDhAj8r6099Rj+5YNs5F3+5R5EUPmd6+EvYvj1Dd8o9lLwAQAA</FileContent>
380 - </File>
381 - <File>
382 - <FileName>ProjectInfo.xml</FileName>
383 - <TypeOfFile>Field_XML_Compressed</TypeOfFile>
384 - <FileContent>H4sIAAAAAAAEAI1Qy5JDQAD8IAdj1/M4hJggDBnEbTxDsV7BxtdvNqm9bx+6urq7+tBEnw+qiuETCLrcTlst9Pajtb0soj7JeynztNIubHK9XZJOXoojN8dXpaxltOlOwAZzK033Edx7HWT1ZFVYNljpsT7iCVDbxb5tlmw3GhV7vgty5jqiGzWSYEvL7RCIQifzchIoMJnHz+fO17C4JAwA0hNRb247SR1ba8OunCV4ralK1rjwBhUAJ2pihopeuxqXIUecePETLhx8zT6IZX5GzafC0XHTrauISeyIM2+2g1PzEymRZrTtglKlsFYHXDKmoYTp+jw1zNDyAFZOTN9XHkuNGmU33905uipWMTsjm2ccm6+bxqk2xAjCf/z3BwS1j+qVqTjrlDGJziCIhC59CHwafeNgI8d3U4cQQ+VXSdXb+QGLuAuvrAEAAA==</FileContent>
385 - </File>
386 - </Files>
387 - </ExportResult>
388 - </ExportResponse>
389 - </soap:Body>
390 -</soap:Envelope>
391 -{{/code}}
310 +<soap:Envelope xmlns:soap="http:~/~/schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http:~/~/www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http:~/~/www.w3.org/2001/XMLSchema"> <soap:Body> <ExportResponse xmlns="https:~/~/wsterraindex.terraindex.com/ITWorks.TerraIndex/"> <ExportResult> <ResultCode>Export_Succes</ResultCode> <TypeOfExport>Export_TI_v1_0_0</TypeOfExport> <Files> <File> <FileName>917.xml</FileName> <TypeOfFile>Field_XML_Compressed</TypeOfFile> <FileContent>H4sIAAAAAAAEAFWRuZaqQABEP4hAGnAGggm6odlREFkkA2WRRRCBxv76YeYF70yFVXUqqBvgl4KQBzcZ8Aho2iqxdhxDSPDmNGjz9Z/weMa8/aimTAUeF42KgxRRzd3YaGfdXtvECEBvWafSNwf+dOsjVXpZUzs+lw/p3gBhuXQ5S8T3MdIBlxUQEam+LOVgVo4D8w4c2E8pEgp3haewcpQx1KQ41Z8DKWv16seaDLp3GABLuIKXK5Ucq31EfSXm0172YvG87hcbayYGdB1t0CbcuueLpU5UawgHSitFr564Aet5LeegD0/tocZDTvuIuc9Ja0tDFt/m7kZnomdVJc+2SkqBGXmTdPiiPzJa2OznLkX67p2PCNM7iHU11QbIilVkMDBVd0J8gK4Ams6ycJQagnww/SaxuiZ/EdS6DZ0cf17BIhUq87CSkQvxat/2dEG1xu94BoaeT7C8XR38/C1DZbpygwfW+gk8Z+Mgm3DDhAj8r6099Rj+5YNs5F3+5R5EUPmd6+EvYvj1Dd8o9lLwAQAA</FileContent> </File> <File> <FileName>ProjectInfo.xml</FileName> <TypeOfFile>Field_XML_Compressed</TypeOfFile> <FileContent>H4sIAAAAAAAEAI1Qy5JDQAD8IAdj1/M4hJggDBnEbTxDsV7BxtdvNqm9bx+6urq7+tBEnw+qiuETCLrcTlst9Pajtb0soj7JeynztNIubHK9XZJOXoojN8dXpaxltOlOwAZzK033Edx7HWT1ZFVYNljpsT7iCVDbxb5tlmw3GhV7vgty5jqiGzWSYEvL7RCIQifzchIoMJnHz+fO17C4JAwA0hNRb247SR1ba8OunCV4ralK1rjwBhUAJ2pihopeuxqXIUecePETLhx8zT6IZX5GzafC0XHTrauISeyIM2+2g1PzEymRZrTtglKlsFYHXDKmoYTp+jw1zNDyAFZOTN9XHkuNGmU33905uipWMTsjm2ccm6+bxqk2xAjCf/z3BwS1j+qVqTjrlDGJziCIhC59CHwafeNgI8d3U4cQQ+VXSdXb+QGLuAuvrAEAAA==</FileContent> </File> </Files> </ExportResult> </ExportResponse> </soap:Body></soap:Envelope>
392 392  
393 393  
394 394  == Zip Stream class ==
... ... @@ -395,132 +395,7 @@
395 395  
396 396  If needed, this is the Zip Stream class you can use to extract the zipstream as used above:
397 397  
398 -{{code language="Csharp" layout="LINENUMBERS"}}
399 -/// <summary>
400 -/// Helper class for compress en decompress of file data
401 -/// </summary>
402 -public static class ZipStreamHelper {
403 - #region Compress and encode
404 - /// <summary>
405 - /// Comprimeer een string en geeft deze terug in Base64 string.
406 - /// </summary>
407 - /// <param name="content">filecontent</param>
408 - /// <returns>gecomprimeerde string</returns>
409 - public static string CompressToBase64String(string content) {
410 - //string to byte[]
411 - byte[] contentArray = stringToByteArray(content);
412 - // Compress
413 - byte[] compressed = Compress(contentArray);
414 - return base64_encode(compressed);
415 - }
416 -
417 - /// <summary>
418 - /// Zet een string om naar een ByteArray
419 - /// </summary>
420 - /// <param name="content">filecontent</param>
421 - /// <returns>ByteArray</returns>
422 - public static byte[] stringToByteArray(string content) {
423 - System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
424 - return encoding.GetBytes(content);
425 - }
426 -
427 - /// <summary>
428 - /// comprimeer een ByteArray
429 - /// </summary>
430 - /// <param name="data">filedata als ByteArray</param>
431 - /// <returns>gecomprimeerde ByteArray</returns>
432 - public static byte[] Compress(byte[] data) {
433 - using(var compressedStream = new MemoryStream())
434 - using(var zipStream = new GZipStream(compressedStream, CompressionMode.Compress)) {
435 - zipStream.Write(data, 0, data.Length);
436 - zipStream.Close();
437 - return compressedStream.ToArray();
438 - }
439 - }
440 -
441 - /// <summary>
442 - /// Zet een ByteArray om naar een Base64 string
443 - /// </summary>
444 - /// <param name="data">gecomprimeerde ByteArray</param>
445 - /// <returns>Base 64 string</returns>
446 - public static string base64_encode(byte[] data) {
447 - if (data == null)
448 - return string.Empty;
449 - return Convert.ToBase64String(data);
450 - }
451 -
452 - /// <summary>
453 - /// Zet een string om naar een Base64 string
454 - /// </summary>
455 - /// <param name="data">string</param>
456 - /// <returns>Base 64 string</returns>
457 - public static string string_base64_encode(string data) {
458 - if (string.IsNullOrEmpty(data))
459 - return string.Empty;
460 -
461 - //string to byte[]
462 - byte[] contentArray = stringToByteArray(data);
463 - return base64_encode(contentArray);
464 - }
465 - #endregion
466 -
467 - #region Decompress and decode
468 - // Decode and decompress
469 - /// <summary>
470 - /// Decomprimeer een Base64 string naar een string
471 - /// </summary>
472 - /// <param name="contentBase64">GZIP Base64 string</param>
473 - /// <returns>string</returns>
474 - public static string DecompressBase64StringToString(string contentBase64) {
475 - // Decompress
476 - byte[] decoded = base64_decode(contentBase64);
477 - byte[] decompressed = Decompress(decoded);
478 -
479 - return byteArrayTostring(decompressed);
480 - }
481 -
482 - /// <summary>
483 - /// Zet een ByteArray om in een normale string
484 - /// </summary>
485 - /// <param name="data">ByteArray</param>
486 - /// <returns>string</returns>
487 - public static string byteArrayTostring(byte[] data) {
488 - System.Text.UTF8Encoding enc = new System.Text.UTF8Encoding();
489 - return enc.GetString(data);
490 - }
491 -
492 - /// <summary>
493 - /// Zet een Base64 string om naar een ByteArray
494 - /// </summary>
495 - /// <param name="encodedData">Base64 string</param>
496 - /// <returns>gecomprimeerde ByteArray</returns>
497 - public static byte[] base64_decode(string encodedData) {
498 - byte[] encodedDataAsBytes = Convert.FromBase64String(encodedData);
499 - return encodedDataAsBytes;
500 - }
501 -
502 - /// <summary>
503 - /// Zet een gecomprimeerde ByteArray om in een ByteArray
504 - /// </summary>
505 - /// <param name="data">gecomprimeerde ByteArray</param>
506 - /// <returns>ByteArray (gedecomprimeerd)</returns>
507 - public static byte[] Decompress(byte[] data) {
508 - using(var compressedStream = new MemoryStream(data))
509 - using(var zipStream = new GZipStream(compressedStream, CompressionMode.Decompress))
510 - using(var resultStream = new MemoryStream()) {
511 - var buffer = new byte[4096];
512 - int read;
513 -
514 - while ((read = zipStream.Read(buffer, 0, buffer.Length)) > 0) {
515 - resultStream.Write(buffer, 0, read);
516 - }
517 -
518 - return resultStream.ToArray();
519 - }
520 - }
521 - #endregion
522 -}
523 -{{/code}}
317 +~/~// <summary> ~/~// Helper class for compress en decompress of file data ~/~// </summary> public static class ZipStreamHelper { #region Compress and encode ~/~// <summary> ~/~// Comprimeer een string en geeft deze terug in Base64 string. ~/~// </summary> ~/~// <param name="content">filecontent</param> ~/~// <returns>gecomprimeerde string</returns> public static string CompressToBase64String(string content) { ~/~/string to byte[] byte[] contentArray = stringToByteArray(content); ~/~/ Compress byte[] compressed = Compress(contentArray); return base64_encode(compressed); } ~/~// <summary> ~/~// Zet een string om naar een ByteArray ~/~// </summary> ~/~// <param name="content">filecontent</param> ~/~// <returns>ByteArray</returns> public static byte[] stringToByteArray(string content) { System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding(); return encoding.GetBytes(content); } ~/~// <summary> ~/~// comprimeer een ByteArray ~/~// </summary> ~/~// <param name="data">filedata als ByteArray</param> ~/~// <returns>gecomprimeerde ByteArray</returns> public static byte[] Compress(byte[] data) { using (var compressedStream = new MemoryStream()) using (var zipStream = new GZipStream(compressedStream, CompressionMode.Compress)) { zipStream.Write(data, 0, data.Length); zipStream.Close(); return compressedStream.ToArray(); } } ~/~// <summary> ~/~// Zet een ByteArray om naar een Base64 string ~/~// </summary> ~/~// <param name="data">gecomprimeerde ByteArray</param> ~/~// <returns>Base 64 string</returns> public static string base64_encode(byte[] data) { if (data == null) return string.Empty; return Convert.ToBase64String(data); } ~/~// <summary> ~/~// Zet een string om naar een Base64 string ~/~// </summary> ~/~// <param name="data">string</param> ~/~// <returns>Base 64 string</returns> public static string string_base64_encode(string data) { if (string.IsNullOrEmpty(data)) return string.Empty; ~/~/string to byte[] byte[] contentArray = stringToByteArray(data); return base64_encode(contentArray); } #endregion #region Decompress and decode ~/~/ Decode and decompress ~/~// <summary> ~/~// Decomprimeer een Base64 string naar een string ~/~// </summary> ~/~// <param name="contentBase64">GZIP Base64 string</param> ~/~// <returns>string</returns> public static string DecompressBase64StringToString(string contentBase64) { ~/~/ Decompress byte[] decoded = base64_decode(contentBase64); byte[] decompressed = Decompress(decoded); return byteArrayTostring(decompressed); } ~/~// <summary> ~/~// Zet een ByteArray om in een normale string ~/~// </summary> ~/~// <param name="data">ByteArray</param> ~/~// <returns>string</returns> public static string byteArrayTostring(byte[] data) { System.Text.UTF8Encoding enc = new System.Text.UTF8Encoding(); return enc.GetString(data); } ~/~// <summary> ~/~// Zet een Base64 string om naar een ByteArray ~/~// </summary> ~/~// <param name="encodedData">Base64 string</param> ~/~// <returns>gecomprimeerde ByteArray</returns> public static byte[] base64_decode(string encodedData) { byte[] encodedDataAsBytes = Convert.FromBase64String(encodedData); return encodedDataAsBytes; } ~/~// <summary> ~/~// Zet een gecomprimeerde ByteArray om in een ByteArray ~/~// </summary> ~/~// <param name="data">gecomprimeerde ByteArray</param> ~/~// <returns>ByteArray (gedecomprimeerd)</returns> public static byte[] Decompress(byte[] data) { using (var compressedStream = new MemoryStream(data)) using (var zipStream = new GZipStream(compressedStream, CompressionMode.Decompress)) using (var resultStream = new MemoryStream()) { var buffer = new byte[4096]; int read; while ((read = zipStream.Read(buffer, 0, buffer.Length)) > 0) { resultStream.Write(buffer, 0, read); } return resultStream.ToArray(); } } #endregion }
524 524  )))
525 525  
526 526  
TerraIndex
asd