Anfang des InhaltsbereichsHintergrunddokumentation HTML-Schablonen erweitern Dokument im Navigationsbaum lokalisieren

HTMLBusiness

Zu jedem Dynpro der SAP-Transaktion benötigt der Internet Transaction Server (ITS) ein HTMLBusiness-Template. Ein HTML Business-Template ist ein HTML-Seite, in die HTML Business-Befehle eingebettet sind.

Der ITS generiert aus einem Templates jeweils eine Seite mit reinem HTML.

HTMLBusiness

Eigenschaften

HTMLBusiness-Befehle werden mit ` (backtick) geklammert in "normales" HTML eingemischt.

Zwischen Groß- und Kleinbuchstaben wird innerhalb eines HTMLBusiness-Ausdrucks nicht unterschieden.

Zwischen zwei aufeinanderfolgenden durch ` (backtick) eingeschlossenen HTMLBusiness-Befehlen muß mindestens ein Zeichen stehen.

Das SAP@Web-Studio stellt HTMLBusiness-Befehle in blau dar.

Alle Namen, die in einem HTMLBusiness-Ausdruck vorkommen, werden als Namen eines Dynprofelds interpretiert.

Wenn ein HTMLBusiness-Ausdruck nur aus einem Feldnamen besteht, wird dieser Ausdruck zur Laufzeit durch den Wert des namensgleichen R/3-Dynprofelds ersetzt.

Wird in einem HTMLBusiness-Ausdruck ein Feld mit dem Zusatz .LABEL verwendet, so wird dieser Ausdruck durch den gleichnamigen Feldbezeichner auf dem Dynpro ersetzt.

Neben .LABEL existieren auch noch die folgenden Zusätze, die mit jedem eingabebereiten Dynprofeld verwendet werden können.

MAXSIZE

maximale Eingabelänge eines Dynpro-Feld

VISSIZE

maximal Anzahl sichtbarer Zeichen in einem Dynpro-Feld

Programmierung von Funktionstasten

Wenn Sie Ihr Formular so gestalten möchten, daß eine Eingabe nicht unmittelbar als Eintrag in einem Feld vorgenommen wird, sondern über Drucktasten erfolgt, müssen Sie die HTML-Schablone gemäß dem folgenden Beispiel überarbeiten:

Die Standardaufgabe zum Genehmigen eines Antrags enthält in ihrem Container das Element Genehmigungsstatus. Diese Element ist als Import- und Exportelement gekennzeichnet und mit einer Datentypreferenz auf ein Char1-Feld (z.B. SYST-INPUT) definiert.

Die HTML-Schablone zum Dynpro 100 enthält dementsprechend standardmäßig das Eingabefeld Genehmigungsstatus und die Drucktaste Übergeben:

Die Funktionalität, die Sie auf dem Formular anbieten möchten, soll ermöglichen, den Genehmigungsstatus über eine von zwei Drucktasten auf genehmigt oder auf abgelehnt zu setzen und die Bearbeitung damit zu beenden.

Das Eingabefeld Genehmigungsstatus und die Drucktaste Übergeben sollen entfallen.

Im Quelltext der HTML-Schablone sind dafür die Zeilen zu löschen oder auszukommentieren, die das Eingabefeld und die Drucktaste erzeugen.

Syntax

`Genehmigungsstatus010100.label`
<INPUT TYPE="text" name="Genehmigungsstatus010100" VALUE="`Genehmigungsstatus010100`" maxlength="1" size="1" >

<INPUT TYPE="submit" name="~OkCode(STRT)" value="`START.label`">

Statt dessen sind folgende Zeilen in den Quelltext aufzunehmen:

Syntax

<FORM ACTION="`wgateURL()`" METHOD="post">
<INPUT TYPE="submit" name="~OKCode(STRT),Genehmigungsstatus010100=A" value="Genehmigen">
<INPUT TYPE="submit" name="~OKCode(STRT),Genehmigungsstatus010100=R" value="Ablehnen">
</FORM>

Mit diesem Quelltext werden die beiden Drucktasten erzeugt und mit Genehmigen bzw. mit Ablehnen beschriftet. Abhängig von der gewählten Drucktaste wird der Wert des Container-Elementes Genehmigungsstatus auf A oder auf R gesetzt und wieder ans SAP-System übermittelt.

Wenn die Beschriftung der Drucktasten abhängig von der Anmeldesprache erfolgen soll, müssen Sie mit sogenannten Sprachressourcen arbeiten.

Integration einer Wertehilfe

Durch das Hinzufügen eines Kommandos ist es nun auch im Web möglich, eine Eingabehilfe für bestimmte Feldtypen einzusetzen.

Syntax

<input type="text" size="10" maxlength="10"
name= "`LASTDAY1_TEST015004.name`1"
value= "`LASTDAY1_TEST015004.value`">`assert(LASTDAY1_TEST015004.name)`
<INPUT TYPE="SUBMIT" NAME="~searchhelp(`LASTDAY1_TEST015004.name`)" VALUE="?">

Vereinfachung des Ablaufs bei der Workitem-Ausführung

Achtung

Sie dürfen diese Vereinfachung nur implementieren, wenn dieser Service ausschließlich über den Service Business Workplace im Internet (BWSP) ausgeführt wird. Ein wie nachfolgend beschrieben erweiterter Ausführungsservice versucht, in den Service Business Workplace im Internet (BWSP) zurückzuspringen. Wurde der Ausführungsservice aber z.B. aus der Workflow Inbox MiniApp ausgeführt, führt dieses Verhalten zu Problemen.

Durch die unten beschriebene Modifizierung der HTML-Schablonen für die Ausführung eines Workitem im Web beschleunigen und vereinfachen sie den Ablauf der Ausführung. So gelangen Sie beispielsweise beim Abbrechen eines Vorgangs direkt zurück in den Web-Workplace

Syntax

Template 50:

Statt dem alten <form... , nach <body>:

<form action="`wgateURL()`&~ret_url=`~ret_url`" method="post">

 

Template 100:

Nach </title> , vor </ head> :

<script language="JavaScript">

function logoff()

{

hiddenConfirm = new Image();

hiddenConfirm.src = "`wgateURL(~OKCode="/NEX")`";

}

function return_bwsp()

{

parent.location.href="`~ret_url`&BW02_1400-CHOICE=BAIN&~okcode=WORK&~confirm_url=`~confirm_url`&~dec_state=1";

}

</script>

Am Anfang, direkt nach <body ...> : Ersetze <form method="post" action="`wgateURL()`"> durch:

<FORM NAME="theform" METHOD=POST ACTION="`wgateURL(~OKCode="WORK")`&~dec_state=0&~ret_url=`~ret_url`&~confirm_url=`wgateURL()`">

Vor den Cancel-Knopf: Statt <input type=submit name="~okcode=/NEX" value="`CANCEL.label`">

</form>

<FORM onsubmit="logoff()" METHOD=POST ACTION="`~ret_url`&BW02_1400-CHOICE=BAIN&~OKCode=WORK" target="_parent">

<input type=submit name="" value="`CANCEL.label`">

 

Template 200:

Vor </ head> :

<script language="JavaScript">

function logoff()

{

hiddenConfirm = new Image();

hiddenConfirm.src = "`wgateURL(~OKCode="/NEX")`";

}

function return_bwsp()

{

parent.location.href="`~ret_url`&BW02_1400-CHOICE=BAIN&~okcode=WORK&~confirm_url=`~confirm_url`&~dec_state=1";

}

</script>

Innerhalb des <form></form>- Blocks folgende Zeile löschen:

<input type=submit name="~okcode=/NEX" value="`SUBMIT.label`">

Nach </ head> :

`if (~dec_state == "0")`

<body onload="return_bwsp()" BGCOLOR="#ffffff" LINK=BLUE VLINK=BLUE>

</body>

`elseif (~dec_state == "1")`

<body onload="logoff()" BGCOLOR="#ffffff" LINK=BLUE VLINK=BLUE>

Vor </ html> :

`end`

Ende des Inhaltsbereichs