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).

mercredi 6 mars 2019

Retour sur le 1.1 ! Bille coincée dans un coin vs. bille sur un plan

En discutant avec l'éditeur du bouquin duquel sont tirés ces exercices, il me disait avoir de nombreux messages concernant le premier exercice. Ses correspondants ne comprenaient visiblement pas la différence entre l'exercice classique d'un objet glissant le long d'un plan incliné avec celui de la bille coincée dans un coin.
J'ai donc imaginé ce qui suit.


 Schéma expliquant la différence de l'analyse des forces avec et sans le mur vertical


Résolution de l'exercice par la méthode classique puis par une méthode pas à pas (en expliquant physiquement l'interaction entre les forces de réactions)






6.1 6.2 6.3 6.4 Vecteurs


Exercice 6.1 Traversée d'une rivière

Un homme se tient sur la berge d'une rivière de 1 mi de largeur. Il souhaite ce rendre sur le point directement opposé de l'autre berge. Il peut le faire de deux manières: (1) remonter le courant de telle manière que son mouvement résultant soit rectiligne (2) aller droit vers la berge opposée puis remonter le long de la berge opposée en marchant à partir du point où le courant l'a porté. S'il peut nager à 2,5 mi/hr et marcher à 4 mi/hr, et si le courant vaut 2,0 mi/hr, quelle est la plus rapide manière de traverser ? Et de combien ?











Exercice 6.2  Bateau à moteur

Un bateau à moteur circule à vitesse constante V dans une rivière où l'eau s'écoule doucement avec une vitesse constante R. Le bateau fait d'abord un aller-retour à partir de son point d'ancrage jusqu'à une distance d en amont. Puis fait un aller-retour de son point d'ancrage jusqu'à un point situé à une distance d directement de l'autre côté de la berge. Pour simplifier, on suppose que le bateau se déplace toujours avec sa vitesse maximale et qu'il ne perd pas de temps en manœuvres.  Si tV est le temps que prend le bateau pour effectuer l'aller-retour dans le sens de la rivière, tA le temps qu'il met pour faire l'aller-retour en traversant la rivière, et tL le temps qu'il prendrait pour effectuer une distance 2d sur un lac.
a) Quel est le ratio tV/tA ?
b) Quel est le ratio tA/tL ?






Exercice 6.3 Masse suspendue sur un pendule tournant

Une masse m est suspendue sur un pivot sans friction au bout d'un bâton d'une longueur arbitraire, on le fait tourner sur une trajectoire horizontale et circulaire dont le plan est à une distance H du point pivot. Trouver la période de révolution de la masse et son rayon.








Exercice 6.4 Croisement de bateaux

Vous êtes sur un bateau voyageant plein est à 15 nœuds. Un navire croise à 26 noeuds à 6 miles à votre sud ; puis est observé plus tard derrière vous, le point le plus proche entre les bateaux est de 3 miles.
a) Quelle est la direction de l'autre bateau ?
b) Combien de temps s'est écoulé entre sa position à votre sud et son point d'approche maximale ?