Archiviazione di transazioni con corrispondenza meno recenti e rimozione di transazioni archiviate

Utilizzare gli script in questa sezione per archiviare le transazioni con corrispondenza risalenti a un numero di giorni uguale o superiore a un valore specificato, inclusi i relativi dettagli di supporto e adeguamento e poi rimuovere le transazioni archiviate da Account Reconciliation. Le transazioni con corrispondenza archiviate vengono registrate in un file ZIP.

Funzionamento dello script

  1. Accede all'ambiente utilizzando le informazioni contenute nel file input.properties.
  2. Esegue il comando archiveTmTransactions per creare un archivio. Per i file ZIP e di log risultanti vengono utilizzati i nomi predefiniti Archive_Transactions_INTERCO_JOB_ID.zip e Archive_Transactions_INTERCO_JOB_ID.log

    epmautomate archiveTmTransactions INTERCO 365 filterOperator=contains filterValue=14001

    È possibile modificare i parametri del comando modificando il file input.properties.
  3. Scarica nel computer locale il file di log e il file ZIP che contiene le transazioni archiviate. Lo script visualizza un messaggio di errore se non vengono rilevate transazioni corrispondenti.
  4. Copie del file .ZIP che contiene le transazioni archiviate nell'area di memorizzazione oggetti Oracle.
  5. Esegue il comando purgeArchivedTmTransactions (con l'ID del job archiveTmTransactions) per eliminare le transazioni con corrispondenza archiviate dall'applicazione.

Esecuzione dello script

  1. Creare il file input.properties e aggiornarlo con le informazioni relative all'ambiente in uso. Salvare il file in una directory locale. Nell'ambito di questa descrizione, la directory viene indicata come parentsnapshotdirectory. Il contenuto di questo file varia a seconda del sistema operativo.

    Assicurarsi di avere i privilegi di scrittura in questa directory. Per Windows, potrebbe essere necessario avviare PowerShell utilizzando l'opzione Esegui come amministratore per poter essere in grado di eseguire gli script.

  2. Creare lo script transaction_match.ps1 (Windows PowerShell) o transaction_match.sh (Linux/UNIX) e salvarlo nella directory parentsnapshotdirectory dove si trova il file input.properties.
  3. Avviare lo script.
    • Linux/UNIX: eseguire ./transaction_match.sh.
    • Windows PowerShell: eseguire transaction_match.ps1.

Creazione dello script input.properties

Creare input.properties copiando e aggiornando lo script seguente.

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:

Solo Windows: rimuovere le proprietà indicate di seguito dal file input.properties.

  • javahome=JAVA_HOME
  • epmautomatescript=EPM_AUTOMATE_LOCATION

Se per l'ambiente di rete Windows non è abilitato authentication at proxy server, rimuovere dal file input.properties le proprietà indicate di seguito.

  • proxyserverusername
  • proxyserverpassword
  • proxyserverdomain

Tabella 3-24 Parametri di input.properties

Parametro Descrizione
javahome La directory in cui è installato il JDK usato da EPM Automate. Eliminare questa voce dalla versione Windows di input.properties.

Esempio: javahome=./home/JDK/bin

epmautomatescript La directory in cui è installato EPM Automate. Eliminare questa voce dalla versione Windows di input.properties.

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

epmusername Il nome utente di un amministratore servizi, utente avanzato, utente o visualizzatore autorizzato ad archiviare transazioni con corrispondenza.

Esempio: epmusername=ServiceAdmin

epmuserpassword Il file delle password cifrate per l'utente identificato come epmusername.

Esempio: epmpassword=myPwd.epw

epmurl L'URL dell'ambiente in cui archiviare le transazioni con corrispondenza.

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

objectstorageusername L'ID di un utente che dispone dei diritti di accesso in scrittura richiesti per lo strumento di memorizzazione oggetti cloud di Oracle.

Per gli utenti creati in un provider di identità federata, specificare il nome completamento qualificato dell'utente, ad esempio exampleIdP/jdoe o exampleIdP/john.doe@example.com, dove exampleIdP indica il nome del provider di identità federata. Per altri utenti, specificare l'ID utente.

Esempio: epmusername=myIdP/jdoe

objectstoragepassword La password Swift o il token di autenticazione associato all'utente identificato in objectstorageusername. Questa password non corrisponde a quella utilizzata dall'utente per accedere alla console di memorizzazione degli oggetti. Il token di autenticazione è un token generato da Oracle utilizzato per l'autenticazione con API di terze parti, ad esempio per l'autenticazione con un client Swift. Per istruzioni per la creazione di questo token, fare riferimento alla sezione Come creare un token di autenticazione nella Documentazione dell'infrastruttura Oracle Cloud.

Esempio: objectstoragepassword=jDoe_PWD

objectstorageurl L'URL del gruppo di memorizzazione oggetti cloud di Oracle con allegato un nome oggetto facoltativo.

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

matchtype L'identificativo (TextID) del tipo di corrispondenza dal quale archiviare le transazioni con corrispondenza.

Esempio: matchtype=cashrecon

age

Il numero di giorni trascorsi dalla creazione della corrispondenza della transazione. Una transazione con corrispondenza che risale a un numero di giorni superiore o uguale a questo valore verrà archiviata.

Esempio: age=180

filteroperator Le condizioni di filtro per identificare i conti contenenti transazioni con corrispondenza per l'archiviazione. Deve trattarsi di equals, not_equals, starts_with, ends_with, contains o not_contains.

Questo valore viene utilizzato insieme al valore filterValue per identificare i conti a partire dai quali devono essere archiviate le transazioni con corrispondenza.

Esempio: filteroperator=not_equals

filtervalues Uno o più valori di filtro per identificare le transazioni da archiviare. Se per filterOperator è specificato equals o not_equals, è possibile utilizzare un elenco separato da spazi per specificare più valori. Se vengono specificati più valori, vengono selezionate per l'archiviazione le transazioni contenute in conti che soddisfano la combinazione operatore e valore di filtro.

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

proxyserverusername Il nome utente per l'autenticazione di una sessione sicura con il server proxy che controlla l'accesso a Internet.

Esempio: proxyserverusername=myProxyserver

proxyserverpassword La password per autenticare l'utente con il server proxy.

Esempio: proxyserverpassword=myProxyserver_pwd

proxyserverdomain Il nome del dominio definito per il server proxy.

Esempio: proxyserverdomain=myProxyDomain

Script per Windows

Creare transaction_match.ps1 copiando lo script seguente. Memorizzarlo nella cartella in cui è inserito input.properties.

# 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 Linux/UNIX

Creare transaction_match.sh copiando lo script seguente. Memorizzarlo nella cartella in cui è inserito input.properties.

#!/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."