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

Ruoli e Permessi

Configurazione Ruolo
Configurazione Permessi
Applica nell'UI
Unione di Ruoli

Guida per Sviluppatori

Estendi Barra Configurazione Permessi

Dipartimenti

Gestione Dipartimenti
Gestione Ruoli Dipartimento

Sincronizzazione Dati Utente

Gestione Sincronizzazione

Origini Dati

WeChat Work
API HTTP

Guida per Sviluppatori

Estendi Origine Dati di Sincronizzazione
Estendi Risorsa di Destinazione Sincronizzazione
Previous PageEstendi Origine Dati di Sincronizzazione
Avviso di traduzione IA

Questa documentazione è stata tradotta automaticamente dall'IA.

#Estensione delle risorse di destinazione della sincronizzazione

#Panoramica

NocoBase supporta nativamente la sincronizzazione dei dati utente nelle tabelle Utente e Dipartimento. Permette inoltre di estendere le risorse di destinazione per la sincronizzazione dei dati, consentendo di scrivere i dati in altre tabelle o di eseguire elaborazioni personalizzate secondo necessità.

Sperimentale

La documentazione completa è in fase di preparazione.

#Interfaccia per la gestione delle risorse di destinazione

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

#Registrazione delle risorse di destinazione

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