Alte abgeglichene Transaktionen archivieren und archivierte Transaktionen löschen

Verwenden Sie die Skripte in diesem Abschnitt, um abgeglichene Transaktionen einschließlich Bestätigungs- und Anpassungsdetails, die mindestens dem angegebenen Alter entsprechen, zu archivieren. Löschen Sie die archivierten Transaktionen anschließend aus Account Reconciliation. Die archivierten abgeglichenen Transaktionen werden in einer ZIP-Datei erfasst.

Funktionsweise des Skripts

  1. Mit den Informationen in der Datei input.properties wird die Anmeldung in der Umgebung durchgeführt.
  2. Der folgende archiveTmTransactions-Befehl wird ausgeführt, um ein Archiv zu erstellen. Die daraus resultierende ZIP-Datei erhält standardmäßig den Namen Archive_Transactions_INTERCO_JOB_ID.zip, und die daraus resultierende Logdatei erhält standardmäßig den Namen Archive_Transactions_INTERCO_JOB_ID.log.

    epmautomate archiveTmTransactions INTERCO 365 filterOperator=contains filterValue=14001

    Sie können die Befehlsparameter durch Änderung der Datei input.properties ändern.
  3. Die Logdatei und die ZIP-Datei mit den archivierten Transaktionen werden auf den lokalen Computer heruntergeladen. Wenn keine übereinstimmenden Transaktionen gefunden werden, zeigt das Skript eine Fehlermeldung an.
  4. Die ZIP-Datei mit den archivierten Transaktionen wird in den Oracle Object Store kopiert.
  5. Der Befehl purgeArchivedTmTransactions (mit der Job-ID des archiveTmTransactions-Jobs) wird ausgeführt, um die archivierten abgeglichenen Transaktionen aus der Anwendung zu löschen.

Skripte ausführen

  1. Erstellen Sie die Datei input.properties, und aktualisieren Sie sie mit Informationen für Ihre Umgebung. Speichern Sie die Datei in einem lokalen Verzeichnis. Dieses Verzeichnis wird in dieser Erörterung als parentsnapshotdirectory bezeichnet. Die Inhalte dieser Datei unterscheiden sich je nach Betriebssystem.

    Stellen Sie sicher, dass Sie Schreibrechte in diesem Verzeichnis haben. Unter Windows müssen Sie möglicherweise PowerShell mit der Option Als Administrator ausführen starten, um Skripte ausführen zu können.

  2. Erstellen Sie das Skript transaction_match.ps1 (Windows PowerShell) oder transaction_match.sh (Linux/UNIX), und speichern Sie es im Verzeichnis parentsnapshotdirectory, in dem sich die Datei input.properties befindet.
  3. Starten Sie das Skript.
    • Linux/UNIX: Führen Sie die Datei ./transaction_match.sh aus.
    • Windows PowerShell: Führen Sie die Datei transaction_match.ps1 aus.

Skript "input.properties" erstellen

Erstellen Sie das Skript input.properties, indem Sie das folgende Skript kopieren und aktualisieren.

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

Hinweis:

Nur für Windows: Entfernen Sie die folgenden Eigenschaften aus der Datei input.properties:

  • javahome=JAVA_HOME
  • epmautomatescript=EPM_AUTOMATE_LOCATION

Wenn authentication at proxy server für Ihre Windows-Netzwerkumgebung nicht aktiviert ist, entfernen Sie die folgenden Eigenschaften aus der Datei input.properties.

  • proxyserverusername
  • proxyserverpassword
  • proxyserverdomain

Tabelle 3-24 Parameter für "input.properties"

Parameter Beschreibung
javahome Das Verzeichnis, in dem das von EPM Automate verwendete JDK installiert ist. Löschen Sie diesen Eintrag aus der Windows-Version der Datei input.properties.

Beispiel: javahome=./home/JDK/bin

epmautomatescript Das Verzeichnis, in dem EPM Automate installiert ist. Löschen Sie diesen Eintrag aus der Windows-Version der Datei input.properties.

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

epmusername Der Benutzername eines Serviceadministrators oder eines Powerusers, Benutzers oder Leseberechtigten, der autorisiert ist, abgeglichene Transaktionen zu archivieren.

Beispiel: epmusername=ServiceAdmin

epmuserpassword Die Datei mit dem verschlüsselten Kennwort für den Benutzer epmusername.

Beispiel: epmpassword=myPwd.epw

epmurl Die URL der Umgebung, in der abgeglichene Transaktionen archiviert werden sollen.

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

objectstorageusername Die ID eines Benutzers, der in Oracle Object Storage Cloud über die erforderlichen Schreibzugriffsberechtigungen verfügt.

Bei im föderierten Identitätsprovider erstellten Benutzern geben Sie den vollqualifizierten Namen des Benutzers an (Beispiel: exampleIdP/jdoe oder exampleIdP/john.doe@example.com, wobei exampleIdP der Name des föderierten Identitätsproviders ist). Geben Sie bei anderen Benutzern die Benutzer-ID an.

Beispiel: epmusername=myIdP/jdoe

objectstoragepassword Das dem Benutzer objectstorageusername zugeordnete Swift-Kennwort oder -Authentifizierungstoken. Dieses Kennwort stimmt nicht mit dem Kennwort überein, das der Benutzer für die Anmeldung bei der Object Storage-Konsole verwendet. Das Authentifizierungstoken ist ein von Oracle generiertes Token, mit dem Sie Drittanbieter-APIs authentifizieren können, beispielsweise für die Authentifizierung mit einem Swift-Client. Anweisungen zum Erstellen dieses Token finden Sie unter So erstellen Sie ein Authentifizierungstoken: in der Dokumentation Oracle Cloud Infrastructure-Dokumentation.

Beispiel: objectstoragepassword=jDoe_PWD

objectstorageurl Die URL der Oracle Object Storage Cloud-Gruppe mit einem optional angehängten Objektnamen.

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

matchtype Die ID (TextID) des Abgleichstyps, von dem die abgeglichenen Transaktionen archiviert werden sollen.

Beispiel: matchtype=cashrecon

age

Die Anzahl von Tagen, seit die Transaktion abgeglichen wurde. Abgeglichene Transaktionen, die diesem Wert entsprechen oder älter sind, werden archiviert.

Beispiel: age=180

filteroperator Die Filterbedingung zur Identifizierung der Konten, die abgeglichene Transaktionen zur Archivierung enthalten. Der Wert muss einer der folgenden sein: equals, not_equals, starts_with, ends_with, contains oder not_contains.

Dieser Wert wird mit filterValue kombiniert, um die Konten zu ermitteln, aus denen abgeglichene Transaktionen archiviert werden sollen:

Beispiel: filteroperator=not_equals

filtervalues Ein oder mehrere Filterwerte zur Identifizierung der zu archivierenden Transaktionen. Wenn equals oder not_equals als filterOperator angegeben ist, können Sie eine durch Leerzeichen getrennte Liste verwenden, um mehrere Werte anzugeben. Wenn mehrere Werte angegeben werden, werden Transaktionen aus Konten zum Archivieren ausgewählt, die zu einer beliebigen Kombination aus Filteroperator und Filterwert passen.

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

proxyserverusername Der Benutzername zum Authentifizieren einer sicheren Session auf dem Proxyserver, der den Zugriff auf das Internet steuert.

Beispiel: proxyserverusername=myProxyserver

proxyserverpassword Das Kennwort zur Authentifizierung des Benutzers beim Proxyserver.

Beispiel: proxyserverpassword=myProxyserver_pwd

proxyserverdomain Der Name der Domain, die für den Proxyserver definiert ist.

Beispiel: proxyserverdomain=myProxyDomain

Windows-Skript

Erstellen Sie die Datei transaction_match.ps1, indem Sie das folgende Skript kopieren. Speichern Sie sie im selben Ordner, in dem die Datei input.properties gespeichert ist.

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

Linux-/UNIX-Skript

Erstellen Sie die Datei transaction_match.sh, indem Sie das folgende Skript kopieren. Speichern Sie sie im selben Ordner, in dem die Datei input.properties gespeichert ist.

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