jeudi 4 juillet 2019

Plantage lors du calcul des amortissements avec fermeture FA


Plantage lors du calcul des amortissements avec fermeture FA

Extrait du journal du traitement :

+---------------------------------------------------------------------------+
Assets: Version : 12.0.0

Copyright (c) 1979, 1999, Oracle Corporation. All rights reserved.

FADEPR module: Exécution d'amortissement
+---------------------------------------------------------------------------+

Date et heure système : 02-JUL-2019 09:15:41

+---------------------------------------------------------------------------+

Etat des anomalies constatées lors du calcul de l'amortissement
APP-OFA-48152: Immobilisation numéro : 116200000919.1
APP-OFA-48152: Immobilisation numéro : 884467
APP-OFA-48152: Immobilisation numéro : 884468
APP-OFA-48152: Immobilisation numéro : 884469
Amortissement : 66 immobilisations traitées
APP-OFA-48208: fadatd:  a la valeur  calling fadpaa.
APP-OFA-48208: fadatd: method a la valeur STL.
APP-OFA-48208: fadatd: life a la valeur 60.
APP-OFA-48208: fadpaa: before faddha:  method:  a la valeur STL.
APP-OFA-48208: fadpaa: after faddha:  method:  a la valeur STL.
APP-OFA-48208: fadpaa: before fadaid: method:  a la valeur STL.
APP-OFA-48208: fadatd:  a la valeur  came back from fadpaa.
APP-OFA-48208: fadatd:  a la valeur  calling fadpaa.
APP-OFA-48208: fadatd: method a la valeur STL.
APP-OFA-48208: fadatd: life a la valeur 60.
APP-OFA-48208: fadpaa: before faddha:  method:  a la valeur STL.
APP-OFA-48208: fadpaa: after faddha:  method:  a la valeur STL.
APP-OFA-48208: fadpaa: before fadaid: method:  a la valeur STL.
APP-OFA-48208: fadatd:  a la valeur  came back from fadpaa.
APP-FND-01564: Erreur ORACLE 1 dans fadaid.

Cause : L'exécution de la routine fadaid a échoué en raison de ORA-00001: violation de contrainte unique (FA.FA_DEPRN_DETAIL_U1)
.

L'instruction SQL qui était en cours d'exécution lorsque l'erreur est survenue est  et était exécuté à partir du fichier .
APP-OFA-47661: Erreur : Insertion impossible dans table FA_DEPRN_DETAIL

    Cause :    Problème de base de données.

    Action :    Contactez l'administrateur du système.

APP-OFA-47016: ID d'imputation : 958502
APP-OFA-47016: ID d'imputation : GD_N_CM_TH_115
APP-OFA-47016: ID d'imputation : 24234
APP-OFA-47016: ID d'imputation : 02/07/2019 09:15:41
APP-OFA-47016: ID d'imputation : 0
APP-OFA-47016: ID d'imputation : 0
APP-OFA-47016: ID d'imputation : 0
APP-OFA-47016: ID d'imputation : 0
APP-OFA-47016: ID d'imputation : 0
APP-OFA-47016: ID d'imputation : 0
APP-OFA-47016: ID d'imputation : 0
APP-OFA-47016: ID d'imputation : 376684.25
APP-OFA-47016: ID d'imputation : 0
APP-OFA-47016: ID d'imputation : D
APP-OFA-47016: ID d'imputation : 0
APP-OFA-47715: Erreur : échec fonction fadaid (appelée à partir de faddep)
APP-OFA-47715: Erreur : échec fonction faddep (appelée à partir de FADEPR)
/nafiprd/app/apps/apps_st/appl/fa/12.0.0/bin/FADEPR
Programme terminé avec le signal 11


+---------------------------------------------------------------------------+
Exécution des options de fin de traitement en cours...

+---------------------------------------------------------------------------+

En cherchant sur le support Oracle j'ai trouvé la note suivante qui semble correspondre à notre problème.

FADEPR Depreciation Errors: ORACLE Error 1 In Fadaid, Signal 11 (Doc ID 2262337.1)

Seulement la solution propose de passer le patch suivant qui est un gros patch et nécessiterait beaucoup de tests ensuite.
Etant donné que nous sommes en clôture et pas manque de moyens humains, nous n'avons pas le temps d'effectuer cette solution.

 Patch 22485014:R12.FA.B - R12.1: FIXED ASSETS RECOMMENDED PATCH COLLECTION, FEB 2016

 Nous avons néanmoins récupéré cette requête, donc les résultats correspondent exactement à
la liste des immobilisations sur lesquelles nous avions effectuée des transferts de compte durant les jours précédents.

Nous avons donc reproduit quelques cas d'erreurs sur l'environnement de test (sans difficulté).

select distinct(aj.book_type_code)
,dp.period_name
,ad.asset_number
,aj.asset_id
,SUBSTR(aj.source_type_code,1,20) source_type_code
,aj.distribution_id
,aj.period_counter_created
from fa_adjustments aj
,fa_deprn_detail dd
,fa_deprn_periods dp
,fa_additions ad
where aj.distribution_id= dd.distribution_id(+)
and aj.period_counter_created = dd.period_counter(+)
and aj.book_type_code = dd.book_type_code(+)
and ad.asset_id = aj.asset_id
and dd.deprn_amount is null
and dp.book_type_code = aj.book_type_code
and dp.period_close_date is NULL
--and dp.book_type_code in ('GD_N_CM_IT_802')
and dp.book_type_code in ('GD_N_CM_RU_555')
and aj.period_counter_created = dp.period_counter
and exists (select 'already here'
              from fa_deprn_detail dd2
             where dd2.asset_id = aj.asset_id
               and dd2.book_type_code = aj.book_type_code
               and dd2.period_counter = aj.period_counter_created);

Les montants amortis étant corrects, nous n'avions pas de correction à y apporter.
Nous avons alors décider d'enlever les écritures d'ajustement (qui n'apportaient aucune modification comptable) du scope des écritures traitées.

SELECT *
FROM fa_additions_b
where asset_number in  ('109531.C','561342.C')

-- On vérifie les ajustements concernés (4 lignes pour chaque immobilisation)
SELECT *
from fa_adjustments
where asset_id in (697493,697841)
and source_type_code = 'TRANSFER'
and period_counter_created = 24234;

-- On modifie le livre pour que les lignes correspondantes ne soient plus prises en compte par le traitement de fermeture de période.
UPDATE fa_adjustments
SET BOOK_TYPE_CODE = 'FI_ER_CM_TH_115'
WHERE BOOK_TYPE_CODE = 'FI_N_CM_TH_115'
AND  asset_id in (697493,697841)
and source_type_code = 'TRANSFER'
and period_counter_created = 24234;

UPDATE fa_adjustments
SET BOOK_TYPE_CODE = 'GD_ER_CM_TH_115'
WHERE BOOK_TYPE_CODE = 'GD_N_CM_TH_115'
AND  asset_id in (697493,697841)
and source_type_code = 'TRANSFER'
and period_counter_created = 24234;

Nous avons ensuite pu relancer le traitement de calcul des amortissements avec fermeture de période, lequel s'est terminé sans erreur. Tous les tests réalisés sur les biens concernés sont OK (refermeture de période avec calcul des amortissements, transfert, reclassement, cession).

Aucun commentaire: