Presentation is loading. Please wait.

Presentation is loading. Please wait.

A Community of Learning SUNGARD SUMMIT 2007 | sungardsummit.com 1 Argos - Moving into the Community Presented by: Bruce Knox University of Arkansas Division.

Similar presentations


Presentation on theme: "A Community of Learning SUNGARD SUMMIT 2007 | sungardsummit.com 1 Argos - Moving into the Community Presented by: Bruce Knox University of Arkansas Division."— Presentation transcript:

1 A Community of Learning SUNGARD SUMMIT 2007 | sungardsummit.com 1 Argos - Moving into the Community Presented by: Bruce Knox University of Arkansas Division of Agriculture, Cooperative Extension Service March 20, 2007 10:00 am Course ID 735

2 2 Course ID 735 Argos - Moving into the Community Introduction: Purpose and Benefits of this Presentation Purpose: Discuss the Argos User Community Converting from MS Access to Argos Benefits: Free Software Conversion Tips Tools for Ad Hoc Banner Reporting

3 3 Course ID 735 Argos - Moving into the Community Our Agenda What’s an Argos? Trying the Product The Argos Community Converting from MS Access Banner Record Selection Criteria

4 A Community of Learning SUNGARD SUMMIT 2007 | sungardsummit.com 4 What’s an Argos?

5 5 Course ID 735 Argos - Moving into the Community What’s an Argos? Argos is a Web Based Evisions Ad Hoc Reporting Tool Designed for Banner

6 6 Course ID 735 Argos - Moving into the Community A.R.G.O.S. Ad hoc Report Generation and Output Solution Secure Easy to Use Fast

7 7 Course ID 735 Argos - Moving into the Community Argos, in Design Mode looks a lot like MS Access

8 8 Course ID 735 Argos - Moving into the Community Argos, in Design Mode looks a lot like MS Access

9 9 Course ID 735 Argos - Moving into the Community What’s an Argos MS Access++ Built for the SQL Database

10 A Community of Learning SUNGARD SUMMIT 2007 | sungardsummit.com 10 Trying the Product

11 11 Course ID 735 Argos - Moving into the Community Trying the Product: Get a Password Get a password

12 12 Course ID 735 Argos - Moving into the Community Trying the Product: Download and Install

13 13 Course ID 735 Argos - Moving into the Community Trying the Product: Download and Install

14 14 Course ID 735 Argos - Moving into the Community Trying the Product: DBA and SysAdmin You will need IT for early parts of the Server Install

15 15 Course ID 735 Argos - Moving into the Community Trying the Product: Download and install the Argos Sample Datablocks for SCT Banner

16 16 Course ID 735 Argos - Moving into the Community Trying the Product:

17 17 Course ID 735 Argos - Moving into the Community Trying the Product:

18 18 Course ID 735 Argos - Moving into the Community Trying the Product:

19 19 Course ID 735 Argos - Moving into the Community Trying the Product:

20 A Community of Learning SUNGARD SUMMIT 2007 | sungardsummit.com 20 The Argos Community

21 21 Course ID 735 Argos - Moving into the Community The Argos Community Community is a big part of Argos Sharing in Argos’ secured repository is encouraged.

22 22 Course ID 735 Argos - Moving into the Community The Argos Community

23 23 Course ID 735 Argos - Moving into the Community The Argos Community

24 24 Course ID 735 Argos - Moving into the Community The Argos Community

25 25 Course ID 735 Argos - Moving into the Community The Argos Community

26 A Community of Learning SUNGARD SUMMIT 2007 | sungardsummit.com 26 Converting from MS Access

27 27 Course ID 735 Argos - Moving into the Community Converting from MS Access We have been using MS Access with Banner for 7 years How to move from our existing MS Access?

28 28 Course ID 735 Argos - Moving into the Community Converting from MS Access Build Datablocks via the Query Design GUI?

29 29 Course ID 735 Argos - Moving into the Community Converting from MS Access Enter the Oracle Code?

30 30 Course ID 735 Argos - Moving into the Community Converting from MS Access Either way will work for you, but you still need to know the Banner Record Selection Criteria

31 A Community of Learning SUNGARD SUMMIT 2007 | sungardsummit.com 31 Banner Record Selection Criteria

32 32 Course ID 735 Argos - Moving into the Community Banner Record Selection Criteria Determining which Banner Tables are actually used A Handy Find Query

33 33 Course ID 735 Argos - Moving into the Community Banner Record Selection Criteria Determining which Banner Tables are Actually Used A Handy Find Query

34 34 Course ID 735 Argos - Moving into the Community Banner Record Selection Criteria: Tables Actually Used

35 35 Course ID 735 Argos - Moving into the Community Banner Record Selection Criteria: Tables Actually Used

36 36 Course ID 735 Argos - Moving into the Community Banner Record Selection Criteria: Tables Actually Used Collect the ones that look like Banner Tables into a file argos_tables.txt

37 37 Course ID 735 Argos - Moving into the Community Banner Record Selection Criteria: Tables Actually Used argos_tables.txt containing: @table_to_argos FABBKTP @table_to_argos FABCHKA @table_to_argos FABCHKS @table_to_argos FABINCK @table_to_argos FABINVH @table_to_argos FARDIRD @table_to_argos FARINTX … @table_to_argos TURVERS

38 38 Course ID 735 Argos - Moving into the Community Banner Record Selection Criteria: Tables Actually Used Then in SQL*Plus: 10:32:39 BKNOX: PROD> START argostables.txt This runs table_to_argos.sql for each Table in the file. The script concatenates each result into a single text file containing the Table information required for constructing Queries or determining Record Selection Criteria.

39 39 Course ID 735 Argos - Moving into the Community Banner Record Selection Criteria: Here is a snippet -- **FTVORGN** Organization Validation Table SELECT -- Created from TABLE FTVORGN Organization Validation Table FTVORGN_COAS_CODE, FTVORGN_ORGN_CODE, TRUNC(FTVORGN_EFF_DATE) FTVORGN_EFF_DATE, TRUNC(FTVORGN_ACTIVITY_DATE) FTVORGN_ACTIVITY_DATE, FTVORGN_USER_ID, TRUNC(FTVORGN_NCHG_DATE) FTVORGN_NCHG_DATE, TRUNC(FTVORGN_TERM_DATE) FTVORGN_TERM_DATE, FTVORGN_TITLE, FTVORGN_STATUS_IND, FTVORGN_ORGN_CODE_PRED, FTVORGN_FUND_CODE_DEF, FTVORGN_PROG_CODE_DEF, FTVORGN_ACTV_CODE_DEF, FTVORGN_LOCN_CODE_DEF, FTVORGN_DATA_ENTRY_IND, FTVORGN_FMGR_CODE_PIDM, FTVORGN_ENCB_POLICY_IND, FTVORGN_ORGN_CODE_NSF, FTVORGN_HIERARCHY_TABLE_IND, FTVORGN_ALT_POOL_IND FROM FTVORGN WHERE TRUNC(FTVORGN_EFF_DATE) <= SYSDATE AND (FTVORGN_NCHG_DATE > TRUNC(SYSDATE) OR FTVORGN_NCHG_DATE IS NULL) AND (FTVORGN_TERM_DATE > TRUNC(SYSDATE) OR FTVORGN_TERM_DATE IS NULL) …

40 40 Course ID 735 Argos - Moving into the Community Banner Record Selection Criteria: Here is a snippet part2 -- AND FTVORGN_STATUS_IND = '?' -- AND FTVORGN_DATA_ENTRY_IND = '?' -- AND FTVORGN_ENCB_POLICY_IND = '?' -- AND FTVORGN_HIERARCHY_TABLE_IND = '?' -- AND FTVORGN_ALT_POOL_IND = '?' -- AND FTVORGN_ACTIVITY_DATE > TO_DATE('06/30/2006 00:00:00','MM/DD/YYYY HH24:MI:SS') -- AND TRUNC(FTVORGN_ACTIVITY_DATE) >= TO_DATE('01/26/2007 00:00:00','MM/DD/YYYY HH24:MI:SS') -- AND TRUNC(FTVORGN_ACTIVITY_DATE) = TO_DATE('01/26/2007 00:00:00','MM/DD/YYYY HH24:MI:SS') -- AND TRUNC(FTVORGN_ACTIVITY_DATE) < TO_DATE('01/26/2007 00:00:00','MM/DD/YYYY HH24:MI:SS') -- AND TRUNC(FTVORGN_ACTIVITY_DATE) BETWEEN TO_DATE('07/01/2006 00:00:00','MM/DD/YYYY HH24:MI:SS') AND TO_DATE('06/30/2007 23:59:59','MM/DD/YYYY HH24:MI:SS')' --FTVORGN_COAS_CODE NOT NULLABLE is Probably Key or Indexed Field --FTVORGN_ORGN_CODE NOT NULLABLE is Probably Key or Indexed Field --FTVORGN_EFF_DATE NOT NULLABLE is Probably Key or Indexed Field --FTVORGN_ACTIVITY_DATE NOT NULLABLE is Probably Key or Indexed Field --FTVORGN_USER_ID NOT NULLABLE is Probably Key or Indexed Field --FTVORGN_NCHG_DATE NOT NULLABLE is Probably Key or Indexed Field --FTVORGN_TITLE NOT NULLABLE is Probably Key or Indexed Field --FTVORGN_STATUS_IND NOT NULLABLE is Probably Key or Indexed Field --FTVORGN_DATA_ENTRY_IND NOT NULLABLE is Probably Key or Indexed Field --ORDER BY FTVORGN_ORGN_CODE -- **FTVORGN** Organization Validation Table

41 41 Course ID 735 Argos - Moving into the Community Banner Record Selection Criteria: Reports You will need a sample of the Report

42 42 Course ID 735 Argos - Moving into the Community Banner Record Selection Criteria: Reports to Queries Double-Click the Report Selector The Dark Square within the Gray Square left of the Ruler Line. Alternately, Right-Click and Select Properties, then Select Data.

43 43 Course ID 735 Argos - Moving into the Community Banner Record Selection Criteria: Reports to Queries Record Source is the MS Access Query behind the Report Double-Click on the Ellipsis button and you have the Query

44 44 Course ID 735 Argos - Moving into the Community Banner Record Selection Criteria: Reports to Queries MS Access Query behind the Report

45 45 Course ID 735 Argos - Moving into the Community Banner Record Selection Criteria: Reports to Queries MS Access Query behind the Report

46 46 Course ID 735 Argos - Moving into the Community Banner Record Selection Criteria: Reports to Queries MS Access Query behind the Report

47 47 Course ID 735 Argos - Moving into the Community Banner Record Selection Criteria: Reports to Queries SELECT IIf([FGBGENL_FUND_CODE]="11100","U", IIf([FGBGENL_FUND_CODE]="11200","U", IIf([FGBGENL_FUND_CODE]="14000","U", IIf([FGBGENL_FUND_CODE]="21110","U", IIf([FGBGENL_FUND_CODE]="21120","U", IIf([FGBGENL_FUND_CODE]="21160","U", IIf([FGBGENL_FUND_CODE] Between "13000" And "13199","U", IIf([FGBGENL_FUND_CODE] Between "13250" And "13999","U", IIf([FGBGENL_FUND_CODE] Between "22000" And "22999","U", IIf([FGBGENL_FUND_CODE] Between "24000" And "24999","U", IIf([FGBGENL_FUND_CODE] Between "26000" And "26999","U", IIf([FGBGENL_FUND_CODE] Between "29000" And "29999","U", IIf([FGBGENL_FUND_CODE]="27000","U", IIf([FGBGENL_FUND_CODE]>"30000","P","R")))))))))))))) AS [Group], [FGBGENL 04].FGBGENL_ACCT_CODE AS GLACCT, FTVACCT.FTVACCT_TITLE AS [ACCT TITLE], FTVACCT.FTVACCT_ATYP_CODE AS [ACCT TYPE], FTVATYP.FTVATYP_TITLE AS [ACCT TYPE TITLE], Sum([FGBGENL_SUM_PERIODIC_DR]-[FGBGENL_SUM_PERIODIC_CR]) AS Balance FROM (([FGBGENL 04] LEFT JOIN (FTVACCT LEFT JOIN FTVATYP ON FTVACCT.FTVACCT_ATYP_CODE = FTVATYP.FTVATYP_ATYP_CODE) ON [FGBGENL 04].FGBGENL_ACCT_CODE = FTVACCT.FTVACCT_ACCT_CODE) LEFT JOIN [FTVFUND any status] ON [FGBGENL 04].FGBGENL_FUND_CODE = [FTVFUND any status].FTVFUND_FUND_CODE) LEFT JOIN FTVFTYP ON [FTVFUND any status].FTVFUND_FTYP_CODE = FTVFTYP.FTVFTYP_FTYP_CODE WHERE ((([FGBGENL 04].FGBGENL_PERIOD)<=[Select a period (pp)]) AND (([FTVFUND any status].FTVFUND_FTYP_CODE) Not Like "BF")) GROUP BY IIf([FGBGENL_FUND_CODE]="11100","U",IIf([FGBGENL_FUND_CODE]="11200","U",IIf([FGBGENL_FUND_CODE]="14000","U",IIf([FGBGENL_FUND_CODE]="21110","U",IIf([FGBGENL_FUND_CODE]="21120","U",IIf([FGBGENL_FUND_CODE]="21160","U",IIf([FGBGENL_F UND_CODE] Between "13000" And "13199","U",IIf([FGBGENL_FUND_CODE] Between "13250" And "13999","U",IIf([FGBGENL_FUND_CODE] Between "22000" And "22999","U",IIf([FGBGENL_FUND_CODE] Between "24000" And "24999","U",IIf([FGBGENL_FUND_CODE] Between "26000" And "26999","U",IIf([FGBGENL_FUND_CODE] Between "29000" And "29999","U",IIf([FGBGENL_FUND_CODE]="27000","U",IIf([FGBGENL_FUND_CODE]>"30000","P","R")))))))))))))), [FGBGENL 04].FGBGENL_ACCT_CODE, FTVACCT.FTVACCT_TITLE, FTVACCT.FTVACCT_ATYP_CODE, FTVATYP.FTVATYP_TITLE HAVING (((Sum([FGBGENL_SUM_PERIODIC_DR]-[FGBGENL_SUM_PERIODIC_CR]))<>0)) ORDER BY IIf([FGBGENL_FUND_CODE]="11100","U",IIf([FGBGENL_FUND_CODE]="11200","U",IIf([FGBGENL_FUND_CODE]="14000","U",IIf([FGBGENL_FUND_CODE]="21110","U",IIf([FGBGENL_FUND_CODE]="21120","U",IIf([FGBGENL_FUND_CODE]="21160","U",IIf([FGBGENL_F UND_CODE] Between "13000" And "13199","U",IIf([FGBGENL_FUND_CODE] Between "13250" And "13999","U",IIf([FGBGENL_FUND_CODE] Between "22000" And "22999","U",IIf([FGBGENL_FUND_CODE] Between "24000" And "24999","U",IIf([FGBGENL_FUND_CODE] Between "26000" And "26999","U",IIf([FGBGENL_FUND_CODE] Between "29000" And "29999","U",IIf([FGBGENL_FUND_CODE]="27000","U",IIf([FGBGENL_FUND_CODE]>"30000","P","R")))))))))))))) DESC, [FGBGENL 04].FGBGENL_ACCT_CODE;

48 48 Course ID 735 Argos - Moving into the Community Banner Record Selection Criteria: Reports to Queries But, note that this code is MS Access SQL; Not, Oracle SQL. Group: IIf([FGBGENL_FUND_CODE]="11100","U", IIf([FGBGENL_FUND_CODE]="11200","U", IIf([FGBGENL_FUND_CODE]="14000","U", IIf([FGBGENL_FUND_CODE]="21110","U", IIf([FGBGENL_FUND_CODE]="21120","U", IIf([FGBGENL_FUND_CODE]="21160","U", IIf([FGBGENL_FUND_CODE] Between "13000" And "13199","U", IIf([FGBGENL_FUND_CODE] Between "13250" And "13999","U", IIf([FGBGENL_FUND_CODE] Between "22000" And "22999","U", IIf([FGBGENL_FUND_CODE] Between "24000" And "24999","U", IIf([FGBGENL_FUND_CODE] Between "26000" And "26999","U", IIf([FGBGENL_FUND_CODE] Between "29000" And "29999","U", IIf([FGBGENL_FUND_CODE]="27000","U", IIf([FGBGENL_FUND_CODE]>"30000","P", "R"))))))))))))))

49 49 Course ID 735 Argos - Moving into the Community Banner Record Selection Criteria: Reports to Queries CASE WHEN FGBGENL_FUND_CODE = '11100' THEN 'U' WHEN FGBGENL_FUND_CODE = '11200' THEN 'U' WHEN FGBGENL_FUND_CODE = '14000' THEN 'U' WHEN FGBGENL_FUND_CODE = '21110' THEN 'U' WHEN FGBGENL_FUND_CODE = '21120' THEN 'U' WHEN FGBGENL_FUND_CODE = '21160' THEN 'U' WHEN FGBGENL_FUND_CODE Between '13000' And '13199' THEN 'U' WHEN FGBGENL_FUND_CODE Between '13250' And '13999' THEN 'U' WHEN FGBGENL_FUND_CODE Between '22000' And '22999' THEN 'U' WHEN FGBGENL_FUND_CODE Between '24000' And '24999' THEN 'U' WHEN FGBGENL_FUND_CODE Between '26000' And '26999' THEN 'U' WHEN FGBGENL_FUND_CODE Between '29000' And '29999' THEN 'U' WHEN FGBGENL_FUND_CODE = '27000' THEN 'U' WHEN FGBGENL_FUND_CODE > '30000' THEN 'P' ELSE 'R' END AS FUNDGROUP

50 50 Course ID 735 Argos - Moving into the Community Banner Record Selection Criteria: Reports to Queries The FROM and WHERE need to lose the [ ] and Double Quotes. FROM (([FGBGENL] LEFT JOIN (FTVACCT INNER JOIN FTVATYP ON FTVACCT.FTVACCT_ATYP_CODE = FTVATYP.FTVATYP_ATYP_CODE) ON [FGBGENL].FGBGENL_ACCT_CODE = FTVACCT.FTVACCT_ACCT_CODE) LEFT JOIN [FTVFUND] ON [FGBGENL].FGBGENL_FUND_CODE = [FTVFUND].FTVFUND_FUND_CODE) INNER JOIN FTVFTYP ON [FTVFUND].FTVFUND_FTYP_CODE = FTVFTYP.FTVFTYP_FTYP_CODE WHERE ((([FGBGENL].FGBGENL_PERIOD)<=[Select a period (pp)]) AND (([FTVFUND].FTVFUND_FTYP_CODE) Not Like "BF")) FROM ((FGBGENL LEFT JOIN (FTVACCT INNER JOIN FTVATYP ON FTVACCT.FTVACCT_ATYP_CODE = FTVATYP.FTVATYP_ATYP_CODE) ON FGBGENL.FGBGENL_ACCT_CODE = FTVACCT.FTVACCT_ACCT_CODE) LEFT JOIN FTVFUND ON FGBGENL.FGBGENL_FUND_CODE = FTVFUND.FTVFUND_FUND_CODE) INNER JOIN FTVFTYP ON FTVFUND.FTVFUND_FTYP_CODE = FTVFTYP.FTVFTYP_FTYP_CODE WHERE FGBGENL.FGBGENL_PERIOD<=‘&pp‘ AND FTVFUND.FTVFUND_FTYP_CODE Not Like 'BF'

51 51 Course ID 735 Argos - Moving into the Community Banner Record Selection Criteria: Reports to Queries That works! And it ran much, much faster than my old style Oracle SQL. FROM ((FGBGENL LEFT JOIN (FTVACCT INNER JOIN FTVATYP ON FTVACCT.FTVACCT_ATYP_CODE = FTVATYP.FTVATYP_ATYP_CODE) ON FGBGENL.FGBGENL_ACCT_CODE = FTVACCT.FTVACCT_ACCT_CODE) LEFT JOIN FTVFUND ON FGBGENL.FGBGENL_FUND_CODE = FTVFUND.FTVFUND_FUND_CODE) INNER JOIN FTVFTYP ON FTVFUND.FTVFUND_FTYP_CODE = FTVFTYP.FTVFTYP_FTYP_CODE WHERE FGBGENL.FGBGENL_PERIOD<='06' AND FGBGENL_FSYR_CODE = '06' AND FTVFUND.FTVFUND_FTYP_CODE Not Like 'BF' AND TRUNC(FTVACCT_EFF_DATE) <= SYSDATE AND (FTVACCT_NCHG_DATE > TRUNC(SYSDATE) OR FTVACCT_NCHG_DATE IS NULL) AND (FTVACCT_TERM_DATE > TRUNC(SYSDATE) OR FTVACCT_TERM_DATE IS NULL) AND TRUNC(FTVATYP_EFF_DATE) <= SYSDATE AND (FTVATYP_NCHG_DATE > TRUNC(SYSDATE) OR FTVATYP_NCHG_DATE IS NULL) AND (FTVATYP_TERM_DATE > TRUNC(SYSDATE) OR FTVATYP_TERM_DATE IS NULL)

52 52 Course ID 735 Argos - Moving into the Community Banner Record Selection Criteria: Reports to Queries Paste it into “Free Type” and Run It

53 53 Course ID 735 Argos - Moving into the Community Banner Record Selection Criteria: Reports to Queries And it works!

54 54 Course ID 735 Argos - Moving into the Community Banner Record Selection Criteria: Reports to Queries And it works! But, this MS Access Query was mostly Oracle Joins Converting the MS Access Functions is a Challenge access_to_argos.shl UNIX Shell Script Can Help

55 55 Course ID 735 Argos - Moving into the Community Banner Record Selection Criteria: Reports to Queries access_to_argos.shl include conversions for the most common MS Access Functions plus some hints on the complex ones Automated Conversion includes: removes all [ removes all ] changes Double Quotes to Single Quotes Inserts the CR, Carriage Returns or Newlines is just to help visually format the code to make it more readable, IMO Iff insertsCR in front of IIf FROMCR after FROM WHERECR after WHERE HAVINGCR after HAVING changes: Chr( toCHAR( Len( LENGTH( Now() SYSDATE Nz( NVL( UCase( UPPER( LCase( LOWER( and since I use Upper Case for Oracle Keywords: Abs( toABS( LTrim( LTRIM( RTrim( RTRIM( Trim( TRIM( Round( ROUND( The following are too complex for sed and tr to convert, but here are some hints on making the changes: Left(AnyString, n) SUBSTR(AnyString,1,n) Right(AnyString, n) SUBSTR(AnyString,LENGTH(AnyString)-n+1,n) IIf Can be replace with CASE or DECODE (use CASE if any IIf... Between... used) Warning: One must be careful that the input contains no Lower Case Selection Criteria, because the output is UPPER Case

56 56 Course ID 735 Argos - Moving into the Community Banner Record Selection Criteria: Reports to Queries You can build the Query using the COLUMNs, Tables, WHERE, GROUP BY, ORDER BY, and HAVING Or, Build the Query from your code. Either will allow you to use parameters. Another option would be to build an Oracle VIEW from the code, but you would probably need a lot more help from IT to do that.

57 57 Course ID 735 Argos - Moving into the Community More Argos Resources Typical Calendar of Live Classes

58 58 Course ID 735 Argos - Moving into the Community More Argos Resources Knowledge Base, Listserv, Help Desk, …

59 59 Course ID 735 Argos - Moving into the Community More Argos Resources Other Argos Summit 2007 Classes scheduled are: 20-Mar 2:00 PM 1471 Evisions ARGOS--Reporting Redefined Partner Solutions topics 21-Mar 3:00 PM 1018 Argos--Training, Development, Insight Information Access & Business Intelligence General Reporting & IR topics http://www.uaex.edu/bknox/BannerArgos.htm BannerArgos

60 60 Course ID 735 Argos - Moving into the Community Summary Argos is the Web Based Ad Hoc Reporting Tool for Banner Download and Try it Now! Go to the Argos Community for Free Code and Help

61 61 Course ID 735 Argos - Moving into the Community Questions & Answers Please complete the online class evaluation form Course ID 735 Questions?

62 62 Course ID 735 Argos - Moving into the Community Thank You! Bruce Knox bknox @t uaex.edu http://www.uaex.edu/bknox/BannerArgos.htm Please complete the online class evaluation form Course ID 735 SunGard, the SunGard logo, Banner, Campus Pipeline, Luminis, PowerCAMPUS, Matrix, and Plus are trademarks or registered trademarks of SunGard Data Systems Inc. or its subsidiaries in the U.S. and other countries. Third-party names and marks referenced herein are trademarks or registered trademarks of their respective owners. © 2006 SunGard. All rights reserved.


Download ppt "A Community of Learning SUNGARD SUMMIT 2007 | sungardsummit.com 1 Argos - Moving into the Community Presented by: Bruce Knox University of Arkansas Division."

Similar presentations


Ads by Google