Message-Objekt in BSP-Applications
Hello experts,
system messages (sm02) are not shown in WebTemplates if we access them via a customized variable entry screen. If we access WebTemplates directly system messages are shown!
Are there any parameters not passed from entry screen to WebTemplates? Is there some kind of message objekt in BSP-Applications that can be used?
Thanks
Hiza
That's right, I was looking for a ABAP solution but I tried to implement sriniva solution in my program but it isn't really adapted to my program conception. I thought it was good but unfortunatly not. So, I'm looking for another way.
In my BSP program, I've a button when you click on it, I store all data into a file. My button declaration is like that :
<input class="butClass" type=image name="onInputProcessing(valider)"
src="<%=rep %>Server.gif" width="23" height="23"
alt="Publish"
id="valid" onClick="WaitCursor();"
onMouseOver="selOn(this)" onMouseOut="selOff(this)" onMouseDown="selDown(this)"
onMouseUp="selUp(this)"/>
Problem, can I integrate your solution into my program conception?
Thanks.
Similar Messages
-
Can I use message class(from se91) in BSP applications
Hi,
Can I use message from message class(se91) to display in pages of BSP application.
Best Regards
RayuduHi,
Thanks for response.
How can I get se91 message in onInput processing?
I understand that for long texts i can use OTR texts. Weather I need to maintain OTR texts for simple error messages?
Best Regrads
Rayudu -
BSP Application exists but is Inactive - Error Message
Hello,
The Web Interface builder is giving "BSP Application exists but is Inactive " this error message when we try to generate the interface after changes in BPS_WB transaction. As a result the changes are not reflecting in the application. I activated this BSP application from SE80 and also from SICF but still the same error is encountered.Any one experienced the same before? Any help would be greatly appreciated with pointsHi SJ,
try to copy the web interface to a new one. The generate and check if everything has been activated correctly (SICF, BSP app). Everything should be automatically active.
Regards,
Marc
SAP NetWeaver RIG -
Error message in bsp application
hi
Im tamil selvan .....this is my first bsp application i created .. but i cant view the output..the default html code itself not executing... i copied the same code in text and saved in html its executing there... i dont know what is the issue..is any system files are missing...plz guide me im new to bsp....first what should i learn ... the below is the error i pasted...
Business Server Page (BSP) error
What happened?
Calling the BSP page was terminated due to an error.
SAP Note
The following error text was processed in the system:
Die URL enthält keine vollständige Domainangabe (isys-ecc statt isys-ecc.).
Exception Class CX_FQDN
Error Name
Program CX_FQDN=======================CP
Include CX_FQDN=======================CM002
ABAP Class CX_FQDN
Method CHECK
Line 10
Long text -
Error type: Exception
Your SAP Business Server Pages TeamHi Tamil,
welcome to the SAP Community Network. You will find lots of great resources, tips, and examples here.
Of course to find them you have to look for them. You will find most people more than happy to help you with problems if you first try and help yourself by searching for the solution yourself.
So please, search the forums for the solution to your problem before you post.
Cheers
Graham Robbo -
Hi All.
I am trying to enhance cPROJECTS via SE38 -> BSP_CUSTOMIZE. I have created all my custom fields in table CI_DPR_PROJECT (Customer Include to DPR_PROJECT (Additional fields)). Executing BSP_CUSTOMIZE via SE38, I copied prjDetailData.bsp to my new BSP Application. Also copied the error.do to the App as stated in the Help..
I have made the fields available in the Additional Data tabstrip of CPROJECTS.
When I go to SE80 and activate my new App andtry and test it, an error message comes up. The following error text was processed in the system:
"BSP Exception: Das Objekt exit.bsp in der URL /sap(bD1lbiZjPTEwMQ==)/bc/bsp/sap/zcprojects_cm/exit.do ist nicht gültig." Icopied the exit.do and error.do to my application from CPROJECTS...
Any help would be appreciated.
Regards.
Davo.Please post your question in the Business Server Pages (BSP)
Regards,
Subramanian V. -
Javascript error calling a bi 7.0 webapplication from a bsp application
Hi everyone,
This is the scenario we're facing a javascript error :
Enterprise Portal is calling a custom bsp application ( via an iview in the enterprise portal ) in the bi system with a parameter "template_id" and a value, which is the technical name of a bi web application.
The bsp application is evaluating the parameter by some custom code and creating a html page with a redirect or a maintenance message to the bi web application passed with the parameter "template_id".
The html link to the bi web application is created according to this documentation :
http://help.sap.com/saphelp_nw70ehp1/helpdata/en/46/03d4ac801467e6e10000000a1553f6/content.htm
Purpose of the bsp application :
in the bi system there is a database table to maintain a flag for each webtemplate and infocube, which should not be called via the enterprise portal for a certain time ( some kind of maintenance switch ). The bsp application then decides to show a maintenance page for the called webtemplate or to send the redirect page to the client.
The process described above is :
working with the bi 7.01 sp7 in the bi ( enterprise portal sp22 ) in the productive system.
working in the Q&A system bi 7.01 sp8 with bi 3.5 web applications.
not working in the Q&A system bi 7.01 sp8 with bi 7.0 web applications.
The javascript error calling bi 7.0 web applications is :
Webpage error details
User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Win64; x64; Trident/4.0; .NET CLR 2.0.50727; SLCC2; .NET4.0C; .NET4.0E)
Timestamp: Mon, 6 Jun 2011 09:11:04 UTC
Message: Object doesn't support this property or method
Line: 96
Char: 11
Code: 0
URI: https://mlptb1.mlp-ag.com:58001/irj/servlet/prt/portal/prtroot/pcd!3aportal_content!2fcom.sap.pct!2fplatform_add_ons!2fcom.sap.ip.bi!2fiViews!2fcom.sap.ip.bi.bex?TEMPLATE=B_221_002_KUNDEN_POSTEN_AD
We've opened a message. Support center is saying that this method isn't supported by sap. We should ommit the bsp application and the used functionality.
Is there any way to find out, what is causing this object is missing ?
Is there another way than a bsp application to use this custom maintenance function in the described system setup ?
system components :
production system
SAP NetWeaver 7.0 Portal SP22
SAP BI 7.01 SP 7
q&a system
SAP NetWeaver 7.0 Portal SP22
SAP BI 7.01 SP 8
Kind regards.
DirkHello everyone,
we did some further analysis on this problem und we think we found the problem.
The error occurs while trying to execute the standard url for web templates inside a Enterprise Portal Frame, for example
https://XXX:XXX/irj/servlet/prt/portal/prtroot/pcd!3aportal_content!2fcom.sap.pct!2fplatform_add_ons!2fcom.sap.ip.bi!2fiViews!2fcom.sap.ip.bi.bex?TEMPLATE=XXX
While executing the URL a HTML-Page with some embeded Javascript-code is sent back to the browser.
In this Javascrip-Code, the method-call "dsmObj.registerAll" leads to a script error in Internet Explorer.
dsmObj.registerAll("pcd:portal_content/com.sap.pct/platform_add_ons/com.sap.ip.bi/iViews/com.sap.ip.bi.bex", "GUSID:6FC9SuhGDPIMMLwOdeHEIg--_7WQud13yeLJDz2kYoQFSg--", "1307605928212");
In SP7, the method "dsmObj.registerFullKey" is called instead of "dsmObj.registerAll". This has changed in SP8.
dsmObj.registerFullKey("GUSID:iBPvyska9*xE_JBalkQG2g--YyKv2C3NToP0I79Mw7EO8w--", "1307606479963");
The object "dsmObj" seems to reference the parent frame of the Enterprise Portal.
Has anyone seen this before? Any ideas how we can fix this?
Kind regards,
Matthias
Edited by: Matthias Keller on Jun 9, 2011 2:07 PM -
Error while creating a BSP application
Hello Experts-
I am trying to create a BSP application. This is the error what I am seeing, can any one let me know on what settings i have to make it work.
Could not create the associated SICF node automatically.
Add a node manually using "HTTP Service Maintenance"
(Transaction SICF)
Steps which I followed to create BSP app are
Se80> BSP application > name of app> enter> create local object.
Thanks,
Rajhi,
Please check the thread before you post it, becoz its already posted and answered too
after getting the message
"Could not create the associated SICF node automatically.
Add a node manually using "HTTP Service Maintenance"
in the same window in the common box type "/nsu53" and hit enter.
system will give details about the missing authorization .
or
when you generate the web interface it automatically creates the SICF entry. Just make a litte change to the web interface and activate it again.
You can also regenerate an entire BSP application by calling the O2_GENERATE_BSPAPPL function module in the test environment of
transaction SE37 .
cheers,
Bhavana -
BSP Application does not launch in SAP R/3 4.7
Hi Experts,
We are trying to create a BSP application in SAP R/3 4.7. We are using the MVC architecture for the same. However, we are failing to launch the BSP pages. When the URL is launced either from SAP or directly in IE, the password prompt appears, after entering the user name and password it reappears again for 3 times and then throws a message invalid user name or password. This happens for all User Names. The passwords are correct though.
We have similar BSP Application in our SAP CRM 4.0 box and it works. I do not have much expertise in BSP, thus would want to know whether there are any BASIS settings that could be required in the system before we proceed. How do we know whether the system is compatible to BSP applications. We have even activated the BSP Application in SICF (Default_host -> SAP -> BC -> BSP -> SAP -> <BSP Application Name>). The current Support Pack version on the system are as follows,
SAP_BASIS Release 620 SAPKB62065; SAP_ABA Release 620 SAPKA62065.
Even if we try to launch the standard example BSP applications in the box, even they do not launch. The same problem appears. Do we need to make changes to User Roles level? All these user IDs have SAP ALL access though.
Please let me know how can I sort this out. Also let me know if you would need any further details.
Thanks for your help in advance.
Regards,
SubhrangsuHi Subbie,
in transaction SICF navigate to the service default_host->sap->public->ping. Right-click and select "Test Service". If this works then the BSP runtime is working okay.
Then navigate to the service sap->bc->bsp->sap->sbspext_htmlb and try the same there. On this service you will need to enter a username and password.
If all this works then you need to look clser at what you are doing.
Cheers
Graham Robbo -
Data entered by ITS application partly not available at BSP application
Environment:
We have an old ITS application to enter absences and presences to SAP HR.
And we have a new BSP application to delete absences and presences.
Both applications are available for the employee in an employee self service, that has an navigation developed with BSP.
Problem:
All data entered with the ITS application, could not be deleted in the BSP application, if the user does not log off. Or until he deletes one dataset, that he did not entered after the current login. If he deleted one old dataset, all new datasets can also be deleted.
The ITS application stores the data with the function HR_MAINTAIN_MASTERDATA.
The BSP application deletes the data also with the HR_MAINTAIN_MASTERDATA function.
But its strange, that I can read the newly entered data with select from the Database or the function HR_READ_INFOTYPE. But when the users selects this dataset, the BSP class currently read, the HR_MAINTAIN_MASTERDATA cant delete, because of the message "no data in timeperiod". Even the function 'BAPI_ABSENCE_GETDETAIL' reads the data.
Seems to be some kind of buffer problem. Reading the data is possible, but trying to modify/delete does not work.
Also this did not help:
*using more commit works.
*Try to initialize buffers with the functions "HR_INITIALIZE_BUFFER", 'HR_PSBUFFER_INITIALIZE', "HRPAD00_FREE_PLOG_TAB" or "HR_PSA_CLEAR_BUFFER"
Trying to delete the absences with the function 'BAPI_ABSENCE_DELETE' instead of the HR_MAINTAIN_MASTERDATA function (without DESTINATION and with DESTINATION 'NONE').
Does anybody has an idea, why my BSP application works fine with all datasets, entered before the current login, but can not delete datasets I newly entered (but I can read them, I only cant delete them!). And what is more strange: after I delete on old dataset, then I can delete also the new datasets!Is your provisioning profile for Development or Ad-Hoc distribution?
Also, it would help if you posted a screenshot of you target settings as well as your Info.plist file. -
Run Time Error while executing BSP application in Safari browser
Hi Frens,
I am new to BSP application. I have made changes for an existing BSP application which has to be executed on both IE and Safari browsers. I made changes in the View for IE browser and it is executing correctly. I have done the same changes in the Safari view also but when executed in Safari, the browser hangs up and in the backend in SAP it goes to dump. The dump message is as below:
" An exception occurred. This exception is dealt with in more detail below
. The exception, which is assinged to the class 'CX_BSP_ELEMENT_EXCEPTION', was
not caught,
which led to a runtime error.
The reason for this exception is:
<htmlb:gridLayoutCell>: Class <htmlb:gridLayout> (CL_HTMLB_GRIDLAYOUT) was not
found as BSP parent element. "
Can anyone help me in understanding this?
Regards,
Priya.Hi Priya,
I don't think, you need to change in code for Safari. Please check the following thread.
Re: BSP's with htmlb - Tags on Browsers for Apple Computers
Regards,
Sagar -
PDF download from BSP application
hi all,
With the bellow code i am able to download to PDF from BSP application
Issue is when i click on the download button waiting popup window is not disappearing even after PDF displayed.
Please help me to resolve how to stop this waiting popup window.
response->delete_header_field( name = 'Cache-Control' ). "#EC NOTEXT
response->delete_header_field( name = 'Expires' ). "#EC NOTEXT
response->delete_header_field( name = 'Pragma' ). "#EC NOTEXT
Deactivated because of Note 904314 and Kompression in Kernel
response->set_compression( options = '4' ).
response->set_header_field( name = 'content-type'
value = 'application/pdf' ).
response->set_header_field(
name = 'cache-control'
value = 'max-age=0' ).
response->set_header_field(
name = 'content-disposition'
value = 'attachment; filename=candidate.pdf' ).
l_pdf_len = XSTRLEN( l_pdf_xstring ).
response->set_data( data = l_pdf_xstring
length = l_pdf_len ).
navigation->response_complete( ).
Any help on this is highly appreciated.
Thanks,
RaviMay be you can navigate to another page AFTER the response_complete() method and show the message that 'PDF is downloaded successfully'
or something meanful message. so that it will get a response back from server and 'wait...Processing' message might disappear.
I'm not sure and didnt try..may be you can give it a try and let us know..
navigation->response_complete( ).
navigation->goto_page(....) -
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 File from BSP-Application
Hello !
i hope i can get some help for my problem.
from my BSP-Application i want to download an internal table to p:\eigenedateien\bv.txt (always the same filename)
the internal table ist type table of string.
i read that gui_download doesn't work in my BSP
so i went through this weblog 756
but it is really hard.
i put some code from the weblog in my application:
concatenate 'attachment; filename='
w_para-pwert = p:\eigenedatieen\bv.txt
w_para-pwert into dl_pathfile.
Download der Datei
Create the cached response object that we will insert our content into
dl_xstring = 'Test'. "nur zum testen
CREATE OBJECT CACHED_RESPONSE TYPE CL_HTTP_RESPONSE
EXPORTING ADD_C_MSG = 1.
set the data and the headers
CACHED_RESPONSE->SET_DATA( DL_XSTRING ).
CACHED_RESPONSE->SET_HEADER_FIELD( NAME =
IF_HTTP_HEADER_FIELDS=>CONTENT_TYPE
VALUE = 'text/html' ).
Set the filename into the response header
CACHED_RESPONSE->SET_HEADER_FIELD( NAME = 'Content-Disposition'
VALUE = DL_PATHFILE ).
Set the Response Status
CACHED_RESPONSE->SET_STATUS( CODE = 200 REASON = 'OK' ).
Set the Cache Timeout - 60 seconds - we only need this in the cache
CACHED_RESPONSE->SERVER_CACHE_EXPIRE_REL( EXPIRES_REL = 60 ).
Create a unique URL for the object
CALL FUNCTION 'GUID_CREATE'
IMPORTING
EV_GUID_32 = GUID.
CONCATENATE RUNTIME->APPLICATION_URL '/' GUID INTO URL.
Cache the URL
CL_HTTP_SERVER=>SERVER_CACHE_UPLOAD( URL = URL
RESPONSE = CACHED_RESPONSE ).
Ende Download
now it should be cached.
but hot can i start the download to p:\eigenedateien... now?
thanks very much for your help
HelmutHi,
Could you try adding at the end:
navigation->response_complete( ).
and/or
data: guid type guid_32,
display_url TYPE string.
call function 'GUID_CREATE'
importing
ev_guid_32 = guid.
concatenate runtime->application_url '/' guid into display_url.
cl_http_server=>server_cache_upload( url = display_url response = cached_response ).
Best regards,
Guillaume
Message was edited by: Guillaume Garcia -
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( ). -
Download and upload bsp application
Hi All,
Pl. guide me with my requirement. I have a bsp application in one server and for some reasons the same bsp application is required in another server but these two servers are not in land scape and hence i cannot transport. Is there any way to download the whole application and upload it into the target server. I feel this approach is silly but is there any other way or should i create it again fron the scratch in the new server.Pl. guide me.
thanks & regards,
jeeva.Hi Jeeva
Why dont you try the above link given by Raja..
It works fine .... You will get the sourcecode downloaded in a .bsp extension file for each page....But the only major problem is ... It doesnot talk about anything related to How to upload those files in the application....For that you had to take the help of BASIS ..
But if your problem get solved by just getting the source code downloaded then try this code...This is the same code that RAJA has linked to...Just paste the code in a report program...and execute it...
type-pools: SO2.
types: t_page_list type standard table of o2pagkey.
parameters: g_appl type O2APPLNAME.
constants: c_separator_line type string value
perform main.
form main.
data: l_pages type t_page_list,
l_ref_page type ref to cl_o2_api_pages,
l_table type o2pageline_table,
l_folder type string,
l_lower type string,
l_filename type string.
field-symbols: <f_page> type o2pagkey.
* get local directory path
call method CL_GUI_FRONTEND_SERVICES=>DIRECTORY_BROWSE
* EXPORTING
* WINDOW_TITLE =
* INITIAL_FOLDER =
CHANGING
SELECTED_FOLDER = l_folder
EXCEPTIONS
CNTL_ERROR = 1
ERROR_NO_GUI = 2
NOT_SUPPORTED_BY_GUI = 3
others = 4.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
return.
ENDIF.
if l_folder is initial. return. endif.
* get all pages of selected BSP application
perform get_all_pages changing l_pages.
* perform each page
loop at l_pages assigning <f_page>.
* load page data
perform load_page using <f_page>
changing l_ref_page.
if l_ref_page is bound.
* collect the content of the page in an internal table
perform print using l_ref_page
changing l_table.
if not l_table is initial.
l_lower = <f_page>-pagekey.
translate l_lower to lower case.
* determine file path for the page
concatenate l_folder '' l_lower into l_filename.
* download the content of the page to file
perform download using l_filename l_table.
endif.
endif.
endloop.
endform. "main
form download using p_filename type string
p_table type standard table.
* download the content of an internal table to a local file
call method CL_GUI_FRONTEND_SERVICES=>GUI_DOWNLOAD
EXPORTING
FILENAME = p_filename
CHANGING
DATA_TAB = p_table
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6
HEADER_NOT_ALLOWED = 7
SEPARATOR_NOT_ALLOWED = 8
FILESIZE_NOT_ALLOWED = 9
HEADER_TOO_LONG = 10
DP_ERROR_CREATE = 11
DP_ERROR_SEND = 12
DP_ERROR_WRITE = 13
UNKNOWN_DP_ERROR = 14
ACCESS_DENIED = 15
DP_OUT_OF_MEMORY = 16
DISK_FULL = 17
DP_TIMEOUT = 18
FILE_NOT_FOUND = 19
DATAPROVIDER_EXCEPTION = 20
CONTROL_FLUSH_ERROR = 21
NOT_SUPPORTED_BY_GUI = 22
ERROR_NO_GUI = 23
others = 24.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
endform. "download
form get_all_pages changing p_pages type t_page_list.
* get all pages of the application
select applname pagekey from o2pagdir into table p_pages
where applname = g_appl and
pagetype <> so2_controller.
endform. "get_all_pages
form load_page using p_key type o2pagkey
changing p_data type ref to cl_o2_api_pages.
* load the data of one page
clear p_data.
call method cl_o2_api_pages=>load_with_access_permission
EXPORTING
p_mode = 'SHOW'
p_pagekey = p_key
p_version = 'A' "'I' for inactive version
IMPORTING
p_page = p_data
EXCEPTIONS
others = 1.
endform. "load_page
form print using p_data type ref to cl_o2_api_pages
changing p_table type o2pageline_table.
* collect the content of a page into an internal table
data: l_attrs type o2pagattr,
l_params type o2pagpar_tabletype,
l_source type rswsourcet,
l_layout type o2pageline_table,
l_ev_handlers type so2_ev_handler_list,
l_typtyp(11) type c,
l_line type string.
field-symbols: <f_param> type o2pagpars,
<f_evh_name> type so2_ev_handler_name.
refresh p_table.
* get page properties
CALL METHOD P_DATA->GET_ATTRS
IMPORTING
P_ATTRS = l_attrs
EXCEPTIONS
others = 1.
check l_attrs-pagetype <> so2_controller.
append c_separator_line to p_table.
concatenate '*' l_attrs-applname '/' l_attrs-pagekey into l_line.
append l_line to p_table.
append c_separator_line to p_table.
append space to p_table.
* local types
if l_attrs-pagetype = so2_full_page.
CALL METHOD P_DATA->GET_TYPE_SOURCE
IMPORTING
P_SOURCE = l_source
EXCEPTIONS
others = 1.
if not l_source is initial.
append c_separator_line to p_table.
append '* local types' to p_table.
append c_separator_line to p_table.
append lines of l_source to p_table.
do 3 times.
append space to p_table.
enddo.
endif.
endif.
* page attributes
if l_attrs-pagetype = so2_full_page or
l_attrs-pagetype = so2_view_page.
CALL METHOD P_DATA->GET_PARAMETERS
IMPORTING
P_PARAMETERS = l_params
EXCEPTIONS
others = 1.
if not l_params is initial.
append c_separator_line to p_table.
append '* page attributes' to p_table.
append c_separator_line to p_table.
loop at l_params assigning <f_param>.
if <f_param>-typtype = so2_paramtyp_type.
l_typtyp = 'TYPE'.
else.
l_typtyp = 'TYPE REF TO'.
endif.
concatenate <f_param>-aliasname l_typtyp
<f_param>-type into l_line
separated by space.
append l_line to p_table.
endloop.
do 3 times.
append space to p_table.
enddo.
endif.
endif.
* layout
append c_separator_line to p_table.
append '* layout' to p_table.
append c_separator_line to p_table.
CALL METHOD P_DATA->GET_PAGE
IMPORTING
P_CONTENT = l_layout
EXCEPTIONS
others = 1.
append lines of l_layout to p_table.
do 3 times.
append space to p_table.
enddo.
* event handler
if l_attrs-pagetype = so2_full_page.
CALL METHOD P_DATA->GET_EVENT_HANDLER_LIST
EXPORTING
P_WITH_ALL_PREDEFINED = ' '
IMPORTING
P_EV_HANDLER_L = l_ev_handlers
EXCEPTIONS
others = 1.
loop at l_ev_handlers assigning <f_evh_name>.
append c_separator_line to p_table.
concatenate '* eventhandler' <f_evh_name>-name into l_line
separated by space.
append l_line to p_table.
append c_separator_line to p_table.
clear l_source.
CALL METHOD P_DATA->GET_EVENT_HANDLER
EXPORTING
P_NAME = <f_evh_name>-key
IMPORTING
P_SOURCE = l_source
* P_ATTRS =
EXCEPTIONS
others = 1.
append lines of l_source to p_table.
do 3 times.
append space to p_table.
enddo.
endloop.
endif.
endform. "print
RGDS
Mithlesh
Maybe you are looking for
-
Smartform problem with field in table
Hi everyone, I have a strange issue. I created a table within a smartform. That table has a row with few fields. Somehow, value of field 5 appears in field 4 (near value of field 4). Of course, value of field 5 is meant to be displayed in its own co
-
Hi ALL, 1. We have to pack the matrials to handling units in the delivery 2. We have to pick it. We tried through IDOC, FM also. But it is giving an error *'There is already a handling unit 1000000151 posted for GR without stock. Here 1000000151 is a
-
The find command F or just Find doesn't work any ideas on fixes? I tried trashing kybrd and finder prefs. This is on a G3 running 9.2 Thanks
-
Research on folio download size
Has there been any research done on optimal sizes for folios (where people will most likely wait and not abandon the download)? We recently published a new folio that came in around 300MB and is currently getting a 50% abandon rate after the user int
-
Mirroring results from two different tables
I have one table where I have all my calculations and a total amount. I then have another table made up of just 1 cell in a different area. How do I mirror the sum of the table to this other 1 cell in the same document? I can also upload a picture so