2013-12-09 81 views
2

我正在嘗試構建AX服務以從Microsoft Dynamics AX 2009中的InventTable檢索數據。 參考https://community.dynamics.com/ax/f/33/t/70476.aspx,我嘗試在AOT作業中執行代碼以檢索具有修改日期=「2/7/2013」​​的數據 該代碼示例是如下:如何使用webservice請求檢索具有偏移量和限制的數據?

static void SelectQueryTest(Args _args) 
    { 
     Query q = new Query(); 
    QueryRun qr; 
    QueryBuildDataSource qbds; 
    int64 countItem; 
    InventTable inventTable; 
    Fromdate FromDate = 2\7\2013; 


    ; 

    qbds = q.addDataSource(tableNum(InventTable)); 
    qbds.addRange(fieldNum(InventTable, modifiedDateTime)).value(date2StrUsr(FromDate)); 
    qr = new QueryRun(q); 
    countItem =SysQuery::countTotal(qr); 
    if(countItem>0) 
    { 

    while(qr.next()) 
    { 

     inventTable = qr.get(tableNum(inventTable)); 
     info(strfmt("Item Name: %1", inventTable.ItemName)); 
    } 
    } 
    else 
    { 
    info("No records found"); 
    } 

    } 

任何一個可以建議我如何寫它檢索數據使用偏移量是從Web服務請求,採取了代碼和限制。

+0

什麼偏移支持的任何SQL,什麼是限制,什麼web服務?你寫的日期是七月二號。 –

+0

其實我的意思是一個方法就像跳過並取得linq或MySql中的「SELECT column FROM table LIMIT 18 OFFSET 8」之類的選擇查詢。 –

回答

2

查詢AX時,限制和偏移在x ++中不可用。

在我看來,你有2個選項可以實現相同的目標。

  1. 訂購由recId設置的結果集,存儲recId以及recId> yourRecId用於偏移量的用法。您還需要使用類似select的方式手動計數記錄。

  2. 使用X ++查詢直接在SQL數據庫,在這種情況下,你應該能夠使用由服務器

0

您很可能不需要自己提供服務,因爲有標準的方法可以做到這一點。

就以這裏的答案一看:Fetching data from dynamics ax 2009 using Ax webservices and C#

也採取this screencast看看。

+0

感謝您的答覆。我們在AX數據庫中有近20萬個產品。我認爲使用web服務一次很難獲取大量數據。因此,我正在考慮只檢索500個AX服務每個數據並將它們拉入我的MySql數據庫 –

相關問題