Use exception to control flow?

I use validateExcelFile(File excelFile) to validate whether a file has valid excel format,
when file is in invalid format, I have two options:
1) return the error message in validate method:
public String validateExcelFile(File excelFile) {
String errorMsg = "";
if(errorMsg.length == 0) {
return null;
} else {
return errorMsg;
Or
2)Throw out a exception containing errorMsg
public void validateExcelFile(File excelFile)
throws InvalidExcelFormatException {
String errorMsg = "";
if(errorMsg.length != 0) {
throw new InvalidExcelFormatException(errorMsg);
The context in which the validate method is invoked needs to delete any invalid excel file according to the validate result, option 2 has the good that if there is another validate method and it also throws out the same exception when a file is invalid then I can place the two method in one
try{
validateMethod1( excelFile );
validateMethod2( excelFile );
} catch (InvalidFormatException ex) {  // deletes invalid file } statement, it is more clear than to check every method's returned error message, but I doubt whether it is good practice to control flow with exception instead of
flow statements like if.
Thanks.
StuartS
Edited by: StuartS on Oct 24, 2007 8:35 PM

TimSparq wrote:
You are correct, it is best practice not to controll flow with exceptions.
Perhaps your validate message could just return a boolean and you can do something like:
if (!validateExcelFile(file)) {
// delete file
Yeah, I was thinking of it more from a security validation standpoint, but if you simply want to accomplish an action as the result of a bad format, then you're definitely better off having a boolean function.

Similar Messages

  • How to use watch the control flow in the funation using dbms.output_line?

    Hi All,
    I have written a function which is working fine.
    But i want to see the control and data flow in the function.
    I want to see particular variable in the flow.
    How can i do that?
    Thanks in Advance,
    Vinay

    user12281717 wrote:
    I want to see particular variable in the flow.
    How can i do that?The question is where/when/how you want to see it. PL/SQL is a server-side language. A PL/SQL process runs entirely inside an Oracle server process.
    That server process does not have a display terminal or a STDOUT device that you can view interactively for output of the process while it is running.
    One option, and a common one, is to use DBMS_OUTPUT. This writes to a static PL/SQL session buffer (variable). When the process complete, the client (TOAD/SQL-Developer/SQL*Plus/Java/etc) can interrogate this buffer and display the contents of that to the end-user/developer.
    But this is not interactive..
    If you want to see interactively what is happening, there are couple of methods. You can run a client session that acts as a database pipe server. It reads data from a pipe and immediately displays it. In your PL/SQL process you then write to this pipe - where the other client process, running the pipe server, can immediately read and display it. See DBMS_PIPE for details.
    You can use the same approach using a log file. Again, the PL/SQL process writes to a log file and you, using a client command like Unix/Linux tail, displays the latest additions to the file. See UTL_FILE for details.
    If you are merely interested at what processing step a PL/SQL process is at, you can record that data in the action and module columns of your session (visible via the v$session and v$sqlarea views). See DBMS_APPLICATION_INFO for details.
    You can create a procedure that inserts a log entry into a log table, using an autonomous transaction. This means that when your PL/SQL code calls this procedure to log something, that log data is immediately committed in its own transaction and visible to other clients.
    There are other options too like advance message queues, or creating long operation entries, and so on. Which one to use depends entirely on your requirements.
    The details of the above interface packages are available in the [Oracle® Database PL/SQL Packages and Types Reference|http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14258/toc.htm] guide.

  • Using an unchecked exception to alter flow control inside a class

    Best-practice question:
    Is it wrong to use an unchecked exception in an if-like manner?
    For example, instead of using:
    if (condition) {
    -----------a lot of code-----------------
    } else {
    ----------some more code--------------
    Is it wrong to do it like this?
    try {
    if (!condition) throw new IllegalArgumentException();
    -------------a lot of code---------------
    } catch (IllegalArgumentException e) {
    --------------some more code-----------
    I'm asking because I used this kind of practice recently in a piece of code i wrote (actually i used it to validate an argument I received from a html-form and post an error message in the catch block) and a colleague told me it was bad practice.
    If it IS bad practice, when should you actually use unchecked exceptions like IllegalArgumentException?
    I already posted this question in the newbie forum, but didn't get any answers. Anybody here can explain this to me please?

    It is fine to use IllegalArgumentException, but typically it is used when the code generating the exception and the client who is using the code that generates the exception are two different pieces of code.
    If you were writing some kind of library for others to use. It would make sense to throw this exception out of your library if the user gave you wrong data.
    But you shouldn't use exceptions as normal program logic.

  • Creating control flow graph in java using list

    i am making control flow graph in java by making use of stacks and list but i am unable to get to previous nodes of the current node.
    how to code for the same and make a graph that is randomly generated.

    Don't double post. I've removed the thread you started in the Java Desktop Application forum 4 minutes after this one, with the identically same question.
    db

  • Use control flow statement to evalute signals

    Hi,
    I have a number of steps in my sequence file such that when TS runs it looked like this:
    SignalA >20       pass
    Signal B <= 30   pass
    Now I wish to use some control flow statements like While and If loops so that I could create steps like this:
    While ( SignalA > 20)
    Problem is there are no "SignalA" in the TS expressions.  I tried putting together an expression like RunState.Sequence.?? (some unique id of the step)Result.step = "failed".  But the While loop can't seem to evaluate to True
    Any suggestion would be appreciated.
    Thanks!
    ph2

    Hey ph2,
    I'm not sure what your goal is with this but there is probably a better way to accomplish what you want.
    Where is SignalA coming from?  A VI?  A dll?  Do you only have to acquire it once or do you need to get it every iteration of the loop?  Is the step that acquires it inside the While statement or is it an asynchronous thread?  Why not just store it to a Local or FileGlobal and then access that.  It would be easier.
    BTW- If SignalA > 20 step is a Numeric Limit then you can access it by using Step.Result.Numeric. 
    Let me know exactly what your goal here is and I could possibly help you find a better solution.
    Cheers,
    jigg
    CTA, CLA
    teststandhelp.com
    ~Will work for kudos and/or BBQ~

  • Why do we want use 'Data Flow Task' to 'Data Flow Tast' in Control Flow?

    I found an example in my company's SSIS package folders. In Control Flow, it has one data flow connected to the other. Both of them are importing data from flat file and then exported to database. I think these two are kind of at the same level and cannot
    see any reasons to conncect them together.
    Thanks & Happy Thxgiving,
    Gavin 

    Hi Gavin,
    Just as Arthur said, if there is no relationship between those two data flow tasks, we don’t have to connect them together. If they connect together, maybe there are some relationship between them.
    According to your description, both of the data flow tasks are importing data from flat file and then exported to database. It seems that there is no direct relationship between them. Another possibility is that there is a precedence constraint between them.
    The precedence constraint can be based on a combination of the first execution results and the evaluation of expressions. We can check the issue by double-check the connection string between them.
    The following screenshot is for your reference:
    If there are any other questions, please feel free to ask.
    Thanks,
    Katherine Xiong
    Katherine Xiong
    TechNet Community Support

  • When to use Exceptions?

    Should i use Exceptions in my classes like this?
    try {
    auth.loginUser(userName, userPassword);
    System.out.println("User logged in.");
    catch (InvalidUserException e1) {
    System.out.println("User does not exists.");
    catch (PasswordDoesNotMatchException e2) {
    System.out.println("Password is incorrect.");
    catch (SystemException e3) {
    System.err.println("System error.");
    // logging to file, etc.
    System.out.println("Please, try login later.");
    ..or maybe i should use Exceptions only for "real" Java errors? (file not found, division by zero, etc.)
    Thanks!

    Well, the word "exception" says a lot here; you throw
    an exception when something exceptional happens, in
    other words: something you normally don't expect to
    happen. And you offer control returned value? Bad solution, because I can
    want not only true/false answer, but and reason why it happen. In your offer I must use String answer = "user OK"; or "answer 200"
    This quote is from Thinking in Java:
    In C and other earlier languages, there could be several of these
    formalities, and they were generally established by convention and not as
    part of the programming language. Typically, you returned a special value
    or set a flag, and the recipient was supposed to look at the value or the flag
    and determine that something was amiss. However, as the years passed, it
    was discovered that programmers who use a library tend to think of
    themselves as invincible�as in, �Yes, errors might happen to others, but
    not in my code.� So, not too surprisingly, they wouldn�t check for the error
    conditions (and sometimes the error conditions were too silly to check
    for1). If you were thorough enough to check for an error every time you
    called a method, your code could turn into an unreadable nightmare.
    Because programmers could still coax systems out of these languages they
    were resistant to admitting the truth: This approach to handling errors
    was a major limitation to creating large, robust, maintainable programs.
    We can analize it how Login use case.
    Flow: If use enter good login and passwd, when ....
    Exception: bad passwd, bad login, ban IP and other.
    ciau,
    kafka

  • Woes wiring up an ejb to use a database control

    first my question & then background:
    how do i wire up an ejb to use a database control jcx object so that the dbcontrol is instantiated at runtime?
    here's the scene:
    i created a java page flow from a database control & this works correctly, but i also need to be able to expose some of the functionality to another deployed application. this application, incidentally is not a workshop application; but rather is a hand-coded war.
    the first application (a workshop app) renders forms that use a database control to persist the data. it only uses one table & therefore, there is only one pojo. as i mentioned, this resides in web project & works correctly. i abstracted my dbcontrol & my pojo to a separate java controls project & built this as a library. the jpf still has no problems seeing the dbcontrol.
    there is a second application (a non workshop app) that needs to be able to use a method provided by the dbcontrol. i created an ejb in a third project in the first application that makes the call to dbcontrol in the exact same way that the jpf did. but i am finding, however, that the dbcontrol is null whenever the ejb makes the call to it's method.
    here's the more detailed design:
    i started with a database control. i mapped to my datasource, wrote out the sql for the methods i wanted & generated the pageflow from this. i rewrote the pageflow/jsps to suit my needs & everything just works. i did notice at the time that i generated the page flow that the dbcontrol was never instantiated. here is a snippet of the jpf:
    <pre>
    public class SiteAlertMessageManagementController extends PageFlowController {
    * This is the control used to generate this pageflow
    * @common:control
    private SiteAlertMessageDBControl dbControl;
    public Forward getCurrentMessage() {  
    SiteAlertMessage currentMessage = dbControl.getCurrentMessage();
    </pre>
    because SiteAlertMessageDBControl is an interface, i assumed that the '@common:control' annotation told weblogic what it needed to know in order to instantiate a runtime class of time SiteAlertMessageDBControl. because it just worked, i never questioned this.
    with the form read/write functionality complete, i assumed i could quickly wrap an ejb around the dbcontrol method & be done with it. i soon realized that i could not create an ejb inside a web project & that an ejb project would not have classpath visibility to my dbcontrol & pojo, so i put the dbcontrol & the pojo into a java control project & made a library out of this. i double checked that the web project could see the classes in the library & they could.
    so i created a separate ejb project that also could now see the classes in the library. i thought i was in the home stretch. i now have these projects in my first application:
    administrationControls, administrationWeb, & administrationEjb. i moved the administrationControls.jar & the administrationEjb.jar over to the WEB-INF/lib directory of my (remember: non-workshop) war & wired up the code to pull the bean off jndi tree to make the rmi call. but it didn't work. so i backtracked & created a new jsp back in my workshop project that would make the same rmi call so that i could use the debugger. with this as the background, here is my specific problem.
    what i noticed is that the ejb code itself works correctly. i guess i should show it as well.
    <pre>
    public class SiteAlertMessagesAPI extends GenericSessionBean implements SessionBean {
    * This is the control used to generate this pageflow
    * @common:control
    private SiteAlertMessageDBControl dbControl;
    public void ejbCreate() {
    // Your code here
    * @ejbgen:remote-method
    public SiteAlertMessage getCurrentMessage() throws Exception {
    SiteAlertMessage message = null;
    try {
    // dbControl is null here
    message = dbControl.getCurrentMessage();
    catch (Exception e) {
    e.printStackTrace();
    return message;
    </pre>
    the problem is that my dbControl object is null. what i did was cut & paste the code from the jpf over to my bean. like i stated earlier, i assumed that the annotation would tell weblogic to instantiate an instance. this was obviously not the case. incidentally, i rewrote my ejbCreate() method like this:
    <pre>
    public void ejbCreate() {
    // Your code here
    dbControl = new SiteAlertMessageDBControl();
    </pre>
    but workshop gives me a "error: this type is abstract and thus cannot be instantiated" warning.
    my question is: how do i wire up an ejb to use a database control jcx object so that the dbcontrol is instantiated at runtime?
    any light you could shed on this would be most appreciated. thanks,
    doug

    Hi,
    unfortunatly, it's not possible to use a control outside a control or a
    web service...
    Emmanuel
    douglas thomas a ?crit :
    first my question & then background:
    how do i wire up an ejb to use a database control jcx object so that the dbcontrol is instantiated at runtime?
    here's the scene:
    i created a java page flow from a database control & this works correctly, but i also need to be able to expose some of the functionality to another deployed application. this application, incidentally is not a workshop application; but rather is a hand-coded war.
    the first application (a workshop app) renders forms that use a database control to persist the data. it only uses one table & therefore, there is only one pojo. as i mentioned, this resides in web project & works correctly. i abstracted my dbcontrol & my pojo to a separate java controls project & built this as a library. the jpf still has no problems seeing the dbcontrol.
    there is a second application (a non workshop app) that needs to be able to use a method provided by the dbcontrol. i created an ejb in a third project in the first application that makes the call to dbcontrol in the exact same way that the jpf did. but i am finding, however, that the dbcontrol is null whenever the ejb makes the call to it's method.
    here's the more detailed design:
    i started with a database control. i mapped to my datasource, wrote out the sql for the methods i wanted & generated the pageflow from this. i rewrote the pageflow/jsps to suit my needs & everything just works. i did notice at the time that i generated the page flow that the dbcontrol was never instantiated. here is a snippet of the jpf:
    <pre>
    public class SiteAlertMessageManagementController extends PageFlowController {
    * This is the control used to generate this pageflow
    * @common:control
    private SiteAlertMessageDBControl dbControl;
    public Forward getCurrentMessage() {  
    SiteAlertMessage currentMessage = dbControl.getCurrentMessage();
    </pre>
    because SiteAlertMessageDBControl is an interface, i assumed that the '@common:control' annotation told weblogic what it needed to know in order to instantiate a runtime class of time SiteAlertMessageDBControl. because it just worked, i never questioned this.
    with the form read/write functionality complete, i assumed i could quickly wrap an ejb around the dbcontrol method & be done with it. i soon realized that i could not create an ejb inside a web project & that an ejb project would not have classpath visibility to my dbcontrol & pojo, so i put the dbcontrol & the pojo into a java control project & made a library out of this. i double checked that the web project could see the classes in the library & they could.
    so i created a separate ejb project that also could now see the classes in the library. i thought i was in the home stretch. i now have these projects in my first application:
    administrationControls, administrationWeb, & administrationEjb. i moved the administrationControls.jar & the administrationEjb.jar over to the WEB-INF/lib directory of my (remember: non-workshop) war & wired up the code to pull the bean off jndi tree to make the rmi call. but it didn't work. so i backtracked & created a new jsp back in my workshop project that would make the same rmi call so that i could use the debugger. with this as the background, here is my specific problem.
    what i noticed is that the ejb code itself works correctly. i guess i should show it as well.
    <pre>
    public class SiteAlertMessagesAPI extends GenericSessionBean implements SessionBean {
    * This is the control used to generate this pageflow
    * @common:control
    private SiteAlertMessageDBControl dbControl;
    public void ejbCreate() {
    // Your code here
    * @ejbgen:remote-method
    public SiteAlertMessage getCurrentMessage() throws Exception {
    SiteAlertMessage message = null;
    try {
    // dbControl is null here
    message = dbControl.getCurrentMessage();
    catch (Exception e) {
    e.printStackTrace();
    return message;
    </pre>
    the problem is that my dbControl object is null. what i did was cut & paste the code from the jpf over to my bean. like i stated earlier, i assumed that the annotation would tell weblogic to instantiate an instance. this was obviously not the case. incidentally, i rewrote my ejbCreate() method like this:
    <pre>
    public void ejbCreate() {
    // Your code here
    dbControl = new SiteAlertMessageDBControl();
    </pre>
    but workshop gives me a "error: this type is abstract and thus cannot be instantiated" warning.
    my question is: how do i wire up an ejb to use a database control jcx object so that the dbcontrol is instantiated at runtime?
    any light you could shed on this would be most appreciated. thanks,
    doug

  • Better control flow?

    Actually this is a general question I've been wondering for a while...
    As the title states, I'm looking for a better control flow statement for what I planned.
    I have 4 variables that determine types of pipe in a program in my main class. There are 6 possible pipe types.
    For example Type 1 would have plastic grade = 5-7, color = 2, inner reinforcement = yes etc.
    My main method determines which type the client chose, (if it matched one of the types or not so if all 4 were true then it matches x type.)
    It's going to get really ugly if I use ifs and I don't think using a case statement would work.
    Any suggestions in what I can use?

    Unless you're just referring to getting user input and using it to look up a pipe >type?That would be what I'm doing, if I could figure out how to get the input variables from my applet class to the class that sorts out which pipe they picked.
    Except the variables had to be defined within a method so the try catch statments could be added to them to catch the nfe as most of them are converted from String to int.
    Let me suggest you to use nested switch case to solve the problemHmm, ok, I'll look into that. Would nested ifs suffice?
    Message was edited by:
    Yuriy_Ivanov

  • What do you think about using exceptions for something more than errors

    if you look the java.lang.Exception description at the JDK javadoc, you can see the following text:
    "The class Exception and its subclasses are a form of Throwable that indicates conditions that a reasonable application might want to catch."
    ... we can�t see "error" word anywhere!!
    What do you think about using exceptions for something more than errors? Can be possible use them as a way for send information to upper layers?
    Thankx in regards...

    it seems that what you say is a functional way of achiveing that, yes
    but Exceptions are generally reserverd for "Exceptional" situations ie program messing up or invalid data
    it does require a fair bit of processor time to actually generate and throw an Exception.
    so, all in all its "better" to use "normal" condition flow control to achive what you want.. you can always return early, break loops, call methods to pass information

  • The STOP statement was used outside a report flow.

    Hi Gurus,
    when i am executing this program it is going to short dump.
    pls help me out.
    thanks in advance.
    Runtime Errors         STOP_NO_REPORT
    Date and Time          06.10.2008 12:10:06
    Short text
    The STOP statement was used outside a report flow.
    What happened?
    Error in the ABAP Application Program
    The current ABAP program "YMRP0003" had to be terminated because it has
    come across a statement that unfortunately cannot be executed.
    What can you do?
    Note down which actions and inputs caused the error.
    To process the problem further, contact you SAP system
    administrator.
    Using Transaction ST22 for ABAP Dump Analysis, you can look
    at and manage termination messages, and you can also
    keep them for a long time.
    Error analysis
    The STOP statement is only useful in specific events of the report
    processing (that is, the execution of a type 1 program). In this case,
    there was no report flow, so the statement could not be executed.
    How to correct the error
    If the error occurred in your own ABAP program or in an SAP
    program you modified, try to remove the error.
    System environment
    SAP-Release 700
    Application server... "ciRDE"
    Network address...... "10.131.28.7"
    Operating system..... "HP-UX"
    Release.............. "B.11.23"
    Hardware type........ "ia64"
    Character length.... 16 Bits
    Pointer length....... 64 Bits
    Work process number.. 3
    Shortdump setting.... "full"
    Database server... "hpx190"
    Database type..... "ORACLE"
    Database name..... "RDE"
    Database user ID.. "SAPDAT"
    Char.set.... "C"
    SAP kernel....... 700
    created (date)... "Apr 21 2008 20:48:34"
    create on........ "HP-UX B.11.23 U ia64"
    Database version. "OCI_102 (10.2.0.1.0) "
    Patch level. 157
    Patch text.. " "
    Database............. "ORACLE 9.2.0.., ORACLE 10.1.0.., ORACLE 10.2.0.."
    SAP database version. 700
    Operating system..... "HP-UX B.11"
    Memory consumption
    Roll.... 16192
    EM...... 8379680
    Heap.... 0
    Page.... 65536
    MM Used. 3492016
    MM Free. 695200
    User and Transaction
    Client.............. 050
    User................ "MBAGGALA"
    Language key........ "E"
    Transaction......... "CC31 "
    Transactions ID..... "48E9EB60C2944602E10000000A831C07"
    Program............. "YMRP0003"
    Screen.............. "SAPMC29C 0020"
    Screen line......... 22
    Information on where terminated
    Termination occurred in the ABAP program "YMRP0003" - in "SCM-MRP-FSE-12_02".
    The main program was "SAPMC29C ".
    In the source code you have the termination point in line 138
    of the (Include) program "YMRP0003".
    Source Code Extract
    Line
    SourceCde
    108
    109
    110
    *This function module read the status of an object
    111
    112
    CALL FUNCTION 'STATUS_TEXT_EDIT'
    113
    EXPORTING
    114
    client           = sy-mandt
    115
    flg_user_stat    = lc_flagx
    116
    objnr            = ls_ecm_data-objnr
    117
    only_active      = lc_flagx
    118
    spras            = sy-langu
    119
    IMPORTING
    120
    line             = lf_sttxt
    121
    user_line        = lf_asttx
    122
    EXCEPTIONS
    123
    object_not_found = 1
    124
    OTHERS           = 2.
    125
    126
    CHECK NOT sy-tcode EQ 'CC32'.
    127
    *-- Begin of Changes made by DGupta1 on 07/12/2006--
    128
    Changes are made to update the Change Number Dates While Calling CC32
    129
    from custom transaction YC06 only
    130
    CHECK NOT sw_yc06 EQ 'X'.
    131
    *-- End of Changes made by DGupta1 on 07/12/2006--
    132
    133
    CHECK NOT lf_sttxt CS 'ECCM' AND NOT lf_sttxt CS 'ECOR'.
    134
    135
    136
    IF ls_ecm_data-datuv NE  lc_maxdate.
    137
    MESSAGE s011.
    >>>>>
       STOP.
    139
    ENDIF.
    140
    141
    142
    IF lf_lastd < lf_artwd.
    143
    MESSAGE s012.
    144
    STOP.
    145
    ENDIF.
    146
    147
    IF ls_ecm_data-lvorm = lc_flagx.
    148
    MESSAGE s013.
    149
    STOP.
    150
    ENDIF.
    151
    152
    WRITE: lf_lastd TO lf_lastd_string.
    153
    WRITE: lf_artwd TO lf_artwd_string.
    154
    155
    156
    IF ls_ecm_data-ccart NE lc_fixd.
    157
    Contents of system fields
    Name
    Val.
    SY-SUBRC
    0
    SY-INDEX
    0
    SY-TABIX
    0
    SY-DBCNT
    1
    SY-FDPOS
    40
    SY-LSIND
    0
    SY-PAGNO
    0
    SY-LINNO
    1
    SY-COLNO
    1
    SY-PFKEY
    ARC0H
    SY-UCOMM
    FCBU
    SY-TITLE
    Create ECR: Object Types
    SY-MSGTY
    S
    SY-MSGID
    YMRP
    SY-MSGNO
    011
    SY-MSGV1
    SY-MSGV2
    SY-MSGV3
    SY-MSGV4
    SY-MODNO
    0
    SY-DATUM
    20081006
    SY-UZEIT
    121006
    SY-XPROG
    SAPCNVE
    SY-XFORM
    CONVERSION_EXIT
    Active Calls/Events
    No.   Ty.          Program                             Include                             Line
    Name
    7 FORM         YMRP0003                            YMRP0003                              138
    SCM-MRP-FSE-12_02
    6 FUNCTION     SAPLXCCA                            ZXCCAU05                               39
    EXIT_SAPMC29C_005
    5 FORM         SAPMC29C                            MC29CFS1_SAVE_USER_EXIT                36
    SAVE_USER_EXIT
    4 FORM         SAPMC29C                            MC29CFF2_FCODE_FCBU_EXECUTE            88
    FCODE_FCBU_EXECUTE
    3 FORM         SAPMC29C                            MC29CFO1_OKCODE_CHECK                 252
    OKCODE_CHECK
    2 MODULE (PAI) SAPMC29C                            MC29CI10_OKCODE                        12
    OKCODE
    1 MODULE (PAI) SAPMC29C                            MC29CI10_DYNPRO_CALL                   11
    DYNPRO_CALL
    Chosen variables
    Name
    Val.
    No.       7 Ty.          FORM
    Name  SCM-MRP-FSE-12_02
    SY-REPID
    YMRP0003
    0000000000000000000000000000000000000000
    0000000000000000000000000000000000000000
    5455333322222222222222222222222222222222
    9D20000300000000000000000000000000000000
    SY-TCODE
    CC31
    00000000000000000000
    00000000000000000000
    44332222222222222222
    33310000000000000000
    SW_YC06
    0
    0
    2
    0
    LF_STTXT
    CRTD
    0000000000000000000000000000000000000000
    0000000000000000000000000000000000000000
    4554222222222222222222222222222222222222
    3244000000000000000000000000000000000000
    SYST-REPID
    YMRP0003
    0000000000000000000000000000000000000000
    0000000000000000000000000000000000000000
    5455333322222222222222222222222222222222
    9D20000300000000000000000000000000000000
    LS_ECM_DATA-DATUV
    20081006
    00000000
    00000000
    33333333
    20081006
    LC_MAXDATE
    29991231
    00000000
    00000000
    33333333
    29991231
    %_PRINT
    000                                                                                0###
    0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    2222333222222222222222222222222222222222222222222222222222222222222222222222222222222222223000
    0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    SY-MSGID
    YMRP
    00000000000000000000
    00000000000000000000
    54552222222222222222
    9D200000000000000000
    LC_FLAGX
    X
    0
    0
    5
    8
    SPACE
    0
    0
    2
    0
    SY-MSGNO
    011
    000
    000
    333
    011
    LC_ITEM
    EUR_SCM-PUR-FSE-12_02
    000000000000000000000
    000000000000000000000
    455554425552454233533
    552F33DD052D635D12F02
    SY-MSGV1
    00000000000000000000000000000000000000000000000000
    00000000000000000000000000000000000000000000000000
    22222222222222222222222222222222222222222222222222
    00000000000000000000000000000000000000000000000000
    SY-MSGV2
    00000000000000000000000000000000000000000000000000
    00000000000000000000000000000000000000000000000000
    22222222222222222222222222222222222222222222222222
    00000000000000000000000000000000000000000000000000
    SY-MSGV3
    00000000000000000000000000000000000000000000000000
    00000000000000000000000000000000000000000000000000
    22222222222222222222222222222222222222222222222222
    00000000000000000000000000000000000000000000000000
    SY-MSGV4
    00000000000000000000000000000000000000000000000000
    00000000000000000000000000000000000000000000000000
    22222222222222222222222222222222222222222222222222
    00000000000000000000000000000000000000000000000000
    LF_LASTD
    00000000
    00000000
    00000000
    33333333
    00000000
    LF_ARTWD
    00000000
    00000000
    00000000
    33333333
    00000000
    SY-SUBRC
    0
    0000
    0000
    No.       6 Ty.          FUNCTION
    Name  EXIT_SAPMC29C_005
    ECM_ALT_DATE
    Table IT_665[0x202]
    \FUNCTION=EXIT_SAPMC29C_005\DATA=ECM_ALT_DATE
    Table reference: 113
    TABH+  0(20) = 0000000000000000000000000000000000000000
    TABH+ 20(20) = 000000710000029900000000000000CAFFFFFFFF
    TABH+ 40(16) = 040000DB000006200010249401800000
    store        = 0x0000000000000000
    ext1         = 0x0000000000000000
    shmId        = 0     (0x00000000)
    id           = 113   (0x00000071)
    label        = 665   (0x00000299)
    fill         = 0     (0x00000000)
    leng         = 202   (0x000000CA)
    loop         = -1    (0xFFFFFFFF)
    xtyp         = TYPE#000018
    occu         = 16    (0x00000010)
    access       = 1     (ItAccessStandard)
    idxKind      = 0     (ItIndexNone)
    uniKind      = 2     (ItUniqueNon)
    keyKind      = 1     (default)
    cmpMode      = 2     (cmpSingleMcmpR)
    occu0        = 1
    groupCntl    = 0
    rfc          = 0
    unShareable  = 0
    mightBeShared = 0
    sharedWithShmTab = 0
    isShmLockId  = 0
    gcKind       = 0
    isUsed       = 1
    isCtfyAble   = 1
    >>>>> Shareable Table Header Data <<<<<
    tabi         = Not allocated
    pghook       = Not allocated
    idxPtr       = Not allocated
    shmTabhSet   = Not allocated
    id           = Not allocated
    refCount     = Not allocated
    tstRefCount  = Not allocated
    lineAdmin    = Not allocated
    lineAlloc    = Not allocated
    shmVersId    = Not allocated
    shmRefCount  = Not allocated
    shmIsReadOnly = Not allocated
    >>>>> 1st level extension part <<<<<
    regHook      = Not allocated
    collHook     = Not allocated
    ext2         = Not allocated
    >>>>> 2nd level extension part <<<<<
    tabhBack     = Not allocated
    delta_head   = Not allocated
    pb_func      = Not allocated
    pb_handle    = Not allocated
    ECM_DATA
    050            01001020081006            00000000            00000000            dsfasdddffSS
    0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    3332222222222223333333333333322222222222233333333222222222222333333332222222222226766766666552
    0500000000000000100102008100600000000000000000000000000000000000000000000000000004361344466330
    ECM_EFFECTIVITY
    Table IT_666[0x464]
    \FUNCTION=EXIT_SAPMC29C_005\DATA=ECM_EFFECTIVITY
    Table reference: 126
    TABH+  0(20) = 0000000000000000000000000000000000000000
    TABH+ 20(20) = 0000007E0000029A00000000000001D0FFFFFFFF
    TABH+ 40(16) = 040000DB000006800010249401800000
    store        = 0x0000000000000000
    ext1         = 0x0000000000000000
    shmId        = 0     (0x00000000)
    id           = 126   (0x0000007E)
    label        = 666   (0x0000029A)
    fill         = 0     (0x00000000)
    leng         = 464   (0x000001D0)
    loop         = -1    (0xFFFFFFFF)
    xtyp         = TYPE#000020
    occu         = 16    (0x00000010)
    access       = 1     (ItAccessStandard)
    idxKind      = 0     (ItIndexNone)
    uniKind      = 2     (ItUniqueNon)
    keyKind      = 1     (default)
    cmpMode      = 2     (cmpSingleMcmpR)
    occu0        = 1
    groupCntl    = 0
    rfc          = 0
    unShareable  = 0
    mightBeShared = 0
    sharedWithShmTab = 0
    isShmLockId  = 0
    gcKind       = 0
    isUsed       = 1
    isCtfyAble   = 1
    >>>>> Shareable Table Header Data <<<<<
    tabi         = Not allocated
    pghook       = Not allocated
    idxPtr       = Not allocated
    shmTabhSet   = Not allocated
    id           = Not allocated
    refCount     = Not allocated
    tstRefCount  = Not allocated
    lineAdmin    = Not allocated
    lineAlloc    = Not allocated
    shmVersId    = Not allocated
    shmRefCount  = Not allocated
    shmIsReadOnly = Not allocated
    >>>>> 1st level extension part <<<<<
    regHook      = Not allocated
    collHook     = Not allocated
    ext2         = Not allocated
    >>>>> 2nd level extension part <<<<<
    tabhBack     = Not allocated
    delta_head   = Not allocated
    pb_func      = Not allocated
    pb_handle    = Not allocated
    ECM_HIERARCHY
    Table IT_667[0x120]
    \FUNCTION=EXIT_SAPMC29C_005\DATA=ECM_HIERARCHY
    Table reference: 110
    TABH+  0(20) = 0000000000000000000000000000000000000000
    TABH+ 20(20) = 0000006E0000029B0000000000000078FFFFFFFF
    TABH+ 40(16) = 040000DB000006B00010249401800000
    store        = 0x0000000000000000
    ext1         = 0x0000000000000000
    shmId        = 0     (0x00000000)
    id           = 110   (0x0000006E)
    label        = 667   (0x0000029B)
    fill         = 0     (0x00000000)
    leng         = 120   (0x00000078)
    loop         = -1    (0xFFFFFFFF)
    xtyp         = TYPE#000021
    occu         = 16    (0x00000010)
    access       = 1     (ItAccessStandard)
    idxKind      = 0     (ItIndexNone)
    uniKind      = 2     (ItUniqueNon)
    keyKind      = 1     (default)
    cmpMode      = 2     (cmpSingleMcmpR)
    occu0        = 1
    groupCntl    = 0
    rfc          = 0
    unShareable  = 0
    mightBeShared = 0
    sharedWithShmTab = 0
    isShmLockId  = 0
    gcKind       = 0
    isUsed       = 1
    isCtfyAble   = 1
    >>>>> Shareable Table Header Data <<<<<
    tabi         = Not allocated
    pghook       = Not allocated
    idxPtr       = Not allocated
    shmTabhSet   = Not allocated
    id           = Not allocated
    refCount     = Not allocated
    tstRefCount  = Not allocated
    lineAdmin    = Not allocated
    lineAlloc    = Not allocated
    shmVersId    = Not allocated
    shmRefCount  = Not allocated
    shmIsReadOnly = Not allocated
    >>>>> 1st level extension part <<<<<
    regHook      = Not allocated
    collHook     = Not allocated
    ext2         = Not allocated
    >>>>> 2nd level extension part <<<<<
    tabhBack     = Not allocated
    delta_head   = Not allocated
    pb_func      = Not allocated
    pb_handle    = Not allocated
    ECM_MNT_VALUE
    0000000000000000
    0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    2222222222222223333333333333333222222222222222222222222222222222222222222222222222222222222222
    0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    ECM_OBJMNGREC
    Table IT_668[0x600]
    \FUNCTION=EXIT_SAPMC29C_005\DATA=ECM_OBJMNGREC
    Table reference: 107
    TABH+  0(20) = 0000000000000000000000000000000000000000
    TABH+ 20(20) = 0000006B0000029C0000000000000258FFFFFFFF
    TABH+ 40(16) = 040000DB000005C0001024C401800000
    store        = 0x0000000000000000
    ext1         = 0x0000000000000000
    shmId        = 0     (0x00000000)
    id           = 107   (0x0000006B)
    label        = 668   (0x0000029C)
    fill         = 0     (0x00000000)
    leng         = 600   (0x00000258)
    loop         = -1    (0xFFFFFFFF)
    xtyp         = TYPE#000016
    occu         = 16    (0x00000010)
    access       = 1     (ItAccessStandard)
    idxKind      = 0     (ItIndexNone)
    uniKind      = 2     (ItUniqueNon)
    keyKind      = 1     (default)
    cmpMode      = 8     (cmpManyEq)
    occu0        = 1
    groupCntl    = 0
    rfc          = 0
    unShareable  = 0
    mightBeShared = 0
    sharedWithShmTab = 0
    isShmLockId  = 0
    gcKind       = 0
    isUsed       = 1
    isCtfyAble   = 1
    >>>>> Shareable Table Header Data <<<<<
    tabi         = Not allocated
    pghook       = Not allocated
    idxPtr       = Not allocated
    shmTabhSet   = Not allocated
    id           = Not allocated
    refCount     = Not allocated
    tstRefCount  = Not allocated
    lineAdmin    = Not allocated
    lineAlloc    = Not allocated
    shmVersId    = Not allocated
    shmRefCount  = Not allocated
    shmIsReadOnly = Not allocated
    >>>>> 1st level extension part <<<<<
    regHook      = Not allocated
    collHook     = Not allocated
    ext2         = Not allocated
    >>>>> 2nd level extension part <<<<<
    tabhBack     = Not allocated
    delta_head   = Not allocated
    pb_func      = Not allocated
    pb_handle    = Not allocated
    ECM_OBJ_TYPE
    Table IT_669[28x192]
    \FUNCTION=EXIT_SAPMC29C_005\DATA=ECM_OBJ_TYPE
    Table reference: 116
    TABH+  0(20) = C0000009448BF3E0000000000000000000000000
    TABH+ 20(20) = 000000740000029D0000001C000000C0FFFFFFFF
    TABH+ 40(16) = 040000DB000005600010249421800000
    store        = 0xC0000009448BF3E0
    ext1         = 0x0000000000000000
    shmId        = 0     (0x00000000)
    id           = 116   (0x00000074)
    label        = 669   (0x0000029D)
    fill         = 28    (0x0000001C)
    leng         = 192   (0x000000C0)
    loop         = -1    (0xFFFFFFFF)
    xtyp         = TYPE#000014
    occu         = 16    (0x00000010)
    access       = 1     (ItAccessStandard)
    idxKind      = 0     (ItIndexNone)
    uniKind      = 2     (ItUniqueNon)
    keyKind      = 1     (default)
    cmpMode      = 2     (cmpSingleMcmpR)
    occu0        = 1
    groupCntl    = 0
    rfc          = 0
    unShareable  = 0
    mightBeShared = 1
    sharedWithShmTab = 0
    isShmLockId  = 0
    gcKind       = 0
    isUsed       = 1
    isCtfyAble   = 1
    >>>>> Shareable Table Header Data <<<<<
    tabi         = 0xC0000009448B8270
    pgHook       = 0xC0000009448BF440
    idxPtr       = 0x0000000000000000
    shmTabhSet   = 0x0000000000000000
    id           = 195   (0x000000C3)
    refCount     = 1     (0x00000001)
    tstRefCount  = 0     (0x00000000)
    lineAdmin    = 48    (0x00000030)
    lineAlloc    = 48    (0x00000030)
    shmVersId    = 0     (0x00000000)
    shmRefCount  = 2     (0x00000002)
    >>>>> 1st level extension part <<<<<
    regHook      = Not allocated
    collHook     = Not allocated
    ext2         = Not allocated
    >>>>> 2nd level extension part <<<<<
    tabhBack     = Not allocated
    delta_head   = Not allocated
    pb_func      = Not allocated
    pb_handle    = Not allocated
    TRANS_TYP
    H
    0
    0
    4
    8
    D_ASTTX
    0000000000000000000000000000000000000000
    0000000000000000000000000000000000000000
    2222222222222222222222222222222222222222
    0000000000000000000000000000000000000000
    SY-REPID
    SAPLXCCA
    0000000000000000000000000000000000000000
    0000000000000000000000000000000000000000
    5454544422222222222222222222222222222222
    310C833100000000000000000000000000000000
    L_ITEM
    EUR_SCM-MRP-FSE-12_02
    000000000000000000000000000000
    000000000000000000000000000000
    455554424552454233533222222222
    552F33DDD20D635D12F02000000000
    LI_YBS00001
    050EUR_SCM-MRP-FSE-12_02         YMRP0003                                SCM-MRP-FSE-12_02
    0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    3334555544245524542335332222222225455333322222222222222222222222222222222544245524542335332222
    050552F33DDD20D635D12F020000000009D2000030000000000000000000000000000000033DDD20D635D12F020000
    SY-SUBRC
    0
    0000
    0000
    SYST
    #######################(###############Z################################################XC####
    0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E000100
    0000000000000000000000020000000000000005000000000100000000000000000000000000010900000001540000
    0000000100000A0000000108010001000000000A0000000000000000000000000000000000000B000008000083000C
    LI_YBS00001-REPORT
    YMRP0003
    0000000000000000000000000000000000000000
    0000000000000000000000000000000000000000
    5455333322222222222222222222222222222222
    9D20000300000000000000000000000000000000
    LI_YBS00001-FORM
    SCM-MRP-FSE-12_02
    000000000000000000000000000000
    000000000000000000000000000000
    544245524542335332222222222222
    33DDD20D635D12F020000000000000
    LS_YBS00001
    0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
    0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    LS_YBS00001-ENABLED
    0
    0
    2
    0
    LS_YBS00001-REPORT
    0000000000000000000000000000000000000000
    0000000000000000000000000000000000000000
    2222222222222222222222222222222222222222
    0000000000000000000000000000000000000000
    LS_YBS00001-FORM
    000000000000000000000000000000
    000000000000000000000000000000
    222222222222222222222222222222
    000000000000000000000000000000
    SYST-REPID
    SAPLXCCA
    0000000000000000000000000000000000000000
    0000000000000000000000000000000000000000
    5454544422222222222222222222222222222222
    310C833100000000000000000000000000000000
    No.       5 Ty.          FORM
    Name  SAVE_USER_EXIT
    RET_CODE
    0
    0000
    0000
    SY-SUBRC
    0
    0000
    0000
    SY-MSGID
    YMRP
    00000000000000000000
    00000000000000000000
    54552222222222222222
    9D200000000000000000
    DARSTAB[]
    Table[initial]
    AEDTB[]
    Table IT_650[0x202]
    \PROGRAM=SAPMC29C\DATA=AEDTB[]
    Table reference: 129
    TABH+  0(20) = 0000000000000000C000000944A25D7000000000
    TABH+ 20(20) = 000000810000028A00000000000000CAFFFFFFFF
    TABH+ 40(16) = 0400000000000EF00010249401800000
    store        = 0x0000000000000000
    ext1         = 0xC000000944A25D70
    shmId        = 0     (0x00000000)
    id           = 129   (0x00000081)
    label        = 650   (0x0000028A)
    fill         = 0     (0x00000000)
    leng         = 202   (0x000000CA)
    loop         = -1    (0xFFFFFFFF)
    xtyp         = TYPE#000065
    occu         = 16    (0x00000010)
    access       = 1     (ItAccessStandard)
    idxKind      = 0     (ItIndexNone)
    uniKind      = 2     (ItUniqueNon)
    keyKind      = 1     (default)
    cmpMode      = 2     (cmpSingleMcmpR)
    occu0        = 1
    groupCntl    = 0
    rfc          = 0
    unShareable  = 0
    mightBeShared = 0
    sharedWithShmTab = 0
    isShmLockId  = 0
    gcKind       = 0
    isUsed       = 1
    isCtfyAble   = 1
    >>>>> Shareable Table Header Data <<<<<
    tabi         = Not allocated
    pghook       = Not allocated
    idxPtr       = Not allocated
    shmTabhSet   = Not allocated
    id           = Not allocated
    refCount     = Not allocated
    tstRefCount  = Not allocated
    lineAdmin    = Not allocated
    lineAlloc    = Not allocated
    shmVersId    = Not allocated
    shmRefCount  = Not allocated
    shmIsReadOnly = Not allocated
    >>>>> 1st level extension part <<<<<
    regHook      = 0x0000000000000000
    collHook     = 0x0000000000000000
    ext2         = 0xC000000944AFAD80
    >>>>> 2nd level extension part <<<<<
    tabhBack     = 0xC000000944A23AF0
    delta_head   = 0000000000000000000000000000000000000000000000000000000000000000000000000000000
    pb_func      = 0x0000000000000000
    pb_handle    = 0x0000000000000000
    CC07
    000000000000000000000000000000000000000000000000000000000000000
    000000000000000000000000000000000000000000000000000000000000000
    222222222222222222222222222222222222222222222222222222222222222
    000000000000000000000000000000000000000000000000000000000000000
    AENRB
    050            01001020081006            00000000            00000000            dsfasdddffSS
    0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    3332222222222223333333333333322222222222233333333222222222222333333332222222222226766766666552
    0500000000000000100102008100600000000000000000000000000000000000000000000000000004361344466330
    DARSTAB
    00000000000000000000000000000000000000000000
    00000000000000000000000000000000000000000000
    22222222222222222222222222222222222222222200
    00000000000000000000000000000000000000000000
    AEEFB[]
    Table IT_651[0x464]
    \PROGRAM=SAPMC29C\DATA=AEEFB[]
    Table reference: 105
    TABH+  0(20) = 0000000000000000C000000944AFADF000000000
    TABH+ 20(20) = 000000690000028B00000000000001D0FFFFFFFF
    TABH+ 40(16) = 0400000000000F500010249401800000
    store        = 0x0000000000000000
    ext1         = 0xC000000944AFADF0
    shmId        = 0     (0x00000000)
    id           = 105   (0x00000069)
    label        = 651   (0x0000028B)
    fill         = 0     (0x00000000)
    leng         = 464   (0x000001D0)
    loop         = -1    (0xFFFFFFFF)
    xtyp         = TYPE#000067
    occu         = 16    (0x00000010)
    access       = 1     (ItAccessStandard)
    idxKind      = 0     (ItIndexNone)
    uniKind      = 2     (ItUniqueNon)
    keyKind      = 1     (default)
    cmpMode      = 2     (cmpSingleMcmpR)
    occu0        = 1
    groupCntl    = 0
    rfc          = 0
    unShareable  = 0
    mightBeShared = 0
    sharedWithShmTab = 0
    isShmLockId  = 0
    gcKind       = 0
    isUsed       = 1
    isCtfyAble   = 1
    >>>>> Shareable Table Header Data <<<<<
    tabi         = Not allocated
    pghook       = Not allocated
    idxPtr       = Not allocated
    shmTabhSet   = Not allocated
    id           = Not allocated
    refCount     = Not allocated
    tstRefCount  = Not allocated
    lineAdmin    = Not allocated
    lineAlloc    = Not allocated
    shmVersId    = Not allocated
    shmRefCount  = Not allocated
    shmIsReadOnly = Not allocated
    >>>>> 1st level extension part <<<<<
    regHook      = 0x0000000000000000
    collHook     = 0x0000000000000000
    ext2         = 0xC0000009448F3220
    >>>>> 2nd level extension part <<<<<
    tabhBack     = 0xC00000094482B060
    delta_head   = 0000000000000000000000000000000000000000000000000000000000000000000000000000000
    pb_func      = 0x0000000000000000
    pb_handle    = 0x0000000000000000
    DCTAB[]
    Table IT_35[7x16]
    \PROGRAM=SAPMC29C\DATA=DCTAB[]
    Table reference: 25
    TABH+  0(20) = C000000944921280000000000000000000000000
    TABH+ 20(20) = 00000019000000230000000700000010FFFFFFFF
    TABH+ 40(16) = 0400000000001BB00010249401800000
    store        = 0xC000000944921280
    ext1         = 0x0000000000000000
    shmId        = 0     (0x00000000)
    id           = 25    (0x00000019)
    label        = 35    (0x00000023)
    fill         = 7     (0x00000007)
    leng         = 16    (0x00000010)
    loop         = -1    (0xFFFFFFFF)
    xtyp         = TYPE#000133
    occu         = 16    (0x00000010)
    access       = 1     (ItAccessStandard)
    idxKind      = 0     (ItIndexNone)
    uniKind      = 2     (ItUniqueNon)

    Dear Rajesh!
    Please advise me, what have you done to resolve your problem!!??
    I get next problem when i try to start some transaction:
    Short text                                                                               
    Syntax error in program "SAPLPA_PACKAGE_SERVICES ".                                          
    What happened?                                                                               
    Error in the ABAP Application Program                                                                               
    The current ABAP program "SAPLSFW_COMMON" had to be terminated because it has                
        come across a statement that unfortunately cannot be executed.                                                                               
    The following syntax error occurred in program "SAPLPA_PACKAGE_SERVICES " in                 
         include "LPA_PACKAGE_SERVICES$25 " in                                                       
        line 13:                                                                               
    "The type "TPCHK_FROZEN_OBJECTS_H" is unknown."                                              
    The include has been created and last changed by:                                            
        Created by: "SAP "                                                                               
    Last changed by: "SAP "                                                                      
        Error in the ABAP Application Program                                                                               
    The current ABAP program "SAPLSFW_COMMON" had to be terminated because it has                
        come across a statement that unfortunately cannot be executed.                               
    Error analysis                                                                               
    The following syntax error was found in the program SAPLPA_PACKAGE_SERVICES :                
        "The type "TPCHK_FROZEN_OBJECTS_H" is unknown."                                              
    Trigger Location of Runtime Error                                                                
        Program                                 SAPLSFW_COMMON                                       
        Include                                 LSFW_COMMONU01                                       
        Row                                     117                                                  
        Module type                             (FUNCTION)                                           
        Module Name                             SFW_GET_SWITCHPOS                                    
    Source Code Extract                                                                               
    Line
    SourceCde                                                                               
    87
         IF sy-subrc = 0.                                                                       
       88
           <fs_switchpos>-switch_id  = devc_resultline-switch_id .                              
       89
           <fs_switchpos>-state      = devc_resultline-state .                                  
       90
           <fs_switchpos>-text       = devc_resultline-text .                                   
       91
                                                                                    92
           INSERT <fs_switchpos> INTO TABLE resulttab. "Ergebnis merken                         
       93
           CONTINUE.                                                                               
    94
         ENDIF.                                                                               
    95
                                                                                    96
                                                                                    97
         READ TABLE gt_sfw_package INTO wa_sfw_package WITH TABLE KEY                           
       98
                        devclass = lf_devclass                                                  
       99
                        version  = 'A' .                                                        
      100
                                                                                    101
         IF sy-subrc = 0. "Objekt ist in einem Paket mit Schalter                               
      102
           <fs_switchpos>-switch_id = wa_sfw_package-switch_id .                                
      103
                                                                                    104
         ELSE. "gucken, ob es sich um geschachtelte Pakete handelt                              
      105
                                                                                    106
           DO 20 TIMES.                                                                               
    107
                                                                                    108
             CLEAR wa_superpackage .                                                            
      109
                                                                                    110
             READ TABLE gt_superpackage INTO wa_superpackage WITH TABLE KEY                     
      111
                             devclass = lf_devclass.                                            
      112
                                                                                    113
             IF sy-subrc = 0 .                                                                  
      114
               lf_superpackage = wa_superpackage-parentcl.                                      
      115
             ELSE.                                                                               
    116
                                                                                    >>>>>
               CALL FUNCTION 'PA_GET_SUPER_PACKAGE_NAME'                                        
      118
                 EXPORTING                                                                      
      119
                   i_package_name       = lf_devclass                                           
      120
                   i_direct_select      = 'X'                                                   
      121
                 IMPORTING                                                                      
      122
                   e_super_package_name = lf_superpackage.                                      
      123
                                                                                    124
                                                                                    125
               wa_superpackage-devclass = lf_devclass .                                         
      126
               wa_superpackage-parentcl = lf_superpackage .                                     
      127
               INSERT wa_superpackage INTO TABLE gt_superpackage .                              
      128
                                                                                    129
             ENDIF.                                                                               
    130
                                                                                    131
             IF lf_superpackage = space .                                                       
      132
               <fs_switchpos>-state     = space .                                               
      133
               <fs_switchpos>-switch_id = space .                                               
      134
               EXIT. "Enstation !                                                               
      135
             ELSE .                                                                               
    136

  • What are the uses of table control and tabstrip control

    can anyone tell me the uses of table control and tabstrip control

    Hi,
    table control is more comfortable for customizing.scroll bars all possible in this.where as it is not possible in step loops.
    check this example.
    PROGRAM ZBHTCTRL.
    TABLES: LFA1, EKKO.
    DATA: OKCODE1 LIKE SY-UCOMM,
    OKCODE2 LIKE SY-UCOMM.
    CONTROLS TABC TYPE TABLEVIEW USING SCREEN 1001.
    DATA: BEGIN OF ITAB OCCURS 0,
    MANDT LIKE EKKO-MANDT,
    EBELN LIKE EKKO-EBELN,
    BSTYP LIKE EKKO-BSTYP,
    BSART LIKE EKKO-BSART,
    END OF ITAB.
    MODULE USER_COMMAND_1000 INPUT.
    CASE OKCODE1.
    WHEN 'BACK'.
    SET SCREEN 0.
    WHEN 'NEXT'.
    SET SCREEN 1001.
    SELECT * FROM EKKO INTO CORRESPONDING FIELDS OF TABLE ITAB WHERE
    LIFNR = LFA1-LIFNR.
    ENDCASE.
    ENDMODULE. " USER_COMMAND_1001 INPUT
    MODULE MOVE_DATA OUTPUT.
    EKKO-MANDT = ITAB-MANDT.
    EKKO-EBELN = ITAB-EBELN.
    EKKO-BSTYP = ITAB-BSTYP.
    EKKO-BSART = ITAB-BSART.
    ENDMODULE. " MOVE_DATA OUTPUT
    MODULE USER_COMMAND_1001 INPUT.
    CASE OKCODE2.
    WHEN 'BACK'.
    SET SCREEN 1000.
    ENDCASE.
    ENDMODULE. " USER_COMMAND_1001 OUTPUT
    MODULE STATUS_1001 OUTPUT.
    SET PF-STATUS 'MENU'.
    SET TITLEBAR 'TIT'.
    ENDMODULE. " STATUS_1001 OUTPUT
    MODULE STATUS_1000 OUTPUT.
    SET PF-STATUS 'DMENU'.
    SET TITLEBAR 'xxx'.
    ENDMODULE. " STATUS_1000 OUTPUT
    FORM ON_CTMENU_FORM1 USING CMENU TYPE REF TO CL_CTMENU.
    CALL METHOD CMENU->LOAD_GUI_STATUS
    EXPORTING
    PROGRAM = ' ZBHTCTRL'
    STATUS = 'CMENU'
    MENU = CMENU.
    CALL METHOD CMENU->ADD_FUNCTION
    EXPORTING
    FCODE = 'RX'
    TEXT = 'RECIEVE'.
    ENDFORM.
    FLOW LOGIC:
    PROCESS BEFORE OUTPUT.
    MODULE STATUS_1000.
    PROCESS AFTER INPUT.
    MODULE USER_COMMAND_1000.
    PROCESS BEFORE OUTPUT.
    MODULE STATUS_1001.
    LOOP AT ITAB WITH CONTROL TABC CURSOR TABC-TOP_LINE.
    MODULE MOVE_DATA.
    ENDLOOP.
    PROCESS AFTER INPUT.
    MODULE USER_COMMAND_1001.
    LOOP AT ITAB.
    ENDLOOP.
    for more info check this link.
    http://help.sap.com/saphelp_nw2004s/helpdata/en/9f/dbac1d35c111d1829f0000e829fbfe/content.htm
    thanks
    Ashu.

  • Dialog control flow case not opening in new browser window

    Hello -
    Using JDev 11gR1.
    I have a page fragment that contains a table of command links like so:
            <af:commandLink text="#{row.id}" id="cl2"
                            action="#{reportRunnerBean.runReportAction}"
                            useWindow="true" windowHeight="500" windowWidth="500">
              <f:param value="#{row.id}" name="reportId" id="p2"/>
            </af:commandLink>the runReportAction method returns the String: "dialog:runReport"
    in my page flow, the page fragment has a control flow case with the outcome "dialog:runReport" that leads to a URL View with the URL setting set to #{pageFlowScope.reportUrl}
    (the reportRunAction places a string in page flow scope with the key of "reportUrl". in case it matters, the url is external to the application)
    When I click on the link, I am directed to the correct URL. However, it does not open in a new browser window - it takes up the main browser window.
    Is there something obvious that I am doing wrong?
    Thank you for reading this,
    -- Scott

    Well, I couldn't figure out why the dialog wasn't working correctly, so I changed my page to use a server listener to handle the logic I wanted and just used af:goLink instead of a command link. That command link above became:
              <af:goLink text="#{row.id}" id="gl1"
                         destination="#{row.reportUrl}"
                         targetFrame="_blank">
                <af:clientAttribute name="reportId" value="#{row.id}"/>
                <af:clientListener method="logReport" type="click"/>
                <af:serverListener type="LogReportEvent"
                                   method="#{reportListBean.logReportInvocation}"/>
              </af:goLink>with the following client listener:
        <af:resource type="javascript">
          function logReport(evt) {
              var component = evt.getSource();
              var reportIdParam = component.getProperty("reportId");
              AdfCustomEvent.queue(component,
                                   "LogReportEvent",
                                   { reportId: reportIdParam}, false);
        </af:resource>and code in the bean:
        public void logReportInvocation(ClientEvent clientEvent) {
                String reportId =
                    (String)clientEvent.getParameters().get("reportId");
                //...do something w/reportId here...
        }Thanks to anyone who took the time to read this.

  • Programatically calling control flows from java code

    Hi all,
    I have a bounded taskFlow that uses pageFragments. This flow is a region in a page(.jspx).
    In my page fragment, I have a inputComboboxListOfValues with a ValueChangeListener code in a java bean.
    I want when a value is changed, to programatically call "controll flow" (this one has: "From Activity Id" -the page fragment with that inputComboboxListOfValues, and "To Activity Id" - the default Activity on this task Flow).
    So when the value change, practically I want to restart the flow programatically and pass the selected value as input parameter.
    Since the inputComboboxListOfValues is not like a button where in the "Action" property you can set the Control Flow and navigate somewhere, the only option I have is to programatically cause navigation from java code (example: the value change listener code).
    Can this be achieved?
    Any advice is helpfull.

    Hi,
    Absolutely, you can do it using the NavigationHandler. Try the following in you value change listener:
    FacesContext context = FacesContext.getcurrentInstance();
    NavigationHandler handler = context.getApplication().getNavigationHandler();
    handler.handleNavigation(context, null, outcome);
    // Render the response after that phase, the button actions should not be called
    context.renderResponse();
    // Add the following line if you want to prevent further value change listeners to be called
    // throw new AbortProcessingException();Regards,
    ~ Simon

  • Bounded-Task-Flow Page Fragment Control Flow Help

    jDeveloper: 11.1.1.0.2
    I am having an issue trying to figure out the correct way to use control flow cases between a bounded-task-flow with page fragments and an unbounded-task-flow page. We have taken the approach in our application to have a few shell / container pages to host bounded-task-flows made up of page fragments to facilitate re-usability and to speed up development. There are 4 or 5 shell pages on the applications unbounded-task-flow. As of now, we have about 20 page fragments that are implemented as bounded-task-flows. These fragments don't do much now, meaning there is only a single fragment in each bounded-task-flow. The issue I am having is trying to invoke a control flow navigation action from one of the fragments to load a different shell page.
    For Example, shellPage1.jspx contains fragment-flow-1 as a region. In my adfc-config.xml I have shellPage1.jspx and shellPage2.jspx, with control flow cases "toShell1" and "toShell2" respectively connecting the two pages. I have a link's action bound to the "toShell2" within the fragment that makes up fragment-flow-1. When the application is run, shellPage1.jspx and its fragment are displayed. But clicking on the link in the fragment ("toShell2") does absolutely nothing. It does not navigate me to the shellPage2.jspx as expected. What am I doing wrong here or do not understand?
    If the fragment is included as a JSP include, and not a bounded task flow include, everything works as expected. This is not desirable as we then need to copy the fragment's pageDef into the shellPage's pageDef to get the DataControls to function.
    If the faces-config.xml is used instead, and a JSF navigation case is used, it will also work as expected. This is not desirable because we really don't want to be mixing adcf-config and faces-config.
    So I am really stumped here.... Thanks in advance!

    Hi there:
    In your case, the adfc-config.xml has the control flow case between shell pages. And the task-flow-N.xml or your-task-flow.xml for each page fragment by default doesn't inherit control flow case from their containing shell page. In your case, in the page fragment task-flow.xml, you should add a "Parent Action" to flow to shell page2 for example. The outcome of "Parent Action" would be "toShell2" if calling from ShellPage1 page fragment.
    Is this 'Correct' or 'Helpful' for you? Please mark it as so if it does.
    Good luck,
    Alex

Maybe you are looking for