DEFINITION DUP_TAB_NORMITINERIS_660004678 0
DEFINITION DUP_TAB_NORMROAMERS_660004678 1
DEFINITION Multidistribution_Non_660004678 0
DEFINITION DISTRIBUTION_INCONNU_660004678 1
DEFINITION TRAI_KO_660004678 -1
DEFINITION MODULE_DISTR_660004678 0xA000
DEFINITION ERR_NORM_660004678 0x010
DEFINITION ERR_DUPL_660004678 0x0D0
DEFINITION ERR_DISTR_660004678 0x110
REGISTRE ENTIER erreur_660004678
REGISTRE ENTIER flag_rdt_660004678
REGISTRE ENTIER type_erreur_660004678
REGISTRE ENTIER date_fin_660004678
REGISTRE ENTIER digit1_660004678
REGISTRE ENTIER digit2_660004678
REGISTRE ENTIER digit3_660004678
REGISTRE ENTIER digit4_660004678
REGISTRE ENTIER digit5_660004678
REGISTRE ENTIER TON_660004678
REGISTRE ENTIER NPI_660004678
REGISTRE ENTIER CSDaddValue_660004678
REGISTRE ENTIER userRate_660004678
REGISTRE ENTIER userProtocol_660004678
REGISTRE ENTIER transIndicator_present_660004678
REGISTRE ENTIER tranInd_660004678
REGISTRE ENTIER indice_duptab_660004678
REGISTRE ENTIER dig3_660004678
REGISTRE ENTIER indice_660004678
REGISTRE ENTIER taille_660004678
REGISTRE ENTIER val_660004678
REGISTRE ENTIER date_660004678
REGISTRE ENTIER code_rejet_660004678
REGISTRE ENTIER EFFICACE_660004678
REGISTRE ENTIER MODULE_660004678
REGISTRE ENTIER ERREUR_660004678
REGISTRE ENTIER position_660004678
REGISTRE ENTIER longueur_660004678
REGISTRE ENTIER IMSI_OrangeCo_660004678
REGISTRE ENTIER date_cra_660004678
REGISTRE POINTEUR str_IMSI_660004678
REGISTRE POINTEUR str_MNC_660004678
REGISTRE POINTEUR str_conteneur_660004678
REGISTRE POINTEUR str_exchasciident_660004678
REGISTRE POINTEUR str_exchDCBdent_660004678
REGISTRE POINTEUR pt_localisation_660004678
REGISTRE POINTEUR pt_localisationDCB_660004678
REGISTRE POINTEUR pt_1_660004678
REGISTRE POINTEUR pt_2_660004678
REGISTRE POINTEUR pt_3_660004678
REGISTRE POINTEUR pt_4_660004678
######################################################################################
# Pcode distribution ToMsg_nss9
#
# Historique :
# 24/08/2009 - PKH - G2R3 Correction QC396
# 11/06/2010 - JLG - G2R6C800 : appel fonction aiguillage2, creation enveloppe E_Redistri2,
#                                     ajout champ T3t55 (GFlag2) et T3t56 (GValue)
# 07/12/2010 - JLG - G3R1lot4 Verification/Correction des variables (constantes, entiers, pointeurs)
# 10/03/2011 - JLG - G3R2C4 fusion G3R2C3 avec G3R1C600 (ajout champ T3t99)
# 29/02/2012 - JLG - G3R6 QC1005 modif alarme retour aiguillage
# 14/05/2012 - PKH - G3R7 Gestion du code MNC pour les MVNOs lights
# 25/10/2012 - JLG - G3R8 lot2 : CS Fallback, Localisation 4G
# 21/11/2012 - JLG - QC1136 champ V3t3 est absent
# 11/02/2014 - JLG - G5R1 QC1331, Built 3 : Changement Marque Audit
# 02/07/2014 - JLG - G5R1 QC1405, champ eec du DPV si g_ieec > 500
# 09/10/2014 - JLG - QC1444 correction supplementaire de la QC1292
# 16/02/2015 - JLG - QC1522
#######################################################################################
# Definition des constantes



# Declarations des variables




#QC396





# /QC396
trace("**** ToMsg_nss9 : Debut du pcode de distribution ****")

# OGA 230 g_iartin et redistribution
# ==================================
# copie du CRA original dans le g_iartout12
erreur_660004678 = i_dup_art_id(g_iartin, g_iartout12)
# /OGA 230


#
# initialisation des variables

pt_localisation_660004678 = "pt_localisation_"
pt_localisationDCB_660004678 = "pt_localisationDCB_"
pt_1_660004678="pt_1_1"
pt_2_660004678="pt_2_2"
pt_3_660004678="pt_3_3"
pt_4_660004678="pt_4_4444444"

date_660004678 = -1
EFFICACE_660004678 = 1
MODULE_660004678 = MODULE_DISTR_660004678
ERREUR_660004678 = 0
code_rejet_660004678 = 0


IMSI_OrangeCo_660004678 = 0
date_cra_660004678 = 0

#QC396
str_exchasciident_660004678 = "str_exchasciident19191919191919191919191911991919191919191919"
str_exchDCBdent_660004678 = "str_exchasciident232323232323232323232323232323232323233223233"
position_660004678 = 0
longueur_660004678 = 0
# /QC396
str_IMSI_660004678 = "str_IMSI376376376736736736373637336373637363736373637363756373363873837383733837833"
str_MNC_660004678 = "str_MNC91239123912391239123912391"
str_conteneur_660004678 = "str_conteneur73457347347347347374734737477374737473477374"
i_strcpy (str_MNC_660004678, "")
i_strcpy (str_conteneur_660004678, "")
i_strcpy (str_IMSI_660004678, "")

#G3R7 Creation Conv_URS g_iartout9
erreur_660004678 = i_cree_art("Conv_URS", g_iartout9)

# FE_0028 comptabilisation des CRAs issus de la redistribution
date_fin_660004678=i_get_art_field(g_iartin, $ToMsg_nss9::dfin)
erreur_660004678= i_incr_redist_dist_660004265(date_fin_660004678)

date_cra_660004678=i_get_art_field(g_iartin, $ToMsg_nss9::ddebut)

##################################################################################
# Identification de la provenance de l'article
# flag_rdt : nb de passage en redistribution (lecture de l'enveloppe obligatoire)
##################################################################################
flag_rdt_660004678 = -1
flag_rdt_660004678 = i_LireRedistCpt()

SI (flag_rdt_660004678 == 0)
ALORS
  erreur_660004678 = i_add_opt( "E_Redistri2" )
FINSI
erreur_660004678 = i_set_attr_val_n($E_Redistri2::EnvoiRedis, 0)



#
# Creation de l'article dans le format pivot
#

######### Variables fonctionnelles

#G3R8 lot2 QC1136
## localisation (pt_localisation)
i_strcpy(pt_localisation_660004678, "")
erreur_660004678 = i_get_art_str(g_iartin, $ToMsg_nss9::1stCallingLocIf, pt_localisation_660004678)
# pt_localisation = 1stCallingLocIf
SI (i_valid_field_n(g_iartin, $ToMsg_nss9::1stCgLocInfEx))
ALORS
  #  localisation = pt_1 + pt_2 + pt_3 ou pt_4 + pt_3 (car pt_4=pt_1+pt_2)
  #  pt_1 = 5 premiers digits de T3t4/1stCalledLocIf
  #  pt_2 = 3 derniers digits de T3t12/1stCalledLocIfExt
  #  pt_3 = 4 derniers digits significatifs de T3t4/1stCalledLocIf (sans 0xF de bourrage)
  i_get_sub_str (pt_localisation_660004678, 0, 4, pt_1_660004678)
  i_get_sub_str (pt_localisation_660004678, -1, -1, pt_4_660004678)

# QC1522 ne pas prendre en compte dernier quartet si == 0xF
  SI (i_strcmp(pt_4_660004678, "F"))
  ALORS
    i_get_sub_str (pt_localisation_660004678, -4, -1, pt_3_660004678)
  SINON
    i_get_sub_str (pt_localisation_660004678, -5, -2, pt_3_660004678)
  FINSI

  erreur_660004678 = i_get_art_str(g_iartin, $ToMsg_nss9::1stCgLocInfEx, pt_localisation_660004678)
  # pt_localisation = 1stCgLocInfEx
  i_get_sub_str (pt_localisation_660004678, -3, -1, pt_2_660004678)
  erreur_660004678 = i_format_str2( pt_4_660004678, "%s%s", pt_1_660004678, pt_2_660004678)
  erreur_660004678 = i_format_str2( pt_localisation_660004678, "%s%s", pt_4_660004678, pt_3_660004678)
  # pt_localisation=pt_1+pt_2+pt_3 = 5ers digits de 1stCallingLocIf +  3 derniers digits de 1stCgLocInfEx +  4 derniers digits significatifs de 1stCgLocIf
FINSI
trace2("<<<__LINE__<<<__FILE__<< pt_localisation=<%s>", pt_localisation_660004678, "")

## IMSI_OrangeCo
digit1_660004678 = i_get_art_fieldtab(g_iartin, $ToMsg_nss9::IMSI, 0)
digit2_660004678 = i_get_art_fieldtab(g_iartin, $ToMsg_nss9::IMSI, 1)
digit3_660004678 = i_get_art_fieldtab(g_iartin, $ToMsg_nss9::IMSI, 2)
digit4_660004678 = i_get_art_fieldtab(g_iartin, $ToMsg_nss9::IMSI, 3)
digit5_660004678 = i_get_art_fieldtab(g_iartin, $ToMsg_nss9::IMSI, 4)
SI (digit1_660004678==2 && digit2_660004678==0 && digit3_660004678==8 && digit4_660004678==0 && digit5_660004678==1)
ALORS
# Cas des abonnes ITINERIS
#G3R7 gestion Gestion du code MNC pour les MVNOs lights
  IMSI_OrangeCo_660004678 = 1
SINON
  SI (digit1_660004678==2 && digit2_660004678==0 && digit3_660004678==8)
  ALORS
    erreur_660004678 = i_get_art_str(g_iartin, $ToMsg_nss9::IMSI,str_IMSI_660004678)
    i_get_sub_str (str_IMSI_660004678, 0, 4, str_MNC_660004678)
    erreur_660004678 = i_format_str2( str_conteneur_660004678, "%s%s", "L_", str_MNC_660004678)
    SI (i_get_tab_field("MVNO", date_cra_660004678, str_conteneur_660004678)) != g_inull
    ALORS
      IMSI_OrangeCo_660004678 = 1
    SINON
      IMSI_OrangeCo_660004678 = 0
    FINSI
  FINSI
FINSI

#####################################################################
# Choix de la table de duplication 
#####################################################################

SI IMSI_OrangeCo_660004678
ALORS
#/G3R7
# les 2 premiers chiffres sont le TON, NPI, donc on commence avec le 3eme chiffre
# on boucle sur les chiffres et on met tout ` FF dhs qu'on tombe sur aitre chose qu'un chiffre (0 ` 9)
  indice_660004678 = 2
  taille_660004678 = i_get_art_field(g_iartin, $ToMsg_nss9::serviceCentAdr-1)
  taille_660004678 = taille_660004678 * 2

  POINT BOUCLE_DEBUT_ITINERIS
  SI (indice_660004678 < taille_660004678)
  ALORS
    val_660004678 = i_get_art_fieldtab(g_iartin, $ToMsg_nss9::serviceCentAdr, indice_660004678)
    SI (val_660004678 > 9)
    ALORS
      erreur_660004678 = i_set_art_fieldtab(g_iartin, $ToMsg_nss9::serviceCentAdr, indice_660004678, 15)
    FINSI
    indice_660004678 = indice_660004678 + 1
    SAUT BOUCLE_DEBUT_ITINERIS
  FINSI
  indice_duptab_660004678 = DUP_TAB_NORMITINERIS_660004678
SINON
# Cas des ROAMERS
# --- SUppression des caracteres speciaux 'a' a 'e'
  TON_660004678 = i_get_art_fieldtab(g_iartin, $ToMsg_nss9::serviceCentAdr, 0)
  NPI_660004678 = i_get_art_fieldtab(g_iartin, $ToMsg_nss9::serviceCentAdr, 1)
  SI (TON_660004678 == 2 && (NPI_660004678 == 0 || NPI_660004678 == 1))
  ALORS
    dig3_660004678 = i_get_art_fieldtab(g_iartin, $ToMsg_nss9::serviceCentAdr, 2)
    SI (dig3_660004678==0)
    ALORS
# les 2 premiers chiffres sont le TON, NPI, donc on commence avec le 3eme chiffre
# on boucle sur les chiffres et on met tout ` FF dhs qu'on tombe sur aitre chose qu'un chiffre (0 ` 9)
      indice_660004678 = 3
      taille_660004678 = i_get_art_field(g_iartin, $ToMsg_nss9::serviceCentAdr-1)
      taille_660004678 = taille_660004678 * 2

      POINT BOUCLE_DEBUT_ITINERIS_ROAMER
      SI (indice_660004678 < taille_660004678)
      ALORS
        val_660004678 = i_get_art_fieldtab(g_iartin, $ToMsg_nss9::serviceCentAdr, indice_660004678)
        SI (val_660004678 > 9)
        ALORS
          erreur_660004678 = i_set_art_fieldtab(g_iartin, $ToMsg_nss9::serviceCentAdr, indice_660004678, 15)
        FINSI
        indice_660004678 = indice_660004678 + 1
        SAUT BOUCLE_DEBUT_ITINERIS_ROAMER
      FINSI

# fonction bouchonnee !!! => remplcee par un bout de pcode
#     erreur = i_rm_escape_char_end(g_iartin, $ToMsg_nss9::serviceCentAdr)
    FINSI
  SINON
# les 2 premiers chiffres sont le TON, NPI, donc on commence avec le 3eme chiffre
# on boucle sur les chiffres et on met tout ` FF dhs qu'on tombe sur aitre chose qu'un chiffre (0 ` 9)
    indice_660004678 = 2
    taille_660004678 = i_get_art_field(g_iartin, $ToMsg_nss9::serviceCentAdr-1)
    taille_660004678 = taille_660004678 * 2

    POINT BOUCLE_DEBUT_ITINERIS_2
    SI (indice_660004678 < taille_660004678)
    ALORS
      val_660004678 = i_get_art_fieldtab(g_iartin, $ToMsg_nss9::serviceCentAdr, indice_660004678)
      SI (val_660004678 > 9)
      ALORS
        erreur_660004678 = i_set_art_fieldtab(g_iartin, $ToMsg_nss9::serviceCentAdr, indice_660004678, 15)
      FINSI
      indice_660004678 = indice_660004678 + 1
      SAUT BOUCLE_DEBUT_ITINERIS_2
    FINSI
# fonction bouchonnee !!!
#   erreur = i_rm_escape_char_end(g_iartin, $ToMsg_nss9::serviceCentAdr)
  FINSI
  indice_duptab_660004678 = DUP_TAB_NORMROAMERS_660004678
FINSI

trace1("ToMsg_nss9 : Indice de la table de duplication: %d", indice_duptab_660004678)


####################################################################
# duplication au format DPV TLV
####################################################################

erreur_660004678 = i_dup_art_tab_choix(g_iartin, g_iartout, "Tdpvgsm", indice_duptab_660004678)

SI (erreur_660004678 != 0)
ALORS
  type_erreur_660004678 = CODE_ERREUR_DUPLICATION
  ERREUR_660004678 = ERR_DUPL_660004678
  code_rejet_660004678 = MODULE_660004678 + ERREUR_660004678 + EFFICACE_660004678
  erreur_660004678 = i_PlvMessEmettre(8364, 2, g_iartout12, "", 1, code_rejet_660004678, 0, 0)
  SAUT STOCKE_ERRONE
FINSI

#T3t1
#V3t1.1 type    :-      : :CSTE :00
#V3t1.2 tentite :-      : :CSTE :00

#QC396
#V3t1.3 idemet  :D      :D:1VAL :exchangeIdent
##################################################################
# QC396, QC1292
# T3t1.3 idemet
##################################################################
# QC1444
i_strcpy(str_exchasciident_660004678, "")
i_strcpy(str_exchDCBdent_660004678, "")
erreur_660004678 = i_get_art_str(g_iartin, $ToMsg_nss9::exchasciident, str_exchasciident_660004678)
trace2("ToMsg_nss9 : ################# str_exchasciident = %s ################", str_exchasciident_660004678, "")
position_660004678 = RECHERCHE_CARACTERE_660004265(str_exchasciident_660004678, " ")
trace1("ToMsg_nss9 : ############ position= %d ###########", position_660004678)
SI ( position_660004678 > -1)
ALORS
  i_get_sub_str (str_exchasciident_660004678, 0, position_660004678 - 1 ,str_exchasciident_660004678)
  trace2("ToMsg_nss9 : ################# str_exchasciident = %s ################", str_exchasciident_660004678, "")
FINSI
longueur_660004678 = i_conv_ascii_dcb (str_exchasciident_660004678, str_exchDCBdent_660004678 )
SI (longueur_660004678 > 9)
ALORS
  longueur_660004678 = 9
FINSI
erreur_660004678 = i_memcpy_art_field_n(g_iartout, $Tdpvgsm::idemet, str_exchDCBdent_660004678, longueur_660004678)
#Fin QC396

#V3t1.4 IMSI    :D      :D:1VAL :IMSI

#V3t1.5 DATE    :D      :D:1VAL :DATE
date_660004678 = i_get_art_field(g_iartin, $ToMsg_nss9::ddebut)
erreur_660004678 = i_set_art_field(g_iartout, $Tdpvgsm::DATE, date_660004678)

#V3t1.6 DUREE   :-      : :CSTE :01
#V3t1.7 svcsup  :-      : :MSET :ff
#V3t1.8 tlserv  :-      : :CSTE :34
#V3t1.9 support1:-      : :MSET :ff
                                                                                                                                         
# G3R8 lot2
#V3t1.10, systype :- : :MSET:00    :1
SI (i_valid_field_n(g_iartin, $ToMsg_nss9::1stCgLocInfEx))
ALORS
  erreur_660004678 = i_set_art_field(g_iartout, $Tdpvgsm::systype, 0x06)
SINON
  SI (i_valid_field_n(g_iartin, $ToMsg_nss9::rNCidOf1stRNC))
  ALORS
    erreur_660004678 = i_set_art_field(g_iartout, $Tdpvgsm::systype, 0x01)
  FINSI
FINSI

#V3t1.11 reserve2:-      : :MSET :ff
#V3t1.12 origine :-      : :MSET :ff
#V3t1.13 indeff  :-      : :CSTE :00
#V3t1.14 tterm   :-      : :MSET :ff :1
#V3t1.15 indtax  :-      : :MSET :ff :1
#V3t1.16 nbUT    :-      : :MSET :00:4
#V3t1.17 chgcar  :-      : :MSET :ff:2
#V3t1.18 couleur :-      : :MSET :ff:1
#T3t2
#si dup=0 alors idpart :- :E:TRUNC+NORM :serviceCentAdr :TRUNC_IMSI_ITINERIS:$MET_ASN1_NEW
#si dup=1 alors idpart :- :E:TRUNC+NORM :serviceCentAdr :TRUNC_ROAMERS:$ROAMERS_SORTANT

#T3t3
#G3R8 lot2
#local   :- :E:1VAL :1stCallingLocIf
SI (i_valid_field_n(g_iartin, $ToMsg_nss9::1stCgLocInfEx))
ALORS
  longueur_660004678 = i_conv_ascii_dcb(pt_localisation_660004678, pt_localisationDCB_660004678)
  erreur_660004678 = i_resize_tlv(g_iartout, "T3t3", "local", longueur_660004678*8)
  erreur_660004678 = i_memcpy_art_field_n(g_iartout, $Tdpvgsm::local, pt_localisationDCB_660004678, longueur_660004678)
FINSI

#V3t4 MSISDN  :- :E:NORM :callingNumber :-:$MET_ASN1_NEW
#V3t5 IMEI    :- :E:1VAL :IMEI

#V4t30.1 timeInCE:- : :MSET :11
#V4t30.2 eec     :- : :CSTE :-1
# QC1331
#erreur=set_timeInCE_EEC(0)
########### Date_Audit
erreur_660004678 = i_set_art_field(g_iartout, $Tdpvgsm::timeInCE,  i_DHgetLocalTime(4, 7, i_date_audit()))
########### eec
# QC1405
SI (g_ieec > 500)
ALORS
  erreur_660004678 = i_set_art_field(g_iartout, $Tdpvgsm::eec, g_ieec - 500)
SINON
  erreur_660004678 = i_set_art_field(g_iartout, $Tdpvgsm::eec, g_ieec)
FINSI
#/QC1405

#V3t33 SMSrecepMSISDN
# on passe maintenant par une duplication intermidiaire pour tester la normalisation du champ
SI(i_valid_field_n(g_iartin,$ToMsg_nss9::destAddress))
ALORS
  erreur_660004678 = i_dup_art_tab_choix(g_iartin, g_iartout4, "TnormalTlv", indice_duptab_660004678)
  trace1("ToMsg_nss9 : retour i_dup_art_tab_choix sur TnormalTlv = %d", erreur_660004678)
  SI( erreur_660004678 == 0 )
  ALORS
    trace("ToMsg_nss9 : ** dup T3t33 / TnormalTlv")
    erreur_660004678 = i_ajout_tlv(g_iartout, "T3t33", "")
    erreur_660004678 = i_dup_chp_rnisGSM(g_iartout4, g_iartout, $TnormalTlv::buf, $Tdpvgsm::SMSrecepMSISDN, -$NORM:AUT_IDENT, 0)
# ano 2480
    SI( erreur_660004678 != 0 )
    ALORS
      type_erreur_660004678 = CODE_ERREUR_DUPLICATION
      trace("ToMsg_nss9 : Erreur duplication champ SMSrecepMSISDN")
      ERREUR_660004678 = ERR_NORM_660004678
      code_rejet_660004678 = MODULE_660004678 + ERREUR_660004678 + EFFICACE_660004678
      erreur_660004678 = i_PlvMessEmettre(8366, 2, g_iartout12, "", 2, code_rejet_660004678, "SMSrecepMSISDN", 0)
      SAUT STOCKE_ERRONE
    FINSI
# /ano 2480
  FINSI
FINSI

#V4t35.4 presenceInd
# Les SScode ne sont pas defini a present pour ce type

#V3t37 CSDaddInfo
SI (i_get_art_field(g_iartout, $Tdpvgsm::svcsup) == 0x17  || i_get_art_field(g_iartout, $Tdpvgsm::svcsup) == 0x1F)
ALORS
  userRate_660004678     = 0x08
  userProtocol_660004678 = 0x04
SINON
  userRate_660004678     = 0xFF
  userProtocol_660004678 = 0xFF
FINSI
transIndicator_present_660004678 = 0
# comme transIndicator n'existe pas pour le ToMsg_nss9
# on affecte toujours 0x00 ` la variable transInd
SI ( transIndicator_present_660004678 )
ALORS
  tranInd_660004678 = 0
# correction FO 426 : transInd si present
SINON
  SI ( i_get_art_field(g_iartout, $Tdpvgsm::svcsup) == 0x17 || i_get_art_field(g_iartout, $Tdpvgsm::svcsup) == 0x1F)
  ALORS
    tranInd_660004678 = 0x00
  SINON
    tranInd_660004678 = 0xFF
  FINSI
FINSI
SI (userRate_660004678 != 0xFF || userProtocol_660004678 != 0xFF || tranInd_660004678 != 0xFF)
ALORS
  erreur_660004678 = i_ajout_tlv(g_iartout, "T3t37", "")
  erreur_660004678 = i_resize_tlv(g_iartout, "T3t37", "CSDaddInfo", 3)
  CSDaddValue_660004678 = userRate_660004678*0x10000 + userProtocol_660004678*0x100 + tranInd_660004678
  erreur_660004678 = i_set_art_field(g_iartout, $Tdpvgsm::CSDaddInfo, CSDaddValue_660004678)
FINSI

#V4t38.1 origCallpartId
# Le calledNumber n est pas defini pour cet article
#V4t38.2 dialledDigits
#      Le calledNumber n est pas defini pour cet article
#V4t38.3 equipmentType :- : :CSTE:00

# Ajout des T3t55 et T3t56
SI (!i_valid_field_n(g_iartout, $Tdpvgsm::GFlag2))
ALORS
  erreur_660004678 = i_ajout_tlv(g_iartout, "T3t55", "")
FINSI

SI (!i_valid_field_n(g_iartout, $Tdpvgsm::GValue))
ALORS
  erreur_660004678 = i_ajout_tlv(g_iartout, "T3t56", "")
FINSI

SI (!i_valid_field_n(g_iartout, $Tdpvgsm::GretaTag))
ALORS
  erreur_660004678 = i_ajout_tlv(g_iartout, "T3t99", "")
FINSI

erreur_660004678 = aiguillage2_660004590 (g_iartout12, g_iartout, DISTRIBUTION_INCONNU_660004678, Multidistribution_Non_660004678)
SI (erreur_660004678 == TRAI_KO_660004678)
ALORS
# QC1005
  trace("<<<__LINE__<<<__FILE__<<< Erreur retour fonction aiguillage2")
  SAUT STOCKE_ERRONE
FINSI
trace("**** ToMsg_nss9 : Fin du pcode de distribution ****")

RETOUR TRAIT_OK


#
# stockage des errones
#
POINT STOCKE_ERRONE
erreur_660004678 = i_make_art_rej(g_iartout12, g_iartout11, code_rejet_660004678)
erreur_660004678 = i_stocke_art(g_iartout11,0,PT_ERRONE,0)
RETOUR TRAIT_OK
#-------------------------- Fin ToMsg_nss9_dis.src -----------------------
