Iandev Smarter Business - Logo Cor
Navegação no fórum
para criar postagens e tópicos.

Criando/Convertendo script com/para foreach (for_each)

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

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]