This page contains some examples that show how to get started when writing applications for the ECM Service.
This example shows how to create a new Saperion Client and how to use it to get the current user's ID.
ConnectorFactory connectorFactory = new EcmsClientConnectorFactory();
Map<String, String> properties = new HashMap<>();
properties.put(EcmsClientConnectorFactory.PROPERTY_ECM_SERVER_URL, "http://localhost:8080");
properties.put(EcmsClientConnectorFactory.PROPERTY_ECM_AUTHENTICATION_SERVER_URL, "http://localhost:8082");
properties.put(EcmsClientConnectorFactory.PROPERTY_ECM_AUTHENTICATION_SERVER_RSA, "true");
Connector connector = connectorFactory.newConnector(properties);
SaperionClientFactory saperionClientFactory = new SaperionClientFactoryImpl(connector);
SaperionClient saperionClient = saperionClientFactory.newClient("Username", "password", LicenseEnumeration.INDEX, "tenant");
UserManagementServiceClient userManagementService = saperionClient.getUserAdministrationService().getUserManagementService();
UserContextClient currentUserContext = userManagementService.getCurrentUserContext();
int id = currentUserContext.getUserContext().getUser().getReference().getId();
System.out.println("My ID is: " + id);
This example shows how to login with a token retrieved from a 3rd party authorization service that supports OpenID Connect.
ConnectorFactory connectorFactory = new EcmsClientConnectorFactory();
Map<String, String> properties = new HashMap<>();
properties.put(EcmsClientConnectorFactory.PROPERTY_ECM_SERVER_URL, "http://localhost:8080");
properties.put(EcmsClientConnectorFactory.PROPERTY_ECM_CLIENT_AUTHENTICATION, BearerTokenAuthorizationClient.class.getName());
Connector connector = connectorFactory.newConnector(properties);
String token = "eyJhbGciOiJSUzI1NiIs...";
SaperionClientFactory saperionClientFactory = new SaperionClientFactoryImpl(connector);
SaperionClient saperionClient = saperionClientFactory.newClient(token, LicenseEnumeration.INDEX, "tenant");
UserManagementServiceClient userManagementService = saperionClient.getUserAdministrationService().getUserManagementService();
UserType userType = userManagementService.getCurrentUserContext().load();
System.out.println("My ID is " + userType.getReference().getId());
This example shows how to create a user and how to add the user to a group.
UserAdministrationClient userAdministrationService = saperionClient.getUserAdministrationService();
UserManagementServiceClient userManagementService = userAdministrationService.getUserManagementService();
GroupManagementServiceClient groupManagementService = userAdministrationService.getGroupManagementService();
CreateUserPropertiesType user = new CreateUserPropertiesType();
user.setFullName("Full Name");
user.setShortName("Short Name");
user.setPassword("password");
UserReferenceType userReference = userManagementService.createUser(user);
GroupClient groupClient = groupManagementService.resolveName("Users");
groupClient.getUserMembers().addMember(userReference);
This example shows how to get a search client that can be used to search for documents.
ArchiveReferenceType archiveReference = new ArchiveReferenceType();
archiveReference.setName("example8");
archiveReference.setContentType(ArchiveContentEnum.DOCUMENT);
ArchiveServiceClient archiveService = saperionClient.getArchiveService();
SearchClient<DocumentRevisionListItemType> searchClient = archiveService.newDocumentSearch(archiveReference);
Expression filter = new BinaryOperation("EX8_DOCNAME", BinaryOperation.Operator.EQ, "SAPERION_ECM_Suite");
Iterable<DocumentRevisionListItemType> list = searchClient.list(filter);
DocumentRevisionListItemType document = list.iterator().next();
System.out.println("Found document with ID " + document.getDocumentId().getSysRowId());
This example shows how to add a new document to the archive.
DocumentServiceClient documentService = saperionClient.getDocumentService();
DocumentElementType structure = new StructureCompositeDocumentElementType();
FileDocumentElementType file = new FileDocumentElementType();
file.setFileName(new File("test.dat"));
file.setContent(new FileInputStream("test.dat"));
structure.getChildren().add(file);
ArchiveReferenceType archiveReference = new ArchiveReferenceType();
archiveReference.setContentType(ArchiveContentEnum.DOCUMENT);
archiveReference.setName("full_index");
Map<String, PropertyType> indexData = new HashMap<>();
indexData.put("TEXT", Properties.newPropertyType("my test document"));
documentService.createDocument(archiveReference, indexData, structure);