Autor Thema: AdminP erweitern  (Gelesen 5768 mal)

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
AdminP erweitern
« am: 26.10.07 - 14:30:11 »
Hat irgendwer hier schon einmal den AdminP um individuelle RequestHandles erweitert? ( analog http://www.ibm.com/developerworks/lotus/library/ls-Custom_AdminP_Handler/ )
Ich suche eine Möglichkeit, über den AdminP Gruppenmitglieder aus bestehenden Gruppen zu löschen.
Wäre klasse, wenn mir jemand sein Werk zur Verfügung stellen könnte.
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: AdminP erweitern
« Antwort #1 am: 12.12.07 - 17:32:28 »
Hmm, ich hocke gerade über dem C Code. Obwohl ich der festen Überzeugung bin, daß ich beim Herunterladen des Codes und kompilieren alles richtig gemacht habe, bekomme ich den Kram nicht ans Laufen ...

Je mehr ich mich aber mit dem Code beschäftige, desto mehr komme ich auch zu der Überzeugung, daß man das Ziel einer Erweiterung des AdminP auch mit ganz normalem LS Code erreichen kann.

Denn, was passiert eigentlich, wenn man einen AdminRequest absetzt? Es wird ein Dolument in der admin4.nsf erzeugt, welches Felder mit Informationen enthält.
Der AdminP ( ein Server Addin ) horcht regelmässig in die Message Queue des Servers und schnappt sich dann die zu bearbeitenden Dokumente.  Innerhalb des AdminP Codes steht dann: "Wenn du einen request mit der Nummer nnn findest, dann mache dies und das"

Das Dies und Das kann dann sein :"Gucke mal in den request, ob da in dem feld SoundSo ein Name steht. Wenn ja, dann packe den in die Gruppe ABC und sag mir Bescheid, ob das geklappt hat"

Wenn der Code das OK gibt, schreibt der AdminP seinem herrchen einen netten Report in Form eines AntwortDocs auf den request. "Chef, hat klappt!!"

Das lässt sich aber Alles auch mit normalem Code bewerkstelligen. Die Admin4.nsf dient dabei dann lediglich als Container für die Anfragen und die Logs zu den Requests.
Code, den der AdminP nicht kennt ( z.B. 5001 ) fasst er nicht an. Das kann dnn ein Agent in der admin4.nsf übernehmen. Der Agent läuft mit den rechten des Servers; dann kommt er auch überall ran.

Ein paar Einschränkungen wird es geben, aber für das Löschen von Usern aus einer Gruppe sollte es reichen.

...
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: AdminP erweitern
« Antwort #2 am: 12.12.07 - 18:32:08 »
Der geht einfach in dieses IF nicht rein **!!@@@@ :'(

    while (!AddInIdle())
    {
      WORD            wRetLen = 0;
      AdminpAddInMessage   adminpMsg;

      memset(&adminpMsg, 0, sizeof(AdminpAddInMessage));

        OSPreemptOccasionally();

      /* Call MQGet to get the next message with a 200 ms timeout */
      MQGet(hMQ, (char*)&adminpMsg, sizeof(AdminpAddInMessage), 0, 200, &wRetLen);

   --->>>>>>      
        if (wRetLen == sizeof(AdminpAddInMessage))
        {
         /* Call our Internal Code to do the file Distribution */
            if (error = ProcessRequests(&adminpMsg)) 
                AddInLogMessageText("Error Processing Request.", error);

            AddInSetStatusText("Idle");
        }
    }   /* End of main task loop. */
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: AdminP erweitern
« Antwort #3 am: 13.12.07 - 10:19:50 »
uff, schwere geburt ... Wer lesen kann ist klar im Vorteil:

Zitat
AdminP requires the document and its fields to be signed

Wenn man natürlich nur die Felder signiert, geht das nicht  ::) :-[
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: AdminP erweitern
« Antwort #4 am: 13.12.07 - 14:57:03 »
Und wieder ein Stück weiter:

Ich kann nun:

- einen AdministrationsRequest in der admin4.nsf erstellen ( manuell )
- Addin auf dem Domino als Erweiterung des AdminP Task starten
- AdminP den Request an die Erweiterung übergeben lassen
- das Gruppendokument in der names.nsf finden
- die zu löschenden Personen aus dem AdminP Request auslesen

was noch fehlt ist

- die zu löschenden Personen aus der Gruppe im names.nsf löschen
- das geänderte Gruppendoc speichern
- eine kleine LS Klasse schreiben mit der Methode
   
  noteID$ = notesAdministrationProcessEx.RemoveGroupMembers( group$ , members )

Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: AdminP erweitern
« Antwort #5 am: 13.12.07 - 15:00:00 »
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: AdminP erweitern
« Antwort #6 am: 13.12.07 - 15:01:17 »
ach ja, hab ich vergessen:

letzter Punkt: Code der IBM anbieten ... ;D
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: AdminP erweitern
« Antwort #7 am: 13.12.07 - 15:04:32 »
Ich erstarre auch in Ehrfurcht ... Herzlichen Glückwunsch!!

Bernhard

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: AdminP erweitern
« Antwort #8 am: 13.12.07 - 15:08:15 »
Zitat
Ich erstarre auch in Ehrfurcht

Warum? Steht doch Alles in der Dokumentation zur C-API  ;D 8)
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: AdminP erweitern
« Antwort #9 am: 14.12.07 - 17:46:16 »
fast fertig ---
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: AdminP erweitern
« Antwort #10 am: 15.12.07 - 08:54:36 »
Addin ist fertig

Code
/****************************************************************************

	PROGRAM:    nadminplus   
	AUTHOR:		Ulrich "eknori" Krause, 12/2007
	FILE:       nadminplus.c
	PURPOSE:    Lotus Domino Server add-in task to extend Adminp
	SYNTAX:     (at the Lotus Domino Server console) > load nadminplus
	DESCRIPTION:
	This is a Lotus Domino Server add-in task. 
	That works with Adminp 
		- to delete persons from an existing group 
		- ... more to come
	via a custom admin process.
			
****************************************************************************/
#include "stdafx.h"
/* Lotus C API for Domino 
and Notes include files */
#include <global.h>
#include <addin.h>
#include <nsfdb.h>
#include <nsfnote.h>
#include <osmisc.h>
#include <osmem.h>
#include <ods.h>
#include <ostime.h>
#include <mq.h>
#include <adminp.h>
#include <nif.h>
#include <miscerr.h>

#define OUR_PROCESS		"AdminPlus"
#define STRING_LENGTH	256

/* Function prototypes */
STATUS LNPUBLIC ProcessRequests 
(AdminpAddInMessage* msg);

STATUS LNPUBLIC  AddInMain (HMODULE hModule, int argc, char *argv[])
{ ... 

Jetzt noch schnell die nötige Klasse zum Erstellen des AdminP(lus) Requests bauen ... 
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: AdminP erweitern
« Antwort #11 am: 15.12.07 - 12:47:08 »
Geschafft ... fertig

Code
	Dim noteid As Variant	
	Dim members(1) As String 
	members(0) = "Hein Bloed/Maus/de"
	
	Dim AdminPP As New NotesAdministrationProcessPlus ("Maus/WDR/DE")
	noteid = AdminPP.RemoveGroupMembers ("TEST", members)
	Msgbox noteid


erstellt den Request in der admin4.nsf. Sobald der AdminP Process einen neuen Request findet, den er selber nicht abarbeiten kann ( weil er die Funktion nicht kennt ) übergibt er den Request an das adminplus addin, welches dann die Arbeit macht ...

Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: AdminP erweitern
« Antwort #12 am: 15.12.07 - 13:13:14 »
Nochmals: Gratulation! Ich hab' ja schon eine Menge gemacht, aber an sowas habe ich mich noch nicht getraut.

Bernhard

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: AdminP erweitern
« Antwort #13 am: 15.12.07 - 13:42:45 »
Danke, Bernhard. Ich MUSS mich momentan mit solchen Dingen beschäftigen. Du erinnerst dich möglicherweise noch an die Diskussion bezgl. einer Mail Archiv Lösung ( 3rd Party ). Genau dafür brauche ich diese Funktion. Und an dieser Stelle auf IBM zuwarten dauert mir ehrlich gesagt zu lange  ;D

Ich schreibe das gerade alles zusammen. Dann gibt es auch was zum Download und ausprobieren ...
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: AdminP erweitern
« Antwort #14 am: 15.12.07 - 14:10:29 »
Ich erinnere mich, Ulrich.

Und ich denke, Dir macht das Ganze trotz Notwendigkeit auch viel Spass, wir ticken da glaube ich, sehr ähnlich: Wenn man dann hinterher sagen kann: "Na bitte, geht ja doch - wusst' ich's doch!", ist das schon ein tolles Gefühl.

Und manchmal passiert es ja auch, dass das noch anders gewürdigt wird: In den vergangenen zehn Tagen haben mich zwei Kunden gebeten, mehr (!!!) bezahlen zu dürfen - sie seien sooo zufrieden ... Abgesehen vom monetären Effekt: Das ist schon ein Wahnsinnsgefühl und eine enorme Bestärkung darin, die "Forschung" und den Einsatz fortzusetzen.

Bernhard

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: AdminP erweitern
« Antwort #15 am: 15.12.07 - 14:23:08 »
Zitat
haben mich zwei Kunden gebeten, mehr (!!!) bezahlen zu dürfen

Huch, geht auf Weihnachten zu, da werden manche Leute seltsam  ;D

Nee, ist wirklich eine schöne Sache, wenn gutes Handwerk gewürdigt wird.

Ich schreibe geade einen Artikel zu dem AdminP Thema für searchdomino. Auf ideajam.nst kann ich dann auch gleich eine Lösung zu meiner Anfrage anbieten. Und am Montag kann ich meinem Chef eine Lösung zur Lösung eines Problems der Mailarchivierung vorstellen.

Da ich damit auch gleich einen Business Case habe, werde ich auch noch einen offiziellen enhancement request schreiben.
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: AdminP erweitern
« Antwort #16 am: 15.12.07 - 14:52:56 »
Huch, geht auf Weihnachten zu, da werden manche Leute seltsam  ;D
Hinzu kommt eine erfreuliche wirtschaftliche Situation. Aber trotzdem müsste man sowas ja nicht machen - auch wenn es auf Weihnachten zugeht. Zumal es um Neukunden geht, zu denen logischerweise noch keine sooo enges Verhältnis aufgebaut werden konnte. Also, ich war schon baff.

Aber zurück zum wichtigen - zum Thread:
Stellst Du hier die Links ein zu Deinen Beiträgen bei searchdomino und iedeajam? Und könntest Du Deinen Beitrag bei searchdomino nicht auch zusätzlich hier veröffentlichen (searchdomino bekommt nicht meine Mail-Adresse - ich melde mich da nicht an).

Ein schönes Wochenende wünscht Dir
Bernhard

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: AdminP erweitern
« Antwort #17 am: 15.12.07 - 14:59:35 »
Habe gerade hier etwas veröffentlicht. Entspricht dem, was bei sd zu lesen sein wird. Am Ende des Artikels ist auch der Link zu ideajam

http://www.eknori.de/archives/514
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: AdminP erweitern
« Antwort #18 am: 17.12.07 - 09:03:48 »
So, auch das Problem eines ( möglichen ) Memory Leaks ist gelöst. Manchmal muss man einfach nur lange genug warten, bis Domino den Speicher wieder freigibt.
Wie und wann das passiert ?? Keine Ahnung. Es passiert einfach ...

Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz