Criando/Convertendo script com/para foreach (for_each)
Citação de Kindrazki em 4 de abril de 2012, 17:07Primeiramente você deve criar uma variável para seu for_each,
nesse formato, podendo adicionar mais campos conforme a necessidade[code]sql
select
idempresa as IDEMPRESA
,'$v{emailg}' as EMAIL
,0 as TIPO
,cast(idempresa as char(10))||' - '||'$v{emailg}' as ID
from
dba.empresa
sql_var(sql_for_each) no_exec
;[/code]Para setar u valor para o [b]emailg[/b], você precisa antes de rodar essa query, adicionar:
[code]$include{script-sql-formas-de-contato-for_each}include[/code] ou então criar manualmente caso não existe esse include.Depois da query montada:
[code]for_each_dest <columnDest>EMAIL</columnDest>
<columnDestType>TIPO</columnDestType>
<columnId>ID</columnId>
<sql>$v{sql_for_each}</sql>
;[/code]Tudo em sequência a esse último comando será executado uma vez para cada linha da sua variável sql_for_each.
Colocando no where da sua query por exemplo, o comando:
[code]idempresa = $v{IDEMPRESA}[/code]
ele vai notificar a todos da variavel $v{emailg}, separando os emails por empresas
Primeiramente você deve criar uma variável para seu for_each,
nesse formato, podendo adicionar mais campos conforme a necessidade
[code]sql
select
idempresa as IDEMPRESA
,'$v{emailg}' as EMAIL
,0 as TIPO
,cast(idempresa as char(10))||' - '||'$v{emailg}' as ID
from
dba.empresa
sql_var(sql_for_each) no_exec
;[/code]
Para setar u valor para o [b]emailg[/b], você precisa antes de rodar essa query, adicionar:
[code]$include{script-sql-formas-de-contato-for_each}include[/code] ou então criar manualmente caso não existe esse include.
Depois da query montada:
[code]for_each_dest <columnDest>EMAIL</columnDest>
<columnDestType>TIPO</columnDestType>
<columnId>ID</columnId>
<sql>$v{sql_for_each}</sql>
;[/code]
Tudo em sequência a esse último comando será executado uma vez para cada linha da sua variável sql_for_each.
Colocando no where da sua query por exemplo, o comando:
[code]idempresa = $v{IDEMPRESA}[/code]
ele vai notificar a todos da variavel $v{emailg}, separando os emails por empresas
Citação de Kindrazki em 5 de abril de 2012, 10:45Ou então é só criar o include,
nas variáveis de script, crie com nome
[b]script-sql-formas-de-contato-for_each[/b]
com o seguinte valor:[code]
connect $v{datasource2};
sql
select
formacontato.destino as emailg
from
tarefaformacontato left
outer join formacontato on (tarefaformacontato.idformacontato = formacontato.idformacontato)
left outer join usuario on (usuario.idusuario = formacontato.idusuario)
where
idtarefa = $v{idTarefa} and tarefaformacontato.situacao = 0
;set emailg = "$c{EMAILG:list}".replace(',', '|');
[/code]
Ou então é só criar o include,
nas variáveis de script, crie com nome
[b]script-sql-formas-de-contato-for_each[/b]
com o seguinte valor:
[code]
connect $v{datasource2};
sql
select
formacontato.destino as emailg
from
tarefaformacontato left
outer join formacontato on (tarefaformacontato.idformacontato = formacontato.idformacontato)
left outer join usuario on (usuario.idusuario = formacontato.idusuario)
where
idtarefa = $v{idTarefa} and tarefaformacontato.situacao = 0
;
set emailg = "$c{EMAILG:list}".replace(',', '|');
[/code]