Analyst / Programmer

I have been trying to configure a webservice for the OSE in a JSP development plan, but I keep getting this error:
java.sql.SQLException: ORA-29540: class oracle/aurora/namespace/shell/sql/ShellStoredProc does not exist
ORA-06512: at "SYSTEM.DBMS_NAMESPACE", line 0
ORA-06512: at line 1
in the sess_sh environment after issuing the createwebservice command, as suggested by the documentation.
I would appreciate any help I can get either to explain this or suggest a work around.
Regards,
Segun

-

Similar Messages

  • Oracle BPEL - Does not cater for not null columns and use of "default".

    Oracle BPEL - Does not cater for not null columns and use of "default".
    BPEL fails with message:
    ORA-01400: cannot insert NULL into ("EDDB"."SEISMIC_LINES"."COORD_SYSTEM_ID")
    But SQL*PLUS command works:
    INSERT into EDDB.SEISMIC_LINES
    (etc)
    regards
    Allan Ford
    Analyst / Programmer - IT Application Services, IT Services, Shared Business Services
    Santos Ltd
    Level 4, 91 King William Street, Adelaide SA 5000
    Phone: 08 8224 7944 Fax: 08 8218 5320
    Email: [email protected]

    note: BPEL keeps it's own "offline" copy of table and database items. A column that is marked not null in the database can be marked as nullable in this area. (if you kmow that a trigger is going to cater for this ..)
    One workaround is to use a trigger to provide value rather than use the column default ..

  • How do I have two audio clips overlapping each other?

    I have a project where we have to make a music video, and I wanted to start working on the audio. I have an audio clip of the instrumental without me singing the song. I made a separate audio clip of me just singing the song because I wanted to be able to use autotune without changing how the music sounded. Now I want to play both clips at the same time but every time I try to do it the clips just change positions. Also I have another audio clip in the beginning of the video that I don't want changed or moved. I've tried googling and searching on youtube but nothing seems to help.

    Don't think it's on the Exchange yet (why would I ask for something I have configured already?). Maybe I'll add it later on, but don't understand me wrong, I fully respect the preference is different depending on the user.
    Just my common sense as analyst-programmer that tells me not to close something automatically by default (so only on first install). Your product, your call ;)
    Regards,
    K.

  • Calendar in 9.2.1 freezes after working

    I had the problem common to many of iphoto freezing after an upgrade from 8.  9.0 worked, but suddenly was not acceptable and update to 9.1 was required.  I tried all of the solutions I could find out here.  None worked and the entire program continued to freeze.  9.2.1 worked fine to open the program, add pictures, and do the other things I tried and I thought I was over the hump, even though I didn't (and don't ) know what caused the problem.  I began a calendar (the project that began all of the problems)..  It worked.  I exited iPhoto while still in the calendar mode.  The quit worked fine.  Now I try to open iPhoto, and it goes to the calendar, displays what I have done (very little), and then freezes with the spinning ball of death.  I've rebuilt various things (no help), tried to rebuild in iPhoto Library Manager (on rebuild it opens iPhoto names the new file and then just sits...maybe I didn't wait long enough only about 2 minutes), looked to see if I have themes (I have themes, but none related to calendars appear to be there.  should there be?), and am now out of ideas.  I have version 8.2 and an appropriate library and it works, but no calendars there, but no freeze when trying to creat one.  This leads me to believe that the calendar themes might be missing somehow.
    I've been trying to get going on an annual holiday calendar for 3 months now.  Time is short.  I'm not new at all of this, I was an analyst/programmer and helped manage tech support for a large school district.  This is the very worst and most problematic issue I've had in my 30+ years of working with Apple products.
    HELP!!!  Surely there is a solution less cumbersome than installing 9.0 and going through all the upgrades...
    Thanks,
    Chuck Boody

    And now I've gone through the upgrades from 9.0 over again.  The problem continues....

  • Having trouble browsing the internet at home with my MacBook

    I have been having issues browsing the web from home with my MacBook. When I try to go to pretty much any web site (Google, Yahoo!, Facebook, etc) the page starts loading and makes minimal progress before it stalls and I'm staring at a blank white browser window. The page will eventually load after about 3-4 minutes but only partially.
    I have a Belkin N+ router (model F5D8235-4 v2) and a fiber optic internet service. My sister and my brother-in-law are able to access any and all sites quickly and completely. She has a MacBook Pro and he has a Dell Inspiron (so it doesn't seem to be a Mac vs Windows issue). We have tried changing the router password type from WEP to WPA. I've tried to hardwire into my router with no success. I have cleared my entire cache, history, and cookies - still no change. I have also not had any success with using a different browser.
    I have no issues when I'm using my Mac at work (on a T1 line with an Ethernet cable) or at my mother's house (Netgear ADSL2+ wireless router). I'm curious as to what I can do to fix this. My Mac friends at work and my systems analyst/programmer dad are all as confused as I am. Any insight would be greatly appreciated. Thank you!!

    The Learning Center uses Flash. My guess is that you probably installed the PowerPC Flash plugin and replaced the Universal plugin that ships with the Intel-based Macs.
    To restore the Universal version of the plugin, go to http://www.macromedia.com/cfusion/knowledgebase/index.cfm?id=2dda3d81 and download the preview release.

  • PDF not generated in Report builder 3.0

    Here, I m using Oracle Report Builder 3.0 Rel 2.1. I am running a report from FORM through RUN_PRODUCT , problem is that when i generate the PDF file it shows sometime message of formula column error which is i have seen in rdf is correct and some time it creates blank. But in this report Report Builder Parameter Form also exists , i hide this parameter form in FORM thourgh PARAMFORM in ADD_PARAMETER. I think it requires the parameter values that report generated PDF blank or generated an error of formula column. But i run this report through report parameter form and generate PDF correctly.
    Please Help me this regards
    Shahid Shafi
    Analyst/Programmer
    Novartis Pharma (Pakistan) Ltd.
    [email protected]

    Hi KanataPablo,
    According to your description, it seems that you are using linked server to pass value to oracle. Seeing that the query is worked well in Management Studio, you may have the permission to connect to oracle (In this scenario, make sure the users to run the
    query in SSMS and Report Builder are the same user). So this issue can be caused by the user’s permission to connect to report server, the credential of data source and the dynamic query.
    We can add the current user as a Login, then click Properties and navigate to User Mappings page, enable ReportServer and ReportServerTempDB options.
    We can try to type user name and password, and enable “Use as Windows credentials” as the credential used to connect to data source.
    Try with dynamic query:
    ="Select column1, column2 From tableName where ID IN (" + JOIN(Parameters!param1.value, ",") + ")"
    Hope this helps.
    Thanks,
    Katherine Xiong
    Katherine Xiong
    TechNet Community Support

  • How to work with Bangla in ADF (Jdeveloper 11g Release 2)

    Hi
    I am Jahid From Bangladesh. Recently I am working with ADF (Oracle Jdeveloper 11g). I am working with a project like newsroom service. I need to extract bangla and other language text from other site. So i need to work with Multiple language in ADF specially with Bangla. Can anybody help me specifically step by step. I am new in ADF just beginner.
    Thanks in advance.
    Jahid
    Analyst Programmer
    IBCS-PRIMAX (Bangladesh) Ltd.

    You application character set should be unicode
    this can help http://download.oracle.com/docs/cd/E12839_01/web.1111/b31973/af_global.htm#CHDGCAFI

  • Transaction Management

    Hi there,
    I have a number of table manager classes, each of which saves data to
    their respective table in the database. With these tables it is likely
    that they may be locked by other users on occasion so I have put in
    exception handlers on the managers to cater for this. The user has the
    option to keep trying or give up and try again later.
    Now sometimes three or more tables may need to be updated together and if
    one fails to commit then no data for the three tables should be saved to
    the database. In such a case the 'save' method of the three or more table
    managers are called from a single method within one 'dependent' forte
    transaction. Before calling the save methods, I call another method which
    starts a SQL 'read write wait 10' transaction reserving each table needed
    within the transaction.
    I have read through the Transactions chapter of the Forte Accessing
    Databases manual and see examples where a number of SQL statements are
    included within a transaction and each one commits only if all are
    successful at the end of the transaction. I assumed my approach would be
    similar especially when using the 'begin dependent transaction' statement.
    But if the application gets around to saving the second table which is
    locked and the user decides not to commit, the first table is still updated
    in the database.
    Is it because my SQL statements are in seperate methods and are commited
    when the method is complete? Or am I missing something somewhere?
    Any help greatly appreciated.
    Thank you.
    Vanessa.
    ===========================================< @
    ===========================================Vanessa Rumball
    Analyst Programmer Phone: (03) 479 8285
    A.T.S. Fax: (03) 479 5080
    University of Otago Email: [email protected]
    PO Box 56
    Dunedin
    New Zealand
    ===========================================< @
    ===========================================-
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>

    Hello Peter,
    Well, we are using a slightly different approach. We have a SO
    (we call it Persistence Manager)
    and DBSession SO (user visible) in one partition. This partition
    is load balanced.
    All database activity is in the Persistence Manager - in one
    partition that uses one DBSession. In this approach we do not
    have possibility for deadlocks between different DBSessions
    because for example an activity that involves several tables
    will be executed within one DBSession. And since this partition
    is load balanced, the access to the database will not be
    blocked.
    Hope this makes sense.
    Best regards,
    Dimitar mailto:[email protected]
    Monday, May 17, 1999, 1:55:35 PM, you wrote:
    PSHAMSDI> Hi,
    PSHAMSDI> I would like to add to the question on the concern on sharing DBSession.
    PSHAMSDI> The fact that a DBSession is shared and is blocked from other threads within
    PSHAMSDI> a transaction make it a candidate for "dead-lock". That's why in my
    PSHAMSDI> application, up until now, I dare not to load-balance a DBSession or involve
    PSHAMSDI> multiple DBSessions in a update transaction. I have experience that when
    PSHAMSDI> multiple DBSessions are involved in a update transaction, there is a great
    PSHAMSDI> choice that the DBSessions are dead-locked by different threads.
    PSHAMSDI> The way that we do it now is very dumb and hard to maintain. We pass the
    PSHAMSDI> DBSession along for all the calls involved in a update transaction.
    PSHAMSDI> However, if someone forget to follow the convention, the application will
    PSHAMSDI> get dead-locked and I have to use dumb status on the partitions to trace
    PSHAMSDI> back the invoking method. It is horrible and with no guarentee to find the
    PSHAMSDI> source of the problem.
    PSHAMSDI> I have figured a more extensive architecture to solve this problem. But
    PSHAMSDI> before I fully implement my design, I would like to know if there is already
    PSHAMSDI> a elegant solution out there.
    PSHAMSDI> Thanks for any help in advance.
    PSHAMSDI> Best regards,
    PSHAMSDI> Peter Sham.
    PSHAMSDI> -----Original Message-----
    PSHAMSDI> From: Dimitar Gospodinov [SMTP:[email protected]]
    PSHAMSDI> Sent: Monday, May 17, 1999 2:47 PM
    PSHAMSDI> To: Vanessa Rumball
    PSHAMSDI> Cc: [email protected]
    PSHAMSDI> Subject: Re: Transaction Management
    PSHAMSDI> Hello Vanessa,
    PSHAMSDI> You should use dependent transactions - the "begin
    PSHAMSDI> transaction"
    PSHAMSDI> statement is equal to "begin dependent transaction" statement.
    PSHAMSDI> So you can have several methods for saving the data in
    PSHAMSDI> different
    PSHAMSDI> tables - all these method contain "begin transaction .. end
    PSHAMSDI> transaction" construction.
    PSHAMSDI> Then you can have one "wrapper" method that calls the above
    PSHAMSDI> methods. This method also contains "begin transaction .. end
    PSHAMSDI> transaction" construction.
    PSHAMSDI> Now you have dependent transactions - if some of the
    PSHAMSDI> transaction
    PSHAMSDI> fails , the whole bunch of transaction will fail.
    PSHAMSDI> If you want to catch the Deadlocks you may register for the
    PSHAMSDI> AbortException exception and re-try your outermost
    PSHAMSDI> transaction.
    PSHAMSDI> Hope this helps.
    PSHAMSDI> Best regards,
    PSHAMSDI> Dimitar mailto:[email protected]
    PSHAMSDI> Monday, May 17, 1999, 6:08:17 AM, you wrote:
    PSHAMSDI> VR> Hi there,
    PSHAMSDI> VR> I have a number of table manager classes, each of which saves
    PSHAMSDI> data to
    PSHAMSDI> VR> their respective table in the database. With these tables it is
    PSHAMSDI> likely
    PSHAMSDI> VR> that they may be locked by other users on occasion so I have put
    PSHAMSDI> in
    PSHAMSDI> VR> exception handlers on the managers to cater for this. The user
    PSHAMSDI> has the
    PSHAMSDI> VR> option to keep trying or give up and try again later.
    PSHAMSDI> VR> Now sometimes three or more tables may need to be updated
    PSHAMSDI> together and if
    PSHAMSDI> VR> one fails to commit then no data for the three tables should be
    PSHAMSDI> saved to
    PSHAMSDI> VR> the database. In such a case the 'save' method of the three or
    PSHAMSDI> more table
    PSHAMSDI> VR> managers are called from a single method within one 'dependent'
    PSHAMSDI> forte
    PSHAMSDI> VR> transaction. Before calling the save methods, I call another
    PSHAMSDI> method which
    PSHAMSDI> VR> starts a SQL 'read write wait 10' transaction reserving each
    PSHAMSDI> table needed
    PSHAMSDI> VR> within the transaction.
    PSHAMSDI> VR> I have read through the Transactions chapter of the Forte
    PSHAMSDI> Accessing
    PSHAMSDI> VR> Databases manual and see examples where a number of SQL
    PSHAMSDI> statements are
    PSHAMSDI> VR> included within a transaction and each one commits only if all
    PSHAMSDI> are
    PSHAMSDI> VR> successful at the end of the transaction. I assumed my approach
    PSHAMSDI> would be
    PSHAMSDI> VR> similar especially when using the 'begin dependent transaction'
    PSHAMSDI> statement.
    PSHAMSDI> VR> But if the application gets around to saving the second table
    PSHAMSDI> which is
    PSHAMSDI> VR> locked and the user decides not to commit, the first table is
    PSHAMSDI> still updated
    PSHAMSDI> VR> in the database.
    PSHAMSDI> VR> Is it because my SQL statements are in seperate methods and
    PSHAMSDI> are commited
    PSHAMSDI> VR> when the method is complete? Or am I missing something
    PSHAMSDI> somewhere?
    PSHAMSDI> VR> Any help greatly appreciated.
    PSHAMSDI> VR> Thank you.
    PSHAMSDI> VR> Vanessa.
    PSHAMSDI> VR> ===========================================< @
    PSHAMSDI> >>===========================================
    PSHAMSDI> VR> Vanessa Rumball
    PSHAMSDI> VR> Analyst Programmer Phone: (03) 479 8285
    PSHAMSDI> VR> A.T.S. Fax: (03) 479 5080
    PSHAMSDI> VR> University of Otago Email:
    PSHAMSDI> [email protected]
    PSHAMSDI> VR> PO Box 56
    PSHAMSDI> VR> Dunedin
    PSHAMSDI> VR> New Zealand
    PSHAMSDI> VR> ===========================================< @
    PSHAMSDI> >>===========================================
    PSHAMSDI> VR> -
    PSHAMSDI> VR> To unsubscribe, email '[email protected]' with
    PSHAMSDI> VR> 'unsubscribe forte-users' as the body of the message.
    PSHAMSDI> VR> Searchable thread archive
    PSHAMSDI> <URL:http://pinehurst.sageit.com/listarchive/>
    PSHAMSDI> -
    PSHAMSDI> To unsubscribe, email '[email protected]' with
    PSHAMSDI> 'unsubscribe forte-users' as the body of the message.
    PSHAMSDI> Searchable thread archive
    PSHAMSDI> <URL:http://pinehurst.sageit.com/listarchive/>
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>

  • Developing ETL in pl/sql instead of using tools

    I've been developing for many years in pl/sql and c-shell scripting (Unix) for managing ETL processes in order to load and perform data into databases and data warehouses.
    Even if I've rarely used tools like Pentaho and never used Oracle Warehouse Builder, according to you is it possible to claim that an analyst/programmer has developed ETL processes only by using classic developing (plsql, c-shell, external tables, ...)?
    For a forthcoming new project I'd like to work for as a data warehouse analyst/programmer for ETL processes, I'd like to know whether I can claim to be able to write ETL procedures even if I don't use data integration tools.
    Thank you very much!

    odie_63 wrote:
    BluShadow wrote:
    In the end I wrote an XML Schema parser that created 'staging' tables based on that schema, and also generated template 'mapping' packages to be used for populating the staging tables from our various source system.Slightly off-topic but out of curiosity, do you handle all XML schema features such as substitution groups and import/include directives?Not quite ALL schema features (didn't quite have time to include them all) but yes, it does parse for substitution groups and import/include directives (which is another thing a lot of the ETL tools couldn't handle). The XML Schemas we were supplied with came in many parts but were inter-related, so I ended up writing a proper recursive parser using the DBMS_XMLDOM package and the XDB (where the Schema's were FTP'd to, stored, and queried from). Also had to deal with namespaces (which in this particular instance were pointless namespaces; there was no need for them in these particular Schemas, but obviously the 'designer' behind the schemas thought it was good to include them). The parser takes the schemas (starting at the main schema and including the others as required), processes them to create a metadata table containing all the information about the element names, datatypes, namespaces and parent elements etc. so essentially giving a set of hierarchical data, which is then post-processed to flatten the structure as much as required to obtain the actual datatypes of simple elements, and expand the extensions etc. whilst at the same time creating a set of metadata to assign 'table names' to each group of elements (as element names can exceed the 30 character limit of oracle table names), then creates scripts to generate the staging tables with appropriate primary/foreign keys so all the tables have the correct relationship, as well as the XML generating package that can generate pieces of XML from each table and combines them to the required output XML (once there's data in the tables of course).
    Considering I had little experience of XML Schemas and namespaces at the time I wrote it, back in 2005/6 (I did have experience of DTD's), I used my knowledge of writing language/syntax parsers and knowledge of what ETL tools aimed to do (easily gained knowledge from all the demonstrations the companies trying to sell them gave us) to write the parser and the ETL process. Other organisations, related to our own, also had the same task to do, and some of those were struggling (as they too had no ETL tool) so were provided with what we'd achieved as their starting point, and to great success, as far as I'm aware. It certainly proved itself worthy, when the 3rd party supplied us with completely restructured Schemas (a whole overhaul of the final product), and we just ran those through the parser in another database schema, and did a staging table comparison to see what changes had been made overall (they hadn't supplied any details themselves of what had changed, it was up to us to find out); that whole process of parsing the schemas and analysing the differences to determine the impact on our current work, was all done in 2 days, something which surprised our management greatly (especially as other organisations having to do the same, were reporting it was going to take them several weeks). Sure, there are areas for improvement in it, but it more than meets our needs.
    :)

  • Sample ALV report required for FI module

    Hello friends,
    I am develoing ALV report for FI module for that i need some sample ALV report. If someone have than please send it to me.
    Thanx & Regards,
    Rahul Talele

    HI,
    SEE THE SAMPLE REPORT
                 Fringe Benefit Tax Report
    Program Name            :
    Object ID               :
    Functional Analyst      :
    Programmer              :
    Start date              :
    Initial CTS             :
    Description             : FRINGE Benefit Tax
    Includes                :
    Function Modules        :
    Logical database        :
    Transaction Code        :
    External references     :
                       Modification Log
    Date      | Modified by    | CTS number   | Comments
              |                |              | Initial Version          *
    REPORT  ZFI_FBT NO STANDARD PAGE HEADING LINE-SIZE 255.
    TYPE-POOLS: SLIS.
    TYPES : BEGIN OF
      T_BSIS,
              BUKRS TYPE BUKRS,         " Company Code
              HKONT TYPE HKONT,         " General Ledger Account
              GJAHR TYPE GJAHR,
              BELNR TYPE BELNR_D,       " Accounting Document Number
              BUDAT TYPE BUDAT,         " Posting Date in the Document
              BLDAT TYPE BLDAT,         " Document Date in Document
              XBLNR TYPE XBLNR1,        " Reference Document Number
              BSCHL TYPE BSCHL,         " Posting Key
              DMBTR TYPE DMBTR,         " Amount in Local Currency
              AUFNR TYPE AUFNR_NEU,     " Order Number
              NONFBT TYPE DMBTR,        " non fbt amount
              SUBFBT TYPE DMBTR,        " subject to fbt amount
              ZFI_FBT TYPE ZFI_FBT,     " Qualifying amount.
              AMOUNT TYPE DMBTR,
              FBTPAY TYPE DMBTR,
              ZFI_PAY TYPE ZFI_PAY,
            END OF T_BSIS,
            T_IT_BSIS TYPE STANDARD TABLE OF T_BSIS.
    TYPES : BEGIN OF T_FRINGE,
               ZFI_HKONT TYPE HKONT,
               ZFI_FBT TYPE ZFI_FBT,
               ZFI_PAY TYPE ZFI_PAY,
            END OF T_FRINGE,
            T_IT_FRINGE TYPE STANDARD TABLE OF T_FRINGE.
    DATA  : GIT_FRINGE TYPE T_IT_FRINGE,
            GWA_FRINGE TYPE T_FRINGE.
    DATA  : GIT_BSIS TYPE T_IT_BSIS,
            GWA_BSIS TYPE T_BSIS.
    DATA  : G_HKONT TYPE HKONT,
            G_BUDAT TYPE BUDAT,
            G_AUFNR TYPE AUFNR_NEU.
    FIELD-SYMBOLS : <BSIS> TYPE T_BSIS.
    DATA : G_REPID TYPE SY-REPID,
           GIT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
           GWA_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
           GT_SORT TYPE SLIS_T_SORTINFO_ALV,
           GT_EVENTS TYPE SLIS_T_EVENT,
           GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
           GS_LAYOUT TYPE SLIS_LAYOUT_ALV.
    GS_LAYOUT-ZEBRA = 'X'.
    GS_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
    CONSTANTS : C_50(2) TYPE C VALUE '50'.
      SELECTION SCREEN DEFINITIONS
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    PARAMETERS     : P_BUKRS TYPE BUKRS DEFAULT 'H901' OBLIGATORY.
    SELECT-OPTIONS : S_HKONT FOR G_HKONT,
                     S_BUDAT FOR G_BUDAT.
    *PARAMETERS     : P_AUFNR TYPE AUFNR_NEU DEFAULT '000000100001' OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK B1.
      EVENTS
      INITIALIZATION.
    INITIALIZATION.
      G_REPID = SY-REPID.
      AT SELECTION-SCREEN
    AT SELECTION-SCREEN.
      PERFORM GET_ZTABLE.         " get data from ZFII_FRINGE table
      START-OF-SELECTION.
    START-OF-SELECTION.
      PERFORM GET_DATA.           "  get data from BSIS table
      IF NOT GIT_BSIS IS INITIAL.
        PERFORM GET_PERCENTAGE.   " to get the percentages from table ZFII_FRINGE
        PERFORM CHK4_INTERNAL.    " checking for the posting key wheather th document is reversed
        " and checking wheather internal order is FBT or non-FBT
      ENDIF.
      END-OF-SELECTION.
    END-OF-SELECTION.
      IF NOT GIT_BSIS IS INITIAL.
        PERFORM DISPLAY.        " display ALV GRID display
      ENDIF.
    *&      Form  get_data
          text
    -->  p1        text
    <--  p2        text
    FORM GET_DATA .
      SELECT
             BUKRS
             HKONT
             GJAHR
             BELNR
             BUDAT
             BLDAT
             XBLNR
             BSCHL
             DMBTR
             AUFNR FROM BSIS
                   INTO TABLE GIT_BSIS
                   WHERE BUKRS EQ P_BUKRS AND
                         HKONT IN S_HKONT AND
                         BUDAT IN S_BUDAT.
      IF SY-SUBRC NE 0.
        MESSAGE I000(ZFI) WITH 'No data exist'.
        EXIT.
      ENDIF.
    ENDFORM.                    " get_data
    *&      Form  display
    FORM DISPLAY .
      PERFORM BUILD_FIELD_CATALOUGE.
      PERFORM GET_EVENTS.
      PERFORM DETERMINE_SORT_SEQUENCE.
      PERFORM SUB_COMMENTERY_BUILD.
      PERFORM ALV_DISPLAY.
    ENDFORM.                    " display
    *&      Form  build_field_catalouge
    FORM BUILD_FIELD_CATALOUGE.
      DATA : L_POS TYPE I.
      L_POS = 1 .
      PERFORM INIT_FIELD_CATALOG USING GIT_FIELDCAT[]  " Field Catalog
                                        L_POS          " Column Position
                                       'HKONT'         " InTab Field Name
                                       'GIT_BSIS'      " InTab Name
                                       '10'            " Output Length
                                       'GL Account'  " Column Name Text
                                       ' '             " Datatype
                                       'X'             " Key?
                                       '1'             " Row Position
                                       ' '             " Hotspot
                                       ' '             " Emphasize
                                       ' '             " key_sel
                                       ' '             " justification
                                       ' '.            " Sum field?
      L_POS = L_POS + 1 .
      PERFORM INIT_FIELD_CATALOG USING GIT_FIELDCAT[]  " Field Catalog
                                        L_POS          " Column Position
                                       'BELNR'         " InTab Field Name
                                       'GIT_BSIS'      " InTab Name
                                       '10'            " Output Length
                                       'Document No.'  " Column Name Text
                                       ' '             " Datatype
                                       'X'             " Key?
                                       '1'             " Row Position
                                       'X'             " Hotspot
                                       ' '             " Emphasize
                                       ' '             " key_sel
                                       ' '             " justification
                                       ' '.            " Sum field?
      L_POS = L_POS + 1 .
      PERFORM INIT_FIELD_CATALOG USING GIT_FIELDCAT[]  " Field Catalog
                                        L_POS          " Column Position
                                       'BUDAT'         " InTab Field Name
                                       'GIT_BSIS'      " InTab Name
                                       '10'             " Output Length
                                       'Posting Date'             " Column Name Text
                                       ' '             " Datatype
                                       ' '             " Key?
                                       '1'             " Row Position
                                       ' '             " Hotspot
                                       ' '             " Emphasize
                                       ' '             " key_sel
                                       ' '             " justification
                                       ' '.            " Sum field?
      L_POS = L_POS + 1 .
      PERFORM INIT_FIELD_CATALOG USING GIT_FIELDCAT[]  " Field Catalog
                                        L_POS          " Column Position
                                       'BLDAT'         " InTab Field Name
                                       'GIT_BSIS'      " InTab Name
                                       '10'             " Output Length
                                       'Docu. Date'             " Column Name Text
                                       ' '             " Datatype
                                       ' '             " Key?
                                       '1'             " Row Position
                                       ' '             " Hotspot
                                       ' '             " Emphasize
                                       ' '             " key_sel
                                       ' '             " justification
                                       ' '.            " Sum field?
      L_POS = L_POS + 1 .
      PERFORM INIT_FIELD_CATALOG USING GIT_FIELDCAT[]  " Field Catalog
                                        L_POS          " Column Position
                                       'XBLNR'         " InTab Field Name
                                       'GIT_BSIS'      " InTab Name
                                       '16'             " Output Length
                                       'Ref. Doc. Number'             " Column Name Text
                                       ' '             " Datatype
                                       ' '             " Key?
                                       '1'             " Row Position
                                       ' '             " Hotspot
                                       ' '             " Emphasize
                                       ' '             " key_sel
                                       ' '             " justification
                                       'X'.            " Sum field?
      L_POS = L_POS + 1 .
      PERFORM INIT_FIELD_CATALOG USING GIT_FIELDCAT[]  " Field Catalog
                                        L_POS          " Column Position
                                       'DMBTR'         " InTab Field Name
                                       'GIT_BSIS'      " InTab Name
                                       '16'             " Output Length
                                       'Gross Amount'             " Column Name Text
                                       ' '             " Datatype
                                       ' '             " Key?
                                       '1'             " Row Position
                                       ' '             " Hotspot
                                       ' '             " Emphasize
                                       ' '             " key_sel
                                       ' '             " justification
                                       'X'.            " Sum field?
      L_POS = L_POS + 1 .
      PERFORM INIT_FIELD_CATALOG USING GIT_FIELDCAT[]  " Field Catalog
                                        L_POS          " Column Position
                                       'SUBFBT'         " InTab Field Name
                                       'GIT_BSIS'      " InTab Name
                                       '16'             " Output Length
                                       'FBT Amount'             " Column Name Text
                                       ' '             " Datatype
                                       ' '             " Key?
                                       '1'             " Row Position
                                       ' '             " Hotspot
                                       ' '             " Emphasize
                                       ' '             " key_sel
                                       ' '             " justification
                                       'X'.            " Sum field?
      L_POS = L_POS + 1 .
      PERFORM INIT_FIELD_CATALOG USING GIT_FIELDCAT[]  " Field Catalog
                                        L_POS          " Column Position
                                       'NONFBT'         " InTab Field Name
                                       'GIT_BSIS'      " InTab Name
                                       '16'             " Output Length
                                       'Non FBT Amount'             " Column Name Text
                                       ' '             " Datatype
                                       ' '             " Key?
                                       '1'             " Row Position
                                       ' '             " Hotspot
                                       ' '             " Emphasize
                                       ' '             " key_sel
                                       ' '             " justification
                                       'X'.            " Sum field?
      L_POS = L_POS + 1 .
      PERFORM INIT_FIELD_CATALOG USING GIT_FIELDCAT[]  " Field Catalog
                                        L_POS          " Column Position
                                       'ZFI_FBT'         " InTab Field Name
                                       'GIT_BSIS'      " InTab Name
                                       '12'            " Output Length
                                       'Percentage'    " Column Name Text
                                       ' '              " Datatype
                                       ' '             " Key?
                                       '1'             " Row Position
                                       ' '             " Hotspot
                                       ' '             " Emphasize
                                       ' '             " key_sel
                                       ' '             " justification
                                       ' '.            " Sum field?
      L_POS = L_POS + 1 .
      PERFORM INIT_FIELD_CATALOG USING GIT_FIELDCAT[]  " Field Catalog
                                        L_POS          " Column Position
                                       'AMOUNT'        " InTab Field Name
                                       'GIT_BSIS'      " InTab Name
                                       '16'            " Output Length
                                       'Qualifying Amount'  " Column Name Text
                                       ' '             " Datatype
                                       ' '             " Key?
                                       '1'             " Row Position
                                       ' '             " Hotspot
                                       ' '             " Emphasize
                                       ' '             " key_sel
                                       ' '             " justification
                                       'X'.            " Sum field?
      L_POS = L_POS + 1 .
      PERFORM INIT_FIELD_CATALOG USING GIT_FIELDCAT[]  " Field Catalog
                                        L_POS          " Column Position
                                       'FBTPAY'         " InTab Field Name
                                       'GIT_BSIS'      " InTab Name
                                       '12'            " Output Length
                                       'FBT payable'   " Column Name Text
                                       ' '             " Datatype
                                       ' '             " Key?
                                       '1'             " Row Position
                                       ' '             " Hotspot
                                       ' '             " Emphasize
                                       ' '             " key_sel
                                       ' '             " justification
                                       'X'.            " Sum field?
    ENDFORM.                    " build_field_catalouge
    *&      Form  init_field_catalog
          text
    FORM INIT_FIELD_CATALOG  USING    P_GIT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV
                                      PV_POS       LIKE GWA_FIELDCAT-COL_POS
                                      PV_FIELDNAME LIKE GWA_FIELDCAT-FIELDNAME
                                      PV_TABNAME   LIKE GWA_FIELDCAT-TABNAME
                                      PV_OUTPUT    LIKE GWA_FIELDCAT-OUTPUTLEN
                                      PV_SELTEXT   LIKE GWA_FIELDCAT-SELTEXT_M
                                      PV_DATATYPE  LIKE GWA_FIELDCAT-DATATYPE
                                      PV_KEY       LIKE GWA_FIELDCAT-KEY
                                      PV_ROW       LIKE GWA_FIELDCAT-ROW_POS
                                      PV_HOTSPOT   LIKE GWA_FIELDCAT-HOTSPOT
                                      PV_EMPHASIZE LIKE GWA_FIELDCAT-EMPHASIZE
                                      PV_KEY_SEL   LIKE GWA_FIELDCAT-KEY_SEL
                                      PV_JUST      LIKE GWA_FIELDCAT-JUST
                                      PV_SUM       LIKE GWA_FIELDCAT-DO_SUM.
      DATA:  LT_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
      LT_FIELDCAT-OUTPUTLEN     = PV_OUTPUT.
      LT_FIELDCAT-COL_POS       = PV_POS.
      LT_FIELDCAT-FIELDNAME     = PV_FIELDNAME.
      LT_FIELDCAT-TABNAME       = PV_TABNAME.
      LT_FIELDCAT-SELTEXT_M     = PV_SELTEXT.
      LT_FIELDCAT-KEY           = PV_KEY.
      LT_FIELDCAT-ROW_POS       = PV_ROW.
      LT_FIELDCAT-HOTSPOT       = PV_HOTSPOT.
      LT_FIELDCAT-EMPHASIZE     = PV_EMPHASIZE.
      LT_FIELDCAT-KEY_SEL       = PV_KEY_SEL.
      LT_FIELDCAT-DO_SUM        = PV_SUM.
      LT_FIELDCAT-JUST          = PV_JUST.
      LT_FIELDCAT-DATATYPE      = PV_DATATYPE.
      APPEND LT_FIELDCAT TO  P_GIT_FIELDCAT.
      CLEAR  LT_FIELDCAT.
    ENDFORM.                    " init_field_catalog
    *&      Form  alv_display
          text
    -->  p1        text
    <--  p2        text
    FORM ALV_DISPLAY .
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
        I_INTERFACE_CHECK                 = ' '
        I_BYPASSING_BUFFER                = ' '
        I_BUFFER_ACTIVE                   = ' '
          I_CALLBACK_PROGRAM                = G_REPID
         I_CALLBACK_PF_STATUS_SET          = 'SET_PF_STATUS'
         I_CALLBACK_USER_COMMAND           = 'USER_COMMAND'
        I_CALLBACK_TOP_OF_PAGE            = ' '
        I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
        I_CALLBACK_HTML_END_OF_LIST       = ' '
        I_STRUCTURE_NAME                  =
        I_BACKGROUND_ID                   = ' '
        i_grid_title                      = 'Fringe Benefit Tax'
        I_GRID_SETTINGS                   =
         IS_LAYOUT                         = GS_LAYOUT
          IT_FIELDCAT                       = GIT_FIELDCAT
        IT_EXCLUDING                      =
        IT_SPECIAL_GROUPS                 =
         IT_SORT                           = GT_SORT
        IT_FILTER                         =
        IS_SEL_HIDE                       =
        I_DEFAULT                         = 'X'
        I_SAVE                            = ' '
        IS_VARIANT                        =
         IT_EVENTS                         = GT_EVENTS[]
        IT_EVENT_EXIT                     =
        IS_PRINT                          =
        IS_REPREP_ID                      =
        I_SCREEN_START_COLUMN             = 0
        I_SCREEN_START_LINE               = 0
        I_SCREEN_END_COLUMN               = 0
        I_SCREEN_END_LINE                 = 0
        I_HTML_HEIGHT_TOP                 = 0
        I_HTML_HEIGHT_END                 = 0
        IT_ALV_GRAPHICS                   =
        IT_HYPERLINK                      =
        IT_ADD_FIELDCAT                   =
        IT_EXCEPT_QINFO                   =
        IR_SALV_FULLSCREEN_ADAPTER        =
      IMPORTING
        E_EXIT_CAUSED_BY_CALLER           =
        ES_EXIT_CAUSED_BY_USER            =
        TABLES
          T_OUTTAB                          = GIT_BSIS
       EXCEPTIONS
         PROGRAM_ERROR                     = 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.
    ENDFORM.                    " alv_display
    *&      Form  chk4_internal
          text
    -->  p1        text
    <--  p2        text
    FORM CHK4_INTERNAL .
      LOOP AT GIT_BSIS ASSIGNING <BSIS>.
        IF <BSIS> IS ASSIGNED.
          IF  <BSIS>-BSCHL = C_50.
            <BSIS>-DMBTR = <BSIS>-DMBTR * -1.
          ENDIF.
       IF NOT <bsis>-aufnr IS INITIAL.
          IF <BSIS>-AUFNR = '000000100000'.         "    P_AUFNR.
            <BSIS>-SUBFBT = <BSIS>-DMBTR.
            <BSIS>-AMOUNT = ( <BSIS>-SUBFBT * <BSIS>-ZFI_FBT ) / 100.
          ELSE.
           IF <bsis>-aufnr = '000000100020'.
            <BSIS>-NONFBT = <BSIS>-DMBTR.
          ENDIF.
       ENDIF.
          <BSIS>-FBTPAY = ( <BSIS>-AMOUNT * <BSIS>-ZFI_PAY ) / 100.
        ENDIF.
      ENDLOOP.
      UNASSIGN <BSIS>.
    ENDFORM.                    " chk4_internal
    *&      Form  get_ztable
          text
    -->  p1        text
    <--  p2        text
    FORM GET_ZTABLE .
      REFRESH : GIT_FRINGE.
      SELECT   HKONT
               ZFI_FBT
               ZFI_PAY
                       FROM ZFI_FBT_DETL
                       INTO TABLE GIT_FRINGE
                     FOR ALL ENTRIES IN s_hkont
                       WHERE HKONT IN S_HKONT.
      CHECK SY-SUBRC EQ 0.
      SORT GIT_FRINGE BY ZFI_HKONT.
    ENDFORM.                    " get_ztable
    *&      Form  get_percentage
          text
    -->  p1        text
    <--  p2        text
    FORM GET_PERCENTAGE .
      CLEAR : GWA_FRINGE.
      LOOP AT GIT_BSIS ASSIGNING <BSIS>.
        IF <BSIS> IS ASSIGNED.
          READ TABLE GIT_FRINGE INTO GWA_FRINGE WITH KEY
                                                       ZFI_HKONT = <BSIS>-HKONT
                                                       BINARY SEARCH.
          CHECK SY-SUBRC EQ 0.
          <BSIS>-ZFI_FBT = GWA_FRINGE-ZFI_FBT.
          <BSIS>-ZFI_PAY = GWA_FRINGE-ZFI_PAY.
        ENDIF.
      ENDLOOP.
      UNASSIGN <BSIS>.
    ENDFORM.                    " get_percentage
    *&      Form  determine_sort_sequence
          text
    -->  p1        text
    <--  p2        text
    FORM DETERMINE_SORT_SEQUENCE .
      DATA : LS_SORT TYPE SLIS_SORTINFO_ALV.
      LS_SORT-SPOS = 1.                           " Sort order
      LS_SORT-FIELDNAME = 'HKONT'.
      LS_SORT-TABNAME = 'GIT_BSIS'.
      LS_SORT-UP = 'X'.
      LS_SORT-SUBTOT = 'X'.                      " Sub total allowed
      APPEND LS_SORT TO GT_SORT.
      CLEAR LS_SORT.
    ENDFORM.                    " determine_sort_sequence
    *&      Form  get_events
          text
    -->  p1        text
    <--  p2        text
    FORM GET_EVENTS .
      CONSTANTS:
      GC_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE',
      GC_FORMNAME_USER_COMMAND TYPE SLIS_FORMNAME VALUE 'USER_COMMAND'.
      DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
        EXPORTING
          I_LIST_TYPE = 0
        IMPORTING
          ET_EVENTS   = GT_EVENTS.
      READ TABLE GT_EVENTS WITH KEY NAME =  SLIS_EV_TOP_OF_PAGE
                               INTO LS_EVENT.
      IF SY-SUBRC = 0.
        MOVE GC_FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.
        APPEND LS_EVENT TO GT_EVENTS.
      ENDIF.
      READ TABLE GT_EVENTS WITH KEY NAME = SLIS_EV_USER_COMMAND
                               INTO LS_EVENT.
      IF SY-SUBRC = 0.
        MOVE GC_FORMNAME_USER_COMMAND TO LS_EVENT-FORM.
        APPEND LS_EVENT TO GT_EVENTS.
      ENDIF.
    ENDFORM.                    " get_events
    *&      Form  sub_commentery_build
          text
    -->  p1        text
    <--  p2        text
    FORM SUB_COMMENTERY_BUILD .
      DATA: LS_LINE TYPE SLIS_LISTHEADER.
      DATA : L_LOW  TYPE CHAR10,
            L_HIGH TYPE CHAR10,
            L_DATE TYPE CHAR25.
      CONCATENATE S_BUDAT-LOW6(2) '.' S_BUDAT-LOW4(2) '.' S_BUDAT-LOW+0(4) INTO  L_LOW.
      CONCATENATE S_BUDAT-HIGH6(2) '.' S_BUDAT-HIGH4(2) '.' S_BUDAT-HIGH+0(4) INTO  L_HIGH.
      CONCATENATE L_LOW  ' - ' L_HIGH INTO L_DATE.
    ***header
      CLEAR LS_LINE.
      LS_LINE-TYP  = 'H'.
    LS_LINE-KEY: not used for this type
      LS_LINE-INFO = 'Fringe Benefit Tax'.
      APPEND LS_LINE TO GT_LIST_TOP_OF_PAGE.
    ***Selection
      CLEAR LS_LINE.
      LS_LINE-TYP  = 'S'.
      LS_LINE-KEY  = 'Company Code'.
      LS_LINE-INFO = P_BUKRS.
      APPEND LS_LINE TO GT_LIST_TOP_OF_PAGE.
      CLEAR LS_LINE.
      LS_LINE-TYP  = 'S'.
      LS_LINE-KEY  = 'Posting Date'.
      LS_LINE-INFO = L_DATE.
      APPEND LS_LINE TO GT_LIST_TOP_OF_PAGE.
    ENDFORM.                    " sub_commentery_build
          FORM TOP_OF_PAGE                                              *
    When TOP-OF-PAGE will be fired , this event will be called and it
    will use the contents of i_list_top_of_page for output in the header
    FORM TOP_OF_PAGE.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
           EXPORTING
               i_logo             = 'ENJOYSAP_LOGO'
                 IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.
    ENDFORM.                    "top_of_page
    *&      Form  USER_COMMAND
    Called from within the ALV processes. Currently, '&IC1' is used to
    process the hotspot and display the document 'picked' by the user.
    FORM USER_COMMAND USING PV_UCOMM LIKE SY-UCOMM
                            SELFIELD TYPE SLIS_SELFIELD.
      CLEAR : GWA_BSIS.
      CASE PV_UCOMM.
        WHEN '&IC1'.
          READ TABLE GIT_BSIS INTO GWA_BSIS INDEX SELFIELD-TABINDEX.
          CASE SELFIELD-SEL_TAB_FIELD.
            WHEN 'GIT_BSIS-BELNR'.
              IF NOT GWA_BSIS-BELNR IS INITIAL.
                SET PARAMETER ID: 'BUK' FIELD GWA_BSIS-BUKRS,
                                  'BLN' FIELD GWA_BSIS-BELNR,
                                  'GJR' FIELD GWA_BSIS-GJAHR.
                CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
              ENDIF.
            WHEN OTHERS.
          ENDCASE.
        WHEN OTHERS.
      ENDCASE.
      CLEAR : GWA_BSIS.
    ENDFORM.                    "user_command
    *&      Form  SET_PF_STATUS
          text
    FORM SET_PF_STATUS USING EXTAB TYPE SLIS_T_EXTAB.
      SET PF-STATUS 'STANDARD_FULLSCREEN' OF PROGRAM 'SAPLKKBL'.
    ENDFORM.                    "SET_PF_STATUSENDFORM.                    "SET_PF_STATUS
    AWARD POINTS IF USEFUL....

  • SO Load Balancing Question

    Hi all,
    I have a service object (SO1) which has been set to Load Balancing.
    This service object has an attribute which serves as a number allocator
    (NA1).
    This NA1 provides a unique number across the whole application for each of
    the record that require to store into DB.
    The problem is, will the NA1 get replicated if the SO1 is replicated?
    If yes, will NA1 crash?
    Regards,
    Martin Chan
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Senior Analyst/Programmer
    Dept of Education and Training
    Mobile : 0413-996-116
    Email: martin.chandet.nsw.edu.au
    Tel: 02-9942-9685

    Hi Serge,
    Could you prefix it with the PID of the load balanced process ?No I can't. At least not at the moment.
    When a service object is replicated, it is automatically replicated into adifferent partition...
    Thanks.
    An advice, make the NA1 shared. So if you get to do multithreaded accessto
    it, you won't screw up things.I am thinking it may be better off to create it as a service object on it's
    own.
    How is the number returned by the NA1 generated ?It gets generated by Forte's code.
    ... Try to make it so that the
    load balanced partitions don't need to access the database more than onein
    5 min. to get a new Seed Key. This would not need to PID.Thanks for your advise.
    Regards
    Martin Chan
    -----Original Message-----
    From: Serge Blais [mailto:Serge.BlaisSun.com]
    Sent: Tuesday, 3 April 2001 14:17
    To: Chan, Martin
    Subject: RE: (forte-users) SO Load Balancing Question
    Your right, they can generate the same number. How much control do you have
    over the ID being generated? Could you prefix it with the PID of the load
    balanced process ?
    Just a note: When a service object is replicated, it is automatically
    replicated into a different partition, possibly on the same machine or on a
    different one.
    An advice, make the NA1 shared. So if you get to do multithreaded access to
    it, you won't screw up things.
    How is the number returned by the NA1 generated ? If NA1 is using a stored
    procedure, or something like:
    Start TRX
    read number
    newnumber = number+5000
    write back newnumber
    End Trx
    Something like will be very safe. The Database Index Table is taking care
    of the critical section. Then you can be sure that each replicate can be
    independent (not hit into each other) for 5000 iterations. Depending on the
    frequency, you may want to up this number or lower this number. Too high it
    would make the key very high very soon with wholes in the sequence. Too low
    and you would have hit between the replicates. Try to make it so that the
    load balanced partitions don't need to access the database more than one in
    5 min. to get a new Seed Key. This would not need to PID.
    Serge
    At 01:59 PM 4/3/2001 +1000, you wrote:
    Hi Serge,
    The number return by the NA1 is used as a primary key for each of therecord
    that stores in the DB.
    The Number Allocator NA1 is required to access to DB to update an ID table
    which carry the next available sequence number. NA1 will only update this
    table for every 5000 records.
    For example, the initial value of the sequence is: 1
    The next update will change the value to 5001, next will be 10001 and soon.
    >
    The properties of this NA1 class at runtime
    Shared - Disallowed
    Distributed - Disallowed
    Transactional - Is Default
    Monitored - Disallowed
    Unfortunately, this attribute is not a handle but is instantiated by theSO1
    itself.
    I have been thinking, if SO1 is replicated within the same partition, and
    each replicate will carry its own NA1. NA1 and the replicate of NA1 may
    return a same number if their initial values of the sequence are the same.
    Correct?
    Regards
    Martin Chan
    -----Original Message-----
    From: Serge Blais [mailto:Serge.BlaisSun.com]
    Sent: Tuesday, 3 April 2001 13:11
    To: Chan, Martin; forte-userslists.xpedior.com
    Subject: Re: (forte-users) SO Load Balancing Question
    Let's see if I understand right.
    You have a service object that keep a handle to an object that either keep
    state information, or that generate state information. Now the thing to
    figure out is which is it. Let's assume that NA1 is a number generator,
    that does not need to be synchronized or that doesn't need to access any
    external resource. It would still work, depending on the algorythm you are
    using.
    Will they share the same NA1? It depends on the nature of NA1, but for sure
    NA1 would have to be an anchored object. An if multiple partitions would
    share the same object "only" for key generation, you would bring down your
    performance on key generation or key update (by adding one inter-process
    call).
    In short:
    1. Many scenarios can happen, you need to be clearer on your description.
    2. If you are sharing an object by load balanced partitions, this greatly
    reduce the gain of load balancing the partition.
    3. If NA1 is keeping state, any access to it would need to be controlled
    "shared".
    Have fun now...
    Serge
    At 12:30 PM 4/3/2001 +1000, Chan, Martin wrote:
    Hi all,
    I have a service object (SO1) which has been set to Load Balancing.
    This service object has an attribute which serves as a number allocator
    (NA1).
    This NA1 provides a unique number across the whole application for each
    of
    the record that require to store into DB.
    The problem is, will the NA1 get replicated if the SO1 is replicated?
    If yes, will NA1 crash?
    Regards,
    Martin Chan
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Senior Analyst/Programmer
    Dept of Education and Training
    Mobile : 0413-996-116
    Email: martin.chandet.nsw.edu.au
    Tel: 02-9942-9685
    For the archives, go to: http://lists.xpedior.com/forte-users and use
    the login: forte and the password: archive. To unsubscribe, send in a new
    email the word: 'Unsubscribe' to: forte-users-requestlists.xpedior.comSerge Blais
    Professional Services Engineer
    iPlanet Expertise Center
    Sun Professional Services
    Cell : (514) 234-4110
    Serge.BlaisSun.comSerge Blais
    Professional Services Engineer
    iPlanet Expertise Center
    Sun Professional Services
    Cell : (514) 234-4110
    Serge.BlaisSun.com

  • RE: Multiple Selection

    I think only ScrollList widget allow multiple selection.
    In other case, you have to code... (ie : detect wich line is selected,
    highlight it, and then loop in the array to detect wich lines are
    highlighted et apply some action on these)
    De : Jason de Cean[SMTP:[email protected]]
    R&eacute;pondre &agrave; : Jason de Cean
    Date : mercredi 16 septembre 1998 09:54
    A : 'Forte Users'
    Objet : Multiple Selection
    Hi,
    Does anyone know if the Forte ListView and OutlineField widgets allow
    the user to select multiple items (ie. Hold down shift and highlight
    several items at the same time) ?
    I couldn't find any information on multiple selection in the Forte
    documentation.
    Regards,
    Jace.
    Jason de Cean
    Analyst/Programmer
    Lumley Technology Ltd.
    Sydney, Australia.
    (02) 9318 6720
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive
    <URL:http://pinehurst.sageit.com/listarchive/>
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>

    If you are using Logical DB PNP why are you coding Selection Fields for ABKRS and WERKS?   Both of these fields are defined in the PNP Selection Screen and if you use those fields then SAP will handle filtering the data.

  • RE: Ole Automation with forte.

    Tran,
    Here is a piece of code(using Forte Version 3OF2 & Word 97) that we've
    used to determine if there is already an instance of Word running:
    // Create an instance of a Word Application and activate it.
    // If an a Word application exists, just activate it.
    if ( aTasks <> NIL and aTasks.Exists(aWordApplication.Name) )
    then
    aWordApplication.visible = TRUE;
    aWordApplication.Activate();
    else
    aWordApplication = new();
    aTasks = new();
    aWordApplication.CreateUsingProgID( 'word.application'
    aWordApplication.visible = TRUE;
    aWordApplication.Activate();
    aTasks is an attribute of type Tasks on our window & aWordApplication is
    an attribute of type _Application on our window. This code will work if
    there already is an instance of Word that was started from a Forte
    applicaiton. It doesn't recognize a instance of Word that was started
    outside of a Forte app. Hope this helps!!
    From: Quy Tran[SMTP:[email protected]]
    Sent: Wednesday, May 20, 1998 11:17 PM
    To: [email protected]
    Subject: Ole Automation with forte.
    Good Day forte users,
    I'm trying to invoke MSWord from a forte application.
    I set the objectreference using CreateUsingProgId(This is the only way
    that I could get it to work).
    The problem is when using CreateUsingProgId, forte will create another
    instance of Word. Is there a way to know if the instance already
    exists
    and retrieve the objectreference of that instance?
    Any help would be appreciated.
    Thanks
    Quy Tran
    Lumley Technology
    Analyst/Programmer
    [email protected]
    Ph : 612 93186722
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive
    <URL:http://pinehurst.sageit.com/listarchive/>
    If you are not the intended recipient, please notify the Sender.
    Non-business opinions may not reflect opinions of Piper Jaffray

    Hi Aurang
    You can call almost all methods using OLE. What is required is to know how to interpret a script to ABAP OLE call. This is explained in the tutorial<a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/c1d54348-0601-0010-3e98-bd2a2dcd9e6c">"An Easy Reference For OLE Automation"</a>
    Regards
    *--Serdar <a href="https://www.sdn.sap.com:443http://www.sdn.sap.comhttp://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.sdn.businesscard.sdnbusinesscard?u=qbk%2bsag%2bjiw%3d">[ BC ]</a>

  • Java.util.Map to flash.utils.Dictionary

    Hi,
    I'm using Blazeds for my remoting between Flex and Java. I have an Object-to-object map on the Java side. This converts to an untyped Object in Flex having the properties as the 'toString' of the key Object.
    Has anyone been able to convert an Object-to-object java map to a flash Dictionary object? Why wouldn't it do that as default?
    Thanks,
    Eyal

    Yes, You can, I have successfully mapping form java HashMap to Flex Dictionary. The following is the code fragment for the success case:
    The hint is that you need to use ObjectProxy in Flex to map HashMap in Java.
    Man Pak Hong, Dave
    Analyst Programmer
    [email protected]
    manpakhong
    Java:
    // ================================================================================
        public Map<String, Object> getCaseDetails(Long sid) throws ApplicationException, SystemException {
            // Vos Declaration
            Case caseVo = null;
            UserInfo ossUserInfoVo = null;
            UserInfo spUserInfoVo = null;
            Ngo ossNgoVo = null;
            Ngo spNgoVo = null;
            Personal personalVo = null;
            Contact contactVo = null;
            CaseAttachment caseAtthVo = null;
            Office ossOffice = null;
            SwdOffice swdOffice = null;
            UserInfo swdEao = null;
            NeedAssess needAssess = null;
            List <CaseRegPropVw> caseRegPropVwList = null;       
            CaseDao daoCase = new CaseDao();       
            caseVo = daoCase.getCase(sid);
            if (caseVo != null)
                UserInfoDao daoUserInfo = new UserInfoDao();
                ossUserInfoVo = daoUserInfo.getUserInfo(caseVo.getOssCmSid());
                spUserInfoVo = daoUserInfo.getUserInfo(caseVo.getNgoCmSid());
                // caseRegProp
                CaseRegPropVwDao daoCaseRegPropVw = new CaseRegPropVwDao();
                caseRegPropVwList = daoCaseRegPropVw.listCaseRegPropVwByLessRegNo(caseVo.getLessRegNo());           
            NgoDao daoNgo = new NgoDao();
            if (ossUserInfoVo != null)
                ossNgoVo = daoNgo.getNgo(ossUserInfoVo.getNgoSid());
            if (spUserInfoVo != null)
                spNgoVo = daoNgo.getNgo(spUserInfoVo.getNgoSid());
            // personal
            if (caseVo != null)
                PersonalDao daoPersonal = new PersonalDao();
                personalVo = daoPersonal.getPersonal(caseVo.getPersonalSid());
                // jscontact
                ContactDao daoContact = new ContactDao();
                contactVo = daoContact.getContact(caseVo.getSid());
                // ossCaseAtth
                CaseAttachmentDao daoCaseAtth = new CaseAttachmentDao();
                caseAtthVo = daoCaseAtth.getCaseAttachment(caseVo.getSid(), CaseAttachmentPolicy.ATT_TYPE_CONSENT_FORM);
                // ossOffice
                OfficeDao daoOssOffice = new OfficeDao();
                ossOffice = daoOssOffice.getOffice(caseVo.getOssOfficeSid());
            if (personalVo != null)
                // swdOffice
                SwdOfficeDao daoSwdOffice = new SwdOfficeDao();
                swdOffice = daoSwdOffice.getSwdOffice(personalVo.getSwdOfficeSid());
                // swdEao
                UserInfoDao daoSwdEao = new UserInfoDao();
                swdEao = daoSwdEao.getUserInfo(personalVo.getSwdEaoSid());
                // needAssess
                NeedAssessDao daoNeedAssess = new NeedAssessDao();
                needAssess = daoNeedAssess.getNeedAssess(personalVo.getSid());
            Map<String, Object> hm = new HashMap<String, Object>();
            hm.put("Case", caseVo);
            hm.put("OssUserInfo", ossUserInfoVo);
            hm.put("NgoUserInfo", spUserInfoVo);
            hm.put("OssNgo", ossNgoVo);
            hm.put("SpNgo", spNgoVo);
            hm.put("Personal", personalVo);
            hm.put("Contact", contactVo);
            hm.put("CaseAtth", caseAtthVo);
            hm.put("OssOffice", ossOffice);
            hm.put("SwdOffice", swdOffice);
            hm.put("SwdEao", swdEao);
            hm.put("NeedAssess", needAssess);
            hm.put("CaseRegPropsVw", caseRegPropVwList);
            return hm;
    Flex part
    // ==================================================================================
                // CASEDETAILS
                private function getCaseDetailsResultHandler(result:ObjectProxy):void
                    var dc:ObjectProxy = result;
                    this.editItemOssUserInfo = dc["OssUserInfo"];
                    detailCaseInfo.editItemOssUserInfo = editItemOssUserInfo;
                    this.editItemOssNgo = dc["OssNgo"];
                    detailCaseInfo.editItemOssNgo = editItemOssNgo;   
                    this.editItemCase = dc["Case"];       
                    detailCaseInfo.editItemCase = editItemCase;
                    detailPersonalInfo.editItemCase = editItemCase;   
                    this.editItemPersonal = dc["Personal"];
                    detailCaseInfo.editItemPersonal = editItemPersonal;
                    detailPersonalInfo.editItemPersonal = editItemPersonal;
                    this.editItemContact = dc["Contact"];
                    detailCaseInfo.editItemContact = editItemContact;
                    detailPersonalInfo.editItemContact = editItemContact;
                    this.editItemCaseAtth = dc["CaseAtth"];
                    detailCaseInfo.editItemCaseAtth = editItemCaseAtth;
                    this.editItemOssOffice = dc["OssOffice"];
                    detailCaseInfo.editItemOssOffice = editItemOssOffice;
                    this.editItemSwdOffice = dc["SwdOffice"];
                    detailCaseInfo.editItemSwdOffice = editItemSwdOffice;
                    this.editItemSwdEao = dc["SwdEao"];
                    detailCaseInfo.editItemSwdEao = editItemSwdEao;
                    this.editItemNeedAssess = dc["NeedAssess"];
                    detailCaseInfo.editItemNeedAssess = editItemNeedAssess;
                    this.listItemCaseRegPropVw = dc["CaseRegPropsVw"];
                    this.caseDict = new Dictionary();               
                    caseDict[CaseDetailPolicy.INIT_OSSUSERINFO] = editItemOssUserInfo;
                    caseDict[CaseDetailPolicy.INIT_OSSNGO] = editItemOssNgo;
                    caseDict[CaseDetailPolicy.INIT_CASE] = editItemCase;
                    caseDict[CaseDetailPolicy.INIT_PERSONAL] = editItemPersonal;
                    caseDict[CaseDetailPolicy.INIT_CONTACT] = editItemContact;
                    caseDict[CaseDetailPolicy.INIT_CASEATTH] = editItemCaseAtth;
                    caseDict[CaseDetailPolicy.INIT_OSSOFFICE] = editItemOssOffice;
                    caseDict[CaseDetailPolicy.INIT_SWDEAO] = editItemSwdEao;
                    caseDict[CaseDetailPolicy.INIT_NEEDASSESS] = editItemNeedAssess;               
                    // detailCaseInfo.init();

  • RE: Re[2]: Transaction Management

    Hi,
    Thanks for the reply. But my situation may require more than 1 DBSession
    per Persistence Manager, as under the same Domain problem, my persistent
    objects spread across multiple databases ( due to some legacy and package
    systems ).
    On the other hand, I think your model would be helpful in some cases.
    Following is what I think you are doing in your model in order to make use
    of this Persistence Manager.
    1. Client program would retrieve business object from this persistence
    manager;
    2. When persistence manager return the requested object, it would save
    its pointer to the business object.
    3. When client call save()/delete() on the business object, it would
    then route the request to the persistence manager by its pointer.
    Please correct me if I'm wrong.
    As mentioned, I have another design on this issue. When my document is
    ready, would you like to take a look. I just want to invite more opinion on
    this "Framework" with which I've spent at least half a year to work on.
    Best regards,
    Peter Sham.
    -----Original Message-----
    From: Dimitar Gospodinov [SMTP:[email protected]]
    Sent: Monday, May 17, 1999 5:41 PM
    To: Peter Sham (HTHK - Assistant Manager - Software Development,
    IITB)
    Cc: Vanessa Rumball; [email protected]
    Subject: Re[2]: Transaction Management
    Hello Peter,
    Well, we are using a slightly different approach. We have a SO
    (we call it Persistence Manager)
    and DBSession SO (user visible) in one partition. This
    partition
    is load balanced.
    All database activity is in the Persistence Manager - in one
    partition that uses one DBSession. In this approach we do not
    have possibility for deadlocks between different DBSessions
    because for example an activity that involves several tables
    will be executed within one DBSession. And since this
    partition
    is load balanced, the access to the database will not be
    blocked.
    Hope this makes sense.
    Best regards,
    Dimitar mailto:[email protected]
    Monday, May 17, 1999, 1:55:35 PM, you wrote:
    PSHAMSDI> Hi,
    PSHAMSDI> I would like to add to the question on the concern on
    sharing DBSession.
    PSHAMSDI> The fact that a DBSession is shared and is blocked from
    other threads within
    PSHAMSDI> a transaction make it a candidate for "dead-lock". That's
    why in my
    PSHAMSDI> application, up until now, I dare not to load-balance a
    DBSession or involve
    PSHAMSDI> multiple DBSessions in a update transaction. I have
    experience that when
    PSHAMSDI> multiple DBSessions are involved in a update transaction,
    there is a great
    PSHAMSDI> choice that the DBSessions are dead-locked by different
    threads.
    PSHAMSDI> The way that we do it now is very dumb and hard to
    maintain. We pass the
    PSHAMSDI> DBSession along for all the calls involved in a update
    transaction.
    PSHAMSDI> However, if someone forget to follow the convention, the
    application will
    PSHAMSDI> get dead-locked and I have to use dumb status on the
    partitions to trace
    PSHAMSDI> back the invoking method. It is horrible and with no
    guarentee to find the
    PSHAMSDI> source of the problem.
    PSHAMSDI> I have figured a more extensive architecture to solve this
    problem. But
    PSHAMSDI> before I fully implement my design, I would like to know
    if there is already
    PSHAMSDI> a elegant solution out there.
    PSHAMSDI> Thanks for any help in advance.
    PSHAMSDI> Best regards,
    PSHAMSDI> Peter Sham.
    PSHAMSDI> -----Original Message-----
    PSHAMSDI> From: Dimitar Gospodinov [SMTP:[email protected]]
    PSHAMSDI> Sent: Monday, May 17, 1999 2:47 PM
    PSHAMSDI> To: Vanessa Rumball
    PSHAMSDI> Cc: [email protected]
    PSHAMSDI> Subject: Re: Transaction Management
    PSHAMSDI> Hello Vanessa,
    PSHAMSDI> You should use dependent transactions - the
    "begin
    PSHAMSDI> transaction"
    PSHAMSDI> statement is equal to "begin dependent
    transaction" statement.
    PSHAMSDI> So you can have several methods for saving
    the data in
    PSHAMSDI> different
    PSHAMSDI> tables - all these method contain "begin
    transaction .. end
    PSHAMSDI> transaction" construction.
    PSHAMSDI> Then you can have one "wrapper" method that
    calls the above
    PSHAMSDI> methods. This method also contains "begin
    transaction .. end
    PSHAMSDI> transaction" construction.
    PSHAMSDI> Now you have dependent transactions - if
    some of the
    PSHAMSDI> transaction
    PSHAMSDI> fails , the whole bunch of transaction will
    fail.
    PSHAMSDI> If you want to catch the Deadlocks you may
    register for the
    PSHAMSDI> AbortException exception and re-try your
    outermost
    PSHAMSDI> transaction.
    PSHAMSDI> Hope this helps.
    PSHAMSDI> Best regards,
    PSHAMSDI> Dimitar
    mailto:[email protected]
    PSHAMSDI> Monday, May 17, 1999, 6:08:17 AM, you wrote:
    PSHAMSDI> VR> Hi there,
    PSHAMSDI> VR> I have a number of table manager classes,
    each of which saves
    PSHAMSDI> data to
    PSHAMSDI> VR> their respective table in the database. With
    these tables it is
    PSHAMSDI> likely
    PSHAMSDI> VR> that they may be locked by other users on
    occasion so I have put
    PSHAMSDI> in
    PSHAMSDI> VR> exception handlers on the managers to cater
    for this. The user
    PSHAMSDI> has the
    PSHAMSDI> VR> option to keep trying or give up and try again
    later.
    PSHAMSDI> VR> Now sometimes three or more tables may need
    to be updated
    PSHAMSDI> together and if
    PSHAMSDI> VR> one fails to commit then no data for the three
    tables should be
    PSHAMSDI> saved to
    PSHAMSDI> VR> the database. In such a case the 'save'
    method of the three or
    PSHAMSDI> more table
    PSHAMSDI> VR> managers are called from a single method
    within one 'dependent'
    PSHAMSDI> forte
    PSHAMSDI> VR> transaction. Before calling the save methods,
    I call another
    PSHAMSDI> method which
    PSHAMSDI> VR> starts a SQL 'read write wait 10' transaction
    reserving each
    PSHAMSDI> table needed
    PSHAMSDI> VR> within the transaction.
    PSHAMSDI> VR> I have read through the Transactions chapter
    of the Forte
    PSHAMSDI> Accessing
    PSHAMSDI> VR> Databases manual and see examples where a
    number of SQL
    PSHAMSDI> statements are
    PSHAMSDI> VR> included within a transaction and each one
    commits only if all
    PSHAMSDI> are
    PSHAMSDI> VR> successful at the end of the transaction. I
    assumed my approach
    PSHAMSDI> would be
    PSHAMSDI> VR> similar especially when using the 'begin
    dependent transaction'
    PSHAMSDI> statement.
    PSHAMSDI> VR> But if the application gets around to saving
    the second table
    PSHAMSDI> which is
    PSHAMSDI> VR> locked and the user decides not to commit, the
    first table is
    PSHAMSDI> still updated
    PSHAMSDI> VR> in the database.
    PSHAMSDI> VR> Is it because my SQL statements are in
    seperate methods and
    PSHAMSDI> are commited
    PSHAMSDI> VR> when the method is complete? Or am I missing
    something
    PSHAMSDI> somewhere?
    PSHAMSDI> VR> Any help greatly appreciated.
    PSHAMSDI> VR> Thank you.
    PSHAMSDI> VR> Vanessa.
    PSHAMSDI> VR> ===========================================< @
    PSHAMSDI> >>===========================================
    PSHAMSDI> VR> Vanessa Rumball
    PSHAMSDI> VR> Analyst Programmer Phone:
    (03) 479 8285
    PSHAMSDI> VR> A.T.S. Fax:
    (03) 479 5080
    PSHAMSDI> VR> University of Otago Email:
    PSHAMSDI> [email protected]
    PSHAMSDI> VR> PO Box 56
    PSHAMSDI> VR> Dunedin
    PSHAMSDI> VR> New Zealand
    PSHAMSDI> VR> ===========================================< @
    PSHAMSDI> >>===========================================
    PSHAMSDI> VR> -
    PSHAMSDI> VR> To unsubscribe, email '[email protected]'
    with
    PSHAMSDI> VR> 'unsubscribe forte-users' as the body of the
    message.
    PSHAMSDI> VR> Searchable thread archive
    PSHAMSDI> <URL:http://pinehurst.sageit.com/listarchive/>
    PSHAMSDI> -
    PSHAMSDI> To unsubscribe, email '[email protected]' with
    PSHAMSDI> 'unsubscribe forte-users' as the body of the
    message.
    PSHAMSDI> Searchable thread archive
    PSHAMSDI> <URL:http://pinehurst.sageit.com/listarchive/>
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>

    Hi Bolun,
    If you have 2 different UOM(KG and PC) you can see 2 sub-totals only. If you have more, you will see more...
    You can try this: Some work around's ........
    Option1: Convert other Units of measures into KG's or PC's or
    Option2: Add one more Indicator at infoprovider level and populate indicator accordingly., based on UOM and use in report. or
    Option3: Make UOM as User Input and restrict report based on that...
    Hope it Helps
    Srini

Maybe you are looking for