ISA ICSS FUNCTIONAL

Hello Gurus,
I have recently entered the world of ISA - ICSS on the functional side & would like to get a good understanding of what exactly:
1)A functional role in ISA & ICSS is expected to do?
2)What are the various configurations, settings , step-by step process that needs to be maintained by a functional consultant in E-Commerce?
3)On a day to day basis, what should a Functional Consultant be doing?
If you Gurus can please help me understand this, it will be a big help.
At this point I'm not sure what part of ISA ICSS is being handled by a Technicak Developer & what are the other areas / consultants  a functional person needs to work with & for what kind of information.
If somebody can please explain & email me documents related to this, I will be thankful.
Thanks everyone.
Regards,
Sri

Hi Sri,
I may say your queries are quiet general to answer.
At most cases, functional will define the business process and map it into
the system configuration. ICSS which is Internet Customer Self Service function
where you as functional expected to activate some functions so that your
customer able to use some transactions/query to your system by themself.
On daily basis, a functional should make sure that necessary functions are
correctly configured and work as expected. While technical, may involve on
customization such as specific customize user fields or screen layout or
ABAP/BAdi program. But this again, each company / project team may have
different point of approach on how to do it.
Cheers,
Gun.

Similar Messages

  • Login to ISA unsuccessful - function startLogin in response detected!

    Hello,
    Some Internet users receive the error message “Login to ISA unsuccessful - function startLogin in response detected!” some days in the afternoon when they connect on the Internet site (EP portal, connected to CRM).
    I found this error message in the portal logs, but this does not give the root cause.
    I can see that the number of portal connections increases during the afternoon. Is it related? It is the cause or the consequence? I cannot determine it.
    Could you please advise me on how to analyze and solve this issue?
    Best regards
    Daniel Ouin

    Hi Daniel,
    I am calling the CRM - 'Customer' BP role in portal and getting the same issue.
    Were you able to resolve this?
    Regards,
    Shyam

  • Is it possible have ISA-type functionality using EP alone?

    We are implementing r3/enterprise (ECC 5.0). we need to provide access to a few large customers (Distributirs/resellers) for Order entry & enquiry of their own orders etc..(with variant configuration).
    Internet Sales (ISA) seems to provide this functionality.
    But my question is this: If we only implent Enterprise Portal, will it automatically give the functionality of ISA ? (thru some iviews etc..I am not very familiar with EP)
    Or is it the case that EP can ONLY open up r3 transactions such as VA01..etc..through "integrated ITS", which is supposed to be part of netweaver 6.40 (hence available in ECC 5.0)? If so, how can the access be controlled for each customer only to his own orders/invoices? and will EP still need separate IPC web aplication for configurable products, or EP will render the r/3 VA01 in its entirity, so that we dont need to depend on IPC?
    I have come accross some forum questions where EP & ISA are installed on same server.. Does that mean in spite of EP, ISA is still required for the external-facing web-access? Access for the external customers is our only requirement. So I was hoping that EP alone would meet it and leave door open for future web-enablement, without having to separately install ISA..
    Any help/suggestions would be greatly appreciated..
    Thanks

    Hi,
    if you need a shop with a SAP-system as backend you need ISA. Probably the old WebShop (ITS-Solution) could work too, but in your scenario I would suggest installing ISA. You don't need a separate box and ISA is a really good shop.
    As I said as far as I know EP doesn't has anything like a shop. Sure you could create a shop by yourself by programming one as WebDynpro-app or something like that, but I don't think that would make big sense.
    Best regards,
    Jens

  • Migration questionaire for ICSS n ISA

    Good morning,
    I wanted to gear up myself with some questions to ask the implementers of a proj. so that I can better understand the kinda implementation that has done.
    I am looking specifically for ICSS and ISA question.
    Please post some if you guys/ gals are aware or if u think of any..
    Thanks in advance and anticipation.
    ave a good day.
    Clive

    Here are some which I feel might help you. These are based on my past support proj exp.
    ICSS (Internet Customer Self Service) / ISA (Internet Sales)
    Basic Installation/Development
    Version of ICSS implemented and Service Pack     
    Version of ISA implemented and Service Pack.     
    Scenario Implemented      
         ICSS      B2B       B2C
         ISA      B2B       B2C
    Version Controlling Implemented?     Yes      No
    If above is Yes then what tool and please document the process for the same     
    Solution Database installed for the FAQ?     0 Yes      0 No
    IDE used?     
    Is TREX engine configured, if yes then name of the RFC destination     0 Yes      0 No
    Search Server Relation name.(To publish CRM Products)     
    Internet User Management/Roles and Authorization
    User type created at the backend     0
    SU01
    0
    SU01
    0
    SU01 & SU05
    User created using web user interface? If no then How?     
    Country Settings for internet Users? Country and date format.     
    Super User facility given to the customer     
    Name the reference user used for creating the B2C users     
    Reference user used for creating the B2B users     
    Roles assigned for B2B users     
         ICSS     
         ISA     
    Roles assigned for B2C users     
         ICSS     
         ISA     
    ICSS
    XCM Configuration
    Name the default configuration used?     
    JCO connection to the backend system     
    FAQ Enabled      0 Yes      0 No
    Solution Search Enabled
    0 Yes      0 No
    Transactions Enabled     0 Yes      0 No
    Installed Base Enabled     0 Yes      0 No
    Product Registration Enabled     0 Yes      0 No
    FAQ enabled for portal     0 Yes      0 No
    Solution Search enabled for portal     0 Yes      0 No
    Installed Base Enabled for portal     0 Yes      0 No
    Product Registration Enabled for portal     0 Yes      0 No
    Transaction Enabled for portal     0 Yes      0 No
    File Attachment size     
    Live Web Collaboration component Enabled     0 Yes      0 No
    General
    Object Family used and to which product type it is assigned?     
    Name Installed Base used for creation of CSR?     
    Partner functions used in the partner Determination Procedure used for service order creation.     
    Object category used for individual objects being created when you register products as part of an E-Commerce Internet Customer Self-Service process?     
    FAQ enabled for customers? If Yes, then what is the Category ID used for FAQ product     
    Is warranty enabled for products? If yes, list down the warranties used for the corresponding type of product     
    Catalog type used for the service product     
    Partner functions used for the product registration     
    Transaction type used for transaction     
    Transaction type used for complaint processing     
    Technical
    How ICSS is accessed?     
    ICSS standard code has been modified?     
    Name custom package created for developing/enhancing Standard SAP code     
    Any new mime object used apart from the Standard SAP, if yes then for what?     
    Any XML files been modified manually, if yes then for what reason and name the files      
    Any custom RFC module created at the backend, for what reason     
    Any standard RFC Module or standard SAP code modified     
    Any call back function created for business transaction     
    Is there any custom Workflow attached to the service order creation, or complaint creation     
    Please name the Badi’s implemented and for what reason     
    Any SMARTFORM has been enhanced or created, If yes please name them     
    Julius

  • REPORT FUNCTION

    IN THE CFREPORT report builder there isa Report
    function...when i return a query with 2 field....it cannot be done?
    is it for the report function only can return 1 value
    ?

    While it's true that there is nothing built in to ApEx that would allow you to create a report writer per-se, there is nothing stopping you from doing this yourself.
    You can start out with something really basic, like a SQL editor text area and a report region that uses that SQL to generate the report. You can see an example of how that would look here:
    http://htmldb.oracle.com/pls/otn/f?p=18800:15
    This was pretty straight forward to create. If you want any help with doing something like this let me know.
    Earl

  • ICSS Product Registration

    dear masters,
    i'm trying to configure the ICSS functionality, to manage service requests and contract, and compliant, and to do this, i'm following the best practice steps (Best prectice code: C74, C13   link http://help.sap.com/bp_crm70/CRM_DE/HTML/index.htm)
    at the moment i  can't perform the product registration
    what can i do to performe this operation?
    regards
    Luigi Familiari
    Edited by: ggfam2000 on May 19, 2010 4:41 PM
    Edited by: ggfam2000 on May 19, 2010 4:41 PM

    And you also have a product catalog created and published, right?
    Well, for your question on seeing the Product Catalog in WebUI, you have to do the following:
    1. You have set up a CRM Product Catalog
    2. You have set up a Web shop running on a Java 2 Enterprise Edition (J2EE) server
    3. Configure the Extended Configuration Management (XCM) settings
    4. Assigned the user to appropriate business role
    In your case for example - Service Professional (SERVICEPRO)
    For more information see this: [Product Catalog Display in CRM WebClient UI|http://help.sap.com/saphelp_crm70/helpdata/en/46/24a62995654a8d8dc80a2332eec505/content.htm]

  • Web Coding considerations for CRM and R/3

    As of ISA 3.1 the correct process for Development and Deployment you must use these tools in order to stay within SAP Modification Concept.
    1. Software Deliver Manager(SDM) - In the 6.20 environment it is a loose deployer meaning it will not track what web-apps exist on the j2ee server. On the later versions of the 6.20 j2ee if you do not use the SDM then the libray.txt and refernce.txt will be rebuilt and the reference to the web-apps required libraries will be removed.
    2. NetWeaver Developer Studio - This tool was built primarily as an SAP Portals development tool since it can connect to the j2ee 6.40 and do builds and deployments into portals. For CRM ISA, ICSS and Biller Direct as well as R/3 ISA and others you should still use NetWeaver since it has lots of functionality that can be leveraged even at this early stage.
    3. ISA Build Tool - You must use this to rename and build deltas of your web-apps for deploying throughout the landscape.
    4. Ant 1.5 - This is the most tested version of the ANT for the ISA Build tool. I highly recommend using this version only.
    Developing for CRM in the new 6.40 world can be confusing and the thought that with this new j2ee server there is a ton of added functionality for ISA is not true. The j2ee server can be integrated with SAP NetWeaver Developer Studio but that gives very little support to CRM/R/3 ISA ICSS or BillerDirect.
    Good luck in your work.
    Stephen

    Sunil,
    I believe we are working together in the other forum.  I will be posting as much as I can there.  As for upgrading.  6.40 is the way to go right now.  SAP Is transitioning everything in that direction. The two most popular for current customers are 6.20 and 6.40 6.30 is more a development system.  Try to use whatever your customer has.  Believe me when I say the more you install the environments on your machine the more you learn.  We, J2EE Developers, are unique in that we should know everything about our landscape not just our code.
    Stephen

  • [NEWBIE] Difference between BaseAction and IsaCoreBaseAction

    Hi Experts,
    I'm new in ISA api programming.
    Can you please tell me what are the difference between:
    com.sap.isa.core.BaseAction and com.sap.isa.isacore.action.IsaCoreBaseAction ?
    When should I use BaseAction or IsaCoreBaseAction?
    Thank you in advance,
    Jemaru

    Hi,
    Read below description.
    com.sap.isa.core.BaseAction
    The BaseAction is the Base for all ISA-Actions. All ISA-Actions have to specialize the BaseAction and implement the doPerform method. When the ActionServlet calls a specific ISA-Action, the perform method on the BaseAction is executed. It checks whether the current session is valid. If the session is not valid it forwards the request to session_not_valid. If the session is valid it calls the method doPerform on its specialization.
    com.sap.isa.isacore.action.IsaCoreBaseAction
    Base class that takes care of the save retrievement of the BOM and session context. Another feature is that default catch statements for all common exceptions are put into this class. The developer of a an action can rely on this class to catch all Exceptions and display corresponding pages. If the correct log/tracing level (DEBUG) is set, all contextual data is written do the log file. To provide a security feature, the value of request parameters starting with nolog_ are not written to the logfile.
    You should for example protect credit card information with this method.
    Note - In this version of the class every request coming from one client is handled synchronized. This is done to prevent unpredictable exceptions coming from the underlying middleware (JCo). This approach may not be sufficient for high performance installations and it may be necessary to switch to another model of synchronization later.
    IsaCoreBaseAction This Base class provides easy access to Business Object Managers of the ISA core functionality, the IPC, and the catalog. This class gives you access to object of  UserSessionData,  BusinessObjectManager, IsaLocation
    so when you want to work with existing available objects like BOM, UserSessionData or want to log through IsaLocation, you  should use IsaCoreBaseAction class.
    BaseAction does not provide any access to UserSessionData or BusinessObjectManager or IsaLocation Object. It checks whether Session is valid or not to perform any process.
    I hope this will info will help you.
    Thanks.
    eCommerce Developer

  • Calling New Function Module from JAVA ISA b2b

    I need to call a new function module which accepts some parameters as input and
    returns some result parameters back as output.
    These returned value needs to be displayed on the JSP pages of ISA B2B applications.
    Can someone please guide me and provide code snippet on how to do this?
    Thanks in advance.
    Points will be awarded for all relevant and helpful answers.

    Stride,
    I did this on CRM ISA 4.0...  I used the dev and extension guide as a basis - I think the ISA 5.0 guide has the examples and tutorials in a separate document that can also be downloaded from service.sap.com.
    Here’s some info on how to do it although I can't guarantee this is the full solution or that it will work the same for ISA 5.0, and I will probably forget a lot of stuff as its been a few years since I did it!  I also can’t guarantee it is the correct way to do it – but it worked!  Basically, we built a link into the order overview page to display url’s to order tracking websites using an RFC on the backend CRM system.  Hope it helps anyway.
    1. Create RFC enabled function module in backend.
    2. Edit file backendobject-config.xml in folder project_root\b2b_z\WEB-INF\xcm\customer\modification:-
    [code] <backendobject
         xmlns:isa="com.sapmarkets.isa.core.config"
         xmlns:xi="http://www.w3.org/2001/XInclude"
         xmlns:xml="http://www.w3.org/XML/1998/namespace">
         <configs>
              <!-- customer changes in backendobject-config should be done here by extending/overwriting the base configuration-->
              <xi:include
                   href="$
    Template for backend object in customer projects
    Concrete implementation of a backend object
    This implemenation demonstrates how a backend object
    is used to communicate with the CRM system
    @see com.ao.isa.backend.boi.Z_AOFuncBackend#getOrderDeliveryTrackingData(java.lang.String)
    Interface used to communicate with a backend object
    The purpose of this interface is to hide backend implementation details
    from the business objects
    Returns a vector of Z_OrderDeliverTracking objects containing data to link
    to external delivery tracking websites
    @param orderNo The sales order document number
    @return A vector of order tracking objects
    @return
    @return
    @return
    @return
    @return
    @param string
    @param string
    @param string
    @param string
    @param string
    /modification/backendobject-config.xml#xpointer(backendobject/configs/*)"/>
              <!-- This is an example customer extension. A new Backend Object is registered in the framework using XCM extension mechanism. -->
              <!-- If you write customer extensions you should register your backend objects in the same way. -->
              <!-- Please make sure that you use the correct base configuration (e.g. crmdefault for CRM or r3default, r3pidefault for R/3) -->
              <config
                   isa:extends="../config[@id='crmdefault']">
                   <businessObject
                        type="Z_AO_Custom"
                        name="Z_AO_Custom"
                        className="com.ao.isa.backend.crm.Z_AOFuncCRM"
                        connectionFactoryName="JCO"
                        defaultConnectionName="ISAStateless"/>
              </config>
         </configs>
    </backendobject>
    [/code]
    File com.ao.isa.backend.crm.Z_AOFuncCRM.java looks like this :-
    [code] package com.ao.isa.backend.crm;
    //jco imports
    import java.util.Vector;
    import com.ao.isa.backend.boi.Z_AOFuncBackend;
    import com.ao.isa.businessobject.order.Z_OrderDeliveryTrackingItem;
    import com.sap.mw.jco.JCO;
    import com.sap.mw.jco.JCO.ParameterList;
    import com.sapmarkets.isa.core.eai.BackendException;
    import com.sapmarkets.isa.core.eai.sp.jco.BackendBusinessObjectBaseSAP;
    import com.sapmarkets.isa.core.logging.IsaLocation;
    public class Z_AOFuncCRM
         extends BackendBusinessObjectBaseSAP
         implements Z_AOFuncBackend
         // initialize logging
         private static IsaLocation log =
              IsaLocation.getInstance(Z_AOFuncCRM.class.getName());
         /* (non-Javadoc)
         public Vector getOrderDeliveryTrackingData(String orderNo)
              Vector urlData = new Vector();
              try
                   // get Java representation of function module
                   JCO.Function func =
                        getDefaultJCoConnection().getJCoFunction(
                             "Z_BAPI_CRM_ORDER_TRACKING_URLS");
                   // provide export parameters
                   ParameterList params = func.getImportParameterList();
                   params.setValue(orderNo, "ORDER_NO");
                   func.setExportParameterList(params);
                   // execute function
                   getDefaultJCoConnection().execute(func);
                   // get result table
                   JCO.Table table =
                        func.getTableParameterList().getTable("TRACKING_DATA");
                   int numRows = table.getNumRows();
                   for (int i = 0; i < numRows; i++)
                        // get row
                        table.setRow(i);
                        // create a new Z_orderdeliverytracking object
                        Z_OrderDeliveryTrackingItem trackItem =
                             new Z_OrderDeliveryTrackingItem(
                                  table.getString(0),
                                  table.getString(1),
                                  table.getString(2),
                                  table.getString(3),
                                  table.getString(4));
                        urlData.addElement(trackItem);
                        trackItem = new Z_OrderDeliveryTrackingItem();
                   return urlData;
              catch (BackendException bex)
                   // The following key has to be added to WEB-INF/classes/ISAResources.properties
                   // in order to see the exception correctly
                   log.config("ao.b2b.order.error.getOrderTrackingURLs", bex);
              return null;
    [/code]
    And file com.ao.isa.backend.boi.Z_AOFuncBackend.java looks like this:-
    [code] package com.ao.isa.backend.boi;
    //package java.ao.com.ao.isa.backend.boi;
    import java.util.Vector;
    import com.sapmarkets.isa.core.eai.sp.jco.JCoConnectionEventListener;
    public interface Z_AOFuncBackend
         public Vector getOrderDeliveryTrackingData(String orderNo);
    [/code]
    Whilst file com.ao.isa.businessobject.order.Z_OrderDeliveryTrackingItem.java looks like this:-
    [code]
    package com.ao.isa.businessobject.order;
    // Referenced classes of package com.sapmarkets.isa.businessobject.order:
    //            PaymentType
    public class Z_OrderDeliveryTrackingItem // extends SalesDocument implements OrderData
         private String deliveryDocNo;
         private String goodsIssuedDate;
         private String consignmentNo;
         private String status;
         private String url;
         public Z_OrderDeliveryTrackingItem()
         public Z_OrderDeliveryTrackingItem(
              String delDocNo,
              String GIDate,
              String consNo,
              String status,
              String url)
              this.setDeliveryDocNo(delDocNo);
              this.setGoodsIssuedDate(GIDate);
              this.setConsignmentNo(consNo);
              this.setStatus(status);
              this.setUrl(url);
         public String getConsignmentNo()
              return consignmentNo;
         public String getDeliveryDocNo()
              return deliveryDocNo;
         public String getGoodsIssuedDate()
              return goodsIssuedDate;
         public String getStatus()
              return status;
         public String getUrl()
              return url;
         public void setConsignmentNo(String string)
              consignmentNo = string;
         public void setDeliveryDocNo(String string)
              deliveryDocNo = string;
         public void setGoodsIssuedDate(String string)
              goodsIssuedDate = string;
         public void setStatus(String string)
              status = string;
         public void setUrl(String string)
              url = string;
    [/code]
    3. Edit file bom-config.xml in folder project_root\b2b_z\WEB-INF\xcm\customer\modification :-
    [code] <BusinessObjectManagers
         xmlns:isa="com.sapmarkets.isa.core.config"
         xmlns:xi="http://www.w3.org/2001/XInclude"
         xmlns:xml="http://www.w3.org/XML/1998/namespace">
         <!-- customer changes in bom-config should be done here by extending/overwriting the base configuration-->
         <xi:include
              href="$/modification/bom-config.xml#xpointer(BusinessObjectManagers/*)"/>
         <!-- This is an example Business Object Manager. It can act as template for customer written Business Object Managers -->
         <BusinessObjectManager
              name="Z_AO-BOM"
              className="com.ao.isa.businessobject.Z_AOBusinessObjectManager"
              />
    </BusinessObjectManagers>
    [/code]
    File com.ao.isa.businessobject.Z_AOBusinessObjectManager.java looks like this:-
    [code] package com.ao.isa.businessobject;
    // Internet Sales imports
    import com.sapmarkets.isa.core.businessobject.management.BOManager;
    import com.sapmarkets.isa.core.businessobject.management.DefaultBusinessObjectManager;
    import com.sapmarkets.isa.core.businessobject.BackendAware;
    Template for a custom BusinessObjectManager in customer projects
    public class Z_AOBusinessObjectManager
         extends DefaultBusinessObjectManager
         implements BOManager, BackendAware {
         // key used for the backend object in customer version of backendobject-config.xml
         public static final String CUSTOM_BOM = "Z_AO-BOM";
         // reference to backend object
         private Z_AOFunc mCustomBasket;
    constructor
         public Z_AOBusinessObjectManager() {
    Method is called by the framework before the session is invalidated.
    The implemenation of this method should free any allocated resources
         public void release() {
    Returns custom business object
         public Z_AOFunc getCustomBasket() {
              if (mCustomBasket == null) {
                   mCustomBasket = new Z_AOFunc();
                   assignBackendObjectManager(mCustomBasket);
              return mCustomBasket;
    [/code]
    And uses file com.ao.isa.businessobject.Z_AOFunc.java which looks like this:-
    [code]
    package com.ao.isa.businessobject;
    // Internet Sales imports
    import com.sapmarkets.isa.core.businessobject.BOBase;
    import com.sapmarkets.isa.core.businessobject.BackendAware;
    import com.sapmarkets.isa.core.eai.BackendObjectManager;
    import com.sapmarkets.isa.core.eai.BackendException;
    import com.sapmarkets.isa.core.logging.IsaLocation;
    // custom imports
    import com.ao.isa.backend.boi.Z_AOFuncBackend;
    import java.util.Vector;
    Template for business object in customer projects
    public class Z_AOFunc extends BOBase implements BackendAware
         // initialize logging
         private static IsaLocation log =
              IsaLocation.getInstance(Z_AOFunc.class.getName());
         private BackendObjectManager bem;
         private Z_AOFuncBackend backendAOBasket;
    Returns a reference to the backend object. The backend object
    is instantiated by the framework.
    @return a reference to the backend object
         private Z_AOFuncBackend getCustomBasketBackend()
              if (backendAOBasket == null)
                   //create new backend object
                   try
                        backendAOBasket =
                             (Z_AOFuncBackend) bem.createBackendBusinessObject(
                                  "Z_AO_Custom");
                        // the backend object is registered in customer version
                        // of backendobject-config.xml using the 'Z_AO_Custom' type
                   catch (BackendException bex)
                        // The following key has to be added to WEB-INF/classes/ISAResources.properties
                        // in order to see the exception correctly
                        log.config("ao.b2b.order.error.getOrderTrackingURLs", bex);
              return backendAOBasket;
    This method is needed when a business object has a corresponding
    backend object.
         public void setBackendObjectManager(BackendObjectManager bem)
              this.bem = bem;
    Returns a vector of url links for tracking
    @return vector of urls
         public Vector getOrderDeliveryTrackingData(String orderNo)
              // the call is delegated to the CRM aware backend object
              return getCustomBasketBackend().getOrderDeliveryTrackingData(orderNo);
    [/code]
    4. Edit file config.xml in folder project_root\b2b_z\WEB-INF to add custom actions (the section below is just the custom stuff added at the end of the file – the Z_orderTracking is the relevant one) :-
    [code] <!-- Begin of custom AO action definitions -->
         <action path="/b2b/Z_orderTracking" type="com.ao.isa.order.actions.Z_OrderTrackingAction">
              <forward name="success" path="/b2b/order/Z_orderTracking.jsp"/>
         </action>
         <action path="/catalog/Z_displaySVGPage" type="com.ao.isa.catalog.actions.Z_SVGPageAction">
              <forward name="success" path="/catalog/Z_SVG_fs.jsp"/>
         </action> [/code]
    Which points at Java file com.ao.isa.order.actions.Z_OrderTrackingAction.java which looks like this :-
    [code] package com.ao.isa.order.actions;
    // internet sales imports
    import com.sapmarkets.isa.core.BaseAction;
    import com.sapmarkets.isa.core.UserSessionData;
    // struts imports
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.action.ActionForm;
    // servlet imports
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.ServletException;
    // Internet Sales imports
    import com.ao.isa.businessobject.Z_AOBusinessObjectManager;
    import java.util.Vector;
    This action acts as a template for customer extensions
    public class Z_OrderTrackingAction extends BaseAction
    This method is called by the ISA Framework when the
    action is executed
         public ActionForward doPerform(
              ActionMapping mapping,
              ActionForm form,
              HttpServletRequest request,
              HttpServletResponse response)
              throws ServletException
              // get user session data object
              UserSessionData userSessionData =
                   UserSessionData.getUserSessionData(request.getSession());
              // gettting custom BOM
              Z_AOBusinessObjectManager myBOM =
                   (Z_AOBusinessObjectManager) userSessionData.getBOM(
                        Z_AOBusinessObjectManager.CUSTOM_BOM);
              // get the order number being processed
              String orderDocNumber = request.getParameter("orderNo");
              // pass the order number back to the page
              request.setAttribute("orderNo", orderDocNumber);
              if (orderDocNumber != null)
                   // Get a vector of delivery tracking objects from lower layers (Business Object layer =>
                   // Business Logic Service Layer)
                   Vector trackingTable =
                        myBOM.getCustomBasket().getOrderDeliveryTrackingData(
                             orderDocNumber);
                   String error = "";
                   if (trackingTable != null)
                        if (trackingTable.size() == 0)
                             error = "true";
                        else
                             error = "false";
                   else
                        error = "true";
                   request.setAttribute("errorMessage", error);
                   request.setAttribute("trackingTable", trackingTable);
              return mapping.findForward("success");
    [/code]
    5. I added the call to the function module for page orderstatusdetail.jsp in folder project_root\b2b_z\b2b\order to display a custom page Z_orderTracking.jsp in the same folder.  To do this I added a link into the HTML to call a JavaScript function that passed the current order number to the /b2b/Z_orderTracking.do actionhandler mapped in the config.xml file.
    So, in summary!  Create an RFC; define business managers for it in the XML files; create a new Strut action and supporting Java class; create all the Java class’ for the managers.
    I hope this makes some sense!
    Gareth.

  • Debugging of ABAP Function Module through ISA Application CRM B2C 4.0

    Hi Experts
    There is way to Debug ABAP FM through ISA CRM b2c Application by Modifying some XML Files as per Extn Guide.
    I tried modifying the <APPLICATION_HOME>\WEB-INF\xcm\customer\modification\modification-config.xml After that I restarted the Application .
    But it is not Breaking for Both Statefull & Stateless FM after running my Application.
    With Some Help i found that if we try it on Remote System ( Means SAP GUI has to in Same System where CRM is Installed ???????????). but that is not Advisable Right !!!.
    So if i am able to Debug ABAP Function Module through ISA Application from any Other remote System.
    I think it will be very Useful.
    Thanks & Regards
    Ravi Sah

    Ravi
    It is other way around !!!
    You should have SAP GUI installed on the machine in which you start(access) your B2C Application. This enables for ABAP Debugging.
    We have tried this and works fine for us !!!
    Thanks
    Jack
    <b>Allot points if my post helps !!!</b>

  • Steps to create JCO to call R3 Function module in ISA CRM b2b webshop

    Hi experts,
    Can u help me in creating a JCo connection to R3 from CRM isa b2b webshop.
    See i am working on CRM 5.0 isa . I have a default jco connection calling to CRM.
    But i wanted an another JCO to call FM of R3.
    Can u pls give me the steps in creating this jco (XCM, Xml, changes etc )?
    Hope you have understood my question.
    Pls reply,
    thanks in advance,
    Niraja.

    Hi Niraja,
    The second option would be easy to do, as the connection is already made you can just use the connection pool.
    I feel maintaining/creating two connections would lead to performance issues.
    So its better to go with FM in CRM to FM in R/3
    If you want to go for a different connection or connection pool then follow this example
    In the world of database connectivity, creating individual connections to a database system is technically expensive and often incurs unwanted overhead in both client and server-side applications. Connection pools allow your application to check connections out from a pool and release a connection once the transaction has completed. This tip briefly explores the value and implementation of using connection pools in JCo.
    The following code presents two classes that demonstrate the use of a connection pool and its restrictions. You should be able to pull code from this example when adding pooling to your own Java/JCo application.
    The first JCo application does not use pooling:
    import com.sap.mw.jco.*;
    public class JcoTest {
    private static JCO.Client theConnection;
    private static IRepository theRepository;
    public static void main(String[] args) {
      createConnection();
      retrieveRepository();
      try {
      JCO.Function function = getFunction("RFC_READ_TABLE");
      JCO.ParameterList listParams = function.getImportParameterList();
      listParams.setValue("BSAUTHORS", "QUERY_TABLE");
      theConnection.execute(function);
      JCO.Table tableList = function.getTableParameterList().getTable("DATA");
      if (tableList.getNumRows() > 0) {
       do {
        for (JCO.FieldIterator fI = tableList.fields();
          fI.hasMoreElements();)
          JCO.Field tabField = fI.nextField();
          System.out.println(tabField.getName()
               + ":t" +
               tabField.getString());
         System.out.println("n");
       while (tableList.nextRow() == true);
      catch (Exception ex) {
       ex.printStackTrace();
    private static void createConnection() {
      try {
       theConnection = JCO.createClient("000", "DDIC", "minisap", "en", "sincgo", "00");
       theConnection.connect();
      catch (Exception ex) {
       System.out.println("Failed to connect to SAP system");
    private static void retrieveRepository() {
      try {
       theRepository = new JCO.Repository("saprep", theConnection);
      catch (Exception ex)
       System.out.println("failed to retrieve repository");
      public static JCO.Function getFunction(String name) {
        try {
             return theRepository.getFunctionTemplate(name.toUpperCase()).getFunction();
        catch (Exception ex) {
         ex.printStackTrace();
          return null;
    To add connection pooling you simply add this code to the beginning of the main method:
        if (connPool == null) {
          JCO.addClientPool(POOL_NAME,
                            5,
                            "000",
                            "bcuser",
                            "minisap",
                            "EN",
                            "sincgo",
                            "00");
    And replace the call to the createConnection() method with this:
             theConnection = JCO.getClient(POOL_NAME);
    The code should now look like this:
    import com.sap.mw.jco.*;
    public class JcoTest {
    private static JCO.Client theConnection;
    private static IRepository theRepository;
        private static final String POOL_NAME = "myPool";
    public static void main(String[] args) {
        JCO.Pool connPool = JCO.getClientPoolManager().getPool(POOL_NAME);
        if (connPool == null) {
          JCO.addClientPool(POOL_NAME,
                            5,      //number of connections in the pool
                            "client",
                            "username",
                            "paswword",
                            "EN",
                            "hostname",
                            "00");
            theConnection = JCO.getClient(POOL_NAME);
      retrieveRepository();
      try {
      JCO.Function function = getFunction("RFC_READ_TABLE");
      JCO.ParameterList listParams = function.getImportParameterList();
      listParams.setValue("BSAUTHORS", "QUERY_TABLE");
      theConnection.execute(function);
      JCO.Table tableList = function.getTableParameterList().getTable("DATA");
      if (tableList.getNumRows() > 0) {
       do {
        for (JCO.FieldIterator fI = tableList.fields();
          fI.hasMoreElements();)
          JCO.Field tabField = fI.nextField();
          System.out.println(tabField.getName()
               + ":t" +
               tabField.getString());
         System.out.println("n");
       while (tableList.nextRow() == true);
      catch (Exception ex) {
       ex.printStackTrace();
      JCO.releaseClient(theConnection);
    private static void retrieveRepository() {
      try {
       theRepository = new JCO.Repository("saprep", theConnection);
      catch (Exception ex)
       System.out.println("failed to retrieve repository");
      public static JCO.Function getFunction(String name) {
        try {
             return theRepository.getFunctionTemplate(name.toUpperCase()).getFunction();
        catch (Exception ex) {
         ex.printStackTrace();
          return null;
    Now, when this class executes, it will create a pool of 5 SAP connections. Once created, a single connection is retrieved and executed against. After the call to SAP has finished, the connections are released with:
    JCO.releaseClient(theConnection);
    You can easily integrate this code in any application that acts as a server or requires multiple users to access SAP via the Web.
    Regards,
    Sateesh Chandra

  • Where do i get ISA and ICSS information for sytem definition (:

    Where do i get ISA and ICSS information for sytem definition inside portal? I will really appreciate if somebody could post a sample definition for ISA and ICSS.
    Message was edited by: Prakash  Singh
    Message was edited by: Prakash  Singh

    Hi,
    I'm currently working as a developer on an ISA and Portal implementation.  We too are using the CRM ISA BP too integrate into the portal.  I've not been too close to this aspect of the project but we have been having lots of problems...
    Couple of important things I am aware of:-
    Make sure your SAP J2EE is at the latest version/patch - we were having issues with logon and session time outs (there is an OSS note relating to this issue)
    Make sure you user creation methods are set up correctly - we had automatic creation of user IDs on the CRM system which caused a nightmare getting single sign on working between the Portal, CRM and ISA.
    Hope this is of some help.

  • How to debug Function Modules from ISA!!!

    Hi Gurus,
                     How to debug the function modules from ISA.
    For Ex:If i am in shopping cart or product catalog,e.t.c..i need to know which FM is calling from backend, how to debug the FMs/Bapis related to that from ISA side.
    direct me to all the possible ways.
    Regards,
    Anil.

    Hello Anil,
    There are a few things you need to look at when trying to debug .
    1. The function module needed ( you can do a trace to see which one is called.)
    2. The user that is been user With statefull and stateless connection the FM can be called by either the JCO user or the internet user. This will need to be considered when setting your external break point.
    3. The server been used, You will need to check the XCM to see which server is been used ie are you using a group connect of a specific server , You need to make sure that you are setting the breakpoint on the server that is specified in the XCM.
    Have a look at note [871907|https://service.sap.com/sap/support/notes/871907]   the attachment to the note may help you a lot. .
    Hope this helps.
    Regards
    Mark
    Edited by: Mark Foley  on Feb 11, 2009 11:10 AM

  • Adding a R/3 Function Module funtionality into ISA 4.0

    Hi All,
    I have just begin looking into the Internet Sales Application Java code and my project requirement is to write the whole new functionality in ISA java application which is popularly known as Customer Function Module in SAP R/3 ..Please let me know what should be the architecture or design pattern i shall follow..
    I assume that we have to write : -
    A new Backend Interface and Class to get the data or the parameters from SAP..
    A new Business Object has to be written
    I have to deploy my functionality as a webservice and then it will be used by .NET application which will use this service to fill their data into this web service and thus into the R/3 backend database.
    Let me know if i am not clear we can discuss this further ..

    Welcome to SDN !!!
    Tarun,
        To access the SAP R/3 from java Application, we have to use SAP JCo.
    The following are the promising Links that deals with the best introduction to JCo :
    http://www.sapgenie.com/faq/jco.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/6f/1bd5c6a85b11d6b28500508b5d5211/content.htm
    Thanks
    Jack
    Note: Whenever a post finds a Good information for you, please award the post with Points...

  • ISA and ICSS online deployment

    Hello
    We are running SAP WAS 6.40 JAVA and would like to know if it is possible to deploy the ISA and ICSS applications without taking down the live version during the SDM deployment.
    Thanks,
    Jamal

    Thanks Sateesh
    Do you know if we have to configure anything in SDM?
    We currently have the following set up in PROD.
    [Screen Shot|http://www.laptopdj.co.uk/sap/prod_j2ee.jpg]
    Do you think this set up will allow us to deploy to production without effecting user that are currently online using the application.
    Edited by: Jamal Walsh on Feb 29, 2008 10:55 AM
    Edited by: Jamal Walsh on Feb 29, 2008 11:06 AM

Maybe you are looking for

  • Air Help not a valid option for some projects?

    RH9, multiple projects that are currently deployed as merged webhelp. I opened the project we use as the 'parent' project and was able to change the output to Air, no problem. But when I try to open the other projects that we use as 'child' projects,

  • On click download file to client machine via browser

    Dear sir I am J2EE beginner. I am trying to write a simple JSP application which allows users to download a file. I mean on the home page a file link should be visible to uses and when any one clicks on it, it prompt for downloading or just directly

  • Workflow Agent Listener and Workflow Background program run after each minute

    Hello, We have scheduled Workflow agent listener program to be run after 5 minutes but it runs every minute more than once and fills concurrent request queue. Please help. EBS 12.1.1, DB 11.1.0.7, Linux 5. Thanks & Regards Aneel Ahmed

  • Use Backup (Alternate) List View for Favorites/Wishlist

    Can anyone tell me, is it possible to use the alternate/backup list view item from a web app for the favorites/wishlist?  Right now, when some ads a webapp item (from within the detail view) to favorites, I'm getting the regular list view layout when

  • Sql server jdbc system

    Hello All, My connnection tests for sql server fail when I create a JDBC system object.  I used the exact same steps to create a oracle system object (user mapping,permissions)(of course, i used the url string and driver class pertinent to sql server