<%@LANGUAGE="VBSCRIPT"%> <% ' ================================ ' AIS Debug variables ' ================================ Dim AISdebugSet AISdebugSet = "N" ' ===================================== ' Make sure to catch any database error ' ===================================== On Error Resume Next ' ================================ ' AISNews Recordset and variables ' ================================ Dim AISNews Dim AISNewsError Dim AISNewsIndex Set AISNews = Server.CreateObject("ADODB.Recordset") AISNews.ActiveConnection = MM_Foundation_STRING AISNews.Source = "select M.msg_id,M.title,M.abstract,M.author,M.details,M.urgency,M.msg_date,M.expiry_date,M.app_name,A.name from navigator.app_messages M, navigator.sys_applications A where M.app_name = A.code and trunc(sysdate) between M.msg_date and M.expiry_date-1 order by msg_date desc" AISNews.CursorType = 0 AISNews.CursorLocation = 2 AISNews.LockType = 1 AISNews.Open() ' Check that DB connection and SQL run went fine If Err.Number <> 0 Then AISNewsError= Err.Description Else AISNewsError= "None" End If AISNewsIndex = 0 ' ================================ ' AISFocus Recordset and variables ' ================================ Dim AISFocus Dim AISFocusError Dim AISFocusIndex Dim AISFocusShownAlways Dim AISFocusToBeShown Dim AISFocusRequestedId Dim AISFocusContent Dim AISUpperLeftImage Dim AISUpperRightImage Dim AISNextFocusId Dim AISPreviousFocusId Set AISFocus = Server.CreateObject("ADODB.Recordset") AISFocus.ActiveConnection = MM_AISweb_STRING AISFocus.Source = "SELECT id, title, text, upper_right_image, upper_left_image, date_from, date_to, always_shown FROM articles WHERE (articles.date_from<=Date() Or IsNull(articles.date_from)) And (articles.date_to>=Date() Or IsNull(articles.date_to)) ORDER BY articles.always_shown,articles.id;" AISFocus.CursorType = 0 AISFocus.CursorLocation = 2 AISFocus.LockType = 1 AISFocus.Open() ' Check that DB connection and SQL run went fine If Err.Number <> 0 Then AISFocusError= Err.Description Response.Write(""&AISFocusError&"") Else AISFocusError= "None" End If AISFocusRequestedId = Request.QueryString("focusid") ' ================================ ' AIS Procedures used in page ' ================================ sub getFocus() ' =========================================== ' GET FOCUS ' This procedure build the focus and store it ' in the AISFocusContent variable ' =========================================== If (AISFocus.EOF OR AISFocusError<> "None") Then Call AISdebug("Focus query returned NO records - maybe database connection error or no focus active") ' No focus found, maybe an error connecting the database or none is active... ' Display a default hardcoded focus item AISFocusContent= "" AISFocusContent = AISFocusContent & "

AIS: the unique entry point to all administrative computing at CERN

" AISFocusContent = AISFocusContent & "
" AISFocusContent = AISFocusContent & "The AIS website provides you with links, documentation, Frequently Asked Questions pages, Quick Reference Guides etc on all administrative applications and projects at CERN." AISFocusContent = AISFocusContent & "

" AISFocusContent = AISFocusContent & "Choose one of the menu items on the left. If you are not sure on which option to use, the shortcuts on the right may help you finding the good one." Else Call AISdebug("Focus query returned records") AISFocusToBeShown = 0 ' Check if a given focus has been past as parameter ' In that case search for that focus (supposing it is active and therefore in the query results) If (AISFocusRequestedId) <> "" Then Call AISdebug("Requested focus: " & AISFocusRequestedId) AISFocus.MoveFirst Do Until (AISFocus.EOF) If (Cstr(AISFocus.Fields.Item("id")) = AISFocusRequestedId) Then AISFocusToBeShown = 1 Call AISdebug("Requested focus found: " & AISFocus.Fields.Item("title")) Exit Do Else Call AISdebug("Current focus id = " & AISFocus.Fields.Item("id")& ". Check next.") AISFocus.MoveNext End if Loop If (AISFocus.EOF) Then Call AISdebug("Requested focus not found or not active") End if End if ' Check if there was no requested focus or it has not been found or it is not active If (AISFocusToBeShown = 0) Then Call AISdebug("Choose a focus randomly") AISFocus.MoveFirst ' Check if there are any "Always Shown" focus (should always be on first record) AISFocusShownAlways = AISFocus.Fields.Item("always_shown").Value Call AISdebug("Always shown focus exists = " & AISFocusShownAlways) ' Check how many focus may be displayed (taking into account existence of "always shown" ones) While (NOT AISFocus.EOF) If AISFocusShownAlways Then ' There is at least one "Always Shown" focus, count only those ones If AISFocus.Fields.Item("always_shown").Value Then AISFocusIndex = AISFocusIndex+1 End If Else ' There are no "Always Shown" focus, all are counted AISFocusIndex = AISFocusIndex+1 End If AISFocus.MoveNext Wend Call AISdebug("Number of potential focus found = " & AISFocusIndex) ' Now decides (random) which focus is to be shown Randomize AISFocusToBeShown = Int((AISFocusIndex*Rnd)+1) Call AISdebug("Chosen focus = " & AISFocusToBeShown & "/" & AISFocusIndex) ' Move back to the randomly chosen focus AISFocus.MoveFirst For i = 1 to AISFocusToBeShown-1 AISFocus.MoveNext Next End if ' Now we should be placed on the focus to be displayed ' Get the to be displayed focus id AISFocusToBeShownId = AISFocus.Fields.Item("id") Call AISdebug("Chosen focus id = " & AISFocusToBeShownId) ' Find out what is the next focus id AISFocus.MoveNext If AISFocus.EOF Then AISFocus.MoveFirst End if AISNextFocusId = AISFocus.Fields.Item("id") Call AISdebug("Next focus id = " & AISNextFocusId) ' Move back to shown focus and find out at the same time which is the previous focus id AISFocus.MoveFirst If (AISFocus.Fields.Item("id") = AISFocusToBeShownId) Then ' Chosen focus was the first one, the previous one is therefore the last one Call AISdebug("Chosen focus is the first one") Do Until (AISFocus.EOF) AISPreviousFocusId = AISFocus.Fields.Item("id") AISFocus.MoveNext Loop AISFocus.MoveFirst Else Do While (AISFocus.Fields.Item("id") <> AISFocusToBeShownId) AISPreviousFocusId = AISFocus.Fields.Item("id") Call AISdebug(" - Current focus id = " & AISFocus.Fields.Item("id")) AISFocus.MoveNext Loop End If Call AISdebug(" - Moved back to chosen focus") Call AISdebug("Previous focus id = " & AISPreviousFocusId) ' Display the focus Call AISdebug("Build focus") AISUpperLeftImage = AISFocus.Fields.Item("upper_left_image") AISUpperRightImage = AISFocus.Fields.Item("upper_right_image") AISFocusContent = "" If (Len(AISUpperLeftImage)>0) Then Call AISdebug(" - upper left image is #" & AISUpperLeftImage & "#") AISFocusContent = AISFocusContent & "" Else Call AISdebug(" - no upper left image") End if If (Len(AISUpperRightImage)>0) Then Call AISdebug(" - upper right image is #" & AISUpperRightImage & "#") AISFocusContent = AISFocusContent & "" Else Call AISdebug(" - no upper right image") End if AISFocusContent = AISFocusContent & "

" & AISFocus.Fields.Item("Title").Value & "

" AISFocusContent = AISFocusContent & "
" AISFocusContent = AISFocusContent & AISFocus.Fields.Item("text") End If ' Checked if "any" focus was found end sub %> AIS: AVCL Home page

AIS Administrative Information Services

Home Previous News AIS Mandate Site Map
Applications
Projects
Business Map
Link
Presentations
AIS People
Ais Support


**Main Applications**
- EDH
- CET
- HRT
- OracleHR
- Qualiac

AVCL Home page


  Accès  Documentation Interfaces Activités en cours

 

Latest news

Introduction

L'application AVCL (AdVances and CLaims) est un outil permettant la saisie et la gestion de l'ensemble des demandes de remboursements qu'un usager est susceptible de demander, soit:
  • les remboursements de frais de voyage,
  • les remboursements de frais scolaires,
  • les indemnités de congés dans les foyers,
  • les indemnités de subsistance,
  • les frais de candidature,
  • les indemnités d'installation,
  • les frais divers (achat de livres...).
L'outil traite également les avances personnelles liées à ces demandes de remboursement et les paiements à des tiers associés.

L'AVCL gère la circulation des demandes de remboursement entre les trois acteurs principaux : saisie par les secrétariats des divisions, vérification par les services du personnel et par la division des finances. Cet usage généralisé a pour but d'éviter une double saisie des informations: sur la feuille de remboursement par les divisions, et sur système informatique par les divisions du personnel et des finances. Cet outil ne remplace pas les documents officiels (formulaires) en vigueur, mais ceux-ci sont générés à partir des données saisies dans le système.

L'application est basée sur une base de données ORACLE et est étroitement liée à l'application de gestion des ressources humaines (ORACLE HR ).

Elle a été complètement developpée au CERN en utilisant l'outil de developpement SQL*Forms V3.0 par P.Golstein and Olivier Martin.

Accès

Actuellement AVCL est utilisee par toutes les division du CERN, soit environ 150 utilisateurs .

Toute demande d'information, d'aide, de nouveau compte se fait en contactant AIS Support.

Interfaces

Interaction entre les différentes applications :

Chaines de paiement :

Chaine salaire : HR->GIP->PECT-ORIAC
Chaine "claims" : AVCL->PECT->ORIAC

Liste des applications auxquelles AVCL est connectée :

  • ORACLE HR permet de saisir toutes les informations sur une personne et sa famille, depuis son entrée au CERN jusqu'à éventuellement sa retraite.
  • Dans ORIAC se trouvent toutes les informations concernant les tiers ainsi que les données comptables (intersections, comptes comptables),
  • PECT (Personal Expenses Consolidation Toolbox) contient le détail des paiements effectués pour des personnes (paye et claims). Cet outil sert d'outil statistique de référence. Entre autres choses, PECT envoie les données comptables à ORIAC.
  • GIP gère le paiement des salaires. GIP prend l'information à partir des dossiers des employés dans HR.
  • La liste des formations externes (qui donnent lieu à une demande de remboursement des frais de voyage) est reprise à partir de l'application CTA.
  • AVCL gère la saisie et l'archivage des claims. Les dossiers des personnes sont consultables mais non modifiables dans AVCL.
  • La liste des claims en cours de paiement, ainsi que les dépenses d'indemnité de subsistance à venir sont consultables dans les outils HRT et BHT ("AVCL pipeline"). Cette fonctionnalité permets aux responsables de comptes budgétaires de disposer d'une estimation fiable des sommes engagées sur leurs comptes.

Activités en cours

L'application a été modifiée pour l'implémentation de la nouvelle structure des carrières.

Portage de l'application pour la nouvelle version d'ORACLE*HR (11i). Cette modification technique ne devrait pas occasionner de changement pour l'utilisateur.

A moyen terme, une version accessible à partir du WEB sera développée par l'equipe EDH.

Un groupe de travail a été créé pour définir les besoins concernant le remboursement des voyages officiels (qui sera le premier document supporté par EDH)