Last modified by Nico Lemaire on 2025/09/01 13:36

From version 6.4
edited by Robert Jan Daams
on 2022/08/23 11:15
Change comment: There is no comment for this version
To version 15.6
edited by Nico Lemaire
on 2025/09/01 13:36
Change comment: There is no comment for this version

Summary

Details

Page properties
Title
... ... @@ -1,1 +1,1 @@
1 -Setting up a Webservice connection for project exports
1 +Download a project (export)
Parent
... ... @@ -1,1 +1,1 @@
1 -Implementation documentation.WebHome
1 +Implementation documentation.For customers.WebHome
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.RjDaams
1 +XWiki.NicoLemaire
Content
... ... @@ -23,11 +23,29 @@
23 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 24  
25 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]]
26 +|**Old**|{{code language="none"}}https://web.terraindex.com/DataWS/{{/code}}|(((
27 +[[https:~~/~~/web.terraindex.com/DataWS/ITWDataRestService_V1_0/GetProjectsJSON>>https://web.terraindex.com/DataWS/ITWDataRestService_V1_0/GetProjectsJSON]]
28 28  
29 +[[https:~~/~~/web.terraindex.com/DataWS/ITWImportExportServiceASMX_V1_0.asmx>>https://web.terraindex.com/DataWSExternals/ITWImportExportServiceASMX_V1_0.asmx]]
30 +)))
31 +|**New**|​{{code language="none"}}https://web.terraindex.com/DataWSExternals/{{/code}}|(((
32 +[[https:~~/~~/web.terraindex.com/DataWSExternals/ITWDataRestService_V1_0/GetProjectsJSON>>https://web.terraindex.com/DataWSExternals/ITWDataRestService_V1_0/GetProjectsJSON]]
33 +
34 +[[https:~~/~~/web.terraindex.com/DataWSExternals/ITWImportExportServiceASMX_V1_0.asmx>>https://web.terraindex.com/DataWSExternals/ITWImportExportServiceASMX_V1_0.asmx?wsdl]]
35 +)))
36 +
29 29  == ==
30 30  
39 +{{info}}
40 +We also have new REST Calls, with the same Input Output formats:
41 +\\[[https:~~/~~/web.terraindex.com/datawsExternals/ITWImportExportRestService_V1_0/export>>https://web.terraindex.com/datawsExternals/ITWImportExportRestService_V1_0/export]]
42 +
43 +input as json: ExportRequest
44 +output as json: ExportResult
45 +
46 +as  POST  or  GET
47 +{{/info}}
48 +
31 31  == 1. Retreive all changed project from TerraIndex ==
32 32  
33 33  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.
... ... @@ -250,11 +250,12 @@
250 250  == 2. Retreive the project export from TerraIndex ==
251 251  
252 252  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.
253 -The format of the projectfile is documentated here: [[Documentation TerraIndex Export format - dsFieldProject.xsd>>Implementation documentation.Documentation TerraIndex Export format - dsFieldProject\.xsd.WebHome]]
271 +The format of the projectfile is documentated here: [[Documentation TerraIndex Export format - dsFieldProject.xsd>>Implementation documentation.For customers.Documentation TerraIndex Export format - dsFieldProject\.xsd.WebHome]]
254 254  
255 -To start connecting this webservice, you should use this URL of the Import Export Webservice:
256 -[[https:~~/~~/web.terraindex.com/DataWSExternals/ITWImportExportServiceASMX_V1_0.asmx>>https://web.terraindex.com/DataWSExternals/ITWImportExportServiceASMX_V1_0.asmx]]
273 +To start connecting this webservice, you should use this URL of the Import Export Webservice:
257 257  
275 +[[https:~~/~~/web.terraindex.com/DataWSExternals/ITWImportExportService_V1_0.svc>>https://web.terraindex.com/DataWSExternals/ITWImportExportService_V1_0.svc]]
276 +
258 258  With this URL many IDE’s can create a proxy for you, just by providing the URL. Once this proxy is created, you will have a few classes looking like the call in the image below.
259 259  
260 260  [[image:image-20200108-123431.png]]
... ... @@ -268,7 +268,8 @@
268 268  Also fill the license and the applicationCode. //(These two fields can be requested at the TerraIndex Servicedesk.)//
269 269  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.
270 270  Create at least create 2 parameters as in the image. Beacause 2 parameters are needed.
271 -//If JSON is prevered use: ExportType = 'Export_FIELD_JSON_v1_0_0'//
290 +//If JSON is prevered use: ExportType = 'Export_FIELD_JSON_v1_0_0'
291 +For other export types, see the end of this page//
272 272  6; Fill the parameter with the FileName.
273 273  7; Fill the parameter with **projectID**. Instead of ‘ProjectID' it’s also possible to fill the parameter ‘ProjectCode'.
274 274  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.
... ... @@ -390,139 +390,31 @@
390 390  {{/code}}
391 391  
392 392  
393 -== Zip Stream class ==
413 +**List of export types:**
394 394  
395 -If needed, this is the Zip Stream class you can use to extract the zipstream as used above:
396 -
397 -{{code language="Csharp" layout="LINENUMBERS"}}
398 -/// <summary>
399 -/// Helper class for compress en decompress of file data
400 -/// </summary>
401 -public static class ZipStreamHelper {
402 - #region Compress and encode
403 - /// <summary>
404 - /// Comprimeer een string en geeft deze terug in Base64 string.
405 - /// </summary>
406 - /// <param name="content">filecontent</param>
407 - /// <returns>gecomprimeerde string</returns>
408 - public static string CompressToBase64String(string content) {
409 - //string to byte[]
410 - byte[] contentArray = stringToByteArray(content);
411 - // Compress
412 - byte[] compressed = Compress(contentArray);
413 - return base64_encode(compressed);
414 - }
415 -
416 - /// <summary>
417 - /// Zet een string om naar een ByteArray
418 - /// </summary>
419 - /// <param name="content">filecontent</param>
420 - /// <returns>ByteArray</returns>
421 - public static byte[] stringToByteArray(string content) {
422 - System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
423 - return encoding.GetBytes(content);
424 - }
425 -
426 - /// <summary>
427 - /// comprimeer een ByteArray
428 - /// </summary>
429 - /// <param name="data">filedata als ByteArray</param>
430 - /// <returns>gecomprimeerde ByteArray</returns>
431 - public static byte[] Compress(byte[] data) {
432 - using(var compressedStream = new MemoryStream())
433 - using(var zipStream = new GZipStream(compressedStream, CompressionMode.Compress)) {
434 - zipStream.Write(data, 0, data.Length);
435 - zipStream.Close();
436 - return compressedStream.ToArray();
437 - }
438 - }
439 -
440 - /// <summary>
441 - /// Zet een ByteArray om naar een Base64 string
442 - /// </summary>
443 - /// <param name="data">gecomprimeerde ByteArray</param>
444 - /// <returns>Base 64 string</returns>
445 - public static string base64_encode(byte[] data) {
446 - if (data == null)
447 - return string.Empty;
448 - return Convert.ToBase64String(data);
449 - }
450 -
451 - /// <summary>
452 - /// Zet een string om naar een Base64 string
453 - /// </summary>
454 - /// <param name="data">string</param>
455 - /// <returns>Base 64 string</returns>
456 - public static string string_base64_encode(string data) {
457 - if (string.IsNullOrEmpty(data))
458 - return string.Empty;
459 -
460 - //string to byte[]
461 - byte[] contentArray = stringToByteArray(data);
462 - return base64_encode(contentArray);
463 - }
464 - #endregion
465 -
466 - #region Decompress and decode
467 - // Decode and decompress
468 - /// <summary>
469 - /// Decomprimeer een Base64 string naar een string
470 - /// </summary>
471 - /// <param name="contentBase64">GZIP Base64 string</param>
472 - /// <returns>string</returns>
473 - public static string DecompressBase64StringToString(string contentBase64) {
474 - // Decompress
475 - byte[] decoded = base64_decode(contentBase64);
476 - byte[] decompressed = Decompress(decoded);
477 -
478 - return byteArrayTostring(decompressed);
479 - }
480 -
481 - /// <summary>
482 - /// Zet een ByteArray om in een normale string
483 - /// </summary>
484 - /// <param name="data">ByteArray</param>
485 - /// <returns>string</returns>
486 - public static string byteArrayTostring(byte[] data) {
487 - System.Text.UTF8Encoding enc = new System.Text.UTF8Encoding();
488 - return enc.GetString(data);
489 - }
490 -
491 - /// <summary>
492 - /// Zet een Base64 string om naar een ByteArray
493 - /// </summary>
494 - /// <param name="encodedData">Base64 string</param>
495 - /// <returns>gecomprimeerde ByteArray</returns>
496 - public static byte[] base64_decode(string encodedData) {
497 - byte[] encodedDataAsBytes = Convert.FromBase64String(encodedData);
498 - return encodedDataAsBytes;
499 - }
500 -
501 - /// <summary>
502 - /// Zet een gecomprimeerde ByteArray om in een ByteArray
503 - /// </summary>
504 - /// <param name="data">gecomprimeerde ByteArray</param>
505 - /// <returns>ByteArray (gedecomprimeerd)</returns>
506 - public static byte[] Decompress(byte[] data) {
507 - using(var compressedStream = new MemoryStream(data))
508 - using(var zipStream = new GZipStream(compressedStream, CompressionMode.Decompress))
509 - using(var resultStream = new MemoryStream()) {
510 - var buffer = new byte[4096];
511 - int read;
512 -
513 - while ((read = zipStream.Read(buffer, 0, buffer.Length)) > 0) {
514 - resultStream.Write(buffer, 0, read);
515 - }
516 -
517 - return resultStream.ToArray();
518 - }
519 - }
520 - #endregion
521 -}
522 -{{/code}}
415 +* Export_TI_v1_0_0
416 +* Export_FIELD_XML_v1_0_0
417 +* Export_FIELD_JSON_v1_0_0
418 +* Export_Field_Codelist_XML
419 +* Export_Field_Codelist_JSON
420 +* Export_OVAM_MISTRAL2_v8_4_0
421 +* Export_DOV
422 +* Export_IMSIKB_v14_3_0
423 +* Export_IMSIKB_v13_5_0
424 +* Export_BRO_GMW
425 +* Export_BRO_BHR_GT
426 +* Export_BRO_GAR
427 +* Export_IMSIKB_v14_7_0
428 +* Export_IMSIKB_v14_8_0
429 +* Export_BRO_SAD_IMBROA_Registration
430 +* Export_BRO_SAD_IMBROA_Correction
431 +* Export_BRO_SAD_IMBRO_Registration
432 +* Export_BRO_SAD_IMBRO_Correction
433 +* Export_IMSIKB_v14_9_0
523 523  )))
524 524  
525 525  
437 +
526 526  (% class="col-xs-12 col-sm-4" %)
527 527  (((
528 528