Skip to Content
avatar image
Former Member

Regarding framework of client app in SP14

Hi,

The automatic code generated in MI client application after creating an app with the xml file in SP14 is totally different from that in SP9.

Please let me know if any documentation on the organization of the application is available.

Regards

Raja Sekhar

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

1 Answer

  • Apr 16, 2006 at 08:18 AM

    Hi Raja,

    just spend few minutes to read this..

    The structure of MI Applications..

    Let us imagine..(Sync Bo detail in meRepMeta.xml file . suppose ZMCD is our MI Application)

    ZSYNCBO - one of the Sync BO in our MI Application

    One and only field in the TOP - EMPID

    This has one ITEM table 010

    NAME and TITLE are the two fields in 010.

    <b>

    in NWDS SP09 with respect to this meRepMeta.xml file mentioned above

    -


    </b>----


    Applications developed in SP 09 version of developer Studio is exactly following the MVC architecture.

    In the project structure , we can see -- (Project directory is ZMCD )

    Within this ZMCD

    <u>1) one app-root directory - this is the application root directory</u> within that we can see the JSP files(Getlist and Getdetail) correspoding to our SyncBos in folders.(folder names are exactly the SyncBo names)

    the JSP files generated are totally depend on the SyncBos.

    For this application , as i mentioned , we have one Sync Bo which has one item table.

    So the JSP files here are..

    <SyncBO Name>List.jsp - This is used for displaying the getlist details(Here we can see the Header

    details. Synk key is the default key here.)

    <SyncBO Name>Detail.jsp - This is used for displaying the details of each Header data(will have link to

    particular item. here 010)

    <SyncBO Name>Item010List.jsp - This is used for displaying the entire getdetail entries (here the key is sync key

    itself)

    <SyncBO Name>Item010Detail.jsp - This is used for displaying the details of particular item , corresponding to one item entry.

    we can see some .view files within the WEB-INF files within a directory mentioned above(this WEB-INF folder will be there

    in the app-root folder).In these .view files , we can see the proper mapping between the JSP files and their appropriate controller files.

    For each JSP file seperate controller file is present.So we have to write the proper event handling methods in this controller only. Here we can see a 1:1 relationship between JSP files and controllers.

    We can see the controller files in <Project Folder>\java\<package structure>\web\<SyncBO Name>\controller\

    <u>2) One java directory</u>

    We can see the proxy classes generated with respect to the syncbos in these directories.

    These proxy classes are used for implementing the persistence capability of SyncBos.

    <Project Folder>\java\<package structure>\bointerface\

    In this directory , we can see the interfaces corresponding to our particular SyncBo.

    Here for particualr syncbo, we can see

    <SyncBo name>.java (Interface) - which contain the gettter and setter method declarations for fileds which are in the TOP Structure of our SyncBo.

    <SyncBo name>Item0100.java - which contain the gettter and setter method declarations for fileds which are in the 010 Structure(ITEM) of our SyncBo.

    <SyncBo name>Manager.java - This Interface is SyncBo specific. Thiis contain the declarations of all basic methods corresponding to one SyncBo object.

    This manages a business object and all its composing child business objects. This factory object is responsible for the following tasks for all the business objects it manages:

    • -Looking-up: looks up a single business object by its key from persistence.

    • -Retrieving: retrieves a collection of all the business objects from persistence.

    • -Constructing: constructs a business object instance.

    • -Inserting: inserts a business object to persistence.

    • -Copying: clones a business object for editing. The cloned business object has exactly the same keys and contents with the original one, but not on persistence.

    • -Updating: updates a business object in persistence.

    • -Deleting: deletes a business object from persistence.

    • -Other business logics, e.g., searching, etc.

    <Project Folder>\java\<package structure>\boimplementation\

    In this folder , we can see the implementations of all interfaces(Proxy classes corresponding to one SyncBo).

    So what we have to do is , we have to make use of these class instances and their methods in our Controller classes during the execution of particular Event.

    These controller classes are specific to the JSP files. So we have to handle the events,which are triggered from one JSP file , in their respective controller classes.

    Hence the MI applications developed using SP09 version of NWDS is much more similar to MVC architecture than that developed using the later versions of Developer Studio.

    Applications in SP 09 is not generic .Because here during applicattion development , the Studio itself is generating proxy classes to Header and Item instances. These proxy classes contains getter and setter methods correspoding to each fields in Structure.

    For example if the filed name is VBELN,

    /**

    • Retrieve VBELN (Short Description of this field: no description available)

    • @return VBELN

    */

    public String getVbeln();

    /**

    • set VBELN (Short Description of this field: no description available)

    *

    • @param vbeln

    */

    public void setVbeln(String vbeln);

    These are the getter and setter methods corresponding to VBELN.

    In our controller classes , we are exactly using these getter and setter methods directly for manipulating the data.

    So if we are changing the field names ,then we have to manually handle the changes accordingly for the getter and setter methods.

    To make it work , we have to make changes in most of the files which are acting as proxy classes.

    <b>in NWDS SP11 or higher versions with respect to this meRepMeta.xml file mentioned above

    -


    </b>

    Here the application generated is entirely different when compared to SP 09 version of studio.

    Here after exporting the application , we can see the JSP files in

    <MI APP NAME>\WEB-INF\srclib\<MI APP NAME>.jsp.zip file.

    Here after exporting the application , we can see the Java files in

    <MI APP NAME>\WEB-INF\srclib\<MI APP NAME>.src.zip file.

    on extracting the zip , we can see

    <u>1) one bean directory -</u>

    contains the TableViewBean.java file -> A bean used as databag to transport data from a servlet to the JSP

    <u>

    2) one dataaccess directory -</u>

    which contain the TableContentProvider.java file and SmartSyncDBAccess.java file

    TableContentProvider.java

    -


    Our controller class is accessing the methods directly from the instance of TableContentProvider.

    This act as an interface between the Persistence class(SmartSyncDBAccecc.java) and the Controler file.

    SmartSyncDBAccess.java

    -


    Access to the Smart Sync data on the MI client.We can implement methods for manipulating the data on the client device.

    <u>3) <Controller Name>.java</u> -


    This is the one and only controller file in the MI application. We have to handle the entire events using this common controller.

    This is the one limitation of applications in higher versions. This can be avoided by Creating our own Controller classes for our use. We have to write specific methods in our Custom controller classes. We only have to call these methods from our main Controller class (which is specified during application creation) for handling particular events.

    In these applications , we have the provision to make use of the SmartSync API directly , so there is no proxy methods and hence there is no difficulty in migration.

    just go through this . i have discussed the folder structure of applications in this blog for SP11 and for higher versions

    /people/kishor.gopinathan/blog/2006/03/17/how-can-we-apply-mi-application-patches

    Regards

    Kishor Gopinathan

    Add comment
    10|10000 characters needed characters exceeded