From c53052026035c63df574ce912d1507d7d8df800e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ga=C3=ABlle=20FOURNIER?= <gaelle.fournier.work@gmail.com>
Date: Tue, 26 May 2020 10:13:52 +0200
Subject: [PATCH] Generate Probative value PDF

* remove apache FOP for performance problems
* use vitamui xdocreport for pdf generation with update freemarker version
* Re-enable probative value export ZIP containing PDF and json

Co-authored-by: benemart <benedicte.martinez@cea.fr>
---
 .../dto/ProbativeOperationDto.java            |   9 +
 .../dto/ProbativeReportDto.java               |   8 +-
 .../referential-internal/pom.xml              |  64 +-
 .../ProbativeValueInternalService.java        | 121 ++--
 .../src/main/resources/fop/fop-config.xml     | 466 --------------
 .../resources/fop/probativevaluereport.xsl    | 603 ------------------
 .../templates/probativevaluereport.ftl.odt    | Bin 0 -> 18282 bytes
 .../ProbativeValueInternalServiceTest.java    |  46 +-
 .../resources/data/provative_report_KO.json   |  51 ++
 .../data/vitam_got_metadatas_response_ko.json |  84 +++
 .../data/vitam_units_response_ko.json         |  66 ++
 pom.xml                                       |  23 -
 .../probative-value-preview.component.html    |   2 +-
 13 files changed, 349 insertions(+), 1194 deletions(-)
 delete mode 100644 api/api-referential/referential-internal/src/main/resources/fop/fop-config.xml
 delete mode 100644 api/api-referential/referential-internal/src/main/resources/fop/probativevaluereport.xsl
 create mode 100644 api/api-referential/referential-internal/src/main/resources/templates/probativevaluereport.ftl.odt
 create mode 100644 api/api-referential/referential-internal/src/test/resources/data/provative_report_KO.json
 create mode 100644 api/api-referential/referential-internal/src/test/resources/data/vitam_got_metadatas_response_ko.json
 create mode 100644 api/api-referential/referential-internal/src/test/resources/data/vitam_units_response_ko.json

diff --git a/api/api-referential/referential-commons/src/main/java/fr/gouv/vitamui/referential/common/export/probativevalue/dto/ProbativeOperationDto.java b/api/api-referential/referential-commons/src/main/java/fr/gouv/vitamui/referential/common/export/probativevalue/dto/ProbativeOperationDto.java
index 9668c866..74039da2 100644
--- a/api/api-referential/referential-commons/src/main/java/fr/gouv/vitamui/referential/common/export/probativevalue/dto/ProbativeOperationDto.java
+++ b/api/api-referential/referential-commons/src/main/java/fr/gouv/vitamui/referential/common/export/probativevalue/dto/ProbativeOperationDto.java
@@ -68,5 +68,14 @@ public class ProbativeOperationDto {
 
 	@JsonProperty("evDateTime")
 	private String evDateTime;
+	
+	@JsonProperty("archivalAgreement")
+	private String archivalAgreement;
+	
+	@JsonProperty("profil")
+	private String profil;
+	
+	@JsonProperty("accessContract")
+	private String accessContract;
 
 }
diff --git a/api/api-referential/referential-commons/src/main/java/fr/gouv/vitamui/referential/common/export/probativevalue/dto/ProbativeReportDto.java b/api/api-referential/referential-commons/src/main/java/fr/gouv/vitamui/referential/common/export/probativevalue/dto/ProbativeReportDto.java
index 1273644d..dd785d1b 100644
--- a/api/api-referential/referential-commons/src/main/java/fr/gouv/vitamui/referential/common/export/probativevalue/dto/ProbativeReportDto.java
+++ b/api/api-referential/referential-commons/src/main/java/fr/gouv/vitamui/referential/common/export/probativevalue/dto/ProbativeReportDto.java
@@ -38,6 +38,7 @@ package fr.gouv.vitamui.referential.common.export.probativevalue.dto;
 
 import java.util.List;
 
+import com.fasterxml.jackson.annotation.JsonAlias;
 import com.fasterxml.jackson.annotation.JsonProperty;
 
 import lombok.Getter;
@@ -61,6 +62,9 @@ public class ProbativeReportDto {
 	@JsonProperty("reportEntries")
 	private List<ReportEntryDto> reportEntries;
 	
-	@JsonProperty("ReportVersion")
-	private Integer ReportVersion;
+	@JsonProperty("reportVersion")
+	@JsonAlias("ReportVersion")
+	private Integer reportVersion;
+	
+	
 }
\ No newline at end of file
diff --git a/api/api-referential/referential-internal/pom.xml b/api/api-referential/referential-internal/pom.xml
index c736c0a1..0b62294d 100644
--- a/api/api-referential/referential-internal/pom.xml
+++ b/api/api-referential/referential-internal/pom.xml
@@ -46,7 +46,7 @@
 			<groupId>fr.gouv.vitamui</groupId>
 			<artifactId>iam-security</artifactId>
 		</dependency>
-		
+
 
 		<!-- SPRING BOOT -->
 		<dependency>
@@ -106,19 +106,42 @@
 
 		<!-- PDF generation -->
 		<dependency>
-			<groupId>org.apache.xmlgraphics</groupId>
-			<artifactId>fop</artifactId>
+			<groupId>xerces</groupId>
+			<artifactId>xercesImpl</artifactId>
+			<scope>provided</scope>
+		</dependency>
+		<dependency>
+			<groupId>fr.opensagres.xdocreport</groupId>
+			<artifactId>fr.opensagres.odfdom.converter.core</artifactId>
+			<scope>provided</scope>
+		</dependency>
+		<dependency>
+			<groupId>fr.opensagres.xdocreport</groupId>
+			<artifactId>fr.opensagres.xdocreport.converter.odt.odfdom</artifactId>
+			<scope>provided</scope>
+		</dependency>
+		<dependency>
+			<groupId>fr.opensagres.xdocreport</groupId>
+			<artifactId>fr.opensagres.xdocreport.document.odt</artifactId>
+			<scope>provided</scope>
+		</dependency>
+		<dependency>
+			<groupId>fr.opensagres.xdocreport</groupId>
+			<artifactId>fr.opensagres.xdocreport.template.freemarker</artifactId>
+			<scope>provided</scope>
 			<exclusions>
 				<exclusion>
-					<groupId>javax.media</groupId>
-					<artifactId>jai-core</artifactId>
-				</exclusion>
-				<exclusion>
-					<groupId>com.sun.media</groupId>
-					<artifactId>jai-codec</artifactId>
+					<groupId>org.freemarker</groupId>
+					<artifactId>freemarker</artifactId>
 				</exclusion>
 			</exclusions>
 		</dependency>
+		<dependency>
+			<groupId>org.freemarker</groupId>
+			<artifactId>freemarker</artifactId>
+			<version>${freemarker.upgraded.version}</version>
+		</dependency>
+
 
 		<!-- Metrics -->
 		<dependency>
@@ -162,10 +185,6 @@
 			<groupId>org.apache.commons</groupId>
 			<artifactId>commons-collections4</artifactId>
 		</dependency>
-        <dependency>
-            <groupId>com.fasterxml.jackson.dataformat</groupId>
-            <artifactId>jackson-dataformat-xml</artifactId>
-        </dependency>
 		<dependency>
 			<groupId>com.fasterxml.jackson.core</groupId>
 			<artifactId>jackson-databind</artifactId>
@@ -225,6 +244,25 @@
     </dependencies>
 
 	<build>
+		<testResources>
+			<testResource>
+				<directory>src/test/resources</directory>
+				<filtering>false</filtering>
+			</testResource>
+		</testResources>
+		<resources>
+			<resource>
+				<directory>src/main/resources</directory>
+				<filtering>false</filtering>
+			</resource>
+			<resource>
+				<directory>src/main/resources/templates</directory>
+				<filtering>false</filtering>
+				<excludes>
+					<exclude>*.odt</exclude>
+				</excludes>
+			</resource>
+		</resources>
 		<plugins>
 			<plugin>
 				<groupId>org.springframework.boot</groupId>
diff --git a/api/api-referential/referential-internal/src/main/java/fr/gouv/vitamui/referential/internal/server/probativevalue/ProbativeValueInternalService.java b/api/api-referential/referential-internal/src/main/java/fr/gouv/vitamui/referential/internal/server/probativevalue/ProbativeValueInternalService.java
index 6596536d..30d2f878 100644
--- a/api/api-referential/referential-internal/src/main/java/fr/gouv/vitamui/referential/internal/server/probativevalue/ProbativeValueInternalService.java
+++ b/api/api-referential/referential-internal/src/main/java/fr/gouv/vitamui/referential/internal/server/probativevalue/ProbativeValueInternalService.java
@@ -50,29 +50,13 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.Optional;
 
-import javax.xml.transform.Result;
-import javax.xml.transform.Source;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.sax.SAXResult;
-import javax.xml.transform.stream.StreamSource;
-
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.fop.apps.FOUserAgent;
-import org.apache.fop.apps.Fop;
-import org.apache.fop.apps.FopFactory;
-import org.apache.fop.apps.MimeConstants;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.Assert;
-import org.xml.sax.SAXException;
 
 import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.SerializationFeature;
-import com.fasterxml.jackson.dataformat.xml.XmlMapper;
-import com.fasterxml.jackson.dataformat.xml.ser.ToXmlGenerator;
 
 import fr.gouv.vitam.common.client.VitamContext;
 import fr.gouv.vitam.common.exception.InvalidParseOperationException;
@@ -86,10 +70,12 @@ import fr.gouv.vitamui.commons.api.exception.InternalServerException;
 import fr.gouv.vitamui.commons.api.logger.VitamUILogger;
 import fr.gouv.vitamui.commons.api.logger.VitamUILoggerFactory;
 import fr.gouv.vitamui.commons.api.utils.ZipUtils;
+import fr.gouv.vitamui.commons.utils.PdfFileGenerator;
 import fr.gouv.vitamui.commons.vitam.api.access.UnitService;
 import fr.gouv.vitamui.commons.vitam.api.dto.ResultsDto;
 import fr.gouv.vitamui.commons.vitam.api.dto.VitamUISearchResponseDto;
 import fr.gouv.vitamui.referential.common.export.probativevalue.dto.ItemWithLabelDto;
+import fr.gouv.vitamui.referential.common.export.probativevalue.dto.ProbativeOperationDto;
 import fr.gouv.vitamui.referential.common.export.probativevalue.dto.ProbativeReportDto;
 import fr.gouv.vitamui.referential.common.export.probativevalue.dto.ReportEntryDto;
 import fr.gouv.vitamui.referential.common.service.VitamBatchReportService;
@@ -101,6 +87,8 @@ import fr.gouv.vitamui.referential.common.service.VitamBatchReportService;
 @Service
 public class ProbativeValueInternalService {
 
+	private static final String TEMPLATE_PROBATIVEVALUEREPORT_ODT = "templates/probativevaluereport.ftl.odt";
+
 	private static final VitamUILogger LOGGER = VitamUILoggerFactory.getInstance(ProbativeValueInternalService.class);
 
 	final private VitamBatchReportService vitamBatchReportService;
@@ -127,7 +115,6 @@ public class ProbativeValueInternalService {
 			final String workspaceOperationPath, final OutputStream outputStream) {
 		checkWorkspacePath(workspaceOperationPath);
 		getProbativeValueReportJson(vitamContext, operationId, workspaceOperationPath);
-		generateXml(vitamContext, operationId, workspaceOperationPath);
 		generatePDF(vitamContext, operationId, workspaceOperationPath);
 		generateZip(operationId, workspaceOperationPath, outputStream);
 
@@ -135,8 +122,7 @@ public class ProbativeValueInternalService {
 
 	private void getProbativeValueReportJson(final VitamContext vitamContext, final String operationId,
 			final String workspaceOperationPath) {
-		try (InputStream reportStream = vitamBatchReportService.downloadBatchReport(vitamContext,
-				operationId)) {
+		try (InputStream reportStream = vitamBatchReportService.downloadBatchReport(vitamContext, operationId)) {
 			File file = new File(workspaceOperationPath, operationId + ".json");
 			FileUtils.copyInputStreamToFile(reportStream, file);
 		} catch (VitamClientException e) {
@@ -149,71 +135,32 @@ public class ProbativeValueInternalService {
 
 	}
 
-	private void generateXml(final VitamContext vitamContext, final String operationId,
+	private void generatePDF(final VitamContext vitamContext, final String operationId,
 			final String workspaceOperationPath) {
+
 		try {
 			File jsonReport = new File(workspaceOperationPath, operationId + ".json");
-			File xmlReport = new File(workspaceOperationPath, operationId + ".xml");
 			ProbativeReportDto report = JsonHandler.getFromFile(jsonReport, ProbativeReportDto.class);
 			reportEntriesConsolidation(vitamContext, report);
 
-			XmlMapper xmlMapper = new XmlMapper();
-			xmlMapper.enable(ToXmlGenerator.Feature.WRITE_XML_DECLARATION);
-			xmlMapper.enable(SerializationFeature.INDENT_OUTPUT);
-			xmlMapper.writer().withRootName("report").writeValue(xmlReport, report);
-
-		} catch (VitamClientException | InvalidParseOperationException | IOException e) {
-			LOGGER.error(e.getMessage());
-			throw new InternalServerException("Unable to create XML data from JSON Probative Value Report", e);
-		}
-	}
-
-	private void generatePDF(final VitamContext vitamContext, final String operationId,
-			final String workspaceOperationPath) {
-
-		File xmlfile = new File(workspaceOperationPath, operationId + ".xml");
-
-		try (InputStream fopconfigfile = getClass().getClassLoader().getResourceAsStream("fop/fop-config.xml");
-			InputStream xsltfile = getClass().getClassLoader().getResourceAsStream("fop/probativevaluereport.xsl");){
-
 			File pdffile = new File(workspaceOperationPath, operationId + ".pdf");
 
-			// configure fopFactory as desired
-			
-			final FopFactory fopFactory = FopFactory.newInstance(new File(".").toURI(), fopconfigfile);
-
-			FOUserAgent foUserAgent = fopFactory.newFOUserAgent();
-			// configure foUserAgent as desired
+			try (InputStream odtTemplate = getClass().getClassLoader()
+					.getResourceAsStream(TEMPLATE_PROBATIVEVALUEREPORT_ODT);
+					OutputStream pdfOutputStream = new java.io.FileOutputStream(pdffile);) {
 
-			// Setup output
-			try (OutputStream out = new java.io.FileOutputStream(pdffile)) {
-
-				// Construct fop with desired output format
-				Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, foUserAgent, out);
-
-				// Setup XSLT
-				TransformerFactory factory = TransformerFactory.newInstance();
-				Transformer transformer = factory.newTransformer(new StreamSource(xsltfile));
-
-				// Set the value of a <param> in the stylesheet
-				transformer.setParameter("versionParam", "2.0");
-
-				// Setup input for XSLT transformation
-				Source src = new StreamSource(xmlfile);
-
-				// Resulting SAX events (the generated FO) must be piped through to FOP
-				Result res = new SAXResult(fop.getDefaultHandler());
-
-				// Start XSLT transformation and FOP processing
-				transformer.transform(src, res);
+				Map<String, Object> dataMap = new HashMap<>();
+				dataMap.put("report", report);
+				PdfFileGenerator.createPdf(odtTemplate, pdfOutputStream, dataMap);
+			} catch (Exception e) {
+				LOGGER.error(e.getMessage());
+				throw new InternalServerException("Unable to create PDF from Probative Value Report template ODT", e);
 			}
-
-		} catch (TransformerException | IOException | SAXException e) {
-			LOGGER.error(e.getMessage());
-			throw new InternalServerException("Unable to create PDF from Probative Value Report XML", e);
-		} finally {
-			FileUtils.deleteQuietly(xmlfile);
+		} catch (InvalidParseOperationException | VitamClientException exc) {
+			LOGGER.error(exc.getMessage());
+			throw new InternalServerException("Unable to create PDF from Probative Value Report Json value", exc);
 		}
+
 	}
 
 	private void generateZip(final String operationId, final String workspaceOperationPath,
@@ -225,6 +172,7 @@ public class ProbativeValueInternalService {
 			streams.put(operationId + ".json", new FileInputStream(jsonFile));
 			streams.put(operationId + ".pdf", new FileInputStream(pdfFile));
 		} catch (FileNotFoundException e) {
+			LOGGER.error(e.getMessage());
 			throw new InternalServerException(String.format("Unable to generate ZIP: %s", e.getMessage()), e);
 		}
 		ZipUtils.generate(streams, outputStream);
@@ -263,9 +211,30 @@ public class ProbativeValueInternalService {
 						ObjectGroupResponse.class);
 				Optional<QualifiersModel> qualifierObject = objectGroupResponse.getQualifiers().stream()
 						.filter(item -> usage.equals(item.getQualifier())).findFirst();
-				Optional<VersionsModel> qualifierVersionObject = qualifierObject.get().getVersions().stream()
-						.filter(item -> version.equals(String.valueOf(item.getDataVersion()))).findFirst();
-				reportEntry.setObjectLabel(qualifierVersionObject.get().getFileInfoModel().getFilename());
+				if (qualifierObject.isPresent()) {
+					Optional<VersionsModel> qualifierVersionObject = qualifierObject.get().getVersions().stream()
+							.filter(item -> version.equals(String.valueOf(item.getDataVersion()))).findFirst();
+					if (qualifierVersionObject.isPresent()) {
+						reportEntry.setObjectLabel(qualifierVersionObject.get().getFileInfoModel().getFilename());
+					}
+				}
+			}
+
+			// extract operations infos from JsonNode RightsStatementIdentifier
+			for (ProbativeOperationDto operation : reportEntry.getOperations()) {
+				if (operation.getRightsStatementIdentifier() != null) {
+					if (operation.getRightsStatementIdentifier().has("ArchivalAgreement")) {
+						operation.setArchivalAgreement(
+								operation.getRightsStatementIdentifier().get("ArchivalAgreement").asText());
+					}
+					if (operation.getRightsStatementIdentifier().has("Profil")) {
+						operation.setProfil(operation.getRightsStatementIdentifier().get("Profil").asText());
+					}
+					if (operation.getRightsStatementIdentifier().has("AccessContract")) {
+						operation.setAccessContract(
+								operation.getRightsStatementIdentifier().get("AccessContract").asText());
+					}
+				}
 			}
 
 		}
diff --git a/api/api-referential/referential-internal/src/main/resources/fop/fop-config.xml b/api/api-referential/referential-internal/src/main/resources/fop/fop-config.xml
deleted file mode 100644
index 959d1acc..00000000
--- a/api/api-referential/referential-internal/src/main/resources/fop/fop-config.xml
+++ /dev/null
@@ -1,466 +0,0 @@
-<?xml version="1.0"?>
-<!-- $Id: fop.xconf 1616312 2014-08-06 19:19:31Z gadams $ -->
-
-<!--
-
-This is an example configuration file for FOP.
-This file contains the same settings as the default values
-and will have no effect if used unchanged.
-
-Relative config url's will be resolved relative to
-the location of this file.
-
--->
-
-<!-- NOTE: This is the version of the configuration -->
-<fop version="1.0">
-
-  <!-- Base URL for resolving relative URLs -->
-  <base>.</base>
-  
-  <!-- Source resolution in dpi (dots/pixels per inch) for determining the size of pixels in SVG and bitmap images, default: 72dpi -->
-  <source-resolution>72</source-resolution>
-  <!-- Target resolution in dpi (dots/pixels per inch) for specifying the target resolution for generated bitmaps, default: 72dpi -->
-  <target-resolution>72</target-resolution>
-  
-  <!-- Default page-height and page-width, in case value is specified as auto -->
-  <default-page-settings height="11.00in" width="8.50in"/>
-  
-  <!-- Information for specific renderers -->
-  <!-- Uses renderer mime type for renderers -->
-  <renderers>
-    <renderer mime="application/pdf">
-      <filterList>
-        <!-- provides compression using zlib flate (default is on) -->
-        <value>flate</value>
-  
-        <!-- encodes binary data into printable ascii characters (default off)
-             This provides about a 4:5 expansion of data size -->
-        <!-- <value>ascii-85</value> -->
-  
-        <!-- encodes binary data with hex representation (default off)
-             This filter is not recommended as it doubles the data size -->
-        <!-- <value>ascii-hex</value> -->
-      </filterList>
-
-      <fonts>
-        <!-- embedded fonts -->
-        <!--
-        This information must exactly match the font specified
-        in the fo file. Otherwise it will use a default font.
-
-        For example,
-        <fo:inline font-family="Arial" font-weight="bold" font-style="normal">
-            Arial-normal-normal font
-        </fo:inline>
-        for the font triplet specified by:
-        <font-triplet name="Arial" style="normal" weight="bold"/>
-
-        If you do not want to embed the font in the pdf document
-        then do not include the "embed-url" attribute.
-        The font will be needed where the document is viewed
-        for it to be displayed properly.
-
-        possible styles: normal | italic | oblique | backslant
-        possible weights: normal | bold | 100 | 200 | 300 | 400
-                          | 500 | 600 | 700 | 800 | 900
-        (normal = 400, bold = 700)
-        -->
-
-        <!--
-        <font metrics-url="arial.xml" kerning="yes" embed-url="arial.ttf">
-          <font-triplet name="Arial" style="normal" weight="normal"/>
-          <font-triplet name="ArialMT" style="normal" weight="normal"/>
-        </font>
-        <font metrics-url="arialb.xml" kerning="yes" embed-url="arialb.ttf">
-          <font-triplet name="Arial" style="normal" weight="bold"/>
-          <font-triplet name="ArialMT" style="normal" weight="bold"/>
-        </font>
-        -->
-
-        <!-- auto-detect fonts -->
-        <auto-detect/>
-
-      </fonts>
-
-      <!-- This option lets you specify additional options on an XML handler -->
-      <!--xml-handler namespace="http://www.w3.org/2000/svg">
-        <stroke-text>false</stroke-text>
-      </xml-handler-->
-
-    </renderer>
-
-    <renderer mime="application/x-afp">
-      <!--
-           The bit depth and type of images produced
-           (this is the default setting)
-      -->
-      <images mode="b+w" bits-per-pixel="8"/>
-      <renderer-resolution>240</renderer-resolution>
-      <line-width-correction>2.5</line-width-correction>
-      <resource-group-file>resources.afp</resource-group-file>
-
-      <fonts>
-      <!--
-           Below is an example using raster font configuration using FOP builtin base-14 font metrics.
-           for Times Roman, Helvetica and Courier.
-
-           Depending on AFP raster and outline font availability on your installation you will
-           most likely need to modify the configuration provided below.
-
-           See http://xmlgraphics.apache.org/fop/trunk/output.html#afp-configuration
-           for details of FOP configuration for AFP
-      -->
-
-        <!-- Times Roman -->
-        <font>
-          <afp-font name="Times Roman" type="raster" codepage="T1V10500" encoding="Cp500">
-            <afp-raster-font size="6" characterset="C0N20060" base14-font="TimesRoman"/>
-            <afp-raster-font size="7" characterset="C0N20070" base14-font="TimesRoman"/>
-            <afp-raster-font size="8" characterset="C0N20080" base14-font="TimesRoman"/>
-            <afp-raster-font size="9" characterset="C0N20090" base14-font="TimesRoman"/>
-            <afp-raster-font size="10" characterset="C0N20000" base14-font="TimesRoman"/>
-            <afp-raster-font size="11" characterset="C0N200A0" base14-font="TimesRoman"/>
-            <afp-raster-font size="12" characterset="C0N200B0" base14-font="TimesRoman"/>
-            <afp-raster-font size="14" characterset="C0N200D0" base14-font="TimesRoman"/>
-            <afp-raster-font size="16" characterset="C0N200F0" base14-font="TimesRoman"/>
-            <afp-raster-font size="18" characterset="C0N200H0" base14-font="TimesRoman"/>
-            <afp-raster-font size="20" characterset="C0N200J0" base14-font="TimesRoman"/>
-            <afp-raster-font size="24" characterset="C0N200N0" base14-font="TimesRoman"/>
-            <afp-raster-font size="30" characterset="C0N200T0" base14-font="TimesRoman"/>
-            <afp-raster-font size="36" characterset="C0N200Z0" base14-font="TimesRoman"/>
-          </afp-font>
-          <font-triplet name="Times" style="normal" weight="normal"/>
-          <font-triplet name="TimesRoman" style="normal" weight="normal"/>
-          <font-triplet name="Times Roman" style="normal" weight="normal"/>
-          <font-triplet name="Times-Roman" style="normal" weight="normal"/>
-          <font-triplet name="Times New Roman" style="normal" weight="normal"/>
-          <font-triplet name="TimesNewRoman" style="normal" weight="normal"/>
-          <font-triplet name="serif" style="normal" weight="normal"/>
-        </font>
- 
-        <!-- Times Roman Italic -->
-        <font>
-          <afp-font name="Times Roman Italic" type="raster" codepage="T1V10500" encoding="Cp500">
-            <afp-raster-font size="6" characterset="C0N30060" base14-font="TimesItalic"/>
-            <afp-raster-font size="7" characterset="C0N30070" base14-font="TimesItalic"/>
-            <afp-raster-font size="8" characterset="C0N30080" base14-font="TimesItalic"/>
-            <afp-raster-font size="9" characterset="C0N30090" base14-font="TimesItalic"/>
-            <afp-raster-font size="10" characterset="C0N30000" base14-font="TimesItalic"/>
-            <afp-raster-font size="11" characterset="C0N300A0" base14-font="TimesItalic"/>
-            <afp-raster-font size="12" characterset="C0N300B0" base14-font="TimesItalic"/>
-            <afp-raster-font size="14" characterset="C0N300D0" base14-font="TimesItalic"/>
-            <afp-raster-font size="16" characterset="C0N300F0" base14-font="TimesItalic"/>
-            <afp-raster-font size="18" characterset="C0N300H0" base14-font="TimesItalic"/>
-            <afp-raster-font size="20" characterset="C0N300J0" base14-font="TimesItalic"/>
-            <afp-raster-font size="24" characterset="C0N300N0" base14-font="TimesItalic"/>
-            <afp-raster-font size="30" characterset="C0N300T0" base14-font="TimesItalic"/>
-            <afp-raster-font size="36" characterset="C0N300Z0" base14-font="TimesItalic"/>
-          </afp-font>
-          <font-triplet name="Times" style="italic" weight="normal"/>
-          <font-triplet name="TimesRoman" style="italic" weight="normal"/>
-          <font-triplet name="Times Roman" style="italic" weight="normal"/>
-          <font-triplet name="Times-Roman" style="italic" weight="normal"/>
-          <font-triplet name="Times New Roman" style="italic" weight="normal"/>
-          <font-triplet name="TimesNewRoman" style="italic" weight="normal"/>
-          <font-triplet name="serif" style="italic" weight="normal"/>
-        </font>
- 
-        <!-- Times Roman Bold -->
-        <font>
-          <afp-font name="Times Roman Bold" type="raster" codepage="T1V10500" encoding="Cp500">
-            <afp-raster-font size="6" characterset="C0N40060" base14-font="TimesBold"/>
-            <afp-raster-font size="7" characterset="C0N40070" base14-font="TimesBold"/>
-            <afp-raster-font size="8" characterset="C0N40080" base14-font="TimesBold"/>
-            <afp-raster-font size="9" characterset="C0N40090" base14-font="TimesBold"/>
-            <afp-raster-font size="10" characterset="C0N40000" base14-font="TimesBold"/>
-            <afp-raster-font size="11" characterset="C0N400A0" base14-font="TimesBold"/>
-            <afp-raster-font size="12" characterset="C0N400B0" base14-font="TimesBold"/>
-            <afp-raster-font size="14" characterset="C0N400D0" base14-font="TimesBold"/>
-            <afp-raster-font size="16" characterset="C0N400F0" base14-font="TimesBold"/>
-            <afp-raster-font size="18" characterset="C0N400H0" base14-font="TimesBold"/>
-            <afp-raster-font size="20" characterset="C0N400J0" base14-font="TimesBold"/>
-            <afp-raster-font size="24" characterset="C0N400N0" base14-font="TimesBold"/>
-            <afp-raster-font size="30" characterset="C0N400T0" base14-font="TimesBold"/>
-            <afp-raster-font size="36" characterset="C0N400Z0" base14-font="TimesBold"/>
-          </afp-font>
-          <font-triplet name="Times" style="normal" weight="bold"/>
-          <font-triplet name="TimesRoman" style="normal" weight="bold"/>
-          <font-triplet name="Times Roman" style="normal" weight="bold"/>
-          <font-triplet name="Times-Roman" style="normal" weight="bold"/>
-          <font-triplet name="Times New Roman" style="normal" weight="bold"/>
-          <font-triplet name="TimesNewRoman" style="normal" weight="bold"/>
-          <font-triplet name="serif" style="normal" weight="bold"/>
-        </font>
-
-        <!-- Times Roman Italic Bold -->
-        <font>
-          <afp-font name="Times Roman Italic Bold" type="raster" codepage="T1V10500" encoding="Cp500">
-            <afp-raster-font size="6" characterset="C0N50060" base14-font="TimesBoldItalic"/>
-            <afp-raster-font size="7" characterset="C0N50070" base14-font="TimesBoldItalic"/>
-            <afp-raster-font size="8" characterset="C0N50080" base14-font="TimesBoldItalic"/>
-            <afp-raster-font size="9" characterset="C0N50090" base14-font="TimesBoldItalic"/>
-            <afp-raster-font size="10" characterset="C0N50000" base14-font="TimesBoldItalic"/>
-            <afp-raster-font size="11" characterset="C0N500A0" base14-font="TimesBoldItalic"/>
-            <afp-raster-font size="12" characterset="C0N500B0" base14-font="TimesBoldItalic"/>
-            <afp-raster-font size="14" characterset="C0N500D0" base14-font="TimesBoldItalic"/>
-            <afp-raster-font size="16" characterset="C0N500F0" base14-font="TimesBoldItalic"/>
-            <afp-raster-font size="18" characterset="C0N500H0" base14-font="TimesBoldItalic"/>
-            <afp-raster-font size="20" characterset="C0N500J0" base14-font="TimesBoldItalic"/>
-            <afp-raster-font size="24" characterset="C0N500N0" base14-font="TimesBoldItalic"/>
-            <afp-raster-font size="30" characterset="C0N500T0" base14-font="TimesBoldItalic"/>
-            <afp-raster-font size="36" characterset="C0N500Z0" base14-font="TimesBoldItalic"/>
-          </afp-font>
-          <font-triplet name="Times" style="italic" weight="bold"/>
-          <font-triplet name="TimesRoman" style="italic" weight="bold"/>
-          <font-triplet name="Times Roman" style="italic" weight="bold"/>
-          <font-triplet name="Times-Roman" style="italic" weight="bold"/>
-          <font-triplet name="Times New Roman" style="italic" weight="bold"/>
-          <font-triplet name="TimesNewRoman" style="italic" weight="bold"/>
-          <font-triplet name="serif" style="italic" weight="bold"/>
-        </font>
-
-        <!-- Helvetica -->
-        <font>
-          <afp-font name="Helvetica" type="raster" codepage="T1V10500" encoding="Cp500">
-            <afp-raster-font size="6" characterset="C0H20060" base14-font="Helvetica"/>
-            <afp-raster-font size="7" characterset="C0H20070" base14-font="Helvetica"/>
-            <afp-raster-font size="8" characterset="C0H20080" base14-font="Helvetica"/>
-            <afp-raster-font size="9" characterset="C0H20090" base14-font="Helvetica"/>
-            <afp-raster-font size="10" characterset="C0H20000" base14-font="Helvetica"/>
-            <afp-raster-font size="11" characterset="C0H200A0" base14-font="Helvetica"/>
-            <afp-raster-font size="12" characterset="C0H200B0" base14-font="Helvetica"/>
-            <afp-raster-font size="14" characterset="C0H200D0" base14-font="Helvetica"/>
-            <afp-raster-font size="16" characterset="C0H200F0" base14-font="Helvetica"/>
-            <afp-raster-font size="18" characterset="C0H200H0" base14-font="Helvetica"/>
-            <afp-raster-font size="20" characterset="C0H200J0" base14-font="Helvetica"/>
-            <afp-raster-font size="24" characterset="C0H200N0" base14-font="Helvetica"/>
-            <afp-raster-font size="30" characterset="C0H200T0" base14-font="Helvetica"/>
-            <afp-raster-font size="36" characterset="C0H200Z0" base14-font="Helvetica"/>
-          </afp-font>
-          <font-triplet name="Helvetica" style="normal" weight="normal"/>
-          <font-triplet name="Arial" style="normal" weight="normal"/>
-          <font-triplet name="sans-serif" style="normal" weight="normal"/>
-          <font-triplet name="any" style="normal" weight="normal"/>
-        </font>
-
-        <!-- Helvetica Italic -->
-        <font>
-          <afp-font name="Helvetica Italic" type="raster" codepage="T1V10500" encoding="Cp500">
-            <afp-raster-font size="6" characterset="C0H30060" base14-font="HelveticaOblique"/>
-            <afp-raster-font size="7" characterset="C0H30070" base14-font="HelveticaOblique"/>
-            <afp-raster-font size="8" characterset="C0H30080" base14-font="HelveticaOblique"/>
-            <afp-raster-font size="9" characterset="C0H30090" base14-font="HelveticaOblique"/>
-            <afp-raster-font size="10" characterset="C0H30000" base14-font="HelveticaOblique"/>
-            <afp-raster-font size="11" characterset="C0H300A0" base14-font="HelveticaOblique"/>
-            <afp-raster-font size="12" characterset="C0H300B0" base14-font="HelveticaOblique"/>
-            <afp-raster-font size="14" characterset="C0H300D0" base14-font="HelveticaOblique"/>
-            <afp-raster-font size="16" characterset="C0H300F0" base14-font="HelveticaOblique"/>
-            <afp-raster-font size="18" characterset="C0H300H0" base14-font="HelveticaOblique"/>
-            <afp-raster-font size="20" characterset="C0H300J0" base14-font="HelveticaOblique"/>
-            <afp-raster-font size="24" characterset="C0H300N0" base14-font="HelveticaOblique"/>
-            <afp-raster-font size="30" characterset="C0H300T0" base14-font="HelveticaOblique"/>
-            <afp-raster-font size="36" characterset="C0H300Z0" base14-font="HelveticaOblique"/>
-          </afp-font>
-          <font-triplet name="Helvetica" style="italic" weight="normal"/>
-          <font-triplet name="Arial" style="italic" weight="normal"/>
-          <font-triplet name="sans-serif" style="italic" weight="normal"/>
-        </font>
-
-        <!-- Helvetica (Semi) Bold -->
-        <font>
-          <afp-font name="Helvetica (Semi) Bold" type="raster" codepage="T1V10500" encoding="Cp500">
-            <afp-raster-font size="6" characterset="C0H40060" base14-font="HelveticaBold"/>
-            <afp-raster-font size="7" characterset="C0H40070" base14-font="HelveticaBold"/>
-            <afp-raster-font size="8" characterset="C0H40080" base14-font="HelveticaBold"/>
-            <afp-raster-font size="9" characterset="C0H40090" base14-font="HelveticaBold"/>
-            <afp-raster-font size="10" characterset="C0H40000" base14-font="HelveticaBold"/>
-            <afp-raster-font size="11" characterset="C0H400A0" base14-font="HelveticaBold"/>
-            <afp-raster-font size="12" characterset="C0H400B0" base14-font="HelveticaBold"/>
-            <afp-raster-font size="14" characterset="C0H400D0" base14-font="HelveticaBold"/>
-            <afp-raster-font size="16" characterset="C0H400F0" base14-font="HelveticaBold"/>
-            <afp-raster-font size="18" characterset="C0H400H0" base14-font="HelveticaBold"/>
-            <afp-raster-font size="20" characterset="C0H400J0" base14-font="HelveticaBold"/>
-            <afp-raster-font size="24" characterset="C0H400N0" base14-font="HelveticaBold"/>
-            <afp-raster-font size="30" characterset="C0H400T0" base14-font="HelveticaBold"/>
-            <afp-raster-font size="36" characterset="C0H400Z0" base14-font="HelveticaBold"/>
-          </afp-font>
-          <font-triplet name="Helvetica" style="normal" weight="bold"/>
-          <font-triplet name="Arial" style="normal" weight="bold"/>
-          <font-triplet name="sans-serif" style="normal" weight="bold"/>
-        </font>
-
-        <!-- Helvetica Italic (Semi) Bold -->
-        <font>
-          <afp-font name="Helvetica Italic (Semi) Bold" type="raster" codepage="T1V10500" encoding="Cp500">
-            <afp-raster-font size="6" characterset="C0H50060" base14-font="HelveticaBoldOblique"/>
-            <afp-raster-font size="7" characterset="C0H50070" base14-font="HelveticaBoldOblique"/>
-            <afp-raster-font size="8" characterset="C0H50080" base14-font="HelveticaBoldOblique"/>
-            <afp-raster-font size="9" characterset="C0H50090" base14-font="HelveticaBoldOblique"/>
-            <afp-raster-font size="10" characterset="C0H50000" base14-font="HelveticaBoldOblique"/>
-            <afp-raster-font size="11" characterset="C0H500A0" base14-font="HelveticaBoldOblique"/>
-            <afp-raster-font size="12" characterset="C0H500B0" base14-font="HelveticaBoldOblique"/>
-            <afp-raster-font size="14" characterset="C0H500D0" base14-font="HelveticaBoldOblique"/>
-            <afp-raster-font size="16" characterset="C0H500F0" base14-font="HelveticaBoldOblique"/>
-            <afp-raster-font size="18" characterset="C0H500H0" base14-font="HelveticaBoldOblique"/>
-            <afp-raster-font size="20" characterset="C0H500J0" base14-font="HelveticaBoldOblique"/>
-            <afp-raster-font size="24" characterset="C0H500N0" base14-font="HelveticaBoldOblique"/>
-            <afp-raster-font size="30" characterset="C0H500T0" base14-font="HelveticaBoldOblique"/>
-            <afp-raster-font size="36" characterset="C0H500Z0" base14-font="HelveticaBoldOblique"/>
-          </afp-font>
-          <font-triplet name="Helvetica" style="italic" weight="bold"/>
-          <font-triplet name="Arial" style="italic" weight="bold"/>
-          <font-triplet name="sans-serif" style="italic" weight="bold"/>
-        </font>
-
-        <!-- Courier -->
-        <font>
-          <afp-font name="Courier" type="raster" codepage="T1V10500" encoding="Cp500">
-            <afp-raster-font size="6" characterset="C0420060" base14-font="Courier"/>
-            <afp-raster-font size="7" characterset="C0420070" base14-font="Courier"/>
-            <afp-raster-font size="8" characterset="C0420080" base14-font="Courier"/>
-            <afp-raster-font size="9" characterset="C0420090" base14-font="Courier"/>
-            <afp-raster-font size="10" characterset="C0420000" base14-font="Courier"/>
-            <afp-raster-font size="11" characterset="C04200A0" base14-font="Courier"/>
-            <afp-raster-font size="12" characterset="C04200B0" base14-font="Courier"/>
-            <afp-raster-font size="14" characterset="C04200D0" base14-font="Courier"/>
-            <afp-raster-font size="16" characterset="C04200F0" base14-font="Courier"/>
-            <afp-raster-font size="18" characterset="C04200H0" base14-font="Courier"/>
-            <afp-raster-font size="20" characterset="C04200J0" base14-font="Courier"/>
-            <afp-raster-font size="24" characterset="C04200N0" base14-font="Courier"/>
-            <afp-raster-font size="30" characterset="C04200T0" base14-font="Courier"/>
-            <afp-raster-font size="36" characterset="C04200Z0" base14-font="Courier"/>
-          </afp-font>
-          <font-triplet name="Courier" style="normal" weight="normal"/>
-          <font-triplet name="monospace" style="normal" weight="normal"/>
-        </font>
-
-        <!-- Courier Italic -->
-        <font>
-          <afp-font name="Courier Italic" type="raster" codepage="T1V10500" encoding="Cp500">
-            <afp-raster-font size="6" characterset="C0430060" base14-font="CourierOblique"/>
-            <afp-raster-font size="7" characterset="C0430070" base14-font="CourierOblique"/>
-            <afp-raster-font size="8" characterset="C0430080" base14-font="CourierOblique"/>
-            <afp-raster-font size="9" characterset="C0430090" base14-font="CourierOblique"/>
-            <afp-raster-font size="10" characterset="C0430000" base14-font="CourierOblique"/>
-            <afp-raster-font size="11" characterset="C04300A0" base14-font="CourierOblique"/>
-            <afp-raster-font size="12" characterset="C04300B0" base14-font="CourierOblique"/>
-            <afp-raster-font size="14" characterset="C04300D0" base14-font="CourierOblique"/>
-            <afp-raster-font size="16" characterset="C04300F0" base14-font="CourierOblique"/>
-            <afp-raster-font size="18" characterset="C04300H0" base14-font="CourierOblique"/>
-            <afp-raster-font size="20" characterset="C04300J0" base14-font="CourierOblique"/>
-            <afp-raster-font size="24" characterset="C04300N0" base14-font="CourierOblique"/>
-            <afp-raster-font size="30" characterset="C04300T0" base14-font="CourierOblique"/>
-            <afp-raster-font size="36" characterset="C04300Z0" base14-font="CourierOblique"/>
-          </afp-font>
-          <font-triplet name="Courier" style="italic" weight="normal"/>
-          <font-triplet name="monospace" style="italic" weight="normal"/>
-        </font>
-
-        <!-- Courier Bold -->
-        <font>
-          <afp-font name="Courier Bold" type="raster" codepage="T1V10500" encoding="Cp500">
-            <afp-raster-font size="6" characterset="C0440060" base14-font="CourierBold"/>
-            <afp-raster-font size="7" characterset="C0440070" base14-font="CourierBold"/>
-            <afp-raster-font size="8" characterset="C0440080" base14-font="CourierBold"/>
-            <afp-raster-font size="9" characterset="C0440090" base14-font="CourierBold"/>
-            <afp-raster-font size="10" characterset="C0440000" base14-font="CourierBold"/>
-            <afp-raster-font size="11" characterset="C04400A0" base14-font="CourierBold"/>
-            <afp-raster-font size="12" characterset="C04400B0" base14-font="CourierBold"/>
-            <afp-raster-font size="14" characterset="C04400D0" base14-font="CourierBold"/>
-            <afp-raster-font size="16" characterset="C04400F0" base14-font="CourierBold"/>
-            <afp-raster-font size="18" characterset="C04400H0" base14-font="CourierBold"/>
-            <afp-raster-font size="20" characterset="C04400J0" base14-font="CourierBold"/>
-            <afp-raster-font size="24" characterset="C04400N0" base14-font="CourierBold"/>
-            <afp-raster-font size="30" characterset="C04400T0" base14-font="CourierBold"/>
-            <afp-raster-font size="36" characterset="C04400Z0" base14-font="CourierBold"/>
-          </afp-font>
-          <font-triplet name="Courier" style="normal" weight="bold"/>
-          <font-triplet name="monospace" style="normal" weight="bold"/>
-        </font>
-
-        <!-- Courier Italic Bold -->
-        <font>
-          <afp-font name="Courier Italic Bold" type="raster" codepage="T1V10500" encoding="Cp500">
-            <afp-raster-font size="6" characterset="C0450060" base14-font="CourierBoldOblique"/>
-            <afp-raster-font size="7" characterset="C0450070" base14-font="CourierBoldOblique"/>
-            <afp-raster-font size="8" characterset="C0450080" base14-font="CourierBoldOblique"/>
-            <afp-raster-font size="9" characterset="C0450090" base14-font="CourierBoldOblique"/>
-            <afp-raster-font size="10" characterset="C0450000" base14-font="CourierBoldOblique"/>
-            <afp-raster-font size="11" characterset="C04500A0" base14-font="CourierBoldOblique"/>
-            <afp-raster-font size="12" characterset="C04500B0" base14-font="CourierBoldOblique"/>
-            <afp-raster-font size="14" characterset="C04500D0" base14-font="CourierBoldOblique"/>
-            <afp-raster-font size="16" characterset="C04500F0" base14-font="CourierBoldOblique"/>
-            <afp-raster-font size="18" characterset="C04500H0" base14-font="CourierBoldOblique"/>
-            <afp-raster-font size="20" characterset="C04500J0" base14-font="CourierBoldOblique"/>
-            <afp-raster-font size="24" characterset="C04500N0" base14-font="CourierBoldOblique"/>
-            <afp-raster-font size="30" characterset="C04500T0" base14-font="CourierBoldOblique"/>
-            <afp-raster-font size="36" characterset="C04500Z0" base14-font="CourierBoldOblique"/>
-          </afp-font>
-          <font-triplet name="Courier" style="italic" weight="bold"/>
-          <font-triplet name="monospace" style="italic" weight="bold"/>
-        </font>
-        
-         <!-- 
-        Configure double-byte (CID Keyed font (Type 0)) AFP fonts with type="CIDKeyed".  
-        
-        example:
-         <font>
-                <afp-font type="CIDKeyed" encoding="UnicodeBigUnmarked"  
-                codepage="T1120000" characterset="CZJHMNU" 
-                base-uri="fonts" />
-                <font-triplet name="J-Heisei Mincho" style="normal" weight="normal" />
-         </font>
-        -->
-        
-        
-      </fonts>
-    </renderer>
-
-    <renderer mime="application/postscript">
-      <!-- This option forces the PS renderer to rotate landscape pages -->
-      <!--auto-rotate-landscape>true</auto-rotate-landscape-->
-      
-      <!-- This option lets you specify additional options on an XML handler -->
-      <!--xml-handler namespace="http://www.w3.org/2000/svg">
-        <stroke-text>false</stroke-text>
-      </xml-handler-->
-    </renderer>
-
-    <renderer mime="application/vnd.hp-PCL">
-    </renderer>
-
-    <!-- MIF does not have a renderer
-    <renderer mime="application/vnd.mif">
-    </renderer>
-    -->
-
-    <renderer mime="image/svg+xml">
-      <format type="paginated"/>
-      <link value="true"/>
-      <strokeText value="false"/>
-    </renderer>
-
-    <renderer mime="application/awt">
-    </renderer>
-
-    <renderer mime="image/png">
-      <!--transparent-page-background>true</transparent-page-background-->
-    </renderer>
-
-    <renderer mime="image/tiff">
-      <!--transparent-page-background>true</transparent-page-background-->
-      <!--compression>CCITT T.6</compression-->
-    </renderer>
-
-    <renderer mime="text/xml">
-    </renderer>
-
-    <!-- RTF does not have a renderer
-    <renderer mime="text/rtf">
-    </renderer>
-    -->
-
-  </renderers>
-
-</fop>
\ No newline at end of file
diff --git a/api/api-referential/referential-internal/src/main/resources/fop/probativevaluereport.xsl b/api/api-referential/referential-internal/src/main/resources/fop/probativevaluereport.xsl
deleted file mode 100644
index 277f9c66..00000000
--- a/api/api-referential/referential-internal/src/main/resources/fop/probativevaluereport.xsl
+++ /dev/null
@@ -1,603 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.1"
-	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-	xmlns:fo="http://www.w3.org/1999/XSL/Format"
-	exclude-result-prefixes="fo">
-	<xsl:output method="xml" version="1.0"
-		omit-xml-declaration="no" indent="yes" />
-	<xsl:param name="versionParam" select="'1.0'" />
-	
-	<!-- ========================= -->
-	<!-- root element: report -->
-	<!-- ========================= -->
-	
-	<xsl:template match="report">
-		<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
-			<fo:layout-master-set>
-				<fo:simple-page-master master-name="simpleA4"
-					page-height="29.7cm" page-width="21cm" margin-top="3cm"
-					margin-bottom="3cm" margin-left="2cm" margin-right="2cm"
-					font-size="14pt">
-					<fo:region-body margin-bottom="2cm" margin-top="2cm"/>
-					<fo:region-before region-name="xsl-region-before" extent="2cm" />
-					<fo:region-after region-name="xsl-region-after" extent="2cm" />
-				</fo:simple-page-master>
-			</fo:layout-master-set>
-			<fo:page-sequence master-reference="simpleA4">
-				<xsl:call-template name="globalHeader" />
-				<xsl:call-template name="globalFooter" />
-				<fo:flow flow-name="xsl-region-body">
-					<xsl:apply-templates select="operationSummary" />
-					<xsl:apply-templates select="reportSummary" />
-				</fo:flow>
-			</fo:page-sequence>
-			<fo:page-sequence master-reference="simpleA4">
-				<xsl:call-template name="globalHeader" />
-				<xsl:call-template name="globalFooter" />
-				<fo:flow flow-name="xsl-region-body">
-					<xsl:apply-templates select="context" />
-				</fo:flow>
-			</fo:page-sequence>
-			<xsl:apply-templates select="reportEntries/reportEntries" />
-		</fo:root>
-	</xsl:template>
-	
-	<xsl:template name="globalHeader">
-		<fo:static-content flow-name="xsl-region-before">
-			<fo:block font-size="20pt" font-weight="bold" text-align="center" border-width="1pt" border-style="solid" padding-top="10pt" padding-bottom="8pt">
-				RELEVE DE VALEUR PROBANTE
-			</fo:block>
-		</fo:static-content>
-	</xsl:template>
-	
-	<xsl:template name="globalFooter">
-		<fo:static-content flow-name="xsl-region-after">
-			<fo:block text-align="end">Page <fo:page-number/> / <fo:page-number-citation ref-id="TheVeryLastPage"/> </fo:block>
-		</fo:static-content>
-	</xsl:template>
-
-	<xsl:template match="operationSummary">
-
-		<fo:block font-size="16pt" font-weight="bold" padding-top="40pt">== RESUME DE L'OPERATION ==</fo:block>
-		<fo:table border-width="1pt" border-style="none">
-		
-			<fo:table-column column-width="5.5cm" />
-			<fo:table-column />
-
-			<fo:table-body>
-				<fo:table-row>
-					<fo:table-cell padding-top="20pt">
-						<fo:block>Tenant</fo:block>
-					</fo:table-cell>
-					<fo:table-cell padding-top="20pt">
-						<fo:block>
-							<xsl:value-of select="tenant" />
-						</fo:block>
-					</fo:table-cell>
-				</fo:table-row>
-				<fo:table-row>
-					<fo:table-cell padding-top="5pt">
-						<fo:block>Identifiant de l'opération</fo:block>
-					</fo:table-cell>
-					<fo:table-cell padding-top="5pt">
-						<fo:block>
-							<xsl:value-of select="evId" />
-						</fo:block>
-					</fo:table-cell>
-				</fo:table-row>
-				<fo:table-row>
-					<fo:table-cell padding-top="5pt">
-						<fo:block>Type d'opération</fo:block>
-					</fo:table-cell>
-					<fo:table-cell padding-top="5pt">
-						<fo:block>
-							<xsl:value-of select="evType" />
-						</fo:block>
-					</fo:table-cell>
-				</fo:table-row>
-				<fo:table-row>
-					<fo:table-cell padding-top="5pt">
-						<fo:block>Statut</fo:block>
-					</fo:table-cell>
-					<fo:table-cell padding-top="5pt">
-						<fo:block>
-							<xsl:value-of select="outcome" />
-						</fo:block>
-					</fo:table-cell>
-				</fo:table-row>
-				<fo:table-row>
-					<fo:table-cell padding-top="5pt">
-						<fo:block>Détail</fo:block>
-					</fo:table-cell>
-					<fo:table-cell padding-top="5pt">
-						<fo:block>
-							<xsl:value-of select="outDetail" />
-						</fo:block>
-					</fo:table-cell>
-				</fo:table-row>
-				<fo:table-row>
-					<fo:table-cell padding-top="5pt">
-						<fo:block>Message</fo:block>
-					</fo:table-cell>
-					<fo:table-cell padding-top="5pt">
-						<fo:block>
-							<xsl:value-of select="outMsg" />
-						</fo:block>
-					</fo:table-cell>
-				</fo:table-row>
-			</fo:table-body>
-
-		</fo:table>
-		
-	</xsl:template>
-
-	<xsl:template match="reportSummary">
-
-		<fo:block font-size="16pt" font-weight="bold" padding-top="40pt">== RESUME DU RAPPORT ==</fo:block>
-		<fo:table border-width="1pt" border-style="none">
-		
-			<fo:table-column column-width="5.5cm" />
-			<fo:table-column />
-
-			<fo:table-body>
-				<fo:table-row>
-					<fo:table-cell padding-top="20pt">
-						<fo:block>Début</fo:block>
-					</fo:table-cell>
-					<fo:table-cell padding-top="20pt">
-						<fo:block>
-							<xsl:value-of select="evStartDateTime" />
-						</fo:block>
-					</fo:table-cell>
-				</fo:table-row>
-				<fo:table-row>
-					<fo:table-cell padding-top="5pt">
-						<fo:block>Fin</fo:block>
-					</fo:table-cell>
-					<fo:table-cell padding-top="5pt">
-						<fo:block>
-							<xsl:value-of select="evEndDateTime" />
-						</fo:block>
-					</fo:table-cell>
-				</fo:table-row>
-				<fo:table-row>
-					<fo:table-cell padding-top="5pt">
-						<fo:block>Type</fo:block>
-					</fo:table-cell>
-					<fo:table-cell padding-top="5pt">
-						<fo:block>
-							<xsl:value-of select="reportType" />
-						</fo:block>
-					</fo:table-cell>
-				</fo:table-row>
-				<xsl:apply-templates select="vitamResults" />
-			</fo:table-body>
-
-		</fo:table>
-
-	</xsl:template>
-
-	<xsl:template match="vitamResults">
-		<fo:table-row>
-			<fo:table-cell number-columns-spanned="2"
-				padding-top="10pt">
-				<fo:block>Résultats</fo:block>
-			</fo:table-cell>
-		</fo:table-row>
-		<fo:table-row>
-			<fo:table-cell padding-left="20pt" padding-top="10pt">
-				<fo:block>Succès</fo:block>
-			</fo:table-cell>
-			<fo:table-cell padding-top="10pt">
-				<fo:block>
-					<xsl:value-of select="OK" />
-				</fo:block>
-			</fo:table-cell>
-		</fo:table-row>
-		<fo:table-row>
-			<fo:table-cell padding-left="20pt" padding-top="5pt">
-				<fo:block>Erreurs</fo:block>
-			</fo:table-cell>
-			<fo:table-cell padding-top="5pt">
-				<fo:block>
-					<xsl:value-of select="KO" />
-				</fo:block>
-			</fo:table-cell>
-		</fo:table-row>
-		<fo:table-row>
-			<fo:table-cell padding-left="20pt" padding-top="5pt">
-				<fo:block>Avertissements</fo:block>
-			</fo:table-cell>
-			<fo:table-cell padding-top="5pt">
-				<fo:block>
-					<xsl:value-of select="WARNING" />
-				</fo:block>
-			</fo:table-cell>
-		</fo:table-row>
-		<fo:table-row>
-			<fo:table-cell padding-left="20pt" font-weight="bold" padding-top="5pt">
-				<fo:block>Total</fo:block>
-			</fo:table-cell>
-			<fo:table-cell padding-top="5pt">
-				<fo:block>
-					<xsl:value-of select="total" />
-				</fo:block>
-			</fo:table-cell>
-		</fo:table-row>
-
-	</xsl:template>
-
-	<xsl:template match="context">
-
-		<fo:block font-size="16pt" font-weight="bold" padding-top="40pt">== REQUETE EFFECTUEE ==</fo:block>
-		<fo:table border-width="1pt" border-style="none">
-			<fo:table-column column-width="5.5cm" />
-			<fo:table-column />
-
-			<fo:table-body>
-				<fo:table-row>
-					<fo:table-cell padding-top="20pt">
-						<fo:block>Requête</fo:block>
-					</fo:table-cell>
-					<fo:table-cell padding-top="20pt">
-						<fo:block wrap-option="wrap">
-							<xsl:value-of select="dslQuery" />
-						</fo:block>
-					</fo:table-cell>
-				</fo:table-row>
-				<fo:table-row>
-					<fo:table-cell padding-top="10pt">
-						<fo:block>Usage</fo:block>
-					</fo:table-cell>
-					<fo:table-cell padding-top="10pt">
-						<fo:block>
-							<xsl:value-of select="usage" />
-						</fo:block>
-					</fo:table-cell>
-				</fo:table-row>
-				<fo:table-row>
-					<fo:table-cell padding-top="5pt">
-						<fo:block>Version</fo:block>
-					</fo:table-cell>
-					<fo:table-cell padding-top="5pt">
-						<fo:block>
-							<xsl:value-of select="version" />
-						</fo:block>
-					</fo:table-cell>
-				</fo:table-row>
-			</fo:table-body>
-
-		</fo:table>
-
-	</xsl:template>
-
-	<xsl:template match="reportEntries/reportEntries">
-
-		<fo:page-sequence master-reference="simpleA4">
-			<xsl:call-template name="globalHeader" />
-			<xsl:call-template name="globalFooter" />
-			
-			<fo:flow flow-name="xsl-region-body">
-				<fo:block font-size="16pt" font-weight="bold" text-align="center" border-width="1pt" border-style="none" padding-top="10pt" padding-bottom="8pt" text-decoration="underline">
-					DETAIL DU RAPPORT NUM <xsl:value-of select="position()"/>
-				</fo:block>
-				<xsl:call-template name="reportEntries_reportEntries_resume"/>
-				<xsl:call-template name="reportEntries_reportEntries_operations"/>
-				<xsl:call-template name="reportEntries_reportEntries_checks"/>
-				 <xsl:if test="position() = last()">
-					<fo:block id="TheVeryLastPage"> </fo:block>
-				</xsl:if>
-			</fo:flow>
-			
-		</fo:page-sequence>
-		
-	</xsl:template>
-
-	<xsl:template name="reportEntries_reportEntries_resume">
-
-		<fo:block font-size="16pt" font-weight="bold" padding-top="40pt">== RESUME ==</fo:block>
-		
-		<fo:block padding-top="10pt">Unités archivistiques analysées</fo:block>
-		<fo:list-block>
-			<xsl:for-each select="unitIdWithLabels/unitIdWithLabels">
-				<fo:list-item>
-					<fo:list-item-label start-indent="0.5cm">
-						<fo:block font-weight="bold"> • </fo:block>
-					</fo:list-item-label>
-					<fo:list-item-body start-indent="1.0cm">
-						<fo:block space-after.optimum="14pt">
-							<xsl:value-of select="item" /> - <xsl:value-of select="label" />
-						</fo:block>
-					</fo:list-item-body>
-				</fo:list-item>
-			</xsl:for-each>
-		</fo:list-block>
-		
-		<fo:block padding-top="10pt">Groupe d'objet analysé</fo:block>
-		<fo:list-block>
-			<fo:list-item>
-				<fo:list-item-label start-indent="0.5cm">
-					<fo:block font-weight="bold"> • </fo:block>
-				</fo:list-item-label>
-				<fo:list-item-body start-indent="1.0cm">
-					<fo:block space-after.optimum="14pt">
-						<xsl:value-of select="objectGroupId" />
-					</fo:block>
-				</fo:list-item-body>
-			</fo:list-item>
-		</fo:list-block>
-		
-		<fo:block padding-top="10pt">Objet analysé</fo:block>
-		<fo:list-block>
-			<fo:list-item>
-				<fo:list-item-label start-indent="0.5cm">
-					<fo:block font-weight="bold"> • </fo:block>
-				</fo:list-item-label>
-				<fo:list-item-body start-indent="1.0cm">
-					<fo:block space-after.optimum="14pt">
-						<xsl:value-of select="objectId" /> - <xsl:value-of select="objectLabel" />
-					</fo:block>
-				</fo:list-item-body>
-			</fo:list-item>
-		</fo:list-block>
-		
-		<fo:table border-width="1pt" border-style="none">
-			<fo:table-column column-width="5.5cm" />
-			<fo:table-column />
-
-			<fo:table-body>
-				<fo:table-row>
-					<fo:table-cell padding-top="20pt">
-						<fo:block>Usage</fo:block>
-					</fo:table-cell>
-					<fo:table-cell padding-top="20pt">
-						<fo:block>
-							<xsl:value-of select="substring-before(usageVersion, '_')" />
-						</fo:block>
-					</fo:table-cell>
-				</fo:table-row>
-				<fo:table-row>
-					<fo:table-cell padding-top="5pt">
-						<fo:block>Version</fo:block>
-					</fo:table-cell>
-					<fo:table-cell padding-top="5pt">
-						<fo:block>
-							<xsl:value-of select="substring-after(usageVersion, '_')" />
-						</fo:block>
-					</fo:table-cell>
-				</fo:table-row>
-				<fo:table-row>
-					<fo:table-cell padding-top="5pt">
-						<fo:block>Date de début d'analyse</fo:block>
-					</fo:table-cell>
-					<fo:table-cell padding-top="5pt">
-						<fo:block>
-							<xsl:value-of select="evStartDateTime" />
-						</fo:block>
-					</fo:table-cell>
-				</fo:table-row>
-				<fo:table-row>
-					<fo:table-cell padding-top="5pt">
-						<fo:block>Date de fin d'analyse</fo:block>
-					</fo:table-cell>
-					<fo:table-cell padding-top="5pt">
-						<fo:block>
-							<xsl:value-of select="evEndDateTime" />
-						</fo:block>
-					</fo:table-cell>
-				</fo:table-row>
-				<fo:table-row>
-					<fo:table-cell padding-top="5pt">
-						<fo:block>Status</fo:block>
-					</fo:table-cell>
-					<fo:table-cell padding-top="5pt">
-						<fo:block>
-							<xsl:value-of select="status" />
-						</fo:block>
-					</fo:table-cell>
-				</fo:table-row>
-				<fo:table-row>
-					<fo:table-cell padding-top="5pt">
-						<fo:block>Version du rapport</fo:block>
-					</fo:table-cell>
-					<fo:table-cell padding-top="5pt">
-						<fo:block>
-					<xsl:value-of select="../../ReportVersion"/>
-						</fo:block>
-					</fo:table-cell>
-				</fo:table-row>
-			</fo:table-body>
-		</fo:table>
-
-	</xsl:template>
-
-	<xsl:template name="reportEntries_reportEntries_operations">
-
-		<fo:block font-size="16pt" font-weight="bold" padding-top="40pt" padding-bottom="20pt">== OPERATIONS ==</fo:block>
-	
-		<fo:table border-width="1pt" border-style="solid" font-size="8pt">
-			<fo:table-column column-width="6cm" border-width="1pt" border-style="solid"/>
-			<fo:table-column column-width="4cm" border-width="1pt" border-style="solid"/>
-			<fo:table-column border-width="1pt" border-style="solid"/>
-		
-			<fo:table-header>
-				<fo:table-cell>
-					<fo:block font-weight="bold" padding-top="5pt" padding-bottom="5pt" text-align="center">Id</fo:block>
-				</fo:table-cell>
-				<fo:table-cell>
-					<fo:block font-weight="bold" padding-top="5pt" padding-bottom="5pt" text-align="center">Date</fo:block>
-				</fo:table-cell>
-				<fo:table-cell>
-					<fo:block font-weight="bold" padding-top="5pt" padding-bottom="5pt" text-align="center">Détail</fo:block>
-				</fo:table-cell>
-			</fo:table-header>
-		
-			<fo:table-body>
-				<xsl:apply-templates select="operations/operations" />
-			</fo:table-body>
-		</fo:table>
-	
-	
-	</xsl:template>
-	
-	<xsl:template match="operations/operations">
-		<fo:table-row border-width="1pt" border-style="solid" margin="2pt">
-			<fo:table-cell padding-top="5pt">
-				<fo:block>
-					<xsl:value-of select="id" />
-				</fo:block>
-			</fo:table-cell>
-			<fo:table-cell padding-top="5pt">
-				<fo:block>
-					<xsl:value-of select="evDateTime" />
-				</fo:block>
-			</fo:table-cell>
-			<fo:table-cell padding-top="5pt">
-				<fo:block>
-					Type : <xsl:value-of select="evTypeProc" />
-				</fo:block>
-				<xsl:if test="agIdApp != ''">
-					<fo:block>
-						Contexte applicatif : <xsl:value-of select="agIdApp" />
-					</fo:block>
-				</xsl:if>
-				<xsl:template match="rightsStatementIdentifier"/>
-			</fo:table-cell>
-		</fo:table-row>
-	</xsl:template>
-	
-	<xsl:template match="rightsStatementIdentifier">
-		<xsl:if test="ArchivalAgreement != ''">
-			<fo:block>
-				ArchivalAgreement : <xsl:value-of select="ArchivalAgreement" />
-			</fo:block>
-		</xsl:if>
-		<xsl:if test="Profil != ''">
-			<fo:block>
-				Profil : <xsl:value-of select="Profil" />
-			</fo:block>
-		</xsl:if>
-		<xsl:if test="AccessContract != ''">
-			<fo:block>
-				Contrat d'accès : <xsl:value-of select="AccessContract" />
-			</fo:block>
-		</xsl:if>
-	</xsl:template>
-
-	<xsl:template name="reportEntries_reportEntries_checks">
-
-		<fo:block font-size="16pt" font-weight="bold" padding-top="40pt">== VERIFICATIONS ==</fo:block>
-		<xsl:apply-templates select="checks/checks" />
-	
-	</xsl:template>
-
-	
-	<xsl:template match="checks/checks">
-		<fo:block font-size="12pt" font-weight="bold" padding-top="20pt">
-			<xsl:if test="nameLabel != ''"><xsl:value-of select="nameLabel" /> - </xsl:if><xsl:value-of select="name" />
-		</fo:block>
-		<fo:table border-width="1pt" border-style="none">
-			<fo:table-column column-width="4cm" />
-			<fo:table-column />
-
-			<fo:table-body>
-				<fo:table-row>
-					<fo:table-cell padding-top="10pt">
-						<fo:block>Libellé explicite</fo:block>
-					</fo:table-cell>
-					<fo:table-cell padding-top="10pt">
-						<fo:block>
-							<xsl:value-of select="details" />
-						</fo:block>
-					</fo:table-cell>
-				</fo:table-row>
-				<fo:table-row>
-					<fo:table-cell padding-top="5pt">
-						<fo:block>Type</fo:block>
-					</fo:table-cell>
-					<fo:table-cell padding-top="5pt">
-						<fo:block>
-							<xsl:value-of select="type" />
-						</fo:block>
-					</fo:table-cell>
-				</fo:table-row>
-				<fo:table-row>
-					<fo:table-cell padding-top="5pt">
-						<fo:block>Source</fo:block>
-					</fo:table-cell>
-					<fo:table-cell padding-top="5pt">
-						<fo:block>
-							<xsl:value-of select="source" />
-						</fo:block>
-					</fo:table-cell>
-				</fo:table-row>
-				<fo:table-row>
-					<fo:table-cell padding-top="5pt">
-						<fo:block>Destination</fo:block>
-					</fo:table-cell>
-					<fo:table-cell padding-top="5pt">
-						<fo:block>
-							<xsl:value-of select="destination" />
-						</fo:block>
-					</fo:table-cell>
-				</fo:table-row>
-				<fo:table-row>
-					<fo:table-cell padding-top="5pt">
-						<fo:block>Action</fo:block>
-					</fo:table-cell>
-					<fo:table-cell padding-top="5pt">
-						<fo:block>
-							<xsl:value-of select="action" />
-						</fo:block>
-					</fo:table-cell>
-				</fo:table-row>
-				<fo:table-row>
-					<fo:table-cell padding-top="5pt">
-						<fo:block>Item</fo:block>
-					</fo:table-cell>
-					<fo:table-cell padding-top="5pt">
-						<fo:block>
-							<xsl:value-of select="item" />
-						</fo:block>
-					</fo:table-cell>
-				</fo:table-row>
-				<fo:table-row>
-					<fo:table-cell padding-top="5pt">
-						<fo:block>Status</fo:block>
-					</fo:table-cell>
-					<fo:table-cell padding-top="5pt">
-						<fo:block>
-							<xsl:value-of select="status" />
-						</fo:block>
-					</fo:table-cell>
-				</fo:table-row>
-				<fo:table-row>
-					<fo:table-cell padding-top="5pt" number-columns-spanned="2">
-						<fo:block>Source comparable</fo:block>
-					</fo:table-cell>
-				</fo:table-row>
-				<fo:table-row>
-					<fo:table-cell padding-left="20pt" padding-top="5pt" number-columns-spanned="2">
-						<fo:block>
-							<xsl:value-of select="sourceComparable" />
-						</fo:block>
-					</fo:table-cell>
-				</fo:table-row>
-				<fo:table-row>
-					<fo:table-cell padding-top="5pt" number-columns-spanned="2">
-						<fo:block>Destination comparable</fo:block>
-					</fo:table-cell>
-				</fo:table-row>
-				<fo:table-row>
-					<fo:table-cell padding-left="20pt" padding-top="5pt" number-columns-spanned="2">
-						<fo:block >
-							<xsl:value-of select="destinationComparable" />
-						</fo:block>
-					</fo:table-cell>
-				</fo:table-row>
-			</fo:table-body>
-		</fo:table>
-		
-	</xsl:template>
-
-</xsl:stylesheet>
diff --git a/api/api-referential/referential-internal/src/main/resources/templates/probativevaluereport.ftl.odt b/api/api-referential/referential-internal/src/main/resources/templates/probativevaluereport.ftl.odt
new file mode 100644
index 0000000000000000000000000000000000000000..c48a7319a7a3a9e8d5965efc76c053bcd9f278e8
GIT binary patch
literal 18282
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
Q(&t~<=g3ti`1|hv03^uuA^-pY

literal 0
HcmV?d00001

diff --git a/api/api-referential/referential-internal/src/test/java/fr/gouv/vitamui/referential/internal/server/probativevalue/ProbativeValueInternalServiceTest.java b/api/api-referential/referential-internal/src/test/java/fr/gouv/vitamui/referential/internal/server/probativevalue/ProbativeValueInternalServiceTest.java
index 4fbeb1c4..f10b40fe 100644
--- a/api/api-referential/referential-internal/src/test/java/fr/gouv/vitamui/referential/internal/server/probativevalue/ProbativeValueInternalServiceTest.java
+++ b/api/api-referential/referential-internal/src/test/java/fr/gouv/vitamui/referential/internal/server/probativevalue/ProbativeValueInternalServiceTest.java
@@ -37,7 +37,6 @@
 package fr.gouv.vitamui.referential.internal.server.probativevalue;
 
 import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.assertFalse;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.when;
@@ -95,8 +94,8 @@ public class ProbativeValueInternalServiceTest extends AbstractServerIdentityBui
 	}
 
 	@Test
-	public void testCreateOK() throws JsonParseException, JsonMappingException, VitamClientException, IOException,
-			InvalidParseOperationException {
+	public void shoudl_generate_report_on_probativereport() throws JsonParseException, JsonMappingException,
+			VitamClientException, IOException, InvalidParseOperationException {
 		File workspace = this.folder.newFolder();
 		when(vitamProbativeValueService.downloadBatchReport(any(), any()))
 				.thenReturn(buildVitamProbativeReport("data/provative_report_WARNING.json"));
@@ -124,13 +123,11 @@ public class ProbativeValueInternalServiceTest extends AbstractServerIdentityBui
 		assertTrue(json.exists());
 		File pdf = new File(workspace.getAbsolutePath(), operationId + ".pdf");
 		assertTrue(pdf.exists());
-		File xml = new File(workspace.getAbsolutePath(), operationId + ".xml");
-		assertFalse(xml.exists());
 	}
 
 	@Test
-	public void testCreateMultipleEntriesOK() throws JsonParseException, JsonMappingException, VitamClientException,
-			IOException, InvalidParseOperationException {
+	public void shoudl_generate_report_on_probativereport_multiple_entries() throws JsonParseException,
+			JsonMappingException, VitamClientException, IOException, InvalidParseOperationException {
 		File workspace = this.folder.newFolder();
 		when(vitamProbativeValueService.downloadBatchReport(any(), any()))
 				.thenReturn(buildVitamProbativeReport("data/provative_report_WARNING_multiple_entries.json"));
@@ -159,14 +156,43 @@ public class ProbativeValueInternalServiceTest extends AbstractServerIdentityBui
 		assertTrue(Files.exists(zipJsonFile));
 		Path zipPdfFile = zipFs.getPath(operationId + ".pdf");
 		assertTrue(Files.exists(zipPdfFile));
-		
 
 		File json = new File(workspace.getAbsolutePath(), operationId + ".json");
 		assertTrue(json.exists());
 		File pdf = new File(workspace.getAbsolutePath(), operationId + ".pdf");
 		assertTrue(pdf.exists());
-		File xml = new File(workspace.getAbsolutePath(), operationId + ".xml");
-		assertFalse(xml.exists());
+	}
+
+	@Test
+	public void shoudl_generate_report_on_probativereport_ko() throws JsonParseException, JsonMappingException,
+			VitamClientException, IOException, InvalidParseOperationException {
+		File workspace = this.folder.newFolder();
+		when(vitamProbativeValueService.downloadBatchReport(any(), any()))
+				.thenReturn(buildVitamProbativeReport("data/provative_report_KO.json"));
+		when(unitService.getByIdIn(any(), any()))
+				.thenReturn(buildVitamUISearchResponseDto("data/vitam_units_response_ko.json"));
+		when(unitService.findObjectMetadataById(any(), any()))
+				.thenReturn(buildGotMetadataResponse("data/vitam_got_metadatas_response_ko.json"));
+		VitamContext vitamContext = new VitamContext(0);
+		String operationId = "Test_KO";
+
+		File zip = new File(workspace.getAbsolutePath(), operationId + ".zip");
+		FileOutputStream zipOutputStream = new FileOutputStream(zip);
+		probativeValueInternalService.exportReport(vitamContext, operationId, workspace.getAbsolutePath(),
+				zipOutputStream);
+		zipOutputStream.close();
+
+		assertTrue(zip.exists());
+		FileSystem zipFs = FileSystems.newFileSystem(zip.toPath(), null);
+		Path zipJsonFile = zipFs.getPath(operationId + ".json");
+		assertTrue(Files.exists(zipJsonFile));
+		Path zipPdfFile = zipFs.getPath(operationId + ".pdf");
+		assertTrue(Files.exists(zipPdfFile));
+
+		File json = new File(workspace.getAbsolutePath(), operationId + ".json");
+		assertTrue(json.exists());
+		File pdf = new File(workspace.getAbsolutePath(), operationId + ".pdf");
+		assertTrue(pdf.exists());
 	}
 
 	private InputStream buildVitamProbativeReport(String filename)
diff --git a/api/api-referential/referential-internal/src/test/resources/data/provative_report_KO.json b/api/api-referential/referential-internal/src/test/resources/data/provative_report_KO.json
new file mode 100644
index 00000000..e0054bd0
--- /dev/null
+++ b/api/api-referential/referential-internal/src/test/resources/data/provative_report_KO.json
@@ -0,0 +1,51 @@
+{
+  "operationSummary" : {
+    "tenant" : 1,
+    "evId" : "aeeaaaaaage2jm63aaxh2alrpep3clqaaaaq",
+    "evType" : "EXPORT_PROBATIVE_VALUE",
+    "outcome" : "KO",
+    "outDetail" : "EXPORT_PROBATIVE_VALUE.KO",
+    "outMsg" : "!\u00C9chec du processus de cr\u00E9ation du relev\u00E9 de valeur probante!",
+    "rightsStatementIdentifier" : {
+      "AccessContract" : "bbbbbbbbbb"
+    }
+  },
+  "reportSummary" : {
+    "evStartDateTime" : "2020-04-14T14:37:32.543",
+    "evEndDateTime" : "2020-04-14T14:37:32.547",
+    "reportType" : "PROBATIVE_VALUE",
+    "vitamResults" : {
+      "OK" : 0,
+      "KO" : 1,
+      "WARNING" : 0,
+      "total" : 1
+    }
+  },
+  "context" : {
+    "dslQuery" : {
+      "$query" : [ {
+        "$or" : [ {
+          "$in" : {
+            "#id" : [ "aeaqaaaaaee2jm63ab3zkalqqxr3iyaaaaaq" ]
+          }
+        } ]
+      } ],
+      "$filter" : { },
+      "$projection" : { }
+    },
+    "usage" : "BinaryMaster",
+    "version" : "2"
+  },
+  "reportEntries" : [ {
+    "unitIds" : [ "aeaqaaaaaee2jm63ab3zkalqqxr3iyaaaaaq" ],
+    "objectGroupId" : "aebaaaaaaee2jm63ab3zkalqqxr3ioaaaaaq",
+    "objectId" : "NO_BINARY_ID",
+    "usageVersion" : "BinaryMaster_2",
+    "operations" : [ ],
+    "checks" : [ ],
+    "evStartDateTime" : "2020-04-14T14:37:32.543",
+    "evEndDateTime" : "2020-04-14T14:37:32.547",
+    "status" : "KO"
+  } ],
+  "ReportVersion" : 2
+}
\ No newline at end of file
diff --git a/api/api-referential/referential-internal/src/test/resources/data/vitam_got_metadatas_response_ko.json b/api/api-referential/referential-internal/src/test/resources/data/vitam_got_metadatas_response_ko.json
new file mode 100644
index 00000000..859ccd97
--- /dev/null
+++ b/api/api-referential/referential-internal/src/test/resources/data/vitam_got_metadatas_response_ko.json
@@ -0,0 +1,84 @@
+{
+  "httpCode": 200,
+  "$hits": {
+    "total": 1,
+    "offset": 0,
+    "limit": 0,
+    "size": 1
+  },
+  "$results": [
+    {
+      "FileInfo": {
+        "Filename": "Pereire.txt",
+        "LastModified": "2017-04-04T08:07:27.825+02:00"
+      },
+      "#id": "aebaaaaaaee2jm63ab3zkalqqxr3ioaaaaaq",
+      "#nbobjects": 1,
+      "#qualifiers": [ {
+          "qualifier": "BinaryMaster",
+          "#nbc": 1,
+          "versions": [
+            {
+              "DataObjectGroupId": "aebaaaaaaahl2zz5ab23malq4gw2cnqaaaba",
+              "DataObjectVersion": "BinaryMaster_1",
+              "FormatIdentification": {
+                "FormatLitteral": "Plain Text File",
+                "MimeType": "text/plain",
+                "FormatId": "x-fmt/111"
+              },
+              "FileInfo": {
+                "Filename": "Pereire.txt",
+                "LastModified": "2017-04-04T08:07:27.825+02:00"
+              },
+              "Size": 6,
+              "Uri": "Content/ID35.txt",
+              "MessageDigest": "664ac614a819df2a97d2a5df57dcad91d6ec38b0fffc793e80c56b4553a14ac7a5f0bce3bb71af419b0bb8f151ad3d512867454eeb818e01818a31989c13319b",
+              "Algorithm": "SHA-512",
+              "#id": "aeaaaaaaaahl2zz5ab23malq4gw2cnqaaaaq",
+              "#opi": "aeeaaaaaachf2vysaau5malrcg7nsjqaaaaq",
+              "#storage": {
+                "strategyId": "default"
+              }
+            }
+          ]
+        }],
+      "#type": "",
+      "#tenant": 0,
+      "#unitups": [
+        "Identifiantaeaqaaaaaee2jm63ab3zkalqqxr3iyaaaaaq"
+      ],
+      "#allunitups": [
+        "aeaqaaaaaahifyagaavjialq6exbzsiaaabq",
+        "aeaqaaaaaahifyagaavjialq6exbzsaaaaba",
+        "aeaqaaaaaahifyagaavjialq6exbzmyaaaba",
+        "aeaqaaaaaahifyagaavjialq6exbznyaaaba",
+        "aeaqaaaaaahifyagaavjialq6exbzoaaaaba",
+        "aeaqaaaaaahifyagaavjialq6exbznaaaaca",
+        "aeaqaaaaaahifyagaavjialq6exbzoqaaaba",
+        "aeaqaaaaaahifyagaavjialq6exbzsyaaaba",
+        "aeaqaaaaaahifyagaavjialq6exbznaaaaaq",
+        "aeaqaaaaaee2jm63ab3zkalqqxr3iyaaaaaq"
+      ],
+      "#operations": [
+        "aeeaaaaaachf2vysaau5malrcg7nsjqaaaaq"
+      ],
+      "#opi": "aeeaaaaaachf2vysaau5malrcg7nsjqaaaaq",
+      "#originating_agency": "RATP",
+      "#originating_agencies": [
+        "RATP"
+      ],
+      "#storage": {
+        "strategyId": "default"
+      },
+      "#version": 1
+    }
+  ],
+  "$facetResults": [],
+  "$context": {
+    "$roots": [],
+    "$query": [],
+    "$filter": {},
+    "$projection": {},
+    "$facets": []
+  }
+}
\ No newline at end of file
diff --git a/api/api-referential/referential-internal/src/test/resources/data/vitam_units_response_ko.json b/api/api-referential/referential-internal/src/test/resources/data/vitam_units_response_ko.json
new file mode 100644
index 00000000..b3e9942e
--- /dev/null
+++ b/api/api-referential/referential-internal/src/test/resources/data/vitam_units_response_ko.json
@@ -0,0 +1,66 @@
+{
+  "httpCode": 200,
+  "$hits": {
+    "total": 1,
+    "offset": 0,
+    "limit": 0,
+    "size": 1
+  },
+  "$results": [
+    {
+      "DescriptionLevel": "Item",
+      "Title": "Pereire.txt",
+      "Description": "Cette ArchiveUnit ne déclare aucune règle. Elle hérite de Réaumur un NeedAuthorization à true, une StorageRule avec Copy comme FinalAction, une AppraisalRule avec Keep comme FinalAction, une DisseminationRule avec DIS-00001 comme Rule et 01/01/2000 comme StartDate (venant de Réaumur), une AccessRule avec ACC-00001 comme Rule et 01/01/2000 comme FinalAction (venant de Réaumur) et une ClassificationRule avec CLASS-00001 comme Rule et 03/06/2015 comme StartDate, Confidentiel Défense pour ClassificationLevel, ClassificationOwner0 pour ClassificationOwner, ClassificationAudience0 pour ClassificationAudience, 03/06/2016 comme ClassificationReassasingDate et un NeedReassessingAuthorization à true",
+      "TransactedDate": "2017-04-04T08:07:27",
+      "#id": "Identifiantaeaqaaaaaee2jm63ab3zkalqqxr3iyaaaaaq",
+      "#tenant": 0,
+      "#object": "aebaaaaaaee2jm63ab3zkalqqxr3ioaaaaaq",
+      "#unitups": [
+        "aeaqaaaaaahifyagaavjialq6exbzoaaaaba"
+      ],
+      "#min": 1,
+      "#max": 6,
+      "#allunitups": [
+        "aeaqaaaaaahifyagaavjialq6exbzsiaaabq",
+        "aeaqaaaaaahifyagaavjialq6exbzsaaaaba",
+        "aeaqaaaaaahifyagaavjialq6exbzmyaaaba",
+        "aeaqaaaaaahifyagaavjialq6exbznyaaaba",
+        "aeaqaaaaaahifyagaavjialq6exbzoaaaaba",
+        "aeaqaaaaaahifyagaavjialq6exbznaaaaca",
+        "aeaqaaaaaahifyagaavjialq6exbzoqaaaba",
+        "aeaqaaaaaahifyagaavjialq6exbzsyaaaba",
+        "aeaqaaaaaahifyagaavjialq6exbznaaaaaq"
+      ],
+      "#management": {},
+      "#unitType": "INGEST",
+      "#operations": [
+        "aeeaaaaaace5zejuabxxcalq6exbnviaaaaq"
+      ],
+      "#opi": "aeeaaaaaace5zejuabxxcalq6exbnviaaaaq",
+      "#originating_agency": "RATP",
+      "#originating_agencies": [
+        "RATP"
+      ],
+      "#storage": {
+        "strategyId": "default"
+      },
+      "#version": 0,
+      "#sedaVersion": "2.1",
+      "#implementationVersion": "3.0.1-SNAPSHOT"
+    }
+  ],
+  "$facetResults": [],
+  "$context": {
+    "$roots": [],
+    "$query": [
+      {
+        "$in": {
+          "#id": [
+            "aeaqaaaaaahifyagaavjialq6exbzoiaaaaq"
+          ]
+        }
+      }
+    ],
+    "$projection": {}
+  }
+}
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 5d5b1462..64a82351 100644
--- a/pom.xml
+++ b/pom.xml
@@ -698,11 +698,6 @@
                 <artifactId>jackson-dataformat-csv</artifactId>
                 <version>${jackson.version}</version>
             </dependency>
-            <dependency>
-                <groupId>com.fasterxml.jackson.dataformat</groupId>
-                <artifactId>jackson-dataformat-xml</artifactId>
-                <version>${jackson.version}</version>
-            </dependency>
             <dependency>
                 <groupId>com.fasterxml.jackson.core</groupId>
                 <artifactId>jackson-databind</artifactId>
@@ -803,23 +798,6 @@
                 <artifactId>jlibs-xsd</artifactId>
                 <version>${jlibs.version}</version>
             </dependency>
-			<!-- convert to PDF -->
-            <!-- Do not reuse Apache FOP since its usage is deprecated -->
-			<dependency>
-				<groupId>org.apache.xmlgraphics</groupId>
-				<artifactId>fop</artifactId>
-				<version>2.4</version>
-                <exclusions>
-                    <exclusion>
-                        <groupId>javax.media</groupId>
-                        <artifactId>jai-core</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>com.sun.media</groupId>
-                        <artifactId>jai-codec</artifactId>
-                    </exclusion>
-                </exclusions>
-			</dependency>
 
             <!-- Test -->
             <dependency>
@@ -1830,4 +1808,3 @@
     </profiles>
 
 </project>
-
diff --git a/ui/ui-frontend/projects/referential/src/app/probative-value/probative-value-preview/probative-value-preview.component.html b/ui/ui-frontend/projects/referential/src/app/probative-value/probative-value-preview/probative-value-preview.component.html
index 9deb9bb2..5db2359b 100644
--- a/ui/ui-frontend/projects/referential/src/app/probative-value/probative-value-preview/probative-value-preview.component.html
+++ b/ui/ui-frontend/projects/referential/src/app/probative-value/probative-value-preview/probative-value-preview.component.html
@@ -12,7 +12,7 @@
         </mat-option>
       </mat-select>
     </mat-form-field>
-    <!-- <button mat-button class="btn btn-primary button-maring" (click)="downloadReport()" [disabled]="!accessContractId">Télécharger le relevé</button> -->
+    <button mat-button class="btn btn-primary button-maring" (click)="downloadReport()" [disabled]="!accessContractId">Télécharger le relevé</button>
   </div>
   <div class="vitamui-sidepanel-body">
     <mat-tab-group class="preview-tab-group">
-- 
GitLab