<%@pagelanguage="abap"%>
<%@extensionname="htmlb"prefix="htmlb"%>
scripttype="text/javascript"
functionDisplayTrans()
{
window.open("<%=display_url%>");
}
functionPortalDisplay()
{
window.open("<%=display_portal%>");
}
</script
<htmlb:contentdesign="design2003"
<htmlb:pagetitle="MainPage(LinkingtoSAPTransactions)"
<htmlb:form
<htmlb:tabStripid="myTabStrip"
bodyHeight="75"
width="100"
<htmlb:tabStripItemid="myTabStripItem"
index="1"
title="SelectionScreen"
tooltip="SelectionScreen"
onSelect="tabSel"
<htmlb:gridLayoutid="myGridLayout"
width="300"
columnSize="2"
rowSize="10"
<htmlb:gridLayoutCellrowIndex="1"
columnIndex="1"
width="15%"
<htmlb:labelfor="i_carrid"
text="AirlineCode"/>
</htmlb:gridLayoutCell>
<htmlb:gridLayoutCellrowIndex="1"
columnIndex="2"
<htmlb:inputFieldid="i_carrid"
value="<%=WA_SFLIGHT-CARRID%>"
disabled="True"/>
</htmlb:gridLayoutCell>
<htmlb:gridLayoutCellrowIndex="2"
columnIndex="1"
width="15%"
<htmlb:labelfor="i_connid"
text="FlightConnection"/>
</htmlb:gridLayoutCell>
<htmlb:gridLayoutCellrowIndex="2"
columnIndex="2"
<htmlb:inputFieldid="i_connid"
value="<%=WA_SFLIGHT-CONNID%>"
disabled="True"/>
</htmlb:gridLayoutCell>
<htmlb:gridLayoutCellrowIndex="3"
columnIndex="1"
width="15%"
<htmlb:labelfor="i_fldate"
text="Flightdate"/>
</htmlb:gridLayoutCell>
<htmlb:gridLayoutCellrowIndex="3"
columnIndex="2"
<htmlb:inputFieldid="i_fldate"
value="<%=WA_SFLIGHT-FLDATE%>"
showHelp="X"
type="date"
disabled="True"/>
</htmlb:gridLayoutCell>
<htmlb:gridLayoutCellrowIndex="4"
columnIndex="1"
width="15%"
<htmlb:labelfor="i_price"
text="Price"/>
</htmlb:gridLayoutCell>
<htmlb:gridLayoutCellrowIndex="4"
columnIndex="2"
<htmlb:inputFieldid="i_price"
value="<%=WA_SFLIGHT-PRICE%>"
disabled="True"/>
</htmlb:gridLayoutCell>
<htmlb:gridLayoutCellrowIndex="5"
columnIndex="1"
width="15%"
<htmlb:labelfor="i_currency"
text="Currency"/>
</htmlb:gridLayoutCell>
<htmlb:gridLayoutCellrowIndex="5"
columnIndex="2"
<htmlb:inputFieldid="i_currency"
value="<%=WA_SFLIGHT-CURRENCY%>"
disabled="True"/>
</htmlb:gridLayoutCell>
<htmlb:gridLayoutCellrowIndex="6"
columnIndex="1"
width="15%"
<htmlb:labelfor="i_planetype"
text="PlaneType"/>
</htmlb:gridLayoutCell>
<htmlb:gridLayoutCellrowIndex="6"
columnIndex="2"
<htmlb:inputFieldid="i_planetype"
value="<%=WA_SFLIGHT-PLANETYPE%>"
disabled="True"/>
</htmlb:gridLayoutCell>
<htmlb:gridLayoutCellrowIndex="7"
columnIndex="1"
width="15%"
<htmlb:labelfor="i_seatsmax"
text="Max.Seat"/>
</htmlb:gridLayoutCell>
<htmlb:gridLayoutCellrowIndex="7"
columnIndex="2"
<htmlb:inputFieldid="i_seatsmax"
value="<%=WA_SFLIGHT-SEATSMAX%>"
disabled="True"/>
</htmlb:gridLayoutCell>
<htmlb:gridLayoutCellrowIndex="8"
columnIndex="1"
width="15%"
<htmlb:labelfor="i_seatsocc"
text="OccupiedSeats"/>
</htmlb:gridLayoutCell>
<htmlb:gridLayoutCellrowIndex="8"
columnIndex="2"
<htmlb:inputFieldid="i_seatsocc"
value="<%=WA_SFLIGHT-SEATSOCC%>"
disabled="True"/>
</htmlb:gridLayoutCell>
<htmlb:gridLayoutCellrowIndex="9"
columnIndex="1"
width="15%"
<htmlb:labelfor="i_paymentsum"
text="PaymentSum"/>
</htmlb:gridLayoutCell>
<htmlb:gridLayoutCellrowIndex="9"
columnIndex="2"
<htmlb:inputFieldid="i_paymentsum"
value="<%=WA_SFLIGHT-PAYMENTSUM%>"
disabled="True"/>
</htmlb:gridLayoutCell>
</htmlb:gridLayout>
</htmlb:tabStripItem>
</htmlb:tabStrip>
<htmlb:buttonid="sap_link"
text="DisplayTransaction"
onClientClick="DisplayTrans()"/>
<htmlb:buttonid="sap_link"
text="DisplayPortal"
onClientClick="PortalDisplay()"/>
</htmlb:form
</htmlb:page>
</htmlb:content
<htmlb:contentdesign="design2003"
<htmlb:pagetitle="SelectionScreen"
<htmlb:form
<htmlb:tabStripid="myTabStrip"
bodyHeight="75"
width="100"
<htmlb:tabStripItemid="myTabStripItem"
index="1"
title="SelectionScreen"
tooltip="SelectionScreen"
onSelect="tabSel"
<htmlb:gridLayoutid="myGridLayout"
width="300"
columnSize="2"
rowSize="10"
<htmlb:gridLayoutCellrowIndex="1"
columnIndex="1"
width="15%"
<htmlb:labelfor="i_carrid"
text="AirlineCode"/>
</htmlb:gridLayoutCell>
<htmlb:gridLayoutCellrowIndex="1"
columnIndex="2"
<htmlb:inputFieldid="i_carrid"
value="<%=T_SFLIGHT-CARRID%>"/>
</htmlb:gridLayoutCell>
<htmlb:gridLayoutCellrowIndex="2"
columnIndex="1"
width="15%"
<htmlb:labelfor="i_connid"
text="FlightConnection"/>
</htmlb:gridLayoutCell>
<htmlb:gridLayoutCellrowIndex="2"
columnIndex="2"
<htmlb:inputFieldid="i_connid"
value="<%=T_SFLIGHT-CONNID%>"/>
</htmlb:gridLayoutCell>
<htmlb:gridLayoutCellrowIndex="3"
columnIndex="1"
width="15%"
<htmlb:labelfor="i_fldate"
text="Flightdate"/>
</htmlb:gridLayoutCell>
<htmlb:gridLayoutCellrowIndex="3"
columnIndex="2"
<htmlb:inputFieldid="i_fldate"
value="<%=T_SFLIGHT-FLDATE%>"
showHelp="X"
type="date"/>
</htmlb:gridLayoutCell>
</htmlb:gridLayout>
</htmlb:tabStripItem>
</htmlb:tabStrip>
Figure 7 Create a frame with the three fields Carrier ID, Connection ID, and Flight Date
*&------*
*& Form before_save
*&------*
form before_save.
*** Validate Change request exists in Change master table ***
data begin of wa_extract.
include structure ztrtracking.
include structure vimtbflags.
data end of wa_extract.
data: w_objectid like ztrobjectmaster-objectid.
loop at extract into wa_extract.
check ( wa_extract-vim_action = 'N' or wa_extract-vim_action = 'U' ).
check ( not wa_extract-tranreqno is INITIAL ).
select single objectid from ztrobjectmaster into (w_objectid)
where objectid = wa_extract-objectid
and systid = wa_extract-systid
and chngtyp = wa_extract-chngtyp
and chngtypeno = wa_extract-chngtypeno.
if ( sy-subrc > 0 ).
message 'Change Request does not exist in Change Master' type 'E'.
exit.
endif.
endloop.
endform. "BEFORE_SAVE
*&------*
*& Form fill_noinput_fields
*&------*
form fill_noinput_fields.
check ( not ztrtracking-tranreqno is initial ).
*** Fill Transport owner ***
select single as4user into (ztrtracking-tranreqowner)
from e070
where trkorr = ztrtracking-tranreqno.
*** Fill Transport description ***
select single as4text into (ztrtracking-tranreqtext)
from e07t
where trkorr = ztrtracking-tranreqno
and langu = 'E'.
*** Fill basic audit trail information ***
ztrtracking-createdby = sy-uname.
*** If this transport had been released in past, but being added
*** manually to the registry, then update status of this transport
select single * from e070
where trkorr = ztrtracking-tranreqno
and trstatus = 'R'. "Transport is Released
if ( sy-subrc = 0 ).
perform update_transport_status. “THIS IS OPTIONAL ROUTINE
endif.
endform. "fill_noinput_fields
*&------*
*& Form update_transport_status
*&------*
* For manually/offline added transport records in ZTRTRACKING table,
* update the import status of those transports which have already
* been released.
*------*
form update_transport_status.
data: w_lines like tstrfcofil,
i_lines like tstrfcofil occurs 0 with header line.
*** Read Transport Log for the Transport being manually added ***
refresh: i_lines.
call function 'STRF_READ_COFILE'
exporting iv_trkorr = ztrtracking-tranreqno
tables t_cofi_lines = i_lines
exceptions others = 0.
check ( sy-subrc = 0 ).
*** Please replace SE, QA, PE and DEV with the corresponding system names
*** in your environment
delete i_lines where ( tarsystem = 'SE' and function > 'I' )
or ( tarsystem = 'QA’ and function > 'I' )
or ( tarsystem = 'PE' and function > 'I' )
or ( tarsystem = 'DEV' and function > 'E' ).
delete i_lines where ( tarsystem > 'DEV' and tarsystem > 'SE' and tarsystem > 'QA' and tarsystem > 'PE' ).
sort i_lines.
loop at i_lines.
w_lines = i_lines.
at end of tarsystem.
if ( i_lines-tarsystem = 'DEV' ).
if ( w_lines-trdate > ztrtracking-tranreqreleon ) or
( ( w_lines-trdate = ztrtracking-tranreqreleon ) and
( w_lines-trtime > ztrtracking-tranreqreleat ) ).
ztrtracking-tranreqreleon = w_lines-trdate.
ztrtracking-tranreqreleat = w_lines-trtime.
endif.
endif.
if ( i_lines-tarsystem = 'SE' ).
if ( w_lines-trdate > ztrtracking-seimpdate ) or
( ( w_lines-trdate = ztrtracking-seimpdate ) and
( w_lines-trtime > ztrtracking-seimptime ) ).
ztrtracking-seimpdate = w_lines-trdate.
ztrtracking-seimptime = w_lines-trtime.
endif.
endif.
if ( i_lines-tarsystem = 'QA' ).
if ( w_lines-trdate > ztrtracking-qaimpdate ) or
( ( w_lines-trdate = ztrtracking-qaimpdate ) and
( w_lines-trtime > ztrtracking-qaimptime ) ).
ztrtracking-qaimpdate = w_lines-trdate.
ztrtracking-qaimptime = w_lines-trtime.
endif.
endif.
if ( i_lines-tarsystem = 'PE' ).
if ( w_lines-trdate > ztrtracking-peimpdate ) or
( ( w_lines-trdate > ztrtracking-peimpdate ) and
( w_lines-trtime > ztrtracking-peimptime ) ).
ztrtracking-peimpdate = w_lines-trdate.
ztrtracking-peimptime = w_lines-trtime.
endif.
endif.
endat.
at new tarsystem.
if ( i_lines-tarsystem = 'SE' ).
if ( w_lines-function = 'I' ).
move w_lines-retcode to ztrtracking-seimpstatus.
endif.
endif.
if ( i_lines-tarsystem = 'QA' ).
if ( w_lines-function = 'I' ).
move w_lines-retcode to ztrtracking-qaimpstatus.
endif.
endif.
if ( i_lines-tarsystem = 'PE' ).
if ( w_lines-function = 'I' ).
move w_lines-retcode to ztrtracking-peimpstatus.
endif.
endif.
endat.
endloop.
endform. "update_transport_status
Figure 8 Code to automatically populate display-only fields before saving the data in the database
DATA:w_eventTYPEREFTOcl_htmlb_event,
w_eventidTYPEstring,
w_obj TYPEREFTOobject,
w_obj1TYPEREFTOobject,
w_valueTYPEREFTOcl_htmlb_inputfield,
w_anyvalTYPEstring.
CALLMETHODcl_htmlb_manager=>get_data
EXPORTING
request=runtime->server->request
name='inputfield'
id='i_carrid'
RECEIVING
data=w_obj.
w_value?=w_obj.
w_anyval=w_value->value.
t_sflight-carrid=w_anyval.
CALLMETHODcl_htmlb_manager=>get_data
EXPORTING
request=runtime->server->request
name='inputfield'
id='i_connid'
RECEIVING
data=w_obj.
w_value?=w_obj.
w_anyval=w_value->value.
t_sflight-connid=w_anyval.
CALLMETHODcl_htmlb_manager=>get_data
EXPORTING
request=runtime->server->request
name='inputfield'
id='i_fldate'
RECEIVING
data=w_obj.
w_value?=w_obj.
w_anyval=w_value->value.
CONCATENATEw_anyval+6(4)w_anyval+3(2)w_anyval(2)INTOt_sflight-fldate.
Figure 9Fetch values from the SELECTION_SCREEN.htm page
CALLMETHODcl_htmlb_manager=>get_event
EXPORTING
request=runtime->server->request
RECEIVING
event=w_event.
IFw_event->idEQ'buttonaction'.
navigation->set_parameter(name='i_carrid'
value=t_sflight-carrid).
navigation->set_parameter(name='i_connid'
value=t_sflight-connid).
navigation->set_parameter(name='i_fldate'
value=t_sflight-fldate).
navigation->next_page('NEXT').
ENDIF.
Figure 10 Passvariables to the result page
method if_ex_cts_request_check~check_before_release.
data: wa_ztrtracking type ztrtracking,
bdcdata type standard table of bdcdata initial size 0,
wa_bdcdata type bdcdata.
clear: wa_ztrtracking.
*** Validate whether transport has already been added to the registry ***
select single * from ztrtracking into wa_ztrtracking where tranreqno = request.
check ( sy-subrc > 0 ).
*** Provide a Pass through to selected users, if necessary a for phased rollout ***
check ( sy-uname > 'XXXXX' ).
*** Call SM30 and add transport to the registry ***
message i000(zappldev) with 'Please assign' request 'to Transport Registry in the following step'.
wa_bdcdata-program = 'SAPLZTRTRACKING'.
wa_bdcdata-dynpro = '0001'.
wa_bdcdata-dynbegin = 'X'.
append wa_bdcdata to bdcdata.
clear wa_bdcdata.
wa_bdcdata-fnam = 'BDC_OKCODE'.
wa_bdcdata-fval = '=NEWL'.
append wa_bdcdata to bdcdata.
clear wa_bdcdata.
wa_bdcdata-fnam = 'BDC_CURSOR'.
wa_bdcdata-fval = 'ZTRTRACKING-TRANREQNO(01)'.
append wa_bdcdata to bdcdata.
clear wa_bdcdata.
wa_bdcdata-program = 'SAPLZTRTRACKING'.
wa_bdcdata-dynpro = '0001'.
wa_bdcdata-dynbegin = 'X'.
append wa_bdcdata to bdcdata.
clear wa_bdcdata.
wa_bdcdata-fnam = 'BDC_CURSOR'.
wa_bdcdata-fval = 'ZTRTRACKING-TRANREQNO(01)'.
append wa_bdcdata to bdcdata.
clear wa_bdcdata.
wa_bdcdata-fnam = 'ZTRTRACKING-TRANREQNO(01)'.
wa_bdcdata-fval = request.
append wa_bdcdata to bdcdata.
clear wa_bdcdata.
call transaction 'ZTR02' using bdcdata mode 'E'.
*** Final validation if user did not add transport in the previous step ***
select single * from ztrtracking into wa_ztrtracking where tranreqno = request.
if ( sy-subrc > 0 ).
message e000(zappldev) with 'Release of Transport Request' request 'was cancelled'.
else.
*** Stamp date and time of transport release from DEV ***
update ztrtracking
set tranreqreleon = sy-datum
tranreqreleat = sy-uzeit
where tranreqno = request.
endif.
endmethod.
Figure 13 ABAP code in method CHECK_BEFORE_RELEASE
FUNCTIONZBAPI_DISPLAY_HTML_REQUEST.
*"------
*"*"LocalInterface:
*"IMPORTING
*"VALUE(EMPLOYEE_NO)TYPEBAPIEMPL-PERNR
*"VALUE(TRIP_NO)TYPEBAPITRIP-TRIPNO
*"TABLES
*"RETURNSTRUCTUREBAPIRET2OPTIONAL
*"------
DATA:E_TriP_HtmlTYPESTANDARDTABLEOFPTRV_WEB_TRIPFORM_HTML.
CALLFUNCTION'PTRM_WEB_FORM_HTML_GET'
EXPORTING
i_employeenumber=EMPLOYEE_NO
i_tripnumber=TRIP_NO
*I_PERIODNUMBER='000'
*I_TRIP_COMPONENT=''
*I_TRIP_DATA_SOURCE='DB'
I_DISPLAY_FORM='X'
*I_LANGUAGE=SY-LANGU
*IV_VERSION_ACTIVE=
TABLES
et_tripform_html=E_TriP_Html
et_return=Return
.
Figure 14 Source code
DATA:w_eventTYPEREFTOcl_htmlb_event,
w_eventidTYPEstring,
w_obj TYPEREFTOobject,
w_obj1TYPEREFTOobject,
w_dataTYPEREFTOcl_htmlb_inputfield,
w_anyvalTYPEstring.
CALLMETHODcl_htmlb_manager=>get_data
EXPORTING
request=runtime->server->request
name='inputfield'
id='I_CARRID'
RECEIVING
data=w_obj.
w_data?=w_obj.
w_anyval=w_data->value.
wa_sflight-carrid=w_anyval.
CALLMETHODcl_htmlb_manager=>get_data
EXPORTING
request=runtime->server->request
name='inputfield'
id='I_CONNID'
RECEIVING
data=w_obj.
w_data?=w_obj.
w_anyval=w_data->value.
wa_sflight-connid=w_anyval.
CALLMETHODcl_htmlb_manager=>get_data
EXPORTING
request=runtime->server->request
name='inputfield'
id='I_CONNID'
RECEIVING
data=w_obj.
w_data?=w_obj.
w_anyval=w_data->value.
wa_sflight-connid=w_anyval.
CALLMETHODcl_htmlb_manager=>get_data
EXPORTING
request=runtime->server->request
name='inputfield'
id='I_FLDATE'
RECEIVING
data=w_obj.
w_data?=w_obj.
w_anyval=w_data->value.
CONCATENATEw_anyval+6(4)w_anyval+3(2)w_anyval(2)
INTOwa_sflight-fldate.
SELECTSINGLE*INTOCORRESPONDINGFIELDSOFwa_sflight
FROMsflight
WHEREcarridEQwa_sflight-carridAND
connidEQwa_sflight-connidAND
fldateEQwa_sflight-fldate.
Figure 16Fetch the parameters from the selection screen
REPORTybsp_link_by_bsp
NOSTANDARDPAGEHEADING.
TABLES:sflight.
DATA:t_sflightTYPESTANDARDTABLEOFsflightWITHHEADERLINE.
SELECTION-SCREENBEGINOFBLOCKabcWITHFRAMETITLEtext-001.
SELECT-OPTIONS:s_carridFORsflight-carrid,
s_connidFORsflight-connid.
SELECTION-SCREENENDOFBLOCKabc.
START-OF-SELECTION.
SELECT*INTOCORRESPONDINGFIELDSOFTABLEt_sflight
FROMsflight
WHEREcarridINs_carridAND
connidINs_connid.
LOOPATt_sflight.
WRITE:/t_sflight-carrid,
t_sflight-connid,
t_sflight-fldate,
t_sflight-price.
ENDLOOP.
END-OF-SELECTION.
Figure 17 Source code for YBSP_LINK_BY_BSP
DATA:guidTYPEguid_32,
isolanguTYPEt002-laiso,
l_paramTYPEtext255,
sapworkdirTYPEsdok_chtrd,
l_scrapTYPEtext255,
gui_parTYPEchar80,
file_contentTYPEstring,
page_nameTYPEstring,
parametersTYPEtihttpnvp.
DATA:local_urlTYPEstring,
hostTYPEstring,
portTYPEstring,
protocolTYPEstring.
DATA:cached_responseTYPEREFTOcl_http_response.
CALLFUNCTION'IW_C_GET_SAPWORKDIR'
IMPORTING
sapworkdir=sapworkdir.
Figure 19 Code to set up the work directory in Windows
function z_update_transport_status.
*"------
*"*"Local Interface:
*" TABLES
*" T_REQUESTS STRUCTURE SCTS_IMP
*"------
field-symbols: <fs_requests> type scts_imp.
loop at t_requests assigning <fs_requests>.
case <fs_requests>-tarsystem.
when 'SE'.
update ztrtracking set seimpdate = sy-datum
seimptime = sy-uzeit
seimpstatus = <fs_requests>-retcode
where tranreqno = <fs_requests>-trkorr.
when 'QA'.
update ztrtracking set qaimpdate = sy-datum
qaimptime = sy-uzeit
qaimpstatus = <fs_requests>-retcode
where tranreqno = <fs_requests>-trkorr.
when 'PE'.
update ztrtracking set peimpdate = sy-datum
peimptime = sy-uzeit
peimpstatus = <fs_requests>-retcode
where tranreqno = <fs_requests>-trkorr.
when others.
endcase.
endloop.
endfunction.
Figure 20 ABAP code to add to Z_UPDATE_TRANSPORT_STATUS
FUNCTIONZBAPI_HRTR_DET_AGENTS.
*"------
*"*"LocalInterface:
*"IMPORTING
*"VALUE(PRNR)TYPEPSKEY-PERNR
*"VALUE(TRIP)TYPEBAPITRIP-TRIPNO
*"VALUE(MCCTR)TYPEPA0001-KOSTL
*"EXPORTING
*"VALUE(NROWS)TYPEADACACHE-CA_HIT
*"TABLES
*"RETURNSTRUCTUREBAPIRET2OPTIONAL
*"CAGENTSSTRUCTURESWRAGENT
*"------
Data:BEGINOFIT_CCTROCCURS0,
KOKRSTYPEKOKRS,
KOSTLTYPEKOSTL,
ENDOFIT_CCTR.
DATA:ACTOR_TABTYPESTANDARDTABLEOFSWRAGENTWITHHEADERLINE.
DATA:ITYPEINT4.
*Addmastercostcenterofemployee
SELECTSINGLEKOKRSINTOIT_CCTR-KOKRSFROMPA0001WHEREPERNREQPRNRANDENDDAGESY-DATUM.
IT_CCTR-KOSTL=MCCTR.
APPENDIT_CCTR.
*GetAllcostcnetersfromtravelrequestexceptmastercostcenter
SELECTFTPT_REQ_ACCOUNT~KOKRSFTPT_REQ_ACCOUNT~KOSTLINTOCORRESPONDINGFIELDSOFIT_CCTR
FROMFTPT_REQ_ACCOUNTWHERE
FTPT_REQ_ACCOUNT~PERNREQPRNRANDFTPT_REQ_ACCOUNT~REINREQTRIP
ANDFTPT_REQ_ACCOUNT~KOSTLNEMCCTR.
APPENDIT_CCTR.
ENDSELECT.
LOOPATIT_CCTR.
I=SY-TABIX.
CALLFUNCTION'RH_COST_CENTER_RESPONSIBLE'
EXPORTING
act_kokrs=IT_CCTR-KOKRS
act_cost_center=IT_CCTR-KOSTL
*SEARCH_DATE=SY-DATUM
*REFRESH_ACTOR_TAB='X'
tables
actor_tab=Actor_TAB
EXCEPTIONS
NOBODY_FOUND=1
OTHERS=2
.
IFACTOR_TABISNOTINITIAL.
CAGENTS-OTYPE=ACTOR_TAB-OTYPE.
CAGENTS-OBJID=ACTOR_TAB-OBJID.
APPENDCAGENTS.
ENDIF.
ENDLOOP.
DESCRIBETABLECAGENTSLINESNROWS.
ENDFUNCTION.
Figure 21 Source code
FUNCTIONZBAPI_HRTR_GET_AGENT.
*"------
*"*"LocalInterface:
*"IMPORTING
*"VALUE(IROW)TYPEADACACHE-CA_HIT
*"EXPORTING
*"VALUE(CAGENT)TYPESWRAGENT
*"TABLES
*"RETURNSTRUCTUREBAPIRET2
*"CAGENTSSTRUCTURESWRAGENT
*"------
IROW=IROW+1.
READTABLECAGENTSINDEXIROW.
CAGENT-OTYPE=CAGENTS-OTYPE.
CAGENT-OBJID=CAGENTS-OBJID.
ENDFUNCTION.
Figure 22 Source code
CALLMETHODcl_http_ext_webapp=>create_url_for_bsp_application
EXPORTING
*bsp_protocol=
*bsp_service=
bsp_application=runtime->application_url
bsp_start_page=page_name
bsp_start_parameters=parameters
IMPORTING
local_url=local_url
abs_url=display_url
host=host
port=port
protocol=protocol.
cl_http_server=>server_cache_upload(url=display_url
response=cached_response).
Figure 23 Enter the code to create the shortcut URL
CONCATENATE'
'/prtroot/pcd!3a!2f!2fportal_content'
'!2fcom.sap.portal.migrated!2fep_5.0!2ftemplates!'
'2fcom.sap.portal.appintegrator.sap.bwc.Transaction?'
'System=SYSTEMALIASCLIENT'
'&SAP_TCode=KS03'
'&SAP_GuiType=WinGui'
'&SAP_Dynp_Params=CSKSZ-KOSTL%3D0002326700'
'&SAP_Dynp_AutoStart=true'INTOdisplay_portal.
Figure 25 Portal URL