Arquivar Transações Correspondentes Antigas e Eliminar Transações Arquivadas

Use os scripts nesta seção para arquivar transações correspondentes, incluindo detalhes de suporte e ajuste, cujo tempo de validade seja igual ou posterior ao especificado e, em seguida, elimine as transações arquivadas de Account Reconciliation. As transações correspondentes arquivadas são gravadas em um arquivo ZIP.

Como o Script Funciona

  1. Usando as informações do arquivo input.properties, faz logon no ambiente
  2. Executa o seguinte comando archiveTmTransactions para criar um arquivo. O arquivo ZIP resultante e o arquivo de log usam os nomes padronizados Archive_Transactions_INTERCO_JOB_ID.zip e Archive_Transactions_INTERCO_JOB_ID.log

    epmautomate archiveTmTransactions INTERCO 365 filterOperator=contains filterValue=14001

    Você pode alterar os parâmetros de comando modificando o arquivo input.properties.
  3. Faz download no computador local do arquivo de log e do arquivo .ZIP contendo transações arquivadas. O script exibirá uma mensagem de erro se nenhuma transação correspondente for encontrada.
  4. Copia o arquivo .ZIP que contém as transações arquivadas para o Oracle Object Store.
  5. Executa o comando purgeArchivedTmTransactions (com o ID do job archiveTmTransactions) para excluir as transações arquivadas correspondentes do aplicativo.

Execução do Script

  1. Crie o arquivo input.properties e atualize-o com informações do seu ambiente. Salve o arquivo em um diretório local. Nesta discussão, esse diretório é denominado parentsnapshotdirectory. O conteúdo desse arquivo varia em função do seu sistema operacional.

    Certifique-se de ter privilégios de gravação nesse diretório. Para Windows, pode ser que você precise iniciar o PowerShell usando a opção Executar como Administrador para poder executar scripts.

  2. Crie o script transaction_match.ps1 (Windows PowerShell) ou transaction_match.sh (Linux/UNIX) e salve-o no diretório parentsnapshotdirectory em que input.properties está localizado.
  3. Inicie o script.
    • Linux/UNIX: execute ./transaction_match.sh.
    • Windows PowerShell: execute transaction_match.ps1.

Criação do Script input.properties

Crie input.properties copiando e atualizando o script a seguir.

javahome=JAVA_HOME
epmautomatescript=EPM_AUTOMATE_LOCATION
epmusername=exampleAdmin1
epmpassword=examplePassword1.epw
epmurl=exampleURL1
objectstorageusername=exampleAdmin2
objectstoragepassword=examplePassword2
objectstorageurl=exampleURL2
matchtype=INTERCO
age=365
filteroperator=contains
filtervalues=FilterValue=14001
proxyserverusername=myProxyserver
proxyserverpassword=myProxyserver_pwd
proxyserverdomain=myProxyDomain

Nota:

Somente Windows: Remova estas propriedades do arquivo input.properties:

  • javahome=JAVA_HOME
  • epmautomatescript=EPM_AUTOMATE_LOCATION

Se authentication at proxy server não estiver habilitado para seu ambiente de rede do Windows, remova estas propriedades do arquivo input.properties.

  • proxyserverusername
  • proxyserverpassword
  • proxyserverdomain

Tabela 3-24 Parâmetros de input.properties

Parâmetro Descrição
javahome O diretório onde o JDK usado pelo EPM Automate está instalado. Exclua esta entrada da versão Windows de input.properties.

Exemplo: javahome=./home/JDK/bin

epmautomatescript O diretório em que o EPM Automate está instalado. Exclua esta entrada da versão Windows de input.properties.

Exemplo:epmautomatescript=./home/utils/EPMAutomate/bin

epmusername Nome de usuário de um Administrador de Serviço ou um Usuário Avançado, Usuário ou Visualizador que está autorizado a arquivar transações correspondentes.

Exemplo: epmusername=ServiceAdmin

epmuserpassword O arquivo de senha criptografada do usuário identificado como epmusername.

Exemplo: epmpassword=myPwd.epw

epmurl O URL do ambiente onde as transações correspondentes devem ser arquivadas.

Exemplo: epmurl=https://test-cloudpln.pbcs.us1.oraclecloud.com

objectstorageusername O ID de um usuário que possui os direitos de acesso necessários para gravar no Oracle Object Storage Cloud.

Para usuários criados no provedor de identidade federado, especifique o nome totalmente qualificado do usuário (por exemplo, exampleIdP/jdoe ou exampleIdP/john.doe@example.com, onde exampleIdP é o nome do provedor de identidade federado). Para outros usuários, especifique o ID do usuário.

Exemplo: epmusername=myIdP/jdoe

objectstoragepassword A senha Swift ou token de autenticação associado ao usuário identificado em objectstorageusername. Essa senha não é a mesma que o usuário usa para entrar no Object Storage Console. O token de autenticação é um token gerado pela Oracle e usado para autenticar APIs de terceiros, por exemplo, para autenticação com um cliente Swift. Para obter instruções sobre como criar esse token, consulte Para criar um token de autenticação: in Documentação do Oracle Cloud Infrastructure.

Exemplo: objectstoragepassword=jDoe_PWD

objectstorageurl O URL do bucket do Oracle Object Storage Cloud com um nome de objeto opcional acrescentado.

Exemplo: objectstorageurl=https://swiftobjectstorage.region_identifier.oraclecloud.com/v1/namespace/MT_Archives/2023_archives

matchtype O identificador (TextID) do tipo de correspondência do qual as transações correspondentes devem ser arquivadas.

Exemplo: matchtype=cashrecon

age

O número de dias desde a correspondência da transação. Uma transação correspondente mais velha que ou igual a esse valor será arquivada.

Exemplo: age=180

filteroperator As condições de filtro para identificação das contas que contêm transações correspondentes para arquivamento. Deve ser uma destas: equals, not_equals, starts_with, ends_with, contains ou not_contains.

Esse valor é combinado com filterValue para identificação das contas das quais as transações correspondentes devem ser arquivadas.

Exemplo: filteroperator=not_equals

filtervalues Um ou mais valores de filtro para identificação das transações a serem arquivadas. Se equals ou not_equals for especificado como o filterOperator, você poderá usar uma lista para a especificação de vários valores separados por espaço. Se vários valores forem especificados, as transações de contas correspondentes a alguma combinação de operador de filtro e valor de filtro serão selecionadas para arquivamento.

Exemplo: filterValue=101-120 filterValue=140-202

proxyserverusername O nome do usuário para autenticar uma sessão segura no servidor proxy que controla o acesso à internet.

Exemplo: proxyserverusername=myProxyserver

proxyserverpassword A senha para autenticar o usuário no servidor proxy.

Exemplo: proxyserverpassword=myProxyserver_pwd

proxyserverdomain O nome do domínio definido para o servidor proxy.

Exemplo: proxyserverdomain=myProxyDomain

Script do Windows

Crie transaction_match.ps1 copiando o script a seguir. Armazene-o na pasta em que input.properties está armazenado.

# Archive and Purge Transaction Matching PowerShell script

$inputproperties = ConvertFrom-StringData(Get-Content ./input.properties -raw)
$epmusername="$($inputproperties.epmusername)"
$epmpassword="$($inputproperties.epmpassword)"
$epmurl="$($inputproperties.epmurl)"
$objectstorageusername="$($inputproperties.objectstorageusername)"
$objectstoragepassword="$($inputproperties.objectstoragepassword)"
$objectstorageurl="$($inputproperties.objectstorageurl)"
$matchtype="$($inputproperties.matchtype)"
$age="$($inputproperties.age)"
$filteroperator="$($inputproperties.filteroperator)"
$filtervalues="$($inputproperties.filtervalues)"
$proxyserverusername="$($inputproperties.proxyserverusername)"
$proxyserverpassword="$($inputproperties.proxyserverpassword)"
$proxyserverdomain="$($inputproperties.proxyserverdomain)"

echo "Running processes to archive and purge transaction matching transactions ..."
if (${proxyserverusername}) {
    echo "Running epmautomate login ${epmusername} ${epmpassword} ${epmurl} ${proxyserverusername} ${proxyserverpassword} ${proxyserverdomain}" 
    epmautomate login ${epmusername} ${epmpassword} ${epmurl} ${proxyserverusername} ${proxyserverpassword} ${proxyserverdomain} 
} else {
    echo "Running epmautomate login ${epmusername} ${epmpassword} ${epmurl}" 
    epmautomate login ${epmusername} ${epmpassword} ${epmurl}
}
echo "Running epmautomate archiveTmTransactions \"${matchtype}\" ${age} filterOperator=${filteroperator} ${filtervalues}"
epmautomate archiveTmTransactions "${matchtype}" "${age}" "filterOperator=${filteroperator}" "${filtervalues}" > ./outfile.txt.tmp

$jobIdLine=Select-String -Path "outfile.txt.tmp" -Pattern "Job ID"; $jobIdLine=($jobIdLine -split ":")[-2]; $jobid=($jobIdLine -split " ")[1];
$logfile="Archive_Transactions_${matchtype}_${jobid}.log"
$transactionsfile="Archive_Transactions_${matchtype}_${jobid}.zip"
epmautomate listfiles > ./files.txt.tmp
$transactionslogfound=Select-String -Path "./files.txt.tmp" -Pattern "${logfile}"
$transactionsfilefound=Select-String -Path "./files.txt.tmp" -Pattern "${transactionsfile}"
rm ./outfile.txt.tmp
rm ./files.txt.tmp

if (${transactionslogfound}) {
    echo "Running epmautomate downloadfile \"${logfile}\""
    epmautomate downloadfile "${logfile}"
    if (${transactionsfilefound}) {
        echo "Running epmautomate downloadfile ${transactionsfile}"
        epmautomate downloadfile "${transactionsfile}" 
        if ($?) {
            echo "Running epmautomate copyToObjectStorage ${transactionsfile} ${objectstorageusername} ${objectstoragepassword} ${objectstorageurl}"
            epmautomate copyToObjectStorage "${transactionsfile}" "${objectstorageusername}" "${objectstoragepassword}" "${objectstorageurl}"
            if ($?) {
                echo "Running epmautomate purgeArchivedTMTransactions JOBID=${jobid}"
                epmautomate purgeArchivedTMTransactions "JobID=${jobid}"
            } 
            else {
                echo "EPMAutomate copyToObjectStorage failed. Purging of archived matched transactions will not be attempted."
            } 
        }
        else {
            echo "Download of transactions file ${transactionsfile} failed. Copy to object storage, and purging of archived matched transactions will not be attempted."
        }
    } 
    else {
        echo "No matched transactions found. Archive file download, copy to object storage, and purging of archived matched transactions will not be attempted."
    }
} 
else { 
    echo "Matchtype ID \"${matchtype}\" not found. Archive file download, copy to object storage, and purging of archived matched transactions will not be attempted."
}

echo "Running epmautomate logout"
epmautomate logout
echo "Script processing completed."

Script de Linux/UNIX

Crie transaction_match.sh copiando o script a seguir. Armazene-o na pasta em que input.properties está armazenado.

#!/bin/sh

. ./input.properties
export JAVA_HOME=${javahome}

echo "Running processes to archive and purge transaction matching transactions..."
if [[ "${proxyserverusername}" != "" ]]
then
    echo "Running epmautomate login ${epmusername} ${epmpassword} ${epmurl} ProxyServerUserName=${proxyserverusername} ProxyServerPassword=${proxyserverpassword} ProxyServerDomain=${proxyserverdomain}" 
    ${epmautomatescript} login "${epmusername}" "${epmpassword}" "${epmurl}" "ProxyServerUserName=${proxyserverusername}" "ProxyServerPassword=${proxyserverpassword}" "ProxyServerDomain=${proxyserverdomain}" 
else
    echo "Running epmautomate login ${epmusername} ${epmpassword} ${epmurl}" 
    ${epmautomatescript} login "${epmusername}" "${epmpassword}" "${epmurl}" 
fi
echo "Running epmautomate archiveTmTransactions \"${matchtype}\" ${age} filterOperator=${filteroperator} ${filtervalues}"
${epmautomatescript} archiveTmTransactions "${matchtype}" "${age}" "filterOperator=${filteroperator}" "${filtervalues}" > ./output.txt.tmp

jobid=$(grep "Job ID" ./output.txt.tmp | cut -d':' -f3 | cut -d' ' -f2)
logfile="Archive_Transactions_${matchtype}_${jobid}.log"
transactionsfile="Archive_Transactions_${matchtype}_${jobid}.zip"
${epmautomatescript} listfiles > ./files.txt.tmp
transactionslogfound=$(grep "${logfile}" ./files.txt.tmp | wc -l)
transactionsfilefound=$(grep "${transactionsfile}" ./files.txt.tmp | wc -l)
rm ./files.txt.tmp
rm ./output.txt.tmp

if [ ${transactionslogfound} -eq 0 ]
then
    echo "Matchtype ID \"${matchtype}\" not found. Archive file download, copy to object storage, and purging of archived matched transactions will not be attempted."
else
    echo "Running epmautomate downloadfile \"${logfile}\""
    ${epmautomatescript} downloadfile "${logfile}"
    if [ ${transactionsfilefound} -eq 0 ]
    then
        echo "No matched transactions found. Archive file download, copy to object storage, and purging of archived matched transactions will not be attempted."
    else
        echo "Running epmautomate downloadfile ${transactionsfile}"
        ${epmautomatescript} downloadfile "${transactionsfile}" 
        if [ $? -eq 0 ]
        then
            echo "Running epmautomate copyToObjectStorage ${transactionsfile} ${objectstorageusername} ${objectstoragepassword} ${objectstorageurl}"
            ${epmautomatescript} copyToObjectStorage "${transactionsfile}" "${objectstorageusername}" "${objectstoragepassword}" "${objectstorageurl}"
            if [ $? -eq 0 ]
            then
                echo "Running epmautomate purgeArchivedTMTransactions JOBID=${jobid}"
                ${epmautomatescript} purgeArchivedTMTransactions "JobID=${jobid}"
            else
                echo "EPMAutomate copyToObjectStorage failed. Purging of archived matched transactions will not be attempted."
            fi
        else
            echo "Download of transactions file ${transactionsfile} failed. Copy to object storage, and purging of archived matched transactions will not be attempted."
        fi
    fi
fi

echo "Running epmautomate logout"
${epmautomatescript} logout
echo "Script processing completed."