Actualizar documento con DI-API, no hace nada ¿?

Hola

Estoy haciendo unas pruebas con el DI-API y estoy atascado en un punto absurdo del que no encuentro información sobre cómo salir. Se trata simplemente de actualizar un precio de una línea de un albarán (ambos abiertos) y me dice que lo actualiza, pero luego no cambia nada. Este es el trozo de código (vb.net) que le sobra mucha morralla pero es que ya lo he escrito a lo bruto a ver si saltaba por algún lado, pero nada:

 Dim oEntrega As Documents = CType(oCompany.GetBusinessObject(BoObjectTypes.oDeliveryNotes), Documents)
        Dim oRecordset As Recordset = CType(oCompany.GetBusinessObject(BoObjectTypes.BoRecordset), Recordset)
        Dim oListaPrecios As Recordset = CType(oCompany.GetBusinessObject(BoObjectTypes.BoRecordset), Recordset)

        'Try
        ' Obtener todas las líneas de entregas abiertas
        oRecordset.DoQuery("
                SELECT T0.""DocEntry"", T1.""LineNum"", T0.""CardCode"", T1.""ItemCode"", T1.""ShipDate"",T1.""Price""
                FROM ODLN T0
                INNER JOIN DLN1 T1 ON T0.""DocEntry"" = T1.""DocEntry""
                WHERE T0.""DocStatus"" = 'O' AND T1.""LineStatus"" = 'O'")


        While Not oRecordset.EoF
            Dim docEntry As Integer = oRecordset.Fields.Item("DocEntry").Value
            Dim lineNum As Integer = oRecordset.Fields.Item("LineNum").Value
            Dim cardCode As String = oRecordset.Fields.Item("CardCode").Value
            Dim itemCode As String = oRecordset.Fields.Item("ItemCode").Value
            Dim ShipDate As DateTime = oRecordset.Fields.Item("ShipDate").Value

            ' Obtener el precio actualizado de SPP1
            Dim newPrice As Double = ObtenerPrecioArticulo(cardCode, itemCode, ShipDate)

            If oRecordset.Fields.Item("Price").Value <> newPrice Then
                ' Actualizar el precio en la línea de entrega
                If oEntrega.GetByKey(docEntry) Then
                    oEntrega.Lines.SetCurrentLine(lineNum)
                    oEntrega.Lines.Price = newPrice

                    ' Guardar los cambios
                    If oEntrega.Update() <> 0 Then
                        Debug.Print("Error al actualizar entrega " & docEntry & ": " & oCompany.GetLastErrorDescription())
                    Else
                        Debug.Print("Entrega actualizada: DocEntry " & docEntry & ", Línea " & lineNum)
                    End If
                End If
            End If
            oRecordset.MoveNext()
            End While

        'Catch ex As Exception
        'Console.WriteLine("Error: " & ex.Message)
        'Finally
        ' Liberar recursos
        System.Runtime.InteropServices.Marshal.ReleaseComObject(oRecordset)
        System.Runtime.InteropServices.Marshal.ReleaseComObject(oListaPrecios)
            System.Runtime.InteropServices.Marshal.ReleaseComObject(oEntrega)
            oRecordset = Nothing
            oListaPrecios = Nothing
            oEntrega = Nothing
        'End Try

En este caso me tiene que cambiar una línea de un albarán concreto, todos los parámetros parecen correctos (DocEntry, lineNum, etc), el precio antiguo lo toma correcto, el nuevo también pero…no graba nada.

¿Alguna idea de qué puede estar mal? Por otro lado veo que hay dos librerías posibles, SAPbobsCOM100 y SAPbobsCOM90, estoy usando la 100 ya que entiendo que es la correcta para SAP B1 v10, aunque imagino que el problema no debe venir por ahí.

No se pueden realizar modificaciones a nivel linea en documentos de entregas, esto porque tiene un efecto contable.

Entiendo que eso sería si se lleva contabilización de stocks que no es el caso. De hecho manualmente puedo hacer la modificación sin problemas, por tanto con el DI-API debería ser igualmente posible, ¿no?