Creación de articulo de compra con sdk

Hola muy bien día expertos.

Tengo una grandísima duda, estoy tratando de crear un articulo a nivel articulo y que solo sea un articulo de compra vía Di Api SDK. Entonces asigno el itemcode,el nombre y le digo que es un articulo de solo de compra y le asigno las cuentas a mi almacén que yo escogí como predeterminado. Pero resulta al que yo al crearlo me pide que también agregue la cuentas al resto de los almacenes que tiene la empresa, y yo solo quiero agregarlo a mi almacén predeterminado. mi duda es, abra una forma de borrar las lineas de los demás almacenes que no ocupo o le podre agregar las mismas cuentas a todos los almacenes.

Me pueden ayudar con esto por favor. Muchas gracias.

1 me gusta

Buen día.

¿Alguien de @businessone que tenga conocimientos en este tema?

Estimado buen dia.
Te sugiero que hagas la prueba de crear manualmente un nuevo articulo, directamente en SAP y validar que datos SI te son obligatorios y cuales NO.
Esto solo para verificar que te exige tu SAP para crear el articulo.

Algo que tambien hay que tomar en cuenta es que las cuentas contables de los almacenes las vincula desde la opcion del grupo de articulos, es decir, dependiendo que Grupo de Articulos le estas asignando al NUEVO articulo, asi seran las cuentas contables que tomará.

Esto seria lo primero de revisar. Antes de llegar al codigo de programacion.
Espero que esto te sirva.

Saludos.

1 me gusta

Al momento de crear los artículos (sean por SAP o sea por SDK), tienes 3 puntos para configurar las cuentas contables:

  1. A nivel de Grupo de Artículo: Toma las configuraciones realizadas al grupo de artículo específicamente.
  2. A nivel de Almacén: Toma las cuentas contables del almacén
  3. A nivel de Artículo: Toma las cuentas contables a nivel de Artículo (inventario - dato maestro de articulo - pestaña inventario)

Me imagino que tú estas tomando la opción 3, a nivel de Artículo, por consiguiente debes colocar todas las cuentas contables mínimas para todos los almacenes.

2 Me gusta

Hola, si lo llevas a nivel de artículo puedes agregarle las mismas cuentas a cada almacén ya que no te deja borrar las filas a menos que no hayan tenido ningún movimiento en esos almacenes.

1 me gusta

Explico a detalle:

  • Se trata de artículos cuya determinación de cuentas es a nivel artículo.
  • El mismo artículo se debe crear en varias bases de datos
  • Ninguna base de datos tiene el mismo número de almacenes

Lo que requiere el compañero hacer a través de DI-API es una de las dos siguientes opciones:

  • Quitar todos los almacenes asignados al artículo y dejar solo uno, donde se agregaría la cuenta de gastos deseada.
  • Agregar la misma cuenta de gastos a todos los almacenes.

En si, el problema es cómo recorrer los almacenes del artículo, a través de la DI-API, para poder quitarlos o bien, asignarles a todos la misma cuenta.

1 me gusta

Efectivamente como menciona el compañero @Gera_Mendez.
Tengo que quitar los almacenes o agregar las mismas cuentas a todos lo almacenes.

Por que hasta ahorita asigno un almacén como predeterminado y a ese si me agrega las cuentas correctamente pero al crearlo me dice que no he asignado las cuentas a los demás almacenes.

Anexo el fragmento de mi código:

  Item.InventoryItem = tNO
        Item.SalesItem = tNO
        Item.PurchaseItem = tYES
        Item.GLMethod = glm_ItemLevel
        Item.InventoryUOM = "SER"
       
        
         'almacen predertiminado
        Item.WhsInfo.WarehouseCode = "WC0002"
        
         'cuenta de gastos
        Item.ExpanseAccount = Cons1 'ActiveSheet.Cells(Row, 4)
         
    
         'cuenta de credito compra
          Item.WhsInfo.PurchaseCreditAcc = cons2 'ActiveSheet.Cells(Row, 4)
         
         'cuenta de credito compras extranjero
         Item.WhsInfo.ForeignPurchaseCreditAcc = cons3 'ActiveSheet.Cells(Row, 4)

        If Item.ItemCode <> "" Then
                    
              res = Item.Add
              
              If res <> 0 Then
                  MsgBox (oCompany.GetLastErrorDescription())
                
                
                Else

Saludos.

Hay una configuración a nivel general, que automáticamente al crear un item te agrega todos los almacenes, puedes quitar esta configuración, o puede hacerlo a través de la propiedad ItemWarehouseInfo.

Por ejemplo este código agrega un almacén:

if oItems.GetByKey("ItemCode")
oItems.WhsInfo.WarehouseCode = "WarehouseCode"
oItems.WhsInfo.Add()
oItems.Update()
endif
3 Me gusta

Hola Willy. Muchas gracias muy buena aportación.

Lo que pasa es que agregar no presento detalles.

Mi problema es que no se como eliminar un almacén o recorrer todos los demás. Por que al que yo escojo predeterminado pero todos lo demás se quedan vivos y no me agrega las mismas cuentas. No tendrás un código de borrar o recorrer los almacenes

Saludos.

1 me gusta

@Victor_Alex, prueba con este codigo:

Dim oItem As SAPbobsCOM.Items = ocompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oItems)
For each itemCode in oitm then
If oItem.GetByKey(sidItem) Then
For i= 0 to oItem.WhsInfo.Count -1 do
oItem.WhsInfo .SetCurrentLine ℹ️
if oItem oItem.WhsInfo.WarehouseCode ="yourspecificwarehouse" then
oItem.WhsInfo.Delete()
end if
Next i
oItem.Update()
End if
End If
2 Me gusta

Hola @Willy_Caldero Muchas gracias deja hago pruebas.

@Victor_Alex, ¿en qué quedó este tema? :thinking:

Este tema se cerró automáticamente 41 días después de la última publicación. No se permiten nuevas respuestas.