How can i know if submir program is finished

Hello experts,
I have a program that use SAP program in submit mode:
  SUBMIT RSBDC_PROTOCOL
                  WITH SESSION = 'MB_MI01' " Session name
                  WITH FROM_DAT = SY-DATUM
                  WITH TO_DAT   = SY-DATUM
                  WITH USER   =  SY-UNAME
                  WITH QUEUE_ID = ' '
                  WITH COUNTOLG = 0
                  AND RETURN.
the problem is that i need to create log for the batch inputs that created by this submit program, but i dont know when it's done.
so now i got partial log.
Regards,
Ronen Ravansari.

Hello David,
first of all thank you for your quick response.
I thoght about the parallel run.
lets say that i'll wrap the command
  SUBMIT RSBDC_PROTOCOL
                  via selection-screen
                  WITH SESSION = 'MB_MI01' " Session name
                  WITH FROM_DAT = SY-DATUM
                  WITH TO_DAT   = SY-DATUM
                  WITH USER   =  SY-UNAME
                  WITH QUEUE_ID = ' '
                  WITH COUNTOLG = 0
                  AND RETURN.
with RFC function.
I wonder if the submit program will return to the function before it's done?
if it is, so ther is no gain here.
Regards,
Ronen.

Similar Messages

  • I just uninstall a program by puting it to the trash, how can i know if the program left some folder or file?

    I wanted to uninstall a program so I put it to the trash but I want to know if the program left some file or folder somewhere so I can completely eliminate.
    Thanks.

    Any program that simply requires you to drag it to the applications folder to install, can be uninstalled by simply deleting it. If an application goes through an "install process", it more than likely needs an uninstaller to be uninstalled completely.

  • How can we know the return code of BDC Program ?

    Hi All,
    Please tell me : How can we know the return code of BDC Program when being exceuted in Session or in Transaction mode.
    In my program, we are uploading data from Excel sheet to SAP via BDC
    The records that are not updated we want to create a log file.
    Now to know whether a record is updated ot not, wat syst field shloud be used?
    Its urgent....
    <b>Reward Point will be there ....</b>
    Thanks,
    Harish

    Hi harish,
    try the logic in this code ...
    i had attached input file in the end.
    TYPES: begin of errmess,
            msgnr type t100-msgnr,
            text type t100-text,
           end of errmess.
    TABLES : t100.
    DATA: BEGIN OF DD_VA01,
           AUART TYPE VBAK-AUART,
           KUNNR TYPE RV45A-KUNNR,
           BSTKD TYPE VBKD-BSTKD,
           MABNR TYPE RV45A-MABNR,
           KWMENG(2) type C,
           KBETR(2) type C,
          END OF DD_VA01.
    DATA:IT_VA01     Like TABLE OF DD_VA01,
         WA_VA01     Like LINE  OF IT_VA01,
         WA_VA01_F   Like LINE  OF IT_VA01,
         IT_BDCDATA  TYPE TABLE OF BDCDATA,
         WA_BDCDATA  Like Line  OF IT_BDCDATA,
         W_FNAME     TYPE STRING,
         messtab like bdcmsgcoll occurs 0 with header line,
         it_errmess type table of errmess,
         wa_errmess like line of it_errmess,
         err_message type string.
    data: zf1 type i,
          zc1 type c value '2',
          fn(20) type c.
    Main Code ************************************************************
    PERFORM get_input using 'C:\Documents and Settings\ic881592\Desktop\Daran_bdc_VA01-e.txt'.
    SORT IT_VA01 BY AUART KUNNR BSTKD.
    LOOP AT IT_VA01 INTO WA_VA01.
      if WA_VA01_F-AUART <> WA_VA01-AUART OR
         WA_VA01_F-KUNNR <> WA_VA01-KUNNR OR
         WA_VA01_F-BSTKD <> WA_VA01-BSTKD.
           PERFORM set_header_flag.
           PERFORM create_bdc_header_data.
      endif.
      PERFORM create_bdc_item_data.
    ENDLOOP.
    PERFORM call_transaction.
    PERFORM errorlog.
    Procedures ***********************************************************
    form get_input using w_fname.
      CALL FUNCTION 'GUI_UPLOAD'
        EXPORTING
          FILENAME            = W_FNAME
          HAS_FIELD_SEPARATOR = '#'
        TABLES
          DATA_TAB            = IT_VA01.
    endform.
    form call_transaction.
        PERFORM bdc_field       using 'BDC_OKCODE' '/11'.
        CALL TRANSACTION 'VA01' USING IT_BDCDATA MODE 'A' messages into messtab.
        refresh it_bdcdata.
    endform.
    FORM set_header_flag.
           WA_VA01_F-AUART = WA_VA01-AUART.
           WA_VA01_F-KUNNR = WA_VA01-KUNNR.
           WA_VA01_F-BSTKD = WA_VA01-BSTKD.
           if zf1 = 1.
               PERFORM call_transaction.
           endif.
           zf1 = 1.
    endform.   "set_header_flag.
    form create_bdc_header_data.
         perform bdc_dynpro      using 'SAPMV45A' '0101'.
         perform bdc_field       using 'VBAK-AUART' WA_VA01-AUART.
         perform bdc_field       using 'BDC_OKCODE' '/00'.
         perform bdc_dynpro      using 'SAPMV45A' '4001'.
         perform bdc_field       using 'KUAGV-KUNNR' WA_VA01-KUNNR.
         perform bdc_field       using 'VBKD-BSTKD' WA_VA01-BSTKD.
         perform bdc_field       using 'BDC_OKCODE' '/00'.
         perform bdc_dynpro      using 'SAPMSSY0' '0120'.
         perform bdc_field       using 'BDC_CURSOR' '04/06'.
         perform bdc_field       using 'BDC_OKCODE' '=CHOO'.
         perform bdc_dynpro      using 'SAPMV45A' '4001'.
         PERFORM bdc_field       USING 'BDC_OKCODE' '=POAN'.
    endform. "create_bdcdata
    FORM create_bdc_item_data.
         CONCATENATE 'RV45A-KWMENG(' zc1 ')' INTO FN.
         perform bdc_field       using 'BDC_CURSOR' FN.
         perform bdc_field       using FN WA_VA01-KWMENG.
         CONCATENATE 'KOMV-KBETR(' zc1 ')' INTO FN.
         perform bdc_field       using FN WA_VA01-KBETR.
         CONCATENATE 'RV45A-MABNR(' zc1 ')' INTO FN.
         perform bdc_field       using FN WA_VA01-MABNR.
         perform bdc_dynpro      using 'SAPMV45A' '4001'.
         PERFORM bdc_field       USING 'BDC_OKCODE' '=POAN'.
    ENDFORM.
    form errorlog.
      LOOP AT MESSTAB .
        if MESSTAB-MSGNR = '311' or MESSTAB-MSGTYP = 'E'.
            SELECT SINGLE msgnr text FROM T100
                            into wa_errmess
                            WHERE SPRSL = MESSTAB-MSGSPRA
                              AND ARBGB = MESSTAB-MSGID
                              AND MSGNR = MESSTAB-MSGNR.
            IF SY-SUBRC = 0.
              err_message = wa_errmess-TEXT.
              IF err_message CS '&1'.
                REPLACE '&1' WITH MESSTAB-MSGV1 INTO err_message.
                REPLACE '&2' WITH MESSTAB-MSGV2 INTO err_message.
                REPLACE '&3' WITH MESSTAB-MSGV3 INTO err_message.
                REPLACE '&4' WITH MESSTAB-MSGV4 INTO err_message.
              ELSE.
                REPLACE '&' WITH MESSTAB-MSGV1 INTO err_message.
                REPLACE '&' WITH MESSTAB-MSGV2 INTO err_message.
                REPLACE '&' WITH MESSTAB-MSGV3 INTO err_message.
                REPLACE '&' WITH MESSTAB-MSGV4 INTO err_message.
              ENDIF.
              CONDENSE err_message.
              WRITE: / MESSTAB-MSGTYP, err_message .
            ELSE.
              WRITE: / MESSTAB.
            ENDIF.
        endif.
      ENDLOOP.
    endform. "errorlog
    FORM BDC_DYNPRO USING PROGRAM DYNPRO.
      WA_BDCDATA-PROGRAM  = PROGRAM.
      WA_BDCDATA-DYNPRO   = DYNPRO.
      WA_BDCDATA-DYNBEGIN = 'X'.
      APPEND WA_BDCDATA TO IT_BDCDATA.
      CLEAR  WA_BDCDATA.
    ENDFORM.
    FORM BDC_FIELD USING FNAM FVAL.
      WA_BDCDATA-FNAM = FNAM.
      WA_BDCDATA-FVAL = FVAL.
      APPEND WA_BDCDATA TO IT_BDCDATA.
      CLEAR  WA_BDCDATA.
    ENDFORM.
    input file :
    OR     2148     0001235     R-1162     8     17
    OR     2148     0001235     R-1161     2     30
    OR     2148     0001235     100-400     6     25
    OR     2148     0001235     R-1162     4     12
    OR     2148     0001236     R-1162     3     12
    OR     2148     0001236     R-1161     2     30
    OR     2148     0001236     100-400     1     25
    OR     2148     0001236     R-1162     7     12
    OR     2148     0001236     R-1161     8     30
    OR     2148     0001236     100-400     10     25
    OR     2148     0001235     R-1161     5     30
    OR     2148     0001235     100-400     2     25
    OR     2148     0001235     R-11621     3     12
    OR     2148     0001235     R-1161     2     30
    OR     2148     0001235     100-400     1     25
    OR     2148     0001235     R-1162     7     12
    OR     2148     0001235     R-1161     8     30
    OR     2148     0001235     100-400     10     25
    OR     2148     0001236     R-1162     8     17
    OR     2148     0001236     R-1161     2     30
    OR     2148     0001236     100-400     6     25
    OR     2148     0001236     R-1162     4     12
    OR     2148     0001236     R-1161     5     30
    OR     2148     0001236     100-400     2     25

  • How can i know the size of client

    hi
    how can i know the size of client ?
    SAP  ECC6
    OS AIX 5.2
    DB  ORACLE10g
    regards
    Karan

    Hi,
    1)Test run normal client copy .
    =DDt will give the size.
    2)There is SAP note for Client size analyse.
       Here is 118823
    3)run program YSTABSIZ.
    Regards,
    Muralidhar

  • How can I know the size of DB Table

    Hi, Guys,
    1. How can I know the size of the DB Table in terms of kb
    2. If I delete some records from the Table, does the actual size of the Table remains  same or will it be reduced.
    3. If size remains same after deletion, how to reduce the size ( i.e. occupied space).
    thanks
    Mahesh

    Hi
    1. How can I know the size of the DB Table in terms of kb
    There is no precise method/tcode/program to know the Table size of a tables.
    Just based on the record size of a table(say for example 2kb), and if 200 records are there then, we roughly assume that it occupied 400 kb.
    All the tables are stored in Table spaces.
    2. If I delete some records from the Table, does the actual size of the Table remains same or will it be reduced.
    Time being it remains same. it won't get reduced immediately
    during some next DB reorganisation it gets reorganised by reducing it.
    3. If size remains same after deletion, how to reduce the size ( i.e. occupied space).
    during next DB reorganisation it gets reorganised by reducing it.
    Reward points if useful
    Regards
    Anji

  • How do I know games and programs that become free? I want to know the programs and games that become free first first

    How do I know games and programs that become free?
    I want to know the programs and games that become free first first

    You are allowed to have two activated installations so there should not be a problem having working installations on the two machines.  If by chance you have somehow tied up two activations for the one machine you can have Adobe support help resolve that thru chat.
    Serial number and activation chat support (non-CC)
    http://helpx.adobe.com/x-productkb/global/service1.html ( http://adobe.ly/1aYjbSC )

  • How can I know the right component for a transaction?

    Hi, I have a question
    When creating a new message in Solution Manager, notif_create, how can I know the right component given the transaction code or program name?
    Thanks in advance
    Edited by: María Valdés on Aug 19, 2008 6:25 PM

    Hello Maria,
    Well, in the Support Message window, place the cursor in Component box and press F4. This will brings up another window which contains the components list to which you are authorized. From that list you can choose about which component you want to create that particular support message.
    For example, if you are from Quality department, the following can be visible when you press F4.
    QM - Quality Management
      -- QM-ADB Adobe Forms
           -- QM-ADB-PRN Print Forms
      For the Print Forms, the component will be QM-ADB-PRN
    I hope it helps.
    Cheers,
    Satish.

  • How can I know records is committed or un-committed

    Hi Guys
    Insert one record into DB without issue commit immediately, At same session,Another segment program,Using SQL or PL/SQL, How can I know records is committed or un-committed
    Thanks
    Pan
    Edited by: Pan.Tian on May 31, 2012 8:45 PM

    A session can never see another session's uncommitted rows. Oracle provides read consistency. This basically means that when your session starts to read data, at time1, Oracle provides you with "the truth" (committed rows) as it exists, at time1. Let's call this version 20 of the data.
    Another session can change data. Commit. It can create new versions of the data. However, this does not impact what your session reads. It sees the rows as they were at time1 when your session started to read them. Your session reads version 20, irrespective if whether version 25 is currently the latest version of the data.
    So there are no dirty reads in Oracle - and no way for your session to see the dirty and uncommitted data of another session. Or vice versa.
    Of course, if you make changes in your session, then your session will see those uncommitted changes.
    Read up on Multi-Version Concurrency Control (MVCC) and Multiversion Read Consistency (Oracle® Database Concepts guide).

  • How can I uninstall the cc programs I don't use without uninstalling the ones I need and the cs6 versions?

    How can I uninstall the cc programs I don't use without uninstalling the ones I need and the cs6 versions?

    Creative Cloud Help | Install, update, or uninstall apps is the official Adobe link... I do NOT know if you may select individual programs

  • NMI_HARDWARE_FAILURE (80) - how can I know if my driver caused this BSOD

    hi,
    I got NMI_HARDWARE_FAILURE (80) BSOD when my driver wad loaded and runnig.
    how can I know if this BSOD caused from my driver or not? I don't see my driver on the stack in the memory dump.
    adding the windbg !analyze -v:
    2: kd> !analyze -v
    *                        Bugcheck Analysis                                   
    NMI_HARDWARE_FAILURE (80)
    This is typically due to a hardware malfunction.  The hardware supplier should
    be called.
    Arguments:
    Arg1: 00000000004f4454
    Arg2: 0000000000000000
    Arg3: 0000000000000000
    Arg4: 0000000000000000
    Debugging Details:
    DEFAULT_BUCKET_ID:  WIN8_DRIVER_FAULT
    BUGCHECK_STR:  0x80
    PROCESS_NAME:  System
    CURRENT_IRQL:  f
    ANALYSIS_VERSION: 6.3.9600.17029 (debuggers(dbg).140219-1702) amd64fre
    LAST_CONTROL_TRANSFER:  from fffff802bbdc4c42 to fffff802bb75c0a0
    STACK_TEXT: 
    ffffd000`2064bd08 fffff802`bbdc4c42 : 00000000`00000080 00000000`004f4454 00000000`00000000 00000000`00000000 : nt!KeBugCheckEx
    ffffd000`2064bd10 fffff802`bb7c7401 : 00000000`00000001 fffff802`bbdd48f0 fffff802`bbdd48f0 ffffe000`012b7038 : hal!HalBugCheckSystem+0x7e
    ffffd000`2064bd50 fffff802`bbdc5bcd : ffffd000`000006c0 ffffd000`2064bf3c 00000000`00000001 00000000`00000000 : nt!WheaReportHwError+0x22d
    ffffd000`2064bdb0 fffff802`bb7e8e90 : ffffd000`2064bf70 00000000`00000001 00000000`00000000 fffff802`bb7e98f3 : hal!HalHandleNMI+0xfe
    ffffd000`2064bde0 fffff802`bb7655c2 : ffffd000`20640180 ffffd000`2064bff0 00000000`00000000 00000000`00000000 : nt!KiProcessNMI+0x150
    ffffd000`2064be30 fffff802`bb765436 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : nt!KxNmiInterrupt+0x82
    ffffd000`2064bf70 fffff802`bb762300 : fffff802`bb75fbc2 00000000`00000010 00000000`00000286 ffffd000`20c8db60 : nt!KiNmiInterrupt+0x176
    ffffd000`20c8db38 fffff802`bb75fbc2 : ffffd000`20640180 ffffd000`20640180 ffffd000`2064c100 00000000`00000000 : nt!KiIpiInterrupt
    ffffd000`20c8db60 00000000`00000000 : ffffd000`20c8e000 ffffd000`20c87000 00000000`00000000 00000000`00000000 : nt!KiIdleLoop+0x32
    STACK_COMMAND:  kb
    FOLLOWUP_IP:
    nt!WheaReportHwError+22d
    fffff802`bb7c7401 eb70            jmp     nt!WheaReportHwError+0x29f (fffff802`bb7c7473)
    SYMBOL_STACK_INDEX:  2
    SYMBOL_NAME:  nt!WheaReportHwError+22d
    FOLLOWUP_NAME:  MachineOwner
    MODULE_NAME: nt
    IMAGE_NAME:  ntkrnlmp.exe
    DEBUG_FLR_IMAGE_TIMESTAMP:  5215d156
    IMAGE_VERSION:  6.3.9600.16384
    BUCKET_ID_FUNC_OFFSET:  22d
    FAILURE_BUCKET_ID:  0x80_nt!WheaReportHwError
    BUCKET_ID:  0x80_nt!WheaReportHwError
    ANALYSIS_SOURCE:  KM
    FAILURE_ID_HASH_STRING:  km:0x80_nt!wheareporthwerror
    FAILURE_ID_HASH:  {d5f8e3c5-00d9-a505-9cff-8d968ebc3f39}
    Followup: MachineOwner
    any help would very appreciated!

    My device is really PCI device, but my target computer is  64bit-based, so I cannot use the !pci extention command. so I tried the !pcitree command and identified my device, then I typed !devext with my device extention address and that I got:
    !devext 0xffffe00000f8d1b0
    PDO Extension, Bus ..., Device ..., Function ....
      DevObj 0xffffe00000f8d060  Parent FDO DevExt 0xffffe00000f8a7f0
      Device State = PciStarted
      Vendor ID ...  Device ID ...
      Subsystem Vendor ID ...  Subsystem ID ...
      Header Type 0, Class Base/Sub 00/00  (Pre PCI 2.0/Pre PCI 2.0 Non-VGA Device)
      Programming Interface: 00, Revision: 01, IntPin: 01, RawLine 14
      Possible Decodes ((cmd & 7) = 7): BMI
      Capabilities: Ptr=80, power
      Logical Device Power State: D0
      Device Wake Level:          Unspecified
      WaitWakeIrp:                <none>
      Requirements:     Alignment Length    Minimum          Maximum
        BAR0    Mem:    00001000  00001000  0000000000000000 ffffffffffffffff
      Resources:        Start            Length
        BAR0    Mem:    00000000c0100000 00001000
      Interrupt Requirement:
        Line Based - Min Vector = 0x0, Max Vector = 0xffffffff
      Interrupt Resource:    Type - Line Based, Interrupt Line = 0x14
    does the device state here alike the status field which you spoke about? and if so, can I assume my device is ok and the BSOD didn't occur from it\ from its driver?

  • How can i find the printing program?

    hi
    i have sap script how can i find the printing program ?
    ami

    ami bardogo wrote:
    hi
    what is the different between the commands 'break' and 'break-point'
    thanks,
    ami
      h2 Breakpoints  h2
    Apart from being able to execute an ABAP program in the Debugger, you can also start the Debugger call by the choosing a breakpoint. This is achieved by setting one or more of these breakpoints in the program. A breakpoint is a signal at a particular point in the program that tells the ABAP runtime processor to interrupt processing and start the Debugger. The Debugger is activated when the program reaches this point.
    There is also a special kind of breakpoint called a watchpoint. When you use watchpoints, the Debugger is not activated until the contents of a particular field change. For more information, refer to the chapter Watchpoints.
    Breakpoint Variants
    The Debugger contains different breakpoint variants:
    Static
    A user-specific breakpoint is inserted in the source code as an ABAP statement using the keyword BREAK-POINT. A non user-specific breakpoint is set in the ABAP Editor using the BREAK user name statement.
    Directly set
    dynamic breakpoints
    Can be set in the ABAP Editor or the Debugger by double-clicking a line, for example. Dynamic breakpoints are always user-specific, and are deleted when you log off from the R/3 System.
    Breakpoints
    at statements
    The Debugger stops the program immediately before the specified statement is executed.
    Breakpoints
    at subroutines
    The Debugger stops the program immediately before the specified subroutine is called.
    Breakpoints at function modules
    The Debugger stops the program immediately before the specified function module is called.
    Breakpoints at methods
    The Debugger stops the program immediately before the specified method is called.
    Breakpoints at exceptions and system exceptions
    The Debugger stops the program immediately after a system exception, that is, after a runtime error has been intercepted.
    Static Breakpoints
    Static breakpoints are always user-independent if there is no specification of a user name. Once a user has inserted the statement BREAK-POINT or BREAK name in an ABAP program, the system always interrupts the program at that point for that user or only for the user name. This procedure is only useful in the development phase of an application when program execution is always to be interrupted at the same place. For more information, refer to the chapter Static Breakpoints.
    In HTTP sessions, a static breakpoint is skipped if you did not set additional dynamic HTTP breakpoints in the editor of a BSP page. Instead, a corresponding system log entry is written, which can be checked using transaction SM21.
    Dynamic Breakpoints
    Dynamic breakpoints are user-specific. Therefore, you should use them if you only want the program to be interrupted when you run it yourself, not when it is being executed by other users. All dynamic breakpoints are deleted when you log off from the R/3 System.
    Dynamic breakpoints are more flexible than static breakpoints because you can deactivate or delete them at runtime. They have the following advantages:
    ·        You do not have to change the program code.
    ·        You can set them even when the program is locked by another programmer.
    ·        You can define a counter that only activates the breakpoint after it has been reached.
    Special dynamic breakpoints are useful when you want to interrupt a program directly before a particular ABAP statement, a subroutine, or an event, but do not know exactly where to find it in the source code. Event here is used to refer to the occurrence of a particular statement, for example, or calling up a method. Special dynamic breakpoints are user-specific. You can only set them in the Debugger. For more information, refer to the chapter Dynamic Breakpoints.
    In HTTP sessions, the system stops both at static and dynamic breakpoints if a dynamic breakpoint was set in the editor of a BSP page before program execution.
    Lifetime and Transfer of Breakpoints
    A static breakpoint remains intact as long as the BREAK-POINT or BREAK-POINT name statement is not removed from the source code. Without saving, dynamic breakpoints only remain intact in the relevant internal session. However, they remain in effect during the entire user session if they are saved by choosing the menu path Breakpoints ® Save in the ABAP Debugger. For more details on the subject of user sessions and modes, refer to Modularization Techniques in the ABAP keyword documentation.
    If you call an HTTP session during a user session, only the HTTP breakpoints are loaded when the HTTP session is started. You activate HTTP debugging in the ABAP Editor by choosing Utilities ® Settings ® HTTP Debugging. Depending on the setting, the system then displays either the HTTP or standard breakpoints in the Editor.
    If you call an update session during a user session, breakpoints that were defined beforehand in the calling processing unit are copied to the new update session, where they can be displayed under Breakpoints. If, in the ABAP Debugger, you check Update Debugging  under Settings and then, for example, call the update module func using CALL FUNCTION func IN UPDATE TASK, a new window is opened in which you can debug this function module in the update session. All the breakpoints that were set in the calling processing unit can also be processed here.
    For further information on special breakpoints, refer to:
    Breakpoints at Statements
    Breakpoints at Subroutines
    Breakpoints at Function Module Calls
    Breakpoints at Methods
    Breakpoints at System Exceptions
    h2 page  break h2
    WINDOW TYPES
    When defining a layout set window, you must select a window type for the window. You can choose between three types:
    • Constant windows (CONST)
    • Variable windows (VAR)
    • Main windows (MAIN)
    CONSTANT WINDOW
    A window of type CONST has the same contents and size on all layout set pages, on which a corresponding page window is defined. This allows the processing of the window contents to be optimized internally.
    Page windows whose allocated window is of type CONST must have the same size throughout the layout set. If a window of type CONST is full, all remaining text the application program wants to output in this window, is lost. Constant windows do not trigger a page break. In other words: all text exceeding the window size is simply truncated.
    VARIABLE WINDOW
    The contents of variable windows is processed again for each page, on which the window appears. The system outputs only as much text as fits into the window. Text exceeding the window size is truncated; the system does not trigger a page break. Unlike constant windows, the page windows declared as variable windows may have different sizes on different layout set pages.
    As far as the processing of the window contents is concerned, the system currently treats constant and variable windows alike. The only difference is that constant windows have the same size throughout the layout set.
    MAIN WINDOW
    Each layout set must have one window of type MAIN. Such a window is called the main window of the layout set. For SAPscript layout sets, the main window has a central meaning:
    • It controls the page break.
    • It contains the text body that may cover several pages.
    • It allows to fix text elements at the upper and lower margins of the allocated page window (for example, for column headings).
    As soon as a window of type MAIN is full, SAPscript automatically triggers a page break and continues to output the remaining text in the main window of the subsequent page. Page windows of type MAIN have the same width throughout the layout set. The SAPscript composer thus avoids reformatting of the text after each page break.
    If a page does not have a main window, the system implicitly processes all other windows of the page and continues with the subsequent page. This page must not call itself as subsequent page (recursive call), since this would produce an endless loop. In such a case, SAPscript terminates the output after three subsequent pages.
    HOW THE COMPOSER WORKS
    The composer or layout set processor is the central formatting module for the print output. It prepares the texts for the different output devices by using the allocated styles or layout sets.
    Processing a layout set happens in a certain order. You must know some facts concerning the different window types, the setting of subsequent pages, or the dynamic control from within the print program.
    Page control in layout sets
    Define subsequent page statically
    Define subsequent page dynamically
    Format a layout set page
    PAGE CONTROL IN LAYOUT SETS
    SAPscript automatically triggers a page break as soon as the main window of one page is full. To be able to execute the page break, the system must know on which subsequent page to continue outputting the text. You can specify the subsequent page either statically when defining the layout set, or you can set the subsequent page dynamically during layout set output.
    If the subsequent page is not specified, SAPscript automatically terminates printing, thereby ignoring any other output statements of the application program.
    DEFINE SUBSEQUENT PAGE STATICALLY
    You define the subsequent page statically with the layout set maintenance transaction. First, specify the start page in the layout set header. The system automatically calls this page whenever the layout set is started. With this page, or, more correctly, with the page window of this page, the text output starts. For each page, specify the subsequent page in the page definition. After a page break, the system continues text output on the subsequent page defined for the last page. By specifying start page and subsequent pages, you can define a page sequence.
    DEFINE SUBSEQUENT PAGE DYNAMICALLY
    The page sequence set in the layout set definition can be changed by the application program dynamically at runtime. If you want the layout set to start with a page other than the one defined in the layout set header, specify the desired start page using the parameter STARTPAGE when you call the function module START_FORM. However, this new start page is valid only for the current call of the function module.
    If you want to break to a subsequent page other than the one specified in the page definition, use the control statement NEW-PAGE to set the name of the new page.
    NEW-PAGE .
    NEW-PAGE ends the output on the current page. The new subsequent page is only valid for the current call of the control statement. You can either include the control statement explicitly into the text of a text element or pass it to the layout set output using the function module CONTROL_FORM.
    FORMAT LAYOUT SET PAGE
    The process of formatting the output is controlled by the text contents in the BODY area of the main window. If the main window is completely filled, or if the control statement NEW-PAGE appears in the main window, the system executes a page break. Only at this point in time the system formats the contents of the windows of the other types and replaces the variables with the current values.
    For each other window, the system first outputs the default text element, if it exists. Then it processes and formats the list of the active text elements of this window, which you set using the function module WRITE_FORM with the parameter FUNCTION (SET, APPEND, DELETE). Any text that does not fit into the page window is truncated.
    As a consequence to this processing order of the composer, the reservation of space for the TOP and BOTTOM areas must be made beforehand. If the BODY area of the main window already contains text, a new text output to the TOP area does not appear on the current page but on the subsequent page in the TOP area. The same applies for the BOTTOM area. If the BODY area is filled to such an extend that the new BOTTOM text no longer fits into the current main window, this text appears on the subsequent page in the BOTTOM area.
    A frequent error in application programs is that for the subsequent page (for example, NEXT) of a layout set no main window is defined. If the formatted text of the previous page did not fit into the corresponding main window , the composer searches the subsequent pages for a main window to output the text remainder. However, if the subsequent page of NEXT is NEXT again, the composer encounters an endless loop.
    To be able to create correct page breaks in longer text, you should define a main window on each layout set page.
    LAYOUT SET CONTROL
    To output SAPscript layout sets, in the print program you must always start the output with OPEN_FORM and end it with CLOSE_FORM. The function module OPEN_FORM initializes the SAPscript composer and opens the specified layout set for subsequent output. The system combines all output for this layout set up to the CLOSE_FORM to one print request. If CLOSE_FORM is missing, nothing will be printed.
    To output data in a layout set, you must use the SAPscript function modules WRITE_FORM, WRITE_FORM_LINES, and CONTROL_FORM. You can use these function modules any number of times in any order between opening and closing a layout set.
    You cannot use the ABAP/4 statement WRITE to write output to a SAPscript layout set.
    Several print requests
    Start a layout set again
    Switch layout sets
    Find layout sets
    SEVERAL PRINT REQUESTS
    Within one transaction, you can open and close several layout sets using OPEN_FORM and CLOSE_FORM, however not simultaneously. You can use parameters in the OPEN_FORM to control whether the output is stored in the same print request. But also the SAP spool decides, depending on several plausibility checks, whether new output is appended to an existing print request or whether to create a new print request anyway.
    CALL FUNCTION 'OPEN_FORM'
    CALL FUNCTION 'CLOSE_FORM'
    CALL FUNCTION 'OPEN_FORM'
    CALL FUNCTION 'CLOSE_FORM'
    You cannot combine ABAP/4 list output and SAPscript output in one print request.
    START A LAYOUT SET AGAIN
    Usually a print program does not print only one urging letter or one account statement, but several layout sets for different customers. To have the output for each customer begin with the start page of the layout set, you must start the current layout set again and again.
    To start a layout set again, you must first end the current layout set and then open the layout set again. Within one print request, first call the function module END_FORM. It executes the final processing for the current layout set. Then start the layout set again using START_FORM. Output then begins again on the start page of the desired layout set.
    CALL FUNCTION 'OPEN_FORM'
    CALL FUNCTION 'START_FORM'
    CALL FUNCTION 'END_FORM'
    CALL FUNCTION 'START_FORM'
    CALL FUNCTION 'END_FORM'
    CALL FUNCTION CLOSE_FORM
    If you use START_FORM and END_FORM, you must not specify a layout set for OPEN_FORM. However, in this case you can use the SAPscript output functions only after opening a layout set with START_FORM.

  • How can i know if the sync process is done after a bookmark adding or so such and when it is processing , immediately after changes or what?

    how can i know if the sync process is done after a bookmark adding or so such and when it is processing , immediately after changes or what?

    I don't know whether you solve your problem or not! Anyway, I have the same problem. The program hangs when getInputStream is called.
    DataInputStream dis = new DataInputStream(request.getInputStream());
    If you have the answer, please let me know. Thanks!!

  • HT201798 how can i know my IP address if i forgot my remote control

    how can i know my IP address if i forgot my remote control

    Your post somehow found its way to a little-viewed forum for an long-obsolete Apple productivity program. I have asked the Hosts to move you to a more active and appropriate forum for your product.

  • How can you get your submit buttons to be a single click instead of the default double click?  (The

    How can you get your submit buttons on the quiz template to be a single click instead of the default double click?  (The option to choose double click or not is not showing in properties for this).

    Hmmm... Submit button doesn't need a double click at all. Maybe you are talking about the two-step process? When you click on Submit, the feedback appears with the message to click anywhere or press Y. Is that what you are talking about? If you are talking about a real double-click, something must be wrong in your file. And which version are you using?
    http://blog.lilybiri.com/question-question-slides-in-captivate
    Lilybiri

  • How can we know AR invoice is opended or closed?

    Hi All,
    I have a invoices(Receivables) data in 11.5.5. Now i would like to migrate open invoice or partially paid invoice to R12. How can we know that invoices(Receivables) is opened or closed.
    Suggestions will be highly appreciated.
    Thanks.
    Edited by: user627525 on Feb 24, 2009 11:13 PM

    Can't an invoice have more than 1 payment schedule id?
    Yes, an invoice can have more than 1 Payment schedule ID
    If so, would they all have to be zero or closed?
    We have to check by Payment schedule ID
    Regards,
    Sridhar

Maybe you are looking for

  • How do i transfer files from one mac to another?

    how do i transfer my files from one mac to another mac?

  • Flex with JMS Topic/Queue for Asynchronous messaging

    I have been working on Flex and JMS integration using Data Services for Asynchronous messaging. I am able to do this successfuly. Now I am in need to do the same without using the Data Services piece. For doing this I have done the following ...... I

  • Ctrl + left click doesn't open links in new tabs although I don't have Tabmix addon

    In a previous thread, this question has been answered as related to Tab Mix Plus and resolved as "Disabled extension Tab Mix Plus 0.3.8.6, now ctrl + left click opens links in new tabs" However, I don't have Tab Mix installed at all. I have Tab Utili

  • Plug-in to grayscale photos

    Hello, Our clients always send us graphic rich PDF's in colour that they wanted printed in Grayscale. I am looking for a plug-in that will convert either a whole PDF document, page or selected photos into grey from RGB or CMYK. However, I am looking

  • Professional opinions on web development platforms

    Dear JEE developers, I'm currently part of a research team at the Free University of Berlin, looking into the ways in which the major web development platforms differ. In addition to our work with the Plat_Forms contest, we're now looking for actual