PSU Web API เป็นเว็บที่ให้บริการข้อมูลในรูปแบบ JSON ทุกท่านที่มี PSU Passport สามารถสมัครเพื่อขอใช้บริการได้ที่เว็บไซต์ api.psu.ac.th โดยปัจจุบันข้อมูลที่เปิดให้บริการแล้วคือ ข้อมูลส่วนกลาง ข้อมูลระบบสารสนเทศนักศึกษา และข้อมูลระบบสารสนเทศบุคลากร สำหรับทุกท่านที่สนใจใช้บริการข้อมูลสามารถศึกษาวิธีการได้จากคู่มือของระบบค่ะ
วันนี้จะขอนำเสนอวิธีการดึงข้อมูลจาก PSU Web API ที่ให้บริการออกมาเป็นรูปแบบตารางด้วย Power Query ใน Microsoft Excel 365 กันค่ะ ซึ่งการดึงข้อมูลด้วย Power Query นี้น่าจะเหมาะสำหรับคนที่ไม่ถนัดในการเขียนโปรแกรมเพื่อดึงข้อมูลมาใช้งานกันค่ะ
STEP 1 : เชื่อมต่อกับแหล่งข้อมูล PSU Web API
คลิกเมนู Data –> Get Data –> From Other Sources –> From Web
ตัวอย่าง แสดงการดึงข้อมูลชื่อปริญญาที่ให้บริการจากระบบ PSU Web API
ระบบแสดงผลลัพธ์ข้อมูล 2 ส่วน คือส่วน paging ลักษณะข้อมูลเป็น Record และส่วนของ data ซึ่งจะมีลักษณะข้อมูลเป็น List ซึ่งภายใน List จะมี Record ซ้อนอยู่ข้างในอีกที
ตั้งชื่อ Query Name : Degree
คลิก Convert Into Table เพื่อแปลงผลลัพธ์ 2 ส่วนออกมาเป็นตาราง
STEP 3 : ทำการ Transpose และแตก List ข้อมูล
คลิกเมนู Transpose –> Reverse Rows เพื่อสลับให้ paging เป็น First Row
คลิก Use First Row as Header เพื่อเตรียมแตก List ในคอลัมน์ data ออกมา
คลิกปุ่ม Expand ที่หัวตารางของคอลัมน์ Column2 แล้วคลิก Expand to New Rows เราก็จะได้ Record ออกมาในแต่ละบรรทัด
กำหนดเงื่อนไขไม่เลือก Use original column name as prefix กรณีเลือกจะมีชื่อ Content นำหน้าชื่อคอลัมน์เช่น Content.Subject ID Content.Subject Code เป็นต้น
คลิกปุ่ม OK ระบบแสดงข้อมูลที่เกิดจากการรวมของตารางข้อมูลตามเงื่อนไข
คลิกปุ่ม Close & Load ระบบจะทำการรวมข้อมูลทั้ง 5 ชีทไว้ที่ชีท ALL_CAMPUS
STEP 4 : Power Query รวมข้อมูล Excel จากหลายชีทเข้าด้วยกันเป็นตารางเดียวเรียบร้อยแล้วค่ะ
ฟังก์ชัน INDEX : ส่งกลับค่าจากภายในตารางหรือช่วงข้อมูล
ไวยากรณ์ : INDEX(array, row_num, [column_num])
STEP 4 : ทำการแยกชื่อและนามสกุลออกจากคำนำหน้าชื่อมาแสดงที่คอลัมน์ C ด้วยฟังก์ชัน SUBSTITUTE
=SUBSTITUTE(B2,D2,””)
ฟังก์ชัน SUBSTITUTE : ใช้แทนที่ข้อความเดิม old text ด้วยข้อความใหม่ new text ส่วน instance_num ใช้เพื่อระบุตำแหน่งการแทนที่ ซึ่งถ้าไม่ระบุ old text จะถูกเปลี่ยนด้วย new text ทั้งหมด
วิธีการหาข้อมูลที่ซ้ำซ้อนเราสามารถหาได้หลายวิธีแต่วันนี้จะขอนำเสนอการประยุกต์ใช้ฟังก์ชัน LAG เพื่อหาข้อมูลที่ซ้ำซ้อนกันค่ะ ตามคำอธิบายข้างต้น LAG Function เป็นฟังก์ชันที่ให้เราสามารถเข้าถึงแถวข้อมูลก่อนแถวปัจจุบันได้โดยที่ไม่ต้องทำการ self-join ดังนั้นเราก็จะประยุกต์ใช้ความสามารถนี้ในการหาข้อมูลที่ซ้ำซ้อนก้นโดยมีขั้นตอนด้งนี้
ใช้ฟังก์ชัน LAG ในการดึงค่าข้อมูล PLO_DESC ก่อนหน้า ของ PLAN_REPORT_ID ปัจจุบัน
ขั้นตอนที่ 4 ตรงช่อง Service Name ให้ใส่ชื่อ Service Name ของ Database ที่ระบุในขั้นตอนที่ 3 คลิกปุ่ม ถัดไป
ขั้นตอนที่ 5 ซึ่งเป็นขั้นตอนสุดท้าย เราสามารถคลิกปุ่ม Test เพื่อทดสอบการ connect กับฐานข้อมูล และคลิกปุ่ม เสร็จสิ้น เพื่อสิ้นสุดการการสร้าง Service Naming
ภาพแสดงการตั้งค่า TNS Service name ขั้นตอนที่ 1 ภาพแสดงการตั้งค่า TNS Service name ขั้นตอนที่ 2 ภาพแสดงการตั้งค่า TNS Service name ขั้นตอนที่ 3 ภาพแสดงการตั้งค่า TNS Service name ขั้นตอนที่ 4 ภาพแสดงการตั้งค่า TNS Service name ขั้นตอนที่ 5
STEP 2
เปิดโปรแกรม ODBC Data Sources (32-bit)
คลิกเลือกแท็บ System DSN คลิกปุ่ม Add…
คลิกเลือก driver : Oracle in OraClient 12Home1_32bit ในหน้าต่าง Create New Data Source คลิกปุ่ม Finish
ระบบแสดงหน้าต่าง Oracle ODBC Driver Configuration
กำหนด Data Source Name และ Description
เลือก TNS Service Name จากที่สร้างไว้ในขั้นตอนการตั้งค่า TNS Service name ขั้นตอนที่ 2 (กรณีไม่มีให้เลือกสามารถพิมพ์เองได้)
ตรงช่อง User ID ระบุ user / schema เพื่อ connect เข้าฐานข้อมูล Oracle
คลิกปุ่ม OK
ภาพแสดงหน้าต่างการเลือก driver ของ data sourceภาพแสดงหน้าต่าง Oracle ODBC Driver Configuration
STEP 3
เปิดโปรแกรม Access office 365
คลิกเลือกเมนู External Data -> New Data Source -> From Other Sources -> ODBC Database
ระบบแสดงหน้าต่าง Get External Data – ODBC Database
คลิกเลือก Link to data source by creating a linked table.
คลิกปุ่ม OK
ระบบแสดงหน้าต่าง Select Data Source คลิกแท็บ Machine Data Source
คลิกเลือก Data Source Name ที่เราได้สร้างไว้แล้ว คลิกปุ่ม OK
ระบบแสดงหน้าต่าง Oracle ODBC Driver Connect
กรอก Password เพื่อ connect เข้าฐานข้อมูล Oracle คลิกปุ่ม OK
ระบบแสดง Link Tables คลิกเลือกตารางที่ต้องการ คลิกปุ่ม OK
ภาพแสดงหน้าจอหลักของ Accessภาพแสดงหน้้าต่าง Get External Data – ODBC Database ภาพแสดงหน้าต่าง Select Data Source ภาพแสดงหน้าต่าง Oracle ODBC Driver Connect ภาพแสดง Link Tables