Upload einer Datei mit BSP / !!!dringend!!!

BusinessServerPages; Erstellung von Webapplikationen.

Postby Aurora145 » Mon Mar 31, 2003 8:24 am

Moin moin, na das muss ich gleich mal probieren!

Gibts auch ne Möglichkeit die Files im Dateisystem abzulegen?
So von wegen, ich erstell für jedes Projekt meinen Ordner und leg da drunter meine Projektfiles ab.

Gruss Aga
Aurora145
.
.
 
Posts: 9
Joined: Thu Mar 27, 2003 12:55 pm

Postby Jolie2216 » Mon Mar 31, 2003 10:07 am

Müßte über die entsprechenden ABAP-File-Operationen möglich sein. Hab aber den Ansatz verworfen, da ich größere Probleme bei der Konsistenz zwischen Daten im File-System und in den entsprechenden SAP-Tabellen sehe.

Weiß jemand ob der WebAS die Dateien so oder so erst zwischenspeichert bevor sie gehandelt werden?

Gruß Jens W
Jolie2216
..
..
 
Posts: 38
Joined: Fri Mar 28, 2003 5:28 pm

Postby Walter4536 » Mon Mar 31, 2003 10:18 am

Hi,

soweit ich weiss, wird die Datei nicht zwischengespeichert. Der Request wird geparst (da multipart/form-data) und dann in das entsprechende Objekt gelegt. Ein Zwischenspeichern wird nicht gemacht. Ist ja auch nicht notwendig.

Gruß,
Steff
Walter4536
...
...
 
Posts: 315
Joined: Mon Dec 02, 2002 12:09 pm

Postby Jolie2216 » Mon Mar 31, 2003 11:34 am

Hi Steff,

hmmm... wär das nicht etwas unsicher? Irgendwo wird sowas doch bei den meisten Web-Systemen zwischengespeichert und erst im zweiten Anlauf geparst.

Gruß Jens
Jolie2216
..
..
 
Posts: 38
Joined: Fri Mar 28, 2003 5:28 pm

Postby Walter4536 » Mon Mar 31, 2003 11:50 am

Hi Jens,

na ja, 100%ig sicher bin ich nicht. Aber wenn das so gemacht würde, dann müßtest Du ja den kompletten request zwischenspeichern, danach dann parsen. Das würde zusätzlich auf die Performance gehen, denn das zwischenspeichern kostet Dich ja zusätzlich Zeit. Auch unter Sicherheitsaspekten würde ein Zwischenspeichern nicht viel bringen, oder? Wenn der Request fehlerhaft übermittelt würde, würde die temporäre Datei nichts bringen, da dann ebenfalls fehlerhaft und wenn der Request komplett und korrekt übermittelt wurde, dann bringt das Zwischenspeichern nicht viel, denn wenn der Server ausfällt ist die betreffende Session ebenfalls weg. Dann hat man keine Möglichkeit mehr, mit dem Request noch viel anzufangen, weil man ihn nicht zuordnen kann. Wenn man sich dann noch überlegt, dass man bisweilen enorme traffic auf einem Webserver hat, dann würde das zwischenspeichern enorm viel zusätzlichen Platz kosten. Aber wie gesagt, sicher bin ich nicht. Wo hast Du die Info mit dem Zwischenspeichern her?

Gruß,
Steff
Walter4536
...
...
 
Posts: 315
Joined: Mon Dec 02, 2002 12:09 pm

Postby Aurora145 » Mon Mar 31, 2003 2:02 pm

Moin, danke für die Antwort, aber damit komm ich nicht zurecht!

Das ist das Kreuz, das ein Anfänger zu tragen hat, aber vielleicht hilft das ja auch anderen, wenn jemand so nett wäre, das hier mal einigermassen ausführlich zu erläutern.

Upload an sich, ist gut genug beschrieben,denke ich, aber die Ablage ins System, daran haperts!!

Falls Ihr die Zeit findet, wäre toll...

Danke im Vorraus

Gruss Aga
Aurora145
.
.
 
Posts: 9
Joined: Thu Mar 27, 2003 12:55 pm

Postby Walter4536 » Mon Mar 31, 2003 2:49 pm

Hi Aga,

das ist einfacher als es vielleicht klingt. Im Prinzip brauchst Du ja nur, nachdem Du das File im Zugriff hast (im OnInputProcessing) einen Baustein aufrufen, dem Du dann das File übergibst. Normalerweise bekommst Du dann eine eindeutige ID zurück unter der Du das File dann wieder auslesen kannst (wiederum ein Funktionsbaustein).

Folgende Hintergrundinfos zu den verschiedenen Möglichkeiten findest Du hier:

http://help.sap.com/saphelp_webas620sp9 ... ameset.htm

Dort sind auch Funktionsbaustein (z.B. Documentservice) aufgelistet, die man verwenden kann.

Gruß,
Steff
Walter4536
...
...
 
Posts: 315
Joined: Mon Dec 02, 2002 12:09 pm

Postby Jolie2216 » Tue Apr 01, 2003 10:10 am

Hi Aga und hi Steff,

@Steff:
Ich denke gerade an die Performance. Die eine BSP-Abarbeitun(vermutl. mehrere Thread oder was auch immer) würde dann ja ewig laufen und das System belasten(Speicher und Prozessoren). Wenn man sich z.B. PHP oder JSP Programme anschaut, dann gibt es da ja immer ein temporärers Verzeichnis für File-Uploads. Vermute mal, daß das mit den Kosten für HDD im Vegleich zu RAM und CPU anschaut.

Die Info hab ich gar nicht. War nur so eine Vermutung, vor dem Hintergrund der anderen mir bekannten Web-Systeme.

@aga.
wir haben hier einen Baustein geschrieben(alles auf KPRO-Basis), der:
1. ein Dokument anlegt(BAPI_DOCUMENT_CREATE2).
2. eine binary-Tabelle zu dem neuen Dokument einchecket(CVAPI_DOC_CHECKIN)

Auf der BSP wird OnInputProcessing aus dem File(s.u.) eine binary-Tabelle gemacht(SCMS_XSTRING_TO_BINARY) und dann damit der Baustein gerufen.

Gruß Jens W
Jolie2216
..
..
 
Posts: 38
Joined: Fri Mar 28, 2003 5:28 pm

Postby Alva1590 » Tue Apr 01, 2003 10:58 am

Hallo Jens, Hallo Ihr anderen zwei,

Ich habe den File mit dem FuBA 'SCMS_XSTRING_TO_BINARY' in eine binary Tabelle umgewandelt (wie hast du die binary Tabelle definiert ?).
Dann rufe ich im Backendsystem den Fuba 'CVAPI_DOC_CHECKIN' auf. Dafür habe ich mir einen eigenen Fuba als Hülle geschrieben.
In welchem Parameter muß ich die binary Tabelle übergeben. Ich habe sie
in der Tabelle 'pt_content' im Feld ORBLK übergeben. Und den Parameter pf_content_provide = 'TBL' versorgt. Irgendwie funktioniert dies aber nicht so richtig :-(

Gruß Rene
Alva1590
.....
.....
 
Posts: 4387
Joined: Mon Dec 02, 2002 3:01 pm

Previous

Return to BSP + BHTML

Who is online

Users browsing this forum: No registered users and 1 guest