Академический Документы
Профессиональный Документы
Культура Документы
Cookbook
How to Create Service Request Scenarios
July 2004
Stephan Rehmann, Martin Kreyscher, Dirk Ahlert
Web Form
Approve Request
Workflow
Processing
One or more
processors carry out
actions (for
example, creating
Cost of request is automatic
automatically correspondence or
determined (Easy Cost R/3 transactions)
Planning) and the
processor can trigger
automatic purchase
order generation (Easy
Execution)
2.8.3 Administrator....................................................................................................13
3.8 Tasks.........................................................................................................................22
4. The Request Form as an Internet Service (ITS Technology).......................................24
4.1 Setting Up an Internet Service for the ISR...............................................................24
4.4.2 Initialization, Input Help, and Verification for Clients in HTML Template....32
10. Appendix.......................................................................................................................74
10.1 Special Customizing Using Table QISRCONTROL................................................74
10.2 Configuration Settings for Adobe Forms..................................................................75
10.3.3 General..............................................................................................................76
Internal service requests (internet service requests, ISRs) make it possible for occasional users
to request services in the company intranet, in an extranet, or in the Internet using request
forms that do not require any special knowledge of SAP R/3®.
When a user fills out a request form, a notification is generated in the R/3 system and sent to
the appropriate person by the SAP Business Workflow. This person can execute actions
directly from within the notification (such as sending e-mails, automatically generating and
sending Microsoft Word documents, triggering purchase orders, or starting R/3 transactions).
The request forms and the workflow can be configured individually based on the service
requests and the conditions in the company. Custom ISR scenarios can be created quickly and
easily. Close integration with Controlling and Easy Cost Planning (ECP) enables complex
scenarios in which costs are calculated automatically and allocated directly to the cost objects.
Note:
In the past, internal service requests (ISRs) were also called Internet service requests. ISRs
are now called internal service requests to distinguish them from the Web requests in CRM.
Web requests in CRM are similar to ISRs, but are intended more for requests coming from
outside the company.
1.2 Prerequisites
To be able to use ISRs with the ITS forms, you need SAP R/3 release 46C or later. SAP
strongly recommends that you install Release 46C Support Package 15, since it contains
important new developments for the ISR. You can use the ISR based on ITS technology or in
the SAP Enterprise Portal 5.0 in Java technology. With mySAP ERP 2004 you can define an
interactive form in Adobe PDF. You need the SAP Enterprise Portal for this as well.
To be able to use ISRs in the SAP Enterprise Portal, you need the business package Manager
Self-Service (MSS). To use interactive Adobe forms, you need mySAP ERP 2004 plus Adobe
Reader 6.0.2 or higher. You also need at least SAP NetWeaver '04 SP 7.
You need to either set up an ITS for the R/3 system or implement the Enterprise Portal with
the corresponding Java runtime environment. To access the request forms, you need a Web
browser such as Internet Explorer or Netscape Navigator. You need to have information on
your ITS installation (URL for accessing Internet services and the destination for publishing
them), or the information needed for implementing a Java iView in SAP Enterprise Portal 5.0.
Note also the following changes regarding the ISR that result when WAS 6.40 is used: To
continue to use existing ITS forms, you need a separate ITS server 6.20. The integrated ITS
server of WAS 6.40 cannot be used. It is no longer possible to generate new ITS services with
mySAP ERP 2004.
The following example scenario can currently be used only for the Adobe and ITS versions of
the ISR. You customize the ISR scenarios in the same way for both the ITS and the Enterprise
Portal. As shown in the following, you can generate a new ISR scenario from ISR
Customizing. However, for technical reasons it is currently not possible to generate an ISR
view (portal technology) in the same way (see section 2.5). The current procedure for defining
new custom ISR iViews is described in section 5.
The following is an example scenario that provides an introduction to the ISR. Following this
section step by step will give you the basic skills needed for creating and implementing
scenarios. This section is an overview and does not provide a complete description of the ISR
functions. See the later sections for comprehensive information on specialized functions.
The example scenario supports requests for new users in your IT systems. A simple request
form should be available in your intranet in which users only need to enter a user name and
the system. Submitting this form generates a notification that is forwarded to the system
administrator for processing.
The Customizing transaction for the ISR is QISRSCENARIO (SAP reference IMG:
Application Specific Components Internet/Intranet Services Internal Service Request
Scenario Definition Define Scenarios). This is where you enter general details for the ISR
scenario. You can easily go from here to all Customizing settings. Start the transaction
QISRSCENARIO, choose New Entries on the screen that appears, enter the name and
description of the scenario, the notification type of the notification generated by the request,
and the contact person for the scenario and their role. You can use the values from the
following screenshot (enter your own user name instead of MUSTERMANN). If notification
type 02 is not in your client, import the standard notification Customizing from client 000
with transaction QISR_SM29. To enable end users to find the new ISR scenario, include
relevant key words such as "new user" or "system" in the long text for the search help.
Next you need to define the special characteristics (required entry fields on the request form).
The example uses the characteristics SYSTEM and NEW_USER. These characteristics will
later appear on the request form with the specified name as entry fields.
Select Entry Using Form as the entry type in the Web, and then go to the Characteristics
folder to create the two characteristics (New Entries). You can use the characteristic names,
types, and descriptions from the following screenshot, or use your own.
When a user submits a request form, a notification is created automatically. If more than one
processor will work on the request, you can assign more than one task to the notification. The
notification is then a container with the individual tasks to be processed. (If you want to
define ISR scenarios without tasks, see section 5.4 for information on finding a processor
when using a notification without tasks). In our example we will create just one task. Create a
new task (New Entries) and enter a description for it. The task will be assigned to a particular
processor in this example (enter your own user name instead of MUSTERMANN).
Next you need to generate an Internet service for the request form based on the Customizing
settings you made. Return to the Basic Data view. Enter a name for the Internet service
(starting with Z) and choose the red-and-white Generate symbol. To create a request form
with the standard SAP design, select Generate (SAP Design). If you want to design the form
yourself later on, select Generate (Plain HTML). An Internet service is automatically
generated and displayed in the ABAP Workbench (in Theme 99 Template SAPLQISR 110
you can see the HTML template that was generated, which you can modify as needed. You
can also find your two characteristics here.) Now all you need to do is publish the Internet
service on the ITS. Right click on the Internet service name and choose Publish Whole
Service (use the following menu to check that your system or the ITS generation are set up
correctly first: Utilities Setting ITS. For more details, see the Appendix in section 8.2).
Return to the basic data view with Back. Save the scenario.
Next you need to generate an Adobe form for the request form based on the Customizing
settings that you made. Return to the basic data view. For the entry type in the Web, choose
Entry Using Adobe PDF. Choose the red-and-white Generate symbol. Choose the option
Without Template. You will now be prompted for a package twice – for the form and for the
interface. You can enter any customer package here. An Adobe form is now generated
automatically and displayed in the Adobe Designer (can also be accessed with transaction
SFP). You can modify the form as needed. To add your two characteristics to the form:
On the right side of the screen in the Library on the Standard tab, choose Text Edit (for
example), select it with the mouse, and drag it to the Body Page. You then need to create a
data link (data binding) to your characteristic NEW_USER. To do this, select the entry field
generated in the layout, and in the window Object Binding choose the NEW_USER field
with the possible entries function. You can also open the NEW USER field on the left side of
the screen in the Data View and drag FIELD to the New User field. In the Default Binding
attribute of the tab Object Binding, the linkage of the characteristic from ISR Customizing
to the field is specified in the form with the format $record.NEW_USER.DATA[*].FIELD.
1.9 Costs
For this simple example, we will not look at any costs (checkbox The scenario incurs costs is
not activated). If you activate this indicator, several fields that control the integration of costs
are displayed. See section 8, Costs and Integration with Controlling for all necessary
information on integration of the ISR with costing.
Before you run the scenario, make sure that you have entered your address data in transaction
SU52, since this information is needed by the request form.
If you use the SAP Workplace, bring up the ISR start page under Employee Self-Service
Internal Service Request. Enter key words in the text field (such as "need user"), then choose
Solutions. The system displays a list of documents and ISR request forms that contain the key
words you entered. Your new request form for a new user should also appear in the list.
(Recall that you entered the relevant key words for this request form in Customizing.) Bring
up the request form by clicking on the link.
Note: If you are not using the SAP Workplace, you can also access the start page directly from
the Web browser:
The form can be accessed directly from the Web browser as well. The syntax for accessing a
scenario with scenario key XXXX and the corresponding Internet service ZYYYY is as follows:
Once you have accessed the request form, you can see that it displays the two special
characteristics (SYSTEM and NEW_USER) from the ISR scenario, as well as the address
data of the applicant and the person who entered the data. Fill in these forms and enter
additional text in the lower text field. Now submit your request. The system then informs you
that the notification has been created and indicates the notification number. If you click on
Select new service request (only for forms in the standard SAP design), you return to the ISR
start page and can follow up your request status by choosing Overview of my requests to date
(corresponds to the status of notification processing). The functions provided by the status
monitor are also available as a separate MiniApp, which you can combine with the workplace
or existing Internet or Intranet portals (see section 7.4, ISR MiniApps).
The ISR form can be accessed with contextual information (that is, data of the current
application is transferred to the form) or without contextual information.
If you want to access the form without contextual information, define an iView on the basis of
the master iView Internet Service Request (Adobe) for your Enterprise Portal. For the
parameter ISR Scenario of your iView, specify the technical name of your scenario (such as
RU01).
If you want to access the form with contextual information, insert the scenario into existing
scenario groups (such as scenarios for the Equipment Monitor). To do this, modify the
suitable scenario group in the IMG under Cross-Application Components Internet/Intranet
Service Internal Service Request Scenario Definition Define Scenario Groups. These
scenario groups are used in the corresponding Web Dynpro applications in SAP Enterprise
Portal to access the desired ISR forms.
1.10.3 Administrator
Now put yourself in the position of the system administrator, who has just received a new task
for processing. Start transaction IQS9 (Office Notification Worklist Tasks). Choose
My worklist: My tasks with the option To be processed by me and then choose Execute. The
system displays a worklist containing the tasks for you to process.
Select a task and choose Display task. You then see the request data that you entered in the
request form, along with a short description of the task. If you want to see the original form,
choose Display form in the action box on the right-hand side. You can also use the
Notification pushbutton (extended) to go to the notification view and see the request form on
the Form tab. (Normally the request fields are displayed in a tabular view here, but you can
display the original form if you want. See Appendix 8.1). As the system administrator, you
can now create the user in the system. It is possible to provide the system administrator with
direct access to the corresponding transaction from the action box with the corresponding
defaults. Section 3.4 provides comprehensive details on the action box. When the new user
has been created, the processor can close the task and the notification. by choosing Change
Task in the menu and then choosing the following pushbuttons in order: Release Task
Complete Task Task Successful Save. To return to the notification view, choose
Notification (Extended). There you can release, close, and save the notification.
When you have returned to the ISR start page, you can see that your request has been
processed successfully under See Overview of My Requests to Date.
Before you create an ISR scenario, you need to consider the following factors:
Once you have clarified these points, you can start creating the ISR scenario. The following
sections provide detailed information on all related subjects.
We wish you every success and hope you enjoy creating your new scenarios!
Scenario key: The key for the scenario must not be in the SAP (S*) namespace.
Scenario active: Only activated scenarios are available. With mySAP ERP 2004 you can
specify a validity period during which new requests can be submitted by the applicant.
Requests that have already been submitted can, of course, still be approved and processed
after expiration of this period.
The Description is used as the title for the form.
You enter the request using an HTML form specially designed for the scenario. An Internet
service must be assigned to the scenario. This service must contain the HTML templates and
language-dependent resources required for the request. You can assign an Internet service to
only one scenario.
To create a new Internet service for your ISR scenario, choose Generate. A dialog box
appears with three options:
With template:
An existing Internet service is copied. The advantage here is that the complete layout of
the copied service is transferred. The disadvantage is that the characteristics of the new
scenario then need to be inserted manually in the HTML template.
Notes:
- Before you can test the Internet service, you must publish it manually. You are
automatically taken to the editing mode of the Internet service in the Development
Workbench, where you can publish it (right-click on the Internet Service Publish
Complete Service). You can then test the ITS service from within scenario customizing
(test symbol after the Internet service).
- If you want to test the Internet service directly in transaction SE80, right-click on the
Internet service and choose Start Service. Since this does not set the parameters for the
URL, a screen is displayed once you have logged on in which you enter the scenario key
in capital letters, and then choose Create. (You can also complete the URL in the Web
browser (such as with Internet service ZRU01 and scenario key RU01:
... scripts/wgate/ZRU01/!?~okCode=CREATE&SCENARIO=RU01)
If you add new characteristics in Customizing later, this does not influence an Internet
service that has already been generated. Insert the new characteristics manually into the
You enter the request using an Adobe form in PDF format specially designed for the scenario.
A form must be assigned to the scenario for this purpose. A form can be assigned to more
than one scenario, but the characteristics of the different scenarios must be the same.
You can assign an existing Adobe form to the ISR scenario or generate a new form.
You can enter a name for the form in the form field. The form generation process creates a
form with that technical name. If you leave the form field empty, the system generates a form
with the name Z_ISR_FORM_<scenario> (such as Z_ISR_FORM_Z123 for scenario Z123).
To create a new Adobe form for your ISR scenario, choose Generate. A dialog box appears
with three options:
Without Template:
A new empty Adobe form is created. The characteristics of the scenario are transferred to
the data part of the form and are available on the body page of the form layout for data
binding of the fields and form elements to be defined.
You enter the request using a JSP iView form specially designed for the scenario. To do this,
you enter an iView in the Portal Component field in ISR Basic Customizing of the scenario
with the Additional Data for Scenario pushbutton. See section 5.
Using the Generate iView pushbutton next to the Portal Component field, you can generate an
iView that contains all characteristics as input-ready fields. The generated iView is saved on
If you use this entry type, you must specify a BSP application. An example of a BSP
application is ISR_DEMO1. This application uses the class
CL_ISR_BSP_RUNTIME_CORE. To define your own BSP application on the basis of the
ISR, you can use the BSP application mentioned above (ISR_DEMO1) as a template.
The Business Add-In button displays the BAdI Builder. You can program four BAdI methods
(customer exits) for your scenario to create initializations, F4 help, entry checks, and
additional events (buttons) for your request form. Section 4.4.3 explains the programming
methods for BAdIs in detail. You can also use the existing BAdIs from another scenario with
the second radio button Use Business Add-In from Scenario.
1.17 Characteristics
You define the required entry and output fields for the request form in scenario customizing
as Characteristics (double-click on Characteristics).
The characteristics can be valuated on the HTML template under the characteristic name
specified here. The only exceptions are characteristics referring to a structure. In this case,
the structure fields can be used with their field names without a structure name (<structure
name>-<field name>) in the HTML template. That is, structures are always resolved for the
request and can thus be seen as having a more compact definition instead of being a series of
characteristics that reference data elements.
The characteristic name specified in Customizing is displayed on the request form as a field
label. Categorized characteristics can use the field length in addition. For characteristics that
reference data elements or structure fields, input/output formatting (as with screen fields) is
executed as well, including type checks.
If you use Adobe forms, you may have to make additional settings for each characteristic:
The characteristic should contain programmed input help. You must specify on the
characteristic the technical name you are using for the key value and the default value
in the programming of the BAdI method (see section 4.4.3). The following screenshot
is an example.
The characteristic should be displayed as a multiline long text field. It should be
possible to enter a body text, in which case you choose Long Text Field. (Note that the
1.18.1 Overview
The action box contains a toolbox for the notification processor for processing the request (for
example, you can send a generated e-mail, start a parameterized transaction, call R/3 BAPIs
for creating or changing business objects in R/3, or generate Word documents – all at the
touch of a button). Since request data is known in the ISR framework, the processing steps
can largely be left to the system. The processor's main task is to check the request or complete
the request data and then trigger the processing transactions. This eliminates the need to
manually transfer request data, which saves time and reduces errors.
The ISR framework provides several standard actions that you can use immediately (such as
display/change form or start parameterized transaction. For a complete list, see appendix 8.9).
For special requests, you can implement the corresponding function modules that
automatically process the request data as required. The action box is thus the integrating link
between the request form and R/3.
To edit the actions, choose Action Box. Actions are always defined for one notification type
and can be used specifically for ISR scenarios of this notification type. Choose New Entries
and enter a key and the action name. Enter the notification type that you used in your
scenario.
In the Control section, enter the following:
Scenario controls the visibility of the action in each scenario that belongs to a
notification type. (Make the required entries first: Sort sequence, icon, and As
documentation: None and choose ENTER to see the F4 help for the scenarios.)
Sort number controls the order in which the actions are displayed in the action box.
Use in controls the visibility of the actions in the notification. The default is All views
(create, change, display).
and controls the visibility in notifications and/or tasks. The default is Notification and
task.
Documentation defines whether a performed action is documented in the notification
(for the sake of simplicity, choose None).
In the Function section, you can specify the name of the function module that is processed
when the action is accessed. Several examples of these types of function modules are included
in the standard system (see appendix 8.9).
The business transaction controls the notification status in which the action is allowed to be
triggered, and the status of the notification once the action has been successfully completed.
In the Interface section, you specify the icon and text that appear in the action box.
If you have selected the task or action option under documentation, two additional sections
are displayed for task or action coding. The coding enables you to make specific evaluations
and selections using special codes. For example, you can use transaction IQS9 to select all
tasks that have a certain code. Enter SAPISR as the code name, and select a code from the F4
help from the list of codes already defined for the SAPISR code group. If you want to extend
the codes for the code group SAPISR or create your own code group, see appendix 8.8.
1.19 Tasks
When you submit an ISR request form, a notification is created in R/3. If your scenario
requires that the request be processed by multiple users simultaneously, you can assign
multiple tasks to the notification.
If the request only needs to be processed by one user at a time, you do not need tasks. In this
case, the notification is simply forwarded to the next processor after each step is completed.
If you want one or more tasks to be created automatically when the notification is created,
choose Tasks in scenario customizing. The task is automatically assigned a sequential
number. Enter a name for the task. The assignment of a key (such as a code group) can be
used later to evaluate or select the tasks. This means you can select all tasks with a certain
code, for example, using transaction IQS9. Enter SAPISR as the key (or code group). In the
There are two alternative fields for selecting the processor for the task:
A manager: This can be a registered user in the system (partner function: task processor)
or the responsible department (partner function: responsible department). The manager
entered is the task processor.
The standard role for the workflow enables flexible processor determination. The task
processor can be selected based on the input values on the request form or on information
such as the cost center of the person entering the request. (see section 5, Processor
Determination and Workflow).
The automatic generation of an Internet service for an ISR scenario creates four HTML
templates under Theme 99. (It does not matter whether the Internet service is generated in
SAP Design or Plain HTML):
The fields in the request are automatically set to ready for input where appropriate for the
mode. In the create mode, all fields are ready for input. In the change mode, only the fields
that have been created as characteristics are ready for input (unlike the general ISR fields,
which can only be changed using the notification transaction because they are closely
integrated with the notification). In the display mode, none of the fields are ready for input.
(Technically, all templates are directly linked to screens 110, 120, and 130 in transaction
QISR1, which controls the flow logic of the request form and which fields are ready for
input).
Template SAPLQISR3 200, which displays a confirmation when a request form has been
successfully submitted, defaults to template ISR_STATUS_MESSAGE_1 (or
ISR_STATUS_MESSAGE_1_PLAIN_HTML for Plain HTML) of the Internet service
SR_LIBRARY. If you want to use your own layout for the confirmation, copy template
SR_LIBRARY to template SAPLQISR3 200 and then modify the copy.
Notes:
Do not change Internet service SR_LIBRARY, since it contains the function library for all
ISR scenarios.
The ISR framework is designed to ensure as much freedom as possible when creating request
forms, and at the same time to include as many standard requests as possible. Therefore, an
Internet service is created for each ISR scenario. You can modify these Internet services as
needed. The layout options are described below, starting with the most basic.
When you generate an Internet service for your ISR scenario, the system displays a dialog box
with three options:
With template: An existing Internet service is copied. The advantage here is that the
complete layout of the copied Internet service is transferred. The disadvantage is that you
have to manually enter the characteristics for the new scenario in the HTML template.
Generate (SAP Design): A new Internet service is created based on the template service
SR00. This service has the standard SAP design that is used in all R/3 transactions.
Choose this option if you want to use the SAP design for your ISR scenario.
Generate (Plain HTML): A new Internet service is created based on the template service
SRPH. This has a simplified layout with mostly standard HTML elements, and is
designed to be individually modified by Web designers. Choose this option if you want to
use your own design, such as for an external enterprise portal.
Themes enable you to use more than one design or layout variant of a request form at a time.
For example, you can create a new theme with the corresponding HTML templates if your
ISR request form is used on a handheld device or WAP cell phone. You can enter the required
theme when you access the URL (example: .../RU01/!?
~okCode=CREATE&SCENARIO=RU01&~theme=88).
If you want to have different layouts for the various request modes that differ in more than
just which fields are ready for input, you have two options:
Each template provides you with the parameter ISR_MODE in the Business HTML
environment. Depending on the mode, this parameter has the value CREATE,
CHANGE, or DISPLAY. This enables you to have a change button, for example,
displayed in the change mode as follows:
If the layouts are very different, you can delete the reference to template SAPLQISR3
110 and enter your own independent HTML code for templates SAPLQISR3 120 and
SAPLQISR3 130.
It is often the case that the processor needs to have more request fields than the users who
enter the requests. You can achieve this by using the parameter ISR_FORM_VIEW within the
Business HTML environment. This parameter has the value ISR_REQUEST as a default. It
only has the value ISR_PROCESS when the request form is accessed by the processor. You
can have an extra field displayed for the processor as follows:
You can also set the parameter ISR_FORM_VIEW within the BAdI methods based on rules
that you define, and thus control the layout more exactly.
You can use the ISR framework to define request forms with multiple pages for a more
structured entry of data (if necessary, you can display the entries made on the previous pages
on the final page). Forms with multiple pages are defined as follows:
Only the page structure is defined on the main template (such as SAPLQISR3 110). For a
three-page form:
`if ( ISR_PAGE == “1” )`
`include(~theme="99", ~language="", ~name="page1.html")`
`elsif ( ISR_PAGE == “2” )`
`include(~theme="99", ~language="", ~name="page2.html")`
`elsif ( ISR_PAGE == “3” )`
`include(~theme="99", ~language="", ~name="page3.html")`
`end`
The standard parameter ISR_PAGE determines the current page. The page templates
themselves are used as includes. Each of these templates has a new HTML template in the
Internet service.
You can scroll by means of a button which triggers one of the standard ISR commands:
NEXT_PAGE: One page forward
PREV_PAGE: One page back
<input type="submit" value="Seite vor" onclick="SAPEvent('NEXT_PAGE')" … />
<input type="submit" value="Seite zurück" onclick="SAPEvent('PREV_PAGE')" … />
When one of these commands is triggered, the number of the current page (parameter
ISR_PAGE) is automatically incremented or decremented by one. If a more complex
You can have fields displayed based on the values in individual fields (show PROJECT and
ORDER):
`SAP_ISRField(mode=l_mode, name="CO_AREA")`
Each of the form variants (SAP standard design and Plain HTML) has a special ISR library
that defines all form elements supported by HTML (entry field, dropdown list box, radio
button, checkbox, text entry field) for the ISR framework. These libraries also provide
additional help functions for grouping and positioning the request elements. For a complete
description of the ISR Library, see the SAP Library under Cross-Application Components
Internal Service Requests Preparing the Internal Service Request Definition of an
HTML Form Define Form Examples: Specific Form Elements in HTML Templates
(SAP Design and Plain HTML).
`COLOR_Option[1] = "red";
COLOR_Option[2] = "green";
COLOR_Option[3] = "blue";
COLOR_Label[1] = "you like the red color?";
COLOR_Label[2] = "or the green color?";
COLOR_Label[3] = "or the blue color?";`
`x = 1; y = 19;`
`if ( ISR_mode == "CREATE" );`
`SAP_ISRGroupBox(x , y , 069, 005, #comment)`
`SAP_ISRLongTextInput(cols=67, rows=5, left = x+1, top = y+1 );`
`y = y + 6;`
`elseif ( ISR_mode == "CHANGE" );`
`SAP_ISRGroupBox(x , y , 069, 010, #comment)`
`SAP_ISRLongTextOutput(cols=67, rows=7, left = x+1, top = y+1, height=5);`
`SAP_ISRLongTextInput(cols=67, rows=5, left = x+1, top = y+6 );`
`y = y + 11;`
`else;`
`SAP_ISRGroupBox(x , y , 069, 005, #comment)`
`SAP_ISRLongTextOutput(cols=67, rows=5, left = x+1, top = y+1 );`
`y = y + 6;`
`end;`
Buttons
The standard buttons for submitting, changing, and checking are defined as follows:
`SAP_ISRStandardButtons( left=1 , top=20, buttonWidth=018 )`
Positioning
All ISR functions normally use an absolute positioning of the elements on the request
form. You can use the functions SAP_ISRFieldListBegin()(for list-type layout) and
SAP_ISRFieldListRowBegin() (for column layout) to group and position entry fields:
`x = 1; y = 1`
`SAP_ISRFieldListBegin( x , y ,018) `
`SAP_ISRField( name="ISR_INITIATED_BY-FIRSTNAME" ) `
`SAP_ISRFieldListRowBegin( ) `
`SAP_ISRField( name="ISR_INITIATED_BY-TEL_NUMBER" ) `
`SAP_ISRLabel( labelText="-", left = x+23); `
`SAP_ISRField( name="ISR_INITIATED_BY-TEL_EXTENSION",
fieldLabel="noLabel", left=x+22 ) `
`SAP_ISRFieldListRowEnd( ) `
`SAP_ISRField( name="ISR_INITIATED_BY-E_MAIL" ) `
`SAP_ISRField( name="ISR_INITIATED_BY-DEPARTMENT" ) `
`SAP_ISRFieldListEnd( ) `
Unlike the SAP design variant, Plain HTML variants use as few SAP and ISR proprietary
business HTML constructs (blue font) as possible.
Positioning
Each form element is laid out and positioned using normal Web design methods (tables,
transparent GIFS, and so on).
`getLabel("COLOR")`
`COLOR_Option[1] = "red";
COLOR_Option[2] = "green";
COLOR_Option[3] = "blue";
COLOR_Label[1] = "you like the red color?";
COLOR_Label[2] = "or the green color?";
COLOR_Label[3] = "or the blue color?";`
Alternatively:
<select id="COLOR" name="COLOR" size=1 `disabled("COLOR")`>
<option value="red" `Selected("COLOR","red")` > you like the red color?
<option value="green" `Selected("COLOR","green")`> or the green color?
<option value="blue" `Selected("COLOR","blue")`> or the blue color?
</select>
`CheckboxProlog("COLOR[1]")`
<input name="COLOR[1]" value="red" type="checkbox"
`Checked("COLOR",1,"red")` `disabled("COLOR")`>you like the red color? <br>
`CheckboxProlog("COLOR[2]")`
<input name="COLOR[2]" value="green" type="checkbox"
`Checked("COLOR",2,"green")` `disabled("COLOR")`>and the green color? <br>
`CheckboxProlog("COLOR[3]")`
<input name="COLOR[3]" value="blue" type="checkbox"
`Checked("COLOR",3,"blue")` `disabled("COLOR")`>and the blue color? <br>
`CheckboxProlog("COLORRED")`
<input name="COLORRED" value="red" type="checkbox"
`Checked("COLORRED",1,"red")` `disabled("COLORRED")`>you like the red color? <br>
`CheckboxProlog("COLORGR")`
<input name="COLORGR" value="green" type="checkbox"
`Checked("COLORGR",1,"green")` `disabled("COLORGR")`>and the green color? <br>
`CheckboxProlog("COLORBL")`
<input name="COLORBL" value="blue" type="checkbox"
`Checked("COLORBL",1,"blue")` `disabled("COLORBL")`>and the blue color? <br>
Note: Place the call for GetTextAreaContent directly between > and the </textarea>. This
avoids unwanted spaces at the beginning of the text being entered.
Buttons
The standard buttons for submitting, changing, and checking are defined as follows:
<input type="submit" name="BUTTON_SEND" value="Absenden" `disabled("BUTTON_SEND")`
onclick="SAPEvent('SEND')">
The following shows how to create the button for a freely definable user command (or
page scrolling), which can be evaluated in the BAdIs:
<input type="submit" name="B_CALC" value="Rechnen" onclick="SAPEvent('CALC')">
The fields on the request form can be initialized by means of a parameterized URL call. The
syntax for initializing the COLOR characteristic with RED and the TASTE characteristic with
GOOD is shown in the following example:
…. SCENARIO=MK01&scenario_params=COLOR=RED$TASTE=GOOD
1.23.2 Initialization, Input Help, and Verification for Clients in HTML Template
You can define any initializations, input helps, or verifications directly in the HTML
template. Modify the HTML templates accordingly. If you use the normal JavaScript
methods, the verifications will only take place in the clients and so the performance will be
better. If you use the SAP HTML Business functions as the script language, processing takes
place on the ITS. Performance is as good for initializations and input help as it is in the
JavaScript solution. Where validations are concerned, the client-only JavaScript solution has
better performance. (For input help with SAP HTML Business functions, see section 4.3.1)
1.23.3.1 Methods for ISR BAdIs QISR1: Exits for Form Processing
Using the BAdI definition QISR1, the ISR enables you to control the flow logic for the
request form in R/3 in detail. A total of five BAdI methods are available:
INT_SERVICE_REQUEST_INIT
(only in mode=CREATE)
Initialization
SCENARIO_SET_FORM_VIEW
PBO
SCENARIO_SET_ADDITIONAL_VALUES
SCENARIO_PROCESS_USER_COMMAND
INT_SERVICE_REQUEST_CHECK
(not in mode=DISPLAY)
PAI
No Check ok
and SUBMIT
form?
Yes
Create/Change Notification
Note: In this exit, fill the internal table ADDITIONAL_DATA with values that are
needed by the form at runtime but are not saved in the request. That is, here you can
set value lists for dropdown list boxes (see examples below) and control parameters.
The internal table ADDITIONAL_DATA is not deleted automatically – data is
retained until the form is submitted. The MODE parameter enables you to configure
the logic based on the current mode (CREATE, CHANGE, DISPLAY).
You can create the implementations for the BAdI methods for your ISR scenario as follows:
In the basic Customizing for your ISR scenario, choose Business Add-In which takes you
directly to the BAdI builder for the QISR1 definition. To display a particular implementation
of the BAdI method for a scenario, choose Implementations Display and double-click on
an implementation. The filter value (with the same name as a scenario) indicates which
scenario the implementation belongs to. It is possible for more than one scenario to be
assigned to an implementation (more than one filter value). Once you have selected an
implementation, you can go to the BAdI methods by double-clicking on the Interface tab. The
program code that is displayed for each method is only run for the scenarios defined by the
filter values.
If you want to create a new BAdI implementation for your scenario, choose Implementations
Create and enter a name for the implementation. Enter a short description, and enter a
scenario name as the filter value. Save and activate the implementation. You can now
program the desired methods. You must then activate the implementation.
You can use the following standard ISR data structures for implementing BAdI methods:
FLT_VAL QSCENARIO
Current scenario
MODE QISRDMODE
Current processing mode (CREATE, CHANGE, DISPLAY); corresponds to the template parameter
ISR_MODE
FORM_VIEW QISRDFORMVIEW
Current form view (ISR_PROCESS or ISR_REQUEST), corresponds to the template parameter
ISR_FORM_VIEW
PAGE QISRDFORMPAGE
Current page number; corresponds to the template parameter ISR_PAGE
GENERAL_DATA QISRSGENERAL_PARAM
General ISR data (requested by, entered by, priority, notification short text, etc.)
SPECIAL_DATA QISRTSPECIAL_PARAM
Table with special request data that depend on the scenario and that was defined as characteristics in ISR
Customizing. The table has a row for each characteristic, with the column FIELDNAME
ADDITIONAL_DATA QISRTSPECIAL_PARAM
Additional table for input help values etc., which can be used as needed
USER_COMMAND* SYUCOMM
The last command that was triggered on the form
RETURN* BAPIRET1
Return structure for error messages
1.23.3.3 Examples
* local data
DATA: ls_special_data TYPE qisrsspecial_param.
CASE ls_special_data-fieldname.
WHEN 'NEW_COSTCENTER'.
ls_special_data-fieldvalue = general_data-initiated_by-MASTER_CCTR.
WHEN OTHERS.
ENDCASE.
ENDLOOP.
CASE ls_special_data-fieldname.
WHEN 'MONITOR'.
ls_monitor = ls_special_data-fieldvalue.
WHEN OTHERS.
ENDCASE.
ENDLOOP.
if ls_monitor eq 'X'.
ls_total = ls_total + 350.
endif.
endif.
endcase.
To create input help for a characteristic (such as AIRPORT) in the BAdI, you need to
create two additional internal tables for the texts to be provided (such as
AIRPORT_OPTION_LABEL) and the value to be transferred (such as
AIRPORT_OPTION). On the HTML template, the input help is displayed using a
dropdown list box (section 4.3). For a complete example, see the BAdI implementation
for the standard scenario SH01 Shuttle to Airport.
Reading and setting the special request fields in the BAdI methods:
It is easy to access the general request data in the BAdI implementations because this data
is transferred to the methods as a GENERAL_DATA structure. The special request data
defined as characteristics in ISR Customizing, on the other hand, is listed in a table. The
SPECIAL_DATA table contains a row for each characteristic. Therefore, it is normally
necessary to transfer this tabular data into corresponding application structures at the start
of a BAdI method, and then write it back to the table at the end of the method. Two
function modules are available for this purpose:
ISR_SPECIAL_DATA_TO_STRUC
Moves the special request data from the SPECIAL_DATA table to a structure. The
request data that has the same name as a field name in the structure is transferred from the
table to the structure.
ISR_STRUC_TO_SPECIAL_DATA
Same as ISR_SPECIAL_DATA_TO_STRUC but in the reverse direction.
* Stammdaten Innenauftrag:
DATA: ls_master_data TYPE bapi2075_7.
* weitere Verarbeitungsschritte
*…
* Stammdaten Innenauftrag:
DATA: BEGIN OF mydata,
order TYPE aufnr,
description(40) TYPE c,
* weitere Verarbeitungsschritte
*…
You can use the same function modules for reading and setting the ADDITIONAL_DATA
table.
To design forms for your portal, you only need to create two Java Server Pages (JSPs). The
following section explains the syntax, structure, and layout of the JSPs.
Unfortunately, it is currently not possible to have a Java iView generated. Therefore you need
to copy an existing Java iView, modify it, and install it in your Portal. This process is
described in more detail below.
You can only assign one Java iView (which determines the layout of the request form) to each
ISR scenario. The Java iView for an ISR request form has the following files that are stored in
a PAR file:
To create a new Java iView (such as ISR_TEST) for a certain R/3 scenario (such as TEST):
1. Copy one of the supplied .par files (such as com.sap.pct.fin.isr_sor1mpo.par) and rename
the new .par file (such as isr_test.par).
2. Extract isr_test.par to the local C:\ directory on your computer using WinZip or a similar
program.
Set the Use folder name indicator when you do the extraction.
3. In default.properties (under C:\profiles\...), maintain the scenario key defined in R/3 (such
as IsrScenario=TEST) and the name of the logical system (such as
SystemIdentifier.value=SAP_R3_Financials).
Example:
If you use Business Package MSS 50.1, the names of these two files must not be changed.
The main task is now to modify the request form IsrMain.jsp or the confirmation page
IsrConfirmation.jsp (see the following section).
If you use Business Package MSS 50.2, you can use your own JSP for IsrMain.jsp with a
name you assign (such as MyOwnMain.jsp) instead of IsrMain. Enter the name of your
JSP in default.properties as the value of parameter Isr_NewMainJsp (see under 2.).
In this case you create the JSP in the folder C:\pagelet\ (such as MyOwnMain.jsp). You
must then insert the JSP into the *.par file (such as isr_test.par) as described below. If you
use your own JSP, do not delete IsrMain.jsp. You cannot replace IsrConfirmation.jsp with
your own JSP.
Once you have set up the request form, add the data you changed in steps 3 and 4 using
Add to Zip from the WinZip program to the .par file copied in step 1 (such as isr_test.par)
using the following WinZip settings:
Caution: Make sure that the menu paths in the .par file are not lost when you process the
files.
The ISR framework is designed to ensure as much freedom as possible when creating request
forms, and at the same time to include as many standard requests as possible. You therefore
create your own JSP (IsrMain.jsp) for each ISR scenario, which you can modify as needed.
The layout options are described below, starting with the most basic.
Note that in the Web browser the form is stateless. This means there is only a connection
between the server and R/3 when you access the form again, or when the form is processed
for example by choosing a pushbutton and the flow logic of the form is processed. This
IsrMain.jsp must always have the following structure. Copying and modifying an existing
scenario assures that the JSP contains all necessary directives.
<%-- Main ISR page to display the service request form in all modes (CREATE; DISPLAY; CHANGE) --%>
<hbj:form id = "myForm">
</hbj:form>
</hbj:page>
</hbj:content>
1.25.1 Images
<hbj:image id="ownpicture"
src='<%= componentRequest.getResource(componentRequest.getComponentContext().
getComponentName(), "image", "images/" +
"TRAFFIC_LIGHT_RED.GIF").
getResourceInformation().getURL(componentRequest) %>' alt="E" />
You access the form data that was initialized and tested in R/3 by using a generic Java bean.
You can access the value, the label (short, medium, long), the output length, and the ready-
for-input status of all the characteristics defined in the scenario. The following methods are
available (such as for the NEW_USER characteristic):
<%= ISR.getValue("NEW_USER") %>
<%= ISR.getLabelK("NEW_USER") %>
<%= ISR.getLabelM("NEW_USER") %>
<%= ISR.getLabelL("NEW_USER") %>
<%= ISR.getSize("NEW_USER") %>
<%= ISR.getDisabled("NEW_USER") %>
Enterprise Portal 5.0 enables flexible yet uniform creation of the portal layout using
standardized CSS style sheets. These can be adapted to the branding of your company by the
portal administrator. The end user can select the layout for their portal from a standard
selection of layout themes. A prerequisite of a standard layout for the central CSS style sheets
is that the Java iViews use HTML business controls (HTMLB). HTMLB also enables
effective, time-saving programming of form elements, and is thus used for the ISR as well.
The HTMLB taglib directive is defined at the beginning of IsrMain.jsp and IsrConfirmation:
You can create different layouts for the different request modes using the ISR_MODE
parameter in the JSP. Depending on the mode, this parameter has the value CREATE,
CHANGE, or DISPLAY. You could therefore add a pushbutton such as Send in the Create
mode as follows:
It is often the case that the processor needs to have more request fields than the users who
enter the requests. The parameter ISR_FORM_VIEW is provided in the JSP for this purpose.
This has the default value ISR REQUEST. When the processor calls up the request form, it
has the value ISR_PROCESS (or ISR_APPROVE for the person approving). You can display
an extra field for the processor as follows:
To control the layout in more detail, you can also set the parameter ISR_FORM_VIEW from
within the BAdI methods (see section 4) using rules that you define.
You can use the ISR framework to define request forms with multiple pages for a more
structured entry of data (if necessary, you can display the entries made on the previous pages
on the final page). The parameter ISR_PAGE is provided for this purpose in the JSP. You can
scroll backwards or forwards using buttons that trigger one of two ISR standard commands:
NEXT_PAGE: One page forward
PREV_PAGE: One page back
<hbj:button id="PREV_PAGE"
text="<- previous page"
tooltip="previous page"
onClick="submit"
design="emphasized"
/>
<hbj:button id="NEXT_PAGE"
text="next page ->"
tooltip="next page"
onClick="submit"
design="emphasized"
/>
When one of these commands is triggered, the number of the current page (parameter
ISR_PAGE) is automatically incremented or decremented by one. If a more complex
scrolling logic is required (for example, depending on the entries made on the page), you can
explicitly set the value of the parameter ISR_PAGE in the BAdI methods.
The request fields that you defined as characteristics have descriptions that come from the
request fields from R/3. This means that the descriptions are available in all required
languages.
In addition, standard texts are provided for long texts, error output, and buttons by means of
the resource bundle ISRBundle in the JSP. This means that you can display the header for the
long text as follows:
You can also define your own resource bundles with the standard techniques and use them in
the JSP.
You can display fields depending on the values of individual characteristics (such as
ORDER):
<hbj:checkbox key="COLOR"
id="ID1"
text="Checkbox Color"
tooltip="Click the checkbox"
disabled='<%= ISR.getDisabled("COLOR") %>'
checked='<%= ISR.getChecked("COLOR") %>'
encode="false"
/>
<hbj:textEdit id="MYTEXT"
text='<%= ISR.getTextAreaContent("MYTEXT") %>'
cols="80"
rows="5"
/>
<hbj:textEdit id="ISR_LONG_TEXT"
text='<%= ISR.getTextAreaContent("ISR_LONG_TEXT") %>'
<hbj:textEdit id="ISR_NEW_LONG_TEXT"
text='<%= ISR.getTextAreaContent("ISR_NEW_LONG_TEXT") %>'
cols="80"
rows="5"
/>
Buttons
The standard buttons for submitting, changing, and checking are defined as follows:
<hbj:button id="CHECK"
text="Check"
tooltip="Submit ISR-Form"
onClick="submit"
design="emphasized"
/>
<hbj:button id="SEND"
text="Send/Save"
tooltip="Submit ISR-Form"
onClick="submit"
design="emphasized"
/>
You can create the button for a freely definable user command (which can be evaluated in
the BAdIs) by defining the ID of the button accordingly. The ID is available as a user
command in the R/3 BAdIs.
Date field
Prerequisite: Business Package MSS 50.2 and the correction in OSS Note 552175 in your
plug-in system.
You can also use the date field together with HTMLB input help. To do this, assign the
value true to the parameter showhelp.
Positioning
HTMLB and the grid layouts enable relative positioning. However, you can also position
with all of the other HTML methods, such as:
<table border="0" align="center" width="98%"><tr><td>
…
</td></tr></table>
<hbj:gridLayout>
<hbj:gridLayoutCell rowIndex="1" columnIndex="1">
<hbj:textView text="NOTIF_NO_OUT" design="LABEL"/>
</hbj:gridLayoutCell>
<hbj:gridLayoutCell rowIndex="1" columnIndex="2">
<hbj:textView text='<%= ISR.getValue("NOTIF_NO_OUT") %>'/>
</hbj:gridLayoutCell>
<hbj:gridLayoutCell rowIndex="2" columnIndex="1">
<hbj:textView text="RETURN-MESSAGE" design="LABEL"/>
</hbj:gridLayoutCell>
<hbj:gridLayoutCell rowIndex="2" columnIndex="2">
<hbj:textView text='<%= ISR.getValue("RETURN-MESSAGE") %>'/>
</hbj:gridLayoutCell>
</hbj:gridLayout>
The fields on the request form can be initialized by means of a parameterized URL call. The
syntax for initializing the COLOR characteristic with RED and the TASTE characteristic with
GOOD is shown in the following example:
…. isr_test.default?SCENARIO_PARAMS=COLOR=RED$TASTE=GOOD
1.27.2 Initialization, Input Help, and Verification for Clients in HTML Template
You can define any initializations, input help, and verifications directly in the JSP. Modify the
JSPs accordingly. If you use the normal JavaScript methods, the verifications will only take
place in the clients, which improves performance. If you use Java as the script language,
processing is on the Web server. All R/3 data (such as validation tables) is available for
initializations and input help in the R/3 BAdIs.
The R/3 logic with Java iViews is basically the same as that with Internet Services (ITS). See
section 4.4.3.
You can enter a name for the form in the form field. The form generation process creates a
form with that technical name. If you leave the form field empty, the system generates a form
with the name Z_ISR_FORM_<scenario> (such as Z_ISR_FORM_Z123 for scenario Z123).
To create a new Adobe form for your ISR scenario, choose Generate. A dialog box appears
with three options:
Without Template:
An new empty Adobe form is created. The characteristics of the scenario are transferred to
the data part of the form and are available on the body page of the form layout for data
binding of the fields and form elements to be defined. However, the layout (body page) is
empty. You must manually modify the layout using the screen elements of the Library
(right side) by dragging and dropping them.
With the form generated thus far you access the Form Builder (see figure below), which you
can also access directly with transaction SFP. The Adobe form is a client-independent
workbench object. This means that to generate a new form, you need a customer package to
which the workbench object form is assigned. For this you need a transport request to be able
to transport the form to other systems. Instead of transporting the form, however, you can also
create it as a local object.
You can now make changes to the form in the Form Builder (for explanations, see below).
When you are finished, you must save and activate the form.
In addition to the special characteristics from the scenario, the form has the general fields
ISR_LONG_TEXT and ISR_NEW_LONG_TEXT or the field groups GENERAL_DATA
and CONTROL_DATA in a structure.
The fields ISR_NEW_LONG_TEXT_NEW or ISR_LONG_TEXT are the standard
fields for entering comments as body text or for displaying the comments of service
requests that have been submitted.
The structure GENERAL_DATA contains the address data of the roles, such as the
applicant (CREATED_BY-…), the approver (APPROVED_BY-…) and the processor
(PROCESSOR-…), as well as general data (HEADER-… ;such as scenario,
notification number, price list, etc.). In the form, these fields can be displayed,
changed, or entered. They can also be used in the BAdIs for evaluation purposes.
The structure CONTROL_PARAM is only for influencing the layout of the screen
elements at runtime. Using the script language of the Form Builder and the content of
CONTROL_PARAM of the Form Builder, any field can be set to visible/not visible,
ready for input/not ready for input, etc. For detailed explanations on the use of the
Form Builder script language in R/3, see the documentation (section 6.7). For
examples regarding the use of the script language, see the screen elements of the ISR
Library (see below) or of the forms shipped by SAP. The structure
CONTROL_PARAM contains the following fields:
When you save and exit the Form Builder, a dialog box appears in which you can have
the system generate new characteristics in ISR basic customizing.
The pushbutton Import Form Fields next to the form field adds new characteristics
based on the form opposite.
If you have added new form elements in the Form Builder for which there is no linkage to a
characteristic in the Data View (that is, there is no data binding between the form element and
a characteristic), a characteristic is generated with the same technical name as the form
element (specified in the Form Builder for the form element under Object Binding in the
Name field). The name of the characteristic is taken from the description entered directly on
the form element. The data binding with the form element is then added to the form
automatically.
Notes:
If more than one form element has the same technical name, the characteristic is only
created once.
The generated characteristics are normally untyped. Exception: form fields of the type
Date are generated with the DDIC reference field SYDATUM.
When new characteristics are generated, existing characteristics are not changed.
If new characteristics are added manually in ISR Customizing, they can be transferred
with the Change pushbutton in the Data View context of the form (dialog box).
On the right side of the screen in the Library, choose a screen element (such as Text Edit)
from a tab (such as Standard) and select it. Then drag it to the body page. You can then
modify the attributes of the element (size, position, description, field type, etc.). You can then
manually link the new screen element to an existing characteristic from ISR Customizing, or
have the system generate a characteristic automatically.
When characteristics are generated automatically based on new form elements, the
data binding to the form elements is generated as well (see section 6.3).
6.6 Testing
Before you can test the Adobe form with the test function (test symbol next to the form), the
portal server must be specified in R/3 Customizing. To do this, go to Additional Data for
Scenario and choose Server. In the table, select Adobe Server and enter the URL for the
server (such as HTTP://<your
server>/WEBDYNPRO/DISPATCHER/SAP.COM/PCUI_GP~ISR/). Replace <your server>
with the name of your server and the port. Example: PGWDF123.WDF.SAP.CORP:40000.
This server setting applies to all scenarios in that system and client.
For more information on defining Adobe forms, see the documentation for the Form Builder
in the SAP Library under SAP NetWeaver Application Platform (SAP Web Application
Server) Business Services PDF-Based Forms.
If you want to enter forms in SAP design, see the Design Guidelines for Adobe forms in SAP
design, available in the SAP Service Marketplace under service.sap.com/isr. For such forms,
SAP provides a collection of predefined screen elements as an additional Library (ISR
Library), which you can use in the Form Builder. Note 741381 describes how to obtain this
ISR Library and add it to the Form Builder.
6.8 Standard and Custom Scenarios with Adobe Forms in the SAP Enterprise
Portal
The Adobe forms are technically part of the Web Dynpro application IsrForm in the
Development Component (DC) ISR from the Software Component PCUI_GP.
If you want to use custom scenarios with Adobe forms in your Enterprise Portal, you need to
define an iView based on the Web Dynpro application IsrForm and add it to your portal. You
can optionally use the general iView IsrAdobeForm (com.sap.pct.isradobeform) with the PCD
parameters scenario and mode. This iView is delivered with mySAP ERP 2004 SP2. You can
also use it as a template for custom iViews.
Scenarios Provided
The Web Dynpro application IsrForm consists of a "road map" with three steps (1: Data
entry, 2: Check and submit, 3: Confirmation) along with the Adobe form and pushbuttons for
navigating between the steps (see figure below).
You can program a check routine for each scenario that verifies whether the context in which
the scenario is accessed is correct. If the context is not correct, you can have an error message
issued that prevents the ISR form from being accessed. To do this, use BAdI QISR6 with
method SCENARIO_CHECK.
Note: These ISR forms must use context-sensitive access (example: Equipment Monitor).
Context-sensitive means that when an ISR form is accessed from a monitor, data on the object
selected in the monitor is transferred to the internal service request. It must be possible to
process this data in your form. For more information, refer to the documentation on the
supplied scenarios.
You can set up notification processing with or without a workflow. If no workflow is used,
notifications and tasks are processed in a worklist under Office Notification Worklist
Notifications/Tasks (transaction IQS8/IQS9). Processors access notifications and tasks using
selection criteria they define themselves. No further Customizing settings are required to
enable use of the worklist. When an internal service request is submitted, the processor is
saved in the notification and cannot be changed. The processor can select the notification in
the worklist accordingly.
Note: Standard roles are resolved at the time you create the notification. The processor is
stored in the notification at this point and cannot be changed later. This means that if the
responsibility changes in the standard role (for example, the person responsible moves to
another department), it is not possible to update this change in the notification.
If you use a workflow, notifications to be processed/approved are sent to the workflow inbox
of the person responsible, who can access the notifications by double-clicking on them. He or
she can forward the notification to other processors and use all other functions of the
workflow. In the following, it is assumed you are using an ISR with the notification type
General Notification. Otherwise other workflow settings may be relevant.
For General Notifications, both of the following standard workflow templates are relevant:
First you activate the workflow for General Notifications. You do this in Customizing under
Cross-Application Components Internet/Intranet Services Internal Service Request
Scenario Definition Prepare General Notification Notification Processing Activate
Workflow Template and Assign Processor.
Under Activate event linking, activate the two workflow templates described above for the
three named events:
The workflow template for notification processing (3100019) contains four standard
workflow tasks, which are generally executed in the following sequence:
The processor/approver is selected based on two criteria that must both be fulfilled:
This person is assigned as the processor in workflow customizing for the standard task.
In notification customizing, this person must be entered in the partner function person
responsible or approver (section 5.4.1 Processor Determination in Notifications and
Tasks describes this in detail).
This means that a user entered in the notification as the responsible person or the approver
will not receive a workflow task unless he is assigned to that task in workflow customizing.
Instead, the workflow task is sent to all other users assigned to that task in Customizing. The
same thing happens if no person responsible/approver is entered in the notification.
When distributing the tasks, the workflow always compares the list of possible receivers with
the users entered in the notification. This takes place using standard roles 20000116
(approval) and 20000101 (residual tasks) entered in the standard workflow tasks – please do
not modify these standard roles.
The workflow template for notification processing (20001028) contains a standard workflow
task:
Assignment of the processor to the standard workflow tasks takes place in Customizing under
Cross-Application Components Internet/Intranet Services Internal Service Request
Scenario Definition Prepare General Notification Notification Processing Activate
Workflow Template and Assign Processor Assign Agents.
Notification processing can involve various people with different functions. The predefined
functions for ISR are:
AB = Responsible Department
Organizational unit responsible for processing the request
AO = Author
User who submitted the request
KU = Coordinator
User who processes the notification, or coordinates its processing
§A = ISR Contact Person
User who built the ISR scenario or is responsible for it.
§G = Approver
User who approves the notification
§P = Task Processor
User who processes the task
These partner functions are defined in partner definition procedure SR00, which is assigned to
the ISR notification types (notification types 1 – 9, 50 – 79). Partner functions define only one
name for a role and the relevant partner type (user, organizational unit).
If you require other partner functions for your ISR scenarios, you can define your own partner
determination procedure (list of possible partner functions) and assign it to the corresponding
notification type. See Customizing under Cross-Application Components Internet/Intranet
Services Internal Service Request Scenario Definition Prepare General Notification
Notification Creation Partner Define Partner Determination Procedures.
Regardless of whether you use the worklist or the workflow, you can find the processor of a
notification or task using the standard function from the workflow.
With notifications, you maintain the standard role in Customizing for notification types under
Cross-Application Components Internet/Intranet Services Internal Service Request
Scenario Definition Prepare General Notification Notification Creation Partner
Define Partner Determination Procedures Assign Partner Functions to Notification Type.
Select a notification type and double-click the entry Assign Partner Functions to Notification
Type.
Under Partner Functions for Notification Processing in the Person Responsible field, select a
partner function defined in your partner determination procedure (normally Coordinator).
Enter the desired standard workflow in the next field.
You can use the pushbuttons to go to the maintenance screen for workflow standard roles (see
next section). If you have not created a standard role, you can define it using transaction
PFAC.
For tasks, you can enter a fixed processor or a standard role with flexible processor
determination directly in ISR Customizing (entry Tasks) for the corresponding task. (ISR
Customizing then takes priority over the standard roles for task processing that are maintained
directly in the notification.)
The standard role for the workflow enables flexible processor determination. The processor
of the notification or task can be selected based on the scenario and the input values on the
request form (such as the cost center of the person entering the request).
In the Role definition, enter an abbreviation, a description, and the role type
Responsibilities (Note: The ISR framework supports only the role type
Responsibilities at the moment).
In the description, you define information for this standard role. Note that this
standard role applies for all ISR scenarios of this notification type.
In the Role Container, you refer to any characteristics that you defined specifically for
ISR scenarios (input fields on the request form), and/or to table fields from the
VIQMEL (notification-specific data) structure.
To transfer the scenario characteristics that you defined to the container, click on the
first '+' symbol (insert container element) and do not affirm the subsequent dialog box
(no reference to dictionary). In the next dialog box, enter the element (characteristic
name) and a description.
If the SAP standard partner functions and the associated partner types User and Department
are not sufficient, you can define advanced partner determination procedures for a notification
type to include suitable partner functions.
Estimated costs:
If you don't want to run a detailed cost calculation for the scenario, you enter the
estimated costs. The costs you enter are updated as the planned value on the specified
object.
Template:
Price list:
The price list function simplifies ISR scenarios that involve administrative costs. The
administrative costs are calculated automatically based on the price list. The price list
contains all information needed to calculate the actual costs. A price list contains one or
more fixed prices.
Based on the predefined price (service type) selected, each request automatically updates
costs to a cost collector in Controlling (such as a cost center or order) once the notification
is completed. The processor does not have to update the costs manually.
Each entry in the price list corresponds to a service type (two-digit numerical value) that
includes the following information:
Price (consisting of an activity price and a fixed quantity)
Cost receiver
Cost sender (sender cost center and activity type)
A service type is an activity that can be requested by an internal service request. In the
simplest case, an internal service request only offers one service type, for which the
Default indicator must be set. If more than one service type is possible, you use the
Default indicator to control which price is defaulted to the request form. The person
creating the request establishes the costs by selecting the appropriate service type. The
approver then sees the costs when they process the request. When the notification is
completed, the costs are allocated from the sender cost center to the cost collector.
The applicant can select a price on the form. To enable the applicant to select the service
type on the form, you define a field as a dropdown list box and assign to it the field
SERVICE_TYP from the general fields of GENERAL_DATA with data binding.
If you don't allow applicants to select the price manually in this way, the default service
type is used automatically.
For each service type, specify a cost center and activity type and assign an activity price,
quantity, and currency. When the notification is completed, the cost center is credited
You can check a price list for consistency by entering the name of the scenario in the
Scenario field and choosing Check Price List.
Prerequisites
The sender cost center exists.
The activity type can be created while the price list is being edited. The following
settings must be made for the activity type under Variance values for actual
allocation:
Actual activity type category: 1 (Manual entry, manual allocation)
Actual price indicator: 7 (Manually determined for actual allocations)
Compared with the template, the price list is a relatively simple method of updating service
costs to Controlling. The template is recommended for complex costs allocations.
Cost collector
The costs calculated by one of the above methods are allocated to the account assignment
object defined in ISR Customizing under Strategy.
ISR scenarios can be accessed simply with a URL. This means you can easily add the ISR
scenarios to your company's existing intranet, extranet, or Internet pages. Most companies
already run self-service scenarios in their intranet, which can be enhanced by ISR scenarios.
You can add ISR services for customers to the company's external portal.
It would also be possible to send an e-mail with an ISR link to sales employees or customers
to inform them about new ISR services. You can create interactive ISR guides using a normal
word processing system simply by inserting links to ISR services at the relevant point in the
document. For example, you could write a guide for hiring new employees with links to
Booking Training Courses, Creating a System User, Ordering a PC and so on.
The syntax for calling a scenario with scenario key XXXX and the connected internet service
ZYYYY on ITS sap-ag.de:1080 is as follows:
http://sap-ag.de:1080/scripts/wgate/ZYYYY/!?~okCode=CREATE&scenario=XXXX
If you want, you can specify a default client and logon language by adding
&~client=800&~language=EN to the URL.
If you use the SAP Workplace, you can offer your employees a hierarchy of role-based ISR
services directly in the LaunchPad. The screenshot below shows how this could look.
The LaunchPad in the screenshot consists of a single role that contains folders with links to
the corresponding ISR scenarios. Start transaction PFCG in the workplace system. This
enables you to create single roles. Enter a new name for the single role (Z*) and choose
Create single role. Enter a description for the single role and choose Menu. Confirm the
subsequent dialog box and position the cursor on the Role menu folder.
The Workplace provides a generic start page for the ISR (Internet service QISR). This start
page is no longer needed now that SAP Enterprise Portal 5.0 is available.
SAP Enterprise Portal 5.0 provides you with a flexible means of designing the portal pages
and their navigational structure. You can use the detailed navigation to place ISR scenarios on
portal pages where appropriate. The user can then access the appropriate request forms
directly without having to exit their work context. In the example below of the business
package Manager Self Service, the budget depletion of internal orders for which the manager
is responsible is displayed on the portal page. The detailed navigation provides the manager
with internal service requests for the application of more internal orders, master data changes,
budget supplements, and adjustment postings.
The manager can also get a detailed overview of the status of his or her internal service
requests:
You can use ISR MiniApps in all types of intranet or Internet portals. You may want to
modify the layout or design to match that of the portal. To do so, copy the ISR standard
MiniApps and work only with the copies. This prevents your modifications from being lost
when a Support Package is downloaded.
The Internet service ISR_MY_NOTI enables end users to check the status of their requests,
send comments to the processor, and change their requests. This service can be integrated in
the Workplace for an internal employee or as an element of an external portal. Simply copy
the Internet service and adjust the layout and the settings in the list of general parameters as
needed. It can be advantageous to use several MiniApps, each of which is restricted to a
single notification type or scenario. You can also set the parameters of the URL to achieve
this restriction.
<!—
internet service displays an overview of "my notifications" which were
generated from submitted ISR forms.
If you want only notifications for the special notification type XYZ to be displayed you
can call the URL with QMART=XYZ. (.../ISR_MY_NOTI/!?QMART=XYZ )
(No dropdown list is available in this mode)
If you want only notifications for the special scenario ABCD to be displayed you
can call the URL with SCENARIO=ABCD. (.../ISR_MY_NOTI/!?SCENARIO=ABCD )
(No dropdown list is available in this mode)
You can define the selection period with the parameter PASTDAYS (see general parameterlist of
ISR_MY_NOTI). The selection period is from today - pastdays until today. The default of
pastdays is 365 (one year).
If you want to display notifications from all users(!) you can set the parameter
Each notification is displayed with up to five additional characteristics from the ISR form.
The displayed characteristics from the ISR form can be customized in the data base table
QISRCONTROL. If you want to display a characteristic please create entries in
QISRCONTROL following this logic:
1. characteristic:
2. characteristic:
...
5. characteristic:
-->
To enable the processor to see an overview in the Workplace of the notifications and tasks
awaiting processing, these MiniApps generate a list of notifications and tasks grouped
according to status (the person placing the request can also use this MiniApp, but he then has
to use the R/3 transactions). You can personalize the selection of notifications. You can define
the selection criteria for the MiniApps in variant maintenance for the worklist transactions
(IQS8 or IQS9). In the MiniApps, you can use the link after the figures to go to the worklist
transactions and access notifications.
If you use the workflow, processors or approvers receive notifications automatically in their
Workflow Inbox. From there, they can go to the notification transaction.
The database table QISRCONTROL is an additional Customizing table for fine-tuning the
individual ISR scenarios. You can define the following settings for each scenario using
transaction SE16. As key fields for each case, specify the client, the scenario, and the
following values for FIELD and VALUE:
WF_CREATED <workflow Here you can specify a workflow template for a scenario, which
template> is started when you create the notification. You also need to
With business package MSS 5.0 in the Enterprise Portal, it is no longer necessary to maintain
the table QISRCONTROL. Instead, you can maintain the Customizing settings with
transaction QISRSCENARIO (pushbutton Additional Data for Scenario) for MSS 50.2 or
with transaction SIMG_SPORT for MSS 50.1. The settings in QISRCONTROL also apply to
the Enterprise Portal if the Customizing transactions mentioned have not been used in MSS
5.0.
Additional system settings are necessary before you can use Adobe forms.
ADS Caller:
A destination service is needed to be able to access the form on the back-end system. To do
this, you must configure your local J2EE engine.
You also need a service user ADS_AGENT (password ADOBE) in R/3 for the default client.
This user must be assigned to SAP_BC_FP_ICF. The default client is the client that appears
on the logon screen of the R/3 system as the default value when you log on with the SAP
GUI.
If the user does not exist in the system, you must create it. The user type must be Service. You
can set this in the user transaction on the Logon Data tab).
Adobe WebService:
The Adobe server needs to be configured as well.
Go to Services Web Services Security. Choose Web Service Clients sap.com
tc~wd~pdfobject com.sap.tc.webdynpro.adsproxy.AdsProxy/ConfigPort_Document.
Select Custom for the URL and enter the server or port. The entry should look something like
this:
http://myserver:12345/AdobeDocumentServices/Config?style=document
To publish your Internet services from transaction SE80, you need to set up an IACOR
connection between the R/3 system and the ITS. If you have problems publishing your
Internet services, contact your ITS administrator.
1.39.3 General
Table TWPURLSVR (in the component system): for the corresponding logical system (see
client maintenance), the ITS server and port must be entered in this table (such as
myITS.wdf.sap-ag.de:1080).
You can only enter one server for a component system. It is therefore not possible to use more
than one server.
For a complete list of predefined ISR request fields, refer to the SAP Library under Cross-
Application Components Internal Service Requests Preparing the Internal Service
Request Definition of an HTML Form Form Definition.
ISR scenarios consist of three components that you transport in different ways:
1. The generated Internet services can be transported using a standard transport request.
2. You transport the Customizing settings for the ISR using standard Customizing
transport requests.
The SAP standard for Customizing of notifications (notification types 1–9 and 50–79) is
imported from client 000 to the current client using transaction QISR_SM29. (Note: When
this happens, the standard system overwrites any changes in Customizing for these
notification types.)
You should always enter Internet services in the original language, otherwise problems may
arise due to language dependency. For requests in different languages, use the text elements in
the HTML templates (such as #INFO), whose contents you can define in the original
language in the THEME of the Internet service. You can translate the texts using transaction
SE63.
The flow logic of the ISR request form is controlled by transaction QISR1 (function group
QISR3). This means that transaction QISR1 is always started whenever you access an ISR
scenario. This transaction contains initial screen 100, which however does not normally
appear because the URL call already contains the parameters OKCODE and SCENARIO (and
possibly also REQUEST_NO for displaying and changing a request referring to a
notification). Depending on the OKCODE, the transaction takes you directly to screen 110
(create), 120 (change), or 130 (display). See section 4.1. All standard ISR fields have been
defined and are visible on these screens. The ISR characteristics that you defined are not
displayed because these are directly written or read by the program to the ITS context.
&~record=1
You assign codes to tasks and actions be able to evaluate them and make specific selections.
You can arrange different codes into code groups. The standard code group SAPISR is
intended for the ISR scenarios. The code group SAPISR is available for tasks (catalog 2) and
actions (catalog 8). You can use a catalog profile to restrict the codes from a code group to a
subquantity for each notification type.
Expand the list of assigned codes according to your requirements in notification Customizing
under Cross-Application Components Internet/Intranet Services Internal Service
Request Scenario Definition Prepare General Notification Notification Creation
Notification Contents Maintain Catalogs. Then choose the combination of catalog (2 or 8)
and code group (SAPISR) to be processed, and choose ENTER. Select code group SAPISR
and choose Codes on the left-hand side. You can now add more codes.
You can use the general function modules of the ISR framework for activities:
ISR_ACTIVITY_EXECUTE
ISR_ACTIVITY_EXECUTE_ACTIONDOC
ISR_ACTIVITY_EXECUTE_TASKDOC
These function modules all call the method EXECUTE_FUNCTION of BAdI QISR4. That is,
the implementation of the desired functionality can be programmed for a combination of the
scenario and the function (import parameter: flt_val, function). This means it is no longer
necessary to define separate function modules in each case with the interface required for the
activities.
You can use the following function modules to access the request form in display or change
mode:
You can use the following module to access the Easy Execution Services of ECP (Easy Cost
Planning):
You can find other function modules using the following generic keys:
You can use the following function module as a template for a parameterized transaction call:
The following section contains a list of methods available in the JSP (with MSS 5.0).
No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission
of SAP AG. The information contained herein may be changed without prior notice.
Some software products marketed by SAP AG and its distributors contain proprietary software components of other software
vendors.
Microsoft, Windows, Outlook, and PowerPoint are registered trademarks of Microsoft Corporation.
IBM, DB2, DB2 Universal Database, OS/2, Parallel Sysplex, MVS/ESA, AIX, S/390, AS/400, OS/390, OS/400, iSeries,
pSeries, xSeries, zSeries, z/OS, AFP, Intelligent Miner, WebSphere, Netfinity, Tivoli, and Informix are trademarks or
registered trademarks of IBM Corporation in the United States and/or other countries.
UNIX, X/Open, OSF/1, and Motif are registered trademarks of the Open Group.
Citrix, ICA, Program Neighborhood, MetaFrame, WinFrame, VideoFrame, and MultiWin are trademarks or registered
trademarks of Citrix Systems, Inc.
HTML, XML, XHTML and W3C are trademarks or registered trademarks of W3C®, World Wide Web Consortium,
Massachusetts Institute of Technology.
JavaScript is a registered trademark of Sun Microsystems, Inc., used under license for technology invented and implemented
by Netscape.
SAP, R/3, mySAP, mySAP.com, xApps, xApp, and other SAP products and services mentioned herein as well as their
respective logos are trademarks or registered trademarks of SAP AG in Germany and in several other countries all over the
world. All other product and service names mentioned are the trademarks of their respective companies. Data contained in
this document serves informational purposes only. National product specifications may vary.
These materials are subject to change without notice. These materials are provided by SAP AG and its affiliated companies
("SAP Group") for informational purposes only, without representation or warranty of any kind, and SAP Group shall not be
liable for errors or omissions with respect to the materials. The only warranties for SAP Group products and services are
those that are set forth in the express warranty statements accompanying such products and services, if any. Nothing herein
should be construed as constituting an additional warranty.