Autor Thema: PHP-Zugriff auf Notes  (Gelesen 12183 mal)

Offline inu

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 594
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
PHP-Zugriff auf Notes
« am: 05.07.06 - 07:34:23 »
Hallo Leute,

es ist mir mittlerweile gelungen, mittels PHP und der COM-Schn ittstelle auf Notes-Datenbestände zuzugreifen.
Wie jedoch kann man neue Dokumente erstellen? Oder vorhandene ändern?

Vielen Dank

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: PHP-Zugriff auf Notes
« Antwort #1 am: 05.07.06 - 08:28:31 »
Indem man die für die COM Schnittstelle beschriebenen Methoden benutzt!
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

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: PHP-Zugriff auf Notes
« Antwort #2 am: 05.07.06 - 08:46:35 »
Php? Brrrrrr.
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 Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: PHP-Zugriff auf Notes
« Antwort #3 am: 05.07.06 - 09:12:41 »
Doch das geht schon und wir setzen es "erfolgreich" seit 4 Jahren ein, aber in einem neuen Projekt würde ich auf Notes 7 und Web Services setzen.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

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: PHP-Zugriff auf Notes
« Antwort #4 am: 05.07.06 - 09:15:09 »
Thomas, das glaub ich Dir schon, dass das geht. Wenn man die richtigen Leute hat, geht das sogar sehr gut. PHP leidet bei mir darunter, dass 95% des PHP-Codes, den man so Online findet unter aller Sau ist, weil sich Hinz und Kunz berufen fühlen PHP-Code zu schreiben, ohne eine Ahnung vom Programmieren zu haben.
Daher ist PHP bei mir prinzipiell "brrrrrrrrrrrrrr". ;)
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 Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: PHP-Zugriff auf Notes
« Antwort #5 am: 05.07.06 - 09:22:25 »
@m3
Was Hinz und Kunz angeht stimm ich dir zu. Und was die Qualität des zu findenden Codes angeht auch. Aber das war ja hier nicht die Frage.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

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: PHP-Zugriff auf Notes
« Antwort #6 am: 05.07.06 - 09:41:24 »
Aber die Qualität der Frage lässt auf den Code schließen ..... ;)
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 inu

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 594
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: PHP-Zugriff auf Notes
« Antwort #7 am: 05.07.06 - 11:12:48 »
@Thomas Schulte:

die beschriebenen Methoden benutzen ist gut. Ich komme aber dennoch nicht weiter. Momentan habe ich folgendes:

$NotesSession   =   new COM("Lotus.NotesSession");
$NotesSession->Initialize("kennwort");
$lvar_dbdirectory   =   $NotesSession->GetDBDirectory("servername");
if (!is_null($lvar_dbdirectory))
{      $db1  = $NotesSession->GetDatabase("servername","test.nsf");
   $doc  = $db1->CreateDocument();
   $doc->Save(true,true);
}


dieses CreateDocument() bzw Save() scheint nicht zu laufen. Zumindest erhalte ich kein neues Dokument. Welche Methode zum Belegen eines Feldes könnte ich benutzen? So wie in Lotus Script : "... doc.feldname = "irgendwas" funktioniert das offensichtlich nicht ...

Vielen Dank

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: PHP-Zugriff auf Notes
« Antwort #8 am: 05.07.06 - 11:15:50 »
ReplaceItemValue ?
Die Notes-Hilfe zu "NotesDocument" ist da sehr hilfreich.

Kommt er ins IF überhaupt hinein?
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 inu

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 594
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: PHP-Zugriff auf Notes
« Antwort #9 am: 05.07.06 - 11:17:45 »
@m3: ja, er kommt ins IF rein.

Offline Lossa

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.404
  • Geschlecht: Männlich
    • alphaTrain
Re: PHP-Zugriff auf Notes
« Antwort #10 am: 05.07.06 - 11:18:05 »
doc.irgendwas

Ist extended Properties und funktionier nicht mit COM.

Benutze ausschliesslich Methoden und orginal Properties in der Hilfe wird auch angegeben wenn die Methode nicht in COM nutzbar ist.
Viele Grüße

Ulrich Lossa
Aktiv als Notes Admin und Entwickler seit Version 1.
Freier Trainer und Berater.
Zertifiziert für alle Versionen SA und DB.
HCL Certified Administrator
IBM Certified Advanced Application Developer (PCLP AD)
IBM Certified Advanced System Administrator (PCLP SA)
IBM Certified Instructor for System Administration and Application Development ( CLI)
IBM Certified Instructor for Websphere Software
IBM Certified Instructor for DB2
http://www.alphatrain.de
Lossa@alphatrain.de

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: PHP-Zugriff auf Notes
« Antwort #11 am: 05.07.06 - 11:20:18 »
$doc->Form='Maskenname';
sollte funktionieren. Zumindest mit Perl klappt das so.
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 Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: PHP-Zugriff auf Notes
« Antwort #12 am: 05.07.06 - 11:24:22 »
Hier ein rudimentäres Beispiel für so was.
Code
function CreateAndSaveNotesDocument ( &$Order)
    {   global $myConfig;
        
        # COM Session aufbauen
        $session = @new COM( "Lotus.NotesSession" );
        if (!$session) 
        {
            $this->lotuslog( "Leider konnte keine Verbindung zum Server hergestellt werden");
            return false;
        }
        $session->Initialize();
        # Object Model aufbauen um die Ansicht nach Länderkennzeichen/Masken zu holen
        #
        if ('' == $myConfig->sLotusDB) $myConfig->sLotusDB = 'InputDokumente.nsf';
        $dbInput = $session->getDatabase( "", $myConfig->sLotusDB ); // "InputDokumente.nsf"
        if( !$dbInput ) {
            $this->lotuslog( "Leider wurde die Datenbank für die Verarbeitung nicht gefunden");
            return false;
        }
        # erstelle ein neues dokument in der Notes Datenbank
        $docinput = $dbInput->createDocument();
        if( !$docinput ) {
            $this->lotuslog( "Leider konnte kein Dokument erstellt werden");
            return false;
        }
        # die Form wird gebraucht um dem Dokument die richtige Struktur zuweisen zu können
        $wert = $this->setItemValueString($docinput, "Form", "frmFormName");
        # ab hier sind es die einzelnen Felder die befüllt werden müssen
        # die Felder müssen aus der entsprechenden Maske beim verlassen befüllt werden
        # Anschrift des Kunden
        $wert = $this->setItemValueString($docinput, "txtGeschlecht", $Geschlecht);
        $wert = $this->setItemValueString($docinput, "txtKundennummer", $Kundennummer);
        und so weiter
        .
        .
        .

        # speichere das dokument ab
        $gespeichert = $docinput->save(true,true);
        return true;
    }
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline inu

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 594
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: PHP-Zugriff auf Notes
« Antwort #13 am: 05.07.06 - 12:06:38 »
Danke erst einmal. Werde das nachher gleich mal testen.

Offline inu

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 594
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: PHP-Zugriff auf Notes
« Antwort #14 am: 06.07.06 - 08:13:01 »
@Thomas Schulte: Dieses Beispiel scheint einer Klasse zu entstammen. Ist diese Klasse irgendwo im Internet verfügbar, wo man sich die eine oder andere Anregung noch holen kann?

Vielen Dank

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: PHP-Zugriff auf Notes
« Antwort #15 am: 06.07.06 - 08:25:00 »
Nein ist sie nicht. Das ist Bestandteil eines Shops den wir aufgebaut haben.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline inu

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 594
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: PHP-Zugriff auf Notes
« Antwort #16 am: 06.07.06 - 09:13:38 »
mmh,

mir kommt die Zeile:

$wert = $this->setItemValueString($docinput, "Form", "frmFormName");

etwas seltsam vor. Was verbirgt sich denn hinter "setItemValueString"?

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: PHP-Zugriff auf Notes
« Antwort #17 am: 06.07.06 - 13:28:03 »
Ich gebs zu die hab ich vergessen.
Code
    function setItemValueString( $doc, $field, $replacevalue) {
        if ( isset($replacevalue)) {
            $value = $doc->replaceItemValue($field, $replacevalue);
        } else {
            # wenn das übergebene Feld nicht vorhanden ist übergebe einen leeren String
            $value = $doc->replaceitemvalue($field, " ");
        }
        return $value[0];
    }
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline inu

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 594
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: PHP-Zugriff auf Notes
« Antwort #18 am: 06.07.06 - 14:09:34 »
@T. Schulte:

Danke,

beim Ausführen der Zeile "$value = $doc->replaceItemValue($field, $replacevalue);" erhalte ich einen Fehler "Error Notification". Scheint Igrendwie nicht zu gehen. Für $field habe ich "Form" eingesetzt...

:'(

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: PHP-Zugriff auf Notes
« Antwort #19 am: 06.07.06 - 14:26:44 »
$value = $doc->replaceItemValue(Form, $replacevalue);
oder
$value = $doc->replaceItemValue("Form", $replacevalue);

Welche Fehlermeldung kommt?
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

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz