norpa GmbH
norpa GmbH

Einfache Integration in Ihre Windows-Anwendung

Erweitern Sie Ihre Windowsanwendung mit Hilfe der docuplex-DLL.

Der einfachste Weg zur Integration von docuplex in Windows Anwendungen ist die Verwendung der docuplex-DLL. Natürlich können Sie docuplex auch direkt ansprechen und das Handling von XML und HTTP selber implementieren.

Unsere DLL bietet Ihnen jedoch für jede docuplex Funktion einen definierten Schnittstellenaufruf, so dass Sie sich bei der Integration auf das Wesentliche konzentrieren können: Ihre Benutzerschnittstelle und Workflows.
Überlassen Sie docuplex die Verwaltung der Ablage und verknüpfen Sie die Dokumente und Dateien mit den Datensätzen Ihrer Anwendung. Bieten Sie Ihren Benutzern ein einheitliches Frontend zum Zugriff auf alle relevanten Daten.

Im Folgenden finden Sie Beispiele für:

Beispiel C++

Ein Integrationsbeispiel für Verwendung der docuplex-DLL mit C++

  1. #include "stdafx.h"
  2. #include <iostream>
  3. #include <Windows.h>
  4.  
  5. typedef int (__stdcall *FdpOpenSession)(
  6. PCHAR Host,
  7. PCHAR User,
  8. PCHAR Password,
  9. PCHAR Client,
  10. void* CallBack
  11. );
  12.  
  13. typedef void (__stdcall *FdpGetLastError)(
  14. int Session,
  15. PCHAR Message,
  16. int *Code,
  17. PCHAR ClassName
  18. );
  19.  
  20. typedef bool (__stdcall *FdpBrowseUsersOpen)(
  21. int Session,
  22. int *ResultCount
  23. );
  24.  
  25. typedef bool (__stdcall *FdpBrowseUsersGetItem)(
  26. int Session,
  27. int Index,
  28. PCHAR User
  29. );
  30.  
  31. FdpOpenSession dpOpenSession = NULL;
  32. FdpGetLastError dpGetLastError = NULL;
  33. FdpBrowseUsersOpen dpBrowseUsersOpen = NULL;
  34. FdpBrowseUsersGetItem dpBrowseUsersGetItem = NULL;
  35.  
  36. int SessionID;
  37.  
  38. void errorandhalt(char *msg)
  39. {
  40. std::cout << msg << std::endl;
  41. exit(-1);
  42. }
  43.  
  44. int _tmain(int argc, _TCHAR* argv[])
  45. {
  46. HMODULE h = LoadLibraryA("docuplex.dll");
  47. if (h==0) exit(-1);
  48.  
  49. dpOpenSession = (FdpOpenSession)GetProcAddress(h, "dpOpenSession");
  50. if (!dpOpenSession) errorandhalt("Funktion nicht gefunden");
  51. dpGetLastError = (FdpGetLastError)GetProcAddress(h, "dpGetLastError");
  52. if (!dpGetLastError) errorandhalt("Funktion nicht gefunden");
  53. dpBrowseUsersOpen = (FdpBrowseUsersOpen)GetProcAddress(h, "dpBrowseUsersOpen");
  54. if (!dpBrowseUsersOpen) errorandhalt("Funktion nicht gefunden");
  55. dpBrowseUsersGetItem = (FdpBrowseUsersGetItem)GetProcAddress(h, "dpBrowseUsersGetItem");
  56. if (!dpBrowseUsersGetItem) errorandhalt("Funktion nicht gefunden");
  57.  
  58. SessionID = dpOpenSession(
  59. "https://servername/docuplex/ServiceController?perform",
  60. "username",
  61. "geheimes_password",
  62. "bau gmbh",
  63. 0
  64. );
  65.  
  66. std::cout << "Session-ID: " << SessionID << std::endl;
  67.  
  68. int UserCount;
  69. if (!dpBrowseUsersOpen(SessionID, &UserCount)) exit(-2);
  70.  
  71. std::cout << "Anzahl Benutzer: " << UserCount << std::endl;
  72.  
  73. char UserName[64];
  74. for (int i = 0; i < UserCount; i++)
  75. {
  76. if (!dpBrowseUsersGetItem(SessionID, i, UserName)) exit(-2);
  77. std::cout << UserName << std::endl;
  78. }
  79.  
  80. return 0;
  81. }

Beispiel Delphi

Ein Integrationsbeispiel für Verwendung der docuplex-DLL mit Delphi

  1. uses dpClient;
  2.  
  3. procedure Test;
  4. const
  5. /* Daten des docuplex Zielsystems */
  6. Server = 'http://server';
  7. Proxy = '';
  8. User = 'benutzername';
  9. Password = 'geheimes_passwort';
  10. Client = 'Bau GmbH';
  11.  
  12. /* Angaben zum Request */
  13. Repository = 'Buchhaltung';
  14. Name = '/Umsatzsteuer';
  15. FileFilter = '*.pdf'; /* Nur PDF-Dateien */
  16. Recursive = False;
  17. FolderOnly = False;
  18. DetectSubfolder = True;
  19. WithAttributes = True;
  20. IncludeTrash = False;
  21.  
  22. var
  23. /* Die Verbindung zur docuplex Session */
  24. Session: Integer;
  25.  
  26. /* Anzahl der Einträge im Verzeichnis */
  27. ResultCount : Integer;
  28.  
  29. /* Schleifenzähler */
  30. Idx : Integer;
  31.  
  32. /* Variablen für Rückgabewerte mit Details zu jedem Ordnereintrag */
  33. FileName : Char512;
  34. FileSize : Int64;
  35. LastModified : Char64;
  36. IsFolder : Boolean;
  37. HasSubFolder : Boolean;
  38. HasAnnotation : Boolean;
  39. HasVersions : Boolean;
  40. Tags : Char512;
  41. Priority : Integer;
  42. Reminder : Char64;
  43.  
  44. begin
  45. /* docuplex Sitzung öffnen */
  46. Session := dpOpenSession(PChar(Server), PChar(Proxy), PChar(User),
  47. PChar(Password), Char(Client), nil);
  48. if Session <= 0 then
  49. raise Exception.Create('docuplex-Session kann nicht erzeugt werden');
  50.  
  51. /* Verzeichnisinhalt abrufen */
  52. if dpBrowseFolderOpen( Session, ResultCount, PChar(Repository), PChar(Name),
  53. PChar(FileFilter), Recursive, FolderOnly, DetectSubfolder,
  54. WithAttributes, IncludeTrash)
  55. then begin
  56.  
  57. for Idx := 0 to ResultCount-1 do begin
  58.  
  59. /* Über die Verzeichniseinträge iterieren */
  60. if dpBrowseFolderGetItem(Session, Idx, FileName, FileSize,
  61. LastModified, IsFolder, HasSubFolder,
  62. HasAnnotation, HasVersions, Tags, Priority, Reminder)
  63. then begin
  64.  
  65. /* Mache irgendwas mit den Daten */
  66.  
  67. end;
  68.  
  69. end;
  70.  
  71. end;
  72.  
  73. end.
  74.  

Alle Beispiele sollten nicht im produktiven Einsatz verwendet werden, da keinerlei Fehlerbehandlung implementiert ist.

*Pflichtfelder

No Abbrechen