Métodos de API do Agente de Integração do EPM

O Agente de Integração do EPM fornece vários métodos que podem ser usados em scripts para executar ações como a especificação de texto no arquivo de log, atualizações para variáveis de ligação e consultas e ações que instruem o Agente de Integração do EPM a ignorar a etapa de processamento do SQL do caso em que uma consulta especial é usada ou uma origem de dados não-SQL é usada.

Os métodos da API do Agente de Integração do EPM são:

Método API Descrição Exemplo

logInfo()

Registra uma mensagem de informação no log de processo do agente. Essa entrada é registrada no log do processo na pasta EPM_APP_DATA_HOME\logs, o log do job no Oracle Enterprise Performance Management Cloud, mas não no epmagent.log local. A entrada do log é criada no nível de log INFO.

agentAPI.logInfo("SAMPLE: INFO log message from script")

logError()

Registra uma mensagem de erro no log de processo do agente. Essa entrada é registrada no log do processo na pasta EPM_APP_DATA_HOME\logs, o log do job no EPM Cloud, e também no epmagent.log. A entrada do log é criada no nível de log SERVER.

agentAPI.logError("SAMPLE: SEVER log message from script")

setBindVariables()

Use o método setBindVariables() para atualizar as variáveis de ligação da consulta de extração. Isso é aplicável somente no script befExtract.

As variáveis de ligação devem ser transmitidas como uma entrada de mapa java para cada variável com variável NAME como chave e VALUE.

newBindVar = dict({'PERIOD':'Feb-05', 'LEDGER':'Vision Operations (USA)'})

jmap = java.util.HashMap()

para chave em newBindVar.keys(): jmap[key] = newBindVar[key]

agentAPI.setBindVariables(jmap)

getBindVariables()

Use o método getBindVariables() para recuperar as variáveis de ligação da consulta de extração. Cada variável de ligação é armazenada em um mapa, que usa as chaves NAME e VALUE para definir a variável de ligação.

bindVariables = agentAPI.getBindVariables()

para entrada em bindVariables.entrySet(): print entry.key, entry.value

updateQuery()

Use o método updateQuery() para atualizar a consulta de extração. Isso é aplicável somente no script befExtract.

agentAPI.updateQuery("SELECT * FROM TDATASEG")

getQuery()

Use o método getQuery() para recuperar a consulta que foi transmitida do EPM Cloud para o Agente de Integração do EPM durante a chamada de execução da extração.

print "Printing Query: " + agentAPI.getQuery()

skipAction()

Use o método skipAction() para ignorar a etapa de dados de extração, quando uma rotina de extração personalizada for usada pelo Agente de Integração do EPM.

Observe que a execução da extração pode ser ignorada somente durante o script befExtract.

Se você quiser fornecer um arquivo de dados a ser atualizado para EPM Cloud em vez de executar a consulta salva, um arquivo com o nome <process ID>.dat deve ser salvo na pasta MyData/data em tempo de ser atualizado para o EPM Cloud. Isso significa que o arquivo deve ser salvo nesta pasta nos scripts befExtract, aftExtract ou befUpload.

agentAPI.skipAction('true')

getConnectionDetails()

Use o método getConnectionDetails() para extrair o objeto de dados da Credencial de conexão da nuvem que foi transferido do EPM Cloud para o Agente de Integração do EPM durante a chamada de execução da extração.

cred = agentAPI.getConnectionDetails()
url = cred.getJDBCUrl()
user = cred.getUserName()
password = cred.getPassword()
agentAPI.logInfo ("Connection Details: ")
agentAPI.logInfo("URL: " + url)
agentAPI.logInfo('User: ' + user)

setCustomConnection(conn)

Use o método setCustomConnection(conn) para definir a conexão personalizada criada para o Agente de Integração do EPM durante a chamada de execução da extração. O Agente usa essa conexão na execução. O objeto conn deve ser uma conexão JDBC tipo 4 e uma implementação da interface java.sql.Connection .

Isso é aplicável somente nos scripts befExtract e befExport. Para obter mais detalhes sobre o uso, consulte os scripts de exemplo BefExtract.py e o java CustomEventSample e CustomWribackEvent.

Para criar uma conexão personalizada com o banco de dados Oracle:

java.lang.Class.forName("oracle.jdbc.driver.OracleDriver")
conn = java.sql.DriverManager.getConnection('jdbc:oracle:thin:@<host>:<port>:<sid>', '<user/schema name>', '<password>')
agentAPI.setCustomConnection(conn)