หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
ใช้เทมเพลตแอปข้อมูลร่วมกับตัวเชื่อมต่อโมเดลเชิงความหมาย Fabric เพื่อสร้างแอป Fabric เชิงวิเคราะห์ เทมเพลตนี้ให้รูปแบบการแสดงผล การจัดรูปแบบ ตารางข้อมูล และรูปแบบการตรวจสอบเบราว์เซอร์ ตัวเชื่อมต่อนี้ให้สิทธิ์เข้าถึงแบบจําลองเชิงความหมายแบบมีประเภทและมอบหมายผ่านไคลเอนต์ Fabric Apps
แอปที่สร้างด้วยเทมเพลตประกอบด้วย:
- การยืนยันตัวตนแบบ Fabric
- คําแนะนําการสร้าง DAX (Data Analysis Expressions) ที่มีคุณภาพสูงขึ้น
- ส่วนประกอบภาพที่พร้อมใช้งานสําหรับองค์กร ออกแบบมาเพื่อแอปพลิเคชันเชิงวิเคราะห์
- ตารางข้อมูล ธีม การจัดรูปแบบ และรูปแบบการตรวจสอบเบราว์เซอร์
Note
ปัจจุบัน Rayfin CLI เป็นวิธีที่รองรับในการสร้างแอปโดยใช้เทมเพลตแอปข้อมูล
เหตุใดจึงต้องใช้เทมเพลตแอปข้อมูล
หากไม่มีความสามารถเหล่านี้ เจ้าหน้าที่เขียนโค้ดต้องแก้ไขการยืนยันตัวตน การสร้าง DAX และการออกแบบการแสดงผลใหม่ทั้งหมดในทุกเซสชัน ซึ่งอาจนําไปสู่:
- ความล้มเหลวและภาพที่แตกหรือว่างเปล่ามากขึ้น
- พฤติกรรมกราฟไม่สอดคล้องกัน
- คําสั่ง DAX ที่ไม่จําเป็นระหว่างการพัฒนาและรันไทม์
เทมเพลตนี้ให้รูปแบบที่นํากลับมาใช้ใหม่ได้ ซึ่งช่วยเพิ่มความน่าเชื่อถือ สร้างภาพที่สอดคล้องกันมากขึ้นตามแนวทางปฏิบัติที่ดีที่สุดของการรายงาน และลดภาระการค้นหา ตัวเชื่อมต่อนี้มาตรฐานการกําหนดค่าโมเดลเชิงความหมายและการเข้าถึงขณะรันไทม์
ข้อกําหนดเบื้องต้น
- Node.js 20 ปีขึ้นไป
- เข้าถึง Fabric
- พื้นที่ทํางาน Fabric ที่คุณมีสิทธิ์ ผู้สนับสนุน สมาชิก หรือผู้ดูแลระบบ
- ปริมาณงาน Fabric Apps ที่เปิดใช้งานในผู้เช่าของคุณ ดูที่ สร้างแอป Fabric แรกของคุณ
- เปิดใช้งานการตั้งค่าผู้เช่า Semantic Model Execute Queries REST API
- สิทธิ์ในการสร้างและอ่านบนโมเดลเชิงความหมายที่โฮสต์บนความจุ Fabric หรือ Power BI
- รหัสพื้นที่ทํางานและรหัสไอเท็มสําหรับโมเดลเชิงความหมาย
สร้างแอป
สร้างโปรเจกต์จากเทมเพลตแอปข้อมูล:
npm create @microsoft/rayfin@latest -- "<app-name>" --template dataapp --workspace <workspace-name>
แทนที่<app-name>และ<workspace-name>ด้วยชื่อสําหรับแอปและพื้นที่ทํางาน Fabric ของคุณ จากนั้นเปิดโฟลเดอร์โปรเจกต์ใหม่:
cd <app-name>
เพิ่มตัวเชื่อมต่อโมเดลความหมาย
หากคุณไม่ทราบรหัสไอเท็มโมเดลเชิงความหมาย ให้แสดงรายการแบบจําลองเชิงความหมายในพื้นที่ทํางาน:
npx rayfin connector search --workspace-id <workspace-id> --type fabric-semanticmodel --json
เพิ่มโมเดลเชิงความหมายเป็นตัวเชื่อมต่อ:
npx rayfin connector add --type fabric-semanticmodel --workspace-id <workspace-id> --item-id <semantic-model-item-id> --name salesModel --operations executeQuery
คําสั่ง:
- เพิ่มตัว
salesModelเชื่อมต่อให้กับrayfin/rayfin.yml. - สร้างสคีมาภายใต้
rayfin/connectors/salesModel/. - พิมพ์คําสั่งที่ตรงกับ
npm installเวอร์ชันสําหรับแพ็กเกจตัวเชื่อมต่อ
รันคําสั่งติดตั้งที่พิมพ์โดย CLI อย่างแม่นยํา
การกําหนดค่าที่สร้างขึ้นมีลักษณะคล้ายกับตัวอย่างต่อไปนี้:
connectors:
- name: salesModel
type: fabric-semanticmodel
config:
workspaceId: "<workspace-id>"
itemId: "<semantic-model-item-id>"
auth:
type: delegated
version: "1"
operations:
- name: executeQuery
เก็บค่าที่สร้างขึ้น version ไว้
เชื่อมต่อเทมเพลตกับโมเดลเชิงความหมาย
เทมเพลตประกอบด้วยส่วนประกอบวิเคราะห์และคําแนะนําของตัวแทนที่คุณสามารถนํากลับมาใช้กับตัวเชื่อมต่อได้ กําหนดค่าชั้นการเข้าถึงข้อมูลเพื่อสร้าง ConnectorsRayfinClient และลงทะเบียนรันไทม์โมเดลเชิงความหมาย:
Important
ใช้ไคลเอนต์ตัวเชื่อมต่อสําหรับการสืบค้นแบบจําลองเชิงความหมาย ถ้าโครงสร้างรองรับมีไคลเอนต์โมเดลเชิงความหมายอีกตัวหนึ่ง ให้แทนที่การเรียกใช้งานแทนการรักษาเส้นทางการเข้าถึงข้อมูลสองเส้นทาง
import { ConnectorsRayfinClient } from '@microsoft/rayfin-client';
import { fabricSemanticModel } from '@microsoft/rayfin-connector-fabric-semanticmodel';
import {
connectorConfig,
type SalesModelSchema,
} from '../../rayfin/connectors/salesModel/schema.js';
type AppConnectorsSchema = {
salesModel: SalesModelSchema;
};
export const client = new ConnectorsRayfinClient<
Record<string, never>,
Record<string, never>,
AppConnectorsSchema
>(
{
baseUrl: '<app-api-url>',
publishableKey: '<publishable-key>',
authStorage: true,
connectors: {
salesModel: connectorConfig,
},
},
{
salesModel: fabricSemanticModel(),
}
);
ใช้ URL API และคีย์ที่เผยแพร่ได้จากโปรเจกต์ Fabric Apps ของคุณ รักษาขั้นตอนการลงชื่อเข้าใช้ Fabric ที่มีอยู่ของเทมเพลตไว้
ส่ง DAX ผ่านตัวเชื่อมต่อ:
const result = await client.connectors.salesModel.executeQuery({
query: 'EVALUATE TOPN(10, Sales)',
});
if (result.status === 'success') {
console.log(result.table.columns, result.table.rows);
} else {
console.error(result.error.category, result.error.message);
}
แทนที่ Sales ด้วยตารางในโมเดลความหมายของคุณ ตรวจสอบสถานะที่ส่งกลับก่อนส่งคอลัมน์และแถวไปยังภาพ
สําหรับคําแนะนําเพิ่มเติมเกี่ยวกับการกําหนดค่าตัวเชื่อมต่อและความปลอดภัย ดูที่ Connect Fabric Apps to Fabric data
สร้างแอปด้วยตัวแทนโค้ด
โครงนั่งร้านมีคําแนะนําและทักษะสําหรับเจ้าหน้าที่เขียนโค้ด เปิดโปรเจกต์ในเอเจนต์ที่คุณเลือก และอธิบายกลุ่มเป้าหมาย คําถาม ปฏิสัมพันธ์ และการแสดงผลสําหรับแอป
ตัวอย่างเช่น คุณสามารถ:
- เปิดโปรเจกต์ใน Visual Studio Code แล้วเปิดบานหน้าต่าง GitHub Copilot Chat
- เปิดเทอร์มินัลในโปรเจกต์ แล้วรัน
copilot.
ใช้พรอมต์นี้เป็นจุดเริ่มต้น:
Build an analytical Fabric app that uses the existing salesModel connector.
Before editing:
1. Read the repository instructions and skills.
2. Inspect rayfin/connectors/salesModel/schema.ts and the template's data-access,
visualization, data grid, formatting, and validation patterns.
3. Query the semantic model metadata before writing DAX. Don't guess table,
measure, or column names.
Requirements:
- Use ConnectorsRayfinClient and fabricSemanticModel() for semantic model access.
- Call client.connectors.salesModel.executeQuery() for DAX queries.
- Keep the existing Fabric sign-in flow. Don't add credentials, access tokens,
another authentication flow, or direct calls to the Execute Queries REST API.
- Reuse query results where practical, and bound large result sets.
- Apply semantic model format strings consistently to cards, charts, tooltips,
and data grids.
- Include loading, empty, and error states.
- Use the template's browser-validation workflow at desktop and mobile sizes.
Give me a short implementation plan, make the changes, run the existing build,
and report the results.
ใช้ความสามารถของเทมเพลต
เทมเพลตแอปข้อมูลมีรูปแบบที่นํากลับมาใช้ใหม่สําหรับงานวิเคราะห์
Fabric Apps เป็นเว็บแอปพลิเคชันมาตรฐาน ดังนั้นคุณสามารถเพิ่มฟีเจอร์นอกเหนือจากรูปแบบเหล่านี้ได้ ฟีเจอร์ที่ไม่ได้รวมอยู่ในเทมเพลตอาจต้องการวิศวกรรมและการตรวจสอบเพิ่มเติมที่ปรับแต่งได้
ภาพ
เทมเพลตนี้ประกอบด้วยการไฮไลท์ข้ามและองค์ประกอบที่ตั้งค่าไว้ล่วงหน้าสําหรับ:
- แผนภูมิแท่ง รวมถึงการจัดวางแนวตั้ง แนวนอน การจัดกลุ่ม และแบบซ้อน
- แผนภูมิเส้นพร้อมเครื่องหมายเสริม
- แผนภูมิพื้นที่
- แผนภูมิกระจาย
- แผนภูมิพายและโดนัท
- แผนที่ความร้อน
- แผนภูมิฟองสบู่
- แผนภูมิน้ําตก
- การ์ดค่าเดียวสําหรับการเรียก KPI
- ภาพซ้อนและภาพรวม เช่น แถบที่มีป้ายข้อมูลและแผนภูมิเส้นสองแกน
ใช้ฟิลด์และมาตรวัดที่มีอยู่ในโมเดลความหมายที่เชื่อมต่อกัน อย่าแทนที่คําสั่งเชื่อมต่อที่ล้มเหลวด้วยข้อมูลจําลอง
คุณสามารถขอให้เอเจนต์เขียนโค้ดสร้างภาพอื่น ๆ ได้ ภาพที่ไม่มีเทมเพลตอาจต้องทําซ้ําและตรวจสอบมากขึ้น
ความสามารถของกริดข้อมูล
เทมเพลตประกอบด้วยกริดข้อมูลที่มีความสามารถที่ตั้งค่าไว้ล่วงหน้าดังนี้:
- ส่วนหัวคอลัมน์ที่ได้จากเมตาดาต้าแบบจําลองเชิงความหมาย
- การจัดรูปแบบหมายเลขและวันที่ต่อคอลัมน์ผ่านสตริงรูปแบบ
- การคัดแยก
- แถวเลื่อนได้พร้อมการจัดการโอเวอร์โฟลว์
- รองรับธีมสว่างและมืด
- ตัวเรนเดอร์เซลล์แบบกําหนดเองสําหรับ:
- แถบข้อมูลสําหรับค่าตัวเลข
- ตัวบ่งชี้บูลีน
- URL ที่คลิกได้
- เซลล์ภาพที่มีการซ้อนทับด้วยกล่องไฟ
- เซลล์หลายฟิลด์ เช่น ชื่อและบทบาทในคอลัมน์เดียว
คุณสามารถเพิ่มความสามารถ data grid อื่น ๆ ได้ แต่บางทีอาจต้องการวิศวกรรมเฉพาะมากขึ้น
การกำหนดธีม
ระบุข้อกําหนดแบรนด์หรือสไตล์ของตัวแทนโค้ดดิ้ง เช่น ชุดสี สไตล์มุม หรือฟอนต์ เทมเพลตจะเก็บสไตล์ที่ใช้ร่วมกันไว้ในที่เดียว เพื่อเปลี่ยนการไหลไปยังการ์ด ปุ่ม แผนภูมิ ตารางข้อมูล และทูลทิป
การจัดสไตล์แบบรวมศูนย์ช่วยหลีกเลี่ยงสีที่ไม่ตรงกัน ฟอนต์ที่ไม่สม่ําเสมอ และความแตกต่างของการจัดวางที่อาจเกิดขึ้นเมื่อแต่ละองค์ประกอบถูกจัดสไตล์แยกกัน
สตริงรูปแบบ
กําหนดรูปแบบหนึ่งครั้งต่อคอลัมน์ผลลัพธ์ เทมเพลตนี้สามารถใช้สตริงรูปแบบโมเดลเชิงความหมายซ้ําข้ามแกนแผนภูมิ ทูลทิป ป้ายข้อมูล การ์ด และเซลล์กริดข้อมูล
ตัวอย่างเช่น การกําหนด 1500.5 รูปแบบเดียวจะแสดงเป็น $1,500.50 และ 0.25 แสดงเป็น 25% ที่ใดก็ตามที่ค่าเหล่านั้นปรากฏ
การตรวจสอบความถูกต้องของเบราว์เซอร์
ก่อนเผยแพร่แอป ให้ใช้กระบวนการตรวจสอบเบราว์เซอร์ของ Playwright ที่รวมมาเพื่อเปิดแอปในเบราว์เซอร์จริงและตรวจสอบ:
- ภาพแสดงผลถูกต้อง
- แผนภูมิไม่ได้ถูกตัดหรือบีบอัด
- ข้อความอ่านได้
- กริดข้อมูลจัดการกับการล้น
- สถานะโหลด, ว่างเปล่า และสถานะข้อผิดพลาดสามารถใช้ได้
- ตัวกรอง การไฮไลท์ข้าม และการจัดรูปแบบข้อมูลทํางานได้ตามปกติ
- คอนโซลเบราว์เซอร์ไม่มีข้อผิดพลาดที่ไม่คาดคิด
เวิร์กโฟลว์นี้ตรวจจับปัญหาการจัดวางและการแสดงผลก่อนที่ผู้ใช้จะเห็น การตรวจสอบเบราว์เซอร์ยืนยันพฤติกรรมของส่วนหน้า ทดสอบตัวเชื่อมต่อที่ติดตั้งแยกกับผู้ใช้ที่มีสิทธิ์เข้าถึงทั้งแอป Fabric และโมเดลเชิงความหมาย
ติดตั้งและตรวจสอบแอป
ปรับใช้การตั้งค่าแอปและตัวเชื่อมต่อ:
npx rayfin up
เปิดแอปที่ติดตั้งแล้วจากพอร์ทัล Fabric เข้าสู่ระบบ รันการโต้ตอบของผู้ใช้แต่ละครั้ง และเปรียบเทียบผลลัพธ์สําคัญกับโมเดลเชิงความหมาย
หากการค้นหาล้มเหลว:
- ยืนยัน workspace และ semantic model item ID ใน
rayfin.yml. - ยืนยันว่าการตั้งค่า SEMANTIC Model Execute Queries REST API tenant เปิดใช้งานแล้ว
- ยืนยันว่าผู้ใช้มีสิทธิ์ Build และ Read บนโมเดลเชิงความหมาย
- ตรวจสอบว่า DAX อ้างอิงตาราง คอลัมน์ และมาตรวัดที่มีอยู่แล้ว
- ตรวจสอบหมวดหมู่ข้อผิดพลาดและข้อความของผลลัพธ์ของตัวเชื่อมต่อ
- ตรวจสอบคอนโซลเบราว์เซอร์สําหรับข้อผิดพลาดฝั่งไคลเอนต์