Archivage des anciennes transactions mises en correspondance et purge des transactions archivées

Utilisez les scripts de cette section pour archiver les transactions mises en correspondance, y compris les détails annexes et les détails d'ajustement, dont l'ancienneté est égale ou supérieure à une valeur donnée, puis purger les transactions archivées d'Account Reconciliation. Les transactions mises en correspondance archivées sont enregistrées dans un fichier ZIP.

Fonctionnement du script

  1. Connexion à l'environnement à l'aide des informations du fichier input.properties.
  2. Exécution de la commande archiveTmTransactions suivante pour créer une archive. Le fichier ZIP et le fichier journal générés utilisent les noms par défaut Archive_Transactions_INTERCO_JOB_ID.zip et Archive_Transactions_INTERCO_JOB_ID.log.

    epmautomate archiveTmTransactions INTERCO 365 filterOperator=contains filterValue=14001

    Vous pouvez modifier le fichier input.properties pour modifier les paramètres de commande.
  3. Téléchargement du fichier journal et du fichier ZIP contenant les transactions archivées sur l'ordinateur local. Le script affiche un message d'erreur si aucune transaction correspondante n'est trouvée.
  4. Copie du fichier .zip contenant les transactions archivées vers la banque d'objets Oracle.
  5. Exécution de la commande purgeArchivedTmTransactions (avec l'ID du job archiveTmTransactions) pour supprimer les transactions mises en correspondance archivées de l'application.

Exécution du script

  1. Créez le fichier input.properties et mettez-le à jour avec les informations relatives à votre environnement. Enregistrez le fichier dans un répertoire local. Ce répertoire est nommé parentsnapshotdirectory dans cette discussion. Le contenu de ce fichier varie en fonction du système d'exploitation.

    Assurez-vous que vous disposez de privilèges d'écriture sur ce répertoire. Pour Windows, vous devrez peut-être démarrer PowerShell à l'aide de l'option Exécuter en tant qu'administrateur afin de pouvoir exécuter les scripts.

  2. Créez le script transaction_match.ps1 (Windows PowerShell) ou transaction_match.sh (Linux/UNIX), puis enregistrez-le dans le répertoire parentsnapshotdirectory, où se trouve input.properties.
  3. Lancez le script.
    • Linux/UNIX : exécutez ./transaction_match.sh.
    • Windows PowerShell : exécutez transaction_match.ps1.

Création du script input.properties

Créez input.properties en copiant et en mettant à jour le script suivant.

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

Remarque :

Windows uniquement : enlevez les propriétés suivantes du fichier input.properties :

  • javahome=JAVA_HOME
  • epmautomatescript=EPM_AUTOMATE_LOCATION

Si l'authentification au niveau du serveur proxy n'est pas activée pour votre environnement réseau Windows, enlevez les propriétés suivantes du fichier input.properties.

  • proxyserverusername
  • proxyserverpassword
  • proxyserverdomain

Tableau 3-24 Paramètres du fichier input.properties

Paramètre  Description
javahome Répertoire dans lequel le JDK utilisé par EPM Automate est installé. Supprimez cette entrée de la version Windows du fichier input.properties.

Exemple : javahome=./home/JDK/bin

epmautomatescript Répertoire dans lequel EPM Automate est installé. Supprimez cette entrée de la version Windows du fichier input.properties.

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

epmusername Nom d'utilisateur d'un administrateur de service, d'un super utilisateur, d'un utilisateur ou d'un visualiseur autorisé à archiver des transactions mises en correspondance.

Exemple : epmusername=ServiceAdmin

epmuserpassword Fichier de mots de passe cryptés de l'utilisateur identifié comme epmusername.

Exemple : epmpassword=myPwd.epw

epmurl URL de l'environnement dans lequel les transactions mises en correspondance doivent être archivées.

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

objectstorageusername ID d'un utilisateur qui dispose des droits d'accès en écriture requis dans Oracle Object Storage Cloud.

Pour les utilisateurs créés dans un fournisseur d'identités fédérées, indiquez le nom qualifié complet de l'utilisateur (par exemple, exampleIdP/jdoe ou exampleIdP/john.doe@example.com, où exampleIdP est le nom du fournisseur d'identités fédérées). Pour les autres utilisateurs, indiquez l'ID utilisateur.

Exemple : epmusername=myIdP/jdoe

objectstoragepassword Mot de passe Swift ou jeton d'authentification associé à l'utilisateur identifié dans objectstorageusername. Ce mot de passe est différent de celui dont l'utilisateur se sert pour se connecter à la console Object Storage. Le jeton d'authentification est un jeton généré par Oracle que vous utilisez pour l'authentification auprès d'API tierces, par exemple auprès d'un client Swift. Afin d'obtenir des instructions pour créer ce jeton, reportez-vous à la section Procédure de création d'un jeton d'authentification du guide Documentation Oracle Cloud Infrastructure.

Exemple : objectstoragepassword=jDoe_PWD

objectstorageurl URL du bucket Oracle Object Storage Cloud à laquelle est ajouté un nom d'objet facultatif.

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

matchtype Identificateur (TextID) du type de correspondance dont les transactions mises en correspondance doivent être archivées.

Exemple : matchtype=cashrecon

age

Nombre de jours écoulés depuis la mise en correspondance de la transaction. Toute transaction mise en correspondance antérieure ou égale à cette valeur sera archivée.

Exemple : age=180

filteroperator Conditions de filtre permettant d'identifier les comptes qui contiennent des transactions mises en correspondance pour archivage. Valeurs admises : equals, not_equals, starts_with, ends_with, contains ou not_contains.

Cette valeur est associée à filterValue pour identifier les comptes dont les transactions mises en correspondance doivent être archivées.

Exemple : filteroperator=not_equals

filtervalues Valeurs de filtre permettant d'identifier les transactions à archiver. Si equals ou not_equals est indiqué en tant que filterOperator, vous pouvez utiliser une liste de valeurs séparées par des espaces pour indiquer plusieurs valeurs. Si plusieurs valeurs sont indiquées, les transactions provenant des comptes correspondant à toute combinaison d'opérateur de filtre et de valeur de filtre sont sélectionnées afin d'être archivées.

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

proxyserverusername Nom d'utilisateur permettant d'authentifier une session sécurisée avec le serveur proxy qui contrôle l'accès à Internet.

Exemple : proxyserverusername=myProxyserver

proxyserverpassword Mot de passe pour l'authentification de l'utilisateur auprès du serveur proxy.

Exemple : proxyserverpassword=myProxyserver_pwd

proxyserverdomain Nom du domaine défini pour le serveur proxy.

Exemple : proxyserverdomain=myProxyDomain

Script Windows

Créez transaction_match.ps1 en copiant le script suivant. Stockez-le dans le même dossier que le fichier 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

Créez transaction_match.sh en copiant le script suivant. Stockez-le dans le même dossier que le fichier 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."