logologo
البدء
الدليل
التطوير
الإضافات
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
البدء
الدليل
التطوير
الإضافات
API
logologo
المستخدمون

الأدوار والصلاحيات

إعدادات الدور
إعدادات الصلاحيات
تطبيق في UI
اتحاد الأدوار

دليل المطورين

توسيع شريط إعدادات الصلاحيات

الأقسام

إدارة الأقسام
إدارة أدوار الأقسام

مزامنة بيانات المستخدمين

إدارة المزامنة

مصدر البيانات

WeChat للشركات
HTTP API

دليل المطورين

توسيع مصدر بيانات المزامنة
توسيع مورد هدف المزامنة
Previous Pageتوسيع مصدر بيانات المزامنة
إشعار الترجمة بالذكاء الاصطناعي

تمت ترجمة هذه الوثائق تلقائيًا بواسطة الذكاء الاصطناعي.

#تمديد موارد المزامنة المستهدفة

#نظرة عامة

يدعم NocoBase بشكل افتراضي مزامنة بيانات المستخدمين مع جدولي المستخدمين والأقسام. كما يتيح تمديد موارد المزامنة المستهدفة للبيانات، وذلك لكتابة البيانات إلى جداول أخرى أو تنفيذ معالجة مخصصة حسب الحاجة.

تجريبي

الوثائق الكاملة قيد الإعداد.

#واجهة معالج موارد المزامنة المستهدفة

export abstract class UserDataResource {
  name: string;
  accepts: SyncAccept[];
  db: Database;
  logger: SystemLogger;

  constructor(db: Database, logger: SystemLogger) {
    this.db = db;
    this.logger = logger;
  }

  abstract update(
    record: OriginRecord,
    resourcePks: PrimaryKey[],
    matchKey?: string,
  ): Promise<RecordResourceChanged[]>;
  abstract create(
    record: OriginRecord,
    matchKey: string,
  ): Promise<RecordResourceChanged[]>;

  get syncRecordRepo() {
    return this.db.getRepository('userDataSyncRecords');
  }

  get syncRecordResourceRepo() {
    return this.db.getRepository('userDataSyncRecordsResources');
  }
}

#تسجيل موارد المزامنة المستهدفة

registerResource(resource: UserDataResource, options?: ToposortOptions)

import { Plugin } from '@nocobase/server';
import PluginUserDataSyncServer from '@nocobase/plugin-user-data-sync';

class CustomUserResourcePluginServer extends Plugin {
  async load() {
    const userDataSyncPlugin = this.app.pm.get(PluginUserDataSyncServer);
    if (userDataSyncPlugin && userDataSyncPlugin.enabled) {
      userDataSyncPlugin.resourceManager.registerResource(new CustomDataSyncResource(this.db, this.app.logger)
    }
  }
}