<%@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: ORIAC

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

ORIAC Home Page

ORIAC is the financial application package used at CERN. The supplier is Inference.

ORIAC was selected in 1991 after a functional requirements analysis performed at CERN followed by a market survey carried out by Price Waterhouse. ORIAC is in production since January 1992.

 A comprehensive documentation of ORIAC is available on the Web.  

The major functions supported by ORIAC are

  • General ledger (1000 accounts)
  • Accounts receivable (800 'team' accounts are managed with 14.000 invoices generated per year)
  • Accounts payable ( 70.000 invoices are payed per year to 15.000 suppliers furthermore all salary and other benefit payments are performed through ORIAC). All payments are made using 'EDI'.
  • Budget management and control
  • Cost analysis in multiple 'dimensions' (Organic, Activity (PPA), and Project)
Specifically important features for CERN use:
  • Flexible multidimensional cost analysis structures (easily modifyable, no postings required in case of reorganizations)
  • Multi currency 'throughout'
  • Commitment accounting (commitments are as important as payments for CERN)
  • Budget management and control

Input into ORIAC originate (apart from manually entered transactions) from:

  • SIRIAC for all commitments (orders) and invoices.
  • PECT (Personnel Expense Consolidation Toolbox) for Salary and Claim expenses
  • BAAN for all stores related expenses
  • EDH (Electronic Document Handling) for internal recharging
  • Telephone exchange for recharging of telephone calls

ORIAC is the major source of information for BHT (Budget Holders Toolkit).

Here you can find a draft proposal for discussion on the options to enable more detailed analysis of team expense info. Some key figures:

  • 80 concurrent users
  • 1.000.000 postings per year
  • 8 Giga bytes of data
  • 150 database tables