Índice

 

Objetivo

Para utilizar os recursos do componente SDK, existem alguns pré-requisitos e exigências a serem seguidos, como:

Esta documentação é destinada ao desenvolvedor, cliente e parceiro do fluig que deseja consumir interna e externamente os recursos disponíveis na API Pública e no componente SDK.

As operações na API Pública estão disponíveis através de chamadas REST, que são consumidas via HTTP.
As operações no componente SDK estão disponíveis após configuração do fluig-sdk-api no classpath da aplicação, dessa forma, através de um ServiceLocator, é realizada a chamada ao serviço desejado. 

Consumindo um serviço na API Pública

Para utilizar um serviço da API Pública, deve ser utilizado o protocolo OAuth de autenticação, que através das chaves ConsumerKey, ConsumerSecret, configurados no OAuthConsumer é gerado através do OAuthProvider com um novo TokenAccess e um TokenSecret.

Consumindo um serviço no componente SDK

Para utilizar o recursos do componente SDK, existem alguns pré-requisitos e exigências a serem seguidos, como:

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
	<mirrors>
		<mirror>
			<id>nexus</id>
			<mirrorOf>*</mirrorOf>
			<name>Fluig Nexus Repository.</name>
			<url>http://nexus.fluig.com/content/groups/public</url>
		</mirror>
	</mirrors>
</settings>

 

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
 
	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>com.fluig</groupId>
				<artifactId>fluig-sdk-bom</artifactId>
				<version>1.5.0</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>
 		<dependencies>
		<dependency>
			<groupId>com.fluig</groupId>
			<artifactId>foundation-security-authentication-saml</artifactId>
			<scope>compile</scope>
		</dependency>
		<dependency>
			<groupId>com.fluig</groupId>
			<artifactId>fluig-sdk-api</artifactId>
		</dependency>
		<dependency>
			<groupId>com.fluig</groupId>
			<artifactId>fluig-sdk-common</artifactId>
		</dependency>
		<dependency>
			<groupId>javax</groupId>
			<artifactId>javaee-api</artifactId>
			<scope>provided</scope>
		</dependency>
	</dependencies>
	<build>
		<finalName>fluigsdk.sample</finalName>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-war-plugin</artifactId>
				<version>2.2</version>
				<configuration>
					<filteringDeploymentDescriptors>true</filteringDeploymentDescriptors>
					<failOnMissingWebXml>false</failOnMissingWebXml>
					<archive>
						<manifestEntries>
							<Dependencies>org.slf4j, com.fluig.api, com.fluig.api.common</Dependencies>
						</manifestEntries>
					</archive>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>

 jboss-web.xml  

<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
	<context-root>/sample</context-root>
	<disable-cross-context>false</disable-cross-context>
	<security-domain>TOTVSTech</security-domain>
	<security-role>
		<role-name>user</role-name>
		<principal-name>totvstech</principal-name>
	</security-role>
	<security-role>
		<role-name>totvstech</role-name>
		<principal-name>totvstech</principal-name>
	</security-role>
	<security-role>
		<role-name>sysadmin</role-name>
		<principal-name>wcmadmin</principal-name>
	</security-role>
	<security-role>
		<role-name>admin</role-name>
		<principal-name>wcmadmin</principal-name>
	</security-role>
	<valve>
		<class-name>com.totvs.technology.auth.saml.TOTVSAuthenticatorValve</class-name>
	</valve>
</jboss-web>

web.xml

	<security-role>
		<role-name>totvstech</role-name>
	</security-role>
	<security-role>
		<role-name>user</role-name>
	</security-role>
	<security-role>
		<role-name>sysadmin</role-name>
	</security-role>

 

Serviços disponíveis no componente SDK

 

Exemplo para instanciar serviço do SDK

Veja a seguir o exemplo para a chamado ao serviço no SDK:

private UserService getUserServiceSDK() throws SDKException {
	return new FluigAPI().getUserService();
}

 

Consumindo um serviço do componente SDK a partir de eventos de javascript

Este recurso está disponível para eventos javascript de Workflow (que podem ser encontrados aqui) e também para Eventos de Personalização Social (que podem ser encontrados aqui).

 

Auto completar - eventos fluigAPI

 

Este novo serviço, permite ao usuário visualizar no studio, uma lista com todos os métodos disponíveis no fluigAPI, digitando "fluigAPI." e em seguida apertando CTRL+Espaço a lista de métodos será apresentada. Por exemplo, ao usar um método com retorno (fluigAPI.getWorkflowService() por exemplo), o usuário poderá também listar os métodos deste retorno(como fluigAPI.getWorkflowService().createObervation()). É possível também facilmente criar os objetos que são utilizados nos métodos. Para isso, basta digitar, por exemplo, new ProcessObservationVO e apertar CTRL+Espaço que o plugin vai alterar automaticamente para new com.fluig.sdk.api.workflow.ProcessObservationVO();
Faça o download a partir do update.fluig.com diretamente no studio.

 

 

Serviço disponível a partir da 1.5.13.

 

Exemplos para utilização do componente SDK via eventos de javascript

Exemplo 1

function beforeTaskCreate(colleagueId){
	log.info(fluigAPI.getUserService().getCurrent());
}


Exemplo 2

function beforeStateEntry(sequenceId) {
    if (sequenceId == 4) {
        var groupService = fluigAPI.getGroupService();
        
        var cardData = hAPI.getCardData(getValue("WKNumProces"));
        var groupId = hAPI.getCardValue("groupId");
        var users = new java.util.ArrayList();
        
        var it = cardData.keySet().iterator();
        while(it.hasNext()) {
            var field = it.next();
            if (field.startsWith("userName__")) {
                var user = cardData.get(field);
                if (!groupService.containsUser(groupId, user)) {
                    users.add(user);
                }
            }
        }
        if (!users.isEmpty()) {
            groupService.addUsers(groupId, users);
        }
    }
}


 

Veja também o exemplo de uma aplicação web utilizando o fluig SDK através do artefato fluig-sdk-api. Diponível no git.fluig.