Á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:

...

  • 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.

    Nota
    titleImportante!

    Para que as dependências sejam baixadas corretamente, é necessário fazer a autenticação no Nexus. Para isso, basta solicitar as credenciais de acesso ao Nexus para o time de Atendimento Fluig. Clique aqui e saiba como solicitar e utilizar as credenciais.

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">
	<servers>
	  <server>
    	<id>nexus</id>
	    <username>inserir_o_usuário_fornecido</username>
    	<password>inserir_a_senha_fornecida</password>
	  </server>
	</servers>
	<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 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:
  • Incluir as configurações do servidor do nexus no Maven para realizar o download de artefatos de dependência.
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 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.56.0</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>
  		<dependencies>		
		<dependency>
			<groupId>com.fluig</groupId>
			<artifactId>foundation<artifactId>fluig-securitysdk-authentication-saml<api</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:
Card
id2
labelfluig 1.5.13
Deck of Cards
effectDuration0.5
historyfalse
idsamples2
effectTypefade
Card
id1
labelfluig 1.6
Bloco de código
languagexml
themeEclipse
titlejboss-webpom.xml
<?xml<project versionxmlns="1http://maven.apache.org/POM/4.0.0" encodingxmlns:xsi="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>
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 abaixoNo arquivo web.xml:
Deck of Cards
effectDuration0.5
historyfalse
idsamples3samples2
effectTypefade
Card
id1
labelfluig 1.6
Bloco de código
languagexml
themeEclipse
titlejboss-web.xml
<security-constraint>
		<display-name>REST</display-name>
		<web-resource-collection>
			<web-resource-name>REST</web-resource<?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>
			<description>REST</description>
			<url-pattern>/api/rest/*</url-pattern>
		</web-resource-collection>
		<auth-constraint>
			<description>REST</description>
			<role-name>user<<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</authprincipal-constraint>name>
	</security-constraint>role>
	<login<security-config>role>
		<auth-method>FORM,FLUIGAUTH</auth-method><role-name>admin</role-name>
		<realm<principal-name>TOTVSTech<name>wcmadmin</realmprincipal-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>	
</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>sysadmin<name>totvstech</role-name>
	</security-role>
Card
id2
labelfluig 1.5.13
Bloco de código
languagexml
themeEclipse
titleweb.xml
<security-role>
		<role-name>totvstech</role	<principal-name>totvstech</principal-name>
	</security-role>
	<security-role>
		<role-name>user<name>sysadmin</role-name>
		<principal-name>wcmadmin</principal-name>
	</security-role>
	<security-role>
		<role-name>sysadmin<name>admin</role-name>
		<principal-name>wcmadmin</principal-name>
	</security-role>
  • Realizar lookup do serviço via ServiceLocator. Seguir padrão da Super Classe fluigAPI.

 

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 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 de Personalização Social (que podem ser encontrados aqui).

 

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, por exemplo, 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 Removed

Informações
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.

 

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

 


	<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 fluigAPI.


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


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
titleAtenção!

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

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.