код vb.Net для использования веб-службы AX 2009 ReturnOrderInService - PullRequest
1 голос
/ 23 июля 2011

Для создания RMA в AX необходимо использовать метод create веб-службы AX 2009 ReturnOrderInService на странице aspx vb.NET.

Код, который я написал ниже, создает RMA в AX, ноне показывает детали строки в форме AX RMA, даже если записи находятся в SalesTable и SalesLine.

Нужна ли запись в InventTrans или где-то отсутствует значение InventRefId?


    Dim rmaClient As ReturnOrderInServiceClient = New ReturnOrderInServiceClient("WSHttpBinding_ReturnOrderInService1")
    Dim roi As AxdReturnOrderIn = New AxdReturnOrderIn

    Dim st As AxdEntity_SalesTable = New AxdEntity_SalesTable
    st.CustAccount = "123"
    st.ReturnReasonCodeId = "RRC1"
    st.DlvMode = "01"
    st.SalesType = 4  'return item
    st.ReturnDeadline = DateAdd(DateInterval.Day, 15, Now())

    Dim sl As AxdEntity_SalesLine = New AxdEntity_SalesLine
    sl.ItemId = "ITEM 123"        
    sl.ExpectedRetQty = -2
    sl.LineAmount = 0           
    sl.InventTransIdReturn = "" 

    st.SalesLine = New AxdEntity_SalesLine() {sl}
    roi.SalesTable = New AxdEntity_SalesTable() {st}

    txtFeedback.Text = ""

    Try
        Dim returnedSalesOrderEntityKey As EntityKey() = rmaClient.create(roi)
        Dim returnedSalesOrder As EntityKey = CType(returnedSalesOrderEntityKey.GetValue(0), EntityKey)            
        txtFeedback.Text = GetRMANo(returnedSalesOrder.KeyData(0).Value)
    Catch ex As Exception
        txtFeedback.Text = ex.Message
    End Try

    rmaClient.Close()

1 Ответ

0 голосов
/ 25 июля 2011

Сгенерировали ли вы прокси-классы, как указано в http://msdn.microsoft.com/en-us/library/cc652581(v=ax.50).aspx? Это должно создать AxdEntity необходимые классы.

Сначала я попытался бы перевести пример на VB. Я не могу помочь вам с конкретным синтаксисом, но здесь нет ничего особенного, так что все должно быть довольно просто.

Что касается использования веб-сервисов в AX, см. Также:

...