Getting started

This page contains some examples that show how to get started when writing applications for the ECM Service.

Java

Create a client and login

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);

Login with a token

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());

Create a user

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);

Search for documents

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());

Add a new document

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);