Perluasan fungsi Asprova melalui antarmuka COM

2011/10/04

COMインターフェイス

Sistem ERP dan APS komersial tidak mengekspos kode sumber, tetapi mengekspos antarmuka COM sehingga fungsinya dapat diperluas dengan file dan plug-in Standard EXE (DLL).

Sama seperti WordPress, plugin Asprova tidak berfungsi sendiri, mereka perlu ditambahkan ke perangkat lunak utama agar berfungsi.

Unit utama Asprova memiliki hook untuk mengeksekusi plugin pada waktu acara, dan kunci plugin, yang merupakan titik akses untuk acara ini, sesuai dengan hook do_action atau hook apply_filters dari WordPress.

Apa itu antarmuka COM?

Asprova memiliki mekanisme untuk mengungkapkan data internal dan memproses konten dengan COM (Component Object Model) dan dapat digunakan untuk menambahkan fungsi melalui plug-in (file ActiveX DLL: memanggil fungsi dari Asprova) dan klien otomatisasi (file Standard EXE: Dimungkinkan untuk menambahkan fungsi melalui plug-in (file ActiveX DLL: fungsi panggilan dari Asprova) dan klien otomatisasi (file EXE Standar: akses ke Asprova dari program eksternal).

File DLL terletak di folder yang sama dengan file Asprova EXE dan secara otomatis dimuat ke Asprova saat startup.

Karena file DLL terdaftar sebagai perintah internal Asprova, maka perlu untuk melampirkannya ke menu yang ditentukan pengguna untuk memanggil file DLL dari Asprova, tetapi dalam kasus EXE, perlu untuk menentukan nama proyek file dan buka untuk mendapatkan proyek aktif (dari DLL atau EXE).

Lokasi DLL

DLL harus ditempatkan di tempat-tempat berikut dalam hal EXE yang Anda luncurkan

  1. Tempatkan EXE dan DLL di direktori yang sama.
  2. Jadikan direktori saat ini sebagai direktori DLL saat Anda memulai EXE.
  3. Tempatkan DLL di direktori system32.
  4. Tempatkan DLL di direktori Windows Anda.
  5. Tetapkan direktori tempat DLL berada di variabel lingkungan Path.

Pengaturan referensi lingkungan pengembangan (menggunakan pustaka Asprova dari dalam plugin)

Pengaturan referensi disimpan dalam file proyek (file .vbp) untuk menggunakan pustaka tipe objek ActiveX yang tidak memiliki GUI dalam proyek, dan pengaturan referensi disimpan dalam file proyek (file .vbp ), dan kemudian plug-in (DLL yang menyusun file proyek) digunakan untuk membuat Asprova Access the library.

Pengaturan referensi memungkinkan Anda menggunakan tipe objek saat mendeklarasikan variabel Dim atau membuat instance dengan operator baru.

  1. Asprova Project Class
    Dim project As aslib.ASBProject
  2. List of objects related to plugin keys used in extension plugin DLLs
    Dim ArgList As ASPArgList
  3. Item Class
    Dim item As ASBItem

Saat merujuk ke pustaka Asprova dari plugin, daftarkan dua pustaka kelas Asprova berikut dari pengaturan referensi di lingkungan pengembangan.

  1. As 1.1 Type Library
  2. AsPlugInManager 1.0 Type Library

Organisasi file proyek plugin

Untuk plug-in, Anda perlu mendaftarkan fungsi yang akan dipanggil dari Asprova dalam metode Registrasi Otomatis kelas ASDefault. Ini akan dipanggil secara otomatis dan diimplementasikan di objek proyek.

COMポート2

Dalam kasus Standard EXE (klien otomatisasi), Anda tidak memerlukan kelas ASDefault ("Cara mendapatkan objek Asprova dari DLL atau EXE").

Anda mendaftarkan plugin dengan mengirimkan 4 argumen ke metode AddASPlugIn dari manajer plugin Asprova (fungsi pendaftaran plugin), tetapi isi argumennya adalah sebagai berikut: "Saya adalah proyek bernama Pabrik, dan saya memiliki kelas yang disebut Lembur dan kelas yang disebut metode AddOverTime (fungsi entri), jadi panggil pada waktu tombol plug-in KeyHookGeneric ".

Memetakan Hooks dan Functions ke Plug-in Keys (Access Points)

Asprova menyediakan pengait untuk menjalankan plugin untuk setiap acara. Titik akses yang mewakili setiap kejadian ini disebut kunci plug-in. Misalnya, KeyHookGeneric digunakan untuk "menambahkan perintah", atau dengan kata lain, untuk menjalankan plugin dengan menjalankan perintah di titik akses pada saat perintah yang ditambahkan akan diaktifkan.

Option Explicit
Public Function AutoRegistration(plugInManager As ASPPlugInManager, module As ASPModule) As Boolean
    'Set the comments for this module
    module.Comment = "APS Extended Functionality PlugIns (VB)"
    'Define a variable that holds a plugin object
    Dim plugIn As ASPPlugIn
    ' ---------------------------------------------------------------------------------------------
    'Call the plugin manager and register a new plugin. The name of the calling method is AddASPlugIn
    ' 第1Param:Plug-in display name
    ' 第2Param:ProgID that represents the module and class in which the plugin is implemented
    ' 第3Param:The entry function name of the plugin (call name)
    ' 第4Param:A key name that represents the context in which the plugin is used

    '(1)Overtime and weekend overtime are automatically calculated and set in the calendar table.
    Set plugIn = plugInManager.AddASPlugIn("Incorporate overtime into overtime and Saturday work", "Factory1.OverTime", "AddOverTime", ASPlugInKeyName.KeyHookGeneric)
    'You can add comments etc. to this plugin.

    plugIn.Comment = "Overtime is assigned to 2 hours of weekday overtime and 2 shifts of Saturday work."
    'Plugin call order (for when there are multiple plugins with the same plugin key)
    plugIn.Order = 1
    'True, indicating that the automatic registration was successful.
    AutoRegistration = True
End Function

Saat Asprova memuat plugin secara otomatis saat startup, ini akan menampilkan "nama tampilan fungsi entri" (argumen pertama saat memanggil pengelola plugin) di plugin perintah internal.

Kami mendaftarkan plugin dengan memanggil manajer plugin Asprova dari dalam plugin dan meneruskan empat argumen.

COMポート3

Konsep yang sama dengan port COM (port komunikasi)

Omong-omong, port COM dan antarmuka COM berbeda satu sama lain, tetapi dalam hal standar untuk antarmuka eksternal, port COM dan antarmuka COM adalah sama.

Perangkat lunak dan perangkat keras memiliki antarmuka (port) standar untuk bertukar data dengan dunia luar. Misalnya, port pada server POP dan SMTP dan port untuk menghubungkan ke DB adalah port TCP / IP.

PC standar memiliki port PS / 2, port USB dan port LAN (port Ethernet) sebagai antarmuka untuk menghubungkan periferal seperti keyboard.

Dalam kasus perangkat lunak, OS dan sistem operasi lain menyediakan cara standar dan terpadu untuk mengirim dan menerima data ke dan dari perangkat eksternal dan jaringan komunikasi, dan port digunakan untuk mengidentifikasi orang yang berkomunikasi dengan perangkat lunak.

Di Windows, untuk mengaktifkan perangkat lunak aplikasi untuk mengakses modem, printer, pemindai gambar, dll. Secara terpadu, sistem yang disebut "port COM" dengan metode input / output terpadu disediakan, dan perangkat lunak aplikasi dapat mengidentifikasi port COM ke mana perangkat target terhubung. Anda dapat menangani input dan output ke perangkat yang dimaksud hanya dengan mengetahui port apa yang digunakan.

Misalnya, saat Anda menyambungkan kode batang USB, COM13 ditetapkan untuk itu, tetapi port COM13 hanyalah virtual karena tidak ada 13 antarmuka secara fisik di PC.

Dalam komunikasi jaringan yang menggunakan TCP / IP, "nomor port" antara 0 dan 65535 digunakan sebagai alamat tambahan di bawah alamat IP perangkat komunikasi atau komputer individu.

Ini memungkinkan satu komputer menyediakan banyak layanan dan berkomunikasi dengan banyak komputer secara bersamaan. Istilah "port" sering digunakan hanya untuk merujuk ke nomor port TCP / IP.