Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Christian97 am 22.11.03 - 19:44:54

Titel: Daten aus Excel als Antwortdokumente importieren
Beitrag von: Christian97 am 22.11.03 - 19:44:54
Hallo,

ich habe eine Workflow-Anwendung entwickelt, die eine bisherige Lösung in Excel ersetzt. Die Stammdaten der Kunden habe ich bereits als Hauptdokumente importiert. Nun möchte ich aber alle bisherigen Anträge der Kunden als Antwortdokumente importieren. Die entsprechende Tabelle als .wk? habe ich mir schon erstellt. Ich dachte, daß das auch so flott geht, wie bei den Hauptdokumenten, da die Importfunktion auch den Import als Antwortdokumente ermöglicht. An dieser Stelle hört's aber auf, denn nach Auswahl der Maske bekomme ich eine Fehlermeldung "Ungültiges oder nicht vorhandenes Dokument".

Muß man beim Import als Antwortdokument etwas anderes beachten? Wie stellt Notes den Bezug ($Ref) zum Hauptdokument her? Hat das schonmal jemand gemacht und kann mir helfen?
In der Sandbox und in der Forumssuche habe ich bereits geguckt. Dort geht's aber immer nur um Hauptdokumente und die hab ich ja schon importiert.

Vielen Dank
Christian
Titel: Re:Daten aus Excel als Antwortdokumente importieren
Beitrag von: TMC am 22.11.03 - 19:56:57
Hi,

nachdem dies 'ne einmalige Sache ist, würde ich es wie folgt lösen:

Im $Ref steht ja der Bezug zum Mutterdokument, also z.B. "123456789:12345678-123456789:12345678".

Ich würde:
 - eine temp. View der Mutterdokumente im Notes erzeugen, in der eine Spalte die ID enthält
 - diese View nach Excel exportieren
 - im Excel in der Tochterdokumente-Datei eine Spalte hinzufügen und via SVERWEIS die ID der gerade exportierten Datei hinzufügen
(die SVERWEIS-Bedingung kann ich Dir jetzt nicht geben, da Du zu wenig Infos mitgibst)

Jetzt kannste die Töchter importieren. Wenn Du noch ein Script brauchst, um von Excel nach Notes Dokumente zu importieren, sag Bescheid, ich habe da ein Script rumliegen, als Feldwerte werden jew. die Spaltenüberschriften genommen.

TMC
Titel: Re:Daten aus Excel als Antwortdokumente importieren
Beitrag von: Christian97 am 22.11.03 - 21:09:41
So, ich hab die Spalte hinzugefügt. Das mit dem Sverweis hat auch geklappt. Meine Importansicht hat nun in der ersten Spalte die Formel $Ref (oder sollte es @Text($Ref) sein?) stehen, alle weiteren Spalten sind die, die ich importieren möchte.

Was ich beim Import auswähle:
Dateityp: Lotus 1-2-3
Maske: die Maske, in der die Doks später auch angezeigt werden sollen (mit entspr. Feldern)
Spaltenformat: Durch WKS-Titel definiert
Importieren als: Antwortdokumente
Mein Problem ist aber weiterhin, daß mir die normale Notes-Importfunktion immer den Fehler "Ungültiges oder nicht vorhandenes Dokument" bringt.

Falls Dein Script auch die Tochterdoks importieren kann, würde ich das gern mal probieren.

Vielen Dank
Christian
Titel: Re:Daten aus Excel als Antwortdokumente importieren
Beitrag von: TMC am 22.11.03 - 21:32:07
Hi Christian,

soweit ich "mein" Script interpretiere, ist es egal, ob es sich um Tochterdocs handelt.

Die Quelle ist hier: Sandbox Excel (http://www-10.lotus.com/ldd/sandbox.nsf/Threads/5A58355F6CAEA82B85256C95006B44A4?OpenDocument)

Sag mal an, ob damit immer noch die Fehlermeldung kommt.
HINWEIS: Das Script übernimmt auch die erste Zeile als Dokument (muss man also danach löschen).

TMC

Titel: Re:Daten aus Excel als Antwortdokumente importieren
Beitrag von: TMC am 22.11.03 - 21:36:08
Nachtrag:
Das Script erwartet als Excel-Spaltenüberschrift exakt die Feldnamen.

Sollte also also das $REF übernehmen.


TMC
Titel: Re:Daten aus Excel als Antwortdokumente importieren
Beitrag von: Christian97 am 22.11.03 - 21:41:53
Ich hab das Script als Bibliothek eingefügt. Kannst Du mir bitte noch sagen,wie ich das zum Laufen bekomme, ich hab mit LS nix am Hut.

Christian
Titel: Re:Daten aus Excel als Antwortdokumente importieren
Beitrag von: Semeaphoros am 22.11.03 - 21:42:01
Noch ein Hinweis, wenn man das so tut, muss man sie als Hauptdokumente importieren. Die Antwortdokumente enstehen "von Hand" dadurch, dass man das $REF Feld ja beim Import selber generiert. Also, beim Import angeben "Hauptdokumente", das sollte dann trotzdem klappen.
Titel: Re:Daten aus Excel als Antwortdokumente importieren
Beitrag von: Christian97 am 22.11.03 - 21:47:50
@Semeaphoros:
Das klappt leider nicht. Der Import klappt als Hauptdokumente super, aber die Dokumente erscheinen dann nicht als Antworten unter den Hauptdokumenten.

Christian
Titel: Re:Daten aus Excel als Antwortdokumente importieren
Beitrag von: TMC am 22.11.03 - 21:52:00
@Christian
Hab da schon lange nicht mehr reingeschaut, hatte mir aber damals den Code rauskopiert (see attached).

Damit sollte es klappen.

TMC

Titel: Re:Daten aus Excel als Antwortdokumente importieren
Beitrag von: Christian97 am 22.11.03 - 21:54:54
@TMC:
Das Script ist das gleiche wie das aus der Sandbox ;-)
Aber wie bekomme ich es zum Laufen? :-[

Christian
Titel: Re:Daten aus Excel als Antwortdokumente importieren
Beitrag von: TMC am 22.11.03 - 21:56:42
@Command([ToolsRunMacro]; "MeinScript")


Oder was meinst Du jetzt?

TMC
Titel: Re:Daten aus Excel als Antwortdokumente importieren
Beitrag von: Christian97 am 22.11.03 - 22:12:31
@TMC:
Ich hatte das Script als Bibliothek, nicht als Agent eingefügt.

Das Script läuft, importiert aber alles als Hauptdokument. Mir scheint, als ob das Script das gleiche macht, wie die Notes-Importfunktion, nur daß man keine WK3-Datei und keine Ansicht erstellen muß.

Die Antwortdoks erscheinen leider nicht.

Christian
Titel: Re:Daten aus Excel als Antwortdokumente importieren
Beitrag von: TMC am 22.11.03 - 22:19:20
Da hilft wahrscheinlich ein simpler Agent.

Datatype des Feldes sollte "Response" sein.

Ich bin leider kein Scriptprofi, aber hier im Board gibt es einige.

Ich schätze ein Agent "nimm alle Docs in die Collection, wenn in View XY", und mache aus Feld '$REF' den Datatype 'Response' dürfte easy sein.

Schau mer mal was die anderen so sagen....

TMC
Titel: Re:Daten aus Excel als Antwortdokumente importieren
Beitrag von: Axel_Janssen am 22.11.03 - 22:35:24
In script gibt es eine Funktion NotesDocument.makeResponse(NotesDocument).

code sähe so in der Art aus:

Code
rem docResponse hast du schon irgendwie aus dem Excel erzeugt nun: 
vwKleinerBaer = db.getView("MainDocs")
docMain = vwKleinerBaer.getDocumentByKey(key_zum_finden_des_HauptDokuments)
docResponse.makeResponse(docMain)

hoffe es hilft

Axel
Titel: Re:Daten aus Excel als Antwortdokumente importieren
Beitrag von: koehlerbv am 22.11.03 - 22:38:19
Mal 'ne blöde Frage: Wie wollt Ihr überhaupt der Import-Routine mitteilen, welches importierte Dokument zu welchem bestehenden Dokument ein Antwort-Dokument werden soll ? Wie wird denn dieser Bezug hergestellt ? Dazu wird im bisherigen Thread ja gar nix gesagt (mit $Ref kann der Import ja nix anfangen, da das Notes-intern ist und in Excel überhaupt nicht vorkommt).

Vielleicht habe ich ja auch was verpasst ...

Bye,
Bernhard
Titel: Re:Daten aus Excel als Antwortdokumente importieren
Beitrag von: Semeaphoros am 22.11.03 - 22:42:41
Bernhard: Da hast Du schon was verpasst, TMC hatt vorgeschlagen, die UNID zu exportieren und im Excel zuzuordnen, sprich die Mutter-UNID wird mit importiert.

Andere Frage, die zu verwendende Maske ist doch wohl hoffentlich als Response-Maske definiert?

Oder sollte es daran fehlen?
Titel: Re:Daten aus Excel als Antwortdokumente importieren
Beitrag von: TMC am 22.11.03 - 22:42:45
Mal 'ne blöde Frage: Wie wollt Ihr überhaupt der Import-Routine mitteilen, welches importierte Dokument zu welchem bestehenden Dokument ein Antwort-Dokument werden soll ? Wie wird denn dieser Bezug hergestellt ? Dazu wird im bisherigen Thread ja gar nix gesagt (mit $Ref kann der Import ja nix anfangen, da das Notes-intern ist und in Excel überhaupt nicht vorkommt).

Vielleicht habe ich ja auch was verpasst ...

Bye,
Bernhard
Hi,

vielleicht hab ich ja die Chemical Brothers echt zu laut aufgedeht.....

Der Bezug findet durch den SVERWEIS Befehl im Excel statt. Das Feld ist daher im Notes vorhanden.
Nun geht es m.E. darum, dass Notes das auch erkennt. Daher der Tipp, das Feld umwandeln von Text in Response.

TMC
Titel: Re:Daten aus Excel als Antwortdokumente importieren
Beitrag von: Christian97 am 22.11.03 - 22:43:42
Guten Abend Bernhard,

Du hast schon recht. Dort liegt das Problem bisher. Alle Ansätze zielen immer nur auf den Import von Hauptdokumenten.

Axel_Janssens Vorschlag geht nun, glaub ich, in die richtige Richtung: Zuerst die Dokumente als Hauptdokumente importieren (mit dem $Ref Feld) und dann in Antworten umwandeln.
So, nun sitz ich als Script-Null wieder vor der Designer-Hilfe und überleg, wie ich mir da was zusammenbastel.
Falls das mit dem Umwandeln geht, reicht mir eine Aktion, die das grade selektierte Dok in einer Ansicht umwandeln kann.

Christian
Titel: Re:Daten aus Excel als Antwortdokumente importieren
Beitrag von: TMC am 22.11.03 - 22:44:08
ups, der Notesträger war um exakt 3 Sekunden schneller  ;D
Titel: Re:Daten aus Excel als Antwortdokumente importieren
Beitrag von: Christian97 am 22.11.03 - 22:46:00
@Semeaphoros:
Die verwendete Maske ist selbstverständlich eine Response-Maske.

Christian
Titel: Re:Daten aus Excel als Antwortdokumente importieren
Beitrag von: Semeaphoros am 22.11.03 - 22:46:18
Hoch lebe Notes, besonders wenn es getragen wird .....  ;D
Titel: Re:Daten aus Excel als Antwortdokumente importieren
Beitrag von: Semeaphoros am 22.11.03 - 22:49:25
ok, wenn die Maske stimmt, dann weiss ich im Moment auch nicht, was da noch falsch läuft, aber der Workaround mit einem Script ist in jedem Falle ein machbarer Weg.

Holst Dir das Doc mit GetDocumentByUNID aus der Datenbank und dann das MakeResponse, das Axel erwähnt hat, oder der Weg über eine View, wie bei Axel.
Titel: Re:Daten aus Excel als Antwortdokumente importieren
Beitrag von: TMC am 22.11.03 - 22:56:40
Was steht denn in den Eigenschaften?

In den Doc-Proporties muss "Data Type: Response " stehen, sonst klappt es nicht.


TMC
Titel: Re:Daten aus Excel als Antwortdokumente importieren
Beitrag von: koehlerbv am 22.11.03 - 23:23:29
Mit $Ref in Excel wird man - AFAIK - nicht glücklich. Eine Verbindung via Import von Haupt- und zu erstellenden Antwortdokumenten ist m.E. nur über einen nachträglichen LS-Agent möglich, der alle importierte Dokumente (mit einem Feld - sagen wir "OrgUNID") erkennt, das Haupt-Dokument via importierter UNID instantiiert und das gerade bearbeitete importierte Dokument mit NotesDocument.MakeResponse zu einem ordentlichen Antwortdokument macht.
Wenn das jemand per simplen Import hinbekommt, wäre ich begeistert und lernbegierig ;-) Wirklich !

Gute Nacht allerseits,
Bernhard
Titel: Re:Daten aus Excel als Antwortdokumente importieren
Beitrag von: Christian97 am 22.11.03 - 23:27:38
@TMC, Axel
Ich würde Eure Hilfen wirklich gern umsetzen, doch mir fehlt es dazu an den LS Kenntnissen.
Die Vorgehensweise ist mir klar. Key zum Hauptdok finden, also das $Ref Feld und dann die makeResponse dazu. Aber wie coden?  :-[

Christian
Titel: Re:Daten aus Excel als Antwortdokumente importieren
Beitrag von: Semeaphoros am 22.11.03 - 23:37:20
dim s as notessession
dim thisDB as NotesDatabase
dim curdoc as Notesdocument
dim masterdoc as NotesDocument
dim refItem as NotesItem
dim dc as NotesDocumentCollection

set thisDB=s.currentdatabase
set dc=thisDB.UnprocessedDocuments

set curdoc=dc.getfirstdocument
while not curdoc is nothing
  set refItem=curdoc.getfirstigem("$ref")
  set masterdoc=thisDB.getDocumentByUNID(refitem.text)
  call curdoc.makeresponse (masterdoc)
  set curdoc=dc.getnextdocument(curdoc)
wend


******

So aus dem hohlen Bauch, ungetestet (!!!!!!) und ohne Error-Handling und so .... also wirklich quick and dirty ....


Das in einen Agenten rein, der auf "ausgewählte Dokumente" anspricht
Titel: Re:Daten aus Excel als Antwortdokumente importieren
Beitrag von: Christian97 am 22.11.03 - 23:58:25
Vielen Dank Semeaphoros!

ich hab noch den einen Schreibfehler berichtigt
  set refItem=curdoc.getfirstitem("$ref")
und dann ging's. :)

Was mich aber nun noch wundert ist, daß ich die Antworten ausschließlich in der eingebetteten Ansicht im Dokument sehe, aber nicht mehr in der normalen Ansicht. Neue Antworten zu den importierten Hauptdokumenten erscheinen überhaupt nicht in den Ansichten.

Christian
Titel: Re:Daten aus Excel als Antwortdokumente importieren
Beitrag von: koehlerbv am 23.11.03 - 00:02:32
Hast Du in den Ansichts-Properties "Antwortdokumente hierarchisch anzeigen" gewählt ?
Was mich aber wundert, dass das überhaupt mit dem Import geklappt hat:
Nach dem
Code
call curdoc.makeresponse (masterdoc)
fehlt doch das Speichern ...
Code
call curdoc.Save (True, False, True)

Bye,
Bernhard
Titel: Re:Daten aus Excel als Antwortdokumente importieren
Beitrag von: Christian97 am 23.11.03 - 00:05:23
@Bernhard:
"Antwortdokumente hierarchisch anzeigen" ist an.

Nanu  ??? Nicht, daß das vorher bei den anderen Versuchen schon geklappt hatte. Ich hab immer auf das Pfeilsymbol gewartet. Ich glaub, ich such mal, welche Variante nun erfolgreich war.

Christian
Titel: Re:Daten aus Excel als Antwortdokumente importieren
Beitrag von: Semeaphoros am 23.11.03 - 00:07:43
Wow, danke für die Rückmeldungen, ist ja schon fast unheimlich, dass einfach hingeworfener Code fast sofort läuft .......
Titel: Re:Daten aus Excel als Antwortdokumente importieren
Beitrag von: koehlerbv am 23.11.03 - 00:22:18
@Christian:
Vergiss das Pfeilsymbol - da ist (zu Recht) nie Verlass drauf. In einfachen Fällen F9 (für Ansichtsaktualisierung) drücken, in schwereren die DB im Client schliessen und neu öffnen, und in harten Fällen Notes neu starten, um ganz auf Nummer sicher zu gehen.

Bernhard
Titel: Re:Daten aus Excel als Antwortdokumente importieren
Beitrag von: Christian97 am 23.11.03 - 11:28:30
@Bernhard:
Ich meine nicht den "Kringel" in der Ansicht, sondern das "Pfeilsymbol anzeigen, wenn Spalte erweiterbar ist".

Hier nochmal mein Aufbau:
2 Masken: "Stammdaten" für Hauptdokumente und "Antrag" als Response-Doks
Ansichtenformel: SELECT Form = "Stammdaten" | @AllDecendants
In dieser Ansicht werden nur die Anträge als Unterpunkt zu den Hauptdokumenten angezeigt, die ich selbst erstelle. Die importierten Antwortdokumente sehe ich nur in einer in der Maske "Stammdaten" enthaltenen eingebetteten Ansicht.

Wieso zeigt's mir die importierten Antwortdokumente nicht unter ihren Hauptdokumenten in der Ansicht (mit dem Pfeilsymbol davor, s.o.), wie es doch bei den manuell erstellten auch ist? Es sind doch schließlich Antworten.

Christian
Titel: Re:Daten aus Excel als Antwortdokumente importieren
Beitrag von: Semeaphoros am 23.11.03 - 11:39:07
Das ist der oder das "Twistie", bei mir intern mit "Klappismus" benamst ......   ;D

Keine Ahnung, woher das kommt. Vielleicht liegt das an der Wiederverwendung des $REF Feldes. Probier doch mal folgendes: Importiere die UNID des Masterdoc in ein anderes Feld "MasterUNID" oder so. Pass mein Script an (Feldname ändern) und lass das dann noch einmal laufen. Vielleicht löst das das Problem.
Titel: Re:Daten aus Excel als Antwortdokumente importieren
Beitrag von: Christian97 am 23.11.03 - 13:26:22
Ich hab die Antworten nochmals importiert und die erste Spalte der Importansicht von "$Ref" in "MasterUNID" geändert. Das Script hab ich abgeändert:
  Set refitem=curdoc.getfirstitem("MasterUNID")
  Set masterdoc=thisDB.getDocumentByUNID(refitem.text)
In der Antwortmaske hab ich ganz oben ein berechnetes Feld "MasterUNID" eingefügt.

Nun erhalte ich aber eine Fehlermeldung beim Ausführen des Scripts: "Invalid Universal ID"

Christian
Titel: Re:Daten aus Excel als Antwortdokumente importieren
Beitrag von: Semeaphoros am 23.11.03 - 20:19:44
Uhm, dann musst Du den Prozess vielleicht nochmal ganz von vorne machen, also die IDs nochmal exportieren, wie es TMC beschrieben hat. Die Fehlermeldung bedeutet, dass er das Dokument nicht findet, das diese Nummer haben sollte, also ist da wahrscheinlich irgendwas schief gelaufen, sprich das betreffende Dokument wurde gelöscht in der Zeit zwischen dem Export der IDs ins Exel und dem Ausführen des Scripts.