Spool status
hi,
could i know in which table are the spool status like "Error", "Waiting" etc... that we see in sp01 stored.
cheers,
Aditya.
Hi Aditya,
<b>The table is TBTCP.</b>
You can use FM <b>BP_JOB_READ</b> to check the status.
The status would be available in JOB_READ_STEPLIST-STATUS.
Best regards,
Prashant
Pls mark points for helpful answers
Similar Messages
-
Hello Everyone
I have one problem. I have configured PO release in such way that when ever user will release and save PO , immediate print command will be sent.
Now i have two transactions ME29n and ME28 to release PO. At backend both transactions use the same program and form to print.
When i run ME28 , print command is sent immediately and i can see spool completed successfully in SP01.
When i run ME29n, 1st time i can see a message that PO is changed after save , but when i see spool, spool does not get created.
When i run ME29n, 2dn time for the same PO, if i go to check message setting and come back to main screen without doing any changes, and press save, spool gets generated and completed successfully.
I tried to debug both the transactions number of times, then in debug , both transactions ended up in giving me spool status 'Incorrect'.
(Don know the reason if this is due to debug or something else )
So i am not able to understand the reason behind this situation.Assist.
ThanksI am honestly unable to understand what exactly is the question (you need to be more specific, SDN is not a Help Desk). In the subject you're saying "incorrect" but then "can see spool completed successfully in SP01". Which one is true?
In any case, my guess is that you need to change the output configuration. If it is required to perform two transactions then the output should not be triggered until the second transaction completes. There is also separate configuration for the initial output and output for changes in POs. And, on top of that, in SP01 you should be able to see an explanation what is "incorrect".
Actually this is not really an ABAP question but the output configuration, so ask your MM/PTP consultant. -
Spool status - error no authorization
Hi All,
There is a background job which is generating the report in spool. It has the status has Incorrect (No authorization).
It has total number of pages: 3.000 and giving the error as "No authorization for this number of pages".
how and where to provide the authorization to avoid this error.
Thanks in advance.
Regards
Ramesh.Hi,
have a look into authorityobjekt: S_SPO_PAGE.
Hope it helps.
Regards, Dieter -
Help please - when printing to adobe pdf, this hangs and stays in spool status
Can someone help assist and troubleshoot this problem I'm facing with printing to pdf.
The background is I provided a vendor a Word converted PDF document approval letter to upload into the system. While UAT testing, we are not able to print to PDF - hangs in print spool.
However the document checklist that had been uploaded into the system, properly prints to pdf (see page 2 attached). Is there any way to debug or determine the root cause since the vendor believes that they have delivered a product that works from their perspective and suggest it's an Adobe issue.Hi,
Could you please provide both the word documents(one that prints and the other that does not print) ? This would be helpful in isolating the issue.
Thanks,
Swati
[email protected] -
Spool with 'Eror' status.
When i print the invoices, it gets printed correctly with spool status as 'Completed' for some of the local output device (LOCL,HOLE) but for the output device(ZPDF( PDF output using Email)), spool is getting created with 'Error' status.
When i checked the log for error status, its coming as 'Character converter active when first problem occured'.Hi Ashish,
Check with the basis team for the log error ....
Regards,
Sravanthi -
Hii everybody,
I am not able to generate the background spool list for this report. When executed in background, the job shows successful execution, but when I see spool status, it shows waiting and the spool has incomplete list. The bottom part of the spool list has all vertical lines... Any guesses what might be the problem? I am able to see the output when report ran in foreground. It is an ALV grid report.
PLese reply me fast as it is urgent.
M AHope you have end spool writing with new-page print off.
form write_to_spool.
data : l_params type pri_params, "new spool params
l_destination type pri_params-pdest value 'LOCL'. "printer name
*Get the print parameters.
call function 'GET_PRINT_PARAMETERS'
EXPORTING
copies = 1
department = 'SYSTEM'
destination = l_destination
expiration = 2
immediately = ' '
layout = 'X_65_255'
line_count = 65
line_size = 255
list_name = 'XYZ'
list_text = 'ABC'
mode = ' '
new_list_id = 'X'
no_dialog = 'X'
receiver = 'SAP*'
release = 'X'
sap_cover_page = 'X'
user = sy-uname
IMPORTING
out_parameters = l_params
EXCEPTIONS
archive_info_not_found = 1
invalid_print_params = 2
invalid_archive_params = 3
others = 4.
case sy-subrc.
when 1.
raise get_print_info_not_found.
when 2.
raise get_print_invalid_prt_params.
when 3.
raise get_print_invalid_arch_params.
when 4.
raise get_print_others.
endcase.
*start spool writing.
new-page print on parameters l_params no dialog.
uline.
skip.
write your contents
uline.
*end spool writing.
new-page print off.
endform. " write_to_spool -
Printer Status (HP LaserJet 400 M401dn)
I'm using printer in software and I need to know status of printer (jam/toner low/paper etc.).
PJL status for my HP LaserJet 400 M401dn always return code "10023" (even if door opened, no cartridge, jam); same issue in this thread: http://h30434.www3.hp.com/t5/Printing-Issues-Troubleshooting/LaserJet-CP1525n-Color-PJL-INFO-STATUS/...
I also tried to get Windows spooler status, it was not informative, too.
But HP notification software always sends message on "opened door" and even on "no paper". Could I somehow get similar status for printer?Hi,
Based on the following link, it does not have wireless capability but it has a LAN port:
http://www8.hp.com/au/en/products/printers/product-detail.html?oid=5096262#!tab=specs
The Airport Extreme has 3 LAN ports:
http://www.apple.com/au/airport-extreme/specs/
Therefore you can connect the printer to one port using normal CAT5e or CAT6 cable and the printer will work similar to this:
Regards.
BH
**Click the KUDOS thumb up on the left to say 'Thanks'**
Make it easier for other people to find solutions by marking a Reply 'Accept as Solution' if it solves your problem. -
Spool not generated in some condition
Requirement :Developing a data transfer program. Approach used is Call Transaction in S mode.
In some cases(if Receiving Storage Location is PKGX) I need to load only MB11 and other cases I need to load 3 transaction sequentially MB11 creates Mat. Doc. No. which in turn passed to the LT06 to create TO(Transfer Order) and the TO passed to LT12 to confirm TO.
Problem When I run it in background(it generates report in foreground), job finished successfully, data is loaded into system and spool status shown as error ONLY IF ALL THE 3 TRANSACTIONS CALLED AND LOADED.
I debugged the Batch Job(using t-code JDBG) line by line output,contents are writen to output but at the end spool goes into error and report is not visible.
In all other cases like messages/outputs due to record not correct or/and only MB11 is to be processed, spool is generated with status Waiting and report is visible.
Statement at top
REPORT ZL6C_LOAD_INVENTORY_WM_SLOC
NO STANDARD PAGE HEADING
MESSAGE-ID ZOLSC_AS
LINE-COUNT 65
LINE-SIZE 148.
It works if I set line-size as 132 .
To overcome this I used FM GET_PRINT_PARAMETER with various cominations of parameter passed but it doesnt work
CALL FUNCTION 'GET_PRINT_PARAMETERS'
EXPORTING
COPIES = L_C_ONE
DEPARTMENT = L_C_SYSTEM
DESTINATION = L_C_LOCL
EXPIRATION = L_C_2
LAYOUT = L_C_X_65_255
LINE_COUNT = L_C_65
LINE_SIZE = L_C_255
LIST_NAME = L_LIST_NAME
LIST_TEXT = L_LIST_TEXT
MODE = 'BATCH'
NEW_LIST_ID = G_C_X
NO_DIALOG = G_C_X
RECEIVER = L_C_SAP
RELEASE = G_C_X
SAP_COVER_PAGE = G_C_X
REPORT = SY-REPID
USER = SY-UNAME
IMPORTING
OUT_PARAMETERS = L_PARAMS
EXCEPTIONS
ARCHIVE_INFO_NOT_FOUND = 1
INVALID_PRINT_PARAMS = 2
INVALID_ARCHIVE_PARAMS = 3
OTHERS = 4
IF SY-SUBRC = 0 AND NOT L_PARAMS IS INITIAL.
NEW-PAGE PRINT ON PARAMETERS L_PARAMS NO DIALOG NEW-SECTION.
G_SPOOL = 'X'.
ENDIF.
Also when I use this FM under INITIALIZATION then it generates the spool but content written at TOP_OF_PAGE not displayed. When I use it under START-OF-SELECTION, problem still remain same.
Please Suggest
thanks
SonalHello All,
I checked in SM58. It showed an error.
I checked my function module attributes. It was normal. Changed it to Remote enabled.
Now spool is generated.
Regards,
Kausthub -
Spool Not Generated Conditionally
<b>Requirement :</b>Developing a data transfer program. Approach used is Call Transaction in S mode.
In some cases(if Receiving Storage Location is PKGX) I need to load only MB11 and other cases I need to load 3 transaction sequentially MB11 creates Mat. Doc. No. which in turn passed to the LT06 to create TO(Transfer Order) and the TO passed to LT12 to confirm TO.
<b>Problem </b> When I run it in background(it generates report in foreground), job finished successfully, data is loaded into system and spool status shown as error ONLY IF ALL THE 3 TRANSACTIONS CALLED AND LOADED.
<u>I debugged the Batch Job(using t-code JDBG) line by line output,contents are writen to output but at the end spool goes into error and report is not visible</u>.
In all other cases like messages/outputs due to record not correct or/and only MB11 is to be processed, spool is generated with status Waiting and report is visible.
<b>Statement at top </b> REPORT ZL6C_LOAD_INVENTORY_WM_SLOC
NO STANDARD PAGE HEADING
MESSAGE-ID ZOLSC_AS
LINE-COUNT 65
LINE-SIZE 148.
<u><b>It works if I set line-size as 132 .</b></u>
To overcome this I used FM GET_PRINT_PARAMETER with various cominations of parameter passed but it doesnt work
CALL FUNCTION 'GET_PRINT_PARAMETERS'
EXPORTING
COPIES = L_C_ONE
DEPARTMENT = L_C_SYSTEM
DESTINATION = L_C_LOCL
EXPIRATION = L_C_2
LAYOUT = L_C_X_65_255
LINE_COUNT = L_C_65
LINE_SIZE = L_C_255
LIST_NAME = L_LIST_NAME
LIST_TEXT = L_LIST_TEXT
MODE = 'BATCH'
NEW_LIST_ID = G_C_X
NO_DIALOG = G_C_X
RECEIVER = L_C_SAP
RELEASE = G_C_X
SAP_COVER_PAGE = G_C_X
REPORT = SY-REPID
USER = SY-UNAME
IMPORTING
OUT_PARAMETERS = L_PARAMS
EXCEPTIONS
ARCHIVE_INFO_NOT_FOUND = 1
INVALID_PRINT_PARAMS = 2
INVALID_ARCHIVE_PARAMS = 3
OTHERS = 4
IF SY-SUBRC = 0 AND NOT L_PARAMS IS INITIAL.
NEW-PAGE PRINT ON PARAMETERS L_PARAMS NO DIALOG NEW-SECTION.
G_SPOOL = 'X'.
ENDIF.
Also when I use this FM under INITIALIZATION then it generates the spool but content written at TOP_OF_PAGE not displayed. When I use it under START-OF-SELECTION, problem still remain same.
Please Suggest
thanks
SonalUse FM : RSPO_OUTPUT_SPOOL_REQUEST
Reward Points if it is helpful
Thanks
Seshu -
Spool not generated for some conditions
<b>Requirement :</b>Developing a data transfer program. Approach used is Call Transaction in S mode.
In some cases(if Receiving Storage Location is PKGX) I need to load only MB11 and other cases I need to load 3 transaction sequentially MB11 creates Mat. Doc. No. which in turn passed to the LT06 to create TO(Transfer Order) and the TO passed to LT12 to confirm TO.
<b>Problem </b> When I run it in background(it generates report in foreground), job finished successfully, data is loaded into system and spool status shown as error ONLY IF ALL THE 3 TRANSACTIONS CALLED AND LOADED.
<u>I debugged the Batch Job(using t-code JDBG) line by line output,contents are writen to output but at the end spool goes into error and report is not visible.</u>
In all other cases like messages/outputs due to record not correct or/and only MB11 is to be processed, spool is generated with status Waiting and report is visible.
<b>Statement at top </b>
REPORT ZL6C_LOAD_INVENTORY_WM_SLOC
NO STANDARD PAGE HEADING
MESSAGE-ID ZOLSC_AS
LINE-COUNT 65
LINE-SIZE 148.
<u>It works if I set line-size as 132 .</u>
To overcome this I used FM GET_PRINT_PARAMETER with various cominations of parameter passed but it doesnt work
CALL FUNCTION 'GET_PRINT_PARAMETERS'
EXPORTING
COPIES = L_C_ONE
DEPARTMENT = L_C_SYSTEM
DESTINATION = L_C_LOCL
EXPIRATION = L_C_2
LAYOUT = L_C_X_65_255
LINE_COUNT = L_C_65
LINE_SIZE = L_C_255
LIST_NAME = L_LIST_NAME
LIST_TEXT = L_LIST_TEXT
MODE = 'BATCH'
NEW_LIST_ID = G_C_X
NO_DIALOG = G_C_X
RECEIVER = L_C_SAP
RELEASE = G_C_X
SAP_COVER_PAGE = G_C_X
REPORT = SY-REPID
USER = SY-UNAME
IMPORTING
OUT_PARAMETERS = L_PARAMS
EXCEPTIONS
ARCHIVE_INFO_NOT_FOUND = 1
INVALID_PRINT_PARAMS = 2
INVALID_ARCHIVE_PARAMS = 3
OTHERS = 4
IF SY-SUBRC = 0 AND NOT L_PARAMS IS INITIAL.
NEW-PAGE PRINT ON PARAMETERS L_PARAMS NO DIALOG NEW-SECTION.
G_SPOOL = 'X'.
ENDIF.
Also when I use this FM under INITIALIZATION then it generates the spool but content written at TOP_OF_PAGE not displayed. When I use it under START-OF-SELECTION, problem still remain same.
Please Suggest
thanks
SonalHi,
All spool requests will be stored in TSP01 table
TSP01 - Spool Requests
field name for Spool request number is RQIDENT
Hi,
Take a look at OSS Note 422136 which states:
"2. You can only store one spool request even if a step generates several spool requests during processing. The application is responsible for a "spool overview" in this case. If a step generates several spool requests during processing, only one request can be stored. In this case, the application report should issue the number with a message when writing a spool request so that it is then displayed in the job log."
Also take a look at OSS Note 519059 which further supports the case that you must capture the individual spool numbers as they are being created (i.e. within the job step's program). The note contains the following:
8] Question: How are the spool requests assigned?
Answer: The step information is stored in table TBTCP. This has space for exactly one spool request (field LISTIDENT). If a step generates several spool requests during the processing, only one can be stored. In this case the application is responsible for a "spool overview
<b>Reward points</b>
Regards -
We are facing some printing prob: SAP Output blocks on printer LJ06 frequently: waiting in host spooler
SAP Output blocks on printer LJ06 frequently (= every day, more then 1 time).
This for output sent from several transactions (= not only or every time from the same transaction)
We only have problem with SAP printing. No problem with BaaN printing neither with windows printing. Some follow-up tests done : it takes average 5 minutes before the status in SAP printer spooler is changing from 'Waiting for output formatter' to 'Waiting for host spooler'. Please provide some solution for this prob.
Regards,
AnsarDear Ansar, There can be various resons as to why waiting in host spooler status is coming.
You would need to drill down down to find out the root cause
Can you check the status of Print Server up and running or not ? .
Can you check at SM51 if enough spool process are there to entertain print requests. there might be a conditon where in spool work process is stuck.
I would ask you to check with respect to your printer architecture. Suppoe if you are using print server to print then can you check if the is any network issue between SAP and Print server.
If the above is green then can you check if there are many jobs stuck at printer level OR print server level ?
may be you can kill the first one and try if the if the printout comes.
Let us know if your problem still persists.
Try testing the same printer at development, quality and production - this will help you in finding out if there is any issue related to and SAP instance host's network problem
hope it helps.
Regards, Amber S | ITL -
When printing to PDF Acrobat locks up at spooling
Running Windows XP and Office 2007 and Arcobat 8 (with most recent web updated)
When printing to PDF from any program (Word, Excel, Quickbooks, even Acrobat), the creating PDF window locks up and the print job gets stuck at the spooling status. No errors are displayed, I'm unable to cancel anything. Seemed to start happening after downloading the latest updates.
Have tried to repair installation 3 times, reinstalled program 2 times, with no sucess. Have run this version for over three months with no issues beforehand.
Help!!!!AcroTray is running in background.
Thanks, will try that. Just have to work out Word settings so the conversion is seamless. Word tends to drop images and such when I do that.
In the interim, I've downloaded the CutePDF driver and all seems to be working. Ultimately the issue seems to lie with the PDF driver provided by Acrobat, but no matter how many times I reinstall the driver I still get the same problem. -
Report printing issue after upgrading from LV 8.2 to LV 2009
Hello,
I am upgrading an application from LabView 8.2 to LabView 2009. It uses the Report Generation Toolkit to create reports based on Word templates. The reports are pretty complicated, with a lot of bookmarks, tables, and graphs, but only one page long.
The reports are generated correctly. However when sent to printing (using Print report.vi), the printer goes into spooling status and if you are patient enough you may get the report after at least 7 minutes. I tried changing the printer setting to "Print directly to the printer", as per an old KnowledgeBase article. No luck. I have installed a local printer. No luck again.
If I close the LabView application while the printer is shown in spooling status, the report prints right away, every time.
Never had this issue in LabView 8.2. On that machine I had Office XP. Now I have Office 2007...
I do not get any error whatsoever, and I cannot figure out where the solution may be.
I have one single report that prints right away every time I try. Coincidence or not, this is the only one that has no tables to print. It has graph though and plenty of bookmarks.
I have exhausted all the ideas on how to deal with this situation, and I must find a solution ASAP. Any suggestion would be greatly appreciated.
Thanks.Brandon,
Thanks for your input.
Not sure how I can use it to narrow down the problem though. I ran it, and I see that the printers are correctly identified, the default one is correctly found, however absolutely nothing is being printed out (I typed a text in the string control, and the Print control was on).
Everything runs with no errors. I would prefer to see a bunch of errors ... -
Background job executed as SAP*, need advice to change owner.
Hi all,
I'm facing an issue where my SAP background job currently has 2 job "SAP_CCMS_CPH_REORG" and "SAP_CCMS_CPH_HRCOLL" under the ownership of sap. I would like to move them away from SAP ID.
I have tried to recreate the job using sm36 (and using my ID with sap_all profile) in testing environment, but it not seem to work.
Highly appreciates any advices and/or pointers with regards to the above mention question.
Thank you.Hi all,
Thank you for the reply but I have forgotten to add a few updates.
The issue is that I can change owner from SAP* to my ID with sap_all profile.
But, after execution,
Job with sap* owner ended successfully, with spool status marked as completed.
whereas
Job with my ID as owner ended successfully, but spool status marked as "waiting"
error mesage:
Description Value
Status: Frontend unavailable
Last event:
Message: Request on hold
Date: 19.02.2009
Time: 11:57:28
Job status: On hold
Error class: Delayed
Area: Data transfer
Printout: Not printed
Apologies for the inconveniences caused. -
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
Maybe you are looking for
-
How do I find out how much of my hard drive space is used up
I have a Mac OS X Version 10.7.5. Processor 2.66 GHz Intel Core 2 Duo; Memory 2 GB 1067 MHz DDR3. Computer is running very slow. I cleared downloads and reset Safari, emptied trash, etc. How can I find out how much space I have left on my hard drive
-
How do I get iTunes to arrange movies (from a series) in the order they were released
Bottom line, we all download movies into iTunes and regardless of if you view them as a list or as cover art, they are always in alphabetical order. But when you have a series of movies (pick any of your favorites... Harry Potter, Twilight, Transfo
-
How to register PL/SQL index table parameter in OracleCallableStatement ?
Hello , I am using Oracle release 8.1.6.0.0 . I need to call a PL/SQL procedure through JDBC, which specifies an INDEX TABLE OUT parameter(e.g. TYPE type_name IS TABLE OF VARCHAR2(10) INDEX BY BINARY_INTEGER) . I found that with Oracle8i release 8.1.
-
Making field invisible on screen shifts rest of the fields Up..
Hi All, I am facing a problem that when i make one of my screen fields invisible the rest of the fields shifts up and fill up the space. Can this be avoided... please suggest thanks in advance, kushagra sharma
-
GetBytes() doesn't work
I am using a special Java library that is very limited and in order for my program to work I have to be able to convert a String to bytes, without using getBytes(), because the api doesn't include most String functions. GetBytes() is one of the missi