Abap MDM API query with OR operation

Hi experts,
not sure this is the proper section for the thread, anyway; dealing with ABAP MDM API, is there a way to build up a query which involves several clause in OR conjunction?
This is the scenario: I've got to extract several items on the basis of exact product codes. Tipically, I've got huge vectors of hundreds of product codes; actually, I could easily retrieve data by looping over them and, for each code, perform a query on MDM via QUERY method building the clause as follows:
      ls_query-parameter_code  = 'MDMSRM_PART_NO'. "Field code
       ls_query-operator        = 'EQ'.   "Contains
       ls_query-dimension_type  = mdmif_search_dim_field.      "Fieldsearch
       ls_query-constraint_type = mdmif_search_constr_text.    "Text search 
       lv_text = wa_codes-product_code.
       GET REFERENCE OF lv_text INTO ls_query-value_low.
       APPEND ls_query TO lt_query.
This will however result in hundreds of query in the LOOP itself.
Is there any way to build a query with OR operators ?
Thanks,
M.

Hi,
I see you are not clearing your local structure "ls_query".  This could be reason of problem,  try this and let us know the result:
DATA lt_query                  TYPE mdm_query_table.
DATA ls_query                 TYPE mdm_query.
DATA lv_search_text       TYPE string.
DATA lt_result_set            TYPE mdm_search_result_table.
DATA ls_result_set           LIKE LINE OF lt_result_set.
Fill query structure with FIRST parameter
    ls_query-parameter_code  = 'Name'.
    ls_query-operator        = 'CS'. 
    ls_query-dimension_type  = mdmif_search_dim_field.    
    ls_query-constraint_type = mdmif_search_constr_text.
    lv_search_text = 'BMW'.
    GET REFERENCE OF lv_search_text INTO ls_query-value_low.
    APPEND ls_query TO lt_query.
CLEAR ls_query.
Fill query structure with SECOND parameter
    ls_query-parameter_code  = 'Model'.
    ls_query-operator        = 'CS'. 
    ls_query-dimension_type  = mdmif_search_dim_field.    
    ls_query-constraint_type = mdmif_search_constr_text.
    lv_search_text = '2009'.
    GET REFERENCE OF lv_search_text INTO ls_query-value_low.
    APPEND ls_query TO lt_query.
CLEAR ls_query.
Query on records (search for value 'BMW' model '2009' in table Products)
    CALL METHOD lr_api->mo_core_service->query
      EXPORTING
        iv_object_type_code = 'Products'                  
        it_query            = lt_query
      IMPORTING
        et_result_set       = lt_result_set.

Similar Messages

  • Re-write query with ANY operator

    Hi,
    How to write the given query using 'ANY ' operator , I dont need to fetch to grade_master table twice in database, just need to fetch within the result set.
    SELECT dsg_code,dsg_name,dsg_grade FROM designation_master WHERE dsg_orgn='&&Orgn' and dsg_ctry='&&ctry'
    And dsg_loc ='&&loc' And dsg_oru = '&&oru' and dsg_grade in decode('&&radio_group',
    1, SELECT grd_code FROM grade_master WHERE grd_osm_code in (Select grd_osm_code FROM grade_master WHERE grd_orgn='&&Orgn' and grd_ctry='&&ctry' And grd_loc ='&&loc' And grd_oru = '&&oru' and grd_code ='&&emp_grade'),
    2, SELECT grd_code FROM grade_master WHERE grd_osm_code > (Select grd_osm_code FROM grade_master WHERE grd_orgn='&&orgn' and grd_ctry='&&ctry' and grd_loc ='&&loc' And grd_oru = '&&oru' and grd_code),
    3, SELECT grd_code FROM grade_master WHERE grd_osm_code < (Select grd_osm_code FROM grade_master WHERE grd_orgn='&&orgn' and grd_ctry='&&ctry' And grd_loc ='&&loc' And grd_oru = '&&oru' and grd_code ='&&emp_grade'))
    thanks
    rincy

    please post your question in separate SQL and PL/SQL section this is FORMS section

  • MDM ABAP API: Query with Multiple Parameters

    I would like to query MDM repository passing multiple parameters. I used the following code, however, it didn't work.
    If I pass only one parameter, it works fine.
    DATA lt_query                  TYPE mdm_query_table.
    DATA ls_query                 TYPE mdm_query.
    DATA lv_search_text       TYPE string.
    DATA lt_result_set            TYPE mdm_search_result_table.
    DATA ls_result_set           LIKE LINE OF lt_result_set.
    * Fill query structure with FIRST parameter
        ls_query-parameter_code  = 'Name'.
        ls_query-operator        = 'CS'. 
        ls_query-dimension_type  = mdmif_search_dim_field.    
        ls_query-constraint_type = mdmif_search_constr_text.
        lv_search_text = 'BMW'.
        GET REFERENCE OF lv_search_text INTO ls_query-value_low.
        APPEND ls_query TO lt_query.
    * Fill query structure with SECOND parameter
        ls_query-parameter_code  = 'Model'.
        ls_query-operator        = 'CS'. 
        ls_query-dimension_type  = mdmif_search_dim_field.    
        ls_query-constraint_type = mdmif_search_constr_text.
        lv_search_text = '2009'.
        GET REFERENCE OF lv_search_text INTO ls_query-value_low.
        APPEND ls_query TO lt_query.
    * Query on records (search for value 'BMW' model '2009' in table Products)
        CALL METHOD lr_api->mo_core_service->query
          EXPORTING
            iv_object_type_code = 'Products'                  
            it_query            = lt_query
          IMPORTING
            et_result_set       = lt_result_set.

    Hi,
    I see you are not clearing your local structure "ls_query".  This could be reason of problem,  try this and let us know the result:
    DATA lt_query                  TYPE mdm_query_table.
    DATA ls_query                 TYPE mdm_query.
    DATA lv_search_text       TYPE string.
    DATA lt_result_set            TYPE mdm_search_result_table.
    DATA ls_result_set           LIKE LINE OF lt_result_set.
    Fill query structure with FIRST parameter
        ls_query-parameter_code  = 'Name'.
        ls_query-operator        = 'CS'. 
        ls_query-dimension_type  = mdmif_search_dim_field.    
        ls_query-constraint_type = mdmif_search_constr_text.
        lv_search_text = 'BMW'.
        GET REFERENCE OF lv_search_text INTO ls_query-value_low.
        APPEND ls_query TO lt_query.
    CLEAR ls_query.
    Fill query structure with SECOND parameter
        ls_query-parameter_code  = 'Model'.
        ls_query-operator        = 'CS'. 
        ls_query-dimension_type  = mdmif_search_dim_field.    
        ls_query-constraint_type = mdmif_search_constr_text.
        lv_search_text = '2009'.
        GET REFERENCE OF lv_search_text INTO ls_query-value_low.
        APPEND ls_query TO lt_query.
    CLEAR ls_query.
    Query on records (search for value 'BMW' model '2009' in table Products)
        CALL METHOD lr_api->mo_core_service->query
          EXPORTING
            iv_object_type_code = 'Products'                  
            it_query            = lt_query
          IMPORTING
            et_result_set       = lt_result_set.

  • Abap MDM API - get table fields and types

    Hi gurus,
    dealing with a simple task for my development... I need to retrieve, for a given MDM table name, a list of field's names with their data types in Value_pair format.
    Basically, this is what RETRIEVE method does; but:
    - I don't need any value; I just need to know which fields build up the table (in order to create entries for that)... Let's say that I'm interested in the CODE and the TYPE  fields of an MDM_NAME_VALUE_PAIR structure describing each field of my MDM table.
    - I can't workaround extracting a certain index (say, the first) from the table using a RETRIEVE, as the target table could also be empty.
    How to do that?
    Thanks in advance

    Hello Binori,
    Thanks a lot for the immediate reply!
    I have connected MS SQL server mgmt studio to MAP tool, as you have already mentioned!
    How do I get access to MAP's db, since I need data from MAP's db in our application db, and our application is purely java based.
    For ex: I need data of all Operating Systems, Performance metrics, Server name, Hardware Configurations etc.
    Thanks in advance,
    Sheetal 

  • Server return code 0x80020004 : Error reading fileu201D from ABAP MDM API

    Hello,
    I am trying use ABAP APIs to create records in a qulifier table in SRM MDM catalog . The tabel i am trying to update is Contract price. it has 4 non qualifier fields and 5 qualifier fields. I am using below code to create it.
    CALL METHOD lr_api->mo_core_service->create_simple
              EXPORTING
                iv_object_type_code = 'MDMSRM_CONTRACT_PRICE'
                is_ddic_structure   = ls_retrive
              IMPORTING
                ev_new_internal_id  = lv_key.
    But it retuns an exception cx_mdm_server_rc_code : Server return code 0x80020004 : Error reading file . My ID has admin auth in MDM data manger and able to create recrds direclty in data manager. But API retuns an error.
    Requst you to help me ith this . Please advice if i have posted it in wrong section.
    Thanks,
    DIvya.

    done. This API is working from MDM7 version, not available in MDM5

  • Sql Query with "IN" Operator

    Hi,
    Its amazing i could not able to understand that the results returned from my query
    Here is my query,
    SELECT * FROM TABLE1,TABLE2 WHRE TABLE1.ID = TABLE2.TABLE1_ID AND TABLE1.ID IN (5,4);
    This query returns the records of Id 4 first and then for the Id 5.
    I do no what happens, i need to use IN Operator in my Select query and i want to get the datas of the Id
    as per the Order I give
    How can i get the solution

    But in the query i can give any number of values like (7,2,1,4,8,..n)You can use global temporary table or collection to specify the order of
    numbers. In this case you have to use the join instead of IN:
    SQL> create global temporary table pos_tab (id number, position number);
    Table created.
    SQL> create table t_test as select rownum col from dict where rownum <=10;
    Table created.
    SQL> begin
      2   insert into pos_tab values(7,1);
      3   insert into pos_tab values(5,2);
      4   insert into pos_tab values(9,3);
      5  end;
      6  /
    PL/SQL procedure successfully completed.
    SQL> select t_test.col from t_test, pos_tab where t_test.col = pos_tab.id
      2  order by pos_tab.position;
           COL
             7
             5
             9Simple collection example:
    SQL> create type pos_obj is object(id number, pos number);
      2  /
    Type created.
    SQL> create type pos_t is table of pos_obj;
      2  /
    Type created.
    SQL> select col from t_test, table(pos_t(pos_obj(7,1),pos_obj(5,2),pos_obj(9,3))) pos
      2  where pos.id = t_test.col order by pos.pos
      3  /
           COL
             7
             5
             9Rgds.
    Consider - IN-list operators are limited by 1000 explicit elements.
    Message was edited by:
    dnikiforov

  • SQL Query With Like Operator - Performance is very poor - Oracle Apps Table

    Hi,
    I'm querying one of the Oracle Applications Standard Table. The performance is very slow when like operator is used in the query condition. The query uses a indexed column in the where clause.
    The query is..
    select * from hz_parties
    where upper(party_name) like '%TOY%'
    In the above case, It is not using the index and doing full table scan. I have checked the explain plan and the cost is 4496.
    select * from hz_parties
    where upper(party_name) like 'TOY%'
    If I remove the '%' at the begining of the string, the performance is good and it is using the index. In this case, the cost is 5.
    Any ideas to improve the performance of the above query. I have to retrieve the records whose name contains the string. I have tried hints to force the use of index. But it is of no use.
    Thanks,
    Rama

    If new indexes are disallowed, not a lot of good ones, no.
    If you know what keyword(s) are going to be searched for, a materialized view might help, but I assume that you're searching based on user input. In that case, you'd have to essentially build your own Text index using materialized views, which will almost certainly be less efficient and require more maintenance than the built-in functionality.
    There may not be much you could do to affect the query plan in a reasonable way. Depending on the size of the table, how much RAM you're willing to throw at the problem, how your system is administered, and what Oracle Apps requires/ prohibits in terms of database configuration, you might be able to force Oracle to cache this table so that your full table scans are at least more efficient.
    Justin

  • Tuning Query with IN-Operator

    Hi all,
    I have to tune the statement below.
    UPDATE TABLE_A A
    SET A.FIELD1 =
    (SELECT B.FIELD1 FROM TABLE_B B WHERE B.IDENTNO IN (A.IDENTNO, A.IDENTNO||'000')
    There are indexes on identno on TABLE_A and TABLE_A
    The subquery returns only one row. The query works, but not fast enough.
    I tried to split the where condition to join it together again with a union like this
    UPDATE TABLE_A A
    SET A.FIELD1 =
    (SELECT B.FIELD1 FROM TABLE_B B WHERE B.IDENTNO = A.IDENTNO
    UNION
    SELECT B.FIELD1 FROM TABLE_B B WHERE B.IDENTNO = A.IDENTNO||'000')
    But the execution plan shows a full table scan for the second part of the union.
    How can I tune this part ? With function based index ?
    Thanks in advance.
    Henning

    Please see this thread
    When your query takes too long ...
    You need to make sure if your statistics are up to date. If not analyze the table.
    It works for me,
    SQL*Plus: Release 9.2.0.6.0 - Production on Tue May 31 17:10:38 2011
    Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
    Connected to:
    Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production
    With the Partitioning, Oracle Label Security, OLAP and Oracle Data Mining options
    JServer Release 9.2.0.8.0 - Production
    SQL> CREATE TABLE TABLE_A AS SELECT 1 field1,'1000' IDENTNO FROM dual;
    Table created.
    SQL> CREATE TABLE TABLE_B AS SELECT 1 field1,'1000000' IDENTNO FROM dual;
    Table created.
    SQL> CREATE INDEX idx13 ON table_B(IDENTNO);
    Index created.
    SQL> CREATE INDEX idx12 ON table_A(IDENTNO);
    Index created.
    SQL> set autotrace on
    SQL> UPDATE TABLE_A A
      2     SET A.FIELD1 =
      3            (SELECT B.FIELD1
      4               FROM TABLE_B B
      5              WHERE B.IDENTNO IN (A.IDENTNO, A.IDENTNO || '000'));
    1 row updated.
    Execution Plan
       0      UPDATE STATEMENT Optimizer=CHOOSE
       1    0   UPDATE OF 'TABLE_A'
       2    1     TABLE ACCESS (FULL) OF 'TABLE_A'
       3    1     CONCATENATION
       4    3       TABLE ACCESS (BY INDEX ROWID) OF 'TABLE_B'
       5    4         INDEX (RANGE SCAN) OF 'IDX13' (NON-UNIQUE)
       6    3       TABLE ACCESS (BY INDEX ROWID) OF 'TABLE_B'
       7    6         INDEX (RANGE SCAN) OF 'IDX13' (NON-UNIQUE)
    Statistics
              2  recursive calls
              2  db block gets
              8  consistent gets
              0  physical reads
            424  redo size
            353  bytes sent via SQL*Net to client
            432  bytes received via SQL*Net from client
              3  SQL*Net roundtrips to/from client
              2  sorts (memory)
              0  sorts (disk)
              1  rows processed
    SQL>

  • MDM Server Ports with Batch operations

    Hi,
    how can i use MDM Server Ports what i define in ports table of my repository in MDM Console with ImportManagerBatch and especially with SyndicatorBatch? i use 5.5.24.06 SP2.

    Hi Dmitry,
    My understanding is that ports are most useful if you are using XI MDPS (Master Data Processing Server?).  You define ports in the console.  Key thing to remember a port works if you attach it to a client system that is defined as inbound/outbound; does not work if the client system being associated is just inbound or just outbound.  You define the file format under format setting. 
    In my case, since I do not use XI, I need to manually associate the location of my files to the regedit setting.  Only then, port setting can be selected on the import manager file definition.
    I learnt how to define ports.  I use import manager batch and syndicator batch but I did not see an additional benefit of using ports with them.  For example, I have 70+ tables to load using import manager.  Most are based on Excel and XML file types.  SO, I have my ini files defined for each of the XMLs, and one for excel (it has several tabs) with source, destination, and file location information.  Then, I have a bat file with IMB commands associating each of ini files to a map/agency/language, etc.  And execute the bat file from command line.
    May others in the forum who used ports with IMB or Syndicator batch can give more insights.
    Thanks
    Savi

  • Trying to create a Javascript FetchXML query, cannot get Operator 'in' to work

    Hi all, I am writing a FetchXML query with the operator 'in' but I have messed up my syntax:
        fetchXml += "<condition attribute='statuscode' operator='in'/>";
        fetchXml += "<value>100000007</value>";
        fetchXml += "<value>100000004</value>";
    The above does not return a result. What is the correct syntax for this?

     fetchXml += "<condition attribute="statuscode" operator="in" >";
     fetchXml += "<value>100000007</value>"; 
     fetchXml += "</condition>";
     fetchXml += "<condition attribute="statuscode" operator="in" >";
     fetchXml += "<value>100000007</value>"; 
     fetchXml += "<value>100000004</value>";
     fetchXml += "</condition>";
    Regards, Saad

  • MDM ABAP API query to pass the date range

    Hi
    I want to retrieve certain data from MDM repository based on filter criteria by date stamp.
    Not sure how to do it to pass the select option value in the query.
    select-options: s_cdate for sy-datum obligatory .
    DATA  wa_query     TYPE mdm_query.
    DATA: v_search_date1    TYPE MDM_CDT_DATE_TIME.
    data: v_datestamplow1   type string.
    data: v_datestamplow    type TZNTSTMPL.
    concatenate s_cdate-low '000000' into v_datestamplow1
    v_datestamplow  = v_datestamplow1.
    clear wa_query.
        wa_query-parameter_code = 'Changed_On '.             "Field code ( Field name )
        wa_query-operator = 'EQ'.
        wa_query-dimension_type = mdmif_search_dim_field.    "Field search
        wa_query-constraint_type = MDMIF_SEARCH_CONSTR_DATE. "Date  serach
    I am able to get the data when I just pass the low value from selecct option.  But I dont how  to pass the date range.
       v_search_date1-CONTENT = v_datestamplow.
        ET REFERENCE OF v_search_date1 INTO wa_query-value_low.
        APPEND wa_query TO gt_query.
      CALL METHOD cl_api->mo_core_service->query
          EXPORTING
            iv_object_type_code = 'Vendors'
            it_query            = gt_query
          IMPORTING
            et_result_set       = gt_result.
    II could see the below operator types . Although EQ says "Like standard select-options parameter" not sure how to pass the value.
    EQ     Equal to (like standard select-options parameter)
    NE     Not equal to (like standard select-options parameter)
    LT     Less than (like standard select-options parameter)
    LE     Less than or equal to (like standard s-o parameter)
    GT     Greater than (like standard select-options parameter)
    GE     Greater than or equal to (like standard s-o parameter
    SW     Starts with (MDM specific parameter)
    Thanks,
    Krishna.

    Hi,
    To get the date range for select options, pass the low value with 'GE' operator and another query option with 'LE' operator for high value.
    select-options: s_cdate for sy-datum obligatory .
    DATA wa_query TYPE mdm_query.
    DATA: v_search_date1 TYPE MDM_CDT_DATE_TIME.
    data: v_datestamplow1 type string.
    data: v_datestamplow type TZNTSTMPL.
    concatenate s_cdate-low '000000' into v_datestamplow1
    v_datestamplow = v_datestamplow1.
    clear wa_query.
    wa_query-parameter_code = 'Changed_On '. "Field code ( Field name )
    wa_query-operator = 'GE'.
    wa_query-dimension_type = mdmif_search_dim_field. "Field search
    wa_query-constraint_type = MDMIF_SEARCH_CONSTR_DATE. "Date serach
    GET REFERENCE OF v_search_date1 INTO wa_query-value_low.
    APPEND wa_query TO gt_query.
    concatenate s_cdate-high '235959' into v_datestamphigh1
    v_search_date2 = v_datestamphigh1.
    clear wa_query.
    wa_query-parameter_code = 'Changed_On '. "Field code ( Field name )
    wa_query-operator = 'LE'.
    wa_query-dimension_type = mdmif_search_dim_field. "Field search
    wa_query-constraint_type = MDMIF_SEARCH_CONSTR_DATE. "Date serach
    GET REFERENCE OF v_search_date2 INTO wa_query-value_low.
    APPEND wa_query TO gt_query.
    CALL METHOD cl_api->mo_core_service->query
    EXPORTING
    iv_object_type_code = 'Vendors'
    it_query = gt_query
    IMPORTING
    et_result_set = gt_result.
    Thanks.

  • How to create an ABAP Query with OR logical expression in the select-where

    Hi,
    In trying to create an ABAP query with parameters. So it will select data where fields are equal to the parameters entered. The default logical expression is SELECT.. WHERE... AND.. However I want to have an OR logical expression instead of AND.. how can I attain this??
    Please help me on this.. Points will be rewarded.
    Thanks a lot.
    Regards,
    Question Man

    Hi Bhupal, Shanthi, and Saipriya,
    Thanks for your replies. But that didn't answer my question.
    Bhupal,
    You cannot just replace AND with OR in an ABAP QUERY. ABAP QUERY is a self generated SAP code. You'll just declare the tables, input parameters and output fields to be displayed and it will create a SAP standard code. If you'll try to change the code and replace the AND with OR in the SAP standard code, the system will require you to enter access key/object key for that particular query.
    Shanthi,
    Yes, that is exactly what need to have. I need to retireve DATA whenever one of the conditions was satisfied.
    Saipriya,
    Like what I have said, this is a standard SAP code so we can't do your suggestion.
    I have already tried to insert a code in the ABAP query (there's a part there wherein you can have extra code) but that didn't work. Can anybody help me on this.
    Thanks a lot.
    Points will be rewarded.
    Regards,
    Question Man

  • KM Scheduler job with MDM APIs

    Hi,
    I am trying to write a background job that makes use of MDM APIs. I created a Portal Application Project and put in the required code. I added the required MDM jar fiels in to the java build path. How ever, I don't know how to add Library Reference with value "com.sap.mdm.tech.mdm4j" since this is not a Webdynpro project. Without this the KM Scheduler fails to run the job thowing an exception ''NoClassDefFoundError...".
    Can any one tell me how do I go about?
    Thanks,
    Sudheer

    Trying to post the question under different category

  • Criteria with out Operator in af:Query

    Hi,
    We are using af:query in our application and our application uses POJO based data controls. It does not implement BC4J. Is it possible to display a critieria in af:query WITH OUT a criteria operator? For example we want City as on the criteria and we would not want display any criteria operator. The assumption is it should always be searched with Equals. If it is possible can some one let me know how to achieve this?
    Thanks,
    Rama
    Edited by: user9954330 on Apr 24, 2012 10:59 PM

    Hi,
    Is it possible display a field in Search Panel as input LOV with custom popup ?
    Yes. You assign a LOV definition to the attribute that then you display in the af:query component. You can also have dependnet LOV implemented this way. However, you cannot have a custom (your own) list of value popup dialog used
    See page 8 and following in http://www.oracle.com/technetwork/developer-tools/adf/learnmore/jan2011-otn-harvest-300940.pdf
    Frank
    Edited by: Frank Nimphius on Jun 29, 2011 11:36 AM

  • Problem with the operator less than or equal to in a weby query

    Hi all.
    The universe is a OLAP Universe
    When i created a query in webi and put the month in the filter area with the operator less than or equal to like this.
    Month (less than or equal to) 2010.01 for example. The all result brings also the all values like 2010.02, 2010.03, etc
    What is the problem and how can fix that ?
    Thanks

    Looks like you are using a less than or equal to with a Sting data type.
    I think you should change to your filter to Year <= 2010 And Month <= 1. Hope you have a month and year object in you BeX.
    Anil

Maybe you are looking for

  • My adobe bridge cs6 is very slow and slow open up the opened folder...

    hello to everyone, i have long time very much slow adobe bridge, i have Mac OS X Mavericks and when i opened more apps than the bridge slow down... maybe it is because my ramm is 8gb too small? (iMac late 2012 i5 2,7 ghz) i can't working with bridge

  • Can't open my mail at all

    Only on my second day of owning a macbook pro 13 and my mail app stopped opening.  I had it set up with my gmail account and it was working fine until I decided to update 10.9.3 combo, I don't know if it was the update or because I had to restart the

  • Performing filtering, highlights or markups on searches

    Greetings, I have developed a content management system which stores, searches etc a table containing different kinds of electronic documents stored as BLOBs. I am trying to integrate into the search function the ability to display a hundred or so ch

  • Video file in camera but not in computer

    using a lumix lx7 p&s camera.  took several videos.  they playback ok in the camera.  however, when i insert the memory card into my mac the files are not there. all of the filenames for the jpegs are consecutive like p1010661, 62, 63.  the missiing

  • IZ0-047  and  Oracle '12c'

    Hello, According to this article http://www.computerworlduk.com/news/applications/3361449/oracle-12c-database-set-for-december-or-january-release/ The new version of Oracle '12c' is scheduled to be released on December this year or January 2013... I