Reward mechanism in KM repository

Hi ,
   I have a scenario . It is as follows .
1) I have a file repository manager configured to portal .
2) I have already setup the approval process for the repository .The user will submit the document in the repository and will wait for the approval before it get's published .
3) The document will be submitted in some category and if approved, the user is entitled to some points which are fixed as per the category in which he uploads the document .
What I need to achieve is that as soon as the approver approves the doc, the points that need to be rewarded to the user should automatically get updated against his account .
The table that I will be using for the maitainance of these details for the user has been created has been created in the default database of the portal .
How and where I should write that piece of code to implement the same ?
Regards
Deepak Singh

Hi Deepak,
   You could rewrite approval command, when the state is release then give the points to the users.
   Then you add this command in the group commands applies to resources in the layout set used.
Patricio

Similar Messages

  • Team work in JDeveloper

    Hi,
    Is there any team-work mechanism with a repository that is available with JDeveloper?
    Karthik

    Karthik,
    You can use CVS or Oracle Repository, or wait for
    the promised VSS-integration.
    Personally, I'd go with CVS.

  • Looking for the BEST java IDE

    Hi
    We're evaluating java IDE's (especially JBuilder & VisualAge) for a Client-Server project that uses RMI (there is no Web development\HTML\Bens involved)
    I would appreciate any recommendations, suggestions, articles or reviews that you have.
    thanks in Advance...

    Both of these IDEs are very solid pieces of software each with their own advantages.
    JBuilder is similar to most other java IDEs. It takes less time to become productive in JBuilder than it will take in Visual Age because Visual Age takes a non-standard approach to java development. Be sure to look at a recent version of JBuilder because early version support for remote debugging was very poor.
    Visual Age has some of the most advanced java development features of any IDE I've ever used. The downside of this functionality is that it takes quite a bit of time to get accustomed to the IDE. Visual Age doesn't use files like most other IDEs opting instead to provide a completely separate archiving mechanism called a Repository.
    If you're looking for something that will take very little time to learn, JBuilder is the better choice. It doesn't have as many features as Visual Age but it's also a lot more like most IDEs and has just about everything most java projects will need.
    If you're team is composed primarily of Sr. developers and you're willing to take the time to learn the IDE, Visual Age is well worth the investment. It's a pain to learn but once you learn it you won't want to go back to file based development.
    Of course, if you're looking for something between these 2 in terms of features and complexity, download the community edition of forte and give it a whirl.

  • SP05 standard repository passwords - Will reward good points

    Hi,
       We unarchived the standard repositories from Business content for SP05 patch 01 (materials, customers and vendors). In the console the repository is locked and needs login credentials. I could not find information on what user id and password to use for first time login.  Please tell me what user id / password to use for first time login to standard repositories (We have just unarchived the a2a files)
    Will reward good points
    Thanks
    Harsha

    Hi Harsh,
    <b>"For unlocking  repository, Choose Login from the context menu and enter a username and password (for the standard repositories the default username is Admin without a password). Otherwise use the username and password that you have defined in the repository".</b>
    This is mentioned in the Upgrade Guide of SP5 at page no 13. you can check using link <a href="https://websmp110.sap-ag.de/~sapidb/011000358700000271872007E">Upgrade Guide SP5</a>
    Please try user Id "Admin" and password blank once more. If not successful this time then it seems that you have by mistake changed the password of the repository.
    Hope this will help you. Please let me know the results.
    Thanks,
    <b>Shiv</b>

  • Business Object Repository ( B O R )

    Can some one please send me some data or links from where I can get data on Business object repository .

    Hi,
         SAP's Business Object Repository gives you an improved way to integrate business processes with external partners -- an increasingly necessary ability in the burgeoning e-marketplace economy.
    The age of e has had a profound effect on the IT industry. Not only has it changed our way of life, but it has also forced systems such as SAP to embrace a new era of openness. Marketplace demands for flexible automation of inter-business workflow and intelligent data exchange have forced formerly very proprietary ERP systems to begin helping customers integrate with other companies and with e-marketplaces data formats. For the first time, companies must expose their business processes to the outside world.
    In order to achieve this openness, SAP provides a technical infrastructure for the R/3 product, the Business Object Repository (BOR), which provides a simple yet powerful mechanism for external systems to trigger core business processes (such as placing an order) without concern for the underlying data structure. This level of abstraction is beneficial because it decouples R/3 from the external system. Either system is therefore free to change its internal business processes without affecting the other. SAP provides this technical infrastructure using a component-based view of its system. Each component or object provides a view of the data and the business processes that interact with that data. External systems can access this data via BAPI methods, which in turn access the underlying data structures of the system. It is the responsibility of the object and the BAPI to ensure the integrity of the data. This encapsulation of the data not only lends itself to external interfaces, but by using objects from within SAP, you can greatly reduce implementation, testing, and maintenance effort via the promotion of code reuse.
    Business Objects
    A business object is a problem-domain entity that you model in the SAP system, such as SalesOrder, BillingDocument, and Employee. The BOR stores all the objects in the R/3 system. The repository is a group of all the objects in the R/3 system. If the focus of objects is to model atomic business processes then it can be said that the BOR provides an enterprisewide view of business processes. By designing your ABAP code to fit your business processes you increase the ability of that code to flex when those processes are altered or integrated with external systems. This had made the object-oriented approach, which the BOR provides, essential to developing inter-business or e-business functionality.
    Attributes
    A business object is primarily represented by its attributes. You perform actions, such as create, update, or delete on the attributes by calling the methods of the object.
    Attribute NetValue of Object BUS2032 (SalesOrder).
    The majority of attributes are data-dictionary fields (for example, the NetValue attribute is defined by VBAK-NETWR). When you access an attribute of an object, you execute a SQL statement that retrieves the corresponding field in the database.
    Definition of attribute NetValue.
    You can also define attributes that do not exist in the data dictionary. These attributes are called virtual attributes. For example, a business partner has an attribute called BirthDate that is stored in the data dictionary. You can add a virtual attribute to the BusinessPartner object called Age. The age of a business partner is not stored in the database, but you can calculate it using the current date and the birth date of the business partner. If you implement the ABAP code that calculates Age, every time you access the Age attribute, the code executes and returns the business partners age.
    Definition of virtual attribute Age.
    This is an excellent example of one of the tools that a component-based approach provides. The external system does not need to concern itself with how to gather the data that it requires. The calling program needs only to access the attribute for the data to be returned. This is how business objects decouple the calling program (whether it be in R/3 or external to R/3) from the internals of R/3.
    The BOR lets you define multi-line attributes. These attributes define one-to-many relationships between an object and other fields. These objects can be defined in the data dictionary or can also be virtual attributes.
    An attribute that uniquely defines an object in the system is called a key attribute. In the case of a SalesOrder, the key attribute is VBAK-VBELN (the TableName and FieldName). It is not uncommon for an object to have several key fields. An example of this is object is the SalesArea (BUS000603) object type which has SalesOrganization (TVTA-VKORG), DistributionChannel (TVTA-VTWEG) and Division (TVTA-SPARTE) as key fields.
    Methods
    As mentioned earlier, the methods of an object represent the actions you take with objects attributes. An action in this example would include retrieving the status of one or more sales orders based on specific criteria. Methods are analogous to function modules in that they have importing and exporting parameters as well as exceptions, which you view by selecting a method and clicking on the toolbar button. This allows external systems (or internal developments) to pass and accept parameters from these methods just as if they were using function modules -- allowing external systems to call methods.
    In Figure 4, the methods shown with the green LED are BAPIs that are called specifically from external systems. They can, however, be called from within the system itself. The method shown with the stop sign is obsolete, but retained for backward compatibility, and should not be used in new developments.
    Methods of SalesOrder.
    Delegation and Subtyping
    One of the most complex concepts in object-oriented development is that of inheritance. This concept lets you extend core functionality by creating a child of the parent object that inherits all of its attributes and methods. For example, a Manager object is a subtype (child) of the Employee object. The Manager object has all the attributes of an Employee object (such as EmployeeID or Name) but also has some extra attributes (such as CompanyCar or ParkingSpace). SAP has not implemented inheritance in the BOR. However, it has provided subtyping and delegation, which offer an alternative way to extend R/3 functionality.
    Subtyping
    A subtype of an object is another object whose creation is based upon a parent object (see the preceding manager/employee example). The subtype maintains references to all the attributes and methods of its parent object. This means that any methods and attributes defined on the parent can be executed and accessed on the child object. I have often heard less-experienced developers refer to subtyping as copying the parent object. Although the effects can be similar, in order to achieve an understanding of some of the more advanced concepts, such as interface inheritance, it is important to realize that this is not accurate.
    If a subtype object were merely a copy of its parent, then all the code contained within the parent would be physically copied to the child. This is not the case. The subtype simply maintains references to its parents methods and attributes. The real difference is that the subtype lets you redefine these methods and attributes. You can easily add your own business rules to the parent methods by redefining the subtypes method. In the following example, I will show why this distinction is so important.
    Subtyping Case Study
    As an ABAP developer at Acme Tyres Pty. Ltd., you have been given the task of implementing some security measures for the companys online store. The requirement is simple: The password must be at least six characters long.
    Modifying SAP code leads to costly and complicated upgrades due to the modified code being overwritten by the newly delivered SAP code. Therefore, The challenge is finding a way of implementing the business logic without modifying SAP code.
    After some investigation, you realize that the method CHANGEPASSWORD (in BAPI) on the object KNA1 (Customer) is called when customers change their passwords. All you need to do is create a subtype of KNA1 and then redefine the CHANGEPASSWORD method adding the ABAP code to ensure that the password is a minimum of six characters long. It is of course not wise to change SAP code even assuming you have the passwords, which can be provided only be SAP. After the method is redefined, you just need to implement the business rules in ABAP.
    FIGURE 5 Redefinition of ChangePassword method.
    It is imperative that once you redefine the method it still behaves in a similar manner. You are allowed to add extra business logic, but the method must still change the password rather than do something unexpected, like delete a customer. This is particularly important when SAP is being accessed from external systems. The external system will expect a method to provide certain functionality. The developer should take care to ensure that this expectation is met.
    Delegation
    Now that you have implemented a new CHANGEPASSWORD method, you need to tell the SAP system to use the redefined version of CHANGEPASSWORD and not the version that was delivered on the KNA1 object. This is similar to object-oriented inheritance but the two concepts do have fundamental differences.
    Delegation for objects.
    By making an entry in the delegation table, you tell R/3 that before executing a method on KNA1, it should first check if that method has been redefined on the subtype. If it has, then the system executes the redefined method . If it hasn't, then the system executes the original method. Figure 7 illustrates this process.
    Execution flow for methods with delegation.
    This delegation is powerful because it lets you implement your own business logic without modifying any SAP code. As long as the objects are properly delegated, your method will be executed.
    Responsibility
    So far I have shown you two major components of an object, its attributes and methods. The difficulty in SAP is that it has traditionally been a data-driven, procedural-development approach. The BOR is not well understood by developers and managers and thus it is shunned by those that stand to gain the most from it. If managers and developers alike would take a formalized approach to development using business objects, significant savings in the development, testing, and maintenance phases would be achieved. This is due to the high level of re-use that business objects encourage.
    Having said this, when a powerful tool is put into the hands of an inexperienced person, chaos can (and usually does) ensue. If object-oriented design principals are not adhered to, then the resulting code has poor reusability and maintainability. Although an in-depth discussion of design issues is beyond the scope of this article, I will introduce in the following section one of the more fundamental design aspects of BOR programming: Responsibility.
    When you are given the task of creating a method or attribute on an object, one of the most important questions you should ask is, Does this attribute or method belong on this object? This question is fundamental to an object-oriented design and the answer can make a world of difference. Answering this question incorrectly has detrimental effects on the development effort resulting in methods and attributes strewn across myriad objects, with no coherent structure. If the methods and attributes were strewn across several objects, it would be more difficult to provide a uniform interface to external systems. If an external system wants to execute a particular business process in R/3, it may need to access several business objects, thus increasing coupling and reducing the layer of abstraction between R/3 and the external system.
    Lets take, for example, the requirement to be able to update a sales order. This is a common requirement and one that SAP usually implements for you. For the sake of the example, lets assume that SAP has not implemented this method. You will need to implement your own UPDATE method on one of the business objects. The question here is: Which object? This question is what I term as defining responsibility. Which object is responsible for having the UPDATE method on it? As shown in Figure 4, the answer in this cases is BUS2032 (SalesOrder). If you put it on any other object then you run the risk of no one else knowing of its existence. Next time there is a requirement to update a sales order, the developer will develop an additional method. You would then have two separate pieces of code that implement the same functionality. This duplication doubles development, testing, and maintenance requirements. On large projects, this can become a real problem and a maintenance and testing nightmare.
    SAP recognizes the challenges facing developers in the e-business era. It is aware that if it wants to take R/3 to the next phase, it needs to continue evolving the ABAP language and ensure that powerful development tools are available to SAP developers.
    Rising to the challenge, SAP has begun developing extensions to the ABAP language called ABAP objects (see "Introducing ABAP Objects," in the IntelligentERP feature archive for an excellent introductory article to ABAP objects by Jürgen Heymann and Horst Keller). These extensions will provide ABAP developers with a full range of object-oriented tools. Eventually, these new extensions will make BOR obsolete. However, the use of object-oriented development is sure to be an integral part of future SAP developments, regardless of where the world of e takes us.
    Reward points
    Regards

  • "Not using a pattern recognized by the GSA table invalidation mechanism" warning (many-to-many items relationships)

    Hello.
    I'm getting such warnings on server startup:
    12:57:33,241 WARN  [StoreRepository] Warning - table: store_user appears in item descriptors: store and user but not using a pattern recognized by the GSA table invalidation mechanism.  Cached values from this table will not be updated when user's properties are modified.  These properties for this table are: [storeUsers]
    12:57:33,241 WARN  [StoreRepository] Missing a src id property in item-descriptor user's table named store_user whose column-names are store_id
    12:57:33,242 WARN  [StoreRepository] Missing a dst id property in item-descriptor store's table named store_user whose column-names are user_id
    12:57:33,242 WARN  [StoreRepository] Missing a dst multi property in item-descriptor store's table named store_user whose column-name is store_id
    12:57:33,242 WARN  [StoreRepository] Warning - table: store_user appears in item descriptors: user and store but not using a pattern recognized by the GSA table invalidation mechanism.  Cached values from this table will not be updated when store's properties are modified.  These properties for this table are: [userStores]
    12:57:33,243 WARN  [StoreRepository] Missing a src id property in item-descriptor store's table named store_user whose column-names are user_id
    12:57:33,243 WARN  [StoreRepository] Missing a dst id property in item-descriptor user's table named store_user whose column-names are store_id
    12:57:33,243 WARN  [StoreRepository] Missing a dst multi property in item-descriptor user's table named store_user whose column-name is user_id
    Here's repository definition file:
    <item-descriptor name="user" id-space-name="user" display-name="User" display-property="name">
      <table name="user_tbl" type="primary" id-column-name="user_id">
           <property name="id" column-name="user_id" data-type="string" display-name="Id">
                <attribute name="uiwritable" value="false" />
                <attribute name="propertySortPriority" value="-1" />
           </property>
           <property name="name" column-name="user_name" data-type="string" display-name="Name">
                <attribute name="propertySortPriority" value="-1" />
           </property>
      </table>
      <table name="store_user" type="multi" id-column-names="user_id" multi-column-name="store_id">
           <property name="userStores" display-name="User Stores" data-type="map" column-names="email" component-data-type="string">
                <attribute name="propertySortPriority" value="-1" />
                <attribute name="uiwritable" value="false" />
           </property>
      </table>
    </item-descriptor>
    <item-descriptor name="store" id-space-name="store" display-name="Store" display-property="name">
      <table name="store_tbl" type="primary" id-column-name="store_id">
           <property name="id" column-name="store_id" data-type="string" display-name="Id">
                <attribute name="uiwritable" value="false" />
                <attribute name="propertySortPriority" value="-1" />
           </property>
           <property name="name" column-name="store_name" data-type="string" display-name="Name">
                <attribute name="propertySortPriority" value="-1" />
           </property>
      </table>
      <table name="store_user" type="multi" id-column-names="store_id" multi-column-name="user_id">
           <property name="userStores" display-name="User Stores" data-type="map" column-names="email" component-data-type="string">
                <attribute name="propertySortPriority" value="-1" />
                <attribute name="uiwritable" value="false" />
           </property>
      </table>
    </item-descriptor>
    I'll appreciate it, if someone tell me what's wrong with my definition.
    Thank you in advance,
    Jurii.

    Hi Jurii,
    You are right about ATG docs do not have info about M-M that can fit into your requirement. So we have to give it a try :-)
    Please try with the below definition to see it it works.
    user_tbl and store_tbl - no changes
    store_user table has three columns - user_id, store_id and email
    <item-descriptor name="user" id-space-name="user" display-name="User" display-property="name">
      <table name="user_tbl" type="primary" id-column-name="user_id">
           <property name="id" column-name="user_id" data-type="string" display-name="Id">
                <attribute name="uiwritable" value="false" />
                <attribute name="propertySortPriority" value="-1" />
           </property>
           <property name="name" column-name="user_name" data-type="string" display-name="Name">
                <attribute name="propertySortPriority" value="-1" />
           </property>
      </table>
      <table name="store_user" type="multi" id-column-names="user_id">
           <property name="store" display-name="Stores" data-type="set" column-names="store_id" component-item-type="store"/>
        <property name="email" display-name="User Store Email" data-type="set" column-names="email" component-data-type="string"/>
      </table>
    </item-descriptor>
    <item-descriptor name="store" id-space-name="store" display-name="Store" display-property="name">
      <table name="store_tbl" type="primary" id-column-name="store_id">
           <property name="id" column-name="store_id" data-type="string" display-name="Id">
                <attribute name="uiwritable" value="false" />
                <attribute name="propertySortPriority" value="-1" />
           </property>
           <property name="name" column-name="store_name" data-type="string" display-name="Name">
                <attribute name="propertySortPriority" value="-1" />
           </property>
      </table>
      <table name="store_user" type="multi" id-column-names="store_id">
           <property name="user" display-name="Users" data-type="set" column-names="user_id" component-item-type="user"/>
        <property name="email" display-name="User Store Email" data-type="set" column-names="email" component-data-type="string"/>
      </table>
    </item-descriptor>
    Thanks,
    Gopinath Ramasamy

  • Error in Test Connection - Content Repository does not exist

    Hi, I have created a content repository which points to our own external HTTP content server which is a DMS through transaction OAC0.
    In transaction CSADMIN I can see our server's status as running, still it shows yellow icon "customizing missing" in CSADMIN and in transaction OAC0 whenver I click "Test Connection" it gives the message" Content Repository does not exist". CMS 106.
    Kindly help.
    Regards
    Neha

    Hi,
    We are using OACO as follows:
    Choose Tools ® Business documents, Environment ® Knowledge Provider® KPro® Content Repositories
    Enter the following fields in the u201CChange Content Repositories : Detailu201D :-
    1) Content Rep. :- ZO (Content Repository Name)
    2) Description :- Content Repository
    3) Storage type :- HTTP content server.
    4) Version no :- 0045
    5) HTTP svr:p :- IP or machine name of application server on which DMS has been deployed : Web port of the application server on which DMS has been deployed.
    1) Program :- sap/sapDocView.jsp
    Save the created Content Repository by clicking on u201CSaveu201D. We are working on SAP 4.7 versionon a SAP development server and the content repository has not been transported after creation. Will not transporting be causing this error ?
    Please reward points
    Thanks
    Vikranth

  • How to make added custom field Delta mechanism work for LO Cookpit?

    We appended a new custome field into extraction structure of the LO Cookpit datasource 2LIS_02_ITM through RSA6. And then run CMOD to write the exit code to populate the value and it works fine. But after we read Roberto's Weblog:
    /people/sap.user72/blog/2005/02/14/logistic-cockpit--when-you-need-more--first-option-enhance-it , find the enhancement we did can't make the Delta mechanism works if only this new field gets changed in a record, and the change cannot be reflected on BW.
    In order to make the Delta mechansim works, one option is to append the custom field into one of the LIS Communication Structure MCEKKO of  2LIS_02_ITM extraction structure and then write the enhancement code to this LIS Communication Structure.  In this way, the custom field can be treated like standard field that whenever it gets changed, the Delta mechanism or the user exit will be triggered.  The enhancement for this LIS Communication Struture is LEINS001. 
    Now we've got two problems when doing the above enhancements of the LIS Communication structure:
    1.  Maintain extraction structure problem in LBWE:
    We added a custom field, e.g., called ZZZ in LIS Communication structure MCEKKO (Purchasing Document Header) by creating a new custom append structure and add the field ZZZ into it, then activate the new append structure, but get warning msg like "Field name DUMMY is reserved (Do not use structure as include in DB table)".
    We do find a field called DUMMY in the structure MCEKKO. How to get rid of the warning msg and successfully activate the new custom append structure with the new field ZZZ?
    You could say that we can ignore the warning msg, but why the new custom field appended can not be seen from the right side pool of the Maintain Extract Structure in LBWE?  We need to make the new custom field shows up in the right side pool and then drag it over to the left side frame and to activate the extraction structure to change it.  But now it doesn't show up in the right frame pool!
    2. Refer to Sanyam's weblog
    /people/sanyam.kapur/blog/2005/04/30/custom-fields-and-bw-extractors-making-a-mixed-marriage-work-part-ii, there is a sample code inside this article which tells us how the sample code looks like to write this LIS Communicaton structure enhancement to make the Delta mechanism works, below is the code we modified to suit our needs, but don't know if it would work?
    DATA: i_t_ekko LIKE ekko   OCCURS 1 WITH HEADER LINE.
    DATA: ebeln LIKE ekpo-ebeln,
          it_ekko TYPE TABLE OF ekko WITH HEADER LINE,
          old_val(50) TYPE c.  "For storing the value from the Field Symbol
    FIELD-SYMBOLS <fs> TYPE ANY TABLE.
    CASE zeitp.
      WHEN 'MA'.                            "When creating a purchase order
        MOVE '(SAPLEINS)T_EKKO[]' TO old_val.
        ASSIGN (old_val) TO <fs>.
        i_t_ekko[] = <fs>.
        LOOP AT xmcekko.
          ebeln = xmcekko-ebeln.
          IF xmcekko-supkz = '1'.            "Old Value ?
            SELECT SINGLE * FROM ekko INTO it_ekko WHERE ebeln = ebeln.
            xmcekko-ZZZ = it_ekko-ZZZ.
          ELSE.                              "New Value ?
            READ TABLE i_t_ekko WITH KEY ebeln = ebeln.
            xmcekko-ZZZ = i_t_ekko-ZZZ.
          ENDIF.
          MODIFY xmcekko.
        ENDLOOP.
    EndCase.
    Share your ideas and we will give you reward points!

    Hello Kevin
    We have exactly the same problem. Did you solve it? If you did, could you please tell us how you did it? We neither see our field in LBWE. Our field is a Z field from a Z table.
    I hope you could help us. We just have this issue to finish our project.
    Thanks a lot in advanced

  • Banner (rotative)...ANY HELP WILL BE REWARDED!!!!

    Hello you guys,
    I’m working on the development of a rotative banner, for someone that doesn’t know what it is…is a banner (in several web pages you can find one) that change the image present in it once on a while (every certain time), and each one of those image represent a point of entry for accessing to an specific place…in almost all of the cases, different web pages… in my case a specific portal’s role, user profile. The images that I want to present in the banner are store in the km repository. I found a solution that serves me well for my purpose, but I need to find another solution for achieve my goal and now I going to explain why:
    I’m using a JSPDynpage PAR, as a parameters of this *.PAR , I get the all the paths where the images are physically store on the server, the names of those images and the paths of the roles (in the PCD) associated to each one of those image. In the before output method, I get the complete path where the image is store, and put it (render it) on my iview, then is executed a wait method and finally with the SUBMIT method, I send again the information (some variables that I need to change the image in the banner) to the browser and that result in the continuing refresh (request – response cycle) of my browser. Its important to know that only the iview’s *.PAR is refreshing when the submit method is execute, not all the page. Know, like I said before all works fine, but the problem is that I want to do this but I don’t want that my browser refresh every certain time…so the question is: is there another way to do this using EPCM API and avoiding the use of the submit method (no refresh the browser)?
    Here is the source code if someone need to look it for give me some answers. Any help will be rewarded. Thanx a lot!!!
    <%@ page pageEncoding="ISO-8859-1"%>
    <%@ page import="java.util.List"%>
    <%@ taglib uri="tagLib" prefix="hbj" %>
    <%@ page language="java" %>
    <%
         String RefreshTime = (String) componentRequest.getValue("RefreshTime");
         String imgURL = (String) componentRequest.getValue("imgURL");
         String name = (String) componentRequest.getValue("name");
         String URL = (String) componentRequest.getValue("URL");
    %>
    <hbj:content id="myContext" >
      <hbj:page title="PageTitle">
       <hbj:form id="myFormId" >
             <hbj:inputField
               id="InputName"
               type="string"
               maxlength="100"
               visible = "FALSE"
               value="<%=name%>"/>
             <hbj:inputField
               id="InputURL"
               type="string"
               maxlength="100"
               visible = "FALSE"
               value="<%=URL%>"/>
    <hbj:gridLayout
              id="myGridLayout1"
              debugMode="FALSE"
              width="100%"
              cellSpacing="5">     
                   <hbj:gridLayoutCell
                 rowIndex="1"
                 columnIndex="1"
                 width="100%"
                 horizontalAlignment="CENTER">
                            <hbj:link
                           id="link1"
                       text=""         
                       target="_TOP">
                           <hbj:image                
                            src="<%=imgURL%>"
                            alt="Banners"/>
                        <% link1.setOnClientClick("javascript:EPCM.doNavigate('"URL"')"); %>
                      </hbj:link> 
          </hbj:gridLayoutCell>
    </hbj:gridLayout>
       </hbj:form>
      </hbj:page>
    </hbj:content>
    <SCRIPT LANGUAGE="JavaScript">
    var tid = window.setTimeout("changeMessage()",<%=RefreshTime%>000);
    function changeMessage(){
         var myFormId = document.getElementById(htmlb_formid);
         myFormId.submit();
    function stopMessageBanner(){
         if (typeof tid != "undefined"){
              clearTimeout(tid);
    </SCRIPT>
    Anexo la clase java
    import com.sapportals.htmlb.Image;
    import com.sapportals.htmlb.InputField;
    import com.sapportals.htmlb.Link;
    import com.sapportals.htmlb.page.DynPage;
    import com.sapportals.htmlb.page.PageException;
    import com.sapportals.portal.htmlb.page.JSPDynPage;
    import com.sapportals.portal.htmlb.page.PageProcessorComponent;
    import com.sapportals.portal.prt.component.IPortalComponentProfile;
    import com.sapportals.portal.prt.component.IPortalComponentRequest;
    import com.sapportals.portal.prt.component.IPortalComponentURI;
    public class ZbannersRotatives extends PageProcessorComponent {
      public DynPage getPage(){
        return new ZbannersRotativesDynPage();
      public static class ZbannersRotativesDynPage extends JSPDynPage{
         private IPortalComponentRequest request;
         private IPortalComponentProfile profile;
         private String RefreshTime ="";
         private String path = "";
         private String name1 = "";
         private String name2 = "";
         private String name3 = "";
         private String url1 = "";
         private String url2 = "";
         private String url3 = "";
         private String name = "";
         private String URL = "";
        public void doInitialization(){
              request = (IPortalComponentRequest) this.getRequest();                         
              profile = request.getComponentContext().getProfile();     
              RefreshTime = profile.getProperty("RefreshTime");
              path = profile.getProperty("path");
              name3 = profile.getProperty("name3");
              url3 = profile.getProperty("url3");
             name = name3;
             URL  = url3;
        public void doProcessAfterInput() throws PageException {
              request = (IPortalComponentRequest) getRequest();
              profile = request.getComponentContext().getProfile();     
              path = profile.getProperty("path");
              name1 = profile.getProperty("name1");
              name2 = profile.getProperty("name2");
              name3 = profile.getProperty("name3");
              url1 = profile.getProperty("url1");
              url2 = profile.getProperty("url2");
              url3 = profile.getProperty("url3");
              InputField currentInputName = (InputField) this.getComponentByName("InputName");
              InputField currentInputURL = (InputField) this.getComponentByName("InputURL");
              String name_var = "";
              String url_var = "" ;
              if (currentInputName != null) {
              name_var = currentInputName.getString().getValue();                    
              url_var = currentInputURL.getString().getValue();
              if(name_var.equals(name3))
                   name = name1;
                   URL  = url1;
              if(name_var.equals(name1))
                   name = name2;
                   URL  = url2;
              if(name_var.equals(name2))
                   name = name3;
                   URL  = url3;
        public void doProcessBeforeOutput() throws PageException {
              request = (IPortalComponentRequest) this.getRequest();                         
              profile = request.getComponentContext().getProfile();     
              RefreshTime = profile.getProperty("RefreshTime");
              IPortalComponentURI componentURI = request.createPortalComponentURI();                         
              componentURI.setContextName("com.sap.km.cm.docs");
              String docsURI = componentURI.toString();
              String imgURL = docsURI + path + "/" + name;     
              Link linkBanner = new Link("lnkBanner");
              linkBanner.setTarget("_blank");
              linkBanner.setOnClientClick("javascript:EPCM.doNavigate('"URL"')");
                   Image oImgBanner = new Image(name,"Banner");
                   oImgBanner.setTooltip("Ayuda");
              linkBanner.addComponent(oImgBanner);
              request.putValue("linkBanner",linkBanner);                              
              request.putValue("name",name);                              
              request.putValue("URL",URL);
              request.putValue("imgURL",imgURL);
              request.putValue("RefreshTime",RefreshTime); 
              this.setJspName("ZbannersRotatives.jsp");

    Hi,
    there is a possibility to make a request to the server without refresh. You can use the XMLHttpRequest object.
    1. create an AbstractPortalComponent component, that will return the desired output into the response (image with link). Let's call this component DataComponent.
    2. create a component, that will output a DIV object with ID for example "myDivId" and a Javascript, that will periodically call a JS function (some JS <i>setTimeout(JsFunctionToCall(), waitTimeInMiliseconds)</i>). In this function you will create a XMLHttpRequest object (different for Mozilla and MSIE):
    var xmlhttp = null;
    // not MSIE
    if (window.XMLHttpRequest)
      xmlhttp=new XMLHttpRequest();
    //  MSIE
    else if (window.ActiveXObject)
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    now prepare the JS function that handles the output (takes the output from XMLHttpRequest object and puts it as is into the DIV contents):
    xmlhttp.onreadystatechange = function() {stateXMLDocChanged();}
    then set up (dataURL is the URL to DataComponent):
    xmlhttp.open("POST",dataUrl,true);
    ...and get the data:
    if (window.XMLHttpRequest)
      xmlhttp.send(null);
    else
      xmlhttp.send();
    Now create the function that fetches the data and puts it into the DIV contents (get the DIV object with id 'myDivId' == myDiv)
    stateXMLDocChanged(){
      myDiv.innerHTML=g_xmlhttp.responseText;
    This is just a draft of a possible solution. You can see the concept working in our "EFP portal" <a href="http://www.szif.cz">www.szif.cz</a> (there is only one HTML for the output - no frames, no IFrames, but the 'iviews' are refreshed only 'locally').
    Hope this helps you a bit,
    Romano
    PS: and yes, <a href="http://www.szif.cz">www.szif.cz</a> is a real SAP Portal

  • Authorization Error For XI Integration Repository and Directory

    Hi All,
    I am new in this field.
    While accessing Integration Repository and Directory, I am getting the error "No Authorization for this action". I am trying to login with user J2EE_ADMIN, have following roles :
    SAP_J2EE_ADMIN
    SAP_J2EE_ADMIN
    SAP_J2EE_GUEST
    SAP_XI_ADMINISTRATOR_J2EE
    SAP_XI_CONFIGURATOR_J2EE
    thnx and regds:
    N.N. Tiwari

    hi,
    go to http://<host>:<port>/index.html -->User Management log in using j2ee_admin
    When you go into one of the tabs, there will a client entry . Just change.
    You should able to do the same thing with UME provider service in the visual admin.
    Please check Note 938980 if you are using VPN.
    This is probably a Java Web-Start issue. Please check logon with other JWS versions. Also check if you have any conflicting JWS versions installed.
    This is a checklist for logon errors:
    /people/shabarish.vijayakumar/blog/2006/02/13/unable-to-open-iresrid-xipipi-71-updated-for-pi-71-support
    Also check the methods in these threads:
    Authorization error; unknown user name or incorrect password
    Authorization error in Integration Repository.
    Note: reward points if solution found helpfull
    Regards
    Chandrakanth.k

  • How to UnLock the object in Integration Repository of XI.

    Hi Experts, when i try to edit the object in IR, i am getting following message.
    Object Message Mapping EmpResponce_MM | urn:pas.com/neh currently being edited by user 9SGRANDHI.
    Note: it is saying my ID itself, i logged off and logged in, still its showing same mesage, how to unlock the object in Integration Repository of XI.
    please help me out.
    thanks
    siva

    Hi,
    Go to Home page of XI,there u will have Administrator,select it and click on localobjects.There u will have IR and ID in that select lockoverview and remove ur lock.
    this authorization will be given to basis guys check u have it or not.
    Regards,
    Phani
    Reward points if helpful

  • Storage of IDOC definitions in Integration Repository

    Hi there,
    I'm trying to define development standards for the use of XI and I can't seem to find any recommendation for the storage of SAP interface definitions (IDOCs, RFCs, etc)within the Integration Directory.
    We have an environment with multiple SAP systems including regional R/3 systems which have differing definitions of standard IDOCs - eg different ORDERS05 IDOCs, so do I need to store these definitions in system specfic SWCV?
    My thought is to create a Product in the SLD (OUR_BASIS) with multiple SWCV relevant to specific SAP systems (OUR_BASIS_R3_EUROPE, OUR_BASIS_R3_USA etc) each of which could be brought into the Integration Repository to store the system specific objects. The names are non-SID specific to prevent naming issues moving through development, quality and live XI environments. I would then link the product to each of the SAP systems in the SLD, adding new SWCV as more systems are put into the SLD.
    Does this seem like a reasonible solution? Does anyone else have or know of other recommendations?
    I will be grateful for any assistance and will dish out reward points as appropriate.
    Many thanks,
    - Ian

    Hi Ian,
    I tried to understand the reason of why would you want to create custom software components in your SLD for multiple SAP systems and import IDocs arising out of these systems into different software component versions? I guess this would defeat the basic purpose of developing objects under software components and the idea of developing integration objects (mapping, data type etc) under software components and not based on phycial system or geographical location.
    Let's take an example. If you consider software component X release 1.1 installed on SAP system A. Consider this is a standard software component version delivered by the vendor. And you don't have any authorization to change the objects under this software component. In such scenario, whether you have this software component installed on SAP System A or B or C you just need to import it once under that software component version. Say IDoc ORDERS05. Irrespective of which system you download it from, it's definition is going to remain the same.
    Also, system dependencies and actual source and target definitions should not be part of your software component versions. They should be in Integration Directory and should be kept independent of the software components.
    Any custom development will be obviously grouped under custom software components.
    Message was edited by: Anand Shankar
    Message was edited by: Anand Shankar

  • The mechanism of Delete Row and Unto in program BCALV_GRID_EDIT

    Hi Experts,
        Users need to Delete/Insert/Change a row in OO ALV report and the row can be Undo when the undo button is press. I find the example program in my system and finally get a program BCALV_GRID_EDIT. Most functions in this program  meet my requirement. But I want to know what is the mechanism of the Delete/Insert and Undo function. For example, if I have delete a row in the screen, and then I press the undo button, the deleted row will be restored in the screen. But I want to know where(Internal table or soemwhere) the deleted row is stored after I press the Delete Row button, and where I can retrieve the deleted row after I press the Undo button. Please help~~
    Thanks in advance.
    Best regards
    Joe

    Hi
    1. first remove the ENDSELECT..use INTO table itab or INTO CORRESPONDING fields, Since you are joining the  more tables this will take lot of time.
    2. You are just using two fields from LIKP as selection screen  fields to fetch the so much data.
    see the table linkings apartfrom KUNNR between the tables
    LIKP-VBELN = LIPS-VBELN
    LIPS-VGBEL = VBAK-VBELN and  LIPS-VGPOS = VBAP-POSNR
    and
    VBRP-AUBEL = VBAK-VBELN and VBRP-AUPOS = VBAP-POSNR and
    VBRP-VGBEL = LIKP-VBELN  and VBRP-VGPOS = LIPS-POSNR
    use the above links and code again.
    <b>Reward points for useful Answers</b>
    Regards
    Anji

  • Problem in KM Repository Service

    hi Experts,
    I have created KM repository Service by Following this weblog,
    <a href="https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/2654">https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/2654</a>
    Finally i have assigned My service to<b> document repository</b> (I found under CM Repository).... After restart of J2EE Engine ... KM Gets Down..
    I am Getting error like this <b>Item Not found Error</b> in WhereEver the KM Document Links available..
    Please help me, where i am doing wrong..
    Thanks,
    Chinnadurai.R (Points wil be rewarded)
    Message was edited by:
            chinnadurai R

    hi...
    This is the error i got in default trace file...
    D:
    usr
    sap
    EP1
    JC00
    j2ee
    cluster
    server0
    apps
    sap.com
    irj
    servlet_jsp
    irj
    root
    WEB-INF
    portal
    portalapps
    com.company.chinna.Repservice
    lib
    com.company.chinna.Repserviceapi.jar
    <b>The error occurred while trying to load "com.company.RepService.SimpleService".
         at com.sap.engine.frame.core.load.ReferencedLoader.loadClass</b>(ReferencedLoader.java:401)
         at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
         at java.lang.Class.forName0(Native Method)
         at java.lang.Class.forName(Class.java:219)
         at com.sapportals.wcm.crt.CrtClassLoaderRegistry.findClass(CrtClassLoaderRegistry.java:158)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
         at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
         at java.lang.Class.forName0(Native Method)
         at java.lang.Class.forName(Class.java:219)
         at com.sapportals.wcm.repository.runtime.CmConfigurationProvider.convertRS(CmConfigurationProvider.java:821)
         at com.sapportals.wcm.repository.runtime.CmConfigurationProvider.convertRepositoryServiceConfig(CmConfigurationProvider.java:786)
         at com.sapportals.wcm.repository.runtime.CmConfigurationProvider.readConfiguration(CmConfigurationProvider.java:203)
         at com.sapportals.wcm.crt.CrtSystemImpl.createComponentManager(CrtSystemImpl.java:108)
         at com.sapportals.wcm.repository.runtime.CmSystem.startUp(CmSystem.java:201)
         at com.sapportals.wcm.repository.runtime.CmSystem.getInstance(CmSystem.java:164)
         at com.sapportals.wcm.repository.runtime.CmAdapter.getResourceImpl(CmAdapter.java:974)
         at com.sapportals.wcm.repository.runtime.CmAdapter.getResource(CmAdapter.java:192)
         at com.sapportals.wcm.portal.service.KMServiceImpl.afterInit(KMServiceImpl.java:215)
         at com.sapportals.portal.prt.core.broker.PortalServiceItem.__initServiceInstanceStep2(PortalServiceItem.java:867)
         at com.sapportals.portal.prt.core.broker.PortalServiceItem.startServices(PortalServiceItem.java:1081)
         at com.sapportals.portal.prt.core.broker.PortalAppBroker.startLoadOnStartupServices(PortalAppBroker.java:1610)
         at com.sapportals.portal.prt.core.broker.PortalAppBroker.start(PortalAppBroker.java:1565)
         at com.sapportals.portal.prt.core.broker.PortalAppBroker.startNonCoreApplications(PortalAppBroker.java:1516)
         at com.sapportals.portal.prt.runtime.Portal.init(Portal.java:413)
         at com.sapportals.portal.prt.core.PortalCoreInitializer.coreInit(PortalCoreInitializer.java:54)
         at com.sapportals.portal.prt.dispatcher.PortalInitializer.<init>(PortalInitializer.java:129)
         at com.sapportals.portal.prt.dispatcher.Dispatcher$doSetupPortalInitializer.run(Dispatcher.java:161)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sapportals.portal.prt.dispatcher.Dispatcher.initDispatcher(Dispatcher.java:359)
         at com.sapportals.portal.prt.dispatcher.Dispatcher.access$000(Dispatcher.java:42)
         at com.sapportals.portal.prt.dispatcher.Dispatcher$InitRunner.run(Dispatcher.java:114)
         at com.sapportals.portal.prt.dispatcher.Dispatcher.init(Dispatcher.java:392)
         at com.sap.engine.services.servlets_jsp.server.runtime.context.WebComponents.addServlet(WebComponents.java:139)
    <b>and then,</b>
    com.sapportals.wcm.crt.configuration.ConfigurationException: <b>Repository service ID not found: com.company.RepService.SimpleService
         at com.sapportals.wcm.repository.runtime.CmRegistry.addRepository</b>(CmRegistry.java:182)
         at com.sapportals.wcm.repository.runtime.CmConfigurationProvider.convertRM(CmConfigurationProvider.java:566)
         at com.sapportals.wcm.repository.runtime.CmConfigurationProvider.convertRepositoryConfig(CmConfigurationProvider.java:428)
         at com.sapportals.wcm.repository.runtime.CmConfigurationProvider.readConfiguration(CmConfigurationProvider.java:204)
         at com.sapportals.wcm.crt.CrtSystemImpl.createComponentManager(CrtSystemImpl.java:108)
         at com.sapportals.wcm.repository.runtime.CmSystem.startUp(CmSystem.java:201)
         at com.sapportals.wcm.repository.runtime.CmSystem.getInstance(CmSystem.java:164)
         at com.sapportals.wcm.repository.runtime.CmAdapter.getResourceImpl(CmAdapter.java:974)
         at com.sapportals.wcm.repository.runtime.CmAdapter.getResource(CmAdapter.java:192)
         at com.sapportals.wcm.portal.service.KMServiceImpl.afterInit(KMServiceImpl.java:215)
         at com.sapportals.portal.prt.core.broker.PortalServiceItem.__initServiceInstanceStep2(PortalServiceItem.java:867)
         at com.sapportals.portal.prt.core.broker.PortalServiceItem.startServices(PortalServiceItem.java:1081)
         at com.sapportals.portal.prt.core.broker.PortalAppBroker.startLoadOnStartupServices(PortalAppBroker.java:1610)
         at com.sapportals.portal.prt.core.broker.PortalAppBroker.start(PortalAppBroker.java:1565)
         at com.sapportals.portal.prt.core.broker.PortalAppBroker.startNonCoreApplications(PortalAppBroker.java:1516)
         at com.sapportals.portal.prt.runtime.Portal.init(Portal.java:413)
         at com.sapportals.portal.prt.core.PortalCoreInitializer.coreInit(PortalCoreInitializer.java:54)
         at com.sapportals.portal.prt.dispatcher.PortalInitializer.<init>(PortalInitializer.java:129)
         at com.sapportals.portal.prt.dispatcher.Dispatcher$doSetupPortalInitializer.run(Dispatcher.java:161)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sapportals.portal.prt.dispatcher.Dispatcher.initDispatcher(Dispatcher.java:359)
         at com.sapportals.portal.prt.dispatcher.Dispatcher.access$000(Dispatcher.java:42)
         at com.sapportals.portal.prt.dispatcher.Dispatcher$InitRunner.run(Dispatcher.java:114)
         at com.sapportals.portal.prt.dispatcher.Dispatcher.init(Dispatcher.java:392)
         at com.sap.engine.services.servlets_jsp.server.runtime.context.WebComponents.addServlet(WebComponents.java:139)
         at com.sap.engine.services.servlets_jsp.server.container.ApplicationThreadInitializer.loadServlets(ApplicationThreadInitializer.java:386)
         at com.sap.engine.services.servlets_jsp.server.container.ApplicationThreadInitializer.run(ApplicationThreadInitializer.java:110)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    plz help regarding this...
    thanks and regards,
    Chinnadurai.R

  • View zview is not defined in  the runtime repository that was loaded.

    Hi,
    I created an enhancement for component BT111H_OPPT and created a view "ZVIEW" in it.When i clock on my ZVIEW i am getting the following message:
    view zview is not defined in  the runtime repository that was loaded.
    What does that imply?
    Isnt the view defined in the runtime repositry when we use the wizard to create it?
    Thanks in Advance.
    Regards
    Shilpi

    Hi Shilpi,
    Did you add your view into the Viewset/Window in Repository Browser ?
    Good Luck
    Eli Steklov
    Please Reward Points if it Helped

Maybe you are looking for