Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Informações
titleAtenção

Esta página foi revisada para considerar as novas configurações de server do fluig para a atualização 1.6.

Caso possua uma atualização anterior do fluig escolha a aba da versão 1.5.13 e anteriores nesta página.

Índice

Índice
outlinetrue
exclude.*ndice
stylenone
 


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 Consumer Key, ConsumerSecret Consumer Secret, configurados no OAuthConsumer é OAuth App é gerado através do OAuthProvider OAuth Provider com um novo TokenAccess Token Access e um TokenSecret Token Secret.

  • O client deve ser desenvolvido para suportar autenticação OAuth 1.0a.

...

  • .


Consumindo um Serviço do Componente SDK a partir de Eventos de JavaScript

...

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


Exemplos para Utilização do Componente SDK via Eventos de JavaScript

...

Exemplo 1

Bloco de código
languagejava
themeEclipse
function beforeTaskCreate(colleagueId){
	log.info(fluigAPI.getUserService().getCurrent());
}


Exemplo 2 

Bloco de código
languagejava
themeEclipse
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);
        }
    }
}
Informações
titleObservação

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


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:

  • Incluir as configurações do servidor do nexus no Maven para realizar o download de artefatos de dependência. (settings.xml)
Bloco de código
languagexml
themeEclipse
titlesettings.xml
<?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>

 

  • Configurar o componente fluig-sdk-api no classpath.
  • No caso de criação de um novo projeto WEB ou Widget, seguir o seguinte padrão de projeto Maven Maven fluigsdk.sample.
  • O novo projeto Maven deve ter por padrão as seguintes configurações no pom.xml:
Deck of Cards
effectDuration0.5
historyfalse
idsamples1
effectTypefade
Card
id1
labelfluig 1.6
Bloco de código
languagexml
themeEclipse
titlepom.xml
<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.6.0</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>
 		<dependencies>		
		<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>
Card
id2
labelfluig 1.5.13
Bloco de código
languagexml
themeEclipse
titlepom.xml
<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>
  • Se atentar para as configurações padrão de autenticação e security-role localizadas no jboss-web.xml e web.xml conforme abaixo:

...

Deck of Cards
effectDuration0.5
historyfalse
idsamples2
effectTypefade
Card
id1
labelfluig 1.6
Bloco de código
languagexml
themeEclipse
titlejboss-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>	
</jboss-web>
Card
id2
labelfluig 1.5.13
Bloco de código
languagexml
themeEclipse
titlejboss-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>
  • No arquivo web.xml:
Deck of Cards
effectDuration0.5
historyfalse
idsamples3
effectTypefade
Card
id1
labelfluig 1.6
Bloco de código
languagexml
themeEclipse
titleweb.xml
<security-constraint>
		<display-name>REST</display-name>
		<web-resource-collection>
			<web-resource-name>REST</web-resource-name>
			<description>REST</description>
			<url-pattern>/api/rest/*</url-pattern>
		</web-resource-collection>
		<auth-constraint>
			<description>REST</description>
			<role-name>user</role-name>
		</auth-constraint>
	</security-constraint>
	<login-config>
		<auth-method>FORM,FLUIGAUTH</auth-method>
		<realm-name>TOTVSTech</realm-name>
		<form-login-config>
			<form-login-page>/login.jsp</form-login-page>
			<form-error-page>/loginfail.jsp</form-error-page>
		</form-login-config>
	</login-config>
 
	<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>
Card
id2
labelfluig 1.5.13
Bloco de código
languagexml
themeEclipse
titleweb.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>
  • Realizar lookup do serviço via ServiceLocator. Seguir padrão da Super Classe FluigAPIfluigAPI.

...


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:

Bloco de código
languagejava
themeEclipse
private UserService getUserServiceSDK() throws SDKException {
	return new FluigAPI().getUserService();
}

 

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

Informações
titleEventos de Workflow
Este recurso está disponível apenas para eventos javascript de Workflow, que podem ser encontrados aqui.

 

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

Exemplo 1

Bloco de código
languagejava
themeEclipse
function beforeTaskCreate(colleagueId){
	log.info(fluigAPI.getUserService().getCurrent());
}

Exemplo 2

Bloco de código
languagejava
themeEclipse
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);
        }
    }
}

 

Informações
titleObservação

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.


Auto Completar Eventos da fluigAPI

...

Este serviço permite visualizar no Studio uma lista com todos os métodos disponíveis no fluigAPI. Digitando "fluigAPI." e em seguida apertando o atalho CTRL + Espaço, a lista de métodos será apresentada.

Por exemplo, ao usar um método com retorno, fluigAPI.getWorkflowService() o usuário poderá listar os métodos deste retorno, como fluigAPI.getWorkflowService().createObervation().

Também é possível criar facilmente os objetos que são utilizados nos métodos.

Para isso, basta digitar, por exemplo, new ProcessObservationVO e acionar CTRL + Espaço que o plugin irá alterar o trecho automaticamente para new com.fluig.sdk.api.workflow.ProcessObservationVO();

Image Added

Aviso
titleImportante!

Este serviço está disponível a partir da Atualização 1.5.13 da plataforma. Siga os procedimentos do Guia de atualização fluig Studio para atualizar o plugin.

...