Using subroutines in Function Module

Hi , experts ,
I want to know how to use performs in function module,
If created subroutine must be used in all FM in  Func.Group ?
if you have  articles about this or any information , I will be glad .
Please help.
Regards,
Tatiana.

If i am not mistaken you want to use forms in function module.
To enable forms in function module you have to follow these steps:
Create a Z include in your function module.
INCLUDE ZTEST_INCLUDE.
Inside this include you need to write your form routine which will be accessable from your function module.
Now you can use perform statement in your funtion module.
Thnaks & Regards,
Lalit Mohan Gupta

Similar Messages

  • To use SubRoutines and function modules and include

    Hellow Friends ,
    Can any body suggest me at waht situations we have to use SubRoutines and function modules and include in an abap report and also i need the standards in an abap program.

    Hi Rajesh,
    You use create subroutines within your programs for those block of codes which are used often within the scope of the development. Function modules are like global subroutines , hence any number programs which might want to use the functionality within the function module can do so.
    Creating includes is a good programming prctise, e.g. one for data declerations , one for subroutines, so that it makes the code more reader friendly and also helps in modularizing the program. Also once you put a subroutine in an include, you can use the same subroutine in other programs by referring to the include with the INCLUDE statement in your other programs.
    Hence basically they are used for :
    1. Reusability
    2. Modularization of code (make it more readable)
    Hope this is of some help.
    Regards,
    Aditya

  • How to make use of SE37- Function Module & how to find out the table?

    Hi ,
    1.Could anyone help me what's this SE37-Function module is all about,How to make use of this?
    For Eg,If i want to delete a BOM permanently from the system then I have to use the Function module CM_DB_DEL_FROM_ROOT_BOM.
    But after giving the particular name what should i do?
    Please help me.
    2.How to find out the respective table for a particular field sya for T code-COGI, T code MFBF,where its values are getting populated.,Please help in this issue.
    Thanks in adavnce for spending some time
    Raj.S

    Hi Raj
    Function Modules
    Function modules are procedures that are defined in special ABAP programs only, so-called function groups, but can be called from all ABAP programs. Function groups act as containers for function modules that logically belong together. You create function groups and function modules in the ABAP Workbench using the Function Builder.
    Function modules allow you to encapsulate and reuse global functions in the SAP System. They are managed in a central function library. The SAP System contains several predefined functions modules that can be called from any ABAP program. Function modules also play an important role during updating  and in interaction between different SAP systems, or between SAP systems and remote systems through remote communications.
    Unlike subroutines, you do not define function modules in the source code of your program. Instead, you use the Function Builder. The actual ABAP interface definition remains hidden from the programmer. You can define the input parameters of a function module as optional. You can also assign default values to them. Function modules also support exception handling. This allows you to catch certain errors while the function module is running. You can test function modules without having to include them in a program using the Function Builder.
    The Function Builder  also has a release process for function modules. This ensures that incompatible changes cannot be made to any function modules that have already been released. This applies particularly to the interface. Programs that use a released function module will not cease to work if the function module is changed.
    Check this link
    http://help.sap.com/saphelp_nw2004s/helpdata/en/9f/db988735c111d1829f0000e829fbfe/content.htm
    You can execute function module in SE37ie you can perform the activiites defined in the function module by executing it.
    By deleting BOM you mention the FM name in se37 and execute. In some function module it will ask input parameters as developed in the program , you have to give the input parameters and execute.

  • What is the difference between subroutine and function module?

    What is the difference between subroutine and function module?

    Hi,
    they can both return values.
    FMs are mainly used when a routine is to be performed by many programs.
    Subroutines (forms) are generally only executed within one program.
    You can perform routines from other programs, but it's not often done.
    both forms and FMs are reusable modularization units.
    To distinguish we generally say that forms are used for internal modularization and
    FMs are used for external modularization.
    To decide on which to implement, consider whether you need the content to be used just for a limited program
    or wheteher it can be called from many independent programs.
    For the first purpose it is better to implement a form whereas for the second we implement an FM.
    However, ABAP does not isolate the usage context.
    That is; you can call a form from another program within whose code the form is not actually implemented.
    However, this requires attention since the form may utilize global variables.
    The same issue holds for FMs.
    FMs are encapsulated in function groups and function groups may have global variables that can be globally
    used by all FMs inside it.
    Thanks,
    Reward If Helpful.

  • Is it necessary to use the standard function modules always?

    Hi All,
       Suppose i can retrieve the BUSINEES PARTNER ID from the table BUT000 with the help of 'BP_GUID' field through a select query statement. 
    Now is it necessary to use a standard function module to retrieve the same data. what about the performance? which is the better solution. to implement our own code or to use the function module available.
    Please someone clarify me about this issue.
    Regards,
    Sharry.

    If you'd ask the question in general it's obvious that there is no good answer as it always would depend on the circumstance. However, as you've posted your question in the performance tuning forum, let's look at your question in this context first. I think it's fairly safe to say, that in almost 100% of the cases a standard function module will not be as fast as any well implemented and custom tailored code. If in doubt, just try reading the code of the function module you want to read; most likely you will find lots of unnecessary fluff in there, often they read data that you don't even need.
    And as far as buffering is concerned, that can also be an issue. E.g. let's say you do a massive read of distinct business partners and you only need the data once for each partner. Obviously buffering is silly in this case and it might even slow down your program, because the implemented buffering is not necessarily well implemented. I've come across a few cases, where the buffer tables where standard tables with no efficient read access (so no sorted table or hash table) and once tons of data were buffered, it actually took a moment to look up if the record already was buffered (just to find it wasn't there yet).
    Now most of the times this slowdown is not an issue as the lookup is still fast compared to the (usually) prevalent database accesses with their slower IO timing. But another factor to consider is memory consumption and why buffer data in memory (and waste it), if you can't use the buffer anyway? So when I do use standard function modules, I usually try to see what they retain in global memory, to better understand if I need to call some initialization/clearing/refresh function...
    Note also that often you need to process lots of data, but don't find a standard function module for "mass access", so you need to read your object one by one. Obviously that's another good candidate for implementing your own queries, where you can process the data in packages.
    So what might be the reason to use a standard function module? Well, often it's required because the logic is so complex that it would take you too much time to implement it (not to mention that we often simply don't know all the logic that's coded in there). Another advantage is that you might get independent of the data model. E.g. for IDoc interfaces SAP switched in some release the tables where the data is stored. So if you had coded your own queries to get IDoc data, they wouldn't have worked after this particular release upgrade. The standard function on the other hand, checks both the old and new tables, so by using it you would have been fine.
    The one major caveat I'd give though is to always check whether the function module is released or at least documented to some degree. I.e. if it's not released, SAP won't support it and does not guarantee that the interface or logic stays the same. In my experience lots of functions I do want to use are not released (or documented), but I will still use them because they seem to be the best alternative in certain scenarios.
    Cheers, harald

  • Use of this function module

    hi,
    can anyone explain the use of this function module,  i coudn't find any documentation .
    This function module prints the data selected in selection screen.. but i want a breif explanation y we use this and wat for is this....
    FM_SELECTION_CRITERIA_PRINT

    Hi,
    1. Suppose the requirement is to know the parameters/select-options selected on the selection screen, on the list output (report).
    Because once we are on the report output , we wouldnt know the selection parameters made. The only way is to go back & check. Instead of going back we can use this FM to know even when we are on the o/p.
    2. Also to take a print of both the report output& selection parameters.
    Reward if useful.
    Thanks
    SMS

  • How to get tables used by a Function Module

    Hi,
    How to know the tables used by a function module dynamically.
    Cuurently im using BAPI_MATERIAL_SAVEDATA in my report program.
    I tried FM GET_TABLES to know the tables, but could see only tables used in the report.
    Main issue in my case is when im running this update program, could observe different tables being displayed as updated in SM50(Process Overview).Want to clarify as why these tables which are not being used in my report are being displayed in SM50.
    So was doubtin weather this FM is using these displayed tables.
    Thanks in advance for u r replys.
    Regards,
    Dedeepya

    Hi Dedeepya,
    you could use a SQL Trace (tx. ST05) to list all tables affected and operations that realize. Just active the trace, execute FM, and Deactive trace. Then click in "Display trace" and check it.
    Best regards,
    Pablo

  • How to do data source ehancement by using "Extraction by function module"

    I have one customized datasource "ZSOURCE" in R/3, this datasource use Extraction by function module, namely one functiona
    module "ZBI_FM_EX"and Extract. struct "ZBI_EX".
    Now I want to add one field "ZNEW" from standard SAP table LIKP into extractor "ZBI_EX" and write coding in ZXRSAU01.
    Question, could I add new field "ZNEW" into Structure:"ZBI_EX"? Do I need to change anything in functional module "ZBI_FM_EX" itself?
    Many Thanks!
    rajatina.

    Hi Dear,
                  It is good to write the code in your function module i.e. ZBI_FM_EX. becuase writing the code in ZXRSAU01 include program will affect the loading performance. instead of looping the data two time (one in your FM and again in ZXRSAU01 ), you can get the same will only loop.
    Thanks
    Obaid
    Edited by: obaid shaikh on Jan 21, 2011 11:53 AM

  • Use of  BILDSEQUENZ_IDENTIFY Function module

    Hi Friends,
    what is the use of  BILDSEQUENZ_IDENTIFY Function module.. and when we use ???
    Regards,

    ITS_DOWNLOAD is used when trying to download a file via the ITS.  For example you have created an ABAP program with the ability to download the file.  You then make that program available through the WEBGui or other ITS Service.  The function modules mentioned above do a check whether the user is logged in through the ITS or the SAPGui.  If it is the ITS, then this function module is called.
    I am not sure of the exact issues, but the normal download from SAP Gui does not work through the ITS.
    Regards,
    Chris

  • Use of this functional module   HR_EMPLOYEE_ENQUEUE

    what is use of this function module HR_EMPLOYEE_ENQUEUE.
    thanks in advanced.

    before doing the changes in EMP records ,first u have to Lock the PERNR then only SAP will allow u do the changes.
    ENQUEUE is nothing but a lock.
    Regards
    Prabhu

  • Using the MSG_* Function Modules

    Hello,
    I want to use the MSG_* function modules (e.g. MSG_OPEN, MSG_ACTION ...) and the MAC_MSG_* macros in my own programs, but they are not documented. Are there any docs about it?
    Regards
    Stefan

    Hi,
    Check this link
    http://wwwcs.uni-paderborn.de/cs/heiss/lehre/pg/intern/docs/bc_xbp_45.pdf
    Also see Re: Read Application Log
    Thanks & Regards,
    Judith.

  • Using of SXPG_COMMAND_EXECUTE Function Module.

    I am using the below Function Module
    CALL FUNCTION 'SXPG_COMMAND_EXECUTE'
        EXPORTING
          commandname                   = p_cmnd
          operatingsystem               = syst-opsys
          targetsystem                  = w_target
          stdout                        = 'X'
          stderr                        = 'X'
          terminationwait               = 'X'
        IMPORTING
          status                        = w_status
          exitcode                      = w_exitcode
        TABLES
          exec_protocol                 = t_protocol
        EXCEPTIONS
          no_permission                 = 1
          command_not_found             = 2
          parameters_too_long           = 3
          security_risk                 = 4
          wrong_check_call_interface    = 5
          program_start_error           = 6
          program_termination_error     = 7
          x_error                       = 8
          parameter_expected            = 9
          too_many_parameters           = 10
          illegal_command               = 11
          wrong_asynchronous_parameters = 12
          cant_enq_tbtco_entry          = 13
          jobcount_generation_error     = 14
          OTHERS                        = 15.
      WRITE :/ 'SY-SUBRC      =  [',  sy-subrc ,']'.
      WRITE :/ 'STATUS        =  [',  w_status ,']'.
      WRITE :/ 'EXITCODE      =  [',  w_exitcode ,']'.
      WRITE :/ 'EXEC_PROTOCOL ='.
    But By using the above function module I am getting the SY-SUBRC as equal to '1' and in the import parameters w_status getting as BLANK and T_PROTOCOL as Blank so it is raising the "Problem in executing UNIX command." in my program. Can anybody suggest how can i rectify this problem.
    Thanks in Advance.

    > no_permission = 1
    Seems like an authorization problem. Call SU53 immediatly after the failed function call and check with your security or system administrator (authorization object S_LOG_COM).
    Thomas

  • Use HIDE in Function Module.

    Hi expert,
    When I using HIDE in my function module, i got an error message said that
    "You cannot use HIDE with a local field". How can this happen and what can i do?
    Pls advise. Thanks.

    hI
    <b>UCCHECK</b>
    <b>ABAP Unicode Scan Tool UCCHECK</b>
    You can use transaction UCCHECK to examine a Unicode program set for syntax errors without having to set the program attribute "Unicode checks active" for every individual program. From the list of Unicode syntax errors, you can go directly to the affected programs and remove the errors. It is also possible to automatically create transport requests and set the Unicode program attribute for a program set.
    Some application-specific checks, which draw your attention to program points that are not Unicode-compatible, are also integrated.
    <b>Selection of Objects:</b>
    The program objects can be selected according to object name, object type, author (TADIR), package, and original system. For the Unicode syntax check, only object types for which an independent syntax check can be carried out are appropriate. The following object types are possibilities:
    <b>PROG Report</b>
    CLAS Class
    FUGR Function groups
    FUGX Function group (with customer include, customer area)
    FUGS Function group (with customer include, SAP area)
    LDBA Logical Database
    CNTX Context
    TYPE Type pool
    INTF Interface
    <b>Only Examine Programs with Non-Activated Unicode Flag</b>
    By default, the system only displays program objects that have not yet set the Unicode attribute. If you want to use UCCHECK to process program objects that have already set the attribute, you can deactivate this option.
    <b>Only Objects with TADIR Entry</b>
    By default, the system only displays program objects with a TADIR entry. If you want to examine programs that don't have a TADIR entry, for example locally generated programs without a package, you can deactivate this option.
    <b>Exclude Packages $*</b>
    By default, the system does not display program objects that are in a local, non-transportable package. If you want to examine programs that are in such a package, you can deactivate this option.
    <b>Also Display Modified SAP Objects</b>
    By default, SAP programs are not checked in customer systems. If you also want to check SAP programs that were modified in a customer system (see transaction SE95), you can activate this option.
    <b>Maximum Number of Programs:</b>
    To avoid timeouts or unexpectedly long waiting times, the maximum number of program objects is preset to 50. If you want to examine more objects, you must increase the maximum number or run a SAMT scan (general program set processing). The latter also has the advantage that the data is stored persistently. Proceed as follows:
    - Call transaction SAMT
    - Create task with program RSUNISCAN_FINAL, subroutine SAMT_SEARCH
    For further information refer to documentation for transaction SAMT.
    Displaying Points that Cannot Be Analyzed Statically
    If you choose this option, you get an overview of the program points, where a static check for Unicode syntax errors is not possible. This can be the case if, for example, parameters or field symbols are not typed or you are accessing a field or structure with variable length/offset. At these points the system only tests at runtime whether the code is sufficient for the stricter Unicode tests. If possible, you should assign types to the variables used, otherwise you must check runtime behavior after the Unicode attribute has been set.
    To be able to differentiate between your own and foreign code (for example when using standard includes or generated includes), there is a selection option for the includes to be displayed. By default, the system excludes the standard includes of the view maintenance LSVIM* from the display, because they cause a large number of messages that are not relevant for the Unicode conversion. It is recommended that you also exclude the generated function group-specific includes of the view maintenance (usually L<function group name>F00 and L<function group name>I00) from the display.
    Similarly to the process in the extended syntax check, you can hide the warning using the pseudo comment ("#EC *).
    <b>Applikation-Specific Checks</b>
    These checks indicate program points that represent a public interface but are not Unicode-compatible. Under Unicode, the corresponding interfaces change according to the referenced documentation and must be adapted appropriately.
    <b>View Maintenance</b>
    Parts of the view maintenance generated in older releases are not Unicode-compatible. The relevant parts can be regenerated with a service report.
    <b>UPLOAD/DOWNLOAD</b>
    The function modules UPLOAD, DOWNLOAD or WS_UPLOAD and WS_DOWNLOAD are obsolete and cannot run under Unicode. Refer to the documentation for these modules to find out which routines serve as replacements.
    <b>REWARD IF USEFULL</b>

  • Help needed on workin with LDBs using call through Function Module LDB_PROC

    Hi All
    I am new to Logical Databases. I found on net that I can use a dynamic call to a Logical Database using Function Module
    "LDB_PROCESS".
    I tried implementing the same using the following logic.
    REPORT  zsa_test2.
    TABLES: pernr.
    SELECT-OPTIONS s_pernr FOR pernr-pernr.
    DATA: callback TYPE TABLE OF ldbcb,
               callback_wa LIKE LINE OF callback.
    callback_wa-ldbnode     = 'PERNR'.
    callback_wa-get            = 'X'.
    callback_wa-cb_prog     = sy-repid.
    callback_wa-cb_form     = 'CALLBACK_PERNR'.
    APPEND callback_wa TO callback.
    START-OF-SELECTION.
      CALL FUNCTION 'LDB_PROCESS'
           EXPORTING
                ldbname                       = 'PNP'
             VARIANT                       = ' '
             EXPRESSIONS              = TEXPR
             FIELD_SELECTION        = FSEL
           TABLES
                callback                         = callback
             SELECTIONS                 = SELTAB
        EXCEPTIONS
             LDB_NOT_REENTRANT      = 1
             LDB_INCORRECT               = 2
             LDB_ALREADY_RUNNING  = 3
             LDB_ERROR                      = 4
             LDB_SELECTIONS_ERROR = 5
             LDB_SELECTIONS_NOT_ACCEPTED = 6
             VARIANT_NOT_EXISTENT      = 7
             VARIANT_OBSOLETE            = 8
             VARIANT_ERROR                  = 9
             FREE_SELECTIONS_ERROR = 10
             CALLBACK_NO_EVENT         = 11
             CALLBACK_NODE_DUPLICATE     = 12
             OTHERS                                       = 13.
      IF sy-subrc <> 0.
       WRITE: 'Exception with SY-SUBRC', sy-subrc.
      ENDIF.
    *&      Form  CALLBACK_SPFLI
          text
         -->NAME       text
         -->WA         text
         -->EVT        text
         -->CHECK      text
    FORM callback_pernr USING name  TYPE ldbn-ldbnode
                                                wa    TYPE pernr
                                                evt   TYPE c
                                                check TYPE c.
      BREAK-POINT.
      WRITE: / wa-pernr.
      ULINE.
    ENDFORM.                    "CALLBACK_SPFLI
    But I am unable to transfer the control to the subroutine. The break-point isn't reached.
    Can someone please guide me? Am I using the wrong node or something??

    look at the below code ..
    pass  sstab  to the selection in the FM
    data cbtab type table of ldbcb.
    data wa_cbtab like line of cbtab.
    data sstab type table of rsparams.
    data wa_sstab like line of sstab.
    wa_cbtab-ldbnode  = 'SPFLI'.
    wa_cbtab-get      = 'X'.
    wa_cbtab-get_late = ' '.
    wa_cbtab-cb_prog  = sy-cprog.
    wa_cbtab-cb_form  = 'CB_SPFLI'.
    append wa_cbtab to cbtab.
    wa_cbtab-ldbnode  = 'SFLIGHT'.
    wa_cbtab-get      = 'X'.
    wa_cbtab-get_late = ' '.
    wa_cbtab-cb_prog  = sy-cprog.
    wa_cbtab-cb_form  = 'CB_SFLIGHT'.
    append wa_cbtab to cbtab.
    wa_sstab-selname  = 'AIRP_FR'.
    wa_sstab-kind     = 'S'.
    wa_sstab-sign     = 'I'.
    wa_sstab-option   = 'EQ'.
    wa_sstab-low      = 'FRA'.
    append wa_sstab to sstab.
    call function 'LDB_PROCESS'
      exporting
        ldbname     = 'F1S'
      tables
        callback    = cbtab
        selections  = sstab .
    form cb_spfli  using  nodename  type ldbn-ldbnode
                          wa_spfli  type spfli
                          mode      type c
                          selected  type c.
       write: / wa_spfli-carrid,
                wa_spfli-connid,
                wa_spfli-airpfrom,
                wa_spfli-airpto.
    endform.
    form cb_sflight  using  nodename   type ldbn-ldbnode
                            wa_sflight type sflight
                            mode       type c
                            selected   type c.
       write: /3 wa_sflight-fldate,
                 wa_sflight-seatsmax,
                 wa_sflight-seatsocc.
    endform.

  • How to use fieldtab with Function Module F4IF_INT_TABLE_VALUE_REQUEST

    Hi,
    I'm using the function module F4IF_INT_TABLE_VALUE_REQUEST to build a matchcode in a selection screen parameter.
    The internal table that I use have 3 fields:
            GROUPID like APQI-GROUPID,
            CREDATE like APQI-CREDATE,
            STATE type  string.
    STATE is not in ABAP dictionary, so the function doesn't show this field. I need this field having field label 'STATUS'
    I have tried to use table FIELDTAB, but I cannot resolv the problem.
    Can anyone help me?
    Kind Regards

    Hi
    See the following ex:
    TYPES: BEGIN OF TY_MBLNR,
    MBLNR LIKE MKPF-MBLNR,
    END OF TY_MBLNR.
    DATA: IT_MBLNR TYPE STANDARD TABLE OF TY_MBLNR WITH HEADER LINE.
    data: it_ret like ddshretval occurs 0 with header line.
    At selection-screen on value-request for s_mat-low.
    Select MBLNR from mkpf into table it_mblnr.
    CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
    DDIC_STRUCTURE = ' '
    RETFIELD = 'MBLNR'
    PVALKEY = ' '
    DYNPPROG = ' '
    DYNPNR = ' '
    DYNPROFIELD = ' '
    STEPL = 0
    WINDOW_TITLE =
    VALUE = ' '
    VALUE_ORG = 'S'
    MULTIPLE_CHOICE = ' '
    DISPLAY = ' '
    CALLBACK_PROGRAM = ' '
    CALLBACK_FORM = ' '
    MARK_TAB =
    IMPORTING
    USER_RESET =
    TABLES
    VALUE_TAB = IT_MBLNR
    FIELD_TAB =
    RETURN_TAB = IT_RET
    DYNPFLD_MAPPING =
    EXCEPTIONS
    PARAMETER_ERROR = 1
    NO_VALUES_FOUND = 2
    OTHERS = 3
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    IF SY-SUBRC = 0.
    read table it_ret index 1.
    move it_ret-fieldval to S_mat-low.
    ENDIF.
    Go through the test program.
    REPORT Ztest_HELP .
    TABLES : MARA.
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    PARAMETERS : P_MATNR(10) TYPE C.
    SELECTION-SCREEN END OF BLOCK B1.
    DATA : BEGIN OF ITAB OCCURS 0,
    MATNR TYPE MATNR,
    END OF ITAB.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_MATNR.
    SELECT MATNR
    FROM MARA
    INTO TABLE ITAB
    UP TO 10 ROWS.
    CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
    RETFIELD = 'MATERIAL NUMBER'
    DYNPPROG = SY-REPID
    DYNPNR = SY-DYNNR
    DYNPROFIELD = 'P_MATNR'
    VALUE_ORG = 'S'
    TABLES
    VALUE_TAB = ITAB
    EXCEPTIONS
    PARAMETER_ERROR = 1
    NO_VALUES_FOUND = 2
    OTHERS = 3. 
    Regards
    Anji

Maybe you are looking for

  • Aim account wont login on ichat

    i have switched to leopard over the weekend. Since doing so, i have been unable to get my aim account to login. I receive the message connection reset by peer. I have no idea what to do, because i can get connected w/ adium to my msn account but not

  • New VeriSign requirement

    I was told by VeriSign that I must renew my certificates this year by removing the "Subject Alternative Names" from my CSR. Does anyone know how this is done while using sapgenpse. To my knowledge, I never added more than one domain name to my CSR. D

  • Can you transfer book created in iPhoto to Aperture?

    Can I transfer or move books I have created in iPhoto to Aperture?

  • I want to view my photos through icloud on my laptop but im finding it hard to do it

    I want to view all my photos on my icloud on my laptop but its not giving me the option, can u tell me how i do it or send me a link of some sort.thanks.

  • Template not changing after updating

    Hi There I am just starting out with CS3 and it is like nothing I have ever experienced before. I have several problems which I just cannot work through and I am wondering if they are all linked to one simple reasoning - that I need to do a basic cou