BSP & Webform
Hi,
I need to integrate web form into my BSP application.
Everything is ok, if I want to just display web form as the ending point of the application.
Now I want to add Back button to webform page, but cant find a way how to do it.
I use MVC architecture with 1 main controller and controller for webform, which is call from bsp with back button via <bsp:call> tag.
The result is that the the form is displayed correctly but without button.
Can you help me?
thanks
Juraj
Hi Juraj,
Not sure, but you can try showing the webform as a iframe in BSP page instead of showing it directly. If you can do that, you can add button to the BSP page in which you are going to display your webform.
Let me know if this trick works
Best regards,
Chinnu
Similar Messages
-
Download of a webform within a BSP application
Hi SDN members,
I wrote a ESS BSP application with a 3 step wizard. Within the first step the user can enter some data in some form fields.
In the second step a webform (SMARTFORM) with the form data is displayed and in the third step the user can save the document.
Is there any possibility to save the web form as a document when the user saves the document. It would be sufficient to save the webform to the application server and get back a link.
Later on the webform should be linked as a kind of attachment. This means when the user calls again the saved document a link should be available where the form can be called.
The webform is called in the following way within my BSP:
Call the generated function module
call function l_function_module_name
exporting
archive_index =
archive_parameters =
control_parameters = ls_control_parameters
mail_appl_obj =
mail_recipient =
mail_sender =
output_options = ls_output_options
user_settings = space
customer = lt_customer
bookings = lt_bookings
connections = lt_connections
importing
document_output_info =
job_output_info = ls_output_data
job_output_options =
exceptions formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
others = 5.
if sy-subrc <> 0.
error handling
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
ls_xmloutput = ls_output_data-xmloutput.
lt_html_raw = ls_xmloutput-trfresult-content[].
Fill HTTP request
response->set_header_field( name = 'content-type'
value = 'text/html; charset=UTF-8').
SAP Smart Forms returns XML data island in raw data format.
method 'set_data' of the response object needs the output
in XSTRING. The next loop convertes the raw table into xstring.
loop at lt_html_raw into l_xstring.
concatenate l_html_xstring l_xstring into l_html_xstring
in byte mode.
endloop.
l_xlength = xstrlen( l_html_xstring ).
response->set_data( data = l_html_xstring
length = l_xlength ).
Any ideas how to save the form in any way?
Best regards
ThomasHi,
thanks for your answer!
Let me explain more in detail what I want to do.
I am calling my BSP application from our SRM system. When the user saves the data which were entered in my BSP application, the data are transferred via OCI (Open Catalog Interface). This is already working.
The only thing which is missing is the transfer of my webform to the SRM via OCI.
OCI is waiting for a link to my form. Only then, the SRM can attach a document. See OCI description
http://www.sdn.sap.com/irj/sdn?rid=/webcontent/uuid/ff03d072-0501-0010-aa88-8018506a2ebe">oci [original link is broken] [original link is broken]
Therefore I have to download the form to get a link which can be written to the OCI interface. This could also be a temporary link. -
Download the PDF Form as a attachment when button click in BSP application
Hi All,
I have scenario, when button click in the BSP application PDF Form want to download in the IE (like one window open with Open,Save and cancel button).
I have written this code:
data: pdf type fpformoutput-pdf.
< Logic for populate value to pdf field ....
.>
response->set_header_field(
name = 'cache-control'
value = 'max-age=0' ).
response->set_header_field(
name = 'content-disposition'
value = 'attachment; filename=webforms.pdf' ).
response->set_data( data = pdf ).
Once button is clicked pop up is opened and closed automatically because of browser or adobe reader issue.
How can I resolve this problem ?
In the IE i need to change any settings ?
IE version = 7.0
Adobe reader = 9.0
I have tried in the same code with IE = 6.0 and adobe reader 8.1.2 its getting download the pdf form working fine.
The same think i want in IE 7.0 and adobe reader 9.0, what needs to be done ?
Regards,
Boopathi MHello Ravi,
Best would be to bind the dataSource of the InteractiveForm ui element to the parent node containing the table's data. Then specify a name of a template to be created in the templateSource and hit <enter>. Some popups later, the system will have created a template from the structure of the context. All you need to do now is to drag&drop the data structure inside the template designer to the template itself. This will result in a table. Save, activate and return the Web Dynpro view. Don't forget to unbind the pdfSource and enjoy.
Best regards,
Thomas -
Download PDF file from Application Server in BSP
Hello,
We have a requirement on which we want to download a PDF file stored in Application server using BSP application. I have used function module ARCHIVFILE_SERVER_TO_CLIENT but this FM will help only if i want to download file from GUI it won't work in BSP application.
Further i have used class CL_BSP_UTILITY and download method to download file from application server but it is not working in desired manner.
I am attaching my code for your reference:
DATA: BUTTON_EVENT TYPE REF TO CL_HTMLB_EVENT_BUTTON ,
EVENT TYPE REF TO IF_HTMLB_DATA.
DATA: LS_HOURS LIKE LINE OF GT_HOURS.
DATA STR TYPE STRING.
DATA: OUTPUT TYPE STRING ,
L_XSTRING TYPE XSTRING ,
APP_TYPE TYPE STRING.
EVENT = CL_HTMLB_MANAGER=>GET_EVENT( REQUEST ).
DATA PHY_NAME_OUT TYPE SAPB-SAPPFAD.
IF EVENT IS NOT INITIAL AND EVENT->EVENT_NAME = HTMLB_EVENTS=>BUTTON .
BUTTON_EVENT ?= EVENT .
CASE EVENT->EVENT_SERVER_NAME.
WHEN 'test' .
IF GT_HOURS IS NOT INITIAL.
PHY_NAME_OUT = '/usr/sap/put/form16//01000200_2007.PDF'.
OPEN DATASET PHY_NAME_OUT FOR INPUT IN TEXT MODE ENCODING DEFAULT.
IF SY-SUBRC IS INITIAL.
DO.
READ DATASET PHY_NAME_OUT INTO STR.
IF SY-SUBRC IS INITIAL.
CONCATENATE
OUTPUT
str
cl_abap_char_utilities=>cr_lf
INTO output SEPARATED BY space. "cl_abap_char_utilities=>horizontal_tab
ELSE.
EXIT.
ENDIF.
ENDDO.
ENDIF.
*LOOP AT gt_hours INTO ls_hours.
*CONCATENATE
*OUTPUT
*ls_hours-hour
*cl_abap_char_utilities=>cr_lf
*INTO output SEPARATED BY space. "cl_abap_char_utilities=>horizontal_tab
*ENDLOOP.
APP_TYPE = 'APPLICATION/PDF;charset=utf-16le'.
CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
EXPORTING
TEXT = OUTPUT
MIMETYPE = 'APPLICATION/PDF;charset=utf-16le'
IMPORTING
BUFFER = L_XSTRING.
CONCATENATE CL_ABAP_CHAR_UTILITIES=>BYTE_ORDER_MARK_LITTLE
L_XSTRING
INTO L_XSTRING IN BYTE MODE.
CALL METHOD CL_BSP_UTILITY=>DOWNLOAD
EXPORTING
OBJECT_S = L_XSTRING
CONTENT_TYPE = APP_TYPE
CONTENT_DISPOSITION = 'attachment;filename=webforms.pdf'
RESPONSE = _M_RESPONSE
NAVIGATION = NAVIGATION.
ENDIF.
ENDCASE.
ENDIF.
From this code i am able to download PDF file but it is not opening in local machine.
If any other way to download file then please suggest.
waiting for ur reply.
Regards,
GaganHi,
you do the file reading wrong:
have a look at:
Local declarations.
data:
components type stringtab,
component type string,
path type text255,
file type text255,
line_length type i,
filecontent_binary type sdokcntbin,
rows type sytabix,
content type sdokcntbin,
exception type ref to cx_sy_file_access_error,
exception_tmf type ref to cx_sy_too_many_files ,
block_size type i value 1022,
length type i.
field-symbols:
<hex_container> type x.
constants:
c_dms_blk_size type i value 2550.
clear file_size.
try.
open dataset file_name for input in binary mode message message.
catch cx_sy_file_open into exception.
case exception->textid.
when '4182174D03030063000000000A1551B1'. raise access_error.
when '41825AD355C3005E000000000A1551B1'. raise open_error.
when '47E8B03AECE5BA07E10000000A114829'. raise already_open.
when others.
endcase.
catch cx_sy_file_authority into exception.
case exception->textid.
when '4182174D03030063000000000A1551B1'. raise access_error.
when 'A70BB8396F051547E10000000A11447B'. raise authority_error.
when others.
endcase.
catch cx_sy_too_many_files into exception_tmf.
case exception_tmf->textid.
when '8708B73915F6B645E10000000A11447B'. raise too_many_files.
when others.
endcase.
endtry.
do.
try.
read dataset file_name into filecontent_binary-line.
if sy-subrc <> 0.
add line_length to file_size.
append filecontent_binary to file_content_binary.
exit.
else.
add line_length to file_size.
append filecontent_binary to file_content_binary.
endif.
catch cx_sy_file_open_mode into exception.
case exception->textid.
when '9207B73915F6B645E10000000A11447B'. raise cx_sy_file_open_mode.
when '9807B73915F6B645E10000000A11447B'. raise read_only.
when '9E07B73915F6B645E10000000A11447B'. raise not_open.
when '409D273A2D824360E10000000A11447B'. raise incompatible_mode.
when others.
endcase.
endtry.
enddo.
try.
close dataset file_name.
catch cx_sy_file_close into exception.
case exception->textid.
when '4182174D03030063000000000A1551B1'. raise access_error.
when 'C10BB8396F051547E10000000A11447B'. raise close_error.
when others.
endcase.
catch cx_sy_file_access_error into exception.
case exception->textid.
when '4182174D03030063000000000A1551B1'. raise access_error.
when others.
endcase.
endtry.
Get file size.
split file_name at '/' into table components.
describe table components lines sy-tfill.
read table components into component index sy-tfill.
path = file_name.
replace component in path with ''.
file = component.
call function '/EUH/MMS_GET_FILE_SIZE'
exporting
dir_name = path
file_name = file
importing
file_size = file_size.
and function /euh/mms_get_file_size.
""Local Interface:
*" IMPORTING
*" VALUE(DIR_NAME) TYPE TEXT255
*" VALUE(FILE_NAME) TYPE TEXT255
*" EXPORTING
*" VALUE(FILE_SIZE) TYPE SDOK_FSIZE
*" EXCEPTIONS
*" NO_AUTHORITY
*" ACTIVITY_UNKNOWN
*" NOT_A_DIRECTORY
*" NO_MEDIA_IN_DRIVE
*" TOO_MANY_ERRORS
*" TOO_MANY_FILES
*" BRACKET_ERROR_IN_FILENAME
*" NO_SUCH_PARAMETER
types: begin of files,
line like ocs_file,
end of files.
data: file type files,
f_subrc like sy-subrc value 0,
errno(3) type c,
errmsg(40) type c,
pos type i,
len type i,
parameter(120) type c,
help1(120) type c,
help2(120) type c,
error_counter type i.
data:
dir_list like ocs_file occurs 0 with header line.
CASE sy-subrc.
WHEN 1. f_subrc = 64.
WHEN 2. f_subrc = 65.
WHEN 0.
search dir_name for 'SY-HOST'. "Is SY-HOST used in directory name?
if sy-subrc = 0.
pos = sy-fdpos + 7.
move dir_name(sy-fdpos) to help1.
move dir_name+pos to help2.
concatenate help1 sy-host help2 into dir_name.
endif.
do 12 times. " To avoid endless loop
if dir_name cs '$('. " Replace parameter by their value
pos = sy-fdpos + 2.
if dir_name cs ')'.
len = sy-fdpos - pos.
if len le 0.
f_subrc = 4. exit.
else.
parameter = dir_name+pos(len).
call 'C_SAPGPARAM' id 'NAME' field parameter
id 'VALUE' field parameter.
if sy-subrc = 0.
len = pos + len + 1.
pos = pos - 2.
if pos > 0.
move dir_name(pos) to help1.
else.
help1 = ''.
endif.
pos = strlen( dir_name ).
if pos > len.
move dir_name+len to help2.
else.
help2 = ''.
endif.
concatenate help1 parameter help2 into dir_name.
else.
f_subrc = 8. exit.
endif.
endif.
else.
exit.
endif.
else.
exit.
endif.
enddo.
shift dir_name right deleting trailing '/\ '.
shift dir_name left deleting leading space.
call 'C_DIR_READ_FINISH' " this is from RSWATCH0
id 'ERRNO' field errno
id 'ERRMSG' field errmsg.
call 'C_DIR_READ_START'
id 'DIR' field dir_name
id 'FILE' field file_name
id 'ERRNO' field errno
id 'ERRMSG' field errmsg.
case sy-subrc.
when 1.
case errno.
when 2 or 20. f_subrc = f_subrc + 66.
when ' '. f_subrc = f_subrc + 67.
endcase.
when 0.
clear error_counter.
do.
clear file.
clear dir_list.
call 'C_DIR_READ_NEXT'
id 'TYPE' field file-line-type
id 'NAME' field file-line-name
id 'LEN' field file-line-len
id 'OWNER' field file-line-owner
id 'MTIME' field file-line-mtime
id 'MODE' field file-line-acc_mode
id 'ERRNO' field errno
id 'ERRMSG' field errmsg. "sy-subrc = 3 is e.g. if return
if sy-subrc = 0 or sy-subrc = 3."data do not fit into variables
perform p6_to_date_time_tz(rstr0400) using
file-line-mtime
file-line-mod_time
file-line-mod_date.
file_size = file-line-len.
dir_list = file-line.
append dir_list.
elseif sy-subrc = 1. " nothing (more) found
exit.
else.
if error_counter > 50.
call 'C_DIR_READ_FINISH'
id 'ERRNO' field errno
id 'ERRMSG' field errmsg.
pos = f_subrc mod 2.
if pos = 0. f_subrc = f_subrc + 1. endif.
exit.
endif.
add 1 to error_counter.
endif.
if sy-index > 1000.
pos = f_subrc mod 4.
if pos = 0. f_subrc = f_subrc + 2. endif.
exit.
endif.
enddo.
call 'C_DIR_READ_FINISH'
id 'ERRNO' field errno
id 'ERRMSG' field errmsg.
if sy-opsys(3) = 'Win' and not ( file_name cs '*' ).
describe table dir_list lines len.
if len = 0.
help1 = file_name.
translate help1 to upper case.
translate help1 using
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.
call 'C_DIR_READ_START'
id 'DIR' field dir_name
id 'FILE' field help1.
if sy-subrc = 0.
clear error_counter.
do.
clear file.
clear dir_list.
call 'C_DIR_READ_NEXT'
id 'TYPE' field file-line-type
id 'NAME' field file-line-name
id 'LEN' field file-line-len
id 'OWNER' field file-line-owner
id 'MTIME' field file-line-mtime
id 'MODE' field file-line-acc_mode
id 'ERRNO' field errno
id 'ERRMSG' field errmsg.
if sy-subrc = 0 or sy-subrc = 3.
help2 = file_name.
translate help2 to upper case.
help1 = file-line-name.
translate help1 to upper case.
if help1 = help2.
perform p6_to_date_time_tz(rstr0400) using
file-line-mtime
file-line-mod_time
file-line-mod_date.
dir_list = file-line.
append dir_list.
endif.
elseif sy-subrc = 1.
exit.
else.
if error_counter > 50.
call 'C_DIR_READ_FINISH'
id 'ERRNO' field errno
id 'ERRMSG' field errmsg.
pos = f_subrc mod 2.
if pos = 0. f_subrc = f_subrc + 1. endif.
exit.
endif.
add 1 to error_counter.
endif.
if sy-index > 1000.
pos = f_subrc mod 4.
if pos = 0. f_subrc = f_subrc + 2. endif.
exit.
endif.
enddo.
call 'C_DIR_READ_FINISH'
id 'ERRNO' field errno
id 'ERRMSG' field errmsg.
endif.
endif.
endif.
endcase.
ENDCASE.
CASE f_subrc.
WHEN 1 OR 3. RAISE too_many_errors.
WHEN 2. RAISE too_many_files.
WHEN 4 OR 5 OR 6 OR 7 OR 70 OR 71.
RAISE bracket_error_in_filename.
WHEN 8 OR 9 OR 10 OR 11 OR 74 OR 75.
RAISE no_such_parameter.
WHEN 64. RAISE no_authority.
WHEN 65. RAISE activity_unknown.
WHEN 66. RAISE not_a_directory.
WHEN 67. RAISE no_media_in_drive.
ENDCASE.
endfunction.
Now you will be able to get the filesize and the file in SDOK format sdokbin.
Okay.
You have to build an request and push the content to the user like:
call method server->response->set_header_field( name = 'Content-Type' value = value ).
describe field file_content_binary-line length line_length in byte mode.
bytes_rest = file-size.
loop at file_content_binaries assigning <file_content_binary>.
move <file_content_binary>-line to data.
if bytes_rest <= 0. "mismatch between line values and size
exit.
endif.
if bytes_rest >= line_length.
call method server->response->append_data( data = data
length = line_length ).
else.
call method server->response->append_data( data = data
length = bytes_rest ).
endif.
bytes_rest = bytes_rest - line_length.
endloop.
This will work.
You can set the header fields like you want. Have also a look at sicf node contentserver
and its handler: CL_HTTP_EXT_CSIF -
Download out of BSP Application
Hi @ all,
I built a BSP Application and like to up- and download some files. Upload is no problem, because If got a BSP element for that.
But how to handle the downloads, because in my opinion all GUI* methods should not work...
Regards
MattHi Matthias,
I think there is no direct method to download.
We can write a small code based on the requirement
What type of the file you need to down load?
if it is .pdf file you can use the following code
Generally ( Smart form )
If it is .xls or .txt file let me know
You can crate a method and
Import Parameters are :
NAVIGATION TYPE REF TO IF_BSP_NAVIGATION
RESPONSE TYPE REF TO IF_BSP_RESPONSE
Code is
data: l_pdf_xstring type xstring,
lt_lines type table of tline,
ls_line type tline,
l_devtype type rspoptype,
l_pdf_len type i.
parameters for generated function module
data: l_function_module_name type rs38l_fnam,
ls_output_options type ssfcompop,
ls_control_parameters type ssfctrlop,
l_function_name type rs38l_fnam,
ls_output_data type ssfcrescl,
form_name type tdsfname.
generated result: HTML with embedded CSS
data: ls_xmloutput type ssfxmlout,
lt_html_raw type tsfixml.
data: l_xstring type xstring, "needed for HTTP response
l_xlength type i,
l_html_xstring type xstring.
form_name = 'ZINVOICE'.
get name of generated function module
call function 'SSF_FUNCTION_MODULE_NAME'
exporting
formname = form_name
importing
fm_name = l_function_module_name
exceptions
no_form = 1
no_function_module = 2
others = 3.
if sy-subrc <> 0.
error handling
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
exit.
endif.
activate XSF Output Mode
get device type from language
call function 'SSF_GET_DEVICE_TYPE'
exporting
i_language = 'E'
importing
e_devtype = l_devtype
exceptions
no_language = 1
language_not_installed = 2
no_devtype_found = 3
system_error = 4
others = 5.
if sy-subrc <> 0.
error handling
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
set device type in output options
ls_output_options-tdprinter = l_devtype.
ls_control_parameters-langu = 'E'.
ls_control_parameters-no_dialog = 'X'.
ls_control_parameters-getotf = 'X'.
CALL FUNCTION l_function_module_name
EXPORTING
CONTROL_PARAMETERS = ls_control_parameters
OUTPUT_OPTIONS = ls_output_options
USER_SETTINGS = space
INVOICE_NO = me->I_INVOICE
FROM_DATE = me->ST_PDF_HEADER-BILL_FROM
TO_DATE = me->ST_PDF_HEADER-BILL_TO
INVOICE_COVER = me->ST_PDF_HEADER
IMPORTING
JOB_OUTPUT_INFO = ls_output_data
TABLES
INVOICE_DETAILS = me->IT_PDF_ITEMS
EXCEPTIONS
FORMATTING_ERROR = 1
INTERNAL_ERROR = 2
SEND_ERROR = 3
USER_CANCELED = 4
OTHERS = 5
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
call function 'CONVERT_OTF'
exporting
format = 'PDF'
importing
bin_filesize = l_pdf_len
bin_file = l_pdf_xstring " binary file
tables
otf = ls_output_data-otfdata
lines = lt_lines
exceptions
err_max_linewidth = 1
err_format = 2
err_conv_not_possible = 3
err_bad_otf = 4
others = 5.
if sy-subrc <> 0.
error handling
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
Fill HTTP request
response->set_header_field( name = 'content-type'
value = 'application/pdf' ).
response->delete_header_field(
name = if_http_header_fields=>cache_control ).
response->delete_header_field(
name = if_http_header_fields=>expires ).
response->delete_header_field(
name = if_http_header_fields=>pragma ).
some Browsers have caching problems when loading PDF format
response->set_header_field(
name = 'content-disposition'
value = 'max-age=0' ).
start PDF viewer either in the Browser or as a separate window
response->set_header_field(
name = 'content-disposition'
value = 'attachment; filename=webforms.pdf' ).
finally display PDF format in Browser
l_pdf_len = xstrlen( l_pdf_xstring ).
response->set_data( data = l_pdf_xstring
length = l_pdf_len ).
navigation->response_complete( ). -
Workbooks not opening from a Business Server Page (BSP)
Hello Experts,
I need help with opening workbooks from a Business Server Page (BSP). The problem is that the workbook is not opening, but instead a blank Excel page opens. I am using Microsoft Excel 2003 and on BI 7.0 version. Here is the code: Could you please look at the below code and advice me. This does not have any selection screen. Also, i have another workbook with a selection screen and I want to pass values to these selection variables. Is that possible? In the below code, my suspicion is either with 'application/vnd.ms-excel' or moving content in to X string. Please give your suggestion. Thanks so much.
Layout
<%@extension name="htmlb" prefix="htmlb"%>
<htmlb:content design="design2002+design2003" >
<htmlb:page title="Web Workbook LaunchPad" >
</htmlb:page>
</htmlb:content>
In page attributes:
file_content TYPE STRING
FILE_XCONTENT TYPE XSTRING
WA_WBDATA TYPE RSRWBSTORE
WBDATA TYPE RSR_RPEC_BIN_FILE
WBID TYPE RSSGUID25
On Initialization.
refresh wbdata .
clear: file_content .
data: temp_string type string .
select * from rsrwbstore into table wbdata
where workbookid = 'VXXGCMF53EVQAS7U8UA80OXN7'.
if not wbdata[] is initial .
loop at wbdata into wa_wbdata.
clear temp_string .
temp_string = wa_wbdata-clustd .
concatenate file_content temp_string into file_content .
endloop.
clear file_xcontent .
file_xcontent = file_content .
response->set_header_field( name = 'content-type'
value = 'application/vnd.ms-excel' ).
some Browsers have caching problems when loading Excel format
response->delete_header_field( name =
if_http_header_fields=>cache_control ).
response->delete_header_field( name =
if_http_header_fields=>expires ).
response->delete_header_field( name =
if_http_header_fields=>pragma ).
*start Excel viewer either in the Browser or as a separate window
response->set_header_field(
name = 'content-disposition'
value = 'attachment;filename=webforms.xls' ).
response->set_cdata( data = file_content ).
finally display Excel format in Browser
data: l_len type i.
l_len = xstrlen( file_xcontent ).
response->set_data( data = file_xcontent
length = l_len ).
navigation->response_complete( ).
endif .Hi Friend,
have a loook at the below specified threads.Hope it will help you.
[link1|download to excel in diffrent window;
[link2|Re: Exporting data from table to Excel in a particular format using BSP.]
[link3|download to excel in diffrent window]
With Regards,
SHARMILA BRINDHA.M -
How to display Adobe form build in SFP in BSP?
Hi ,
i have built an adobe form (not interactive one) using sfp, and it works fine in SAP GUI, by calling the FM behind.
now i want to display it on our sap portal, could you please tell me what's the easiest way to do that? how about in BSP?
Thanks and best regards.
JunHi
I hope you ppl are able convert the pdf document into xstring. This sample code here will help you tranfer any pdf document, and will display in web browser.
Sample from BSP application sf_webform_04
which display smartfrom into pdf format
Fill HTTP request
response->set_header_field( name = 'content-type'
value = 'application/pdf' ).
response->delete_header_field( name = 'pragma' ).
response->delete_header_field( name = 'expires' ).
response->delete_header_field( name = 'cache-control' ).
some Browsers have caching problems when loading PDF format
response->set_header_field(
name = 'cache-control'
value = 'max-age=0' ).
start PDF viewer either in the Browser or as a separate window
if pdf_in_browser is initial.
response->set_header_field(
name = 'content-disposition'
value = 'attachment; filename=webforms.pdf' ).
endif.
finally display PDF format in Browser
l_pdf_len = xstrlen( l_pdf_xstring ). <= pass ur binary data here
response->set_data( data = l_pdf_xstring
length = l_pdf_len ).
navigation->response_complete( ). -
Issues with WebForm performance
Hi,
We had migrated a new application from UAT to PROD and we encounter webform performance issues with the following actions..
After login, the first form you open it is
always slow. After this you can switch from one form to another without a
delay.
Then once you change any data – the next time
you access a form it gets delayed.
The point to be noted is, it doesnt have any performance issues in the UAT environment and the configuration settings,essbase cache settings are all the same. We did try to move the EPM system to a new server to see if this is a hardware issue but no luck, the performance issues still exist. The consumption of the CPU/memory has been checked and it is proved that the form opening delay has nothing to do with lack of memory.
The JVM head settings is set up at 4GB which is infact higher than that of the UAT environment(2GB).
runs on Windows server2008,11.1.2.1.600 EPM serve, has planning,reporting,foundation on one server (32GB ram) and essbase on another server (32GB ram). Any help is appreciated.
Please find attached the planning logs below and there is nothing mentioned in the hyperionplanning error logs.-----------------------------------------------------------------------------------------------------------------------------------------------------------------
<Nov 5, 2013 8:05:43 PM CET> <Info> <Security> <BEA-090905> <Disabling CryptoJ JCE Provider self-integrity check for better startup performance. To enable this check, specify -Dweblogic.security.allowCryptoJDefaultJCEVerification=true>
<Nov 5, 2013 8:05:43 PM CET> <Info> <Security> <BEA-090906> <Changing the default Random Number Generator in RSA CryptoJ from ECDRBG to FIPS186PRNG. To disable this change, specify -Dweblogic.security.allowCryptoJDefaultPRNG=true>
<Nov 5, 2013 8:05:44 PM CET> <Info> <WebLogicServer> <BEA-000377> <Starting WebLogic Server with Oracle JRockit(R) Version R28.0.2-11-135406-1.6.0_20-20100624-2119-windows-x86_64 from Oracle Corporation>
<Nov 5, 2013 8:05:46 PM CET> <Info> <Management> <BEA-141107> <Version: WebLogic Server 10.3.4.0 Fri Dec 17 20:47:33 PST 2010 1384255 >
<Nov 5, 2013 8:05:48 PM CET> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to STARTING>
<Nov 5, 2013 8:05:48 PM CET> <Info> <WorkManager> <BEA-002900> <Initializing self-tuning thread pool>
<Nov 5, 2013 8:05:48 PM CET> <Notice> <Log Management> <BEA-170019> <The server log file C:\Oracle\Middleware\user_projects\domains\EPMSystem\servers\Planning0\logs\Planning0.log is opened. All server side log events will be written to this file.>
<Nov 5, 2013 8:06:22 PM CET> <Notice> <Security> <BEA-090082> <Security initializing using security realm myrealm.>
<Nov 5, 2013 8:06:28 PM CET> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to STANDBY>
<Nov 5, 2013 8:06:28 PM CET> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to STARTING>
Calling getConnection()
return weblogic.management.jmx.mbeanserver.WLSMBeanServer@327b36fb
Calling getDomainConfiguration()
Calling getConnection()
return weblogic.management.jmx.mbeanserver.WLSMBeanServer@327b36fb
Calling getRuntimeService()
Calling getConnection()
return weblogic.management.jmx.mbeanserver.WLSMBeanServer@327b36fb
return com.bea:Name=RuntimeService,Type=weblogic.management.mbeanservers.runtime.RuntimeServiceMBean
return com.bea:Name=EPMSystem,Type=Domain
Calling getConnection()
return weblogic.management.jmx.mbeanserver.WLSMBeanServer@327b36fb
Domain location is 'C:\Oracle\Middleware\user_projects\domains\EPMSystem'
Calling getRuntimeService()
return com.bea:Name=RuntimeService,Type=weblogic.management.mbeanservers.runtime.RuntimeServiceMBean
Calling getConnection()
return weblogic.management.jmx.mbeanserver.WLSMBeanServer@327b36fb
Calling getConnection()
return weblogic.management.jmx.mbeanserver.WLSMBeanServer@327b36fb
Calling getConnection()
return weblogic.management.jmx.mbeanserver.WLSMBeanServer@327b36fb
Calling getConnection()
return weblogic.management.jmx.mbeanserver.WLSMBeanServer@327b36fb
Checking C:\Oracle\Middleware\user_projects\domains\EPMSystem\servers\Planning0\registry_update.xml file
EPM_ORACLE_HOME: C:\Oracle\Middleware\EPMSystem11R1
Template for PLANNING#11.1.2.0: C:\Oracle\Middleware\EPMSystem11R1\common\templates\applications\epm_planning_11.1.2.1.jar
Dependencies for C:\Oracle\Middleware\EPMSystem11R1\common\templates\applications\epm_planning_11.1.2.1.jar: []
BPMUI shared webapp not referenced from PLANNING#11.1.2.0
Application name: PLANNING#11.1.2.0
Application source: HyperionPlanning.ear
Server name: Planning0
Server port: 8300
Server SSL port: 8343
Application context: HyperionPlanning
Registry product type: PLANNING_PRODUCT
Registry physical web application type: PLANNING_WEBAPP
weblogic.Name property is 'Planning0', seems to be WebLogic mode
registry.isRegistryDatabaseCreated()true
Registry was initialized sucessfully
Executing pre custom update for PLANNING#11.1.2.0
EPM_ORACLE_INSTANCE: C:\Oracle\Middleware\user_projects\epmsystem1
Physical Web App found
Web app already linked to some application server: false
The registry was not modifyed because it already containse all sturctures
Web app is already linked to the logical web app
No needs to run custom updater for PLANNING#11.1.2.0
loggingUpdatePLANNING.block file exist or the system is running in the Fusion mode, skipping logging.xml configuration
Planning locale: en_US
<Nov 5, 2013 8:06:39 PM CET> <Notice> <Log Management> <BEA-170027> <The Server has established connection with the Domain level Diagnostic Service successfully.>
<Nov 5, 2013 8:06:39 PM CET> <Notice> <Cluster> <BEA-000197> <Listening for announcements from cluster using unicast cluster messaging>
<Nov 5, 2013 8:06:39 PM CET> <Notice> <Cluster> <BEA-000133> <Waiting to synchronize with other running members of Planning.>
<Nov 5, 2013 8:07:09 PM CET> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to ADMIN>
<Nov 5, 2013 8:07:09 PM CET> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RESUMING>
<Nov 5, 2013 8:07:09 PM CET> <Notice> <Cluster> <BEA-000162> <Starting "async" replication service with remote cluster address "null">
<Nov 5, 2013 8:07:10 PM CET> <Notice> <Security> <BEA-090171> <Loading the identity certificate and private key stored under the alias DemoIdentity from the jks keystore file C:\Oracle\MIDDLE~1\WLSERV~1.3\server\lib\DemoIdentity.jks.>
<Nov 5, 2013 8:07:10 PM CET> <Notice> <Security> <BEA-090169> <Loading trusted certificates from the jks keystore file C:\Oracle\MIDDLE~1\WLSERV~1.3\server\lib\DemoTrust.jks.>
<Nov 5, 2013 8:07:10 PM CET> <Notice> <Security> <BEA-090169> <Loading trusted certificates from the jks keystore file C:\Oracle\Middleware\jrockit_160_20\jre\lib\security\cacerts.>
<Nov 5, 2013 8:07:10 PM CET> <Alert> <Security> <BEA-090152> <Demo trusted CA certificate is being used in production mode: [
Version: V3
Subject: CN=CACERT, OU=FOR TESTING ONLY, O=MyOrganization, L=MyTown, ST=MyState, C=US
Signature Algorithm: MD5withRSA, OID = 1.2.840.113549.1.1.4
Key: Sun RSA public key, 512 bits
modulus: 9550192877869244258838480703390456015046425375252278279190673063544122510925482179963329236052146047356415957587628011282484772458983977898996276815440753
public exponent: 65537
Validity: [From: Thu Mar 21 21:12:27 CET 2002,
To: Tue Mar 22 21:12:27 CET 2022]
Issuer: CN=CACERT, OU=FOR TESTING ONLY, O=MyOrganization, L=MyTown, ST=MyState, C=US
SerialNumber: [ 33f10648 fcde0deb 4199921f d64537f4]
Certificate Extensions: 1
[1]: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
Key_CertSign
Algorithm: [MD5withRSA]
Signature:
0000: 9D 26 4C 29 C8 91 C3 A7 06 C3 24 6F AE B4 F8 82 .&L)......$o....
0010: 80 4D AA CB 7C 79 46 84 81 C4 66 95 F4 1E D8 C4 .M...yF...f.....
0020: E9 B7 D9 7C E2 23 33 A4 B7 21 E0 AA 54 2B 4A FF .....#3..!..T+J.
0030: CB 21 20 88 81 21 DB AC 90 54 D8 7D 79 63 23 3C .! ..!...T..yc#<
] The system is vulnerable to security attacks, since it trusts certificates signed by the demo trusted CA.>
<Nov 5, 2013 8:07:10 PM CET> <Notice> <Security> <BEA-090898> <Ignoring the trusted CA certificate "CN=thawte Primary Root CA - G3,OU=(c) 2008 thawte\, Inc. - For authorized use only,OU=Certification Services Division,O=thawte\, Inc.,C=US". The loading of the trusted certificate list raised a certificate parsing exception PKIX: Unsupported OID in the AlgorithmIdentifier object: 1.2.840.113549.1.1.11.>
<Nov 5, 2013 8:07:10 PM CET> <Notice> <Security> <BEA-090898> <Ignoring the trusted CA certificate "CN=T-TeleSec GlobalRoot Class 3,OU=T-Systems Trust Center,O=T-Systems Enterprise Services GmbH,C=DE". The loading of the trusted certificate list raised a certificate parsing exception PKIX: Unsupported OID in the AlgorithmIdentifier object: 1.2.840.113549.1.1.11.>
<Nov 5, 2013 8:07:10 PM CET> <Notice> <Security> <BEA-090898> <Ignoring the trusted CA certificate "CN=T-TeleSec GlobalRoot Class 2,OU=T-Systems Trust Center,O=T-Systems Enterprise Services GmbH,C=DE". The loading of the trusted certificate list raised a certificate parsing exception PKIX: Unsupported OID in the AlgorithmIdentifier object: 1.2.840.113549.1.1.11.>
<Nov 5, 2013 8:07:10 PM CET> <Notice> <Security> <BEA-090898> <Ignoring the trusted CA certificate "CN=GlobalSign,O=GlobalSign,OU=GlobalSign Root CA - R3". The loading of the trusted certificate list raised a certificate parsing exception PKIX: Unsupported OID in the AlgorithmIdentifier object: 1.2.840.113549.1.1.11.>
<Nov 5, 2013 8:07:10 PM CET> <Notice> <Security> <BEA-090898> <Ignoring the trusted CA certificate "OU=Security Communication RootCA2,O=SECOM Trust Systems CO.\,LTD.,C=JP". The loading of the trusted certificate list raised a certificate parsing exception PKIX: Unsupported OID in the AlgorithmIdentifier object: 1.2.840.113549.1.1.11.>
<Nov 5, 2013 8:07:10 PM CET> <Notice> <Security> <BEA-090898> <Ignoring the trusted CA certificate "CN=VeriSign Universal Root Certification Authority,OU=(c) 2008 VeriSign\, Inc. - For authorized use only,OU=VeriSign Trust Network,O=VeriSign\, Inc.,C=US". The loading of the trusted certificate list raised a certificate parsing exception PKIX: Unsupported OID in the AlgorithmIdentifier object: 1.2.840.113549.1.1.11.>
<Nov 5, 2013 8:07:10 PM CET> <Notice> <Security> <BEA-090898> <Ignoring the trusted CA certificate "CN=KEYNECTIS ROOT CA,OU=ROOT,O=KEYNECTIS,C=FR". The loading of the trusted certificate list raised a certificate parsing exception PKIX: Unsupported OID in the AlgorithmIdentifier object: 1.2.840.113549.1.1.11.>
<Nov 5, 2013 8:07:10 PM CET> <Notice> <Security> <BEA-090898> <Ignoring the trusted CA certificate "CN=GeoTrust Primary Certification Authority - G3,OU=(c) 2008 GeoTrust Inc. - For authorized use only,O=GeoTrust Inc.,C=US". The loading of the trusted certificate list raised a certificate parsing exception PKIX: Unsupported OID in the AlgorithmIdentifier object: 1.2.840.113549.1.1.11.>
<Nov 5, 2013 8:07:10 PM CET> <Notice> <Server> <BEA-002613> <Channel "DefaultSecure[3]" is now listening on 127.0.0.1:8343 for protocols iiops, t3s, CLUSTER-BROADCAST-SECURE, ldaps, https.>
<Nov 5, 2013 8:07:10 PM CET> <Notice> <Server> <BEA-002613> <Channel "DefaultSecure[1]" is now listening on fe80:0:0:0:0:5efe:a53:4816:8343 for protocols iiops, t3s, CLUSTER-BROADCAST-SECURE, ldaps, https.>
<Nov 5, 2013 8:07:10 PM CET> <Notice> <Server> <BEA-002613> <Channel "DefaultSecure[4]" is now listening on 0:0:0:0:0:0:0:1:8343 for protocols iiops, t3s, CLUSTER-BROADCAST-SECURE, ldaps, https.>
<Nov 5, 2013 8:07:10 PM CET> <Notice> <Server> <BEA-002613> <Channel "Default" is now listening on 10.83.72.22:8300 for protocols iiop, t3, CLUSTER-BROADCAST, ldap, snmp, http.>
<Nov 5, 2013 8:07:10 PM CET> <Notice> <Server> <BEA-002613> <Channel "Default[3]" is now listening on 127.0.0.1:8300 for protocols iiop, t3, CLUSTER-BROADCAST, ldap, snmp, http.>
<Nov 5, 2013 8:07:10 PM CET> <Notice> <Server> <BEA-002613> <Channel "Default[4]" is now listening on 0:0:0:0:0:0:0:1:8300 for protocols iiop, t3, CLUSTER-BROADCAST, ldap, snmp, http.>
<Nov 5, 2013 8:07:10 PM CET> <Notice> <Server> <BEA-002613> <Channel "Default[2]" is now listening on fe80:0:0:0:0:ffff:ffff:fffe:8300 for protocols iiop, t3, CLUSTER-BROADCAST, ldap, snmp, http.>
<Nov 5, 2013 8:07:10 PM CET> <Notice> <Server> <BEA-002613> <Channel "Default[1]" is now listening on fe80:0:0:0:0:5efe:a53:4816:8300 for protocols iiop, t3, CLUSTER-BROADCAST, ldap, snmp, http.>
<Nov 5, 2013 8:07:10 PM CET> <Notice> <Server> <BEA-002613> <Channel "DefaultSecure[2]" is now listening on fe80:0:0:0:0:ffff:ffff:fffe:8343 for protocols iiops, t3s, CLUSTER-BROADCAST-SECURE, ldaps, https.>
<Nov 5, 2013 8:07:10 PM CET> <Notice> <Server> <BEA-002613> <Channel "DefaultSecure" is now listening on 10.83.72.22:8343 for protocols iiops, t3s, CLUSTER-BROADCAST-SECURE, ldaps, https.>
<Nov 5, 2013 8:07:10 PM CET> <Warning> <Server> <BEA-002611> <Hostname "WIPLPRD01.svc.unicc.org", maps to multiple IP addresses: 10.83.72.22, 0:0:0:0:0:0:0:1>
<Nov 5, 2013 8:07:10 PM CET> <Notice> <WebLogicServer> <BEA-000330> <Started WebLogic Managed Server "Planning0" for domain "EPMSystem" running in Production Mode>
<Nov 5, 2013 8:07:12 PM CET> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RUNNING>
<Nov 5, 2013 8:07:12 PM CET> <Notice> <WebLogicServer> <BEA-000360> <Server started in RUNNING mode>
using java.library.path: C:\Oracle\Middleware\EPMSystem11R1/products/Planning/lib64;C:\Oracle\Middleware\EPMSystem11R1/bin;C:\Oracle\Middleware\EPMSystem11R1/common/EssbaseRTC-64/11.1.2.0/bin;C:\Oracle\MIDDLE~1\patch_wls1034\profiles\default\native;C:\Oracle\MIDDLE~1\WLSERV~1.3\server\native\win\x64;C:\Oracle\MIDDLE~1\WLSERV~1.3\server\bin;C:\Oracle\MIDDLE~1\modules\ORGAPA~1.1\bin;C:\Oracle\MIDDLE~1\JROCKI~1\jre\bin;C:\Oracle\MIDDLE~1\JROCKI~1\bin;C:\Oracle\MIDDLE~1\WLSERV~1.3\server\native\win\x64\oci920_8
EPM_ORACLE_HOME (C:\Oracle\Middleware\EPMSystem11R1) is set from JVM property "EPM_ORACLE_HOME".
using Java property for Hyperion Home C:\Oracle\Middleware\EPMSystem11R1
EPM_ORACLE_INSTANCE (C:\Oracle\Middleware\user_projects\epmsystem1) is set from JVM property[EPM_ORACLE_INSTANCE].
Reaquired task list lease: Tue Nov 05 20:11:49 CET 2013: 1383678709156
Seeking ESAPI.properties
Found in 'org.owasp.esapi.resources' directory: C:\Oracle\Middleware\EPMSystem11R1\products\Planning\config\esapi\ESAPI.properties
Loaded 'ESAPI.properties' properties file
Seeking validation.properties
Found in 'org.owasp.esapi.resources' directory: C:\Oracle\Middleware\EPMSystem11R1\products\Planning\config\esapi\validation.properties
Loaded 'validation.properties' properties file
Seeking antisamy-esapi.xml
Found in 'org.owasp.esapi.resources' directory: C:\Oracle\Middleware\EPMSystem11R1\products\Planning\config\esapi\antisamy-esapi.xml
EnterData_Inner Processing Time:424
2013-11-05 20:14:47,454 INFO Thread-51 calcmgr.launch - Date/Time Started: 2013/11/05:20:14:47.452 CET Server/Application/Database: localhost/1415_WP/AWP Business Rule Name: WPA_Count By Planning user: wipoadmin Values entered for run-time prompts: [Variable] Wrk_Scenario:"Work_Plan_2014"[Variable] Funds:"Regular"[Variable] Units:"0001"
- Date/Time Started: 2013/11/05:20:14:47.452 CET Server/Application/Database: localhost/1415_WP/AWP Business Rule Name: WPA_Count By Planning user: wipoadmin Values entered for run-time prompts: [Variable] Wrk_Scenario:"Work_Plan_2014"[Variable] Funds:"Regular"[Variable] Units:"0001"
2013-11-05 20:14:54,066 INFO Thread-51 calcmgr.launch - Date/Time Ended: 2013/11/05:20:14:54.066 CET Server/Application/Database: localhost/1415_WP/AWP Business Rule Name: WPA_Count By Planning user: wipoadmin.
- Date/Time Ended: 2013/11/05:20:14:54.066 CET Server/Application/Database: localhost/1415_WP/AWP Business Rule Name: WPA_Count By Planning user: wipoadmin.
EnterData_Inner Processing Time:64
EnterData_Inner Processing Time:15
EnterData_Inner Processing Time:359
EnterData_Inner Processing Time:2
EnterData_Inner Processing Time:53
EnterData_Inner Processing Time:4
EnterData_Inner Processing Time:7
EPM_ORACLE_INSTANCE (C:\Oracle\Middleware\user_projects\epmsystem1) is set from JVM property[EPM_ORACLE_INSTANCE].
EPM_ORACLE_INSTANCE (C:\Oracle\Middleware\user_projects\epmsystem1) is set from JVM property[EPM_ORACLE_INSTANCE].
EPM_ORACLE_INSTANCE (C:\Oracle\Middleware\user_projects\epmsystem1) is set from JVM property[EPM_ORACLE_INSTANCE].
Setting HBR Mode to: 2
In lookupBRLWA()
Found HBR product = ESSBASE_PRODUCT
Found HBR product = ESSBASE_PRODUCT
Found HBR product = ESSBASE_PRODUCT
HBR LWA Component = Default
Default HBR = http://WIPLPRD01.svc.unicc.org:19000/eas
In getDBDetails()
Found HBR product = ESSBASE_PRODUCT
In lookupBRLWA()
Found HBR product = ESSBASE_PRODUCT
Found HBR product = ESSBASE_PRODUCT
=2013-11-05 20:35:08,234 WARN [ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)' com.hyperion.hbr.security.HbrSecurityAPI - Error retrieving user by identity
- Error retrieving user by identity
Embedded HBR initialized.
EnterData_Inner Processing Time:6
EnterData_Inner Processing Time:867
[Tue Nov 05 20:35:33 CET 2013] Planning successfully notified HBR repository.
EnterData_Inner Processing Time:7
2013-11-05 20:40:38,613 INFO Thread-67 calcmgr.launch - Date/Time Started: 2013/11/05:20:40:38.606 CET Server/Application/Database: localhost/1415_WP/AWP Business Rule Name: NonPersonnel_Calc By Planning user: wipoadmin Values entered for run-time prompts: [Variable] Funds:"Regular"[Variable] Units:"0001"[Variable] Wrk_Scenario:"Work_Plan_2014"
- Date/Time Started: 2013/11/05:20:40:38.606 CET Server/Application/Database: localhost/1415_WP/AWP Business Rule Name: NonPersonnel_Calc By Planning user: wipoadmin Values entered for run-time prompts: [Variable] Funds:"Regular"[Variable] Units:"0001"[Variable] Wrk_Scenario:"Work_Plan_2014"
2013-11-05 20:40:47,241 INFO Thread-67 calcmgr.launch - Date/Time Ended: 2013/11/05:20:40:47.241 CET Server/Application/Database: localhost/1415_WP/AWP Business Rule Name: NonPersonnel_Calc By Planning user: wipoadmin.
- Date/Time Ended: 2013/11/05:20:40:47.241 CET Server/Application/Database: localhost/1415_WP/AWP Business Rule Name: NonPersonnel_Calc By Planning user: wipoadmin.
EnterData_Inner Processing Time:44
EnterData_Inner Processing Time:2
EnterData_Inner Processing Time:525
EnterData_Inner Processing Time:1
Reaquired task list lease: Tue Nov 05 20:41:49 CET 2013: 1383680509246I already replied there but it seems no moderator is willing to approve my reply so it never shows up.
So I'll try replying in here instead:
I never thought it could be an emulator issue, I thought I had done something wrong to begin with. So I take having performance issues with tiled layer is not a common problem I suppose?
I'm using MOTODEV SDK platform, A1200 model (motorola). -
How can I open a PDF stored in IXOS and then display it in a BSP
Hello gurus,
I have created a PDF icon and an onclick action to open a pdf, that displays on every row of an assignment block in the actions column, but I do not know the technical process to determine how to get a PDF from the IXOS system from the line selected. (even if I know it depends on an ID attribute of that assignment block) I want to to call a transaction launcher with the url for the pdf in the IXOS that has an ID that identifies which line in the assignment block the user has clicked the pdf icon for (does that make sense?)
Therefore, I am assuming the PDF should correspond to the relance ID of the row in the assignment block, but I would like more information as per the business logic involved in able to achieve the desired results for this particular specification. I already confirmed that the XURL or any other attribute in the BOL object does not contain the URL to use for this. I have looked at the class I was told that it may contain the required business logic for determining which PDF in IXOS to fetch for a particular row, and I am currently trying to reverse engineer the logic through looking at other code and using the debugger, but so far I haven'T had much luck.
Here are some questions I have now for the functional side in the meantime:
1) Can we fetch the PDF in IXOS for each line of an assignment block?
2) Which URL should I call with the transaction launcher? a URL link to the PDF on the IXOS system??
3) Do we have to configure a transaction in the IMG to be launched?
4) Do we have to create a logical link there that I will make dynamic to call the right PDF for each table line?
5) Are there any existing examples of this or a similar functionality/ logic that I could refer to, preferably in CRM 7 WebUI?
6) Do you have any code to just display a PDF in a new window? Or prompt a download?
One possible way I thought of would be for me to have a logical link defined in the IMG, that I could call passing it different attributes (eg. some object id, etc) and then return the PDF and display it in the UI in a new browser window by itself. Alternatively, we can just prompt a download. What do you think would be the optimal behaviour here?
Please do not hesitate to propose any potential solution. Any partial answers/ links to wikis/ other threads, anything would be much appreciated.
Thank you in advance.
Best regards,
Jonathan LaplanteHi,
I partially answered your question in another posting but I feel that you´re in the wrong forum for your problem. This is for BSP development and you talk about CRM. -
Any ideas on a nice BSP view pretty printer?
Hi there,
I am wondering whether somebody already tried to extend the SAP standard pretty printer by an own functionality which fits better for pages with mixed content, containing not only BSP-elements but also HTML-tags.
The standard pretty printer considers everything as plain text which is not a BSP-element and leaves it unaltered. Only BSP-elements are arranged according to their tree structure.
This produces ugly results for pages with mixed content.
1.) Requirement
A Pretty Printer for HTML-based BSP views should cover the following:
(a) HTML-Tags and BSP-elements together form the chain. As in following example:
<z:table table_id="testTab" binding="//test/gt_test" rows="5">
<z:tableBody position="top">
<colgroup>
<col width="4%">
<col width="96%">
</colgroup>
</z:tableBody>
<z:column name="type" header="<%=zcl_bsp_util=>dtel_text_s('EDI_TTYP')%>"
listPos="10"/>
<z:column name="text" listPos="20"></z:column>
</z:table>
(b) Certain HTML formatting tags like I, B, etc. should not be added to the stack but be treated inline.
(c) HTML-attribute names should be converted to lower case, the attribute values should be quoted.
(d) Like for BSP-elements, there should be a threshold after which the attributes should appear in separate lines. Instead of a certain maximum "number of attributes", this could also be a maximum number of characters per line.
(e) Scripting Tags (<% ... %>) should start at a new line, if the content contains new-lines.
(f) Evaluation Scripting (<%= ... %>) should be inline, if they are contained within text nodes (and not within HTML oder BSP element nodes).
(g) The Pretty Printer should be parametrizable (with parameters like indent-depth,... ).
2.) Exits?
Of course, one could always use an external HTML editor and write an add-on for that editor which produces the desired result. Or one could take the view content into the clipboard, paste it into a plain text editor like UltraEdit or TextPad which allows external commands, apply an external, self-written pretty printer to it and then paste the result back into the View. But it would be easier to use the "Pretty Printer" button directly to get the result. Therefore the question arises at which point the standard Pretty Printer Functionality could be modified or extended.
I didn't find an exit. But the pretty-print itself is doubly-decoupled in the standard which minimizes the number of points where an extension has to be made:
2.a) First decoupling point: The Fcode handler method pretty_printer_ext( ) in cl_o2_page is calling
dynamically a method in cl_o2_co2_processor:
* call pretty printer
create object pp type ('CL_O2_CO2_PROCESSOR').
appl_str = me->pagekey-applname.
page_str = me->pagekey-pagekey.
try.
CALL METHOD pp->('PRETTY_PRINT')
EXPORTING
indent = 2
ATTRIBUTE_NORMALIZE = 'X'
ATTRIBUTE_THRESHOLD = 2
BSP_UNFORMATTED = source
appl = appl_str
page = page_str
IMPORTING
test_ok = test_ok
BSP_FORMATTED = pp_source.
catch cx_o2_co2_exception into o2ex.
2.b) Second decoupling point:
The method pretty_print() of class cl_o2_co2_processor (fancy names, by the way. It seems that many former chemistry students had joined the BSP team ),
there is a second delegation, to a local class, as follows:
data pretty type ref to LCL_BSP_PRETTY_PRINT.
pretty = LCL_BSP_PRETTY_PRINT=>getInstance( processor = me ).
The real logic for doing the Pretty Print, finally, is performed in this local class.
3.) Implementation.
Since, up to my knowledge, there is no HTML parser in the ABAP world,
the implementation could be based on existing HTML Parsers, like the Perl module Parser::HTML, or the Java package http://htmlparser.sourceforge.net/ . The pretty printer could then be called as external OS command.
Are there any ideas out there? Or is there somebody who already worked in this direction?
Regards,
RüdigerFor those who are interested. I found out that the Dave Ragget's classic "HTML Tidy" (see <a href="http://tidy.sourceforge.net/">http://tidy.sourceforge.net/</a> ) is available in ABAP! There is a class CL_HTMLTIDY (at least here in my SAP_BASIS 700 system) which wraps calls of HTML Tidy by kernel modules.
The class is undocumented, but there are 2 OSS notes of this year for it, so it might well be that it is alive.
HTML Tidy can surely not directly be used for Pretty Printing BSP views, but for designing test cases or for doing things like HTML parsing, it might be a helpful tool. -
Error in using PERFORM in eventhandler in a BSP Application.
Hi All,
Can we use Subroutines in BSP applications?
If yes then please help me with syntax .
Best Regards,
Anubhav.
Edited by: Anubhav Jain on Dec 20, 2007 10:52 PMYou can call subroutine with below Synatx:
DATA: progname(20) TYPE C VALUE 'YTESTINCLUDE' .
PERFORM your_perform_name IN PROGRAM (progname) IF FOUND.
"where your_perform_name is the form within the include program YTESTINCLUDE[/code]
Raja T
Edited by: Raja Thangamani on Dec 20, 2007 4:58 PM -
Problem with index of numbers in BSP Front end
Hello All,
I am facing the below problem. Request your help.
Scenario: When I am trying to add the projects in the Front end , I am facing the problem with the index of numbering of the projects.
Example: If I am adding 6 projects ( at the max only 4 on each page i-e there are 2 pages ), then the index is wrongly numbered and the arrow (for direction of the pages) are wrongly displayed. The direction of the arrow is pointed to the next page rather pointing to the previous page and the index of numbering of the pages is wrong.
Request you to please suggest if this is any code fault in the table maintainance activity in the backend (BSP).Hi Irina,
If you mean the number range is skipping 10 numbers in between runs then its because of the buffering in the number range.
To avoid the buffer influencing the number range, pass
'X' to the function module parameter: IGNORE_BUFFER.
This should resolve the problem.
Cheers,
Aditya -
BSP Error while selecting "campaign elements" in spanish --- crm 2007
Hi experts,
I´m trying to look for a solution for a problem with an error that occours while selecting in WEB UI --marketing --- campaign elements , in spanish language.
Error Business Server Page (BSP)
<thtmlb:textView>: (design) The Attribute Value is not a Value from: STANDARD/HEADER1/HEADER2/LABEL/VALUE/ITALIC/BOLD
In english it works perfect.Which field is? Has translate value content to spanish for this field?.
In SAP CRM UI, press F2 and tell me which is the field -
Badi/exit/Workflow called during execution of the BSP "SRMSUS_SELFREG"
Hi all,
We are running on SRM 5.0.(SP06) Strategic sourcing scenario.We are using enterprise Portal as the front end.My query is that at the end of Supplier registration process,when the Supplier admin creates the USER ID's for the Suppliers(through BSP SRMSUS_SELFREG),is there any way by which we can create the enterprise Portal users for those suppliers at the same time(Automation) ?My BASIS person told me that the automation is possible when the EP system is connected only to 1 backend but in our landscape we are having several systems connected to EP.
Other alternative would be to send a mail to the EP administrator stating that the Vendors User ID's have been created in SRM and the EP ID's need to be created.
For this ,i didnt get any BADi/exit which gets triggered during this USER ID creation process wherein i can write my logic for sending the mail to the EP admin.
There are some Std workflows (e.g. WS10000209)for USER creation but these dont seem to be useful in this scenario.
So the only method left is to modify the Std BSP which we dont want.Has anybody worked on this kind of scenario?
Any suggestions are welcome and will be rewarded as well.
BR,
Disha.Hi
I am still searching.. but no BADI/Exit is called in this case..
<u>Meanwhile, i found few SAP OSS notes, which you can go through -></u>
Note 1031896 Delimiting of Supplier Reg URL due to Special characters
Note 1031070 Supplier cannot be registered
Note 996030 Need to relogin to srmsus_selfreg service when using aliases
Note 1032573 FormofAddr field mandatory in userselfreg.htm page
Note 1003820 Supplier cannot be registered
Note 889451 Not Possible to register in Supplier self-registration
Note 807511 Error message after self registration of supplier admin user
Note 784883 Irrelevant warning message stops self registration
Do let me know.
Regards
- Atul -
Xcelsius Dashboard on SAP R/3 Table using BSP and XML Mapping
Hi Experts,
I have developed a simple dashboard on small data set (10 records) that I am fetching from a R/3 Table into BSP and generating XML from there and consuming it in Xcelsius (SAP R/3 + BSP + XML Mapping).
Now I want to fetch data based on Variables values that should be passed from the dashboard at the runtime and should display the data accordingly. Any help on how it can be achieved?
Thanks..!!
SharadHi,
You could try doing this by using XML data connection. You would have to make use of Enable load to get the data from XML and Enable send to send data back to XML from dashboard.
This would require you to write a script.
Thanks,
Amit
Maybe you are looking for
-
Best app to help deaf people transcribe voice to text
Does anybody know of an app that helps deaf people get other people conversations to text?
-
hey to all i have face a problem regarding performance ADDM report show problem with tempoary tablespace. loading of data take double time. what can i do whereas loading of data is running *Action Consider increasing the throughput of the I/O subsyst
-
INVALID OR MISSING .DLL INSTALLING NEW ODP 10.2 BETA
Hi, We've been trying to install the new ODP beta and having a vairety of problems, some look like a corrupted .exe but my problem is 'invalid or missing dll' when I click on the beta .exe. No .dll is specified and I've changed the path, reinstalled
-
AddRow in Adobe Interactive Form givin me wierd Prob. (Urgent help needed)
Hi, i have an issue trying to add a row to my form.. I need to implement a function called AddRow to my form.. I have a few examples which i found, and the coding is as follows: Table1.Row1.instanceManager.addInstance(0); When i copied the table from
-
How to find the version of a package
Hi , Please let me know the command to find the version of a package. For Example I want to know the version of ARPURG.pls file . Thanks Naveen.