DOCVARIABLE in Worddokument setzen (OLE?)

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
2 Beiträge Seite 1 von 1
2 Beiträge Seite 1 von 1

DOCVARIABLE in Worddokument setzen (OLE?)

Beitrag von msfox (ForumUser / 64 / 7 / 6 ) » 17. Jun 2019 11:13

Ich habe ein Worddokument, welches mit DOCVARIABLEN arbeitet.
Diese sollen nun irgendwie via ABAP belegt werden.

Als Basis habe ich folgendes Dokument gefunden:
https://www.consolut.com/fileadmin/user ... FESDE6.PDF

Hier wird mit GET und SET PROPERTY gearbeitet, jedoch der Hintergrund und speziell für DOCVARIABLE nicht beschrieben.

Etwas Quellcode von einem Kollegen, der leider nicht mehr greifbar ist, gibt es schon

Code: Alles auswählen.

  CREATE OBJECT worddoc 'Word.APPLICATION'.
  GET PROPERTY OF worddoc 'Application' = wordapp.
  SET PROPERTY OF wordapp 'Visible' = 1.
  GET PROPERTY OF wordapp 'Documents' = documents.

  CALL METHOD OF documents 'Open'
    EXPORTING
      #01 = p_path. 
p_path = Pfad zum Word-Dokument

irgendwann später findet dann ein Suchen und Ersetzen von Texten im Word statt.

Das will ich nun so erweitern, dass man auch die DOCVARIABLEN belegen kann.

Weiß jemand, wie das geht?
Bzw. woher kommen z.B. die Texte 'Word.APPLICATION', 'Application'?

Laut Internet soll man ein DOCVARIABLE mit
ThisDocument.CustomDocumentProperties("myDocVariable").Value = "Hello World".
beschreiben können.

Aber wie bekomme ich dies in ABAP aufgerufen?


Re: DOCVARIABLE in Worddokument setzen (OLE?)

Beitrag von msfox (ForumUser / 64 / 7 / 6 ) » 24. Jun 2019 20:43

Das mit den Setzen der DOCVARIABLEN habe ich hinbekommen.

Code: Alles auswählen.

* Variablen zum Word bearbeiten
  DATA:
    wordapp   TYPE ole2_object,
    worddoc   TYPE ole2_object,
    wordobj   TYPE ole2_object,
    word_dv   TYPE ole2_object,
    fields    TYPE ole2_object,
    documents TYPE ole2_object,
    document  TYPE ole2_object.

CREATE OBJECT worddoc 'Word.APPLICATION'.
  GET PROPERTY OF worddoc 'Application' = wordapp.
  SET PROPERTY OF wordapp 'Visible' = 1.
  GET PROPERTY OF wordapp 'Documents' = documents.

  CALL METHOD OF documents 'Open'
    EXPORTING
      #01 = p_path.  "file name

  GET PROPERTY OF wordapp 'ActiveDocument' = document.
  "ActiveDocument.Variables("myDocVariable").Value = "Hello World"
  CALL METHOD OF document 'Variables' = word_dv
              EXPORTING
                  #1 = 'myDocVariable'.
  SET PROPERTY OF word_dv 'value' = 'Hello World'.

  "ActiveDocument.Fields.Update
  GET PROPERTY OF document 'fields' = fields.
  CALL METHOD OF fields 'Update'.
Nun hab ich das nächste Problem:
Das Hauptdokument (Word-Datei) hat eine Referenz auf eine andere Word-Datei (Im Macro-Editor). Wenn ich mit CALL METHOD OF documents 'Open' das Word öffnen, so wird die Referenz nicht gefunden.
Bei Dokumente liegen ursprünglich im selben Verzeichnis.
Was passiert hier beim Öffnen?
Öffnet SAP hier nur Word oder wird die Datei irgendwo hin kopiert?
Wenn ich über Word beide Dateien öffne, wird die Referenz gefunden.

Seite 1 von 1

Aktuelle Forenbeiträge

VA01, Kundenauftragserfassung Preisdatum
vor 6 Minuten von SAP_ENTWICKLER 1 / 5
Entwurfsmuster in ABAP / OO
vor 3 Stunden von Maximus 15 / 1988
Rabax Fehlermeldung
vor 4 Stunden von zzcpak 2 / 52
Aufgabe Programm/- Tabellenerstellung
vor 4 Stunden von SaskuAc 3 / 57

Unbeantwortete Forenbeiträge

VA01, Kundenauftragserfassung Preisdatum
vor 6 Minuten von SAP_ENTWICKLER 1 / 5
HANA Audit Trail
vor 6 Tagen von JohnLocklay 1 / 92
Halber Tag Urlaub
vor einer Woche von SO4SAP 1 / 54
Funktionsbausteine BAPI_INCOMINGINVOICE*****
vor einer Woche von Rabea1103 1 / 65
S4/HANA in der Cloud / 14 Tage Trial
vor einer Woche von Tron 1 / 95