Dynamic Handling of HR Data

I am new to HR and old to ABAP which means that I am not good (yet) with field-symbols or OO so I am having a bit of trouble figuring out how to do what I want to do.  Unicode is not helping me either.  Could someone please help me streamline the following code (I do not want to repeat lines of code for 36 PA tables)? 
FORM 400-LOAD_MASTER_DATA.
  loop at dt_pa0000 into ds_pa0000.
    move p_prefix to ds_pa0000-pernr+0(2).
    insert pa0000 from ds_pa0000.
  endloop.
  loop at dt_pa0001 into ds_pa0001.
    move p_prefix to ds_pa0001-pernr+0(2).
    insert pa0001 from ds_pa0001.
  endloop.
  loop at dt_pa0002 into ds_pa0002.
    move p_prefix to ds_pa0002-pernr+0(2).
    insert pa0002 from ds_pa0002.
  endloop.
  etc...
Background: I am pulling data from prod to dev via rfc.  Current process has to be changed because in Unicode (apparently) different table data cannot be dumped into a huge char container.  So I am trying to split it. I want to say 'INSERT (paname) from (waname)' or use <fs> somehow, but I am missing the magic.  Thanks!

Hi,
FORM set_prefix USING tabname TYPE c
                                         prefix TYPE n.
   field-symbols: <fs_tab> type any table,
                           <fs_wa> type any,
                           <fs_comp> type any.
  assign (tabname) to <fs_tab>.  "<- <fs_tab> now points to tabname
  loop at <fs_tab> assigning <fs_wa>.
     "we can't address componenets of <fs_wa> directly as it is of type any table
     assign component 'PERNR' of structure <fs_wa> to <fs_comp>.
     if sy-subrc = 0.
        move prefix to <fs_comp>+(2).   "<- the changes are visible straight away without any modifying
     endif.
  endloop.
ENFORM.
PERFORM set_prefix USING 'DT_PA0000' p_prefix.
PERFORM set_prefix USING 'DT_PA0001' p_prefix.
etc...
Regards
Marcin

Similar Messages

  • Dynamic sql reurns no data when multiple values are passed.

    (Dynamic sql returns no data when multiple values are passed.)
    Hi,
    While executing the below dynamic sql in the procedure no data is returned when it has multiple input values.
    When the input is EMPID := '1'; the procedure works fine and returns data.Any suggestion why the procedure doen't works when input as EMPID := '1'',''2'; is passed as parameter?
    =======================================================
    create or replace PROCEDURE TEST(EMPID IN VARCHAR2, rc OUT sys_refcursor)
    IS
    stmt VARCHAR2(9272);
    V_EMPID VARCHAR2(100);
    BEGIN
    V_EMPID :=EMPID;
    stmt := 'select * from TEST123 where Empid is NOT NULL';
    IF V_EMPID <> '-1' THEN
    stmt := stmt || ' and Empid in (:1)';
    ELSE
    stmt := stmt || ' and -1 = :1';
    END IF;
    OPEN rc FOR stmt USING V_EMPID;
    END Z_TEST;
    ============================================================
    Script for create table
    ==================================================================
    CREATE TABLE TEST123 (
    EMPID VARCHAR2(10 BYTE),
    DEPT NUMBER(3,0)
    ===========================================
    Insert into PDEVUSER.TEST123 (EMPID,DEPT) values ('1',20);
    Insert into PDEVUSER.TEST123 (EMPID,DEPT) values ('2',10);
    Insert into PDEVUSER.TEST123 (EMPID,DEPT) values ('3',30);
    Insert into PDEVUSER.TEST123 (EMPID,DEPT) values ('3',30);
    Insert into PDEVUSER.TEST123 (EMPID,DEPT) values ('2',10);
    =============================================
    Select * from TEST123 where Empid in (1,2,3)
    EMPID DEPT
    1     20
    2     10
    3     30
    3     30
    2     10
    ===================================================================
    Any suggestion why the procedure doen't works when input EMPID := '1'',''2';?
    Thank you,

    The whole scenario is a little strange. When I tried to compile your procedure it couldn't compile, but I added the missing info and was able to get it compiled.
    create or replace PROCEDURE TEST (EMPID IN VARCHAR2, rc OUT sys_refcursor)
    IS
      stmt        VARCHAR2 (9272);
      V_EMPID     VARCHAR2 (100);
    BEGIN
      V_EMPID := EMPID;
      stmt := 'select * from TEST123 where Empid is NOT NULL';
      IF V_EMPID = '-1' THEN
        stmt := stmt || ' and Empid in (:1)';
      ELSE
        stmt := stmt || ' and -1 = :1';
      END IF;
      OPEN rc FOR stmt USING V_EMPID;
    END;If you pass in 1 as a parameter, it is going to execute because the statement that it is building is:
    select * from TEST123 where Empid is NOT NULL and -1 = 1Although the syntax is valid -1 will never equal 1 so you will never get any data.
    If you pass in 1,2 as a parameter then it is basically building the following:
    select * from TEST123 where Empid is NOT NULL and -1 = 1,2This will cause an invalid number because it is trying to check where -1 = 1,2
    You could always change your code to:
    PROCEDURE TEST (EMPID IN VARCHAR2, rc OUT sys_refcursor)
    IS
      stmt        VARCHAR2 (9272);
      V_EMPID     VARCHAR2 (100);
    BEGIN
      V_EMPID := EMPID;
      stmt := 'select * from TEST123 where Empid is NOT NULL';
      stmt := stmt || ' and Empid in (:1)';
      OPEN rc FOR stmt USING V_EMPID;
    END;and forget the if v_empid = '-1' check. If you pass in a 1 it will work, if you pass in 1,2 is will work, but don't pass them in with any tick marks.

  • Creation of internal table dynamically based on the Date Range entered

    Hi SAPgurus,
    I have been facing one issue i.e creation of internal table dynamically based on the date range entered in the selection screen. For example the date range I am giving as 06/2006 to 08/2006, it should display the Fieldcatelog dynamically, this part i have completed but the only issue I am facing is to populate the sales data into that fields.
    Right now my program is displaying the ALV like this.
    Ex:
    <b>CSR    District   06/2006  07/2006  08/2006  totals</b>      
    Shiva      New York                             10.00
    Shiva      new york                             30.00
    Shiva      new york                             40.00
    but it should display like this
    <b>CSR    District 06/2006 07/2006 08/2006 totals</b>
    Shiva  New York  10.00   30.00 40.00
    80.00                 
    Please help me in this scenario, how to acheive like this..
    Thanks & Regards,
    Sivaram Kandula

    Hi Sivaram,
                 I also got the same requirement . i saw rich and your code whatever you have uploaded.i have created dynamic internal table but i am facing the issue to populating the data to my dynamic internal table.
    Sivaram, can you please explain your code after this.
    *<dyn_table>
    *tab_item.
      LOOP AT tab_item.
        ASSIGN COMPONENT 1 OF STRUCTURE <dyn_wa> TO <dyn_table>.
        ASSIGN COMPONENT 2 OF STRUCTURE <dyn_wa> TO <dyn_table>.
    *    <dyn_wa> = tab_item-bztxt.
    *    <dyn_wa> = tab_item-total.
    *    APPEND <dyn_wa> TO <dyn_table>.
    **    <dyn_wa> = tab_item-total.
    **    ASSIGN tab_item-bezei  TO <dyn_wa>.
    *  APPEND <dyn_table>.
      ENDLOOP.
    how you are puting the loop at tab_item. but tab_item is already commented.
    can you send me the code after that.
    i am sending some part of my code.
    CALL METHOD cl_alv_table_create=>create_dynamic_table
       EXPORTING
         it_fieldcatalog = gt_fCAT1
       IMPORTING
         ep_table        = new_table.
    ASSIGN new_table->* TO <dyn_table>.
       create data new_line like line of <dyn_table>.
       assign new_line->* to <dyn_wa>.
    select vbeln
            fkart
            vkorg
            vtweg
            fkdat
            spart
            fksto
            from vbrk
            client specified
            into table gt_vbrk
            where mandt = sy-mandt
            and fkart in ('ZF5','ZFR')
            and vkorg = '1100'
            and vtweg = '20'
            and fkdat in s_fkdat
            and spart = '06'
            and fksto = ' '.
       if gt_vbrk[] is not initial.
      select  vbeln
              fkimg
              prsdt
              netwr
              matnr
              arktx
              werks
              mwsbp
              from vbrp
              client specified
              into table gt_vbrp
              for all entries in gt_vbrk
              where vbeln = gt_vbrk-vbeln
              and werks in s_werks
              and matnr in s_matnr.
      endif.
    select mnr ltx spras from t247
    into table it_t247
    where spras = 'E'.
    data: lv_month1 type vbrp-prsdt,
           name1(3) type c,
           s_month type string,
            s_month1 type string,
             s_month2 type string.
    *      lv_netwr1 type vbrp-netwr,
    *          lv_mwsbp1 type vbrp-mwsbp.
          loop at gt_vbrp into gs_vbrp.
            gs_final2-matnr = gs_vbrp-matnr.
            gs_final2-arktx = gs_vbrp-arktx.
            gs_final2-fkimg = gs_vbrp-fkimg.
           lv_month1 = gs_vbrp-prsdt.
            read table it_t247 into wa_t247 with key mnr = lv_month1+4(2).
            if sy-subrc eq 0.
            name1 =  wa_t247-ltx.
            endif.
             concatenate  name1
                       lv_month1(4) into s_month SEPARATED BY '_' .
             CONCATENATE S_MONTH 'QTY' INTO S_MONTH1 SEPARATED BY ''.
              CONCATENATE S_MONTH 'VALUE' INTO S_MONTH2 SEPARATED BY ''.
             gs_final2-month = s_month.
              lv_netwr1 = gs_vbrp-netwr.
            lv_mwsbp1 = gs_vbrp-mwsbp.
            gs_final2-MONTH_QTY = S_MONTH1.
            GS_FINAL2-MONTH_VAL = S_MONTH2.
            gs_final2-value = lv_netwr1 + lv_mwsbp1.
           append gs_final2 to gt_final2.
           clear: gs_final2. "lv_name2.
           endloop.
           if gt_final2[] is not initial.
             sort gt_final2 by matnr month ascending .
             loop at gt_final2 into gs_final2.
            gs_final2_01 = gs_final2.
         collect gs_final2_01 into gt_final2_01.
        endloop.
           endif.
       ENDIF..
    Regards
    Ankur

  • How to handle multiple tables data in Entity Beans?

    How to handle multiple tables data in Entity Beans?
    i mean, my bean (non trivial) is responsible for frequent
    insertion in one table and some deletion on another table.
    Can anyone of you...please..?

    Is your data model right? If you are adding in one and deleting in another it sounds to me more like a process that an entity, in which case you may revisit your data model and simplify it, add in a session bean with the process method to co-ordinate between the two.
    However, if you want to map multiple different tables within a single entity bean it is possible and just part of the mapping. How you actualyl specify it depends on which implementation you are working with.
    Cheers,
    Peter.

  • Dynamic context, ALV, no data - but everything seems to be in place!

    I've created a component for displaying data in an ALV, with the intention of using it in other components.
    The component controller has two methods:
    SET_DATA_STRUCTURE (parameter I_attributes IMPORTING type WDR_CONTEXT_ATTR_INFO_MAP).
    SET_CONTENTS (parameter i_reference_contents IMPORTING type ref to data).
    The both trigger similarly named events which are reacted to by the view controller.
    The handler for the data structure is this:
       data root_info type ref to if_wd_context_node_info.
       root_info = wd_context->get_node_info( ).
       data data_node type ref to if_wd_context_node_info.
       data_node = root_info->add_new_child_node( name = 'DATA'
                                      is_initialize_lead_selection = abap_false
                                      is_static = abap_false
                                      is_multiple = abap_true
                                      attributes = i_structure ).
    The handler for set_contents sets the view attribute reference_to_contents.
    The WDDOMODIFYVIEW method handles the contents (only when there is new data).
         data lo_nd_table_contents type ref to if_wd_context_node.
         lo_nd_table_contents = wd_context->get_child_node( name = 'DATA' ).
         field-symbols <table_contents> type any table.
         assign wd_this->reference_to_contents->* to <table_contents>.
         if <table_contents> is assigned.
           lo_nd_table_contents->bind_table( new_items = <table_contents> set_initial_elements = abap_true ).
         endif.
         data lo_interfacecontroller type ref to iwci_salv_wd_table .
         lo_interfacecontroller =   wd_this->wd_cpifc_alv( ).
         lo_interfacecontroller->set_data( r_node_data = lo_nd_table_contents ).
         wd_this->new_contents = abap_false.
    When I test my application, I can see inthe debugger that the context is correctly created and populated. The data is bound correctly to the context. But no data is displayed in the grid.
    I've looked through the various tutorials, and can't see what I've missed.
    I've instantiated the usage in WDOINIT of the view. I've embedded the control in the window. Every step checks out - but still no data is seen. I've tried the refresh method on the interface controller of the usage - nothing.
    I've just checked, and the field order and field names of the data being sent in reference_to_contents are identical to that in i_attributes.

    Well, I tried it, and a few other things based on it, and it appears you have the solution.
    My code is:
       DATA root_info TYPE REF TO if_wd_context_node_info.
       root_info = wd_context->get_node_info( ).
       " Convert attributes to RTTI entries
       DATA attribute TYPE wdr_context_attribute_info.
       LOOP AT i_structure INTO attribute.
         DATA components TYPE cl_abap_structdescr=>component_table.
         DATA component  TYPE abap_componentdescr.
         DATA type       TYPE REF TO cl_abap_datadescr.
         CLEAR component.
         component-name = attribute-name.
         component-type ?= cl_abap_typedescr=>describe_by_name( attribute-type_name ).
         INSERT component INTO TABLE components.
       ENDLOOP.
      " Create the new context, starting at TABLE DATA with attributes as in "components"
       root_info->add_new_child_node(
                                      name = 'DATA'
                                      is_initialize_lead_selection = abap_false
                                      is_static = abap_false
                                      static_element_rtti = cl_abap_structdescr=>create( components ) ).
    (I'm in a 7.3 system, so I get to use chaining of methods!)

  • Unclear handling of sequence data

    Hi guys,
    here I have yet another bunch of questions in regard to the handling of sequence data.
    I have checked and compared all of the examples from the SDK in various versions, and all of them seem to do things differently, and the SDK documentation does not really shed any way on what is the expected or correct behaviour.
    This applies especially to disposing and copying sequence data pointers, which can result in big problems concerning data leaks or access violations if done incorrectly, I suppose.
    I tried to code a simple example that uses a very simple SequenceData (a struct only containing one int, see below), so I won't have to cope with flattening/unflattening.
    In the snippet below, I implemented SequenceSetup(), SequenceSetdown() and SequenceResetup() and marked 6 parts with questions where the documentation and/or implementation in the examples is inconsistent.
    It would be great if anyone with more insight could give some reliable answers on what you are expected to do there. :-)
    Thanks,
    Toby
    struct SequenceData
        int param;
    static PF_Err SequenceSetup(PF_InData* in_data, PF_OutData* out_data)
        AEGP_SuiteHandler suites(in_data->pica_basicP);
        // Q1: Are we allowed (or required) to delete the input sequence data if it exists ???
        if (in_data->sequence_data)
            suites.HandleSuite1()->host_dispose_handle(in_data->sequence_data);
        // Q2: Are we allowed (or required) to delete the output sequence data if it exists ???
        if (out_data->sequence_data)
            suites.HandleSuite1()->host_dispose_handle(out_data->sequence_data);
        PF_Handle outH = suites.HandleSuite1()->host_new_handle(sizeof(SequenceData));
        if (!outH) return PF_Err_OUT_OF_MEMORY;
        SequenceData* outP = static_cast<SequenceData*>(suites.HandleSuite1()->host_lock_handle(outH));
        if (outP)
            AEFX_CLR_STRUCT(*outP);
            outP->param = 0;
            out_data->sequence_data = outH;
            // Q3: Do we really NOT have to set flat_sdata_size ???
            // (according to the spec, it is unused, but still some samples set it)
            out_data->flat_sdata_size = sizeof(SequenceData);
            suites.HandleSuite1()->host_unlock_handle(outH);
        if (!out_data->sequence_data) return PF_Err_INTERNAL_STRUCT_DAMAGED;
        return PF_Err_NONE;
    static PF_Err SequenceSetdown(PF_InData* in_data, PF_OutData* out_data)
        AEGP_SuiteHandler suites(in_data->pica_basicP);
        if (in_data->sequence_data)
            suites.HandleSuite1()->host_dispose_handle(in_data->sequence_data);
        // Q4: Are we required to set both in_data and out_data sequence_data pointers to NULL ???
        in_data->sequence_data = NULL;
        out_data->sequence_data = NULL;
        return PF_Err_NONE;
    static PF_Err SequenceResetup(PF_InData* in_data, PF_OutData* out_data)
        AEGP_SuiteHandler suites(in_data->pica_basicP);
        PF_Handle outH = suites.HandleSuite1()->host_new_handle(sizeof(SequenceData));
        if (!outH) return PF_Err_OUT_OF_MEMORY;
        SequenceData* outP = static_cast<SequenceData*>(suites.HandleSuite1()->host_lock_handle(outH));
        if (outP)
            AEFX_CLR_STRUCT(*outP);
            if (in_data->sequence_data)
                SequenceData* inP = static_cast<SequenceData*>(DH(in_data->sequence_data));
                if (inP)
                    outP->param = inP->param;
                // Q5: Are we allowed (or required) to delete the input sequence data if it exists ???
                suites.HandleSuite1()->host_dispose_handle(in_data->sequence_data);
            // Q6: Are we allowed (or required) to delete the output sequence data if it exists ???
            if (out_data->sequence_data) suites.HandleSuite1()->host_dispose_handle(out_data->sequence_data);
            out_data->sequence_data = outH;
            suites.HandleSuite1()->host_unlock_handle(outH);
        if (!out_data->sequence_data) return PF_Err_INTERNAL_STRUCT_DAMAGED;
        return PF_Err_NONE;

    To answer my own questions:
    Q1: in_data->sequence_data always seems to be NULL in this case, so no action necessary, but does no harm if it's in there
    Q2: out_data->sequence_data always seems to be NULL in this case, so no action necessary, but does no harm if it's in there
    Q3: out_data->flat_sdata_size is obsolete and should not be used
    Q4: seems to do no harm and since sequence data is disposed anyway at that location, should be left in there
    Q5: yes, this handle needs to be disposed here!
    Q6: no, that is not necessary and even problematic (as it is the same as in_data->sequence data when the function is called)
    Here is result of my research concerning sequence data from the last few days: http://reduxfx.com/ae_seqdata.pdf
    Cheers,
    Toby

  • Looking for Rental add-on that can handle flexible return dates

    Hi Forum,
    I am wondering which would be good add-on for rental industry that can handle flexible return dates (without cancelling original contract and creating a new one with actual date).
    I am wondering if Visnova's Rental add-on would handle flexible return dates without actually cancelling original contract and creating a new contract.
    Are there many ways to handle flexible rental return dates?
    Thanks.

    Hi,
    I have moved your thread here because you are looking for partner add-on instead of SAP add-on. Have you searched through this forum and SAP EcoHub ?
    Thanks,
    Gordon

  • Coherence cannot handle year in dates of 9999 ?

    Hi,
    I have been running into an issue with dates in coherence. We have some data which specifies a date of 01/01/9999 to indicate that the date does not expire.
    However this results in errors when loading into coherence as follows:-
    java.io.IOException: year is likely out of range: 9999
    I then found this related thread:-
    Storing large DateTime values from .NET
    Is it really true that coherence cannot handle a valid date ???? Why would you possibly validate a year in the first place given 9999 is actually a valid year !.
    TIA
    Martin

    Hi,
    What is the code that causes the error? What version of Coherence are you using?
    I can serialize/deserialize the date you have without seeing any problems. For example...
    Calendar c = Calendar.getInstance();
    c.set(9999, Calendar.JANUARY, 1);
    Date d = c.getTime();
    ConfigurablePofContext pofContext = new ConfigurablePofContext("coherence-pof-config.xml");
    Binary b = ExternalizableHelper.toBinary(d, pofContext);
    Date d2 = (Date) ExternalizableHelper.fromBinary(b, pofContext);
    System.out.println(d2);The above code works fine when I ran it with Coherence 3.7.1.6
    If I have a class that implements PortableObject with a date field set to 1/1/9999 this also serializes without any problems.
    JK

  • Xml publisher enterprise!!! create rtf file dynamically with load xml data

    i am new to xml publisher enterprise , i want a solution for this question ...
    i want create rtf file dynamically with loading xml data....means i wrote a program in jsp where the the output in xml file simultaneously create rtf file..but i enable load the xml data in rtf file but when i goto rtf file from where data in that load xml then it genrate the columns..but i want in dynamiclly to load the data will you please guide me ......

    Hi Atiq
    Im not quite clear on the requirement here:
    1. Do you just want to be able to extract the data and apply a template to the XML data from your jdp and render output?
    If so then you can use the XMLP APIs ... the are in the user guide. Particularly:
    RTFProcessor - converts RTF template to XSLFO stylesheet
    FOProcessor - takes, XML data, XSLFO stylesheet and output format and generates the required output.
    2. Do you want a template that will accept any data and just format it into rows and columns ? This can be written but your XML structure is going to have to be static, the data of course can be dynamic.
    Regards, Tim

  • Dynamic Creation of Physical Data Server / Agent cache Refresh

    Scenario:
    I have a requirement to load data from xml source to oracle DB, and the xml source will change at run time,but the xsd of the xml would remain same ( so I don't have to change the Logical data Server, models, mappings, interfaces and scenarios - only the Physical Data Server will change at runtime).I have created all the ODI artifacts using ODI studio in my Work Repo and then I'm using odi sdk to create the physical dataserver for the changed xml data source and then invoking the agent programmatically.
    Problem:
    The data is being loaded from the xml source to oracle DB for the first time, but it is not working fine from the second time onwards. If I restart the agent, it is again working fine for one more time. on the first run, I think the agent maintains some sort of cache for the physical data server details and so when ever I change the data server, something is going wrong and that is leading to the following exception. So I want to know, if there is any mechanism to handle dynamic data servers or if there is any way of clearing the agent cache, if any.
    Caused By: org.apache.bsf.BSFException: exception from Jython:
    Traceback (most recent call last):
    File "<string>", line 41, in <module>
    AttributeError: 'NoneType' object has no attribute 'createStatement'
         at org.apache.bsf.engines.jython.JythonEngine.exec(JythonEngine.java:146)
         at com.sunopsis.dwg.codeinterpretor.SnpScriptingInterpretor.execInBSFEngine(SnpScriptingInterpretor.java:346)
         at com.sunopsis.dwg.codeinterpretor.SnpScriptingInterpretor.exec(SnpScriptingInterpretor.java:170)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.scripting(SnpSessTaskSql.java:2458)
         at oracle.odi.runtime.agent.execution.cmd.ScriptingExecutor.execute(ScriptingExecutor.java:48)
         at oracle.odi.runtime.agent.execution.cmd.ScriptingExecutor.execute(ScriptingExecutor.java:1)
         at oracle.odi.runtime.agent.execution.TaskExecutionHandler.handleTask(TaskExecutionHandler.java:50)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.processTask(SnpSessTaskSql.java:2906)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java:2609)
         at com.sunopsis.dwg.dbobj.SnpSessStep.treatAttachedTasks(SnpSessStep.java:540)
         at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java:453)
         at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:1740)
         at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:1596)
         at oracle.odi.runtime.agent.processor.impl.StartScenRequestProcessor$2.doAction(StartScenRequestProcessor.java:582)
         at oracle.odi.core.persistence.dwgobject.DwgObjectTemplate.execute(DwgObjectTemplate.java:214)
         at oracle.odi.runtime.agent.processor.impl.StartScenRequestProcessor.doProcessStartScenTask(StartScenRequestProcessor.java:513)
         at oracle.odi.runtime.agent.processor.impl.StartScenRequestProcessor$StartScenTask.doExecute(StartScenRequestProcessor.java:1070)
         at oracle.odi.runtime.agent.processor.task.AgentTask.execute(AgentTask.java:123)
         at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor$1.run(DefaultAgentTaskExecutor.java:50)
         at org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:50)
         at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor.executeAgentTask(DefaultAgentTaskExecutor.java:41)
         at oracle.odi.runtime.agent.processor.TaskExecutorAgentRequestProcessor.doExecuteAgentTask(TaskExecutorAgentRequestProcessor.java:93)
         at oracle.odi.runtime.agent.processor.TaskExecutorAgentRequestProcessor.process(TaskExecutorAgentRequestProcessor.java:83)
         at oracle.odi.runtime.agent.support.DefaultRuntimeAgent.execute(DefaultRuntimeAgent.java:68)
         at oracle.odi.runtime.agent.servlet.AgentServlet.processRequest(AgentServlet.java:445)
         at oracle.odi.runtime.agent.servlet.AgentServlet.doPost(AgentServlet.java:394)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:821)
         at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:503)
         at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:389)
         at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
         at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
         at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
         at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417)
         at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
         at org.mortbay.jetty.Server.handle(Server.java:326)
         at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534)
         at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:879)
         at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:747)
         at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
         at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
         at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
         at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520)

    Hi ,
    If you want to load multiple files ( same structure) through one connection then in topology create M.XSD for M.XML file
    Create three directories
    RAW -- It will contain file with original name
    PRO- Processing area where file will be moved one by one & renamed it as M.XML.
    OUT- Once file data will be loaded into tables move the file M.XML from PRO to OUT.
    Go to odiexperts to create loop,
    Use odifilemove ( to move & rename/masking) to move A.XML from RAW to PRO & rename to M.XML
    use ODIfilemove to move M.XML to OUT folder & then rename back to A.XML
    Use variables to store file names & refresh
    NoneType' object has no attribute 'createStatement' : It seems that structure of your file is different & your trying to load different files in same schema. If stucture is same then use Procedure "SYNCHRONIZE ALL" after every load...
    Edited by: neeraj_singh on Feb 16, 2012 4:47 AM

  • Should Not handle large base64Binary data with BPEL?

    Hi,
    we need to implement a file saving function. I have no problem to implement the web service with Java class by using MTOM streaming but I question on the best design with BPEL for this or if BPEL should not be used for this at all. Please help.
    For the requirement, the file content could be the text entered from a web page or the binary data from any resource such as an existing file or email message body etc, which is not limited. Also the web service would receive the desired file name. But the actual file name should be created by the web service based on the desired file name plus some business rule.
    I am thinking of creating a BPEL app for this. The input for the file content is designed to be of type base64Binary so that the application could handle either ASCII or Binary data. In this BEPL app, it needs first to call a web service to get the information where to put the file (this is dynamic) and generate the actual file name and then it calls another web service to save the file with the actual file name and content. I wonder in the case of saving content of big size such as content read from a PDF file, it could cause resource issue due to the dehydration in BPEL. I am not so clear about dehydration. Does that mean when the BPEL invokes the 1st web service to get the information where to put the file, the base64Binary data for the file content would be first saved into the DB (dehydrated)? Would this cause issue? If so, does that mean for this business needs, we should not use SOA, instead, we should just implement it with JAX-WS?

    Operating System is Windows 7
    I do not know what you mean by Patched to 7.0.4
    I do not have a crash report, the software just freezes and I have to do a force close on the program.
    Thank you for your time...

  • What's the best way to handle all my data?

    I have a black box system that connects directly to a PC and sends 60 words of data at 10Hz (worse case scenario). The black box continuously transmits these words, which contain a large amount of data that is continuously updated from up to 50 participants (again worst case scenario) 
    i.e. 60words * 16bits * 10Hz * 50participants = 480Kbps.  All of this is via a UDP Ethernet connection.
    I have LabVIEW reading the data without any problem. I now want to manipulate this data and then distribute it to other PCs on a network via TCP/IP.
    My question is what is the best way of storing my data locally on the interface PC so that I can then have clients request the information they require via TCP/IP. Each message that comes in via the Ethernet will relate to one of the participants, so I need to be able to check if I already have data about that participant - if I do then I can just update it, if I don't I need to create a record for the participant, and if I havn't heard from one for a while I will need to delete it. I don't want to create unnecessary network traffic. I also want to avoid global variables if possible - especially considering that I may have up to 3000 variables to play with.
    I'm not after a solution, just some ideas about how to tackle this problem... I thought I could perhaps create a database and have labview update a table with the data, adding a record for each participant. Alternatively is there a better way of storing all the data in memory besides global variables?
    Thanks in advance.

    Hi russelldav,
    one note on your data handling:
    When  each of the 50 participants send the same 60 "words" you don't need 3000 global variables to store them!
    You can reorganize those data into a cluster for each participant, and using an array of cluster to keep all the data in one "block".
    You can initialize this array at the start of the program for the max number of participants, no need to (dynamically) add or delete elements from this array...
    Edited:
    When all "words" have the same representation (I16 ?) you can make a 2D array instead of an array of cluster...
    Message Edited by GerdW on 10-26-2007 03:51 PM
    Best regards,
    GerdW
    CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
    Kudos are welcome

  • Custome Error Handling in OWD Data Adaptor Plugin

    Hi,
    Does the Oracle web determination allow to customize error or exception message, while loadins/saving the interview session data.
    while loading some session data for a caseid if certain functional error throws, then can I telll the OWD to display my customized message rather than the static message like Failed to load caseID '{caseid}'. This statis message is configurable the message in message<locale>.properties, however my requrement is to display the message at dynamically.
    Thanks,
    Lokesh
    Edited by: 793191 on 09-Sep-2010 02:18

    Thanks Frank.
    I got my answer. I have some more doubts please help.
    While handling the OnInvestigationStartedEvent I am getting the cased parameter as null.
    Please have a look to below code for eventhandler :
    public void handleEvent(Object sender, OnInvestigationStartedEvent event) {
              if (logger.isDebugEnabled()) {
                   logger.debug("handleEvent(" + sender + ", " + event + ") called");
              InvestigateAction action = (InvestigateAction)sender;
              SessionContext session = event.getSessionContext();     
              if (logger.isDebugEnabled()) {
                   logger.debug("Session Data :::"+session);               
                   logger.debug("session.getSecurityToken() :::"+session.getSecurityToken());
                   logger.debug("session.getCaseID() :::"+session.getCaseID());                                                                      
    The logger prints :
    MyOnInvestigationStartedEventHandler - Session Data :::[email protected]1124c5e
    MyOnInvestigationStartedEventHandler - session.getSecurityToken() :::com.oracle.determinations.interview.engine.security.BasicSecurityToken@53ca8a
    MyOnInvestigationStartedEventHandler - session.getCaseID() :::null
    The URL I am using to start the session is
    http://<web-determinations url>/startsession/<rulebase>/<locale>?caseID=ABC123456&user=guest
    Also, is there any way to accesss the custom parameter appended in URL
    like, http://<web-determinations url>/startsession/<rulebase>/<locale>?caseID=ABC123456&user=guest&name=myname&addr=myaddr
    Can we access these new request parameter (name,addr) from any event handler or DataAdaptor
    Many Thanks,
    Lokesh

  • File Receiver - Dynamically create filename from data in payload

    Hi there.
    Can anyone tell me the approach I need to take to be able to use the data in one field to determine the filename in the file receiver adaptor.
    I have a requirement that requires that I save a file with the following mask:
    xxxx_xxx<b><date extracted from field in payload></b>.csv
    I would appreciate any help on this.
    Thanks in advance.
    Mick.

    Hi Mick,
    you just need to use adapter specific parameters
    and you will be able to set the name in your mapping
    (from your payload)
    /people/william.li/blog/2006/04/18/dynamic-configuration-of-some-communication-channel-parameters-using-message-mapping
    Regards,
    michal
    <a href="/people/michal.krawczyk2/blog/2005/06/28/xipi-faq-frequently-asked-questions"><b>XI / PI FAQ - Frequently Asked Questions</b></a>

  • How to handle errors in data templates

    Hi
    What is the recommended way to handle errors for example if one of your SQL statement in a data template returned no data how and where would you be able to create an error message for the user to find and read.
    Thanks,
    Mark

    The closest I have come to doing this is to put conditional statements into the format template. If a value matches an expected (ex. is null) you can return a message (in the report) via the format template (ex. "No Data Found").
    I am not sure this really answers your question as this is in the format template, but I generally view them as a matched pair that work together. I try to stick with data extraction in the data define, and do all my conditional stuff in the format templates.
    Scott

Maybe you are looking for