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

Rollen en rechten

Rolconfiguratie
Rechtenconfiguratie
Toepassen in UI
Rol-unie

Ontwikkelaarsgids

Rechtenconfiguratiebalk uitbreiden

Afdelingen

Afdelingsbeheer
Afdelingsrolbeheer

Gebruikersgegevenssynchronisatie

Synchronisatiebeheer

Gegevensbronnen

WeChat Work
HTTP API

Ontwikkelaarsgids

Synchronisatiebronnen uitbreiden
Synchronisatiedoelen uitbreiden
Previous PageSynchronisatiebronnen uitbreiden
TIP

Dit document is vertaald door AI. Voor onnauwkeurigheden, raadpleeg de Engelse versie

#Synchronisatiedoelbronnen uitbreiden

#Overzicht

NocoBase ondersteunt standaard het synchroniseren van gebruikersgegevens naar de tabellen Gebruiker en Afdeling. U kunt ook de doelbronnen voor gegevenssynchronisatie uitbreiden om gegevens naar andere tabellen te schrijven of om, indien nodig, aangepaste verwerking uit te voeren.

Experimenteel

Volledige documentatie volgt nog.

#Interface voor de verwerking van doelbronnen

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

#Doelbronnen registreren

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