Top Banner
Pág. 1 Image Technology S.A. © 2003 Jython para Ágiles
17

Jython para Ágileswiki.recife.pe.gov.br/files/file/BPM/Treinamentos/... · Pág. 2 Image Technology S.A.©2003 Jython •Linguagem de Script, baseado em Python •Utilizada no Ágiles

Jun 05, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Jython para Ágileswiki.recife.pe.gov.br/files/file/BPM/Treinamentos/... · Pág. 2 Image Technology S.A.©2003 Jython •Linguagem de Script, baseado em Python •Utilizada no Ágiles

Pág. 1 Image Technology S.A.©2003

Jython para Ágiles

Page 2: Jython para Ágileswiki.recife.pe.gov.br/files/file/BPM/Treinamentos/... · Pág. 2 Image Technology S.A.©2003 Jython •Linguagem de Script, baseado em Python •Utilizada no Ágiles

Pág. 2 Image Technology S.A.©2003

Jython

• Linguagem de Script, baseado em Python

• Utilizada no Ágiles para realização de tarefas

automáticas

Page 3: Jython para Ágileswiki.recife.pe.gov.br/files/file/BPM/Treinamentos/... · Pág. 2 Image Technology S.A.©2003 Jython •Linguagem de Script, baseado em Python •Utilizada no Ágiles

Pág. 3 Image Technology S.A.©2003

Comparação Java/Jython

• Operadores Lógicos / Aritméticos

• Blocos de Controle

• Declarações

• Métodos de String

• Listas

• Dicionários

• Exemplos

Page 4: Jython para Ágileswiki.recife.pe.gov.br/files/file/BPM/Treinamentos/... · Pág. 2 Image Technology S.A.©2003 Jython •Linguagem de Script, baseado em Python •Utilizada no Ágiles

Pág. 4 Image Technology S.A.©2003

Operadores Lógicos /

AritméticosJava Jython

&& and

|| or

! not

== is

equals() ==

obj instanceof class isInstance(obj,class)

+ - = * / % + - = * / %

++ -- Não existem

Math.pow(x,y) x ** y

Page 5: Jython para Ágileswiki.recife.pe.gov.br/files/file/BPM/Treinamentos/... · Pág. 2 Image Technology S.A.©2003 Jython •Linguagem de Script, baseado em Python •Utilizada no Ágiles

Pág. 5 Image Technology S.A.©2003

Blocos de Controle

Java Jython

for (int i = 0; i < x; i++) {

// algo

}

for i in range(x):

#algo

for(Iterator it = col.iterator();it.hasNext();

it.next()) {

//algo

}

for obj in col:

#algo

if (x) {

} else if (y) {

} else {

}

if x:

elif y:

else:

Page 6: Jython para Ágileswiki.recife.pe.gov.br/files/file/BPM/Treinamentos/... · Pág. 2 Image Technology S.A.©2003 Jython •Linguagem de Script, baseado em Python •Utilizada no Ágiles

Pág. 6 Image Technology S.A.©2003

Blocos de Controle

Java Jython

while(x){

}

while x:

#dentro do loop

throw exception raise exception

try {

} finally {

}

try :

finally :

try (x) {

} catch (exception) {

} finally {

}

try:

except y:

else:

Page 7: Jython para Ágileswiki.recife.pe.gov.br/files/file/BPM/Treinamentos/... · Pág. 2 Image Technology S.A.©2003 Jython •Linguagem de Script, baseado em Python •Utilizada no Ágiles

Pág. 7 Image Technology S.A.©2003

Declarações

Java Jython

public void metodo(args) {

}

def metodo(args):

# corpo do método

Person obj = new Person() obj = Person()

import java.util.Collection from java.util import Collection;

Page 8: Jython para Ágileswiki.recife.pe.gov.br/files/file/BPM/Treinamentos/... · Pág. 2 Image Technology S.A.©2003 Jython •Linguagem de Script, baseado em Python •Utilizada no Ágiles

Pág. 8 Image Technology S.A.©2003

Métodos de String

Java Jython

obj.toString() str(obj)

s.charAt(i) s[i]

s.compareTo(s2) cmp(s,s2)

s + s2 s + s2

s.indexOf(s2) s.find(s2)

s.lastIndexOf(s2) s.rfind(s2)

s.lenght() len(s)

s.replace(x, y) s.replace(x,y)

s.toLowerCase() s.lower()

s.toUppercase() s.upper()

s.trim() s.strip()

Page 9: Jython para Ágileswiki.recife.pe.gov.br/files/file/BPM/Treinamentos/... · Pág. 2 Image Technology S.A.©2003 Jython •Linguagem de Script, baseado em Python •Utilizada no Ágiles

Pág. 9 Image Technology S.A.©2003

Listas

Java Jython

l = new ArrayList() l = []

l.add(o) l.append(o)

l.addAll(l2) l.extend(l2)

l.clear() del l[:]

l.contains(o) o in l

l.get(i) l[i]

l.indexOf(o) l.index(o)

l.remove(obj) l.remove(obj)

l.remove(i) del l[i]

l.set(i,o) l[i] = o

l.size() len(l)

Page 10: Jython para Ágileswiki.recife.pe.gov.br/files/file/BPM/Treinamentos/... · Pág. 2 Image Technology S.A.©2003 Jython •Linguagem de Script, baseado em Python •Utilizada no Ágiles

Pág. 10 Image Technology S.A.©2003

Dicionários

Java Jython

m = new HashMap() m = {}

m.clear() m.clear()

m.containsKey(o) o in m

m.containsValue(o) o in m.values()

m.entrySet() m.items()

m.get(key) m[key]

m.keySet() m.keys()

m.put(key, value) m[key] = value

m.remove(key) del m[key]

m.values() m.values()

l.size() len(l)

Page 11: Jython para Ágileswiki.recife.pe.gov.br/files/file/BPM/Treinamentos/... · Pág. 2 Image Technology S.A.©2003 Jython •Linguagem de Script, baseado em Python •Utilizada no Ágiles

Pág. 11 Image Technology S.A.©2003

Exemplos

Java Jythonint[] x = {1,2,3,4,5,6};

for (int i = 0; i < x.length; i++) {

Sytem.out.println(x[i])

}

x = [1,2,3,4,5,6]

for a in x:

print(a)

if (i > 10 && j < 15) {

x = i + j;

} else if (i < 10) {

x = i – 2 * j;

} else {

x = 0;

}

Sytem.out.println(x);

if i > 10 and j < 15:

x = i + j

elif i < 10:

x = i – 2 * j

else:

x = 0

print(x)

Page 12: Jython para Ágileswiki.recife.pe.gov.br/files/file/BPM/Treinamentos/... · Pág. 2 Image Technology S.A.©2003 Jython •Linguagem de Script, baseado em Python •Utilizada no Ágiles

Pág. 12 Image Technology S.A.©2003

Integração Java/Jython

• Para integração da APIs do Java com Jython é

necessário importá-las (mesmo java.lang)from java.util import TreeSet;

set = TreeSet()

set.add(“um”)

set.add(“dois”)

print(set.toString())

Page 13: Jython para Ágileswiki.recife.pe.gov.br/files/file/BPM/Treinamentos/... · Pág. 2 Image Technology S.A.©2003 Jython •Linguagem de Script, baseado em Python •Utilizada no Ágiles

Pág. 13 Image Technology S.A.©2003

Integração com Ágiles

• Uso de variáveis do processo

• Chamada a Functions

• Disparo de subprocessos

Page 14: Jython para Ágileswiki.recife.pe.gov.br/files/file/BPM/Treinamentos/... · Pág. 2 Image Technology S.A.©2003 Jython •Linguagem de Script, baseado em Python •Utilizada no Ágiles

Pág. 14 Image Technology S.A.©2003

Uso de variáveis do processo

• Todas as variáveis dos processos estão

disponíveis em Jython.processo = variables.getValue(“process”)

formulário = variables.getValue(“form(NOME FORM)”)

campo = variables.getValue(“form(NOME FORM).NOME_CAMPO”)

initiator = variables.getValue(“initiator”)

Page 15: Jython para Ágileswiki.recife.pe.gov.br/files/file/BPM/Treinamentos/... · Pág. 2 Image Technology S.A.©2003 Jython •Linguagem de Script, baseado em Python •Utilizada no Ágiles

Pág. 15 Image Technology S.A.©2003

Chamada de Functions

• Todas as Functions Libraries se encontram

disponíveis em Jython

Form.assign(form, “NOME_CAMPO”, “Valor”)

folder = Util.createVisitorFolders(“32-1”, “Teste/pasta”)

Page 16: Jython para Ágileswiki.recife.pe.gov.br/files/file/BPM/Treinamentos/... · Pág. 2 Image Technology S.A.©2003 Jython •Linguagem de Script, baseado em Python •Utilizada no Ágiles

Pág. 16 Image Technology S.A.©2003

Disparando sub processos

• Utilizado para disparar múltiplos subprocessos

a partir de um processo

• Exemplos:

– Processo de Compras que dispara 1 sub-processo para

aprovação de cada item da compra

– Processo de auditoria que dispara uma aprovação para cada

não conformidade encontrada

Page 17: Jython para Ágileswiki.recife.pe.gov.br/files/file/BPM/Treinamentos/... · Pág. 2 Image Technology S.A.©2003 Jython •Linguagem de Script, baseado em Python •Utilizada no Ágiles

Pág. 17 Image Technology S.A.©2003

Exemplo de subprocessosfrom java.util import HashMap;

from br.com.imagetec.process import ProcessHelper;

descr = variables.getValue(“form(NC).NC_DESCR_ARRAY”)

numeros = variables.getValue(“form(NC).NC_NUM_ARRAY”)

prop = PropertiesFunctions.getProperties(„arquivo.properties‟)

pkProcesso = prop.getProperty(“processo.NC”)

pksSubs = “”

initiator = variables.getValue(“initiator”)

pkPai = variables.getValue(“process”).PK.toString()

for i in range(len(numeros)):

nome = “Tratamento da NC:” + numeros[i] + “ - ” + descr[i]

params = HashMap()

params[„numeroNC‟] = numeros[i]

params[„descrNC‟] = descr[i]

params[„parent‟] = pkPai

processo = ProcessHelper.createnewInstance(

pkProcesso,

nome,

“”, #Descricao

initiator.PK.toString(),

params)

pksSubs = pksSubs + „;‟ + processo.PK.toString()

processo.start()

variables.getValue(“process.metaData”).setMetaData(„pksSubs‟,pksSubs)