logologo
Başlangıç
Kılavuz
Geliştirme
Eklentiler
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
Başlangıç
Kılavuz
Geliştirme
Eklentiler
API
logologo
Kullanıcı

Roller ve İzinler

Rol Yapılandırması
İzin Yapılandırması
UI'da Uygula
Rol Birleşimi

Geliştirici Kılavuzu

İzin Yapılandırma Çubuğunu Genişlet

Departman

Departman Yönetimi
Departman Rol Yönetimi

Kullanıcı Veri Senkronizasyonu

Senkronizasyon Yönetimi

Veri Kaynakları

WeChat Work
HTTP API

Geliştirici Kılavuzu

Senkronizasyon Veri Kaynağını Genişlet
Senkronizasyon Hedef Kaynağını Genişlet
Previous PageSenkronizasyon Veri Kaynağını Genişlet
TIP

Bu belge AI tarafından çevrilmiştir. Herhangi bir yanlışlık için lütfen İngilizce sürümüne bakın

#Senkronizasyon Hedef Kaynaklarını Genişletme

#Genel Bakış

NocoBase, kullanıcı verilerini varsayılan olarak Kullanıcı ve Departman tablolarına senkronize etmeyi destekler. Ayrıca, verileri başka tablolara yazmak veya özel işlemler gerçekleştirmek için veri senkronizasyonunun hedef kaynaklarını ihtiyaca göre genişletmenize olanak tanır.

Deneysel

Tam dokümantasyon bekleniyor.

#Hedef Kaynak İşleyici Arayüzü

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');
  }
}

#Hedef Kaynakları Kaydetme

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),
      );
    }
  }
}