Closing the Background report engine
I use a menu that can call several reports, and when they open, the Reports Background Engine runs. I understand why it is useful to keep this open while the main app is on, but it does not close out automatically when the app closes. Is there a command that will do this?
Thanks,
Sara
I Guess,
Add_Parameter(pl_id, 'ORACLE_SHUTDOWN', TEXT_PARAMETER, 'YES') will do (pl_id is the parameter list that you must have created to run each individual report)
Similar Messages
-
Is it possible to use the JAVA Report Engine SDK to modify DESKI reports?
Post Author: Nadine
CA Forum: JAVA
Hi, is it possible to add a complex filter to a DESKI report using the JAVA report engine sdk?
In the developer tutorials for this API, I've only found references to WEBI in terms of modifying reports, though it seems to be possible to view DESKI reports with this sdk.
I am a bit confused in terms of the scope of this API and how I would use it in regard to DESKI.
Many thanks for any suggestions!
NadinePost Author: Ted Ueda
CA Forum: JAVA
Current (XI R2) version of ReportEngine API only supports refreshing/viewing functionality for Desktop Intelligence documents. Document modification/creation is only supported with Web Intelligence documents. Queries aren't modifiable for Deski using ReportEngine API - you can only do so using Desktop Intelligence Reporter SDK, which is COM based.Sincerely,Ted Ueda -
Report Engine API 4.0 (upgrade to 4.1)
Hi,
In the incoming days we will face the upgarde of our current SAP BI Platform (4.0 SP8) to next minor release (4.1). One of most challenging points is to ensure the proper behaviour of existing SDK customizations based on Report Engine API available at 4.0. I know that SAP is promoting use of Restful Web Services as a way to implement functionality previously delivered by JAVA API but my question is. Will current Report Engine API based developments work under in 4.1 release? In other words, has SAP planned an smooth transition from Report Engine API to restful Web Services scenario (compatibility scenario ) or code will have to be completely rewriten ?
Thanks,Hi Alfons,
As per the current situations Report Engines SDKs are still the same in BI 4.1 likewise in BI 4.0 all patches. You can perform the below functionalities with BI 4.x Report Engines SDK :
- Export Webi Report to some other format.
- View a Webi Report.
- Partial drilling.
- Save prompts in Webi reports etc.(Most of the functionalities are deprecated like schedule with prompts etc.)
On the other hand with Webi Raylight REST SDKs you can leverage the workflow of legacy functional parity of BusinessObjects XI 3.1 Report Engines SDKs.
By seeing as a future, it looks like most of the new development & enhancement are happens in the Webi REST world. So planning to rewrite the code in terms of REST SDKs is beneficial.
As you are talking about the compatability, Report Engines Java SDKs are same upto BI 4.1 Patch 4 release. But it might be possible that in future Report Engines Java SDKs are totally deprecated. You can also refer the Object Model Digram of Report Engines SDKs which gives you list of deprecated interfaces, classes & methods.
Hope it helps.
Thanks,
Shailendra -
Problem while sending Abap list to mail in the background
Hi all,
I am sending abap list to email in the background.
My code as folllows:
DATA: so_ali LIKE solisti1 OCCURS 100 WITH HEADER LINE.
DATA: listobject LIKE abaplist OCCURS 0 WITH HEADER LINE.
DATA: objpack LIKE sopcklsti1 OCCURS 2 WITH HEADER LINE.
DATA: objhead LIKE solisti1 OCCURS 1 WITH HEADER LINE.
DATA: objtxt LIKE solisti1 OCCURS 10 WITH HEADER LINE.
DATA: reclist LIKE somlreci1 OCCURS 5 WITH HEADER LINE.
DATA: doc_chng LIKE sodocchgi1.
DATA: tab_lines LIKE sy-tabix.
DATA: lt_user TYPE soud3 OCCURS 0 WITH HEADER LINE.
*Start of modification Tix 14411 for transport request D82K929044
DATA: it_user like SODLIENTI1 occurs 0 with header line.
*End of modification for Tix 14411 for transport request D82K929044
CLEAR: listobject, so_ali, objpack, objhead, objtxt, reclist, doc_chng.
REFRESH :
listobject, so_ali, objpack, objhead, objtxt, reclist.
creation of the document to be sent
doc_chng-obj_name = 'BOFAREPORT'.
WRITE sy-datum TO doc_chng-obj_descr.
CONCATENATE 'Bank Activity Report for :'(025)
company_itab_tr-company_code '-' doc_chng-obj_descr INTO
doc_chng-obj_descr. "AN052799
objtxt = 'This is the bank activity report received for'(026).
APPEND objtxt.
CONCATENATE company_itab_tr-company_code '-'
company_itab_tr-company_name '-'
company_itab_tr-company_city INTO
objtxt.
APPEND objtxt.
WRITE sy-datum TO objtxt.
CONCATENATE 'Date Received : '(027) objtxt INTO objtxt.
APPEND objtxt.
WRITE sy-uzeit TO objtxt.
CONCATENATE 'Time Received : '(028) objtxt INTO objtxt.
APPEND objtxt.
DESCRIBE TABLE objtxt LINES tab_lines.
READ TABLE objtxt INDEX tab_lines.
doc_chng-doc_size = ( tab_lines - 1 ) * 255 + STRLEN( objtxt ).
Creation of the entry for the compressed document
CLEAR objpack-transf_bin.
objpack-head_start = 1.
objpack-head_num = 0.
objpack-body_start = 1.
objpack-body_num = tab_lines.
objpack-doc_type = 'RAW'.
APPEND objpack.
Creation of the document attachment
CALL FUNCTION 'SAVE_LIST'
EXPORTING
list_index = '0'
TABLES
listobject = listobject
EXCEPTIONS
list_index_invalid = 1
OTHERS = 2.
CALL FUNCTION 'TABLE_COMPRESS' "Schneller Tabellencopy
TABLES
in = listobject
out = so_ali.
DESCRIBE TABLE so_ali LINES tab_lines. "objbin
objhead = 'BOFA-REPORT'. APPEND objhead.
Creation of the entry for the compressed attachment
objpack-transf_bin = 'X'.
objpack-head_start = 1.
objpack-head_num = 1.
objpack-body_start = 1.
objpack-body_num = tab_lines.
objpack-doc_type = 'ALI'.
objpack-obj_name = 'BOFAREPORT'.
objpack-obj_descr = 'Bank Activity Report'.
objpack-doc_size = tab_lines * 255.
APPEND objpack.
Completing the recipient list
SELECT * FROM zwfi_yefap_paypr WHERE
bukrs = company_itab_tr-company_code.
IF NOT ( zwfi_yefap_paypr-list1 IS INITIAL ).
clear it_user[].
CALL FUNCTION 'SO_DLI_READ_API1'
EXPORTING
DLI_NAME = zwfi_yefap_paypr-list1
DLI_ID = ' '
SHARED_DLI = 'X'
IMPORTING
DLI_DATA =
TABLES
DLI_ENTRIES = it_user
EXCEPTIONS
DLI_NOT_EXIST = 1
OPERATION_NO_AUTHORIZATION = 2
PARAMETER_ERROR = 3
X_ERROR = 4
OTHERS = 5
IF SY-SUBRC = 0.
loop at it_user.
if it_user-member_typ = 'A'.
reclist-receiver = it_user-member_adr.
reclist-rec_type = 'U'.
reclist-com_type = 'INT'.
reclist-notif_del = 'X'.
reclist-notif_ndel = 'X'.
append reclist.
elseif it_user-member_typ = ''.
reclist-receiver = it_user-member_nam.
reclist-rec_type = 'B'.
reclist-express = 'X'.
append reclist.
Endif.
endloop.
ENDIF.
ENDIF.
IF NOT ( zwfi_yefap_paypr-list2 IS INITIAL ).
clear it_user[].
CALL FUNCTION 'SO_DLI_READ_API1'
EXPORTING
DLI_NAME = zwfi_yefap_paypr-list2
DLI_ID = ' '
SHARED_DLI = 'X'
IMPORTING
DLI_DATA =
TABLES
DLI_ENTRIES = it_user
EXCEPTIONS
DLI_NOT_EXIST = 1
OPERATION_NO_AUTHORIZATION = 2
PARAMETER_ERROR = 3
X_ERROR = 4
OTHERS = 5
IF SY-SUBRC = 0.
loop at it_user.
if it_user-member_typ = 'A'.
reclist-receiver = it_user-member_adr.
reclist-rec_type = 'U'.
reclist-com_type = 'INT'.
reclist-notif_del = 'X'.
reclist-notif_ndel = 'X'.
append reclist.
elseif it_user-member_typ = ''.
reclist-receiver = it_user-member_nam.
reclist-rec_type = 'B'.
reclist-express = 'X'.
append reclist.
Endif.
endloop.
ENDIF.
endif.
ENDSELECT.
CLEAR error_text.
Sending the document
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data = doc_chng
put_in_outbox = 'X'
COMMIT_WORK = 'X'
TABLES
packing_list = objpack
object_header = objhead
contents_bin = so_ali "objbin
contents_txt = objtxt
receivers = reclist
EXCEPTIONS
too_many_receivers = 1
document_not_sent = 2
operation_no_authorization = 4
OTHERS = 99.
CASE sy-subrc.
WHEN 0.
write: / 'Result of the send process:'.
LOOP AT reclist.
write: / reclist-receiver(48), ':'.
IF reclist-retrn_code <> 0.
write 'The document was sent'.
else.
CONCATENATE 'The document could not be sent to : '(029)
reclist-receiver(48) INTO error_text.
ENDIF.
ENDLOOP.
WHEN 1.
error_text = text-030.
WHEN 2.
error_text = 'Document could not be sent to any recipient'(031).
WHEN 4.
error_text = 'No send authorization'(032).
WHEN OTHERS.
error_text = 'Error occurred while sending'(033).
ENDCASE.
IF NOT ( error_text IS INITIAL ).
CONCATENATE 'Mail send Error : '(034) error_text INTO error_text.
PERFORM WRITE_LOG(YEFAP_APERAK) USING ERROR_TEXT.
PERFORM write_log(zwfi_yefap_bank_report) USING error_text.
ENDIF.
CALL FUNCTION 'LIST_FREE_MEMORY'
TABLES
listobject = listobject
EXCEPTIONS
OTHERS = 1.
When I excute the same program in the foreground, Attachment in the mail is showing all the pages of the report output.
But when I excute the same program in the background only last page is shown in the mail attachemnt.
I think the problem is with the function module SAVE_LIST function module.
I replaced the SAVE_LIST function module with LIST_TO_MEMORY and LIST_FROM_MEMORY function modules.
It is also giving the same result.
In the foreground excution email attachemnt showing all the pages and in the background excution only last page is shown in the attachemnt.
I want all the pages dispalyed in the background mode excution in the email attachment.
How to slove this issue.
Thanks in advance.
RajaI have seen this problem before. Please have a look at this example program. This works very well when ran in background as well as foreground
* This program works in the background,
report zrich_0003 .
data: maildata like sodocchgi1.
data: mailtxt like solisti1 occurs 10 with header line.
data: mailrec like somlrec90 occurs 0 with header line.
data: list type table of abaplist with header line.
data: ascilines(1024) type c occurs 0 with header line.
data: htmllines type table of w3html with header line.
parameters: p_check.
start-of-selection.
submit zrich_0004 exporting list to memory and return.
call function 'LIST_FROM_MEMORY'
tables
listobject = list
exceptions
not_found = 1
others = 2.
call function 'LIST_TO_ASCI'
tables
listobject = list
listasci = ascilines
exceptions
empty_list = 1
list_index_invalid = 2
others = 3.
call function 'WWW_HTML_FROM_LISTOBJECT'
tables
html = htmllines
listobject = list.
clear: maildata, mailtxt, mailrec.
refresh: mailtxt, mailrec.
maildata-obj_name = 'TEST'.
maildata-obj_descr = 'Test Subject'.
loop at htmllines.
mailtxt = htmllines.
append mailtxt.
endloop.
mailrec-receiver = '[email protected]'.
mailrec-rec_type = 'U'.
append mailrec.
call function 'SO_NEW_DOCUMENT_SEND_API1'
exporting
document_data = maildata
document_type = 'HTM'
put_in_outbox = 'X'
tables
object_header = mailtxt
object_content = mailtxt
receivers = mailrec
exceptions
too_many_receivers = 1
document_not_sent = 2
document_type_not_exist = 3
operation_no_authorization = 4
parameter_error = 5
x_error = 6
enqueue_error = 7
others = 8.
if sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
commit work.
wait up to 2 seconds.
submit rsconn01 with mode = 'INT'
with output = 'X'
and return.
Regards,
Rich Heilman -
Closing the report background engine
hi friends,
i have tried using add_parameter function with ORACLE_SHUTDOWN=YES
BUT THE Engine doesn't close in fact it shows the first report as in prview and the another report which I am trying to run in forms as waiting.
is there any particular sequence for this syntax?
manojManoj,
you didn't mention a release version. ORACLE_SHUTDOWN=YES was filed as a bug for Forms 6.0 and was fixed for Forms 6i (6.0.8). Using Run_Reports_Object() instead of Run_Product and passing ORACLE_SHUTDOWN=YES as an argument of REPORT_OTHER will work even before.
Frank -
Closing the report generating engine automatically
how can i close the report generating engine after displaying a report automatically ie when closing the report window the report generating engine also need to be closed. now i have to manually close the report background window also and it becomes annoying to users . i am using the rdf files and not rep files.
There is a parameter ORACLE_SHUTDOWN. Set it to YES.
When you have large, complex reports, the Reports Background engine sometimes eats lots of memory and leads to GPF. If you have lots of GPF when running a report, you should use this parameter.
null -
Closing Oracle Background Engine Window.
Hello,
I am working on Oracle Reports 6.0. When I run any report Oracle Background Engine Window opens & show which report is running. But after closing report still that window remains as it is. It there any way to close that window onces I complited report.
null<BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by Vijay ([email protected]):
Hello,
I am working on Oracle Reports 6.0. When I run any report Oracle Background Engine Window opens & show which report is running. But after closing report still that window remains as it is. It there any way to close that window onces I complited report.
<HR></BLOCKQUOTE>
I guess it's designed so that it does not have to reload the Background Engine everytime you run the next report.
Maybe in your case you do not run reports frequently, but in our office report runs are quite often so it's a feature that is quite welcomed.
null -
Closing the Report Viewer causes the application to hang
Hi,
Since a few days we are experiencing some problems with the Crystal Reports viewer. When closing a report viewer in our application, the application hangs for a few minutes. The strange thing is, that it only seems to happen on Windows 7 and Windows 2008 R2 Server.
Our application with the integrated Crystal Report Viewer is running on 2 application servers :
- Windows 2008 Server, versie 6.0 Build 6002, Service Pack 2
- Windows 2008 R2 Server versie 6.1, Build 7600
Crystal Reports version installed on both servers : 12.01.0007.1144
On the 2008 Server, the application works correctly.
On the 2008 R2 server, the application hangs for about 5 minutes while closing the report preview window.
Both server have exactly the same version of Crystal Reports and the same application version.
I'm having the same issue on a Windows 7 x64 (6.1 Build 7600).
I've installed all updates and hotfixes up to SP3 Fix Pack (12.3.3.812 / 12.3.2003.812) but I'm still having the same problem.
We didn't have this problem until a few days ago, so I assume it has something to do with a windows update which only affects Windows 7 and Windows 2008 R2.
Please advice us with a possible workaround, because our application is distributed to a few thousand users ...
Some more debug info :
This is the call of from the main thread when the application hangs :
[Managed to Native Transition]
> mscorlib.dll!System.__ComObject.ReleaseSelf() + 0x5 bytes
mscorlib.dll!System.Runtime.InteropServices.Marshal.ReleaseComObject(object o) + 0x8b bytes
CrystalDecisions.Shared.dll!CrystalDecisions.Shared.SharedUtils.ReleaseComObject(object obj = {CrystalDecisions.ReportAppServer.ClientDoc.ReportClientDocumentClass}) + 0x75 bytes
CrystalDecisions.CrystalReports.Engine.dll!CrystalDecisions.ReportAppServer.ISCDClientDocumentEvents_EventProvider.Dispose(bool bDisposeManaged = true) + 0x1a2 bytes
CrystalDecisions.CrystalReports.Engine.dll!CrystalDecisions.ReportAppServer.ISCDClientDocumentEvents_EventProvider.Dispose() + 0x32 bytes
CrystalDecisions.CrystalReports.Engine.dll!CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.DisconnectEventRelay() + 0xfc bytes
CrystalDecisions.CrystalReports.Engine.dll!CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.InternalClose(bool bSetupForNextReport = false, bool bAutoClose = true) + 0x10e bytes
CrystalDecisions.CrystalReports.Engine.dll!CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.Dispose(bool bDisposeManaged = true) + 0xad bytes
System.dll!System.ComponentModel.Component.Dispose() + 0x12 bytes
CrystalDecisions.CrystalReports.Engine.dll!CrystalDecisions.CrystalReports.Engine.ReportDocument.ClearCache(bool clearDocument = true) + 0x9d bytes
CrystalDecisions.CrystalReports.Engine.dll!CrystalDecisions.CrystalReports.Engine.ReportDocument.InternalClose(bool bSetupForNextReport = true) + 0x81 bytes
CrystalDecisions.CrystalReports.Engine.dll!CrystalDecisions.CrystalReports.Engine.ReportDocument.Close() + 0x3f bytes
SyDelSoftControlLibCrystalReports.dll!SyDelSoft.ControlLib.CrystalReports.cReportForm.Dispose(bool disposing = true) + 0x55 bytes
SDProjects.exe!SDProjects.GUI.ReportForm.Dispose(bool disposing) + 0x38 bytes
SharedUtils.ReleaseComObject
Kind regards,
Frederic HoornaertCrystalReportsDisposeIssue.crpe.Diagnostics.0.log
--> Form3 closed
..\..\src\print\datasource\datasrc2.cpp:535,Releasing subreport data sources,Start Time,"17:39:17"
N/A:-1,Releasing subreport data sources,Elapsed Time,"1"
..\..\src\crpe\crpe.cpp:791,Closing engine,Start Time,"17:39:17"
..\..\src\crpe\crpe.cpp:833,Closing engine,Before close engine use count,"7"
..\..\src\crpe\crpe.cpp:858,Closing engine,After close engine use count,"6"
N/A:-1,Closing engine,Elapsed Time,"2"
..\..\src\crpe\crpe.cpp:791,Closing engine,Start Time,"17:39:17"
..\..\src\crpe\crpe.cpp:833,Closing engine,Before close engine use count,"6"
..\..\src\crpe\crpe.cpp:858,Closing engine,After close engine use count,"5"
N/A:-1,Closing engine,Elapsed Time,"2"
--> Form2 closed
..\..\src\print\datasource\datasrc2.cpp:535,Releasing subreport data sources,Start Time,"17:39:52"
N/A:-1,Releasing subreport data sources,Elapsed Time,"1"
..\..\src\crpe\crpe.cpp:791,Closing engine,Start Time,"17:39:52"
..\..\src\crpe\crpe.cpp:833,Closing engine,Before close engine use count,"4"
..\..\src\crpe\crpe.cpp:858,Closing engine,After close engine use count,"3"
N/A:-1,Closing engine,Elapsed Time,"2"
--> Form1 closed..\..\src\print\datasource\datasrc2.cpp:535,Releasing subreport data sources,Start Time,"17:40:29"
N/A:-1,Releasing subreport data sources,Elapsed Time,"1"
..\..\src\crpe\crpe.cpp:791,Closing engine,Start Time,"17:40:29"
..\..\src\crpe\crpe.cpp:833,Closing engine,Before close engine use count,"2"
..\..\src\crpe\crpe.cpp:858,Closing engine,After close engine use count,"1"
N/A:-1,Closing engine,Elapsed Time,"2"
..\..\src\crpe\crpe.cpp:791,Closing engine,Start Time,"17:40:29"
..\..\src\crpe\crpe.cpp:833,Closing engine,Before close engine use count,"1"
..\..\src\crpe\crpe.cpp:858,Closing engine,After close engine use count,"0"
N/A:-1,Closing engine,Elapsed Time,"100017"
CrystalReportsDisposeIssue.crpe.functions.0.log
0xfb8 17:39:17.871 0 PESetUserSessionInfo 0 PEUserSessionInfoW:<StructSize:262><userName:><requestID:22> IN 21 <==
0xfb8 17:39:17.871 0 0 PESetUserSessionInfo 0 OUT PEUserSessionInfoW:<StructSize:262><userName:><requestID:22> 21 <==
0xfb8 17:39:17.874 3 PEClosePrintJob report {657D0ECA-BC6A-4EC6-9476-02B77376E07C}.rpt 0 jobN:3 IN 22 <==
0xfb8 17:39:17.874 36 3 PEClosePrintJob report {657D0ECA-BC6A-4EC6-9476-02B77376E07C}.rpt 0 OUT jobN:3 22 <==
0xfb8 17:39:17.913 0 PECloseEngine 0 void IN 22 <==
0xfb8 17:39:17.913 3 0 PECloseEngine 0 OUT void 22 <==
0xfb8 17:39:17.923 0 PECloseEngine 0 void IN 0 <==
0xfb8 17:39:17.923 3 0 PECloseEngine 0 OUT void 0 <==
0xfb8 17:39:52.421 0 PESetUserSessionInfo 0 PEUserSessionInfoW:<StructSize:262><userName:><requestID:23> IN 0 <==
0xfb8 17:39:52.421 0 0 PESetUserSessionInfo 1032 OUT PEUserSessionInfoW:<StructSize:262><userName:><requestID:23> 0 <==
0xfb8 17:39:52.423 1 PEClosePrintJob report {F2574C5C-00BC-4627-9A05-B8133D6E6F7D}.rpt 0 jobN:1 IN 0 <==
0xfb8 17:39:52.423 15 1 PEClosePrintJob report {F2574C5C-00BC-4627-9A05-B8133D6E6F7D}.rpt 0 OUT jobN:1 0 <==
0xfb8 17:39:52.441 0 PECloseEngine 0 void IN 0 <==
0xfb8 17:39:52.441 3 0 PECloseEngine 1032 OUT void 0 <==
0xfb8 17:40:29.281 0 PESetUserSessionInfo 0 PEUserSessionInfoW:<StructSize:262><userName:><requestID:24> IN 0 <==
0xfb8 17:40:29.281 0 0 PESetUserSessionInfo 1032 OUT PEUserSessionInfoW:<StructSize:262><userName:><requestID:24> 0 <==
0xfb8 17:40:29.283 2 PEClosePrintJob report {C78FE11F-6465-478F-83AB-49D8F0C6D64A}.rpt 0 jobN:2 IN 0 <==
0xfb8 17:40:29.283 24 2 PEClosePrintJob report {C78FE11F-6465-478F-83AB-49D8F0C6D64A}.rpt 0 OUT jobN:2 0 <==
0xfb8 17:40:29.310 0 PECloseEngine 0 void IN 0 <==
0xfb8 17:40:29.310 2 0 PECloseEngine 1032 OUT void 0 <==
0x1568 17:40:29.315 0 PECloseEngine 0 void IN 0 <==
0x1568 17:40:29.315 100018 0 PECloseEngine 0 OUT void 0 <== -
Running the alv report in background and sending it thro email
hi,
i have to run the alv report in background and send the output through emailHi
Many a times there is a requirement to display ALV Grid (not ALV List) in the background Job. I have checked the SDN Forum for the same and it has been mentioned that ALV Grid cannot be displayed in Background, but the list output of ALV is possible. So user wont have the actual Grid interface but the List interface.
There is a workaround to display ALV Grid in Background Job. The only restriction is you cant schedule the job through SM36. You need to execute the transaction of the report program, fill in the selection screen data and hit Execute.
The job would be executed in background. User will be able to see the Job Log and Job Status after executing the program. User doesnt have to go to SM37 to view the job status/log. Once the Job Status is changed to COMPLETED, user can click on DISPLAY SPOOL to view the ALV Grid.
Limitations:
Cant schedulea background job
The session should be active until the background job is completed. If the session is closed, then user wont be able to check the output in ALV Grid. User would be able to check the output through spool or SM37
Advantages:
If the spool width is greater than 255 characters, then the entire width could be seen in the output because the output is directed to an ALV Grid and not to spool
Interface of ALV Grid is available instead of ALV List even though its a background job.
Program wont give the TIME OUT error
Steps Required:
1. Once you execute the program, the following screen would be displayed
2. Click Display Job Status to check the Status of the Background Job
3. Click on Display the Job Log to check the Log
4. Click on Display Job Status to check the Job Status
5. Click on DISPLAY SPOOL to check the spool content once the Job Status is changed to COMPLETED. Output is displayed in ALV Grid
Programs:
1. Two different programs needs to be created
ZPROGRAM_ONE: This is the 1st program, where the selection screen and all the data validations would be done. Error handling for invalid data should be done in this program.
Once the data validation is done, this program would call the 2nd program ZPROGEAM_TWO. Build the logic to display ALV Grid in this program. The logic will only display ALV in foreground and it wont be reflected in the spool.
ZPROGRAM_TWO: This program would fetch all the data and do all the processing. If you want the spool output along with ALV Grid output, then build the logic in this program to display ALV Grid.
*& Report ZPROGRAM_ONE *
REPORT zprogram_one .
PRASHANT PATIL
TABLES : mara,
tsp01.
type-pools:slis.
TYPES : BEGIN OF t_mara,
matnr TYPE mara-matnr,
ersda TYPE mara-ersda,
ernam TYPE mara-ernam,
laeda TYPE mara-laeda,
END OF t_mara.
DATA : i_mara TYPE STANDARD TABLE OF t_mara,
wa_mara TYPE t_mara,
wa_index TYPE indx, " For Index details
wa_index_key TYPE indx-srtfd VALUE 'PRG_ONE',
i_jobsteplist TYPE STANDARD TABLE OF tbtcstep, " For spool number
wa_params TYPE pri_params, " To Get Print Parameters
wa_jobhead TYPE tbtcjob, " To know the status of job
wa_jobsteplist TYPE tbtcstep, " To know the spool
w_jobname TYPE tbtco-jobname, " Job name for bckgrnd job
w_jobcount TYPE tbtco-jobcount, " Unique id for bckgrd job
w_path TYPE string, " Upload path
w_lsind TYPE sy-lsind, " Index
wa_seltab TYPE rsparams,
i_seltab TYPE STANDARD TABLE OF rsparams,
wa_index1 TYPE indx, " For Index details
wa_index_key1 TYPE indx-srtfd VALUE 'PRG_TWO',
i_fieldcat TYPE slis_t_fieldcat_alv,
wa_fieldcat LIKE LINE OF i_fieldcat.
CONSTANTS DECLARATION *
CONSTANTS :
c_a(1) TYPE c VALUE 'A',
c_m(1) TYPE c VALUE 'M',
c_l(1) TYPE c VALUE 'L',
c_c(1) TYPE c VALUE 'C',
c_zfdr(4) TYPE c VALUE 'ZFDR',
c_x(1) TYPE c VALUE 'X',
c_locl(4) TYPE c VALUE 'LOCL', " Destination is LOCAL
c_f(1) TYPE c VALUE 'F', " Job Status - Failed
c_s(1) TYPE c VALUE 'S',
c_p(1) TYPE c VALUE 'P'.
SELECTION SCREEN PARAMETERS
SELECT-OPTIONS : s_matnr FOR mara-matnr.
START-OF-SELECTION.
Before the export, fill the data fields before CLUSTR
wa_index-aedat = sy-datum.
wa_index-usera = sy-uname.
EXPORT s_matnr
TO DATABASE indx(st) FROM wa_index ID wa_index_key.
To Open the Job for background processing
PERFORM open_job.
To get the print parameters
PERFORM get_print_parameters.
Submit the job in background
PERFORM job_submit.
Close the background job
PERFORM job_close.
This is the output screen with the buttons ********
Create 3 buttons DISPLAY SPOOL, STATUS, JOBLOG
SET PF-STATUS 'ZS001'.
WRITE: / 'The program is submitted in Background'.
WRITE: / 'Press DISPLAY SPOOL to see the spool'.
WRITE: / 'Press STATUS to see the status of the background'.
AT USER-COMMAND.
If user presses the 'BACK' button
IF sy-ucomm = 'BAK'.
IF wa_jobhead-status = c_f OR
wa_jobhead-status = c_a.
LEAVE TO SCREEN 0.
ENDIF.
ENDIF.
If the user presses the 'DISPLAY SPOOL' Button
IF sy-ucomm = 'DISPLAY'.
PERFORM display_spool.
ENDIF.
If the user presses the 'JOB STATUS' Button
IF sy-ucomm = 'STATUS'.
PERFORM display_status.
ENDIF.
If the user presses the 'JOB LOG' Button
IF sy-ucomm = 'JOBLOG'.
PERFORM display_job_log.
ENDIF.
*& Form open_job
text
--> p1 text
<-- p2 text
FORM open_job .
This is to Create a new job which is to be submitted in background to
process sales order/delivery/invoice
Here we would get a unique id ( Jobcount ) which identifies our job
along with the job name which we have assigned to our job
CONCATENATE sy-uname
sy-datum
sy-uzeit
INTO w_jobname . " Assign unique jobname
CALL FUNCTION 'JOB_OPEN'
EXPORTING
DELANFREP = ' '
JOBGROUP = ' '
jobname = w_jobname
SDLSTRTDT = NO_DATE
SDLSTRTTM = NO_TIME
JOBCLASS =
IMPORTING
jobcount = w_jobcount
CHANGING
RET =
EXCEPTIONS
cant_create_job = 1
invalid_job_data = 2
jobname_missing = 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.
ENDIF.
ENDFORM. " open_job
*& Form get_print_parameters
text
--> p1 text
<-- p2 text
FORM get_print_parameters .
DATA : l_valid TYPE c.
This is to get the Print Parameters for the job which is to be
submitted in background to process sales order/delivery/invoice
CALL FUNCTION 'GET_PRINT_PARAMETERS'
EXPORTING
ARCHIVE_ID = C_CHAR_UNKNOWN
ARCHIVE_INFO = C_CHAR_UNKNOWN
ARCHIVE_MODE = C_CHAR_UNKNOWN
ARCHIVE_TEXT = C_CHAR_UNKNOWN
AR_OBJECT = C_CHAR_UNKNOWN
ARCHIVE_REPORT = C_CHAR_UNKNOWN
AUTHORITY = C_CHAR_UNKNOWN
COPIES = C_NUM3_UNKNOWN
COVER_PAGE = C_CHAR_UNKNOWN
DATA_SET = C_CHAR_UNKNOWN
DEPARTMENT = C_CHAR_UNKNOWN
destination = c_locl " LOCL
EXPIRATION = C_NUM1_UNKNOWN
immediately = space
IN_ARCHIVE_PARAMETERS = ' '
IN_PARAMETERS = ' '
LAYOUT = C_CHAR_UNKNOWN
LINE_COUNT = C_INT_UNKNOWN
LINE_SIZE = C_INT_UNKNOWN
LIST_NAME = C_CHAR_UNKNOWN
LIST_TEXT = C_CHAR_UNKNOWN
MODE = ' '
new_list_id = c_x
PROTECT_LIST = C_CHAR_UNKNOWN
no_dialog = c_x
RECEIVER = C_CHAR_UNKNOWN
RELEASE = C_CHAR_UNKNOWN
REPORT = C_CHAR_UNKNOWN
SAP_COVER_PAGE = C_CHAR_UNKNOWN
HOST_COVER_PAGE = C_CHAR_UNKNOWN
PRIORITY = C_NUM1_UNKNOWN
SAP_OBJECT = C_CHAR_UNKNOWN
TYPE = C_CHAR_UNKNOWN
user = sy-uname
USE_OLD_LAYOUT = ' '
UC_DISPLAY_MODE = C_CHAR_UNKNOWN
DRAFT = C_CHAR_UNKNOWN
ABAP_LIST = ' '
USE_ARCHIVENAME_DEF = ' '
DEFAULT_SPOOL_SIZE = C_CHAR_UNKNOWN
PO_FAX_STORE = ' '
NO_FRAMES = C_CHAR_UNKNOWN
IMPORTING
OUT_ARCHIVE_PARAMETERS =
out_parameters = wa_params
valid = l_valid
EXCEPTIONS
archive_info_not_found = 1
invalid_print_params = 2
invalid_archive_params = 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.
ENDIF.
ENDFORM. " get_print_parameters
*& Form job_submit
text
--> p1 text
<-- p2 text
FORM job_submit .
The job which we have created & the unique id ( jobcount ) which we
have got identifies our job. Hence those parameters are passed along
with the name of the background program "ZPROGRAM_TWO"
The job is submitted in background.
CALL FUNCTION 'JOB_SUBMIT'
EXPORTING
ARCPARAMS =
authcknam = sy-uname
COMMANDNAME = ' '
OPERATINGSYSTEM = ' '
EXTPGM_NAME = ' '
EXTPGM_PARAM = ' '
EXTPGM_SET_TRACE_ON = ' '
EXTPGM_STDERR_IN_JOBLOG = 'X'
EXTPGM_STDOUT_IN_JOBLOG = 'X'
EXTPGM_SYSTEM = ' '
EXTPGM_RFCDEST = ' '
EXTPGM_WAIT_FOR_TERMINATION = 'X'
jobcount = w_jobcount
jobname = w_jobname
LANGUAGE = SY-LANGU
priparams = wa_params
report = 'ZPROGRAM_TWO'
VARIANT = ' '
IMPORTING
STEP_NUMBER =
EXCEPTIONS
bad_priparams = 1
bad_xpgflags = 2
invalid_jobdata = 3
jobname_missing = 4
job_notex = 5
job_submit_failed = 6
lock_failed = 7
program_missing = 8
prog_abap_and_extpg_set = 9
OTHERS = 10
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. " job_submit
*& Form job_close
text
--> p1 text
<-- p2 text
FORM job_close .
Once the job is submitted in background then the job is closed
CALL FUNCTION 'JOB_CLOSE'
EXPORTING
AT_OPMODE = ' '
AT_OPMODE_PERIODIC = ' '
CALENDAR_ID = ' '
EVENT_ID = ' '
EVENT_PARAM = ' '
EVENT_PERIODIC = ' '
jobcount = w_jobcount
jobname = w_jobname
LASTSTRTDT = NO_DATE
LASTSTRTTM = NO_TIME
PRDDAYS = 0
PRDHOURS = 0
PRDMINS = 0
PRDMONTHS = 0
PRDWEEKS = 0
PREDJOB_CHECKSTAT = ' '
PRED_JOBCOUNT = ' '
PRED_JOBNAME = ' '
SDLSTRTDT = NO_DATE
SDLSTRTTM = NO_TIME
STARTDATE_RESTRICTION = BTC_PROCESS_ALWAYS
strtimmed = c_x
TARGETSYSTEM = ' '
START_ON_WORKDAY_NOT_BEFORE = SY-DATUM
START_ON_WORKDAY_NR = 0
WORKDAY_COUNT_DIRECTION = 0
RECIPIENT_OBJ =
TARGETSERVER = ' '
DONT_RELEASE = ' '
TARGETGROUP = ' '
DIRECT_START =
IMPORTING
JOB_WAS_RELEASED =
CHANGING
RET =
EXCEPTIONS
cant_start_immediate = 1
invalid_startdate = 2
jobname_missing = 3
job_close_failed = 4
job_nosteps = 5
job_notex = 6
lock_failed = 7
invalid_target = 8
OTHERS = 9
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. " job_close
*& Form display_spool
text
--> p1 text
<-- p2 text
FORM display_spool .
To Read the Job to get the spool details
DATA : l_rqident TYPE tsp01-rqident, " Spool Number
l_spoolno TYPE tsp01_sp0r-rqid_char.
CLEAR : l_rqident,
w_lsind,
wa_jobsteplist.
REFRESH : i_jobsteplist.
SET PF-STATUS 'ZAR02'.
Get the Spool Number
CALL FUNCTION 'BP_JOB_READ'
EXPORTING
job_read_jobcount = w_jobcount
job_read_jobname = w_jobname
job_read_opcode = '20'
JOB_STEP_NUMBER =
IMPORTING
job_read_jobhead = wa_jobhead
TABLES
job_read_steplist = i_jobsteplist
CHANGING
RET =
EXCEPTIONS
invalid_opcode = 1
job_doesnt_exist = 2
job_doesnt_have_steps = 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.
ENDIF.
Read the Job Step list to get the spool number
READ TABLE i_jobsteplist INTO wa_jobsteplist INDEX 1.
CHECK wa_jobsteplist-listident <> space.
Spool Number
l_rqident = wa_jobsteplist-listident.
MOVE l_rqident TO l_spoolno.
Check the spool in TSP01
SELECT SINGLE * FROM tsp01 WHERE rqident = l_rqident.
IF sy-subrc = 0.
LEAVE TO LIST-PROCESSING.
CALL FUNCTION 'RSPO_R_RDELETE_SPOOLREQ'
EXPORTING
spoolid = l_spoolno
IMPORTING
RC =
STATUS =
PERFORM show_alv.
ENDIF.
w_lsind = sy-lsind.
IF sy-lsind GE 19.
sy-lsind = 1.
ENDIF.
ENDFORM. " display_spool
*& Form show_alv
text
--> p1 text
<-- p2 text
FORM show_alv .
Before the import, fill the data fields before CLUSTR.
wa_index1-aedat = sy-datum.
wa_index1-usera = sy-uname.
To Import the selection screen data from Calling Program
IMPORT i_mara
FROM DATABASE indx(st) ID wa_index_key1 TO wa_index1.
FREE MEMORY ID wa_index_key1.
This prepares the field-catalog for ALV.
PERFORM prepare_fieldcatalog.
This displays the output in ALV format .
PERFORM display_alv.
ENDFORM. " show_alv
*& Form display_status
text
--> p1 text
<-- p2 text
FORM display_status .
To Display the STATUS of the JOB which is exectued in background
CLEAR : wa_jobsteplist.
REFRESH : i_jobsteplist.
WRITE:/ 'DISPLAYING JOB STATUS'.
CALL FUNCTION 'BP_JOB_READ'
EXPORTING
job_read_jobcount = w_jobcount
job_read_jobname = w_jobname
job_read_opcode = '20'
JOB_STEP_NUMBER =
IMPORTING
job_read_jobhead = wa_jobhead
TABLES
job_read_steplist = i_jobsteplist
CHANGING
RET =
EXCEPTIONS
invalid_opcode = 1
job_doesnt_exist = 2
job_doesnt_have_steps = 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.
ENDIF.
To Display the status text as per the status type
CASE wa_jobhead-status.
WHEN 'S'. WRITE: / 'Scheduled'.
WHEN 'R'. WRITE: / 'Released'.
WHEN 'F'. WRITE: / 'Completed'.
WHEN 'A'. WRITE: / 'Cancelled'.
WHEN OTHERS.
ENDCASE.
IF sy-lsind GE 19.
sy-lsind = 1.
ENDIF.
ENDFORM. " display_status
*& Form display_job_log
text
--> p1 text
<-- p2 text
FORM display_job_log .
To display the log of the background program
LEAVE TO LIST-PROCESSING.
CALL FUNCTION 'BP_JOBLOG_SHOW_SM37B'
EXPORTING
client = sy-mandt
jobcount = w_jobcount
joblogid = ' '
jobname = w_jobname
EXCEPTIONS
error_reading_jobdata = 1
error_reading_joblog_data = 2
jobcount_missing = 3
joblog_does_not_exist = 4
joblog_is_empty = 5
joblog_show_canceled = 6
jobname_missing = 7
job_does_not_exist = 8
no_joblog_there_yet = 9
no_show_privilege_given = 10
OTHERS = 11.
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. " display_job_log
*& Form prepare_fieldcatalog
text
--> p1 text
<-- p2 text
FORM prepare_fieldcatalog .
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'MATNR'.
wa_fieldcat-tabname = 'I_MARA'.
wa_fieldcat-reptext_ddic = 'Material no.'.
wa_fieldcat-outputlen = '18'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'ERSDA'.
wa_fieldcat-tabname = 'I_MARA'.
wa_fieldcat-reptext_ddic = 'Creation date'.
wa_fieldcat-outputlen = '10'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'ERNAM'.
wa_fieldcat-tabname = 'I_MARA'.
wa_fieldcat-reptext_ddic = 'Name of Person'.
wa_fieldcat-outputlen = '10'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'LAEDA'.
wa_fieldcat-tabname = 'I_MARA'.
wa_fieldcat-reptext_ddic = ' Last Change'.
wa_fieldcat-outputlen = '10'.
APPEND wa_fieldcat TO i_fieldcat.
ENDFORM. " prepare_fieldcatalog
*& Form display_alv
text
--> p1 text
<-- p2 text
FORM display_alv .
Call ABAP List Viewer (ALV)
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
it_fieldcat = i_fieldcat
tables
t_outtab = i_mara.
ENDFORM. " display_alv
ZPROGRAM_TWO: This is the 2nd program which would be called from program ZPROGRAM_ONE.
*& Report ZPROGRAM_TWO *
REPORT zprogram_two .
PRASHANT PATIL
TABLES : mara.
TYPE-POOLS:slis.
TYPES : BEGIN OF t_mara,
matnr TYPE mara-matnr,
ersda TYPE mara-ersda,
ernam TYPE mara-ernam,
laeda TYPE mara-laeda,
END OF t_mara.
DATA : i_mara TYPE STANDARD TABLE OF t_mara,
wa_mara TYPE t_mara,
wa_index TYPE indx, " For Index details
wa_index_key TYPE indx-srtfd VALUE 'PRG_ONE',
wa_index1 TYPE indx, " For Index details
wa_index_key1 TYPE indx-srtfd VALUE 'PRG_TWO',
i_fieldcat TYPE slis_t_fieldcat_alv,
wa_fieldcat LIKE LINE OF i_fieldcat.
SELECT-OPTIONS : s_matnr FOR mara-matnr.
Before the import, fill the data fields before CLUSTR.
wa_index-aedat = sy-datum.
wa_index-usera = sy-uname.
To Import the selection screen data from Calling Program
IMPORT s_matnr
FROM DATABASE indx(st) ID wa_index_key TO wa_index.
FREE MEMORY ID wa_index_key.
SELECT matnr
ersda
ernam
laeda
FROM mara
INTO TABLE i_mara
WHERE matnr IN s_matnr.
PERFORM prepare_fieldcatalog.
PERFORM display_alv.
Before the export, fill the data fields before CLUSTR
wa_index1-aedat = sy-datum.
wa_index1-usera = sy-uname.
EXPORT i_mara
TO DATABASE indx(st) FROM wa_index1 ID wa_index_key1.
*& Form prepare_fieldcatalog
text
--> p1 text
<-- p2 text
FORM prepare_fieldcatalog .
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'MATNR'.
wa_fieldcat-tabname = 'I_MARA'.
wa_fieldcat-outputlen = '18'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'ERSDA'.
wa_fieldcat-tabname = 'I_MARA'.
wa_fieldcat-outputlen = '10'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'ERNAM'.
wa_fieldcat-tabname = 'I_MARA'.
wa_fieldcat-outputlen = '10'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'LAEDA'.
wa_fieldcat-tabname = 'I_MARA'.
wa_fieldcat-outputlen = '10'.
APPEND wa_fieldcat TO i_fieldcat.
ENDFORM. " prepare_fieldcatalog
*& Form display_alv
text
--> p1 text
<-- p2 text
FORM display_alv .
Call ABAP List Viewer (ALV)
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
it_fieldcat = i_fieldcat
TABLES
t_outtab = i_mara.
ENDFORM. " display_alv
its possible to display ALV Grid using OO ALV. Following code can be used instead of FM.
In the PBO, add following code
SET PF-STATUS 'ZSTAT'.
If program is executed in background
CALL METHOD cl_gui_alv_grid=>offline
RECEIVING
e_offline = off.
IF off IS INITIAL.
IF container1 IS INITIAL.
CREATE OBJECT container1
EXPORTING
container_name = 'CC_ALV1' .
ENDIF.
ENDIF.
CREATE OBJECT g_grid1
EXPORTING
i_parent = container1.
CALL METHOD g_grid1->set_table_for_first_display
EXPORTING
I_BUFFER_ACTIVE =
I_BYPASSING_BUFFER =
I_CONSISTENCY_CHECK =
I_STRUCTURE_NAME =
IS_VARIANT =
i_save = 'A'
i_default = ' '
is_layout =
is_print =
IT_SPECIAL_GROUPS =
it_toolbar_excluding =
IT_HYPERLINK =
IT_ALV_GRAPHICS =
IT_EXCEPT_QINFO =
CHANGING
it_outtab = i_output
it_fieldcatalog = i_fieldcatalog
IT_SORT =
IT_FILTER =
EXCEPTIONS
invalid_parameter_combination = 1
program_error = 2
too_many_lines = 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.
ENDIF.
Reward points if useful
Regards
Anji -
Audio from flash sources are still playing in the background after their sources have been closed; audio also starts playing when I start the browser. Closing plugin-container.exe in task manager solves this, but I do not want to do this every time I have audio in the background that should not be there. Not a good move to launch a browser where the kinks haven't been worked out. Have tried to inactivate addons etc. This problem is related to FF5, but have also happened earlier, with FF4. Solved that time by moving to Chrome instead.
Sounds that the plugin-container process isn't closing properly.<br />
See http://kb.mozillazine.org/Plugin-container_and_out-of-process_plugins
There are other things that need attention.<br />
You have a corrupted Firefox 3.6.13 user agent: Firefox/2.0.0.14;MEGAUPLOAD 1.0
See:
* [[Web sites or add-ons incorrectly report incompatible browser]]
* http://kb.mozillazine.org/Resetting_your_useragent_string_to_its_compiled-in_default -
CR4E report(s) (using JRC 2.0) seem to still be running in the background
I enabled cr4j logging and am seeing that I am getting log output from reports on our dev system, when no user is still logged on to run the reports. I'm sure this is not good for performance, etc. Does anyone have any ideas?
We are running WebLogic 9.2.
Our properties files look like this:
CRConfig.xml
<?xml version="1.0" encoding="utf-8"?>
<CrystalReportEngine-configuration>
<!--<reportlocation>../..</reportlocation>-->
<timeout>10</timeout>
<ExternalFunctionLibraryClassNames>
<classname></classname>
</ExternalFunctionLibraryClassNames>
</CrystalReportEngine-configuration>
log4j.properties looks much like this - the only difference from the one currently running is that I've changed the name of the logfile and changed the logging levels from DEBUG to INFO, except that the one for formulas is now ERROR.
# log4j.properties
# Default log location
# crystal.logs.home=${user.home}
crystal.logs.home=.
log4j.appender.jpeAppender=org.apache.log4j.RollingFileAppender
# log4j.appender.jpeAppender.file=${crystal.logs.home}/jpe.log
log4j.appender.jpeAppender.file=./ReportViewer.log
log4j.appender.jpeAppender.ImmediateFlush=false
# number of log files to keep before deleting the oldest one
log4j.appender.jpeAppender.MaxBackupIndex=50
log4j.appender.jpeAppender.MaxFileSize=2500KB
# Log message layout: date-time [thread] priority category - message lineTerminator
log4j.appender.jpeAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.jpeAppender.layout.ConversionPattern=%d{dd MMM yyyy HH:mm:ss} [%t] %-5p %c - %m%n
log4j.rootLogger=INFO
# Covers all of the reporting engine
log4j.logger.com.crystaldecisions.reports=INFO, jpeAppender
log4j.logger.com.crystaldecisions.threedg=INFO, jpeAppender
log4j.logger.com.crystaldecisions.common=INFO, jpeAppender
# ---> More specific loggers can go here
# Log levels used by Log4j in ascending order are:
# debug, info, warn, error, and fatal
# Examples
log4j.logger.com.crystaldecisions.reports.formulas=ERROR
A snippet of the log looks like this; I don't know what "STUCK" means but it's probably not good?
Edited by: William Goss on Sep 23, 2009 11:54 PMTed,
You said...
When you see those entries, do you observe issues with report processing, or all reports processed ok?
Since we're still in dev mode, we've been running reports one at a time, so the main issue we've seen is that sometimes they're very slow.
That line snippet suggests it's merely in the process of processing the report.
What I want to see is what's triggering the report request, since the engine triggers only on report request.
I'll post the jsp code at the end of this reply.
Also, you'd need to clarify what you mean by "the jsp that kicked it off has been closed" - how do you "close" a jsp?
Good question. I suppose more accurately, I should have said, I close the DHTML viewer (browser window).
jsp code follows (in upcoming post; I temporarily am unable to access the dev system where the code resides). It is handed off an HTML request from Maximo that contains the report name, parameters entered by the user or generated by Maximo, and other information. The jsp then invokes the viewer. -
Report execution in the background
I execute a query in Bex, I recieve some warning messages and when I click 'OK' it formats and then gives me the results. But when the same query is executed in the background it fails due to rool over memory. How can this be solved?
Hi,
Find teh Message no in report and goto RSRT and give the report name and click on Messages button and then Supress the Message and execute the report, you get any message.
Just Tick the message in RSRT.
Thanks
Reddy -
Closing the Forms Background Page closes the Java-Window as well
Hi,
we are running Forms 10g and start the Applet in an separate window. This cannot be changed, because otherwise we lose some size of the Window and the Look and Feel is to different as with Client-Server mode.
If a User closes the Background-Window or starts a different URL in the Background-Window, the Java Applet is closed directly without any warning.
This isn't nice for the Users, but they have to live with it.
But if I'm running a couple of Forms-Sessions in the Applet maybe with Database-Locks as well, and somebody closes the BG-Window, those Forms-Sessions (frmweb.exe) keep running for ~ 5-10 Minutes and the Locks are kept as well.
Is this behaviour intentional or can it be changed ?
Any comments are welcome.
MarkHi Craig,
in principle I agree that it might be a training issue, but ...
the default setup for the IE at this customer-site is that Links don't open in a new window. We may change that, but who knows.
With this setting, the following happens quite normally.
Forms is started which leeds to the "Background-Window" and the Java-Applet.
If i minimize all windows and start f.e. Citrix or any other URL-Link, that link is opened in the Background-Window and the Forms-Java-Applet dies.
In theory this can be avoided by training, but I do not agree, that it is a reasonable behaviour to check all open windows before I start a new URL.
It just doesn't make sense in my opinion. It might be difficult to solve, but it still doesn't make sense.
But we've found a solution ourself at least for the accidential closing of the Backgrund-Window :
In formswegh.cfg we had a line like :
=======
HTMLbeforeForm=<_p align=center><_b>nicht schliessen</_b></_p><_p align=center><_b>sonst wird die</_b></_p><_p align=center><_b>Anwendung abgebrochen !</_b></_p>"
=======
we added an onBeforeUnload so that it looks like :
=======
HTMLbeforeForm=<_BODY onBeforeUnload="return ' Achtung Anwendung wird geschlossen !'"><_p align=center><_b>nicht schliessen</_b></_p><_p align=center><_b>sonst wird die</_b></_p><_p align=center><_b>Anwendung abgebrochen !</_b></_p>
=======
This leads to an "Is it OK"-question as soon as the BG-Windows is closed or another URL is called. This prohibits the Users of accident closing. If they still do it, it's their fault and than it is a training question.
Thanks for your input and maybe this help some others as well.
Mark
P.S.
the underlines before the p's and b's need to be deleted. Just because they are interpreted as HTML otherwise -
Why do I get a status of 'waiting' when I run a report in the background
Happy new Year Experts!!
I am working with Ad-hoc query and I run reports in the background. When I go to System > Own Spool Requests the status is always waiting. When I go to SM37 the status is complete. I can open the report from my own spools requests and it is completed.
Thanks.
Regards,
JeanetteGo to SM36-> Own jobs - double click the job - Select Edit-Steps - DOuble click the step and check print specifications.
Moreover, if you wanna make the job printed on finish, make sure that there is a default printer defined in SU3 - Defaults - Output device field.
Regards,
Dilek -
Can the width of a report that has been run in the background be increased?
Hello Experts,
How can I increase the width of a report that I have run in the background so that it does not wrap text to the next line?
I have been running the same HR report successfully in the background for many months. Today I ran it with the same parameters that I've always used and when I retrieve it from my Own Job Spool - System | Own Spool Request | Display Contents the last field is wrapped to the next line.
Thanks.
Regards,
JeanetteJeanette,
Thereu2019s another possibility if Tedu2019s suggestion doesnu2019t work. When you look at your spool requests, thereu2019s an icon on the toolbar next to the eyeglasses that looks like a yellow rectangular callout. Itu2019s called u201CDisplay in Maximum Widthu201D. Select the Spool no. to display and then press this icon. Shift + F4 is the shortcut.
Regards,
Howard
Maybe you are looking for
-
MRP Run in an excluded Storage Location
Hello all. I have this situation. I have material X with two storage locations: SL01 and SL02. Storage location SL01 has 15 pieces and SL02 has 5 pieces. In MD04, I can see a total of 20 pieces under the "Stock" MRP Element. Material X also has five
-
Hi, I have created a Blanket PO for general office supplies with Account Assignment as K and Item Category as B i.e. limit. Now, i am creating a invoice for this PO - wherein i have 2 issues - 1. The validity period of the PO is given as 1st July to
-
ITunes match subscription error
I am trying to subscribe to iTunes match from my Hungarian appleID but the "iTunes store is temporary available". is iTunes match actually available from the Hungarian iTunes store??
-
How to automate the build of CompositeApplication for different environment
Hi, I have a scenerio where i have to automate the build process of composite application. For Example : I have a Composite application currently configured for my DEV Environment. I have two more environments UAT, and IST on which the same Composite
-
Enable Purchase Order checkbox in Sales Order window
How do I enable the Purchase Order checkbox in Sales Order window when the form load?