Development of new functionality

We have a requirement where we need to create a new functionality called 'Purchase Proposal' . This will be created with reference to either a shopping cart, a Bid or Live auction and will be referred while creating a PO in SRM.
I am using the following approach for this.
1) Create a transaction in GUI . This will involve creation of Z tables, writing an ABAP code for the logic, creating a number range object etc.
2) After testing this transaction successfully in GUI, Create a web service & publish it on ITS by which this transaction can be accessed through webgui.
3) Create a business object for workflow
4) Create a workflow template for the business object.
5) Modify the standard functionality of PO processing so that Purchase Proposal can be entered while creating a PO and the data from it will flow into the PO
Is this approach correct or anything is missing?

Hi,
This approach is correct.
Please pay attention on point 5 because you will be modify the standard functionality.
Regards,
Marcin Gajewski

Similar Messages

  • Req: New functionality for Skype

    Will there be further development of new functionality for Android tablets, such as
    1. Optional recording of video conversations to clouds storage
    2. Administrating Group conversations for more than 5 users

    Hello We are not currently able to support Skype Number in Ukraine, but we continue to look into how we can increase the list of supported countries.  We don't yet have any specific timelines on those. We'll keep our website updated as to any changes in that regard.  Thanks for your question

  • How can i add a new function to the Basic IVI class vi's?

    I need to use the IVI vi's to control some instruments, let's say a DC Power Supply.
    Since there's a DC Power supplyclass, i can used those VI's but waht if one of the VI's does not contains all the functions that i need?. How can i add more functions to the IVI classes?. What do i need to do to add a new function to the iviFGen class?

    If you would like to try developing your own instrument driver (or modify the existing one), we have documentation, model instrument drivers, and driver templates to help at :
    http://www.ni.com/devzone/idnet/development.htm
    We also have a syndicate of third party vendors that specialize in National Instruments' products and services. Some of the vendors specialize in driver development. I would suggest contacting one of the Alliance members at:
    http://www.ni.com/alliance

  • Best practice to develop the news web part to retrieve news data across the farms

    Hi,
    We have developed the News Web part. The functionality  it pulls the news from other SharePoint Farms and display it in the site. Currently we are using secure store service to  to connect to different FARM to retrieve the news from that FARM.
    The issue with this approach is that every time user hits the page it  will always hit the Secure Store service.There are almost 80K users who will be using this web part. Moreover this web part connects to multiple sites for multiple news from different
    division.What should be the best practice to develop such kind of web part without consuming the server resources and keep hitting the server till we get the new news.News does not change very often.
    Regards
    Rajaniesh

    Hi,
    According to your description, my understanding is that you want to know which is the best way  to handle the large complication of SharePoint cross farm retrieving data.
    If you are developing the custom web part to retrieve data from other farm, I suggest you can firstly create a custom timer job to get data hourly in the backend and restore the data in a list. Then you can create a web part to link to the list to display
    the data.
    For cross farm accessing data, I suggest you can create a custom web service to achieve it.
    Also, you can use ajax to display the web part data asynchronously. It will improve the performance and reduce the server pressure.
    Here are some detailed articles for your reference:
    Create and Deploy Custom Timer Job Definition in SharePoint Programatically
    Creating a Custom ASP.NET Web Service
    Create asynchronous web parts for Sharepoint
    Thanks
    Best Regards
    Forum Support
    Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact
    [email protected]
    Jerry Guo
    TechNet Community Support

  • What is meant by a PATCH.How can we develop a new tax patch.?

    HI Experts,
    Could u please explain me the meaning of a PATCH?
    How to develop a New Tax Patch?
    Please help me to understand the concept and how to test taxation after new patch development!
    Thanks in advance.
    Regards,
    Sai.

    Hi
    PATCH is nothing but a support package which is provided by SAP to add new functionality or correct some error in the already delivered package.
    The latest patch level will be available in Service market place of SAP. It can be downloaded and applied in the serrver.
    The patch for new taxation rules will also be available. You can see the info and the notes in the patch also.
    Hope the info is use about PATCH
    Thanks

  • How can I change the default start-up date for a new functional location?

    Is there a way to change the default date when creating a functional location? Whenever we create a new functional location, there is a date populated in the start-up date field. This date is our go-live date from last year and I cannot find the location in the IMG (if there is one) to stop the date from automatically populating with the date from the superior functional location. I tried setting the field from input to required but the date still populates automatically. Does anyone have any suggestions on how to leave the start-up date field blank when creating a new functional location?

    That field is generally picked up from the immediate superior FL in the hierarchy through the inheritance functionality.You will have to overwrite this date.I dont think you can clear this field through Configuration functionality.
    If you are in Ecc 6.0, you could get the help of developer to use implicit enhancement to initialize the field contents.
    Regards
    Narasimhan

  • Develop and Edit functions in BC with Safari

    Hello,
    I am unable to use the Develop and Edit functions in BC with Safari, since the update of September 10.
    Am I alone or is it general?

    Nous travaillons sous Mac 10.8.4 - Safari 6.05
    Message erreur en pièce jointe
    le même message apparait sous FIREFOX 23.0.1
    Cordialement,
    PHOTEXT
    Jean-Louis VERONIQUE
    www.photext.fr
    Email : [email protected]
    02 97 40 53 03
    Le 12 sept. 2013 à 16:01, Mike Connolly <[email protected]> a écrit :
    Re: Develop and Edit functions in BC with Safari
    created by Mike Connolly in Business Catalyst - View the full discussion
    It appears to be working in my Safari 5.1.7 on Windows 7 64-bit.
    What computer are you using and which version of Safari?
    Also, what's the text of the "JavaScript" error?
    Please note that the Adobe Forums do not accept email attachments. If you want to embed a screen image in your message please visit the thread in the forum to embed the image at http://forums.adobe.com/message/5675689#5675689
    Replies to this message go to everyone subscribed to this thread, not directly to the person who posted the message. To post a reply, either reply to this email or visit the message page: http://forums.adobe.com/message/5675689#5675689
    To unsubscribe from this thread, please visit the message page at http://forums.adobe.com/message/5675689#5675689. In the Actions box on the right, click the Stop Email Notifications link.
    Start a new discussion in Business Catalyst by email or at Adobe Community
    For more information about maintaining your forum email notifications please go to http://forums.adobe.com/message/2936746#2936746.

  • New development - need new roads added and 33 lot address locations corrected

    Hello, I am in the new homes and residential development business. I just developed a new residential development and I need to get Bing to update their roads and addresses. The addresses and roads have been in existence since about August 2014. I would have
    expected them to be updated by now but the roads are missing and the address locations are incorrect. 
    I have figured out how to get in touch with and submit bulk data to Google (Map Content Partners), but I cannot find an access point to Bing. I have gone the route of reporting mapping errors via Bing Maps, but I
    was wondering if their is a way to give Bing bulk mapping data to update new addresses and roads. I have shape files that include parcel boundaries, road centerlines, address blocks, and address points. I have also included the lot address and correct location
    coordinates below.
    Any help appreciated. 
    12306 186TH ST E  Puyallup, WA 98374 (-122.26914, 47.08904)
    12310 186TH ST E  Puyallup, WA 98374 (-122.26883, 47.08905)
    12314 186TH ST E  Puyallup, WA 98374 (-122.26853, 47.08906)
    12302 186TH ST E  Puyallup, WA 98374 (-122.26948, 47.08903)
    12318 186TH ST E  Puyallup, WA 98374 (-122.26819, 47.08906)
    12228 186TH ST E  Puyallup, WA 98374 (-122.26979, 47.0891)
    18509 124TH AV E  Puyallup, WA 98374 (-122.26786, 47.08912)
    18413 124TH AV E  Puyallup, WA 98374 (-122.26744, 47.08947)
    18510 124TH AV E  Puyallup, WA 98374 (-122.26832, 47.08954)
    18517 123RD AV E  Puyallup, WA 98374 (-122.26887, 47.08956)
    18520 123RD AV E  Puyallup, WA 98374 (-122.26955, 47.08958)
    18407 124TH AV E  Puyallup, WA 98374 (-122.26725, 47.08963)
    18502 124TH AV E  Puyallup, WA 98374 (-122.26811, 47.08969)
    18511 123RD AV E  Puyallup, WA 98374 (-122.26869, 47.08974)
    18401 124TH AV E  Puyallup, WA 98374 (-122.26703, 47.08979)
    18516 123RD AV E  Puyallup, WA 98374 (-122.26941, 47.08978)
    18412 124TH AV E  Puyallup, WA 98374 (-122.26792, 47.08985)
    18507 123RD AV E  Puyallup, WA 98374 (-122.26847, 47.0899)
    12317 184TH ST CT E  Puyallup, WA 98374
    (-122.26683, 47.08997)
    18512 123RD AV E  Puyallup, WA 98374 (-122.26924, 47.08995)
    18406 124TH AV E  Puyallup, WA 98374 (-122.26772, 47.09001)
    18415 123RD AV E  Puyallup, WA 98374 (-122.26827, 47.09005)
    18508 123RD AV E  Puyallup, WA 98374 (-122.26904, 47.09012)
    12313 184TH ST CT E  Puyallup, WA 98374
    (-122.26707, 47.09019)
    18405 123RD AV E  Puyallup, WA 98374 (-122.26805, 47.09021)
    18416 123RD AV E  Puyallup, WA 98374 (-122.26884, 47.09027)
    12309 184TH ST CT E  Puyallup, WA 98374
    (-122.26732, 47.09033)
    18410 123RD AV E  Puyallup, WA 98374 (-122.26864, 47.09042)
    12305 184TH ST CT E  Puyallup, WA 98374
    (-122.26754, 47.09046)
    18404 123RD AV E  Puyallup, WA 98374 (-122.26842, 47.09059)
    12301 184TH ST CT E  Puyallup, WA 98374
    (-122.26776, 47.09061)
    12227 184TH ST CT E  Puyallup, WA 98374
    (-122.26811, 47.09079)
    18503 124TH AV E  Puyallup, WA 98374 (-122.26763, 47.0893)

    It doesn't look like our data provider has this data yet. Note that in order for new addresses and roads to be added our data provider usually needs to drive to correctly capture all required information. I'll pass this information on to them so they can
    get this updated.
    http://rbrundritt.wordpress.com

  • How to create a new function module?

    I was doing the tutorial to create a SAP data widget and the tutorial was using BAPI_FLIGHT_GETLIST to display the data. However, in my system, theres no data in the table SFLIGHT2 and i couldnt populate any data in it.
    So i am trying to create my own function module. Can anyone tell me how should i go about doing it?

    Hi Low Soon ,
    please check the below links for creating a new function module.
    SAP Help :
    http://help.sap.com/saphelp_nw04/helpdata/en/9f/db98fc35c111d1829f0000e829fbfe/frameset.htm
    Step by Sterp approach to create a Functional Module:
    http://www.****************/Tutorials/ABAP/FunctionModule/page1.htm
    Thanks
    Jaideep Srinivasan

  • How to do ALV Popup in a new Function module

    Hi experts,
    This is the Client Requirement.
    " Flow Diagram/Pseudo Code:
    Attach a data flow diagram. Write brief pseudo code in plain English.  Be sure to include all access data plans.
    -     FM interface:
    -     Import: company code/ vendor#.
    -     Export: default_line,  type y4ap_t11
    -     Exception: NO_DATA or CANCELED
    In the FM code, past current z_venddefault code, except for write statements. After internal table is generated, show it in ALV popup. On ALV, add a OK/Cancel button. On OK, ensure that one line is selected (otherwise throw warning), and then fill export structure with that line’s G/L account, cost Center, and internal order# fields. Then close the ALV and end FM. For Cancel, just close the ALV end the FM.
    For an example of how to build such popup ALVs, take a look at FM Y4AP_SELECT_APPROVER.
    Unit Test Plan:
    Just use co.code 3000/vend# 1000 to test this FM."
    here i need to do is there is a simple report program by displaying in list.
    But now i need to do is , i have to put that code in a new function module and there i need to display it in alv grid.
    How to do this can anybody help me.
    It's a urgent i need to submit today to client.
    Thank you
    Basu

    Hi,
    Check this.
    select several rows in alv
    It will be helpful.
    Regards,
    J.Jayanthi

  • Ok, so I transferred my 3S info to my 4S by restoring from an old phone backup.  But SIRI is gone and god knows what else??  Can I get my old stuff into the new phone and keep the 4S new functionality?

    ok, so I transferred my 3S info to my 4S by restoring from an old phone backup.  But SIRI is gone and god knows what else??  Can I get my old stuff into the new phone and keep the 4S new functionality?

    I suspect unless he had some items in iCloud backup then they are gone.  Connecting an iPhone to a different library from that to which it was previously connected will result in the device asking if you want to erase it.

  • New functionality in ECC 6.0 with Enhancement Package 3

    Hi Experts,
    Can any one tell me what new functionality is added in Enhancement package 3 (ECC 6.0)?
    Thanks & Regards,
    Simar

    Hi,
    There no new functionality in ECC 6.0 for auto clearing of bank clearing account. Still you need to depend on Manual / Electronic bank statement to clear them.
    Thanks
    Prasada

  • New functionality in ECC 6.0 and problems during sap implementation

    Dear Gurus,
    may i know the details of the New functionality in ECC 6.0 on (MM,SD,PP,QM,PS,HR,PM,FI/CO,BI,XI,DMS ) or what is the problems coming at the time of implementation of ECC 6.0.
    THANKS AND REGARDS
    RS

    Ritesh,
    Question is bit confusing
    may i know the details of the New functionality in ECC 6.0 on (MM,SD,PP,QM,PS,HR,PM,FI/CO,BI,XI,DMS )
    That means you are going to upgarde from some earlier version .what is that version ?
    Then you might find some specific information at
    https://websmp102.sap-ag.de/uda -
    >Upgrade Dependency Analyzer
    what is the problems coming at the time of *implementation* of ECC 6.0.
    If its a new implemenation you will  not face problem , but you need to configure everything accordingly.
    Problem depends upon what all you are using from standard and customizing.
    Above provided link will help you.
    Just add up
    http://wiki.sdn.sap.com/wiki/display/ERPLO/NewfunctionalityinECC6.0%28+MM%29
    Regards,

  • Cannot see any actions while creating a new function in CC5.2

    Hi All,
    We recently installed  GRC Access Control 5.2.At the backend we are using SAP R/3 4.7.The system has been installed and I am currently trying to configure it.I am trying to create a new function.After chosing a function ID and description when I try to insert an action,it comes up blank for my production server and even if I choose the option "All".
    Any assistance in the matter would be greatly appreciated.

    Helo Neo,
    For making the functions, risks etc, you need to have some standard procedures being followed and up in place. Uploading transactions,, authorization objects and text are one of these.
    Thus before you start actually using/implementing the GRC the system, I would like to advice you to go through the documentation for the same, which suggests the step by step procedure for accomplishing the same.
    The problem that you have encountered is a bit easy to track as it suggests the Auth objects and texts might not probably be uploaded. But there might be something you have missed while going the procedural way, which may cause a lot of problems while troubleshooting.
    Kindly upload the files in the config tab, under "Upload Objects" and let us know if there is still an issue.
    Regards,
    Hersh.

  • 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.

Maybe you are looking for

  • Why can I not download itunes to my new Windows 7 laptop?

    I have just purchased a new Samsung laptop but when i go to download ITunes from apple website the download doesnt do anything, is there anything i need to turn off or on??

  • STO PO with delivery and Billing

    The STO PO is creeated with Item Cat  'Q' and WBS element with Batch.   Delivery is created.  Transferr order confirmed. During PGi- the systeme is throwing error -Check table XMCHB: entry Material XX Plant XX Stor. Loc. XX Batch no. XX does not exis

  • Exit Code: 15 - Media DB Sync failed

    Trying to download and install Lightroom 6 and it just sits there at 0% for a long time and then will error out. I have signed out of Creative Cloud, rebooted the computer. Resigned back into Creative Cloud and it still will not even start the downlo

  • CCMS & Problem Management

    1.  Referring to the CCMS (Client Centre Management System) and reviewing tcodes SCC4 and SE06 for client setting objects. As we know, the tcode SCC4 helps us to review the client setting on whether the objects are modifiable or not, controls on the

  • Referencing package table type from Java

    Hi, In my package spec, I have a table type defined. I just want to refer this from Java program in order to pass ARRAY object to a procedure inside the package. But I keep getting an errory saying "Invalid name pattern". But If I declare the type ou