jython para Ágileswiki.recife.pe.gov.br/files/file/bpm/treinamentos/... · pág. 2 image...

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

Upload: others

Post on 05-Jun-2020

3 views

Category:

Documents


0 download

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)