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 में लागू करें
भूमिका यूनियन

विकास गाइड

अनुमति कॉन्फ़िगरेशन बार का विस्तार करें

विभाग

विभाग प्रबंधन
विभाग भूमिका प्रबंधन

उपयोगकर्ता डेटा सिंक

सिंक प्रबंधन

डेटा सोर्स

वीकॉम
HTTP API

विकास गाइड

सिंक डेटा स्रोत का विस्तार करें
सिंक लक्ष्य संसाधन का विस्तार करें
Previous Pageसिंक डेटा स्रोत का विस्तार करें
TIP

यह दस्तावेज़ AI द्वारा अनुवादित किया गया है। किसी भी अशुद्धि के लिए, कृपया अंग्रेजी संस्करण देखें

#सिंक लक्ष्य संसाधनों का विस्तार करना

#अवलोकन

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