Pergunta

Estou desenvolvendo um processo que lerá e enviará uma imagem em um e-mail. Esta imagem é uma pasta dentro desse processo.

O problema é: como faço para obter o caminho em que o processo está em execução?

Algo como um 'Server.MapPath' Isso retorna o caminho da imagem no sistema de arquivos.

Desde já, obrigado.

Foi útil?

Solução

Se suas imagens existirem em uma pasta no seu projeto BW, você poderá usar a atividade de 'Recuperação de Recursos' para obter o conteúdo.

Você só precisa definir o recurso com o caminho relativo em seu projeto e ele produzirá os dados base64.

Outras dicas

O Soap RetrieVerSources pode ser uma boa solução, mas lança uma NullPointerException para mim no BW 5.4. Talvez seja um bug nesta versão.
O problema em relação à obtenção de um 'caminho raiz' é que um projeto BW implantado não mantém sua estrutura de pasta/arquivo original - o implantador não 'explodirá' o arquivo EAR. Portanto, você não encontrará a imagem como um arquivo separado na caixa do servidor BW.
Existe uma maneira simples de carregar dinamicamente os arquivos XML, usando a seguinte instrução xPath:

tib:render-xml(document('tibcr://path/to/file.xml'))

Mas obviamente falhará nos arquivos binários. Meu melhor palpite para armazenar dados binários dentro de um projeto BW seria armazená -los como uma constante de string no formato Base64 ou Hex.

Caso alguém se deparar com essa pergunta (como eu fiz hoje), aqui está uma maneira de obter o caminho absoluto de um arquivo dentro do aplicativo. O código a seguir pode ser usado em uma atividade "Java Code", por exemplo, sendo relativamente caminho e absoluta os parâmetros de entrada e saída, respectivamente:

absolutePath = com.tibco.pe.core.Engine.getRepoAgent().getAbsoluteURIFromProjectRelativeURI(relativePath);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top