Jython para Ágileswiki.recife.pe.gov.br/files/file/BPM/Treinamentos/... · Pág. 2 Image...
Transcript of Jython para Ágileswiki.recife.pe.gov.br/files/file/BPM/Treinamentos/... · Pág. 2 Image...
Pág. 1 Image Technology S.A.©2003
Jython para Á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
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
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
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:
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:
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;
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()
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)
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)
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)
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())
Pág. 13 Image Technology S.A.©2003
Integração com Ágiles
• Uso de variáveis do processo
• Chamada a Functions
• Disparo de subprocessos
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”)
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”)
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
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)