Local Data Storage in Objects

Hello,
I have been trying to program more in Objects.  i.e. Data and Functions are bundled together in a Class or in a project library.  I have used FGV a lot in the past.  One of the things I like about a FGV is the ability to locally store data in an uninitialized shift regester.  Only the cases in the FGV can access the locally stored data.
Is there an equivilant storage method using Project Libraries or Classes?  Is it even a good idea to have locally stored data?
Thanks

ASTDan wrote:
Is there a way to store that object data within the object?
That's what that Private Class Data control is for.
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines

Similar Messages

  • Local data storage with XML vs SQLLite

    Short version:
    I have a mobile app that gathers and stores a large amount of data. The current XML solution (all in one file) is having performance issues as the volume of data increases beyond a certain point.
    Can I be confident that using SQLLite and a local database will be a better option and improve performance?
    Long version:
    I have built a mobile app that is used by my client to collect data.
    When we started the project the amount of data was relatively small. Given that, and given the past experiences of my team, we chose to use an XML file to store the collected data. When the app starts it loads the whole xml file into a set of data objects in memory for use by the app. The data is not loaded again for as long as the app stays running. We then run a routine whenever the app wants to save to the HD that converts all of the data back into XML.
    The data is split into 'projects' and each project naturally has its own xml node. To improve performance when saving, each instance of the Project class stores its loaded node string. Then, when the save routine is called, if the classes data has not been changed it simply returns the original string instead of going through the whole process of re-compiling it.
    Of course this does not change the fact that whenever a save is performed, the whole xml structure must be saved back to the file on the HD.
    The app has now been used in anger for quite some time and we are starting to get reports of performance issues. The main culprit is during loading which only happens once but can apparently now take an exeptionally long time and causes problems during startup to the point where users think it has crashed.
    I am now tasked with trying to improve the data storage for the app. My original reaction was to try breaking down the xml into multiple files which can then we loaded and saved when needed instead of handling everything all at once. I am worried though about the implications of the app trying to handle in excess of 2000 xml files in some cases. It may not be an issue at all but it just stands out to me as something to be concerned about.
    So the best other option that I am aware of is to use SQLLite to save all the data into a local database. I have very little personal experience with sql and databases though so while a lot of the documentation and blog posts I see seem to suggest that this is the way to go for mobile apps with a large amount of data, I cannot be quite certain. The big issue is that I cannot afford to sell the idea of such a radical change (and more importantly the time it would take to implement it) to my client without being quite sure that this will be a valid solution to the problem.
    So my question to you, Flex community, is would you continue to use XML or is SQLLite the better way to go for large amounts of data? Do you think that I would see an improvement by using SQLLite? Additionally, do you have any tips or experience with a similar situation that might be helpful to me?
    Thank you
    Jamie

    I've been very happy using the internal SQLite database with Flex.  You should definitely get much better performance from it.  Just being able to load your data asynchronously if nothing else you should get a great benefit.  The sheer amount of data in your XML file that is being passed around is probably quite a hit (especially on mobile).  Breaking up the XML shouldn't be too crazy to do (as you're already doing it somewhat, I'd imagine, when you're accessing the information from within your app).  Give switching to SQLite a try, but I'd say that's a great place to start.

  • Coherence Data storage in object form

    As I understand the coherence always store the data in serialized form i.e. heap of a cache node is full os serialized data. Is there a way if we can store the data in object form just like we do in a normal Hash Map. I know to the client it is transparent that how data is stored but still putting the data in object form may improve the performance for Reflection based value extractor.
    Thoughts?

    882864 wrote:
    Should I take this conversation in a new thread if it's getting too chatty? Thank you, Rob for your response.
    How many distinct person ids are those 100G data?Around 50 GB. The rest will contain data related to the person id. Eg. account info. and so on
    I meant how many different person ids are there, not what their size is...
    This seems to be a bad idea to me. You should use either rowkey or person id (if it is unique) as a cache keyWell, you are right, However, we had a challenge to support various searches by different parameters and their combinations, if the key object contains just the personid. so here's what we had done.
    Key contains just the <searchable columns> and value object contains both the seachable columns in addition to other non searchable columns (LARGER SET OF COLUMNS) and their values. As a result, However as far as I remembered this is not exactly what you described it earlier. What you described there was that key and value types are the same.
    1) the key with the searchable keys has a smaller memory foot print and has indexes on all of those searchable keys. And supports complex queriesIf you need to deserialize what you are querying, you usually have a problem. You can use POF and put the searchable fields to the beginning of the value (lowest property ids) and get the same transient footprint and smaller permanent and result set footprint as you can still use lean cache keys.
    2) Secondly, we dont' have to pull the entire value object that incurrs additional deserialization costs
    Do you have any better recommendations to address this issue without compromising on the read performance at execution time? Please advise.
    As said above, use lean keys with which you can implement key-based access with for a frequently used scenario, and POF-based extraction would give you equal or better performance than deserializing a big key if the searchable fields are the lowest property ids. For querying an indexed fields, no deserialization is going to happen and the transient footprint of creating the indexes with POF extractors is not going to be higher than creating them from a deserialized semi-thick key.
    Can you make do with Joh%? If yes, then you can leverage a sorted indexyes, we are using that way and moved away from "%Joh%"
    Search by address is a bit trickier to index. On the other hand, duplicating person because it has multiple addresses is a bad idea. You can store a list of addresses inside the Person object, and you can index it if necessary. This is likely going to save you more than the materialized indexes cost.It's getting interesting.. Well, that's a good idea indeed. .. Having a collection object for Addresses- does it create any locks during the write operation to cache, if more than two thread competing to update the Address collection ? Are there any overheads or downside to it? Please advise.Each value is stored in serialized form when the entry is not changed from an entry-processor, so no locks to mention for that.
    If an entry-processor deserializes the object then there are no other threads to contend with as Coherence guarantees exclusive access, so no locks are necessary for the Java object form, either, unless your code needs it for reusing the class somewhere else outside of Coherence.
    Best regards,
    Robert

  • The creation of device local data objects - Unable to find generated object

    Hi all,
    I get an error when I try to generate an ESDMA containing a "Device Local" data object.
    I have created a "Device Local" data object containing a very simple node structure. The object is "active" and everything seems to work fine, until I generate the ESDMA. The following error is shown : Unable to find generated objects in repository.
    The esdma is generated without problems, when I remove the device local data object.
    I hope you have some ideas of what the issue might be.
    Best regards,
    Nima

    Hi Siva
    Actually i am working on this problem together with Nima and the problem is not related to SAP Basis objects.
    The problem is in SDOE_WB, with the SWCV. Creating a Data object of type LOCAL DEVICE and a NODE. If you add a field/s and then activate, and look in Generated objects The Table object is not generated (only the structure and the table type).  At this point there are no syntax/error messages.
    If we try to generate an esdma using the ESDMA design time, using this SWCV, it fails, with the message, Unable to find generated objects, in the repository. That is it is looking for the Table object that was not generated in sdoe_wb. This is only a problem with creating a data object of type DEVICE LOCAL, every other type of DO is fine.. I assume it is an SAP error.

  • TREX - Configuring Distributed Slave with Decentralized Data Storage

    I am creating a distributed TREX environment with decentralized data storage with 3 hosts.  The environment is running TREX 7.10 Rev 14 on Windows 2003 x64.  These are the hosts:
    Server 01p: 1st Master NameServer, Master Index Server, Master Queue Server
    Server 02p: 2nd Master NameServer, Slave Index Server
    Server 03p: Slave NameServer, Slave Index Server (GOAL; Not there yet)
    The first and second hosts are properly set up, with the first host creating the index and replicating the snapshot to the slave index server for searching.  The third host is added to the landscape.  When I attempt to change the role of the third host to be a slave for the Master IS and run a check on the landscape, I receive the following errors:
    check...
    wsaphptd03p: file error on 'wsaphptd03p:e:\usr\sap\HPT\TRX00\_test_file_wsaphptd02p_: The system cannot find the file specified'
    wsaphptd02p: file error on 'wsaphptd02p:e:\usr\sap\HPT\TRX00\_test_file_wsaphptd03p_: The system cannot find the file specified'
    slaves: select 'Use Central Storage' for shared slaves on central storage or change base path to non shared location
    The installs were all performed in the same with, with storage on the "E:" drive using a local install on the stand-alone installation as described in the TREX71InstallMultipleHosts and TREX71INstallSingleHosts guides provided.
    Does anybody know what I should try to do to resolve this issue to add the third host to my TREX distributed landscape?  There really weren't any documents that gave more information besides the install documents.
    Thanks for any help.

    A ticket was opened with SAP customer support.  The response to that ticket is below:
    Many thanks for the connection. We found out, that the error message is wrong. It can be ignored, if you press 'Shift' and button 'Deploy' (TREXAdmin tool -> Landscape Configuration).  We will fix this error in the next Revision (Revision 25) for TREX 7.1.

  • OWA 2007 Issue : Microsoft.Exchange.Data.Storage.VirusMessageDeletedException Could not get properties.

    Hi I am facing an issue with Outlook web access on my production server Exchange Server 2007 with Sp1. When i try to reply or forward a message from OWA it displays The message has been deleted due to a virus threat . Kindly refer to the below error details. I have a box with all 3 roles installed I do not have an Edge Server . IO have installed Forefront on the same Box as my exchange Server.Below is the Detail of  the error . Kindly Help
    A virus was found in this message and it has been deleted. For further
    information, please contact technical support for your organization.
    Click here to continue working.
     Copy error details to clipboard
     Show details
    Request
    Url: https://192.168.7.12:443/owa/forms/basic/BasicEditMessage.aspx?ae=Item&t=IPM.Note&a=Reply&id=RgAAAACFMIZq8d7LTqcPs%2bRZA5g%2bBwBDDZWeCojSQZ1bZZ7Ga%2fkWAAAAeCc6AABDDZWeCojSQZ1bZZ7Ga%2fkWAA5iTbjpAAAJ
    User host address: 192.168.7.11
    User: Munendra Pal Gangwar
    EX Address: /o=First Organization/ou=Exchange Administrative Group
    (FYDIBOHF23SPDLT)/cn=Recipients/cn=mp_gangwar
    SMTP Address: [email protected]
    OWA version: 8.1.336.0
    Mailbox server: PFCDELEXCH01.PFCDOMAIN
    Exception
    Exception type: Microsoft.Exchange.Data.Storage.VirusMessageDeletedException
    Exception message: Could not get properties.
    Call stack
    Microsoft.Exchange.Data.Storage.MapiPropertyBag.GetProperties(IList`1
    propertyDefinitions)
    Microsoft.Exchange.Data.Storage.StoreObjectPropertyBag.InternalLoad(PropertyDefinition[]
    properties, Boolean forceReload)
    Microsoft.Exchange.Data.Storage.StoreObjectPropertyBag..ctor(StoreSession
    session, MapiProp mapiProp, Origin origin, PropertyDefinition[]
    autoloadProperties, Boolean canSaveOrDisposeMapiProp)
    Microsoft.Exchange.Data.Storage.StoreObjectPropertyBag..ctor(StoreSession
    session, MapiProp mapiProp, Origin origin, PropertyDefinition[]
    autoloadProperties)
    Microsoft.Exchange.Data.Storage.Item.InternalBindItem(StoreSession
    session, StoreObjectId itemId, Byte[] changeKey, ItemBindOption
    itemBindOption, PropertyDefinition[] allPropsToLoad)
    Microsoft.Exchange.Data.Storage.Item.InternalBind[T](StoreSession
    session, StoreId id, ItemBindOption itemBindOption,
    PropertyDefinition[] allPropsToLoad)
    Microsoft.Exchange.Data.Storage.Item.InternalBind[T](StoreSession
    session, StoreId id, PropertyDefinition[] allPropsToLoad)
    Microsoft.Exchange.Clients.Owa.Core.Utilities.GetItem[T](StoreSession
    storeSession, StoreId storeId, Boolean forceAsMessageItem,
    PropertyDefinition[] prefetchProperties)
    Microsoft.Exchange.Clients.Owa.Core.Utilities.GetItem[T](UserContext
    userContext, StoreId storeId, Boolean forceAsMessageItem,
    PropertyDefinition[] prefetchProperties)
    Microsoft.Exchange.Clients.Owa.Core.Utilities.GetItem[T](UserContext
    userContext, StoreId storeId, PropertyDefinition[] prefetchProperties)
    Microsoft.Exchange.Clients.Owa.Basic.EditMessage.LoadMessage()
    Microsoft.Exchange.Clients.Owa.Basic.EditMessage.OnLoad(EventArgs e)
    System.Web.UI.Control.LoadRecursive()
    System.Web.UI.Page.ProcessRequestMain(Boolean
    includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
    Inner Exception
    Exception type: Microsoft.Mapi.MapiExceptionVirusMessageDeleted
    Exception message: MapiExceptionVirusMessageDeleted: Unable to get
    properties on object. (hr=0x80004005, ec=1294) Diagnostic context:
    Lid: 18969 EcDoRpcExt2 called [length=479] Lid: 27161 EcDoRpcExt2
    returned [ec=0x0][length=422][latency=15] Lid: 23226 --- ROP Parse
    Start --- Lid: 27962 ROP: ropOpenMessage [3] Lid: 17082 ROP Error:
    0x50E Lid: 26977 Lid: 21921 StoreEc: 0x50E Lid: 27962 ROP:
    ropExtendedError [250] Lid: 1494 ---- Remote Context Beg ---- Lid:
    1238 Remote Context Overflow Lid: 14164 StoreEc: 0xFFFFFA1D PropTag:
    0x672D0003 Lid: 8660 StoreEc: 0x8004010F PropTag: 0x672D0003 Lid:
    21970 StoreEc: 0x8004010F PropTag: 0x672D0003 Lid: 23921 StoreEc:
    0x3EC Lid: 21970 StoreEc: 0x8004010F PropTag: 0x672F0014 Lid: 23921
    StoreEc: 0x3EC Lid: 21970 StoreEc: 0x8004010F PropTag: 0x6708000B Lid:
    21970 StoreEc: 0x8004010F PropTag: 0xE960102 Lid: 21970 StoreEc:
    0x8004010F PropTag: 0x6708000B Lid: 21970 StoreEc: 0x8004010F PropTag:
    0xE960102 Lid: 21970 StoreEc: 0x8004010F PropTag: 0x67760102 Lid:
    25394 Lid: 19506 Lid: 27698 Lid: 11285 StoreEc: 0x50E Lid: 21970
    StoreEc: 0xFFFFFC07 PropTag: 0x30080040 Lid: 25818 Lid: 6153 StoreEc:
    0x50E Lid: 25906 Lid: 5249 StoreEc: 0x50E Lid: 1750 ---- Remote
    Context End ---- Lid: 27962 ROP: ropGetPropsSpecific [7] Lid: 17082
    ROP Error: 0x4B9 Lid: 26465 Lid: 21921 StoreEc: 0x4B9 Lid: 27962 ROP:
    ropExtendedError [250] Lid: 1494 ---- Remote Context Beg ---- Lid:
    26426 ROP: ropGetPropsSpecific [7] Lid: 1750 ---- Remote Context End
    ---- Lid: 26849 Lid: 21817 ROP Failure: 0x4B9 Lid: 20385 Lid: 28577
    StoreEc: 0x50E Lid: 32001 Lid: 29953 StoreEc: 0x50E
    Call stack
    Microsoft.Mapi.MapiExceptionHelper.ThrowIfError(String message, Int32
    hresult, Object objLastErrorInfo)
    Microsoft.Mapi.MapiProp.GetProps(PropTag[] propTagsRequested)
    Microsoft.Exchange.Data.Storage.MapiPropertyBag.GetProperties(IList`1
    propertyDefinitions)

    I had this same issue, except I have Symantec mail security not Forefront. It wound up being a line in the adult content filter. For whatever reason, they included "If you received this email" as one of the literal strings. This is probably part
    of almost every corporate confidentiality clause I have ever seen!! go figure......
    Thanks for the event log hint- since I have the adult content set to delete, I had no good tracking mechanism in Exhange or SMSME. I set email notifications for the future on these.
    Brent
    I had this same problem, but I have ESET Mail Security Server. in some one case the problem y solved if I attach the "user@domain" in the "white
    List". But in many case the problem is continuous. I have Exchange 2007 in MS Windows Server 2003.
    Thanks for yours help.

  • Problem in activating data in datastore object

    Hello,
    I have an issue while activating the data in Datastore Object.
    I have been trying to load the data to cube 0FIAP_C02. I am going to write down all the process I am doing, so you will have a clear picture and advice me accordingly.
    1.)Installing Business content (Cube, Datastore objects, Infosources,
    Transfer strcuture and Transfer and update rules) ( 0FIAP_C02, 0FIAP_O06, 0FI_AP_1 and 0FI_AP_6 (infosources)
    2.)Replicate the datasources from the R/3 side to BW side (the
    datasources are replicated as 3.x)
    3.) Create transfer rules and transfer structure.
    4.) Create Infopackage for loading data to PSA.
    Datasource 0FI_AP_1 -> Full Upload.
    Datasource 0FI_AP_6 -> Init. Delta Load.
    Load data for both the datasources.
    5.)Migrate the 3.x datasources to "Emulated datasources". Create
    Transformation between Datasource 0FI_AP_1 and cube 0FIAP_C02, also
    create transformation 0FI_AP_6 to Datastore Object 0FIAP_O06.
    Create DTP's to load the data from PSA to data targets.
    Now is my problem,
    1.)I am having errors while activating the data in ODS. (It says that errors occured during the activation of data but I cannot see an error log or anything of that kind.) I can load the data and it gives me green light but when i try to activate it gives errors.
    2.)A follow up question of the activation of data is does this data goes and sits in PSA of the data mart 80FIAP_O06.And then do we have to create transformation/DTP from Datastore Object to cube (0FIAP_C02) or we are going to use the Business content transfer rules and Load the data by Infopackage.
    Thanks,
    Kiran Mehendale.

    Hi Kiran,
    ad 1.) You most likely have to open a customer problem message. Maybe you try to elaborate on your issue (problem message, etc.) and we can try to assist you.
    ad 2.) You can create a DTP from one persistent storage object (PSA, DataStore Object, InfoCube, etc.) to another one. Hence you can also create a DTP for DataStore Object --> InfoCube.
      Cheers
        SAP NetWeaver 2004s Ramp-Up BI Back Office Team

  • How to synchronize concurrent access to static data in ABAP Objects

    Hi,
    1) First of all I mwould like to know the scope of static (class-data) data of an ABAP Objects Class: If changing a static data variable is that change visible to all concurrent processes in the same Application Server?
    2) If that is the case. How can concurrent access to such data (that can be shared between many processes) be controlled. In C one could use semaphores and in Java Synchronized methods and the monitor concept. But what controls are available in ABAP for controlling concurrent access to in-memory data?
    Many thanks for your help!
    Regards,
    Christian

    Hello Christian
    Here is an example that shows that the static attributes of a class are not shared between two reports that are linked via SUBMIT statement.
    *& Report  ZUS_SDN_OO_STATIC_ATTRIBUTES
    REPORT  zus_sdn_oo_static_attributes.
    DATA:
      gt_list        TYPE STANDARD TABLE OF abaplist,
      go_static      TYPE REF TO zcl_sdn_static_attributes.
    <i>* CONSTRUCTOR method of class ZCL_SDN_STATIC_ATTRIBUTES:
    **METHOD constructor.
    *** define local data
    **  DATA:
    **    ld_msg    TYPE bapi_msg.
    **  ADD id_count TO md_count.
    **ENDMETHOD.
    * Static public attribute MD_COUNT (type i), initial value = 1</i>
    PARAMETERS:
      p_called(1)  TYPE c  DEFAULT ' ' NO-DISPLAY.
    START-OF-SELECTION.
    <b>* Initial state of static attribute:
    *    zcl_sdn_static_attributes=>md_count = 0</b>
      syst-index = 0.
      WRITE: / syst-index, '. object: static counter=',
               zcl_sdn_static_attributes=>md_count.
      DO 5 TIMES.
    <b>*   Every time sy-index is added to md_count</b>
        CREATE OBJECT go_static
          EXPORTING
            id_count = syst-index.
        WRITE: / syst-index, '. object: static counter=',
                 zcl_sdn_static_attributes=>md_count.
    <b>*   After the 3rd round we start the report again (via SUBMIT)
    *   and return the result via list memory.
    *   If the value of the static attribute is not reset we would
    *   start with initial value of md_count = 7 (1+1+2+3).</b>
        IF ( p_called = ' '  AND
             syst-index = 3 ).
          SUBMIT zus_sdn_oo_static_attributes EXPORTING LIST TO MEMORY
            WITH p_called = 'X'
          AND RETURN.
          CALL FUNCTION 'LIST_FROM_MEMORY'
            TABLES
              listobject = gt_list
            EXCEPTIONS
              not_found  = 1
              OTHERS     = 2.
          IF sy-subrc <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
          ENDIF.
          CALL FUNCTION 'DISPLAY_LIST'
    *       EXPORTING
    *         FULLSCREEN                  =
    *         CALLER_HANDLES_EVENTS       =
    *         STARTING_X                  = 10
    *         STARTING_Y                  = 10
    *         ENDING_X                    = 60
    *         ENDING_Y                    = 20
    *       IMPORTING
    *         USER_COMMAND                =
            TABLES
              listobject                  = gt_list
            EXCEPTIONS
              empty_list                  = 1
              OTHERS                      = 2.
          IF sy-subrc <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
          ENDIF.
        ENDIF.
      ENDDO.
    <b>* Result: in the 2nd run of the report (via SUBMIT) we get
    *         the same values for the static counter.</b>
    END-OF-SELECTION.
    Regards
      Uwe

  • Strategies for Internationalization - localized data ?

    I am looking for some advice/tips/best practice for working with localized data.
    Java Locales are nice (at least for working with stuff that fits into property files) and JDeveloper's has some of the best support I have seen for multilingual UIs. However, I am a bit at a loss for how to best approach this for localized data. That is, not field names but database stored values.
    For example, for a online store you have a product catalog. For each product you description in various languages. In terms of Java Locale logic, some products might have a description in en, en_US, en_GB, en_CA, fr, fr_FR, fr_CA, others might have just en, fr others might have some other sets of languages. So for a clients locale, there might not be a simple singular locale in the database.
    So then, what's a good approach for Java/BC4J design and database schema?
    Actually storing the data doesn't seem like a big deal.
    I was thinking of doing a table like
    PRODUCT_DESCRIPTION
    product_id PK (FK - PRODUCT)
    local_code PK
    product_description
    then I'd have a LOCAL table that had langauge code, country code, etc. (But maybe there's a better approach for working with the data via BC4J and Java.)
    However, I don't see a good way to work with the data in Java. It could get out of control trying to display a search results of products, where for each product you have to work you way through the logic of LOCALEs from most specific up to default just to get the description.
    If it matters, this would be a webapp, so I'd have the browser settings, servlet2.3 locales, etc to work with. Also, I might have 200,000 products (which actually join up to a few million catalog items for pricing).
    So what would be good approach (simple and performant) for this?
    How would you set up your BC4J entities and views, etc and pull back the right langauage?
    Is there any good info out there on working with database driven internationalized data in Java? Generally, everyone talks about property files and field labels and never mentions a database.
    thanks,
    -S

    I adopted this solution that works fine, but has some disadvantages (I tell about them later).
    I have a lot of Tables with descriptions (like country, products, etc...) in various languages.
    My application is named Weborder, so I created with the wizard the two classes associated with the application module Weborder.java and WeborderImpl.java.
    In WeborderImpl.java I have a variable (lingua, I used an int so I can use then a switch construct) which stores the information about the language (and also a DEBUG flag)
    private boolean DEBUG = true;
    private int lingua = 1;
    * This is the default constructor (do not remove)
    public WeborderImpl() {
    public boolean isDEBUG() {
    return DEBUG;
    public void setDEBUG(boolean newDEBUG) {
    DEBUG = newDEBUG;
    /* GESTIONE LINGUA */
    public int getLingua() {
    return lingua;
    public void setLingua(int ling) {
    //I have 4 languages
    if ( ling>=1 && ling<=4 ) {
    lingua = ling;
    else {
    if (DEBUG) System.err.println("Lingua "+ling+" NON CORRETTA");
    public void setLingua(String s) {
    try {
    setLingua(Integer.parseInt(s));
    catch (Exception e) {
    if (DEBUG) System.err.println("Lingua "+s+" NON AMMESSA");
    /* GESTIONE LINGUA */
    The accessor methods are visible through the Weborder.java interface class (you do this with the edit appl. module wizard, in the "Client Method" tab).
    When the user logs in, I set the language in the Application Module, so it is visible from every View in the Application Module. Here is a method that I call from the jsp page that checks the login:
    public static boolean validSignOn(HttpServletRequest request, ApplicationModule am) {
    setLingua(wo,(String)user.get("lingua"));
    return ok;
    public static void setLingua(ApplicationModule am, String newLingua) {
    Weborder wo = (Weborder)am;
    try {
    wo.setLingua(Integer.parseInt(newLingua));
    catch (Exception e) {
    System.err.println("WOLogin; lingua errata :"+newLingua);
    In the jsp page it is invoked in this way:
    <jbo:ApplicationModule id="Weborder" configname="webord.dm.Weborder.WeborderLocal" releasemode="Stateful" />
    <jbo:DataSource id="loginVo" appid="Weborder" viewobject="LoginView" rangesize="-1" />
    <% boolean ok = WOLogin.validSignOn(request,loginVo.getRowSet().getApplicationModule()); %>
    You can invoke WOLogin.setLingua() from every jsp page to switch the language (and similarly the DEBUG variable).
    Then I have a View (DOrdiniView) that displays the detail of an order, and I want that the products gets the right description.
    - Using the wizard I select the two entities (the first with the order lines "DOrdini", the second with the product description "DArtOrdBol") and there I add a transient Attribute called Description with type String.
    - Using the wizard I create the two java class DOrdiniViewImpl and DOrdiniViewRowImpl
    - In the class DOrdiniViewRowImpl.java I modify the get Description method:
    public String getDescription() {
    // return (String)getAttributeInternal(DESCRIPTION);
    int lingua = ((Weborder)getApplicationModule()).getLingua();
    switch (lingua) {
    case 2: return getDArtOrdBol().getDescrizioneTed();
    case 3: return getDArtOrdBol().getDescrizioneUk();
    case 4: return getDArtOrdBol().getDescrizioneFra();
    default: return getDArtOrdBol().getDescrizioneIta();
    And this is all.
    When I use this ViewObject I have only to call the method
    getAttribute("Description"), which returns the description in the right language. I never have to care about the language, I only have to set it and everything works.
    All this works fine, but there are two problems:
    1. for every view object you create, you have to override the method getDescription() in the ViewRowImpl.java class, but this is not so problematic;
    2. if you have to use that attribute in a SQL statement, you can't! An example is for an ORDER BY clause (for a "SELECT .. WHERE description LIKE ..." statement, I use a column that is composed of all the descriptions).
    It would be a better idea to have such a method directly in the Entity Objects, so you can use the column in the SQL statements and you have to insert java code only once per entity.
    The problem is that the language is specific for the user session, so the better place to store it is (I think) in the Application Module.
    Initially I used another approach, inserting the description as a column like this:
    decode(?,2,DESCR_DE,3,DESCR_UK,4,DESCR_FR,DESCR_IT) AS DESCRIPTION
    and passed the parameter every time I used the view object, using the method setWhereClauseParam(..,..) of the class ViewObject.
    This was not a so good idea because I got a lot of "not all variables bound" SQLException about ViewObjects that I was not using in the particular jsp page I invoked with the browser (view objects that were childs of the view object I was using).
    So, if this can help...
    I hope someone can give some enhancement on this solution, that solves the problems I have just pointed out.
    bye,
    Marco.

  • How to acces and display datas storaged in cache for a SUP 2.0 workflow?

    HI to all.
    I have an application with a item menu which obtains data thought a online request. the result is shown is a listview.
    My problem is when my BlackBerry has no conection ( offline scenario). When I select the menu item, I obtain an error.
    How to acces and display datas storaged in cache for my MBO? I have read that I can use getMessageValueCollection in custom.js to access to my datas but once I get the datas, How can associate those datas to a Listview like a online request?? Do i have to develop my own screen in html or how?
    Thanks.

    I'm not entirely clear on what you mean by "cache" in this context.  I'm going to assume that what you are really referring to is the contents of the workflow message, so correct me if I'm wrong.  There is, in later releases, the ability to set an device-side request cache time so that if you issue an online request it'll store the results in an on-device cache and if you subsequently reissue the same online request with the same parameter values within that timeout period it'll get the data from the cache rather than going to the server, but my gut instinct is that this is not what you are referring to.
    To access the data in the workflow message, you are correct, you would call getMessageValueCollection().  It will return an object hierarchy with objects defined in WorkflowMessage.js.  Note that if your online request fails, the data won't magically appear in your workflow message.
    To use the data in the workflow message to update a listview, feel free to examine the code in the listview widgets and in API.js.  You can also create a custom listview as follows:
    function customBeforeNavigateForward(screenKey, destScreenKey) {
         // In this example, we only want to replace the listview on the "My Approvals" screen    
         if (destScreenKey == 'My_Approvals'){
              // First, we get the MessageValueCollection that we are currently operating on
              var message = getCurrentMessageValueCollection();
              // Next, we'll get the list MessageValue from that MessageValueCollection
              var itemList = message.getData("LeaveApprovalItem3");
              // Because its a list, the Value of the MessageValue will be an array
              var items = itemList.getValue();
              // Figure out how many items are in the list
              var numOfItems = items.length;
              // Iterate through the results and build our list
              var i = 0;
              var htmlOutput = '<div><ul data-role="listview" data-theme="k" data-filter="true">';
              var firstChar = '';
              while ( i < numOfItems ){
                   // Get the current item. This will be a MessageValueCollection.
                   var currItem= items<i>;
                   // Get the properties of the current item.
                   var owner = currItem.getData("LeaveApprovalItem_owner_attribKey").getValue();
                   var type = currItem.getData("LeaveApprovalItem_itemType_attribKey").getValue();
                   var status = currItem.getData("LeaveApprovalItem_itemStatus_attribKey").getValue();
                   var startDate = currItem.getData("LeaveApprovalItem_startDate_attribKey").getValue();
                   var endDate = currItem.getData("LeaveApprovalItem_endDate_attribKey").getValue();
                   // Format the data in a specific presentation
                   var formatStartDate = Date.parse(startDate).toString('MMM/d/yyyy');
                   var formatEndDate = Date.parse(endDate).toString('MMM/d/yyyy');
                   // Decide which thumbnail image to use
                   var imageToUse = ''
                        if (status == 'Pending'){
                             imageToUse = 'pending.png';
                        else if (status == 'Rejected'){
                             imageToUse = 'rejected.png';
                        else {
                             imageToUse = 'approved.png';
                   // Add a new line to the listview for this item
                   htmlOutput += '<li><a id ="' + currItem.getKey() + '" class="listClick">';
                   htmlOutput += '<img src="./images/' + imageToUse + '" class="ui-li-thumb">';
                   htmlOutput += '<h3 class = "listTitle">' + type;
                   htmlOutput +=  ' ( ' + owner + ' ) ';
                   htmlOutput += '</h3>';
                   htmlOutput += '<p>' + formatStartDate + ' : ' + formatEndDate + '</p>';
                   htmlOutput += '</a></li>';
                   i++;
              htmlOutput += '</ul></div>';
              // Remove the old listview and add in the new one.  Note: this is suboptimal and should be fixed if you want to use it in production.
              $('#My_ApprovalsForm').children().eq(2).hide();
              $('#My_ApprovalsForm').children().eq(1).after(htmlOutput);
              // Add in a handler so that when a line is clicked on, it'll go to the right details screen
              $(".listClick").click(function(){
                   currListDivID = $(this).parent().parent();
                   $(this).parent().parent().addClass("ui-btn-active");
                   navigateForward("Request_Details",  this.id );
                   if (isBlackBerry()) {
                        return;
         // All done.
         return true;

  • No connection to integration builder (Only local data visible)

    Hi,
    I am created Interface objects in IR but it is not reflected in SPROXY (ECC 5.0). It is showing like this no connection to integration builder (Only local data visible) please can you  help me necessary configuration.
    Regards,
    -Prabakar.A

    HI Prabakar,
    the Business System SM59 destinations LCRSAPRFC & SAPSLDAPI
      should have the Program IDs
    SAPSLDAPI _UNICODE.
    LCRSAPRFC_UNICODE
    See the online help for connecting Biusiness Systems
    [Connecting Unicode Business Systems|http://help.sap.com/saphelp_nwpi71/helpdata/en/c9/7a1041ebf0f06fe10000000a1550b0/frameset.htm]
    see also
    [Connecting to the Integration Server|http://help.sap.com/saphelp_nwpi71/helpdata/en/c9/7a1041ebf0f06fe10000000a1550b0/frameset.htm]
    Regards
    Kenny
    Edited by: Kenny Scott on Feb 25, 2010 5:02 PM

  • No Connection to Integration Builder (only local data visible): from R/3

    Hi,
    I am also facing the same problem. I maintained the RFC destinations in R/3 properly. I did Test Connection and for RFC destination its working fine. I maintained proper values in SLDAPICUST. When I run SLDCHECK I got the following error.
    <b>Calling function LCR_LIST_BUSINESS_SYSTEMS
    Retrieving data from the SLD server...
    Function call returned exception code 4
    => Check whether the SLD is running!
    Summary: Connection to SLD does not work
    => Check SLD function and configurations</b>
    Otherwise access to XI Profile works fine. But then when I run SPROXY I am getting the same message <b>No Connection to Integration Builder (only local data visible)</b>
    I also checked the following report =>Check with report SPROX_CHECK_IFR_RESPONSE (3rd option) its giving informational message <b>Integration Builder data not understood</b>, for the 4th report  ==>Check with report SPROX_CHECK_IFR_CONNECTION, it is also showing the same above information message.
    Looking forward for the response,
    Appreciate your help,
    Thanks and Regards,
    Jagadish

    Hi,
    I had the same problem and I have already solved it.
    You have just to apply the following sap notes :
    1232805 - Saint: Queue calculation for an add-on with CRT´s fail.
    769120 - Support Package for APPINT 200_620
    The first one is to update tha SPAM/SAINT to v 30 and the second one allow you use the pi/xi objects on application system.
    There is another sap note 689847, but you just apply this if the sap notes above described did not work.
    Paulo Correa

  • Segmentation Builder Using ADS -Analytical data Storage

    Hi -
    We are using ADS -Analytical Data Storage in Segement Builder. ADS brings in info objects from BW and then Infoset is created on that ADS .Infoset is then used as Data Source in Segment Builder. We are looking for some information on following. Any help will be greatly Appreciated -
    1.Is any other customers using ADS (Analytical Data source) in Segmentation builder , and how their experience has been ?
    2. We have  large number of records, in  millions which will be pulled from BW to CRM ADS. Can there be any performance issues, are there any know issues ?
    3. Keeping in mind the performance issue, we haves divided ADS into several  tables. However number of records in one table can be much more than other tables as these tables correspond to different customer types. What should be the optimal no of records in one table ? Is there any better way to define ADS ? -
    Your help is greatly appreciated.
    Thanks. - MP

    Hello Mohanpreet,
    We are pushing data from BW to CRM for subsequent generation of BP in CRM system ; and for this we are exploring APD functionality.
    I am using ADS adapter in CRM and have made proper entries in CRM system( ref. screen 'Release data target adapter' in CRM system)
    Now, when I go back to BW system and start to design my landsape in APD trnx. ; there I'm selecting CRM as my target system - which is connected to BW via RFC.
    The problem come when I'm trying to deifne attributes of CRM system then while selecing 'ADS as traget adapter' I"m getting an error as " CRM error : Adapter 'ADS' not known " !!!
    How do I solve this error. I'm totally stuck up at this point.
    Please advice. Due points will be awarded.
    Rgds,
    Ak-

  • Figured out the issue with local flash storage

    OK , a lot of people have had the same issue i had with the local flash storage settings not working, or any of the settings for that matter.....i tried everything and nothing would work. After hours and hours of troubleshooting i finally switched my default web browser from internet explorer to google chrome and bam all the settings were back to working order. Hope this post helps.

    bug is closed by Adobe as "NotABug".
    Flash Players before 11.3.300.257 had different behavior that was more reliable: placing "Dictionary" object to the local storage allowed reading it as "Dictionary". Like placing "Array" resulted to reading "Array" from shared object.
    With Player 11.3 it doesn't work anymore. Reading a property that was placed as "Dictionary" results to plain "Object" read. Any code like "var a:Dictionary = sharedObj.myDictionary as Dictionary;" returns "null". This is very annoying bug that resulted to our application not working for 2 days until we found the reason. I regret Adobe doesn't admit this a bug.
    Writing this in order if someone of developers face with the same issue.

  • Migration issue - X-OWA-Error: SDServerErr;Microsoft.Exchange.Data.Storage.StoragePermanentException

    Im in the middle of a rather large migration and a few users are see the below error when trying to log in to OWA:
    X-OWA-Error: SDServerErr;Microsoft.Exchange.Data.Storage.StoragePermanentExceptionI cant find much on this error other than the enable inheritance permissions fix which all these accounts already have.Has anyone else come across this before?

    Hi 
    This problem occurs because the discretionary access control list (DACL) inheritance is disabled on the user account in Active Directory. The Exchange Servers group must have permissions
    to write the msExchUserCulture attribute on the user when the language has been specified in OWA.
    To resolve this problem, follow these steps:
    1. Open Active Directory Users and Computers.
    2. Click View, and then click Advanced Features.
    Note To make the Security tab available at both the user level and the organizational unit level, you must enable the Advanced Features option in Active Directory Users and Computers. This option is available under the View menu.
    3. Open the properties for both the user level and the organizational unit level that the users are located in, and then locate the Security tab.
    4. Click Advanced.
    5. Make sure that the following check box is selected:
    Allow inheritable permissions from the parent to propagate to this object and all child objects. Include these with entries explicitly defined here.
    6. Force Active Directory replication.
    Remember to mark as helpful if you find my contribution useful or as an answer if it does answer your question.That will encourage me - and others - to take time out to help you

Maybe you are looking for

  • How to stop time machine from backing up encrypted lion partition

    I am using 10.6.8 but I created a Lion partition on the same disk. I am trying out Lion and I do not want Time Machine to back it up. I was able to exclude the Lion volume until I encrypted the Lion partition using Filevault 2. Now when I'm using Sno

  • Display Text in the Second page of the Report.

    Dear, I have a Report With Group G_Emp, having Columns Eno, Ename etc. in a Repeating frame R_1 and I have put A frame below this repeating frame R_1 with a Text Item Just for Displaying Comments, so just i want to display this Text Item in the secon

  • How do I launch quicktime player on Mac Book Air?

    How do I launch Quicktime Player on Mac Book Air? I know that my computer came with it, and when I try to launch it, the icon tells me that it is Version 10.1. Nothing else happens. I wanted to watch some online videos which require the plug in, but

  • How to cancel changes in a Table?

    Hi Experts, In one requirement, i have a button called 'Cancel', when user clicks on this button all changes done by the user should be refresh.(i need old data before change). how can we achieve this? help please Thanks, Venkat.

  • Mac OSX  10.5.5 update bug

    Has the bug in the 10.5.5 update been fixed yet? Is it safe to download and install? I use Log and Transfer for my P2 data and I know that in previous posts some people have had problems with this not working after updating to 10.5.5 Thanks. Weenie