Spool get lost while job runs in background

Hi
We wrote a custom program where in we use two custom bapi's which were copied from original bapi's. When we run this interface program in backgroud, we have lost the spool. But when we run the test with limited data in foreground, it works fine. What are the possible solutions to correct this issue. Is there anyway we can force this spool to stay even though any BAPI fails in the middle or fail to provide proper error?
Does this cause because of any memory leak? or insufficient memory? But there are no short dumps... in system.
If we direct to print the spool during background job execution, it comes back with spool object not found error.
Any help would be highly appreciated.
Thanks
Pandiri

What exactly do you mean by: we have lost the spool? Did you check in SM37 (job overview), and the spool icon is missing, or are you looking at SP01 and you don't see any output / spool requests?
When running program in background, are you providing the correct print parameters?
When you run it in foreground, do you create a spool request during the report?
Is report aborting when running in backgroud, because than you won't get any output / spool request, just a message stating that program was aborted / failed somewhere along the  line?
Need some additional info before we can make an educated guess....

Similar Messages

  • Difference: Job run in foreground, job run in background and batch job

    Hi  Gurus,
    Can you please help me to know what are the differences between job run in foreground, job run in background and batch job? Do jobs in foreground run in presentation server? Do jobs in background or batch jobs run in application server?
    Thanks,
    Kumar

    foreground job running may cause job running crash or failed if it is too big or server is busy and it take too long time. meantime it will take one sap session.
    background job will run base on request server status. and it will not take your sap session. and it will not failed normally.
    and you can get the result by SM37.
    my experience show that big report run in background normally faster than in foreground.
    Edited by: JiQing Zhao on Sep 3, 2010 4:13 AM

  • Amount field getting rounded up when run in background

    Hello All,
      when i run a report in foreground the amount value(KBETR) is displaying properly with the value 12.78.But when the same report is run in background it is displaying 13.what should be done?
    Thanks,
    Rakesh.

    Hi,
    Try to fetch records in smaller chunks and process them.  For example, if you are trying to fetch records for one year, instead of single query, try to fetch in 12 sets for each month.  Fetch first month and process the records and put them in the output internal table.  Then go for next month and so on.  Anyway your program is running in background.  There will not be any user complaint also.  The solution might sound bit funny.  But it works.
    Regards,
    Hema

  • Error while report running in background

    Hello to all,
    I am running a report in backgroud using SM37.This report already programmed to call a report in background.It takes stocks for given period,I am taking the values using  "import memory-id" statement.It gives an error log in SM37 as:
    Choose at least one scope of list
    Message no. M7829
    Can we call a submit stmt in a report that is to run in  background?? or pls provide any alternative for this problem??
    Thnax & Regards
    Vipin B.

    Hi,
    If you faced problem in submit statement,then try replacing the same by running the bdc for the particular program that you are using in submit statement.
    Make sure that you had given values for all the mandatory parameters and select option in the selection screen of the report program that you are submitting using submit statement.
    Kindly reward points by clicking the star on the left of reply,if it helps.

  • FIPP object, getting error while posting document in background step

    Hi Experts,
    Once approval is done we are posting document in background, but getting following error
    No batch input data for screen SAPMF05A 0607
    We have delegeted object FIPP to ZFIPP and added method zpost with same code as post with some initial validations.
    Your help in solving this error would be really appreciated.

    If you really haven't done any relevant changes to the SAP standard post method, I would look for an answer from OSS. And if not found, then ask from SAP. But if you have replaced the standard post method code with for example some BDC code, then you need to check this with your ABAP guys... I don't think that it has anything to do with workflow.
    Regards,
    Karri

  • Characters getting lost while calling a remote function

    Hi there,
    I've got a problem concerning a remote function call.
    Situation: System A has a function module ZFM_X with one importing parameter ("text" type string).
    System B calls this function module ZFM_X through a remote function call.
    It passes a string (containing 521 characters) variable to the importing parameter "text".
    Unfortunately, only fragments of the imported text arrive in System A.
    The text arriving in System A has the following pattern: The first 256 are correct, following 256 white spaces(blanks) following the last 9 characters of the imported text.
    Example:
    This is sent by System B to System A through a String variable.
    http://xxx.xx.xx.xx:xxxx/servlet/ContentServer?get&pVersion=0046&contRep=PG&docId=4BB4C36F5A0200B9E1008000AC101219&accessMode=r&authId=CN%3DP60&expiration=20100420112054&secKey=MIH3BgkqhkiG9w0BBwKggekwgeYCAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3DQEHATGBxjCBwwIBATAZMA4xDDAKBgNVBAMTA1A2MAIHIAgIKARFNDAJBgUrDgMCGgUAoF0wGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMTAwNDIwMDkyMDU0WjAjBgkqhkiG9w0BCQQxFgQUItgHQiYkW9BkScWnoMPkZiuCGSMwCQYHKoZIzjgEAwQuMCwCFGPGseHQSPV2%2F75OVMF2yMFzwfTLAhQgPRMvivyuii4gZ%2BJSKonPRsF1XA%3D%3D
    At System A the following text arrives
    http://xxx.xx.xx.xx:xxxx/servlet/ContentServer?get&pVersion=0046&contRep=PG&docId=4BB4C36F5A0200B9E1008000AC101219&accessMode=r&authId=CN%3DP60&expiration=20100420112054&secKey=MIH3BgkqhkiG9w0BBwKggekwgeYCAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3DQEHATGBxjCBwwIBATA                                                                                1XA%3D%3D
    It definitely looks like a unicode problem. Oddly, we have another system constellation which is exactly the same as System A/B where we are doing this, and its working perfectly fine.
    I hope you are not stunned by this wall of text, but any help is totally appreciated!
    Edited by: Erik Nagler on Apr 20, 2010 11:54 AM

    Hi,
    I tried it with String type and Character type (CHAR1024).
    Both dont work.
    As far as the unicode test is concerned:
    Sysem A is a unicode System whereas System B is a non-unicode system.
    I tried to change the Radiobutton to "unicode" in sm59, but I can't.
    It is uneditable, even though I am in change mode.
    [>>Picture<<|http://img90.imageshack.us/img90/2006/unicode.png]

  • Error while creating TO in background

    Hi Guys,
    I am getting error while creating TO in background using Transaction code LB13.
    The error is "No batch input data for screen SAPLSTXBC 0100" this is the screen which comes after saving a TO. Here we can give the printing details. If we are doing the TO in foreground with same transaction the data for this screen comes automatically. but in background it is showing the error.
    So help me in getting rid of the problem.
    Thanks and Regards
    Sukant

    Hi Manasa,
    What is your source for creation of CVC? Are you trying to create CVCs from infocube?
    Could you try out the following to identify the root cause?
    In the create CVC (/sapapo/mc62) variant, uncheck the check boxes for all the 3 checks at bottom of the variant, and also uncheck the "adjust time series objects" checkbox.
    Come to "selection condition", and select one or few CVCs from your source (Infocube, or flat file, whatever).
    Then try to run the job, which should only create one or few CVCs as per your selection criteria.
    If you are able to create CVCs in this way, that could mean that you might be having some issue during some check or generation of time series. Delete the created CVCs and again try to create them by activating the checks one by one.
    If the above helps in identification of the issue, then it might be possible to attack and resolve the issue e.g. special character, etc.
    PS: You could also try the "load to worklist" option to try to identify the CVC having issue. There you can specify one or few CVCs to be created in one go, and this might help in identifying if there is an issue with a certain CVC.
    Thanks - Pawan

  • Online and batch job running concurrently in SAP FI-CA

    Hi experts,
    Could anyone let me know of any issues which might crop up while online and batch jobs are executed concurrently in SAP FI-CA?
    If yes,then what should be the design considerations to avoid such issues?
    Many thanks,
    Sanjay Misra

    Hi Sanjay,
    William is correct in this scenario. You cann't run some processes where the object should be block while it run in background.
    Some of the processes in FICA are: FPMA, FPVA, FPINTM1, FPRW etc.
    There is only one solution to overcome from this and this is, you need to run these programmes in parellal jobs assigning maximum allotable jobs. And break into short intervals.
    Regards,
    Akhil

  • How to get spool from background job run?

    Hello,
    I have this situation and need help on how to resolve:
    I have RFC FM which called from another system, in that FM I am submitting BDC section as a batch job by report RSBDCSUB. The problem is that this job may run for 1 or 2 hours and my RFC call will be close by that time. How can I bring the result of my batch job run back to the calling system in this case? Will appreciate any hints.
    Thank you,
    Glenn

    Hi
    After you the Job completes. Use the spool ID and fetch the Spool list using the report RSPOLST2.
    You can download the spool job using the Function module RSPO_DOWNLOAD_SPOOLJOB.
    Thanks
    Dev

  • Report program when run in background job getting cancelled immediately

    Hi
    When i run a program in foreground i am able to see the output. But when run in background not able to run the job successfully. The job is getting cancelled immediately.
    I am using the below function module for output display. Should i need to pass any parameters in the below function module so that i can run the program in background  successfully.
      CALL METHOD DETAIL_GRID->SET_TABLE_FOR_FIRST_DISPLAY     
          EXPORTING                                            
            IS_LAYOUT         = IS_LAYOUT                    
            I_SAVE            = 'A'                        
            IS_VARIANT        = GS_VARIANT                   
          CHANGING                                           
            IT_FIELDCATALOG   = IT_FIELDCATALOG               
            IT_OUTTAB         = BLOCKED_STOCK_TAB_ALV[].     
    Please suggest.
    Thanks and regards
    Rajani Yeluri

    Hi Rajani.
      ALV require the DRYPOR(screen) for display but incase you run in back ground which have to write to spool but in spool we can only write in format of LIST REPORT not inter-active report like ALV. That why
    system cancelled your process immediately.
    Hope it helps.
    Sayan.

  • Convert Spool to PDF and mail for the jobs not run in background.

    Dear All,
    I need to convert the spool job into pdf and mail as attachment for job not run in background.
    I am printing the bills  using the program  SD70AV3A to print the bills in a batch using the SUBMIT.
    But i am not using the spool options since its going to into waiting state in spool...and i need to change the printer properties to G
    to get the printer to print the reports as these jobs run in backgroud....but this solution is not acceptable solution.
    SUBMIT SD70AV3A
             WITH RG_KSCHL-LOW = 'ZRR'
             WITH RG_NACHA-LOW = '1'
             WITH PM_VERMO = '2'
             WITH PM_NSORT = '1'
             WITH RG_VBELN IN range.
    *        TO SAP-SPOOL
    *        SPOOL PARAMETERS print_parameters
    *        WITHOUT SPOOL DYNPRO
    *        VIA JOB name NUMBER number
    *        AND RETURN.
    so how do i get the spool number from the above after the job is submitted....and then convert into pdf and mail
    please suggest some solution. I have searched on net but most the solutions are say to run the job as background job...
    i have also looked into the program RSTXPDFT4 but it asks for the spool id ....how can i get spool id for the job that has been completed.
    please suggest some solution.
    Thanks
    Bhargava.

    Hi,
    Spool to PDF : FM 'CONVERT_ABAPSOOLJOB_2_PDF'
    Table TSP01 to get spool number
    You ,may need to convert OTF to PDF: FM CONVERT_OTF
    and the to binary : FM 'SMCS_XSTRING_TO_BINARY'
    To send mail use class: cl_document _bcs.
    Regards,
    Maria João Rocha

  • Regarding email attachement while running a background job

    Dear Experts,
    When i am running a background job for any ALV report (standard or custom report) <b>automatically</b> the output is going to an e-mail address as a HTML file attachment. I want to change it to EXCEL file attachment.
    Please help me on this issue..
    Kind Regards,
    Tom

    Hi Prasanna,
    Thank you for your reply.  I am not using any code for sending the mail to the recipient E-mail address, system is taking care automatically.
    Few settings were done in SCOT transaction from basis, but no where they mentioned file type is .HTM.
    From my end i have done the following steps.
    1. go to SM36, give a job name.
    2. press on step push button , give the ABAP program name ( any ALV program, i mean standard report or Z report), give the variant and save.
    3. Come back . press on Spool list recipient push button give the e-mail address, press copy button on the  pop up window.
    4. press on start condition button , press on Immediate option and save.
    5. again press on Save button in the screen.
    now here job will be scheduled immediately, go to SM37 check your job status, if it is completed, automatically system is sending an e-mail with the ".HTM" attachment file output to the recipient e-mail address.
    i am not doing any coding part here.
    my concern is system should send the e-mail with ".XLS" file output attachment.
    please advise on this.
    Regards,
    Tom.

  • ALV report run In background gives 2 spool numbers

    Hi ,
    The ALV report which I am running in Background gives me 2 spool numbers after the Job is created in sm37.
    I am just executing my ALV report by running it in backgroung procressing, but I get 2 spool one has all the correct data of the ALV and 1 blank spool is created.
    I have Passed the followin parameter to my ALV FM.
      lwa_print-no_change_print_params = 'X'.
      lwa_print-no_print_listinfos = 'X'.
        CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
       EXPORTING
         i_callback_program       = sy-repid
         i_callback_pf_status_set = 'SET_PF_STATUS'
         i_callback_user_command  = 'USER_COMMAND'
         i_default                = space
         is_layout                = t_layout
         is_print                 = lwa_print
         it_fieldcat              = t_fieldcat
       TABLES
         t_outtab                 = t_final
       EXCEPTIONS
         program_error            = 1
         OTHERS                   = 2.
    Unable to find the reason why I get 2 spool created for it?
    Thanks
    Ritesh

    Hi venkatesh,
    Thanks for the reply.
    I tried that also but issue was due to a SKIP statement called in the program and due to which a new spool which was blank was called.
    The issue is resolved.
    Thanks
    Solanki Ritesh

  • Spool List output display 255 char when the rpt is run in Background

    Hi Friends,
    I tried executing a program in Background.. The report output has more than 64 columns ( more than 255 char ) ..
    Iam using "REUSE_ALV_GRID_DISPLAY" for displaying the list.
    My Problem:
    1. The spool list is truncated after 255 characters when i run in background.
    2. Th output in Spool List is coming in 2 rows ... not very clear ... becoz of that the grid lines are not getting displayed.
    3. I ve not used any Standard - line size for dislaying ..
    4. In foreground i am able to display all the 64 columns... Y not in Background......
    5. My Printer setting is ..X_255 .... only ...
    Requirement:
    1. What should i do to increase the spool list display to more than 255 characters
    2. Or how to save the background run reports output to an excel sheet as how we 'll take the from the foreground.
    Expecting your answers,
    Thanks in Advance...
    Cheers,
    R.Kripa .........
    Enjoy ABAPing ..........
    new upcoming Abaper ....

    Hello Kripa,
    You need to perform two actions.
    1. set an appropriate format for the printer you are using. As explained from the previous messages you go to: SPAD -> output devives (type the printer you are using) -> from the menu ..-> goto -> device type -> formats. In there create a new format like Z_65_650
    or Z_65_xxxx where xxxx could be up to 1065. This is the length of your report.
    When you give your report in background, do not forget to choose the new format you created.
    2. After the spool request is created, you take its number and use it ar a parameter in the following report.
    Please copy and paste it in a new program, maybe called ZRSPOSHOWSPOOLLIST.
    It should work then.
    roxani
    Display spool list > 255 columns
    This is a SAP utility report to allow display of
    spool request lists with line size more than 255 characters in
    releases 4.6B and 4.6C (4.6D kernel must be used)
    REPORT ZRSPOSHOWLIST LINE-SIZE 80.
    PARAMETERS: RQIDENT LIKE TSP01-RQIDENT,
    FIRSTL TYPE I DEFAULT 0,
    LASTL TYPE I DEFAULT 0.
    global data from LSPOXTOP
    DATA: RC(10) TYPE C,
    ERRMSG(100) TYPE C,
    STATUS LIKE SY-SUBRC,
    DSN_TYPE(8) TYPE C.
    DATA: BEGIN OF DATA_SET_LINE,
    DATA_LENGTH(5),
    PRECOL(1),
    DATA_LINE(1000),
    DATA_LINE(5000), "MODAB
    END OF DATA_SET_LINE,
    DATA_SET_LENGTH(5) TYPE C.
    TABLES: TSP01, TST05, TSPOPTIONS.
    DATA: TEMSE_NAME LIKE TST01-DNAME,
    TEMSE_CLIENT LIKE TST01-DCLIENT,
    TEMSE_HANDLE LIKE RSTSTYPE-HANDLE,
    TEMSE_PART LIKE TST01-DPART,
    TEMSE_OBJTYP LIKE TST01-DTYPE,
    TEMSE_RECTYP LIKE RSTSTYPE-RECTYP,
    TEMSE_CHARCO LIKE TST01-DCHARCOD.
    DATA: IS_OTF.
    global data from LSPOCTOP
    DATA: BEGIN OF SPOC
    , escape
    , prtctrl
    , FIRST_BYTES(4) " collection of the first bytes of the
    " escape sequences, which I am searching for.
    , PRTCTRL_START_LENGTH TYPE I
    , PRTCTRL_TOTAL_LENGTH TYPE I
    , PRTCTRL_START(10)
    , SYMBOL_LOW_START(10)
    , SYMBOL_HGH_START(10)
    , SYMBOL_START_LENGTH TYPE I
    , ICON_START(10)
    , ICON_START_LENGTH TYPE I
    , ICON_SEL TYPE I VALUE 1
    , FRAME_START(10)
    , FRAME_START_LENGTH TYPE I
    , END OF SPOC.
    FIELD-SYMBOLS: <SPOC_PRTCTRL> TYPE C
    , <SPOC_FRAME> TYPE C
    , <SPOC_ICON> TYPE C
    , <SPOC_SYMBOL_LOW> TYPE C
    , <SPOC_SYMBOL_HGH> TYPE C
    copied from RSPO_DISPLAY_ABAP_SPOOLJOB
    DATA: BUFFER LIKE DATA_SET_LINE OCCURS 1000.
    TABLES: TSP02L.
    SELECT SINGLE * FROM TSP01 WHERE RQIDENT = RQIDENT.
    IF SY-SUBRC <> 0.
    WRITE: / 'Spool request does not exist:'(001), RQIDENT.
    EXIT.
    ENDIF.
    CALL FUNCTION 'RSPO_CHECK_JOB_PERMISSION'
    EXPORTING
    ACCESS = 'DISP'
    SPOOLREQ = TSP01
    EXCEPTIONS
    NO_PERMISSION = 1
    OTHERS = 2.
    IF SY-SUBRC <> 0.
    WRITE: / 'No authorization to display'(002).
    EXIT.
    ENDIF.
    PERFORM READ_DATA TABLES BUFFER
    USING TSP01 FIRSTL LASTL.
    IF SY-SUBRC <> 0.
    WRITE: / 'Error reading spoolo request'(003).
    EXIT.
    ENDIF.
    IF IS_OTF = 'X'.
    WRITE: / 'This spool request is not an ABAP list'(004).
    EXIT.
    ENDIF.
    PERFORM DISPLAY_DATA TABLES BUFFER USING TSP01-RQPAPER TSP01-RQIDENT.
    FORM GET_SPOOL_LINE.
    DO.
    IF TEMSE_RECTYP+1(1) = 'Y'.
    CALL 'C_RSTS_READ'
    ID 'HANDLE' FIELD TEMSE_HANDLE
    ID 'BUFF' FIELD DATA_SET_LINE
    ID 'BUFFLG' FIELD 1006
    ID 'BUFFLG' FIELD 5006 "MODAB
    ID 'ALLINE' FIELD 'X'
    ID 'BINARY' FIELD ' '
    ID 'SHOWLG' FIELD 'X'
    ID 'RC' FIELD RC
    ID 'ERRMSG' FIELD ERRMSG.
    STATUS = SY-SUBRC.
    ELSE.
    CALL 'C_RSTS_READ'
    ID 'HANDLE' FIELD TEMSE_HANDLE
    ID 'BUFF' FIELD DATA_SET_LINE+1
    ID 'BUFFLG' FIELD 1005
    ID 'BUFFLG' FIELD 5005 "MODAB
    ID 'ALLINE' FIELD 'X'
    ID 'BINARY' FIELD ' '
    ID 'SHOWLG' FIELD 'X'
    ID 'RC' FIELD RC
    ID 'ERRMSG' FIELD ERRMSG.
    STATUS = SY-SUBRC.
    DATA_SET_LINE(5) = DATA_SET_LINE+1(5).
    DATA_SET_LINE-PRECOL = ' '.
    ADD 1 TO DATA_SET_LINE-DATA_LENGTH.
    ENDIF.
    STATUS = SY-SUBRC.
    IF STATUS <> 6. " EOF, error condition, or got data
    EXIT.
    ENDIF.
    end of this part, try to open next part
    ADD 1 TO TEMSE_PART.
    CALL 'C_RSTS_CLOSE'
    ID 'HANDLE' FIELD TEMSE_HANDLE
    ID 'RC' FIELD RC
    ID 'ERRMSG' FIELD ERRMSG.
    STATUS = SY-SUBRC.
    IF STATUS = 0.
    CALL FUNCTION 'RSTS_GET_ATTRIBUTES'
    EXPORTING
    AUTHORITY = 'SP01'
    CLIENT = TEMSE_CLIENT "hjl
    NAME = TEMSE_NAME
    PART = TEMSE_PART
    IMPORTING
    CHARCO = TEMSE_CHARCO
    CREATER =
    CREDATE =
    DELDATE =
    MAX_CREDATE =
    MAX_DELDATE =
    NON_UNIQ =
    NOOF_PARTS =
    RECTYP = TEMSE_RECTYP
    SIZE =
    STOTYP =
    type =
    OBJTYPE = TEMSE_OBJTYP
    EXCEPTIONS
    FB_ERROR = 1
    FB_RSTS_OTHER = 2
    NO_OBJECT = 3
    NO_PERMISSION = 4
    OTHERS = 5.
    STATUS = SY-SUBRC.
    ENDIF.
    IF STATUS = 0.
    CALL 'C_RSTS_OPEN_READ'
    ID 'HANDLE' FIELD TEMSE_HANDLE
    ID 'CLIENT' FIELD TEMSE_CLIENT "hjl
    ID 'NAME' FIELD TEMSE_NAME
    ID 'PART' FIELD TEMSE_PART
    ID 'TYPE' FIELD TEMSE_OBJTYP
    ID 'CONV' FIELD ' '
    ID 'ALLINE' FIELD 'X'
    ID 'BINARY' FIELD ' '
    ID 'RECTYP' FIELD TEMSE_RECTYP
    ID 'CHARCO' FIELD TEMSE_CHARCO
    ID 'PROM' FIELD 'I'
    ID 'RC' FIELD RC
    ID 'ERRMSG' FIELD ERRMSG.
    STATUS = SY-SUBRC.
    ENDIF.
    ENDDO.
    IF STATUS = 4.
    STATUS = 12. "EOF
    ENDIF.
    IF STATUS = 8.
    STATUS = 40. "Line too long
    ENDIF.
    DATA_SET_LENGTH = DATA_SET_LINE-DATA_LENGTH.
    ENDFORM.
    FORM READ_DATA TABLES BUFFER
    USING TSP01 LIKE TSP01 VALUE(FIRST) TYPE I
    VALUE(LAST) TYPE I.
    DATA: LINES TYPE I.
    REFRESH BUFFER.
    CLEAR IS_OTF.
    TEMSE_CLIENT = TSP01-RQCLIENT.
    TEMSE_NAME = TSP01-RQO1NAME.
    TEMSE_PART = 1.
    CALL FUNCTION 'RSTS_GET_ATTRIBUTES'
    EXPORTING
    AUTHORITY = 'SP01'
    CLIENT = TEMSE_CLIENT
    NAME = TEMSE_NAME
    PART = TEMSE_PART
    IMPORTING
    CHARCO = TEMSE_CHARCO
    CREATER =
    CREDATE =
    DELDATE =
    MAX_CREDATE =
    MAX_DELDATE =
    NON_UNIQ =
    NOOF_PARTS =
    RECTYP = TEMSE_RECTYP
    SIZE =
    STOTYP =
    type =
    OBJTYPE = TEMSE_OBJTYP
    EXCEPTIONS
    FB_ERROR = 1
    FB_RSTS_OTHER = 2
    NO_OBJECT = 3
    NO_PERMISSION = 4
    OTHERS = 5.
    IF SY-SUBRC = 0.
    IF TEMSE_OBJTYP(3) = 'OTF'.
    IS_OTF = 'X'.
    ENDIF.
    ELSE.
    EXIT.
    ENDIF.
    CLEAR TEMSE_HANDLE.
    CALL 'C_RSTS_OPEN_READ'
    ID 'HANDLE' FIELD TEMSE_HANDLE
    ID 'CLIENT' FIELD TEMSE_CLIENT "hjl
    ID 'NAME' FIELD TEMSE_NAME
    ID 'PART' FIELD TEMSE_PART
    ID 'TYPE' FIELD TEMSE_OBJTYP
    ID 'CONV' FIELD ' '
    ID 'ALLINE' FIELD 'X'
    ID 'BINARY' FIELD ' '
    ID 'RECTYP' FIELD TEMSE_RECTYP
    ID 'CHARCO' FIELD TEMSE_CHARCO
    ID 'PROM' FIELD 'I'
    ID 'RC' FIELD RC
    ID 'ERRMSG' FIELD ERRMSG.
    STATUS = SY-SUBRC.
    IF STATUS = 0.
    DO.
    PERFORM GET_SPOOL_LINE.
    IF STATUS <> 0 AND STATUS <> 40 AND STATUS <> 12.
    PERFORM CLOSE_JOB.
    EXIT.
    ENDIF.
    IF STATUS <> 12. " 12 = End
    IF NOT ( DATA_SET_LENGTH IS INITIAL ).
    DATA_SET_LINE-DATA_LENGTH = DATA_SET_LENGTH - 1.
    ENDIF.
    ADD 1 TO LINES.
    IF LINES >= FIRST.
    APPEND DATA_SET_LINE TO BUFFER.
    ENDIF.
    IF ( NOT LAST IS INITIAL ) AND ( LINES >= LAST ).
    EXIT.
    ENDIF.
    ELSE.
    IF LINES = 0.
    PERFORM CLOSE_JOB.
    EXIT.
    ENDIF.
    IF LINES < FIRST .
    PERFORM CLOSE_JOB.
    EXIT.
    ENDIF.
    EXIT.
    ENDIF.
    ENDDO.
    PERFORM CLOSE_JOB.
    ENDIF.
    ENDFORM.
    FORM CLOSE_JOB *
    FORM CLOSE_JOB.
    IF STATUS <> 0 AND STATUS <> 12.
    CALL 'C_RSTS_CLOSE'
    ID 'HANDLE' FIELD TEMSE_HANDLE
    ID 'RC' FIELD RC
    ID 'ERRMSG' FIELD ERRMSG.
    MESSAGE E112(PO) WITH STATUS RC ERRMSG RAISING READ_ERROR.
    ENDIF.
    CALL 'C_RSTS_CLOSE'
    ID 'HANDLE' FIELD TEMSE_HANDLE
    ID 'RC' FIELD RC
    ID 'ERRMSG' FIELD ERRMSG.
    STATUS = SY-SUBRC.
    IF STATUS <> 0.
    MESSAGE E112(PO) WITH STATUS RC ERRMSG RAISING READ_ERROR.
    ENDIF.
    ENDFORM.
    FORM DISPLAY_DATA TABLES BUFFER USING RQPAPER LIKE TSP01-RQPAPER
    RQID LIKE TSP01-RQIDENT.
    DATA: LINE_LENGTH TYPE I, GCOL TYPE I, GLINES TYPE I,
    LINE_LENGTH2 LIKE RSTSTYPE-LINELENGTH,
    V, V2.
    CALL FUNCTION 'RSPO_SPOOLDATA_WRITE_INIT'.
    PERFORM SPOOLDATA_WRITE_INIT. "MODAB
    select single * from tspoptions where spoption = 'REALWIDTH'.
    if sy-subrc = 0.
    V = 'X'.
    endif.
    select single * from tspoptions where spoption = 'REALHEIGHT'.
    if sy-subrc = 0.
    V2 = 'X'.
    endif.
    IF NOT V IS INITIAL OR NOT V2 IS INITIAL.
    GCOL = 0.
    GLINES = 0.
    SELECT SINGLE * FROM TSP02L WHERE PJIDENT = RQID
    AND PJNUMMER = 0.
    IF SY-SUBRC = 0.
    GCOL = TSP02L-COLUMNS.
    GLINES = TSP02L-LINES.
    ELSE.
    CALL FUNCTION 'RSPO_GET_SIZE_OF_LAYOUT'
    EXPORTING
    LAYOUT = RQPAPER
    IMPORTING
    ANSWER =
    COLUMNS = GCOL
    LINES = GLINES
    PFORMAT =
    ENDIF.
    ENDIF.
    IF GCOL < 80 OR V IS INITIAL.
    GCOL = 255.
    ENDIF.
    IF GLINES < 5 OR V2 IS INITIAL.
    GLINES = 0.
    ENDIF.
    IF GCOL >= 1024. "MODAB
    GCOL = 1023.
    ENDIF.
    NEW-PAGE NO-HEADING NO-TITLE LINE-SIZE GCOL
    LINE-COUNT GLINES. " make a wide list
    SET BLANK LINES ON.
    LOOP AT BUFFER.
    DATA_SET_LINE = BUFFER.
    IF DATA_SET_LINE-PRECOL = 'P'.
    IF DATA_SET_LINE(1) = ' '. " Echter Vorschub ?"
    NEW-PAGE.
    ENDIF.
    CONTINUE.
    ENDIF.
    Zeilenlange berechnen, falls unbekannt.
    IF DATA_SET_LINE-DATA_LENGTH IS INITIAL.
    LINE_LENGTH = STRLEN( DATA_SET_LINE-DATA_LINE ).
    ELSE.
    LINE_LENGTH = DATA_SET_LINE-DATA_LENGTH.
    ENDIF.
    IF LINE_LENGTH > 0.
    LINE_LENGTH2 = LINE_LENGTH.
    PERFORM SPOOLDATA_WRITE USING DATA_SET_LINE-DATA_LINE "MODAB
    LINE_LENGTH2
    1.
    ELSE.
    " Leerzeile
    SKIP.
    ENDIF.
    ENDLOOP.
    ENDFORM.
    copied from RSPO_SPOOLDATA_WRITE
    FORM SPOOLDATA_WRITE USING VALUE(SPOOL_DATA)
    VALUE(DATA_LENGTH) LIKE RSTSTYPE-LINELENGTH
    VALUE(START_POS) LIKE SY-COLNO.
    function globals
    DATA: LPOS LIKE SY-COLNO
    , REST_LEN TYPE I
    , AREA_LEN TYPE I
    , NEXT_HOT TYPE I " offset of next special character
    , COLS TYPE I " columns used by special character
    , BYTES TYPE I " bytes used by special character
    , HOT2
    , HOT3
    , HOT4
    , HOT5
    , HOT6
    , HOT7
    , BEGIN OF ESCAPE_TRICK
    , X1(1) TYPE X
    , END OF ESCAPE_TRICK
    , THE_PRTCTRL(5) TYPE C
    Because of a problem within the ABAP listprocessing, I shall
    never output the same icon side by side with the same color
    and without a gap.
    As I don't know the data, I will use two different variables
    alternatively.
    , ICON_ID1 LIKE ICONS-L4
    , ICON_ID2 LIKE ICONS-L4.
    FIELD-SYMBOLS: <LDATA>
    , <PLAIN_TEXT>
    , <PRTCTRL>
    , <HOT_PRTCTRL>
    , <HOT_FRAME>
    , <HOT_ICON>
    , <HOT_SYMBOL>
    IF START_POS < 2.
    write at / ' ' no-gap.
    NEW-LINE.
    LPOS = 1.
    ELSE.
    LPOS = START_POS.
    ENDIF.
    REST_LEN = STRLEN( SPOOL_DATA ).
    DESCRIBE FIELD SPOOL_DATA LENGTH AREA_LEN.
    IF DATA_LENGTH = 0.
    " fine.
    ELSEIF DATA_LENGTH <= AREA_LEN.
    REST_LEN = DATA_LENGTH.
    ELSE.
    WRITE: / 'Fehler beim Decodieren der Listendaten'(005).
    STOP.
    ENDIF.
    CHECK REST_LEN > 0.
    ASSIGN SPOOL_DATA(REST_LEN) TO <LDATA>.
    WHILE <LDATA> CA SPOC-FIRST_BYTES.
    NEXT_HOT = SY-FDPOS.
    IF NEXT_HOT > 0.
    ASSIGN <LDATA>(NEXT_HOT) TO <PLAIN_TEXT>.
    MODAB
    PERFORM WRITE_BIGFIELD USING <PLAIN_TEXT>
    NEXT_HOT
    LPOS.
    WRITE AT LPOS <PLAIN_TEXT> NO-GAP.
    ADD NEXT_HOT TO LPOS.
    SUBTRACT NEXT_HOT FROM REST_LEN.
    ASSIGN <LDATA>+NEXT_HOT(REST_LEN) TO <LDATA>.
    ENDIF.
    IF REST_LEN >= SPOC-PRTCTRL_START_LENGTH.
    ASSIGN <LDATA>(SPOC-PRTCTRL_START_LENGTH) TO <HOT_PRTCTRL>.
    ELSE.
    ASSIGN 'too_short' TO <HOT_PRTCTRL>.
    ENDIF.
    IF REST_LEN >= SPOC-FRAME_START_LENGTH.
    ASSIGN <LDATA>(SPOC-FRAME_START_LENGTH) TO <HOT_FRAME>.
    ELSE.
    ASSIGN 'too_short' TO <HOT_FRAME>.
    ENDIF.
    IF REST_LEN >= SPOC-ICON_START_LENGTH.
    ASSIGN <LDATA>(SPOC-ICON_START_LENGTH) TO <HOT_ICON>.
    ELSE.
    ASSIGN 'too_short' TO <HOT_ICON>.
    ENDIF.
    IF REST_LEN >= SPOC-SYMBOL_START_LENGTH.
    ASSIGN <LDATA>(SPOC-SYMBOL_START_LENGTH) TO <HOT_SYMBOL>.
    ELSE.
    ASSIGN 'too_short' TO <HOT_SYMBOL>.
    ENDIF.
    IF REST_LEN > 1.
    HOT2 = <LDATA>+1(1).
    IF REST_LEN > 2.
    HOT3 = <LDATA>+2(1).
    IF REST_LEN > 3.
    HOT4 = <LDATA>+3(1).
    ELSE.
    HOT4 = '?'.
    ENDIF.
    ELSE.
    HOT3 = '?'.
    ENDIF.
    ELSE.
    HOT2 = '?'.
    ENDIF.
    IF <HOT_FRAME> = <SPOC_FRAME>.
    COLS = 1. " in most cases.
    BYTES = 2. " in most cases.
    CASE HOT2.
    WHEN '0'. WRITE AT LPOS HOT2 AS LINE NO-GAP.
    WHEN '1'. WRITE AT LPOS HOT2 AS LINE NO-GAP.
    WHEN '2'. WRITE AT LPOS HOT2 AS LINE NO-GAP.
    WHEN '3'. WRITE AT LPOS HOT2 AS LINE NO-GAP.
    WHEN '4'. WRITE AT LPOS HOT2 AS LINE NO-GAP.
    WHEN '5'. WRITE AT LPOS HOT2 AS LINE NO-GAP.
    WHEN '6'. WRITE AT LPOS HOT2 AS LINE NO-GAP.
    WHEN '7'. WRITE AT LPOS HOT2 AS LINE NO-GAP.
    WHEN '8'. WRITE AT LPOS HOT2 AS LINE NO-GAP.
    WHEN '9'. WRITE AT LPOS HOT2 AS LINE NO-GAP.
    WHEN ':'. WRITE AT LPOS HOT2 AS LINE NO-GAP.
    WHEN ';'. " box_drawings_light_left
    WRITE AT LPOS '4' AS LINE NO-GAP.
    WHEN '<'. " box_drawings_light_up
    WRITE AT LPOS '5' AS LINE NO-GAP.
    WHEN '='. " box_drawings_light_right
    WRITE AT LPOS '4' AS LINE NO-GAP.
    WHEN '>'. " box_drawings_light_down
    WRITE AT LPOS '5' AS LINE NO-GAP.
    WHEN '?'. " drawings_checkbox_off
    WRITE AT LPOS ' ' AS CHECKBOX INPUT OFF NO-GAP.
    WHEN '@'. " drawings_checkbox_on
    WRITE AT LPOS 'X' AS CHECKBOX INPUT OFF NO-GAP.
    WHEN OTHERS.
    BYTES = 0.
    ENDCASE.
    ENDIF.
    IF <HOT_SYMBOL> = <SPOC_SYMBOL_LOW>.
    ESCAPE_TRICK = HOT3.
    SUBTRACT 32 FROM ESCAPE_TRICK-X1.
    IF HOT4 = SPACE.
    WRITE AT LPOS(2) ESCAPE_TRICK AS SYMBOL NO-GAP.
    COLS = 2.
    BYTES = 4.
    ELSE.
    WRITE AT LPOS(1) ESCAPE_TRICK AS SYMBOL NO-GAP.
    BYTES = 3.
    ENDIF.
    ENDIF.
    IF <HOT_SYMBOL> = <SPOC_SYMBOL_HGH>.
    ESCAPE_TRICK = HOT3.
    ADD 32 TO ESCAPE_TRICK-X1.
    IF HOT4 = SPACE.
    WRITE AT LPOS(2) ESCAPE_TRICK AS SYMBOL NO-GAP.
    COLS = 2.
    BYTES = 4.
    ELSE.
    WRITE AT LPOS(1) ESCAPE_TRICK AS SYMBOL NO-GAP.
    BYTES = 3.
    ENDIF.
    ENDIF.
    IF <HOT_ICON> = <SPOC_ICON>.
    IF SPOC-ICON_SEL >< 1.
    SPOC-ICON_SEL = 1.
    ICON_ID1 = '@00@'.
    ICON_ID1+1(1) = HOT3.
    ICON_ID1+2(1) = HOT4.
    ELSE.
    SPOC-ICON_SEL = 2.
    ICON_ID2 = '@00@'.
    ICON_ID2+1(1) = HOT3.
    ICON_ID2+2(1) = HOT4.
    ENDIF.
    IF REST_LEN > 4.
    HOT5 = <LDATA>+4(1).
    IF REST_LEN > 5.
    HOT6 = <LDATA>+5(1).
    IF REST_LEN > 6.
    HOT7 = <LDATA>+6(1).
    ELSE.
    HOT7 = '?'.
    ENDIF.
    ELSE.
    HOT6 = '?'.
    ENDIF.
    ELSE.
    HOT5 = '?'.
    ENDIF.
    IF HOT5 = SPACE.
    IF HOT6 = SPACE.
    IF HOT7 = SPACE.
    IF SPOC-ICON_SEL = 1.
    WRITE AT LPOS(4) ICON_ID1 AS ICON.
    write at lpos icon_id1 as icon no-gap.
    ELSE.
    WRITE AT LPOS(4) ICON_ID2 AS ICON.
    write at lpos icon_id2 as icon no-gap.
    ENDIF.
    COLS = 4.
    BYTES = 7.
    ELSE.
    IF SPOC-ICON_SEL = 1.
    WRITE AT LPOS(3) ICON_ID1 AS ICON.
    write at lpos icon_id1 as icon no-gap.
    ELSE.
    WRITE AT LPOS(3) ICON_ID2 AS ICON.
    write at lpos icon_id2 as icon no-gap.
    ENDIF.
    COLS = 3.
    BYTES = 6.
    ENDIF.
    ELSE.
    IF SPOC-ICON_SEL = 1.
    WRITE AT LPOS(2) ICON_ID1 AS ICON.
    write at lpos icon_id1 as icon no-gap.
    ELSE.
    WRITE AT LPOS(2) ICON_ID2 AS ICON.
    write at lpos icon_id2 as icon no-gap.
    ENDIF.
    COLS = 2.
    BYTES = 5.
    ENDIF.
    ELSE.
    "rite at lpos(1) icon_id as icon.
    WRITE AT LPOS(1) '#' NO-GAP. " Not enough space for any icon.
    COLS = 1.
    BYTES = 4.
    ENDIF.
    ENDIF.
    IF <HOT_PRTCTRL> = <SPOC_PRTCTRL>.
    COLS = 0. " in most cases.
    BYTES = 6. " in most cases.
    IF REST_LEN >= SPOC-PRTCTRL_TOTAL_LENGTH.
    THE_PRTCTRL = <LDATA>+SPOC-PRTCTRL_START_LENGTH(5).
    IF THE_PRTCTRL = 'SABLD'.
    FORMAT INTENSIFIED ON.
    "no 3.0 'SAULN'.
    "no 3.0 FORMAT UNDERSCORED ON.
    ELSEIF THE_PRTCTRL = 'SAOFF'.
    FORMAT INTENSIFIED OFF.
    "no 3.0 FORMAT UNDERSCORED OFF.
    ELSEIF THE_PRTCTRL(3) = 'COL'.
    CASE THE_PRTCTRL+3(1).
    WHEN '0'.
    FORMAT COLOR OFF.
    WHEN '1'.
    FORMAT COLOR 1.
    WHEN '2'.
    FORMAT COLOR 2.
    WHEN '3'.
    FORMAT COLOR 3.
    WHEN '4'.
    FORMAT COLOR 4.
    WHEN '5'.
    FORMAT COLOR 5.
    WHEN '6'.
    FORMAT COLOR 6.
    WHEN '7'.
    FORMAT COLOR 7.
    ENDCASE.
    CASE THE_PRTCTRL+4(1).
    WHEN 'N'.
    FORMAT INTENSIFIED OFF INVERSE OFF.
    WHEN 'H'.
    FORMAT INTENSIFIED ON INVERSE OFF.
    WHEN 'V'.
    FORMAT INTENSIFIED ON INVERSE ON.
    ENDCASE.
    ENDIF. "printcontrol
    ELSE. "??
    ENDIF.
    ENDIF.
    IF BYTES = 0.
    BYTES = 1.
    WRITE AT LPOS(1) '#'.
    COLS = 1.
    ENDIF.
    ADD COLS TO LPOS.
    SUBTRACT BYTES FROM REST_LEN.
    IF REST_LEN > 0.
    ASSIGN <LDATA>+BYTES(REST_LEN) TO <LDATA>.
    ELSE.
    EXIT.
    ENDIF.
    ENDWHILE.
    MODAB
    IF REST_LEN > 0.
    ASSIGN <LDATA>(REST_LEN) TO <PLAIN_TEXT>.
    PERFORM WRITE_BIGFIELD USING <PLAIN_TEXT>
    REST_LEN
    LPOS.
    ENDIF.
    ENDFORM.
    FORM WRITE_BIGFIELD USING VALUE(FIELD) TYPE C
    VALUE(LEN)
    VALUE(POS).
    FIELD-SYMBOLS <P>.
    DATA: CHUNK TYPE I.
    WHILE LEN > 0.
    IF LEN > 255.
    CHUNK = 255.
    ELSE.
    CHUNK = LEN.
    ENDIF.
    WRITE AT POS FIELD(CHUNK) NO-GAP.
    ADD CHUNK TO POS.
    LEN = LEN - CHUNK.
    IF LEN > 0.
    FIELD = FIELD+CHUNK.
    ENDIF.
    ENDWHILE.
    ENDFORM.
    FORM SPOOLDATA_WRITE_INIT.
    DATA: BEGIN OF ESCAPE_TRICK
    , X1(1) TYPE X
    , END OF ESCAPE_TRICK
    FIELD-SYMBOLS: <LDATA>
    , <PLAIN_TEXT>
    , <PRTCTRL>
    ESCAPE_TRICK-X1 = '1C'.
    SPOC-PRTCTRL_START = ESCAPE_TRICK.
    SPOC-PRTCTRL_START_LENGTH = 1.
    SPOC-PRTCTRL_TOTAL_LENGTH = SPOC-PRTCTRL_START_LENGTH + 5.
    ASSIGN SPOC-PRTCTRL_START(SPOC-PRTCTRL_START_LENGTH) TO <SPOC_PRTCTRL>.
    ESCAPE_TRICK-X1 = '1B'.
    SPOC-FRAME_START = ESCAPE_TRICK.
    SPOC-FRAME_START_LENGTH = 1.
    ASSIGN SPOC-FRAME_START(SPOC-FRAME_START_LENGTH) TO <SPOC_FRAME>.
    ESCAPE_TRICK-X1 = '1B'.
    SPOC-ICON_START = ESCAPE_TRICK.
    SPOC-ICON_START+1 = ','.
    SPOC-ICON_START_LENGTH = 2.
    ASSIGN SPOC-ICON_START(SPOC-ICON_START_LENGTH) TO <SPOC_ICON>.
    ESCAPE_TRICK-X1 = '1B'.
    SPOC-SYMBOL_LOW_START = ESCAPE_TRICK.
    SPOC-SYMBOL_LOW_START+1 = '('.
    SPOC-SYMBOL_HGH_START = ESCAPE_TRICK.
    SPOC-SYMBOL_HGH_START+1 = ')'.
    SPOC-SYMBOL_START_LENGTH = 2.
    ASSIGN SPOC-SYMBOL_LOW_START(SPOC-SYMBOL_START_LENGTH)
    TO <SPOC_SYMBOL_LOW>.
    ASSIGN SPOC-SYMBOL_HGH_START(SPOC-SYMBOL_START_LENGTH)
    TO <SPOC_SYMBOL_HGH>.
    SPOC-FIRST_BYTES+0(1) = SPOC-PRTCTRL_START(1).
    SPOC-FIRST_BYTES+1(1) = SPOC-FRAME_START(1).
    SPOC-FIRST_BYTES+2(1) = SPOC-ICON_START(1).
    SPOC-FIRST_BYTES+3(1) = SPOC-SYMBOL_LOW_START(1).
    ENDFORM.

  • Getting error while running Foreign currency valuation

    Hi,
    Thanks in advance
    User getting error while running Foreign Currncy valutaion i.e. Internal error with background job sheduling sapf100.
    Do not have good exposure in Foreign Currecy valutaion please help me out..
    Edited by: kudalamallikarjuna on Oct 12, 2011 4:00 PM

    Dear,
    Once you get the error, please go to SM37, put user ID and appropriate dates and Execute
    System will show all jobs submitted by the user id, check if there is any job which is cancelled, select the line and click on Job log,
    In job log please let us know what is shown there..
    Br,Vivek

Maybe you are looking for