Autor Thema: Replizierparameter per Code ändern ??  (Gelesen 2909 mal)

Offline BlueMoony

  • Frischling
  • *
  • Beiträge: 8
  • Ich liebe dieses Forum!
Replizierparameter per Code ändern ??
« am: 11.06.03 - 15:00:11 »
Hi Leute,

kann man die Replizierparameter überhaupt per Code ändern??

Muss nämlich den Haken bei "Zugriffskontrollisten"  in Erweitert wegmachen "wenn Computer -beliebiger Server- und Empfängt von -Beliebiger Server-".


Oder kann es sein das es schon so etwas gibt?? In einer Library oder so??

Danke schon mal für Beiträge!!!


Gruß

Dominic alias  Bluemoony

Hier mal den Screenshot damit ihr wisst was ich meine:
« Letzte Änderung: 16.06.03 - 10:03:33 von BlueMoony »

Offline BlueMoony

  • Frischling
  • *
  • Beiträge: 8
  • Ich liebe dieses Forum!
Re:Replizierparameter per Script ändern ??
« Antwort #1 am: 16.06.03 - 08:34:23 »
Kann man überhaupt auf die Replizierparameter per code zugreifen????????????

Sorry Leute, aber gibts wirklich keinen der auf diese Frage antworten kann??´

Gruß

BlueMoony
« Letzte Änderung: 16.06.03 - 09:05:10 von BlueMoony »

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Replizierparameter per Code ändern ??
« Antwort #2 am: 16.06.03 - 10:13:12 »
... ich denke mit LS wirst du hier nicht direkt weiter kommen, sondern eventuell mit der NotesAPI - post doch mal an Eknori, der ist Spezialist bei NotesAPI...

ata
Grüßle Toni :)

Offline BlueMoony

  • Frischling
  • *
  • Beiträge: 8
  • Ich liebe dieses Forum!
Re:Replizierparameter per Code ändern ??
« Antwort #3 am: 16.06.03 - 10:23:59 »
 :)Uaahhh  :)

Riesigen Dank dass du geantwortet hast.
Habe gleich bei Eknori gepostet.
Oder ist er hier in diesem Board vertreten.

Sorry für die dumme Frage aber ich bin neu hier.


Gruß

BlueMoony

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Replizierparameter per Code ändern ??
« Antwort #4 am: 16.06.03 - 11:15:42 »
... den gibt es hier - gottseidank -  ;)

ata
Grüßle Toni :)

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re:Replizierparameter per Code ändern ??
« Antwort #5 am: 17.06.03 - 07:24:36 »
Hallo BlueMoony

ich antworte mal hier zentral ( hast ja mitlerweile schon an verschiedensten Stellen gepostet ). Zunächst mal was grundsätzliches ( betrifft jetzt nicht unbedingt dich ) Auch ich kann mir keine Lösungen so mal eben aus dem Ärmel schütteln. Zudem mache ich das hier freiwillig. Deshalb habe ich überhaupt kein Verständnis dafür, wenn ich so Sachen lesen muß, wie " ich habe doch schon gestern zweimal gemailt und immer noch keine Lösung für mein Problem".


Das mit den Replizierparametern ist sicherlich mit API lösbar. Das müsste ich aber auch erst einmal rauskramen und mich durch die API Dokumentation durchwühlen. Im Netzt habe ich zumindest keinen Ansatz dazu gefunden; hast du ja mit Sicherheit auch schon nach gesucht, gell ?
Wer mich hierbei unterstützen möchte, kann ja mal in der API Referenz ( kann man bei Lotus runterleden ) suchen und die Calls posten, die man zur Lösung des Problems braucht. Die müssen dann "nur" noch nach LS "übersetzt" werden, da die API ja bekanntlich auf C/C++ beruht.
Wie du siehst wird sich da nicht gleich heute oder morgen eine Lösung finden. Ich werde mir das aber auf meine ToDo Liste schreiben und sehen, wie und wann ich das umgesetzt bekomme.
Von wie vielen Datenbanken reden wir denn eigentlich, daß man das nicht manuell machen kann ( und wenn ich da einen Azubi dransetzen würde  ( kleiner Beitrag zum Thema: Was anfangen mit Praktikanten/Azubis ? );D )

eknori
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.730
  • Geschlecht: Männlich
Re:Replizierparameter per Code ändern ??
« Antwort #6 am: 17.06.03 - 08:02:32 »
Hab die API Docu gerade mal durchsucht: Ergebnis: Sieht schlecht aus !!

Es gibt eine Function NSFDbReplicaInfoSet

Zitat
STATUS LNPUBLIC NSFDbReplicaInfoSet(
   DBHANDLE  hDB,
   DBREPLICAINFO far *ReplicationInfo);

Description :

   This function sets the given database's DBREPLICAINFO structure.

Use this function to set specific values, such as the replica ID, in the header data of a database.  To create a new replica copy of a given database, for example, you must first create the new database using the NSFDbCreate, then get the replica ID of the source database via NSFDbReplicaInfoGet, then set this replica ID into the new database via NSFDbReplicaInfoSet.

You may also use NSFDbReplicaInfoSet to set values such as the replication flags in the header of the database.  See the symbolic value REPLFLG_xxx for specific replication settings.

Diese Function verwendet die Structure DBREPLICAINFO mit den values REPLFLG_xxx

REPLFLG_xxx kann folgende Werte haben

Zitat
#define REPLFLG_DISABLE         0x0004   /* Disable replication */
#define REPLFLG_UNREADIFFNEW   0x0008   /* Mark unread only if newer note */
#define REPLFLG_IGNORE_DELETES   0x0010   /* Don't propagate deleted notes when
                                 replicating from this database */
#define REPLFLG_HIDDEN_DESIGN   0x0020   /* UI does not allow perusal of Design */
#define REPLFLG_DO_NOT_CATALOG   0x0040   /* Do not list in catalog */
#define   REPLFLG_CUTOFF_DELETE   0x0080   /* Auto-Delete documents prior to cutoff date */
#define REPLFLG_NEVER_REPLICATE   0x0100   /* DB is not to be replicated at all */
#define REPLFLG_ABSTRACT      0x0200   /* Abstract during replication */
#define REPLFLG_DO_NOT_BROWSE   0x0400   /* Do not list in database add */
#define REPLFLG_NO_CHRONOS      0x0800   /* Do not run chronos on database */
#define REPLFLG_IGNORE_DEST_DELETES   0x1000   /* Don't replicate deleted notes
                                  into destination database */
#define REPLFLG_MULTIDB_INDEX   0x2000   /* Include in Multi Database indexing */
#define REPLFLG_PRIORITY_LOW   0xC000   /* Low priority */
#define REPLFLG_PRIORITY_MED   0x0000   /* Medium priority */
#define REPLFLG_PRIORITY_HI      0x4000   /* High priority */
#define REPLFLG_PRIORITY_SHIFT   14      /* Shift count for priority field */
#define REPLFLG_PRIORITY_MASK   0x0003   /* Mask for priority field after shifting*/
#define REPLFLG_PRIORITY_INVMASK 0x3fff   /* Mask for clearing the field */
#define REPLFLG_USED_MASK      (0x4|0x8|0x10|0x40|0x80|0x100|0x200|0xC000|0x1000|0x2000|0x4000)

Hier findet man zwar einen Parameter REPLFLG_IGNORE_DELETES, der das Flag für die Weitergabe von Löschvorgängen toggled; das ist ja einer der Parrameter aus der Gruppe, wo auch das ACL Flag steht. Allerdings gibt es wohl keine Möglichkeit, eben diese ACL Flag zu setzen oder zu löschen.

Auch die API beinhaltet nicht immer ALLE Möglichkeiten, die auch die GUI bietet. Mache Sachen lassen sich selbst mit der API programmtechnisch nicht realisieren.
Was aber nicht heißt, daß es nicht doch evtl. einen undokumentierten Parameter gibt, mit dem das dann unter Zuhilfenahme der o.a. function möglich ist, das Flag zu setzen oder zu löschen.

Hilft jetzt nicht wirklich weiter, weiß ich. Aber mehr kann ich da momentan auch nicht für dich tun, sorry.

eknori
« Letzte Änderung: 17.06.03 - 08:04:51 von eknori »
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline BlueMoony

  • Frischling
  • *
  • Beiträge: 8
  • Ich liebe dieses Forum!
Re:Replizierparameter per Code ändern ??
« Antwort #7 am: 18.06.03 - 09:06:55 »
@Eknori
Also als erstes mal ein dickes Danke für deine Antworten.

Für dein erstes Posting:

Ich weiß natürlich das man sich so eine Lösung nicht aus dem Ärmel schütteln kann und ich wollte nicht so erscheinen als ob ich eine Antwort erzwingen wollte. (Ich weiß du hast das nicht gemeint ;-))

Aber ich habe im Internet gesucht wie wild und habe sämtliche Dokumentationen durchgeforstet. Dabei habe ich deine Lösung des zweiten Postings auch gefunden, aber es ist wie du geschrieben hast es scheint nichts zu geben um dieses Acl-Flag zu setzen.

Dann habe ich auf der Lotus Developer Site nachgeschaut und dort gab es schon seit Anfang 2002 Postings über fast das selbe Problem wie ich, deshalb dachte ich wow, wenn das schon so lange her ist, dann hat bestimmt jemand in diesem Board das Problem auch schon gehabt und kann mir bestimmt weiter helfen.

Deshalb hat es mich auch gewundert als keine Antwort kam. Ich habe sicher ein zu schnell reagiert, das tut mir auch leid aber ich wollte nicht das es so ankommt.


Es handelt sich um ca. 3200 Adressbücher und Journale.
Ich schreibe gerade einen Automatismus um Anmeldungen für einen XTND- Server (Synchronisation zwischen Palms und Notes) auf einem schnellen Wege abzuarbeiten. Ich muss aber in den Replizierparametern dieses ACL-Flag auf false setzen, ansonsten müsste man manuell die 3200 Adressbücher und 3200 Journale öffnen und dieses Flag setzen.


So und jetzt zu was anderem:

Zufälligerweiße bin ich Azubi und ich glaube schon, dass wenn meine Abteilung mich hier nicht hätte, dann wären einige faule Säcke hier ganz schön am Ar***  ;-), das nur so zur Anmerkung. ;)

Sorry nochmal für meine Aufdringlichkeit
und
Vielen Dank nochmal für deine Postings!!!


Gruß

BlueMoony

Offline BlueMoony

  • Frischling
  • *
  • Beiträge: 8
  • Ich liebe dieses Forum!
Re:Replizierparameter per Code ändern ??
« Antwort #8 am: 23.06.03 - 10:57:32 »
So ich habe eine Möglichkeit gefunden die Replizierparameter anzusprechen:

   Set doc = ntDB.GetDocumentByID("FFFF0800")
   Set item = doc.Getfirstitem("$ReplClassMasks")
   
Dieses Dokument ("FFFF0800") bezieht sich auf die Replizierparameter einer DB.

Das Item "$ReplClassMasks" enthält als Wert die Summe aller ReplFlags. Mit dem richtigen Wert kann man die angehakten Flags ändern.

Natürlcih sind noch andere Items vertreten mit denen andere Replparameter ändern kann.


Gruß@all

Dominic alias BlueMoony

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re:Replizierparameter per Code ändern ??
« Antwort #9 am: 23.06.03 - 14:54:28 »
yoo, zu dem gleichen Ergebnis bin ich dann auch gekommen, nachdem mich Julian mit der Nase drauf gestubst hat:

Zitat
Ulrich -

Hmm, I'm not sure. You might try taking a look at the Icon note and the
Replication Formula note in the database (db.GetDocumentByID("FFFF0010") and
db.GetDocumentByID("FFFF0800")). One of those might have a field that
controls that flag.

I know that the Icon note has a field that does something with setting and
clearing the replicated local security properties ($LSECFlags), and the
Replication Formula note has fields like $ReplClassMasks that does something
with controlling the note classes that get replicated (ACL might be a note
class in this case). You can see a list of the fields in those notes, with
some vague descriptions of what they are, in the stdnames.h header file that
ships with the Notes API -- search for "Replication formula note item names"
and "Icon note item names" in that file.

If those are the things that control the ACL flag, you might be able to set
the flag before you replicate the database, then replicate the database, and
then reset the flag after you're done.

- Julian


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